@missing-elements/h5p-offline-player 0.1.0 → 0.1.2
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/NOTICE.md +83 -0
- package/README.md +27 -8
- package/dist/VERSION +1 -1
- package/dist/frame-assets/LICENSE.txt +674 -0
- package/dist/frame-assets/MANIFEST.json +1 -1
- package/dist/frame-assets/NOTICE.txt +30 -0
- package/dist/frame-assets/main.bundle.js.LICENSE.txt +1 -0
- package/dist/h5p-player.js +4 -1773
- package/dist/h5p-sw-mount.js +9 -75
- package/dist/h5p-sw.js +9 -75
- package/licenses/GPL-3.0.txt +674 -0
- package/package.json +27 -24
- package/types/node/tsconfig.node.tsbuildinfo +1 -1
- package/types/node/vite.plugins.d.ts +6 -0
- package/types/shared/chunk-store.d.ts +35 -4
- package/types/shared/constants.d.ts +19 -1
- package/types/shared/source-reader.d.ts +21 -0
- package/types/shared/source.d.ts +10 -20
- package/types/shared/storage.d.ts +18 -0
- package/types/sw/frame-boot.d.ts +32 -0
- package/types/sw/package-reader.d.ts +6 -2
- package/types/sw/watermark-wait.d.ts +21 -0
package/dist/h5p-sw-mount.js
CHANGED
|
@@ -1,88 +1,22 @@
|
|
|
1
|
-
var ip=Object.defineProperty;var se=(t,e)=>()=>(t&&(e=t(t=0)),e);var ap=(t,e)=>{for(var r in e)ip(t,r,{get:e[r],enumerable:!0})};var Jr,Nt,w,Vt,ye,K,ss,We,Xc,Wi,j,is,ue=se(()=>{Jr=new Date(2107,11,31,23,59,58),Nt=new Date(1980,0,1),w=void 0,Vt=1/0,ye="undefined",K="function",ss="object",We="string",Xc="number",Wi="boolean",j=new Uint8Array,is=Symbol.asyncDispose||Symbol()});function hr(t){if(t&&typeof t!=K)throw new Error(Sl);return t}function tn(t){if(t&&(typeof t.addEventListener!=K||typeof t.aborted!=Wi))throw new Error(Il);return t||w}function jt(t){if(t&&t.aborted)throw t.reason===w?new DOMException(Nl,yp):t.reason}function gs(t,e){if(t&&typeof t!=We||e&&!(e instanceof Uint8Array))throw new Error(Zi)}function gr(t){if(t!==w&&typeof t!=Wi&&t!==en)throw new Error(bl);return t}function Ki(t,e,r){if(!Number.isInteger(t)||t<0||t>e)throw new Error(r)}function Rr(t,e,r){t!==w&&Ki(t,e,r)}function Dt(t){return typeof t==We&&t.trim()?Number(t):t}var jc,Zc,Kc,qc,Jc,as,os,Qr,cs,Qc,$c,el,tl,rl,nl,sl,il,al,ls,fs,us,ds,ol,cl,ll,fl,ps,ul,dl,pl,Gi,Vi,El,ml,$r,Xt,hl,gl,Rl,wl,_l,Tl,Xi,Al,yl,ji,Es,ms,Ot,hs,at,en,Sl,Il,Zi,bl,Nl,yp,wr=se(()=>{ue();jc="filenameEncoding",Zc="commentEncoding",Kc="decodeText",qc="extractPrependedData",Jc="extractAppendedData",as="password",os="rawPassword",Qr="passThrough",cs="signal",Qc="checkPasswordOnly",$c="checkOverlappingEntryOnly",el="checkOverlappingEntry",tl="checkAmbiguity",rl="checkLocalDirectory",nl="checkLocalFilename",sl="checkSignature",il="checkCrc32",al="checkAuthenticationCode",ls="useWebWorkers",fs="useCompressionStream",us="transferStreams",ds="preventClose",ol="encryptionStrength",cl="extendedTimestamp",ll="ntfsTimestamp",fl="keepOrder",ps="level",ul="bufferedWrite",dl="createTempStream",pl="dataDescriptorSignature",Gi="useUnicodeFileNames",Vi="dataDescriptor",El="supportZip64SplitFile",ml="encodeText",$r="offset",Xt="usdz",hl="unixExtraFieldType",gl="localExtraField",Rl="centralExtraField",wl="strictness",_l="filenameValidation",Tl="normalizeFilename",Xi="maxAppendedDataSize",Al="decryptCentralDirectory",yl="signCentralDirectory",ji="entry",Es="filename",ms="comment",Ot="strict",hs="balanced",at="tolerant",en="compressed",Sl="Invalid option (must be a function)",Il="Invalid signal (must be an AbortSignal instance)",Zi="Invalid password (password must be a string, rawPassword must be a Uint8Array)",bl="Invalid passThrough option (must be a boolean or 'compressed')",Nl="The operation was aborted",yp="AbortError"});function ot(){return zl}function rn(t){return qi(t.chunkSize)}function qi(t){return t=Dt(t),Number.isInteger(t)&&t>=Dl?Math.max(t,Sp):Ol}function Np(t){let e={};for(let r of bp){let n=t[r];n!==w&&(e[r]=Op(r,n))}return e}function Op(t,e){if(kl.includes(t)){if(e=Dt(e),t==Ul&&(!Number.isInteger(e)||e<Dl))throw new Error(Pl)}else if(Bl.includes(t))hr(e);else if(t==Ml){if(e&&typeof e!=We)throw new Error(xl)}else if(vl.includes(t)&&e&&typeof e!=We&&typeof e!=K)throw new Error(Cl);return e}function Dp(t){t=t||{};let{CompressionStreamZlib:e,DecompressionStreamZlib:r}=t;if(e===w&&r===w)return t;let n=Object.assign({},t);return n.CompressionStreamFallback===w&&(n.CompressionStreamFallback=e),n.DecompressionStreamFallback===w&&(n.DecompressionStreamFallback=r),n}function Pt(t){let e=Np(Dp(t));Object.assign(Fl,e),Object.assign(zl,e)}var Ol,Sp,Dl,Pl,xl,Cl,Ll,Fl,Ul,Ml,vl,Ip,kl,Bl,bp,zl,Ge=se(()=>{ue();wr();Ol=64*1024,Sp=64,Dl=1,Pl="Invalid maxWorkers (must be an integer greater than 0)",xl="Invalid baseURI (must be a string)",Cl="Invalid URI (must be a string or a function returning a string)",Ll=2;try{typeof navigator!=ye&&navigator.hardwareConcurrency&&(Ll=navigator.hardwareConcurrency)}catch{}Fl={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:Ol,maxWorkers:Ll,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof CompressionStream!=ye&&CompressionStream,DecompressionStream:typeof DecompressionStream!=ye&&DecompressionStream},Ul="maxWorkers",Ml="baseURI",vl=["wasmURI","workerURI"],Ip=["useCompressionStream","useWebWorkers","transferStreams"],kl=["chunkSize",Ul,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],Bl=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],bp=[Ml,...vl,...Ip,...kl,...Bl],zl={...Fl}});function Be(t,e){let r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r}function ws(t){return t.byteOffset||t.byteLength!=t.buffer.byteLength?new Uint8Array(t):t}function L(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}var xt=se(()=>{});function Re(t){return!!t&&typeof t=="object"}var Zt=se(()=>{});var nn,Yl,Pp,xp,Cp,Lp,Fp,Up,Mp,Ve,sn=se(()=>{nn=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let e=t;for(let r=0;r<8;r++)e=e&1?e>>>1^3988292384:e>>>1;nn[0][t]=e}for(let t=0;t<256;t++)for(let e=1;e<8;e++){let r=nn[e-1][t];nn[e][t]=r>>>8^nn[0][r&255]}[Yl,Pp,xp,Cp,Lp,Fp,Up,Mp]=nn,Ve=class{constructor(e){this.crc=e||-1}append(e){let r=this.crc|0,n=e.length|0,s=0;if(n>=8&&e.buffer){let i=new DataView(e.buffer,e.byteOffset,n),a=n-8;for(;s<=a;s+=8){let o=r^i.getInt32(s,!0),c=i.getInt32(s+4,!0);r=Mp[o&255]^Up[o>>>8&255]^Fp[o>>>16&255]^Lp[o>>>24&255]^Cp[c&255]^xp[c>>>8&255]^Pp[c>>>16&255]^Yl[c>>>24&255]}}for(;s<n;s++)r=r>>>8^Yl[(r^e[s])&255];this.crc=r}get(){return~this.crc}}});var an,Wl=se(()=>{sn();an=class extends TransformStream{constructor(){let e,r=new Ve;super({transform(n,s){r.append(n),s.enqueue(n)},flush(){let n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,r.get()),e.value=n}}),e=this}}});function _r(t){if(typeof TextEncoder==ye){t=unescape(encodeURIComponent(t));let e=new Uint8Array(t.length);for(let r=0;r<e.length;r++)e[r]=t.charCodeAt(r);return e}else return new TextEncoder().encode(t)}var Ji=se(()=>{ue()});function on(t,e){Yp();let r=new Int32Array(60),n=Wp(t,r),s=new Int32Array(16/4),i=Zl(e),a=0,o=0,c=0,f=0;return{process(l,h){h&&i.update(l,0,l.length),R(l),h||i.update(l,0,l.length)},digest(){return i.digest()}};function R(l){let h=new DataView(l.buffer,l.byteOffset,l.byteLength),g=l.length,p=0;for(;p+16<=g;p+=16)E(),h.setInt32(p,h.getInt32(p)^s[0]),h.setInt32(p+4,h.getInt32(p+4)^s[1]),h.setInt32(p+8,h.getInt32(p+8)^s[2]),h.setInt32(p+12,h.getInt32(p+12)^s[3]);if(p<g){E();for(let d=0;p<g;p++,d++)l[p]^=s[d>>2]>>>24-8*(d&3)}}function E(){a=a+1|0,a||(o=o+1|0,o||(c=c+1|0,c||(f=f+1|0)));let l=_s(a)^r[0],h=_s(o)^r[1],g=_s(c)^r[2],p=_s(f)^r[3],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[4],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[5],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[6],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[7];l=O[d>>>24]^D[u>>>16&255]^P[m>>>8&255]^x[_&255]^r[8],h=O[u>>>24]^D[m>>>16&255]^P[_>>>8&255]^x[d&255]^r[9],g=O[m>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[10],p=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[m&255]^r[11],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[12],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[13],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[14],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[15],l=O[d>>>24]^D[u>>>16&255]^P[m>>>8&255]^x[_&255]^r[16],h=O[u>>>24]^D[m>>>16&255]^P[_>>>8&255]^x[d&255]^r[17],g=O[m>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[18],p=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[m&255]^r[19],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[20],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[21],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[22],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[23],l=O[d>>>24]^D[u>>>16&255]^P[m>>>8&255]^x[_&255]^r[24],h=O[u>>>24]^D[m>>>16&255]^P[_>>>8&255]^x[d&255]^r[25],g=O[m>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[26],p=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[m&255]^r[27],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[28],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[29],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[30],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[31],l=O[d>>>24]^D[u>>>16&255]^P[m>>>8&255]^x[_&255]^r[32],h=O[u>>>24]^D[m>>>16&255]^P[_>>>8&255]^x[d&255]^r[33],g=O[m>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[34],p=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[m&255]^r[35],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[36],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[37],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[38],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[39];let A=40;n>10&&(l=O[d>>>24]^D[u>>>16&255]^P[m>>>8&255]^x[_&255]^r[40],h=O[u>>>24]^D[m>>>16&255]^P[_>>>8&255]^x[d&255]^r[41],g=O[m>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[42],p=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[m&255]^r[43],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[44],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[45],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[46],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[47],A=48),n>12&&(l=O[d>>>24]^D[u>>>16&255]^P[m>>>8&255]^x[_&255]^r[48],h=O[u>>>24]^D[m>>>16&255]^P[_>>>8&255]^x[d&255]^r[49],g=O[m>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[50],p=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[m&255]^r[51],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[52],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[53],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[54],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[55],A=56),s[0]=(ce[d>>>24]<<24|ce[u>>>16&255]<<16|ce[m>>>8&255]<<8|ce[_&255])^r[A],s[1]=(ce[u>>>24]<<24|ce[m>>>16&255]<<16|ce[_>>>8&255]<<8|ce[d&255])^r[A+1],s[2]=(ce[m>>>24]<<24|ce[_>>>16&255]<<16|ce[d>>>8&255]<<8|ce[u&255])^r[A+2],s[3]=(ce[_>>>24]<<24|ce[d>>>16&255]<<16|ce[u>>>8&255]<<8|ce[m&255])^r[A+3]}}function jl(t,e,r,n){let s=Zl(t),i=new Uint8Array(n),a=new Uint8Array(e.length+4),o=new DataView(a.buffer);a.set(e);for(let c=1,f=0;f<n;c++,f+=20){o.setUint32(e.length,c),s.update(a,0,a.length);let R=s.digest(),E=R.slice();for(let l=1;l<r;l++){s.update(R,0,20),R=s.digest();for(let h=0;h<20;h++)E[h]^=R[h]}i.set(E.subarray(0,Math.min(20,n-f)),f)}return i}function Zl(t){let e=Hp(),r=new Uint8Array(64),n=new Uint8Array(64);t.length>64&&(e.update(t,0,t.length),t=e.digest());for(let s=0;s<64;s++){let i=s<t.length?t[s]:0;r[s]=i^Bp,n[s]=i^zp}return e.update(r,0,64),{update(s,i,a){e.update(s,i,a)},digest(){let s=e.digest();e.update(n,0,64),e.update(s,0,20);let i=e.digest();return e.update(r,0,64),i}}}function Hp(){let t=new Int32Array(Gl),e=new Int32Array(16),r=new Uint8Array(64),n=new DataView(r.buffer),s=new Uint8Array(8),i=0,a=0;return{update:o,digest:c};function o(R,E,l){let h=E+l;if(a+=l,i){for(;E<h&&i<64;)r[i++]=R[E++];i==64&&(f(n,0),i=0)}if(E+64<=h){let g=new DataView(R.buffer,R.byteOffset,R.byteLength);for(;E+64<=h;E+=64)f(g,E)}for(;E<h;)r[i++]=R[E++]}function c(){let R=a*8,E=Math.floor(R/4294967296),l=R>>>0;for(o(vp,0,1);i!=56;)o(kp,0,1);s[0]=E>>>24,s[1]=E>>>16,s[2]=E>>>8,s[3]=E,s[4]=l>>>24,s[5]=l>>>16,s[6]=l>>>8,s[7]=l,o(s,0,8);let h=new Uint8Array(20),g=new DataView(h.buffer);for(let p=0;p<t.length;p++)g.setInt32(4*p,t[p]);return t.set(Gl),i=0,a=0,h}function f(R,E){for(let m=0;m<16;m++)e[m]=R.getInt32(E+4*m);let l=t[0],h=t[1],g=t[2],p=t[3],d=t[4],u;for(let m=0;m<15;m+=5)d=(l<<5|l>>>27)+((g^p)&h^p)+d+1518500249+e[m]|0,h=h<<30|h>>>2,p=(d<<5|d>>>27)+((h^g)&l^g)+p+1518500249+e[m+1]|0,l=l<<30|l>>>2,g=(p<<5|p>>>27)+((l^h)&d^h)+g+1518500249+e[m+2]|0,d=d<<30|d>>>2,h=(g<<5|g>>>27)+((d^l)&p^l)+h+1518500249+e[m+3]|0,p=p<<30|p>>>2,l=(h<<5|h>>>27)+((p^d)&g^d)+l+1518500249+e[m+4]|0,g=g<<30|g>>>2;d=(l<<5|l>>>27)+((g^p)&h^p)+d+1518500249+e[15]|0,h=h<<30|h>>>2,u=e[13]^e[8]^e[2]^e[0],u=u<<1|u>>>31,e[0]=u,p=(d<<5|d>>>27)+((h^g)&l^g)+p+1518500249+u|0,l=l<<30|l>>>2,u=e[14]^e[9]^e[3]^e[1],u=u<<1|u>>>31,e[1]=u,g=(p<<5|p>>>27)+((l^h)&d^h)+g+1518500249+u|0,d=d<<30|d>>>2,u=e[15]^e[10]^e[4]^e[2],u=u<<1|u>>>31,e[2]=u,h=(g<<5|g>>>27)+((d^l)&p^l)+h+1518500249+u|0,p=p<<30|p>>>2,u=e[0]^e[11]^e[5]^e[3],u=u<<1|u>>>31,e[3]=u,l=(h<<5|h>>>27)+((p^d)&g^d)+l+1518500249+u|0,g=g<<30|g>>>2;for(let m=20;m<40;m+=5)u=e[m-3&15]^e[m-8&15]^e[m-14&15]^e[m&15],u=u<<1|u>>>31,e[m&15]=u,d=(l<<5|l>>>27)+(h^g^p)+d+1859775393+u|0,h=h<<30|h>>>2,u=e[m-2&15]^e[m-7&15]^e[m-13&15]^e[m+1&15],u=u<<1|u>>>31,e[m+1&15]=u,p=(d<<5|d>>>27)+(l^h^g)+p+1859775393+u|0,l=l<<30|l>>>2,u=e[m-1&15]^e[m-6&15]^e[m-12&15]^e[m+2&15],u=u<<1|u>>>31,e[m+2&15]=u,g=(p<<5|p>>>27)+(d^l^h)+g+1859775393+u|0,d=d<<30|d>>>2,u=e[m&15]^e[m-5&15]^e[m-11&15]^e[m+3&15],u=u<<1|u>>>31,e[m+3&15]=u,h=(g<<5|g>>>27)+(p^d^l)+h+1859775393+u|0,p=p<<30|p>>>2,u=e[m+1&15]^e[m-4&15]^e[m-10&15]^e[m+4&15],u=u<<1|u>>>31,e[m+4&15]=u,l=(h<<5|h>>>27)+(g^p^d)+l+1859775393+u|0,g=g<<30|g>>>2;for(let m=40;m<60;m+=5)u=e[m-3&15]^e[m-8&15]^e[m-14&15]^e[m&15],u=u<<1|u>>>31,e[m&15]=u,d=(l<<5|l>>>27)+(h&g|(h|g)&p)+d+2400959708+u|0,h=h<<30|h>>>2,u=e[m-2&15]^e[m-7&15]^e[m-13&15]^e[m+1&15],u=u<<1|u>>>31,e[m+1&15]=u,p=(d<<5|d>>>27)+(l&h|(l|h)&g)+p+2400959708+u|0,l=l<<30|l>>>2,u=e[m-1&15]^e[m-6&15]^e[m-12&15]^e[m+2&15],u=u<<1|u>>>31,e[m+2&15]=u,g=(p<<5|p>>>27)+(d&l|(d|l)&h)+g+2400959708+u|0,d=d<<30|d>>>2,u=e[m&15]^e[m-5&15]^e[m-11&15]^e[m+3&15],u=u<<1|u>>>31,e[m+3&15]=u,h=(g<<5|g>>>27)+(p&d|(p|d)&l)+h+2400959708+u|0,p=p<<30|p>>>2,u=e[m+1&15]^e[m-4&15]^e[m-10&15]^e[m+4&15],u=u<<1|u>>>31,e[m+4&15]=u,l=(h<<5|h>>>27)+(g&p|(g|p)&d)+l+2400959708+u|0,g=g<<30|g>>>2;for(let m=60;m<80;m+=5)u=e[m-3&15]^e[m-8&15]^e[m-14&15]^e[m&15],u=u<<1|u>>>31,e[m&15]=u,d=(l<<5|l>>>27)+(h^g^p)+d+3395469782+u|0,h=h<<30|h>>>2,u=e[m-2&15]^e[m-7&15]^e[m-13&15]^e[m+1&15],u=u<<1|u>>>31,e[m+1&15]=u,p=(d<<5|d>>>27)+(l^h^g)+p+3395469782+u|0,l=l<<30|l>>>2,u=e[m-1&15]^e[m-6&15]^e[m-12&15]^e[m+2&15],u=u<<1|u>>>31,e[m+2&15]=u,g=(p<<5|p>>>27)+(d^l^h)+g+3395469782+u|0,d=d<<30|d>>>2,u=e[m&15]^e[m-5&15]^e[m-11&15]^e[m+3&15],u=u<<1|u>>>31,e[m+3&15]=u,h=(g<<5|g>>>27)+(p^d^l)+h+3395469782+u|0,p=p<<30|p>>>2,u=e[m+1&15]^e[m-4&15]^e[m-10&15]^e[m+4&15],u=u<<1|u>>>31,e[m+4&15]=u,l=(h<<5|h>>>27)+(g^p^d)+l+3395469782+u|0,g=g<<30|g>>>2;t[0]=t[0]+l|0,t[1]=t[1]+h|0,t[2]=t[2]+g|0,t[3]=t[3]+p|0,t[4]=t[4]+d|0}}function Yp(){if(!Vl){let t=1,e=1;do t=(t^t<<1^(t&128?27:0))&255,e=(e^e<<1)&255,e=(e^e<<2)&255,e=(e^e<<4)&255,e&128&&(e^=9),ce[t]=(e^(e<<1|e>>7)^(e<<2|e>>6)^(e<<3|e>>5)^(e<<4|e>>4)^99)&255;while(t!=1);ce[0]=99;for(let r=0;r<256;r++){let n=ce[r],s=Kl(n),i=s<<24|n<<16|n<<8|s^n;O[r]=i,D[r]=i>>>8|i<<24,P[r]=i>>>16|i<<16,x[r]=i>>>24|i<<8}Vl=!0}}function Wp(t,e){let r=t.length>>2,n=r+6,s=4*(n+1),i=1;for(let a=0;a<r;a++)e[a]=t[4*a]<<24|t[4*a+1]<<16|t[4*a+2]<<8|t[4*a+3];for(let a=r;a<s;a++){let o=e[a-1];a%r==0?(o=Xl(o<<8|o>>>24)^i<<24,i=Kl(i)):r>6&&a%r==4&&(o=Xl(o)),e[a]=e[a-r]^o}return n}function Xl(t){return ce[t>>>24]<<24|ce[t>>>16&255]<<16|ce[t>>>8&255]<<8|ce[t&255]}function _s(t){return t<<24|(t&65280)<<8|t>>>8&65280|t>>>24}function Kl(t){return(t<<1^(t>>7)*27)&255}var vp,kp,Gl,Bp,zp,ce,O,D,P,x,Vl,Qi=se(()=>{vp=new Uint8Array([128]),kp=new Uint8Array(1),Gl=new Int32Array([1732584193,4023233417,2562383102,271733878,3285377520]),Bp=54,zp=92,ce=new Uint8Array(256),O=new Int32Array(256),D=new Int32Array(256),P=new Int32Array(256),x=new Int32Array(256),Vl=!1});function Ts(t){if(Gp)return crypto.getRandomValues(t);throw new Error(Tr)}var Gp,Xe,Ct,lt,Tr,As=se(()=>{ue();Gp=typeof crypto!=ye&&typeof crypto.getRandomValues==K,Xe="Invalid password",Ct="Invalid authentication code",lt="zipjs-abort-check-password",Tr="Crypto API not supported"});function tf(t){ef=t||on}function rf(t,e,r,n){Object.assign(t,{ready:new Promise(s=>t.resolveReady=s),password:rE(e,r),strength:n-1,pendingInput:j,discarded:!1})}function nf(t,e){let r=t.readable.getReader(),n=new ReadableStream({async pull(s){try{let{value:i,done:a}=await r.read();a?s.close():s.enqueue(i)}catch(i){throw fn(e),r.cancel(i).catch(()=>{}),i}},cancel(s){return fn(e),r.cancel(s)}});Object.defineProperty(t,"readable",{get(){return n}})}function sf(t,e,r,n,s,i){let{engine:a,pendingInput:o}=t;o.length&&(e=Be(o,e));let c=e.length-s,f=c-c%ea;if(r=nE(r,n+f),f){let R=xe(r,n,n+f);R.set(xe(e,0,f)),a.process(R,i)}return t.pendingInput=xe(e,f),r}async function $p(t,e,r,n){let s=await af(t,e,r,xe(n,0,cn[e])),i=xe(n,cn[e]);if(s[0]!=i[0]||s[1]!=i[1])throw fn(t),new Error(Xe)}function fn(t){let{engine:e}=t;t.discarded=!0,e&&e.dispose&&e.dispose()}async function eE(t,e,r){let n=Ts(new Uint8Array(cn[e])),s=await af(t,e,r,n);return Be(n,s)}async function af(t,e,r,n){t.password=null;let s=Jp[e],i=await tE(r,n,s*2+$i);return t.engine=ef(xe(i,0,s),xe(i,s,s*2)),t.discarded&&fn(t),xe(i,s*2)}async function tE(t,e,r){if(ql)try{let n=await ln.importKey(Vp,t,Zp,!1,qp);return new Uint8Array(await ln.deriveBits(Object.assign({salt:e},Kp),n,r*8))}catch{ql=!1}return jl(t,e,Ql,r)}function rE(t,e){return e===w?_r(t):e}function nE(t,e){if(e&&e>t.length){let r=t;t=new Uint8Array(e),t.set(r,0)}return t}function xe(t,e,r){return t.subarray(e,r)}var ea,Vp,Jl,Xp,jp,Ql,Zp,Kp,qp,cn,Jp,Lt,$i,$l,ln,Qp,ql,ef,ys,Ss,ta=se(()=>{ue();Ji();xt();Qi();As();ea=16,Vp="raw",Jl={name:"PBKDF2"},Xp={name:"HMAC"},jp="SHA-1",Ql=1e3,Zp=Object.assign({hash:Xp},Jl),Kp=Object.assign({iterations:Ql,hash:{name:jp}},Jl),qp=["deriveBits"],cn=[8,12,16],Jp=[16,24,32],Lt=10,$i=2,$l=typeof crypto!=ye,ln=$l&&crypto.subtle,Qp=$l&&typeof ln!=ye,ql=Qp&&typeof ln.importKey==K&&typeof ln.deriveBits==K,ef=on,ys=class extends TransformStream{constructor({password:e,rawPassword:r,encryptionStrength:n,checkPasswordOnly:s,checkAuthenticationCode:i=!0}){let a={};super({start(){rf(a,e,r,n)},async transform(o,c){let{password:f,strength:R,resolveReady:E,ready:l}=a;if(f?(await $p(a,R,f,xe(o,0,cn[R]+$i)),o=xe(o,cn[R]+$i),s?(fn(a),c.error(new Error(lt))):E()):await l,a.discarded)return;let h=new Uint8Array(o.length-Lt-(o.length-Lt)%ea);c.enqueue(sf(a,o,h,0,Lt,!0))},async flush(o){let{engine:c,pendingInput:f,ready:R}=a;if(c){if(await R,a.discarded)return;let E=xe(f,f.length-Lt),l=new Uint8Array(xe(f,0,f.length-Lt));c.process(l,!0);let h=c.digest(),g=f.length<Lt?1:0;for(let p=0;p<Lt;p++)g|=h[p]^E[p];if(g&&i){o.error(new Error(Ct));return}o.enqueue(l)}}}),nf(this,a)}},Ss=class extends TransformStream{constructor({password:e,rawPassword:r,encryptionStrength:n}){let s={};super({start(){rf(s,e,r,n)},async transform(i,a){let{password:o,strength:c,resolveReady:f,ready:R}=s,E=j;if(o?(E=await eE(s,c,o),f()):await R,s.discarded)return;let l=new Uint8Array(E.length+i.length-i.length%ea);l.set(E,0),a.enqueue(sf(s,i,l,E.length,0,!1))},async flush(i){let{engine:a,pendingInput:o,ready:c}=s;if(a){if(await c,s.discarded)return;let f=new Uint8Array(o);a.process(f,!1);let R=xe(a.digest(),0,Lt);i.enqueue(Be(f,R))}}}),nf(this,s)}}});function ff(t,e,r,n){Object.assign(t,{password:e,rawPassword:r,passwordVerification:n}),sE(t,e,r)}function of(t,e){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=uf(t)^e[n],Ns(t,r[n]);return r}function cf(t,e){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=uf(t)^e[n],Ns(t,e[n]);return r}function sE(t,e,r){let n=[305419896,591751049,878082192];if(Object.assign(t,{cryptoKeys:n,crcKey0:new Ve(n[0]),crcKey2:new Ve(n[2])}),r)for(let s=0;s<r.length;s++)Ns(t,r[s]);else for(let s=0;s<e.length;s++)Ns(t,e.charCodeAt(s))}function Ns(t,e){let[,r]=t.cryptoKeys;t.crcKey0.append([e]);let n=~t.crcKey0.get();r=lf(Math.imul(lf(r+df(n)),134775813)+1),t.crcKey2.append([r>>>24]);let s=~t.crcKey2.get();t.cryptoKeys=[n,r,s]}function uf(t){let e=t.cryptoKeys[2]|2;return df(Math.imul(e,e^1)>>>8)}function df(t){return t&255}function lf(t){return t&4294967295}var Ar,Is,bs,pf=se(()=>{sn();As();Ar=12,Is=class extends TransformStream{constructor({password:e,rawPassword:r,passwordVerification:n,checkPasswordOnly:s}){super({start(){ff(this,e,r,n)},transform(i,a){let o=this;if(o.password||o.rawPassword){let c=of(o,i.subarray(0,Ar));if(o.password=o.rawPassword=null,(c[Ar-1]^o.passwordVerification)!=0)throw new Error(Xe);i=i.subarray(Ar)}s?a.error(new Error(lt)):a.enqueue(of(o,i))}})}},bs=class extends TransformStream{constructor({password:e,rawPassword:r,passwordVerification:n}){super({start(){ff(this,e,r,n)},transform(s,i){let a=this,o,c;if(a.password||a.rawPassword){a.password=a.rawPassword=null;let f=Ts(new Uint8Array(Ar));f[Ar-1]=a.passwordVerification,o=new Uint8Array(s.length+f.length),o.set(cf(a,f),0),c=Ar}else o=new Uint8Array(s.length),c=0;o.set(cf(a,s),c),i.enqueue(o)}})}}});function ze(t){if(t instanceof ReadableStream)return t;let e=t.getReader();return new ReadableStream({async pull(r){try{let{value:n,done:s}=await e.read();s?r.close():r.enqueue(n)}catch(n){throw e.cancel(n).catch(()=>{}),n}},cancel(r){return e.cancel(r)}})}function ft(t,e){t=ze(t);let r=e?{type:e}:{};if(iE())return new Response(t).blob().then(s=>e?new Blob([s],r):s);let n=[];return t.pipeTo(new WritableStream({write(s){n.push(s)}})).then(()=>new Blob(n,r))}function iE(){return typeof Blob.prototype.stream!=K||new Blob([]).stream()instanceof ReadableStream}function ra(t){if(t instanceof WritableStream)return t;let e=t.getWriter();return new WritableStream({write(r){return e.write(r)},close(){return e.close()},abort(r){return e.abort(r)}})}var Kt=se(()=>{ue()});function Os(t){return aE.get(t)}function Ds(t){return na.get(t)}function oE(t,e){let{CompressionStream:r,DecompressionStream:n}=e;if(typeof r!=K&&typeof n!=K)throw new Error(Ef);na.set(t,{CompressionStream:r,DecompressionStream:n})}async function mf(t,e){!na.has(t)&&e&&oE(t,await import(e))}var Ef,ut,aE,na,Jt=se(()=>{ue();Ef="Invalid codec module",ut="Compression method not supported",aE=new Map,na=new Map});function fE(t,e,r,n,s){let i=e.writable.getWriter(),a=e.readable.getReader(),o=n===w?new Ve:w,c=0,f=!1,R=!1,E,l,h=new ReadableStream({start(A){l=A},pull(){m()},cancel(A){return R=!0,m(),a.cancel(A)}});return g(),p(),h;async function g(){let A=t.getReader();try{let T=new Uint8Array(Rf);for(T.set(lE),await i.write(T);;){await u(),await i.ready;let{value:I,done:N}=await Sf(A,s);if(N)break;await i.write(I)}o&&await i.write(new Uint8Array(0));let y=new Uint8Array(sa),S=L(y);S.setUint32(0,o?o.get():n,!0),S.setUint32(4,r,!0),f=!0,await i.write(y),await i.close()}catch(T){await yf(i,T),await Ls(A,T)}}async function p(){try{for(;;){let{value:A,done:T}=await d();if(T)break;if(c+=A.length,c>r)throw new Error(Je);o&&o.append(A),l.enqueue(A)}R||(R=!0,l.close())}catch(A){_(A),await Ls(a,A)}}function d(){return a.read().catch(A=>{if(f){if(!o)throw Us(A,Ft);if(c!=r)throw Us(A,Je);return{done:!0}}throw If(A,s)})}function u(){if(!R&&l.desiredSize<=0)return new Promise(A=>E=A)}function m(){if(E){let A=E;E=w,A()}}function _(A){R||(R=!0,l.error(A),m())}}function aa(t,e){if(!t)return!1;let r=hf.get(t);r||(r=new Map,hf.set(t,r));let n=r.get(e);if(n===w){try{new t(e),n=!0}catch{n=!1}r.set(e,n)}return n}function Ms(t){return aa(t,ia)}function oa(t){return aa(t,Sr)}function wf(t,e,r){e=dt(e,new TransformStream({flush:r})),Object.defineProperty(t,"readable",{get(){return e}})}function _f(t,e,r){if(!t)throw new Error(ut);return new t(e,r)}function Tf(t,e,r){if(t&&e)return e;if(r&&r.requiresModule)return r}function Af(t,e,r,n,s,i){let a=e&&n?n:s||n,o=r.deflate64?gf:ia,c;try{c=new a(o,r)}catch(f){if(e&&s&&a!=s)c=new s(o,r);else throw f}return dn(t,c,i)}function dt(t,e){return ze(t).pipeThrough(e)}function dn(t,e,r){let n=e.writable.getWriter(),s=t.getReader();return i(),e.readable;async function i(){try{for(;;){await n.ready;let a=await Sf(s,r);if(a.done){await n.close();break}await n.write(a.value)}}catch(a){await yf(n,a),await Ls(s,a)}}}async function yf(t,e){try{await t.abort(e)}catch{}}async function Ls(t,e){try{await t.cancel(e)}catch{}}function Sf(t,e){let r=t.read();return e?r.catch(n=>{throw e.add(n),n}):r}function If(t,e){return e.has(t)?t:Us(t,bf(t)?$t:Qt)}function Fs(t){return bf(t)?Us(t,$t):t}function bf(t){return Re(t)&&t.code==cE}function Us(t,e){let r=new Error(e);return r.cause=t,r}function uE(t,e){let r=t.getReader();return new ReadableStream({async pull(n){try{let{value:s,done:i}=await r.read();i?n.close():n.enqueue(s)}catch(s){throw await Ls(r,s),If(s,e)}},cancel(n){return r.cancel(n)}})}var Je,Qt,$t,Ft,cE,ia,gf,Sr,Rf,sa,lE,Ps,xs,Cs,hf,ca=se(()=>{sn();Wl();ta();pf();As();ue();xt();Kt();Zt();Jt();Je="Invalid uncompressed size",Qt="Invalid compressed data",$t="Codec out of memory",Ft="Invalid CRC32",cE="Z_MEM_ERROR",ia="deflate-raw",gf="deflate64-raw",Sr="gzip",Rf=10,sa=8,lE=[31,139,8],Ps=class extends TransformStream{constructor(e,{chunkSize:r,CompressionStreamFallback:n,CompressionStream:s}){super({});let{compressed:i,encrypted:a,useCompressionStream:o,zipCrypto:c,computeCrc32:f,level:R,deflate64:E,format:l,compressionMethod:h,inputSize:g}=e,p=this,d,u,m,_=super.readable,A=l&&Ds(l),T=Tf(o,s,n),y=f&&i&&!E&&!A&&(!a||c)&&!!T;if((!a||c)&&f&&!y&&(d=new an,_=dt(_,d)),i)if(A)_=dn(_,_f(A.CompressionStream,l,{level:R,chunkSize:r,compressionMethod:h,uncompressedSize:g}));else if(y)m=new xs,_=dn(_,new T(Sr,{level:R,chunkSize:r})),_=dt(_,m);else try{_=Af(_,o,{level:R,chunkSize:r},s,n)}catch(S){if(!o&&n)throw Fs(S);let I;try{I=new s(Sr)}catch{throw Fs(S)}_=dn(_,I),_=dt(_,new xs)}a&&(c?_=dt(_,new bs(e)):(u=new Ss(e),_=dt(_,u))),wf(p,_,()=>{(!a||c)&&f&&(p.crc32=y?m.crc32:new DataView(d.value.buffer).getUint32(0))})}},xs=class extends TransformStream{constructor(){let e,r=Rf,n=new Uint8Array(0);super({transform(s,i){if(r){let f=Math.min(r,s.length);if(r-=f,s=s.subarray(f),!s.length)return}let a=n.length+s.length;if(a<=sa){n=Be(n,s);return}let o=a-sa,c=Math.min(o,n.length);i.enqueue(Be(n.subarray(0,c),s.subarray(0,o-c))),n=Be(n.subarray(c),s.subarray(o-c))},flush(){let s=L(n);e.crc32=s.getUint32(0,!0),e.uncompressedSize=s.getUint32(4,!0)}}),e=this}};Cs=class extends TransformStream{constructor(e,{chunkSize:r,DecompressionStreamFallback:n,DecompressionStream:s}){super({});let{zipCrypto:i,encrypted:a,checkCrc32:o,crc32:c,compressed:f,useCompressionStream:R,deflate64:E,format:l,compressionMethod:h,rawBitFlag:g,outputSize:p}=e,d,u,m,_=super.readable;if(a&&(i?_=dt(_,new Is(e)):(u=new ys(e),_=dt(_,u))),f){let A=new Set,T=l&&Ds(l),y;if(T)_=dn(_,_f(T.DecompressionStream,l,{chunkSize:r,compressionMethod:h,rawBitFlag:g,uncompressedSize:p}),A);else{let S=Tf(R,s,n);if(o&&!E&&c!==w&&p!==w&&S)try{y=new S(Sr,{chunkSize:r})}catch{y=w}if(!y)try{_=Af(_,R,{chunkSize:r,deflate64:E},s,n,A)}catch(I){if(E||p===w||!R&&n)throw Fs(I);try{y=new s(Sr)}catch{throw Fs(I)}}}y?(m=!0,_=fE(_,y,p,c,A)):_=uE(_,A)}o&&!m&&(d=new an,_=dt(_,d)),wf(this,_,()=>{if(d){let A=new DataView(d.value.buffer).getUint32(0,!1);if(c!=A)throw new Error(Ft)}})}},hf=new Map});var dE,Nf,Of,Df,la,Pf,xf,Ir,ks,vs,pn,Bs=se(()=>{ue();ca();dE=64*1024,Nf="message",Of="start",Df="pull",la="data",Pf="ack",xf="close",Ir="deflate",ks="inflate",vs=class extends TransformStream{constructor(e,r){super({});let n=this,{codecType:s}=e,i;s.startsWith(Ir)?i=Ps:s.startsWith(ks)&&(i=Cs),n.outputSize=0;let a=0,o=new i(e,r),c=super.readable,f=new TransformStream({transform(E,l){E&&E.length&&(a+=E.length,l.enqueue(E))},flush(){Object.assign(n,{inputSize:a})}}),R=new TransformStream({transform(E,l){if(E&&E.length&&(l.enqueue(E),n.outputSize+=E.length,e.outputSize!==w&&n.outputSize>e.outputSize))throw new Error(Je)},flush(){let{crc32:E}=o;Object.assign(n,{crc32:E,inputSize:a})}});Object.defineProperty(n,"readable",{get(){return c.pipeThrough(f).pipeThrough(o).pipeThrough(R)}})}},pn=class extends TransformStream{constructor(e){let r=[],n=0,s=0;(!Number.isFinite(e)||e<1)&&(e=dE),super({transform(o,c){for(r.push(o),n+=o.length;n>e;)s+=e,c.enqueue(i())},flush(o){n&&(s+=n,o.enqueue(a(r,n)))}}),Object.defineProperty(this,"outputSize",{get:()=>s});function i(){let o=new Uint8Array(e),c=0;for(;c<e;){let f=r[0],R=e-c;f.length<=R?(o.set(f,c),c+=f.length,r.shift()):(o.set(f.subarray(0,R),c),r[0]=f.subarray(R),c+=R)}return n-=e,o}function a(o,c){let f=new Uint8Array(c),R=0;for(let E of o)f.set(E,R),R+=E.length;return f}}}});function Lf({initModule:t}){ua=t}function Ff(t){fa=t}async function Uf(t){let{CompressionStream:e,CompressionStreamFallback:r}=t;return r&&!r.requiresModule||Ms(e)||oa(e)?!0:r?await Mf(t):!1}async function Mf(t){if(ua)try{return await ua(t),!0}catch{}return!1}function da(t){t.createWorker?Cf=!0:zs=!1}async function Hs(t,...e){try{await t(...e)}catch{}}function pa(t,e){return{run:()=>Ws(t,e)}}async function Ws({options:t,readable:e,writable:r,onTaskFinished:n,workerOptions:s},i){let a,o,c;try{if(t.compressed&&!t.format){let g=t.codecType.startsWith(Ir),p=g?i.CompressionStreamFallback:i.DecompressionStreamFallback,d=g?i.CompressionStream:i.DecompressionStream;t.useCompressionStream?p&&p.requiresModule&&!Ms(d)&&await f():!await f()&&(!p||p.requiresModule)&&(t.useCompressionStream=!0)}t.encrypted&&!t.zipCrypto&&await f(),a=new vs(t,i),o=new pn(rn(i));let{signal:R}=s.streamOptions;await e.pipeThrough(a).pipeThrough(o).pipeTo(r,{preventClose:!0,preventAbort:!0,signal:R});let{crc32:E,inputSize:l,outputSize:h}=a;return{crc32:E,inputSize:l,outputSize:h}}catch(R){if(a){let E=o?o.outputSize:0;if(s.outputSize=E,Re(R))try{R.outputSize=E}catch{}}throw R}finally{n()}function f(){return c||(c=Mf(i)),c}}var er,zs,Cf,fa,ua,Ut,Ys,br=se(()=>{ue();Ge();Zt();Bs();er="Worker startup timeout",ua=()=>{};Ut=class{constructor(e,{readable:r,writable:n},s,i){let{options:a,config:o,streamOptions:c,useWebWorkers:f,transferStreams:R,workerURI:E}=s,{createWorker:l}=s,{signal:h}=c;return Cf&&(l=w),Object.assign(e,{busy:!0,generation:(e.generation||0)+1,readable:r.pipeThrough(new pn(rn(o))).pipeThrough(new Ys(c),{signal:h}),writable:n,options:Object.assign({},a),workerOptions:s,workerURI:E,createWorker:l,transferStreams:R,terminate(){return new Promise(g=>{let{worker:p,busy:d}=e;d?(e.terminateResolvers=e.terminateResolvers||[],e.terminateResolvers.push(g)):(p&&(p.terminate(),e.worker=null),g()),e.interface=null})},onTaskFinished(){if(e.busy){let{terminateResolvers:g,worker:p}=e;g&&(e.terminateResolvers=null,p&&(e.terminated=!0,p.terminate())),e.busy=!1;let d=i(e);g&&g.forEach(u=>u(d))}}}),zs===w&&(zs=typeof Worker!=ye),(f&&fa&&(zs&&E||l)?fa:pa)(e,o)}},Ys=class extends TransformStream{constructor({onstart:e,onprogress:r,size:n,onend:s}){let i=0;super({async start(){e&&await Hs(e,n)},async transform(a,o){i+=a.length,r&&await Hs(r,i,n),o.enqueue(a)},async flush(){s&&await Hs(s,i)}})}}});async function js(t,e){let{options:r,config:n}=e,{transferStreams:s,useWebWorkers:i,useCompressionStream:a,compressed:o,checkCrc32:c,computeCrc32:f,encrypted:R,format:E,codecURI:l}=r,{workerURI:h,createWorker:g,maxWorkers:p}=n;E&&(l&&(r.codecURI=_E(l,n.baseURI)),await mf(E,r.codecURI)),e.transferStreams=!E&&(s||s===w&&n.transferStreams);let d=!o&&!c&&!f&&!R,u=E===w||!!r.codecURI;return e.useWebWorkers=!d&&u&&(i||i===w&&n.useWebWorkers),e.workerURI=e.useWebWorkers&&h?h:w,e.createWorker=e.useWebWorkers&&g?g:w,r.useCompressionStream=a||a===w&&n.useCompressionStream,(await m()).run();async function m(){let A=tr.find(T=>!T.busy);if(A)return Vf(A),new Ut(A,t,e,_);if(tr.length<p){let T={indexWorker:Gf};return Gf++,tr.push(T),new Ut(T,t,e,_)}else return new Promise(T=>{rr.push({resolve:T,stream:t,workerOptions:e}),Vs=n.workerStarvationTimeout,Xs()})}function _(A){if(wa(),A.terminated)return A.terminated=!1,AE();if(rr.length){let[{resolve:T,stream:y,workerOptions:S}]=rr.splice(0,1);T(new Ut(A,y,S,_)),Xs()}else A.worker?(Vf(A),yE(A,e)):tr=tr.filter(T=>T!=A)}}function _E(t,e){try{return new URL(t,e).toString()}catch{return t}}function Xs(){!Nr&&rr.length&&Number.isFinite(Vs)&&Vs>=0&&(Nr=setTimeout(TE,Vs))}function wa(){Nr&&(clearTimeout(Nr),Nr=null)}function TE(){if(Nr=null,rr.length){let[{resolve:t,stream:e,workerOptions:r}]=rr.splice(0,1);t(new Ut({},e,Xf(r),jf)),Xs()}}function AE(){let t=rr.splice(0).map(({resolve:e,stream:r,workerOptions:n})=>new Promise(s=>{e(new Ut({},r,Xf(n),()=>{jf(),s()}))}));return wa(),Promise.all(t)}function Xf(t){return Object.assign({},t,{useWebWorkers:!1,workerURI:w,createWorker:w})}function jf(){wa(),Xs()}function yE(t,e){let{config:r}=e,{terminateWorkerTimeout:n}=r;Number.isFinite(n)&&n>=0&&(t.terminateTimeout=setTimeout(async()=>{tr=tr.filter(s=>s!=t);try{await t.terminate()}catch{}},n))}function Vf(t){let{terminateTimeout:e}=t;e&&(clearTimeout(e),t.terminateTimeout=null)}var tr,rr,Nr,Vs,Gf,Zs=se(()=>{ue();Bs();Jt();br();tr=[],rr=[],Gf=0});function Zf(t){let e="";for(let r=0;r<t.length;r++)e+=SE[t[r]];return e}var SE,Kf=se(()=>{SE="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0".split("")});function En(t,e){return IE(t,e,!0)}function _a(t){if(t.some(e=>e>127))try{return new TextDecoder("utf-8",{fatal:!0}).decode(t),!0}catch{return!1}else return!1}function IE(t,e,r){return e&&e.trim().toLowerCase()=="cp437"?Zf(t):new TextDecoder(e,{ignoreBOM:r}).decode(t)}var Ta=se(()=>{Kf()});function NE(){$f=(async()=>{try{let e=new Blob([new Uint8Array(3)]).slice(1,2).stream().getReader(),r=0,n=await e.read();for(;!n.done;)r+=n.value.length,n=await e.read();Aa=r==1}catch{Aa=!1}})()}function mn(t){return!!(t&&t.getData)}async function ge(t,e){if(t.init&&!t.initialized)await t.init(e);else return Promise.resolve()}async function OE(t){return t=new Et(t),await ge(t),(t.size===w||!t.readUint8Array)&&(t=new Qe(await ft(t.readable)),await ge(t)),t}function re(t,e,r){return t.readUint8Array(e,r)}function ya(t,e){return t.createReadable?t.createReadable(e):t.readUint8Array?pt.prototype.createReadable.call(t,e):t.readable}var Jf,Qf,FR,UR,MR,bE,qf,Ks,pt,Aa,$f,Qe,qs,Js,Et,Or,hn=se(()=>{ue();Ge();xt();Kt();Ta();Jf="Writer iterator completed too soon",Qf="Invalid writer (size must be writable)",FR=256*1024,UR=16*1024*1024,MR=65557,bE="writable",qf=Symbol(),Ks=class{constructor(){this.size=0}init(){this.initialized=!0}},pt=class extends Ks{get readable(){return this.createReadable()}createReadable({offset:e=0,size:r,chunkSize:n=rn(ot())}={}){let s=this,i=0;return n=qi(n),new ReadableStream({async pull(a){let o=r===w?n:Math.min(n,r-i),c=await re(s,e+i,o);c.length&&(a.enqueue(c),i+=c.length),(r!==w&&i>=r||!c.length&&o)&&a.close()}})}};Qe=class extends pt{constructor(e){super(),Object.assign(this,{sourceBlob:e,size:e.size}),$f||NE()}createReadable(e){let r=this,{sourceBlob:n,size:s}=r,{offset:i=0,size:a=s-i}=e||{};if(typeof n.stream==K){if(!i&&a>=s)return ze(n.stream());if(Aa)return ze(n.slice(i,i+a).stream())}return super.createReadable(e)}async readUint8Array(e,r){let n=this,s=e+r,o=await(!e&&s>=n.size?n.sourceBlob:n.sourceBlob.slice(e,s)).arrayBuffer();return o.byteLength>r&&(o=o.slice(e,s)),new Uint8Array(o)}},qs=class extends pt{constructor(e){super(),this.readers=e}async init(){let e=this;e.lastDiskNumber=0;let r=e.readers=await Promise.all(e.readers.map(OE));e.diskOffsets=r.map(n=>{let s=e.size;return e.size+=n.size,s}),super.init()}getDiskOffset(e){let{diskOffsets:r,size:n}=this,s=r[e];return s===w?n:s}async readUint8Array(e,r){let n=this,{readers:s}=this,i,a=0,o=e;for(;s[a]&&o>=s[a].size;)o-=s[a].size,a++;let c=s[a];if(c){let f=c.size;if(o+r<=f)i=await re(c,o,r);else{let R=f-o,E=await re(c,o,R),l=await n.readUint8Array(e+R,r-R);i=Be(E,l)}}else i=j;return n.lastDiskNumber=Math.max(a,n.lastDiskNumber),i}},Js=class extends Ks{constructor(e,r=4294967295){super();let n=this;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:r,availableSize:r});let s,i,a,o=new WritableStream({async write(E){if(E===qf){a&&await f();return}let{availableSize:l}=n;if(a)E.length>=l?(await c(E.subarray(0,l)),await f(),E.length>l&&await this.write(E.subarray(l))):await c(E);else{let{value:h,done:g}=await e.next();if(g&&!h)throw new Error(Jf);s=h,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await ge(s),i=h.writable,a=i.getWriter(),await this.write(E)}},async close(){a&&(await a.ready,await R())},async abort(E){a&&await a.abort(E)}});Object.defineProperty(n,bE,{get(){return o}});async function c(E){let l=E.length;l&&(await a.ready,await a.write(E),s.size+=l,n.availableSize-=l)}async function f(){await R(),n.diskOffset+=s.size,n.diskNumber++,a=null,n.availableSize=n.maxSize}async function R(){await a.close()}}async closeDisk(){let e=this.writable.getWriter();try{await e.ready,await e.write(qf)}finally{e.releaseLock()}}},Et=class{constructor(e){return Array.isArray(e)&&(e=new qs(e)),(e instanceof ReadableStream||typeof e.getReader==K)&&(e={readable:ze(e)}),e}},Or=class{constructor(e){e.writable===w&&typeof e.next==K&&(e=new Js(e)),(e instanceof WritableStream||typeof e.getWriter==K)&&(e={writable:ra(e)});try{e.size=e.size===w?0:e.size}catch{throw new Error(Qf)}return e}}});function Te(t,e,r){if(!t.some(n=>n.reason==e)){let n={reason:e};r!==w&&(n.filename=r),t.push(n)}}var Sa=se(()=>{ue()});function eu(t){if(t){let e=new Map;if(t.forEach((r,n)=>{JE.has(n)||e.set(n,r.data)}),e.size)return e}}function Nn(t,e,r){return t?e?12:16+r*4:0}var Da,Pa,An,xa,yn,Ca,La,Fa,sr,Pr,Sn,Ua,In,Ma,va,ka,Ba,za,Ha,Qs,Ya,Wa,Ga,Va,ir,Xa,DE,ja,$s,PE,bn,xE,CE,LE,FE,Za,Ka,qa,Ja,Qa,$a,UE,ME,vE,kE,BE,zE,HE,YE,WE,GE,VE,XE,jE,ZE,KE,qE,mt,JE,ei=se(()=>{ue();Da="filename",Pa="rawFilename",An="comment",xa="rawComment",yn="uncompressedSize",Ca="compressedSize",La="offset",Fa="diskNumberStart",sr="lastModDate",Pr="rawLastModDate",Sn="lastAccessDate",Ua="rawLastAccessDate",In="creationDate",Ma="rawCreationDate",va="internalFileAttributes",ka="externalFileAttributes",Ba="msdosAttributesRaw",za="msdosAttributes",Ha="msDosCompatible",Qs="zip64",Ya="encrypted",Wa="version",Ga="versionMadeBy",Va="zipCrypto",ir="directory",Xa="executable",DE="symlink",ja="compressionMethod",$s="signature",PE="crc32",bn="extraField",xE="extraFieldInfoZip",CE="extraFieldUnix",LE="extraFieldUnixType1",FE="extraFieldPkwareUnix",Za="uid",Ka="gid",qa="unixMode",Ja="setuid",Qa="setgid",$a="sticky",UE="bitFlag",ME="rawBitFlag",vE="filenameLength",kE="extraFieldLength",BE="unixExternalUpper",zE="filenameUTF8",HE="commentUTF8",YE="rawExtraField",WE="extraFieldZip64",GE="extraFieldUnicodePath",VE="extraFieldUnicodeComment",XE="extraFieldAES",jE="extraFieldNTFS",ZE="extraFieldExtendedTimestamp",KE="extraFieldUSDZ",qE=[Da,Pa,yn,Ca,sr,Pr,An,xa,Sn,Ua,In,Ma,La,Fa,va,ka,Ba,za,Ha,Qs,Ya,Wa,Ga,Va,ir,Xa,DE,ja,$s,PE,bn,CE,xE,LE,FE,Za,Ka,qa,BE,Ja,Qa,$a,UE,ME,vE,kE,zE,HE,YE,WE,GE,VE,XE,jE,ZE,KE],mt=class{constructor(e){qE.forEach(r=>this[r]=e[r])}},JE=new Set([1,39169,10,21589,28789,25461,6534,30837,30805,22613,13])});var Ou={};ap(Ou,{ERR_AMBIGUOUS_ARCHIVE:()=>yo,ERR_BAD_FORMAT:()=>xr,ERR_CENTRAL_DIRECTORY_NOT_FOUND:()=>Ro,ERR_CODEC_OUT_OF_MEMORY:()=>$t,ERR_ENCRYPTED:()=>Ri,ERR_ENCRYPTED_CENTRAL_DIRECTORY:()=>So,ERR_ENTRY_DATA_OUT_OF_BOUNDS:()=>Ao,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:()=>go,ERR_EOCDR_NOT_FOUND:()=>ho,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:()=>_o,ERR_INVALID_AUTHENTICATION_CODE:()=>Ct,ERR_INVALID_COMPRESSED_DATA:()=>Qt,ERR_INVALID_CRC32:()=>Ft,ERR_INVALID_FILENAME_VALIDATION:()=>No,ERR_INVALID_MAX_APPENDED_DATA_SIZE:()=>Oo,ERR_INVALID_PASSWORD:()=>Xe,ERR_INVALID_STRICTNESS:()=>bo,ERR_INVALID_UNCOMPRESSED_SIZE:()=>Je,ERR_LOCAL_FILE_HEADER_NOT_FOUND:()=>wo,ERR_OVERLAPPING_ENTRY:()=>To,ERR_SPLIT_ZIP_FILE:()=>si,ERR_UNSAFE_FILENAME:()=>Io,ERR_UNSUPPORTED_COMPRESSION:()=>ut,ERR_UNSUPPORTED_ENCRYPTION:()=>ni,ERR_UNSUPPORTED_UINT64:()=>Do,ERR_WORKER_STARTUP_TIMEOUT:()=>er,WARNING_APPENDED_DATA:()=>ai,WARNING_COMPRESSED_PATCHED_DATA:()=>Co,WARNING_DUPLICATE_FILENAME:()=>Mo,WARNING_MALFORMED_EXTRA_FIELD:()=>wi,WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG:()=>Bo,WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD:()=>zo,WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES:()=>Ho,WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME:()=>ko,WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY:()=>Cr,WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY:()=>vo,WARNING_PREPENDED_CENTRAL_DIRECTORY:()=>Fo,WARNING_PREPENDED_DATA:()=>oi,WARNING_TRAILING_CENTRAL_DIRECTORY_DATA:()=>Uo,WARNING_UNKNOWN_VERSION:()=>xo,WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA:()=>Lo,WARNING_UNSORTED_CENTRAL_DIRECTORY:()=>Po,WARNING_WRAPPED_ENTRIES_COUNT:()=>ii,ZipReader:()=>kt,ZipReaderStream:()=>li,isZipFile:()=>wu});function cm(t,e){let{readable:r,writable:n}=new TransformStream,s,i={cancel:async o=>{e.delete(i),await(s?s.cancel(o):r.cancel(o))}};return i.readable=new ReadableStream({async pull(o){s||(s=r.getReader(),e.add(i),a());let{done:c,value:f}=await s.read();c?o.close():o.enqueue(f)},cancel:o=>i.cancel(o)},{highWaterMark:0}),i;async function a(){try{await t.getData(n,{preventClose:!1})}catch(o){try{await n.abort(o)}catch{}}finally{e.delete(i)}}}async function wu(t,e={}){if(t=new Et(t),await ge(t),(t.size===w||!t.readUint8Array)&&(t=new Qe(await ft(t.readable)),await ge(t)),t.size<22)return!1;let r=Wo(e,{}),n=r!=at,s=Su(e[Xi],r),{endOfDirectoryInfo:i,endOfDirectoryReachingEndCount:a}=await Iu(t,n,s);if(!i||r==Ot&&a>1)return!1;let o=V(L(i),20),c=i.offset+22+o;return t.size-c<=s}function eo(t){let e=Math.min(t.byteLength,1024)-3;for(let r=0;r<e;r++)if(v(t,r)==134630224)return!0;return!1}function lu(t,e,r){let n=0;for(;r+46<=e.length&&v(t,r)==33639248;)r+=46+V(t,r+28)+V(t,r+30)+V(t,r+32),n++;return n%65536?0:n}function to(t){if(t.length>=6){let e=L(t);if(v(e,0)==84233040){let r=V(e,4);if(6+r<=t.length)return new Uint8Array(t.subarray(6,6+r))}}}function lm(t,e,r){let n=t&&t.compressedSize?t.compressedSize:e;return n>0&&n<=r?n:r}function fm(t){let e={rawExtensibleData:t};if(t.length>=28){let r=L(t),n=V(r,26);Object.assign(e,{compressionMethod:V(r,0),compressedSize:Ce(r,2),uncompressedSize:Ce(r,10),encryptionAlgorithm:V(r,18),bitLength:V(r,20),flags:V(r,22),hashAlgorithm:V(r,24),hashData:t.subarray(28,28+n)})}return e}function _u(t,e,r){let n=t.rawBitFlag=V(e,r+2),s=(n&1)==1,i=v(e,r+6);Object.assign(t,{encrypted:s,version:V(e,r),bitFlag:{level:(n&6)>>1,dataDescriptor:(n&8)==8,languageEncodingFlag:(n&2048)==2048},rawLastModDate:i,lastModDate:Nm(i),filenameLength:V(e,r+22),extraFieldLength:V(e,r+24)})}function Tu(t,e,r,n,s){let{rawExtraField:i}=e,a=e.extraField=new Map,o=L(i),c=0,f=!1;try{for(;c<i.length;){let y=V(o,c),S=V(o,c+2);a.set(y,{type:y,data:i.slice(c+4,c+4+S)}),c+=4+S}}catch{f=!0}c>i.length&&(f=!0);let R=V(r,n+4);Object.assign(e,{signature:v(r,n+10),crc32:v(r,n+10),compressedSize:v(r,n+14),uncompressedSize:v(r,n+18)});let E=a.get(1);E&&(um(E,e),e.extraFieldZip64=E);let l=a.get(28789);l&&(fu(l,Da,Pa,e,t),e.extraFieldUnicodePath=l);let h=a.get(25461);h&&(fu(h,An,xa,e,t),e.extraFieldUnicodeComment=h);let g=a.get(39169);g&&g.data.length>=7?(dm(g,e,R),e.extraFieldAES=g):e.compressionMethod=R;let p=a.get(13);p&&(uu(p,e),e.extraFieldPkwareUnix=p);let d=a.get(22613);d&&(uu(d,e),e.extraFieldUnixType1=d);let u=a.get(10);u&&(pm(u,e),e.extraFieldNTFS=u);let m=a.get(30805),_;if(m&&(_=du(m,e,!1),e.extraFieldUnix=m),!_){let y=a.get(30837);y&&(du(y,e,!0),e.extraFieldInfoZip=y)}let A=a.get(21589);A&&(Em(A,e,s),e.extraFieldExtendedTimestamp=A);let T=a.get(6534);return T&&(e.extraFieldUSDZ=T),f}function um(t,e){e.zip64=!0;let r=L(t.data),n=sm.filter(([i,a])=>e[i]==a),s=n.reduce((i,[,a])=>i+ou[a].bytes,0);if(t.data.length<s)throw new Error(_o);for(let i=0,a=0;i<n.length;i++){let[o,c]=n[i],f=ou[c];e[o]=t[o]=f.getValue(r,a),a+=f.bytes}}function fu(t,e,r,n,s){if(t.data.length<5){t.valid=!1;return}let i=L(t.data),a=new Ve;a.append(s[r]);let o=L(new Uint8Array(4));o.setUint32(0,a.get(),!0);let c=v(i,1),f=vt(i,0);Object.assign(t,{version:f,[e]:En(t.data.subarray(5)),valid:f==1&&!s.bitFlag.languageEncodingFlag&&c==v(o,0)}),t.valid&&(n[e]=t[e],n[e+nm]=!0)}function dm(t,e,r){let n=L(t.data),s=vt(n,4);Object.assign(t,{vendorVersion:vt(n,0),vendorId:vt(n,2),strength:s,originalCompressionMethod:r,compressionMethod:V(n,5)}),e.compressionMethod=t.compressionMethod,t.vendorVersion!=Ru&&(e.crc32=w)}function pm(t,e){let r=L(t.data),n=4,s;try{for(;n<t.data.length&&!s;){let i=V(r,n),a=V(r,n+2);i==1&&(s=t.data.slice(n+4,n+4+a)),n+=4+a}}catch{}if(s&&s.length==24){let i=L(s),a=i.getBigUint64(0,!0),o=i.getBigUint64(8,!0),c=i.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:a,rawLastAccessDate:o,rawCreationDate:c});let f=ro(a),R=ro(o),E=ro(c),l={lastModDate:f,lastAccessDate:R,creationDate:E};Object.assign(t,l),Object.assign(e,l,{rawLastAccessDate:o,rawCreationDate:c})}}function uu(t,e){if(t.data.length<8)return;let r=L(t.data),n=new Date((v(r,0)|0)*1e3),s=new Date((v(r,4)|0)*1e3),i={lastAccessDate:n,lastModDate:s};t.data.length>=12&&(i.uid=V(r,8),i.gid=V(r,10)),Object.assign(t,i),Object.assign(e,i)}function du(t,e,r){try{let n=L(t.data),s,i;if(r){let a=0,o=vt(n,a++),c=vt(n,a++);s=pu(t.data.subarray(a,a+c)),a+=c;let f=vt(n,a++);i=pu(t.data.subarray(a,a+f)),Object.assign(t,{version:o,uid:s,gid:i})}else t.data.length>=4&&(s=V(n,0),i=V(n,2),Object.assign(t,{uid:s,gid:i}));return s!==w&&(e.uid=s),i!==w&&(e.gid=i),s!==w||i!==w}catch{}}function pu(t){let e=new Uint8Array(4);return e.set(t,0),new DataView(e.buffer,e.byteOffset,4).getUint32(0,!0)}function Em(t,e,r){if(!t.data.length)return;let n=L(t.data),s=vt(n,0),i=[],a=[];r?((s&1)==1&&(i.push(sr),a.push(Pr)),(s&2)==2&&(i.push(Sn),a.push(Ua)),(s&4)==4&&(i.push(In),a.push(Ma))):t.data.length>=5&&(i.push(sr),a.push(Pr));let o=1;i.forEach((c,f)=>{if(t.data.length>=o+4){let R=v(n,o);e[c]=t[c]=new Date((R|0)*1e3);let E=a[f];t[E]=R}o+=4})}async function mm({reader:t,fileEntry:e,index:r,offset:n,crc32:s,compressedSize:i,uncompressedSize:a,dataOffset:o,dataDescriptor:c,extraFieldZip64:f,readRanges:R}){let E=0;if(c&&(f?E=20:E=12),E){let d=await re(t,o+i,E+4),u=L(d),m=d.length==E+4&&v(u,0)==134695760;if(m){let _=Eu(u,4,f);(e.encrypted&&!e.zipCrypto||_.crc32==s)&&_.compressedSize==i&&_.uncompressedSize==a?E+=4:m=!1}if(d.length>=E){let _=Eu(u,m?4:0,f);_.signature=m,e.localDirectory.dataDescriptor=_}}let l={start:n,end:o+i+E,fileEntry:e},{indexes:h,sortedRanges:g,pendingRanges:p}=R;if(!h.has(r)){let d=hm(g,l)||p.find(u=>so(l,u));if(d){let u=new Error(To);throw u.overlappingEntry=d.fileEntry,u}h.add(r),p.push(l),p.length*p.length>g.length&&(p.sort((u,m)=>u.start-m.start),R.sortedRanges=gm(g,p),p.length=0)}}function hm(t,e){let r=0,n=t.length;for(;r<n;){let a=r+n>>>1;t[a].start<e.start?r=a+1:n=a}let s=t[r-1],i=t[r];if(s&&so(e,s))return s;if(i&&so(e,i))return i}function so(t,e){return t.start<e.end&&e.start<t.end}function gm(t,e){let r=[],n=0,s=0;for(;n<t.length||s<e.length;)s==e.length||n<t.length&&t[n].start<e[s].start?r.push(t[n++]):r.push(e[s++]);return r}function Eu(t,e,r){let n=v(t,e),s,i;return r?(s=Ce(t,e+4),i=Ce(t,e+12)):(s=v(t,e+4),i=v(t,e+8)),{crc32:n,compressedSize:s,uncompressedSize:i}}function Lr(t,e){return t.getDiskOffset?t.getDiskOffset(e):0}async function Rm(t){return await Au(t)==134695760}async function wm(t){let e=await Au(t);return e==134695760||e==808471376}async function Au(t){let e=await re(t,0,4);return v(L(e))}function yu(t){return t===Ot||t===hs||t===at}function _m(t,e,r){return Math.min(t,r?e*om:e)}function Wo(t,e){return mu(t,mu(e,hs))}function mu(t,e){let r=t[wl];if(r!==w){if(!yu(r))throw new Error(bo);return r}let n=t[tl];return n===w?e:n?Ot:e==at?at:hs}function Tm(t,e){return t===w?e!=at:!!t}function Am(t,e){return t===w?e==Ot:!!t}function ym(t,e){if(t===w)return e;if(!yu(t))throw new Error(No);return t}function Sm(t,e){if(e==at)return!1;let r=t.split("/");return r.length>1&&r[r.length-1]===""&&r.pop(),rm.test(t)||t.startsWith("/")||t.startsWith("\\")||tm.test(t)?!0:e==Ot&&(r.includes(".")||r.includes("")||t.includes("\0"))}function Su(t,e){if(t!==w){let r=Dt(t);if(typeof r!=Xc||Number.isNaN(r)||r<0)throw new Error(Oo);return r}return e==Ot?0:e==at?1/0:65535}async function Iu(t,e,r){let{size:n}=t,s=Math.min(n,65557),i={remaining:am},a,o,c=0;for await(let[f,R,E,l,h]of bu(t,s)){let g=V(f,l+20);if(h+22+g==n){let p=await Nu(t,f,R,l,h,n,i);if(p==ci){if(a||(a=io(E,l,h)),c++,!e||c>1)break}else p==Yo&&!o&&(o=io(E,l,h))}}return a||(a=o),a||(a=await Im(t,r,i)),{endOfDirectoryInfo:a,endOfDirectoryReachingEndCount:c}}async function Im(t,e,r){let{size:n}=t,s=Math.min(n,e==1/0?n:65557+e),i,a;for await(let[o,c,f,R,E]of bu(t,s)){let l=io(f,R,E);i||(i=l);let h=await Nu(t,o,c,R,E,n,r);if(h==ci)return l;h==Yo&&!a&&(a=l)}return a||i}async function*bu(t,e){let r=t.size-e,n=await re(t,r,e),s=L(n);for(let i=n.length-22;i>=0;i--)v(s,i)==101010256&&(yield[s,r,n,i,r+i])}function io(t,e,r){return{offset:r,buffer:new Uint8Array(t.subarray(e,e+22)).buffer}}async function Nu(t,e,r,n,s,i,a){let o=V(e,n+10),c=v(e,n+12),f=v(e,n+16);if(o==65535||c==4294967295||f==4294967295)return await hu(t,e,r,s-20,i,a)==117853008?ci:cu;if(!o&&!c)return Yo;let R=V(e,n+6);for(let E of[s-c,Lr(t,R)+f])if(await hu(t,e,r,E,i,a)==33639248)return ci;return cu}async function hu(t,e,r,n,s,i){if(n<0||n+4>s)return w;if(n>=r)return v(e,n-r);if(i.remaining>0){i.remaining--;let a=await re(t,n,4);return v(L(a),0)}return w}function bm(t,e,r,n,s){let{rawFilename:i}=t,a=!s,o=t.decryptedDirectory&&(e.rawBitFlag&8192)==8192;n&&!o&&(r.length!=i.length||r.some((c,f)=>c!=i[f]))&&et(a,s,ko),(e.rawBitFlag&au)!=(t.rawBitFlag&au)&&et(a,s,Bo),e.compressionMethod!=t.compressionMethod&&et(a,s,zo),!e.bitFlag.dataDescriptor&&!o&&(e.crc32||e.compressedSize||e.uncompressedSize)&&(e.crc32!=t.crc32||e.compressedSize!=t.compressedSize||e.uncompressedSize!=t.uncompressedSize)&&et(a,s,Ho)}function et(t,e,r){t?ti(r):Te(e,r)}function ti(t){let e=new Error(yo);throw e.reason=t,e}function ae(t,e,r){return e[r]===w?t.options[r]:e[r]}function gu(t,e,r){return hr(ae(t,e,r))}function Nm(t){let e=(t&4294901760)>>16,r=t&65535,n=new Date(1980+((e&65024)>>9),((e&480)>>5)-1,e&31,(r&63488)>>11,(r&2016)>>5,(r&31)*2,0);return n<Nt?Nt:n}function ro(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function vt(t,e){return t.getUint8(e)}function V(t,e){return t.getUint16(e,!0)}function v(t,e){return t.getUint32(e,!0)}function Ce(t,e){let r=t.getBigUint64(e,!0);if(r>im)throw new Error(Do);return Number(r)}var xr,ho,go,Ro,wo,_o,Ri,ni,si,To,Ao,yo,So,Io,bo,No,Oo,Do,Po,xo,Co,wi,Lo,ii,ai,oi,Fo,Uo,Mo,Cr,vo,ko,Bo,zo,Ho,em,tm,rm,su,nm,iu,au,Ru,sm,ou,im,am,om,cu,Yo,ci,kt,li,no,_i=se(()=>{ue();Ge();Jt();Zs();hn();Ta();xt();Sa();Kt();Zt();sn();ei();wr();xr="File format is not recognized",ho="End of central directory not found",go="End of Zip64 central directory locator not found",Ro="Central directory header not found",wo="Local file header not found",_o="Zip64 extra field not found",Ri="File contains encrypted entry",ni="Encryption method not supported",si="Split zip file",To="Overlapping entry found",Ao="Entry data out of bounds",yo="Ambiguous archive",So="Encrypted central directory is not supported",Io="Unsafe filename",bo="Invalid strictness (must be 'strict', 'balanced' or 'tolerant')",No="Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')",Oo="Invalid maxAppendedDataSize (must be a number greater than or equal to 0)",Do="64-bit value exceeds Number.MAX_SAFE_INTEGER",Po="unsorted central directory",xo="unknown version needed to extract",Co="compressed patched data",wi="malformed extra field",Lo="unknown zip64 extensible data",ii="wrapped entries count",ai="appended data",oi="prepended data",Fo="prepended central directory",Uo="trailing central directory data",Mo="duplicate filename",Cr="mismatched zip64 end of central directory record",vo="multiple end of central directory records",ko="mismatched local file header (filename)",Bo="mismatched local file header (general purpose bit flag)",zo="mismatched local file header (compression method)",Ho="mismatched local file header (crc32 or sizes)",em=63,tm=/^[a-zA-Z]:/,rm=/(^|[\\/])\.\.([\\/]|$)/,su="utf-8",nm="UTF8",iu="cp437",au=2057,Ru=1,sm=[[yn,4294967295],[Ca,4294967295],[La,4294967295],[Fa,65535]],ou={65535:{getValue:v,bytes:4},4294967295:{getValue:Ce,bytes:8}},im=BigInt(Number.MAX_SAFE_INTEGER),am=64,om=1032,cu=0,Yo=1,ci=2,kt=class{constructor(e,r={}){Object.assign(this,{reader:new Et(e),options:r,readRanges:{indexes:new Set,sortedRanges:[],pendingRanges:[]}})}async*getEntriesGenerator(e={}){let r=this,{reader:n}=r;if(await ge(n),(n.size===w||!n.readUint8Array)&&(n=new Qe(await ft(n.readable)),await ge(n)),n.size<22)throw new Error(xr);let s=r.warnings=[],i=Wo(e,r.options),a=i==Ot,o=i!=at,c=Su(ae(r,e,Xi),i),f=ym(ae(r,e,_l),i),R=ae(r,e,Tl),{endOfDirectoryInfo:E,endOfDirectoryReachingEndCount:l}=await Iu(n,o,c);if(!E)throw await Rm(n)?new Error(si):new Error(ho);o&&l>1&&ti(vo);let h=L(E),g=v(h,12),p=v(h,16),d=E.offset,u=V(h,20),m=d+22+u,_=n.size-m;_>c&&ti(ai),_>0&&Te(s,ai);let A=V(h,4),T=n.lastDiskNumber||0,y=V(h,6),S=V(h,10),I=0,N,F,H,q,$=56,Z,W=p==4294967295||g==4294967295||S==65535||y==65535;if(p!=4294967295&&y!=65535&&(p+=Lr(n,y)),W){let J=E.offset>=20?await re(n,E.offset-20,20):j,b=L(J);if(J.length==20&&v(b,0)==117853008){p=Lr(n,v(b,4))+Ce(b,8);let Y=await re(n,p,56),Q=L(Y),Ee=E.offset-20-56;if((Y.length<56||v(Q,0)!=101075792)&&p!=Ee&&Ee>=0){let Pe=p;p=Ee,p>Pe&&(I=p-Pe),Y=await re(n,p,56),Q=L(Y)}if(Y.length<56||v(Q,0)!=101075792)throw new Error(go);if(H=!0,q=Ce(Q,4)>44,q){let Pe=Math.min(Ce(Q,4)-44,n.size-p-56);if(Pe>0){$+=Pe;let Ze=await re(n,p+56,Pe);Z=fm(Ze)}}A==65535?A=v(Q,16):A!=v(Q,16)&&et(a,s,Cr),y==65535?y=v(Q,20):y!=v(Q,20)&&et(a,s,Cr),S==65535?S=Ce(Q,32):S!=Ce(Q,32)&&et(a,s,Cr),g==4294967295?g=Ce(Q,40):g!=Ce(Q,40)&&et(a,s,Cr),p=Lr(n,y)+Ce(Q,48)+I}}let U=g,ne=E.offset-(H?$+20:0);if(p>=n.size&&(I=n.size-p-g-22,p=n.size-g-22),T!=A)throw new Error(si);if(p<0)throw new Error(xr);let B=0,X=await re(n,p,g),M=L(X);if(g){if(X.length<4)throw new Error(xr);let J=ne-g;if(p!=J&&y==A){let b=v(M,B)==33639248||!!(Z&&Z.compressedSize)||eo(M),Y=!b;if(!Y&&J>=0&&J+4<=n.size){let Q=await re(n,J,4);Y=v(L(Q),0)==33639248}if(Y){let Q=p;p=J,p>Q&&(I+=p-Q,N=b),X=await re(n,p,g),M=L(X)}}}let G=ne-p;if(g!=G&&G>=0&&y==A&&(g=G,X=await re(n,p,g),M=L(X)),p<0||p>=n.size)throw new Error(xr);r.directoryOffset=p,r.directoryLength=U;let pe=gu(r,e,Al),me,nt;if(pe&&S&&X.length>=4&&v(M,0)!=33639248&&(q||eo(M))){let J=lm(Z,U,X.length);nt=X.subarray(J),X=await pe(X.subarray(0,J),Z),M=L(X),U=X.length,me=!0}Z&&!me&&(X.length<4||v(M,0)==33639248)&&Te(s,Lo),F=p;let Ue=ae(r,e,jc),Me=ae(r,e,Zc),je=new Set,be,Ne=-1,Oe=!a&&!H;!S&&Oe&&(S=lu(M,X,B),S&&Te(s,ii));for(let J=0;J<S;J++){let b=new no(n,r.options);if(B+46>X.length||v(M,B)!=33639248)throw J==0&&!me&&(q||eo(M))?new Error(So):new Error(Ro);_u(b,M,B+6);let Y=!!b.bitFlag.languageEncodingFlag,Q=B+46,Pe=Q+b.filenameLength+b.extraFieldLength,Ze=V(M,B+4),Bt=Ze>>8==0,Gr=Ze>>8==3,zt=V(M,B+32),He=Pe+zt,Tt=new Uint8Array(X.subarray(Q,He)),st=Tt.subarray(0,b.filenameLength),de=Tt.subarray(b.filenameLength+b.extraFieldLength),Ae=Y||!Ue&&_a(st),Yn=Y||!Me&&_a(de),At=v(M,B+38),yt=At&255,Wn={readOnly:!!(yt&1),hidden:!!(yt&2),system:!!(yt&4),directory:!!(yt&16),archive:!!(yt&32)},vi=v(M,B+42),Vr=gu(r,e,Kc)||En,Ht=Ae?su:Ue||iu,St=Yn?su:Me||iu,he=Vr(st,Ht,Es);if(he===w&&(he=En(st,Ht)),R){let ke=R(he);ke!==w&&(he=ke)}if(Sm(he,f)){let ke=new Error(Io);throw ke.filename=he,ke}let Xr=Vr(de,St,ms);Xr===w&&(Xr=En(de,St)),Object.assign(b,{index:J,decryptedDirectory:me,versionMadeBy:Ze,msDosCompatible:Bt,zip64:!1,compressedSize:0,uncompressedSize:0,commentLength:zt,offset:vi,diskNumberStart:V(M,B+34),internalFileAttributes:V(M,B+36),externalFileAttributes:At,msdosAttributesRaw:yt,msdosAttributes:Wn,rawFilename:st,filenameUTF8:Ae,commentUTF8:Yn,rawExtraField:Tt.subarray(b.filenameLength,b.filenameLength+b.extraFieldLength),rawComment:de,filename:he,comment:Xr}),Tu(b,b,M,B+6)&&Te(s,wi,he),b.offset+=I;let Yt=Lr(n,b.diskNumberStart)+b.offset;F=Math.min(Yt,F),Yt<Ne&&Te(s,Po,he),Ne=Yt,(b.version&255)>em&&Te(s,xo,he),(b.rawBitFlag&32)==32&&Te(s,Co,he),je.has(b.filename)&&(be=!0),je.add(b.filename);let It=b.externalFileAttributes>>16&65535;b.unixMode===w&&(It&16877)!=0&&(b.unixMode=It);let Gn=!!(b.unixMode&2048),Ke=!!(b.unixMode&1024),Vn=!!(b.unixMode&512),Rc=((b.unixMode===w?It:b.unixMode)&61440)==40960,tp=!Rc&&(b.unixMode!==w?(b.unixMode&73)!=0:Gr&&(It&73)!=0),rp=b.unixMode!==w&&(b.unixMode&61440)==16384,np=(It&61440)==16384;Object.assign(b,{setuid:Gn,setgid:Ke,sticky:Vn,symlink:Rc,unixExternalUpper:It,executable:tp,directory:rp||np||Bt&&Wn.directory||b.filename.endsWith("/"),zipCrypto:b.encrypted&&!b.extraFieldAES});let jr=new mt(b);if(jr.getData=(ke,Xn)=>b.getData(ke,jr,r.readRanges,Xn),jr.arrayBuffer=async ke=>{let Xn=new TransformStream,_c=ft(Xn.readable).then(sp=>sp.arrayBuffer());return _c.catch(()=>{}),await b.getData(Xn,jr,r.readRanges,Object.assign({},ke,{preventClose:!1})),_c},B=He,J==S-1&&Oe){let ke=lu(M,X,B);ke&&(S+=ke,Te(s,ii))}let{onprogress:wc}=e;if(wc)try{await wc(J+1,S,new mt(b))}catch{}yield jr}let oe=B,De=to(X.subarray(B))||(me?to(nt):w);if(!De&&!me){let J=p+B,b=Math.min(ne-J,65541);b>=6&&(De=to(await re(n,J,b)))}De&&(r.digitalSignature=De,oe=B+6+De.length),(B!=U&&oe!=U||!me&&B!=g&&oe!=g)&&et(a,s,Uo),be&&et(a,s,Mo);let ve=ae(r,e,qc),fe=ae(r,e,Jc),te=(a||ve)&&S&&F==4&&await wm(n)?4:0;return a&&(I||S&&F>te)&&ti(oi),(I||S&&F>4)&&Te(s,oi),N&&Te(s,Fo),ve&&(r.prependedData=F>te?await re(n,te,F-te):j),r.comment=u?await re(n,d+22,u):j,fe&&(r.appendedData=m<n.size?await re(n,m,n.size-m):j),!0}async getEntries(e={}){let r=[];for await(let n of this.getEntriesGenerator(e))r.push(n);return r}async close(){let{reader:e}=this;!e.readUint8Array&&e.readable&&!e.readable.locked&&await e.readable.cancel()}[is](){return this.close()}},li=class{constructor(e={}){let r,{readable:n,writable:s}=new TransformStream({start(c){r=c}}),i=new kt(n,e),a=i.getEntriesGenerator(),o=new Set;this.readable=new ReadableStream({async pull(c){let{done:f,value:R}=await a.next();if(f)return c.close();let E=cm(R,o),l={...R,readable:E.readable};delete l.getData,Object.defineProperties(l,{localDirectory:{get:()=>R.localDirectory,enumerable:!0},warnings:{get:()=>R.warnings,enumerable:!0}}),c.enqueue(l)},async cancel(c){let f=Array.from(o);o.clear(),r.error(c),await Promise.allSettled(f.map(R=>R.cancel(c))),await Promise.allSettled([a.return(),i.close()])}}),this.writable=s}};no=class{constructor(e,r){Object.assign(this,{reader:e,options:r})}async getData(e,r,n,s={}){let i=this,a=ot(),{reader:o,index:c,offset:f,diskNumberStart:R,extraFieldAES:E,extraFieldZip64:l,compressionMethod:h,bitFlag:g,rawBitFlag:p,crc32:d,rawLastModDate:u,uncompressedSize:m,compressedSize:_}=i,{dataDescriptor:A}=g,T=r.localDirectory={},y=r.warnings=[],S=Lr(o,R)+f,I=await re(o,S,30),N=L(I),F=ae(i,s,as),H=ae(i,s,os),q=gr(ae(i,s,Qr)),$=!!q,Z=q===!0;if(gs(F,H),F=F&&F.length?F:w,H=H&&H.length?H:w,E&&E.originalCompressionMethod!=99)throw new Error(ut);if(I.length<30||v(N,0)!=67324752)throw new Error(wo);_u(T,N,4);let{extraFieldLength:W,filenameLength:U}=T,ne=T.dataOffset=S+30+U+W,B=ae(i,s,rl),X=Wo(s,i.options),M=Tm(B,X),G=ae(i,s,nl),pe=Am(G===w?B:G,X),me=j;if(pe&&(U||W)){let de=await re(o,S+30,U+W);me=de.subarray(0,U),T.rawExtraField=de.subarray(U)}else T.rawExtraField=W?await re(o,S+30+U,W):j;pe&&(T.rawFilename=me),Tu(i,T,N,4,!0)&&Te(y,wi),bm(i,T,me,pe,M?w:y);let{lastAccessDate:nt,creationDate:Ue,uid:Me,gid:je}=T;nt&&(r.lastAccessDate=nt),Ue&&(r.creationDate=Ue),Me!==w&&r.uid===w&&(r.uid=Me),je!==w&&r.gid===w&&(r.gid=je);let be=ae(i,s,Qc),Ne=i.encrypted&&T.encrypted&&(!Z||be),Oe=Ne&&!E;if(Z||(r.zipCrypto=Oe),Ne&&(T.rawBitFlag&64)==64)throw new Error(ni);let oe=$?w:Os(h);if(h!=0&&h!=8&&h!=9&&!oe&&!$)throw new Error(ut);if(Ne){if(!Oe&&(E.strength<1||E.strength>3))throw new Error(ni);if(!F&&!H)throw new Error(Ri)}if(ne+_>o.size)throw new Error(Ao);let De=_,ve=tn(ae(i,s,cs));jt(ve);let fe=ae(i,s,el),te=ae(i,s,$c);te&&(fe=!0);let{onstart:J,onprogress:b,onend:Y}=s,Q=h!=0&&!$,Ee=$?_-Nn(Ne,Oe,E&&E.strength):m,Pe=h==9,Ze=ae(i,s,fs);Pe&&(Ze=!1);let Bt=ae(i,s,il),Gr=(Bt===w?ae(i,s,sl):Bt)&&!$&&(!Ne||Oe||E&&E.vendorVersion==Ru),zt={options:{codecType:ks,password:F,rawPassword:H,zipCrypto:Oe,encryptionStrength:E&&E.strength,checkCrc32:Gr,checkAuthenticationCode:ae(i,s,al),passwordVerification:Oe&&(A?u>>>8&255:d>>>24&255),outputSize:Ee,crc32:d,compressed:Q,encrypted:Ne,useWebWorkers:ae(i,s,ls),useCompressionStream:Ze,transferStreams:ae(i,s,us),deflate64:Pe,format:oe?oe.format:w,codecURI:oe?oe.codecURI:w,compressionMethod:h,rawBitFlag:p,checkPasswordOnly:be},config:a,streamOptions:{signal:ve,size:De,onstart:J,onprogress:b,onend:Y}};fe&&await mm({reader:o,fileEntry:r,index:c,offset:S,crc32:d,compressedSize:_,uncompressedSize:m,dataOffset:ne,dataDescriptor:A||T.bitFlag.dataDescriptor,extraFieldZip64:l||T.extraFieldZip64,readRanges:n});let He,Tt,st;try{if(!te){be&&(e=new WritableStream),e=new Or(e),await ge(e,_m(Ee,_,Q)),{writable:He}=e;let de=ze(o.createReadable({offset:ne,size:De})),{outputSize:Ae}=await js({readable:de,writable:He},zt);if(jt(ve),Ae!=Ee)throw Object.assign(new Error(Je),{outputSize:Ae});e.size+=Ae}}catch(de){let{outputSize:Ae}=zt;if(Ae!==w?e.size+=Ae:Re(de)&&de.outputSize!==w&&(e.size+=de.outputSize),!be||!Re(de)||de.message!=lt)throw Tt=de,st=!0,de}finally{if(!(!mn(e)&&ae(i,s,ds))&&He&&!He.locked){let Ae=He.getWriter();if(st)try{await Ae.abort(Tt)}catch{}else await Ae.close()}}return be||te?w:e.getData?e.getData():He}}});var ki="0.1.0";var Er="h5p-pkg-v0-";var it="__archive__";var Tc="h5p-player";var Zr="packages",Kr="https://chunks.h5p-player.invalid/";function Wt(t,e){let r=e.end-e.start+1,n=0,s=0,i=new TransformStream({transform(a,o){if(s>=r)return;let c=n;if(n+=a.length,n<=e.start)return;let f=Math.max(0,e.start-c),R=Math.min(a.length,f+(r-s)),E=a.subarray(f,R);s+=E.length,o.enqueue(E),s>=r&&o.terminate()}});return t.pipeTo(i.writable).catch(()=>{}),i.readable}var op=/^h5p:([^:]+):/;async function jn(){let t=new Set,e=typeof navigator>"u"?void 0:navigator.locks;if(!e?.query)return t;try{let{held:r=[]}=await e.query();for(let n of r){let s=n.name?op.exec(n.name):null;s&&t.add(s[1])}}catch{}return t}var cp="/__meta__",lp="/__forward__",Hi="__forward_index__",fp=32;function Kn(t){return t.split("/").map(encodeURIComponent).join("/")}function Zn(t){return`${Er}${t}`}function Ac(t,e){return`${Kr}${t}/whole/${Kn(e)}`}function Bi(t,e,r){return`${Kr}${t}/chunk/${Kn(e)}/${r}`}function yc(t,e){return`${Kr}${t}/chunk/${Kn(e)}${cp}`}function Sc(t){return`${Kr}${t}/chunk/${Kn(it)}${lp}`}function up(t){return t instanceof DOMException&&(t.name==="QuotaExceededError"||t.name==="NS_ERROR_DOM_QUOTA_REACHED")}var Gt=class extends Error{constructor(e="Not enough storage to cache this package"){super(e),this.name="QuotaError"}};function Ic(t){return{first:Math.floor(t.start/8388608),last:Math.floor(t.end/8388608)}}function bc(t,e){let r=t*8388608;return{from:Math.max(0,e.start-r),to:Math.min(8388608,e.end-r+1)}}var Ye=class{constructor(e){this.cachePromise=null;this.pkgId=e}cache(){return this.cachePromise??=caches.open(Zn(this.pkgId)),this.cachePromise}async getWhole(e){return(await this.cache()).match(Ac(this.pkgId,e))}async putWhole(e,r,n,s){let i=new Headers({"content-type":n});s!==void 0&&i.set("content-length",String(s)),await this.write(Ac(this.pkgId,e),()=>new Response(r(),{headers:i}))}async getMeta(e){let n=await(await this.cache()).match(yc(this.pkgId,e));if(n)try{return await n.json()}catch{return}}async setMeta(e,r){await(await this.cache()).put(yc(this.pkgId,e),new Response(JSON.stringify(r),{headers:{"content-type":"application/json"}})),Dc({pkgId:this.pkgId,entry:e,meta:r})}async putChunk(e,r,n){let s=n.slice();await this.write(Bi(this.pkgId,e,r),()=>new Response(s.buffer,{headers:{"content-type":"application/octet-stream"}}))}async getChunk(e,r){let s=await(await this.cache()).match(Bi(this.pkgId,e,r));if(s)return new Uint8Array(await s.arrayBuffer())}readRange(e,r,n){let{first:s,last:i}=Ic(r),a=s,o=null,c=this;return new ReadableStream({async pull(f){for(;;){if(o){let{done:g,value:p}=await o.read();if(!g){f.enqueue(p);return}o=null,a+=1}if(a>i){f.close();return}if(n){let g=Math.min((a+1)*8388608,r.end+1);if(!await n(g)){f.error(new Error(`Extraction of ${e} stalled before byte ${g}`));return}}let R=await c.chunkBody(e,a);if(!R){f.error(new Error(`Missing chunk ${a} of ${e}`));return}let{from:E,to:l}=bc(a,r);o=(E===0&&l>=8388608?R:Wt(R,{start:E,end:l-1})).getReader()}},async cancel(f){await o?.cancel(f)}},{highWaterMark:0})}async chunkBody(e,r){return(await(await this.cache()).match(Bi(this.pkgId,e,r)))?.body??void 0}async readRangeBytes(e,r){let n=new Uint8Array(r.end-r.start+1),{first:s,last:i}=Ic(r),a=0;for(let o=s;o<=i;o+=1){let c=await this.getChunk(e,o);if(!c)throw new Error(`Missing chunk ${o} of ${e}`);let{from:f,to:R}=bc(o,r),E=c.subarray(f,Math.min(R,c.length));n.set(E,a),a+=E.length}return a===n.length?n:n.subarray(0,a)}getArchiveMeta(){return this.getMeta(it)}async getForwardIndex(){let r=await(await this.cache()).match(Sc(this.pkgId));if(r)try{return await r.json()}catch{return}}async setForwardIndex(e){await(await this.cache()).put(Sc(this.pkgId),new Response(JSON.stringify(e),{headers:{"content-type":"application/json"}})),Dc({pkgId:this.pkgId,entry:Hi,meta:{size:null,available:e.parsedTo,complete:e.done}})}readArchiveRange(e){return this.readRangeBytes(it,e)}async write(e,r){let n=await this.cache();for(let s=0;;s+=1){let i=r();try{await n.put(e,i);return}catch(a){if(i.body?.cancel().catch(()=>{}),!up(a))throw a;if(s>=fp)throw new Gt;if(!await dp(this.pkgId))throw new Gt}}}async destroy(){this.cachePromise=null,await caches.delete(Zn(this.pkgId))}},zi=null;function Pc(t){zi=t}var xc=null;function Cc(t){xc=t}async function dp(t){let e=zi?await zi(t):await pp(t);return e?(await caches.delete(Zn(e)),await xc?.(e),!0):!1}async function pp(t){let[e,r]=await Promise.all([caches.keys(),jn()]),n=Zn(t),s=e.find(i=>i.startsWith(Er)&&i!==n&&!r.has(i.slice(Er.length)));return s?s.slice(Er.length):null}var Ep="h5p-player-watermark",Nc,Oc;function Lc(){if(typeof BroadcastChannel!="function")return null;let t=new BroadcastChannel(Ep);return t.unref?.(),t}function Dc(t){Nc??=Lc();try{Nc?.postMessage(t)}catch{}}function qn(t,e,r){Oc??=Lc();let n=Oc;if(!n)return()=>{};let s=i=>{let a=i.data;a?.pkgId===t&&a.entry===e&&r(a.meta)};return n.addEventListener("message",s),()=>n.removeEventListener("message",s)}async function Fc(){let e=(await caches.keys()).filter(r=>/^h5p-pkg-v(\d+)-/.test(r)&&!r.startsWith(Er));return await Promise.all(e.map(r=>caches.delete(r))),e}var bt=null;function Uc(t,e){bt===e&&(bt=null),t.close()}function hp(){if(bt)return bt;let t=new Promise((e,r)=>{let n=indexedDB.open(Tc,1);n.onupgradeneeded=()=>{let s=n.result;s.objectStoreNames.contains(Zr)||s.createObjectStore(Zr,{keyPath:"pkgId"}).createIndex("lastPlayed","lastPlayed")},n.onsuccess=()=>{let s=n.result;s.onversionchange=()=>Uc(s,t),s.onclose=()=>Uc(s,t),e(s)},n.onerror=()=>r(n.error)});return bt=t,t.catch(()=>{bt===t&&(bt=null)}),t}function gp(t){return t instanceof DOMException&&(t.name==="InvalidStateError"||t.name==="NotFoundError"||t.name==="TransactionInactiveError")}function Jn(t){return new Promise((e,r)=>{t.onsuccess=()=>e(t.result),t.onerror=()=>r(t.error)})}async function Mc(t,e){let n=(await hp()).transaction(Zr,t),s=await e(n.objectStore(Zr));return await new Promise((i,a)=>{n.oncomplete=()=>i(),n.onerror=()=>a(n.error),n.onabort=()=>a(n.error)}),s}async function Qn(t,e){try{return await Mc(t,e)}catch(r){if(!gp(r))throw r;return bt=null,Mc(t,e)}}function qr(t){return Qn("readonly",e=>Jn(e.get(t)))}function $n(t){return Qn("readwrite",async e=>{await Jn(e.put(t))})}function vc(t){return Qn("readwrite",async e=>{await Jn(e.delete(t))})}function Rp(){return Qn("readonly",t=>Jn(t.getAll()))}async function kc(t){let e=await qr(t);e&&(e.lastPlayed=Date.now(),await $n(e))}async function es(t,e){let r=await qr(t);if(!r)return;let n={...r,...e};return await $n(n),n}async function Bc(){return(await Rp()).sort((e,r)=>e.lastPlayed-r.lastPlayed)}async function wp(t,e={}){let[r,n]=await Promise.all([(e.packagesByAge??Bc)(),(e.busyPackages??jn)()]);return r.find(s=>s.pkgId!==t&&!n.has(s.pkgId))?.pkgId??null}function Hc(t){Pc(e=>wp(e)),Cc(async e=>{t?.(e),await vc(e)})}var _p=/[\u0000-\u001f\u007f]/;function ts(t){if(!t||_p.test(t))return null;let e=t.replace(/\\/g,"/");if(e.startsWith("/")||/^[a-zA-Z]:/.test(e))return null;let r=[];for(let n of e.split("/"))if(!(n===""||n===".")){if(n==="..")return null;r.push(n)}return r.length===0?null:r.join("/")}function Yc(t){let e;try{e=decodeURIComponent(t)}catch{return null}return ts(e)}function Wc(t){let e=new Map,r=[];for(let n of t){if(n.directory)continue;let s=ts(n.filename);if(s===null||e.has(s)){r.push(n.filename);continue}e.set(s,n)}return{index:e,rejected:r}}var Tp={js:"text/javascript; charset=utf-8",mjs:"text/javascript; charset=utf-8",json:"application/json; charset=utf-8",css:"text/css; charset=utf-8",html:"text/html; charset=utf-8",htm:"text/html; charset=utf-8",txt:"text/plain; charset=utf-8",xml:"application/xml; charset=utf-8",csv:"text/csv; charset=utf-8",vtt:"text/vtt; charset=utf-8",srt:"application/x-subrip; charset=utf-8",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",svg:"image/svg+xml",webp:"image/webp",avif:"image/avif",bmp:"image/bmp",ico:"image/x-icon",mp3:"audio/mpeg",m4a:"audio/mp4",aac:"audio/aac",oga:"audio/ogg",ogg:"audio/ogg",wav:"audio/wav",weba:"audio/webm",flac:"audio/flac",mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",ogv:"video/ogg",mov:"video/quicktime",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf",eot:"application/vnd.ms-fontobject",pdf:"application/pdf"},Ap=new Set(["js","mjs","json","css","html","htm","txt","xml","csv","vtt","srt","svg"]);function Gc(t){let e=t.slice(t.lastIndexOf("/")+1),r=e.lastIndexOf(".");return r<=0?"":e.slice(r+1).toLowerCase()}function Yi(t){return Tp[Gc(t)]??"application/octet-stream"}function Vc(t){return Ap.has(Gc(t))}var ie=class extends Error{constructor(e,r,n){super(r,n),this.name="PlayerError",this.code=e,this.missingLibraries=n?.missingLibraries}};function rs(t,e){if(!t)return"none";let r=/^bytes=(\d*)-(\d*)$/.exec(t.trim());if(!r)return"none";let[,n,s]=r;if(n===""&&s==="")return"none";if(n===""){let o=Number(s);return o===0?"unsatisfiable":{start:Math.max(0,e-o),end:e-1}}let i=Number(n);if(i>=e)return"unsatisfiable";let a=s===""?e-1:Math.min(Number(s),e-1);return a<i?"unsatisfiable":{start:i,end:a}}function ns(t,e){return`bytes ${t.start}-${t.end}/${e}`}Ge();var Rs=new Uint8Array(288);Rs.fill(8,0,144),Rs.fill(9,144,256),Rs.fill(7,256,280),Rs.fill(8,280,288),new Uint8Array(30).fill(5);var ct="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Hl=t=>t({workerURI:e=>{let r="text/javascript",n=`!function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";const{Array:t,Object:n,Number:e,Math:o,Error:r,Uint8Array:c,Uint16Array:s,Uint32Array:a,Int32Array:i,Map:f,DataView:u,Promise:w,TextEncoder:l,crypto:d,postMessage:p,TransformStream:h,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,b="undefined",k="function",z=new c,C=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let n=t;for(let t=0;t<8;t++)n=1&n?n>>>1^3988292384:n>>>1;C[0][t]=n}for(let t=0;t<256;t++)for(let n=1;n<8;n++){const e=C[n-1][t];C[n][t]=e>>>8^C[0][255&e]}const[I,M,A,E,R,x,P,D]=C;class F{constructor(t){this.o=t||-1}append(t){let n=0|this.o;const e=0|t.length;let o=0;if(e>=8&&t.buffer){const r=new u(t.buffer,t.byteOffset,e),c=e-8;for(;o<=c;o+=8){const t=n^r.getInt32(o,!0),e=r.getInt32(o+4,!0);n=D[255&t]^P[t>>>8&255]^x[t>>>16&255]^R[t>>>24&255]^E[255&e]^A[e>>>8&255]^M[e>>>16&255]^I[e>>>24&255]}}for(;o<e;o++)n=n>>>8^I[255&(n^t[o])];this.o=n}get(){return~this.o}}class U extends h{constructor(){let t;const n=new F;super({transform(t,e){n.append(t),e.enqueue(t)},flush(){const e=new c(4);new u(e.buffer).setUint32(0,n.get()),t.value=e}}),t=this}}function B(t,n){const e=new c(t.length+n.length);return e.set(t),e.set(n,t.length),e}function W(t){return new u(t.buffer,t.byteOffset,t.byteLength)}const O=64,V=20,K=new c([128]),T=new c(1),_=new i([1732584193,4023233417,2562383102,271733878,3285377520]),j=new c(256),H=new i(256),L=new i(256),Z=new i(256),N=new i(256);let q=!1;function G(t,n){!function(){if(!q){let t=1,n=1;do{t=255&(t^t<<1^(128&t?27:0)),n=255&(n^n<<1),n=255&(n^n<<2),n=255&(n^n<<4),128&n&&(n^=9),j[t]=255&(n^(n<<1|n>>7)^(n<<2|n>>6)^(n<<3|n>>5)^(n<<4|n>>4)^99)}while(1!=t);j[0]=99;for(let t=0;t<256;t++){const n=j[t],e=Y(n),o=e<<24|n<<16|n<<8|e^n;H[t]=o,L[t]=o>>>8|o<<24,Z[t]=o>>>16|o<<16,N[t]=o>>>24|o<<8}q=!0}}();const e=new i(60),o=function(t,n){const e=t.length>>2,o=e+6,r=4*(o+1);let c=1;for(let o=0;o<e;o++)n[o]=t[4*o]<<24|t[4*o+1]<<16|t[4*o+2]<<8|t[4*o+3];for(let t=e;t<r;t++){let o=n[t-1];t%e==0?(o=Q(o<<8|o>>>24)^c<<24,c=Y(c)):e>6&&t%e==4&&(o=Q(o)),n[t]=n[t-e]^o}return o}(t,e),r=new i(4),c=J(n);let s=0,a=0,f=0,w=0;return{process(t,n){n&&c.update(t,0,t.length),function(t){const n=new u(t.buffer,t.byteOffset,t.byteLength),e=t.length;let o=0;for(;o+16<=e;o+=16)l(),n.setInt32(o,n.getInt32(o)^r[0]),n.setInt32(o+4,n.getInt32(o+4)^r[1]),n.setInt32(o+8,n.getInt32(o+8)^r[2]),n.setInt32(o+12,n.getInt32(o+12)^r[3]);if(o<e){l();for(let n=0;o<e;o++,n++)t[o]^=r[n>>2]>>>24-8*(3&n)}}(t),n||c.update(t,0,t.length)},digest:()=>c.digest()};function l(){s=s+1|0,s||(a=a+1|0,a||(f=f+1|0,f||(w=w+1|0)));let t=X(s)^e[0],n=X(a)^e[1],c=X(f)^e[2],i=X(w)^e[3],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[4],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[5],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[6],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[7];t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[8],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[9],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[10],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[11],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[12],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[13],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[14],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[15],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[16],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[17],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[18],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[19],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[20],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[21],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[22],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[23],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[24],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[25],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[26],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[27],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[28],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[29],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[30],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[31],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[32],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[33],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[34],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[35],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[36],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[37],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[38],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[39];let h=40;o>10&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[40],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[41],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[42],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[43],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[44],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[45],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[46],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[47],h=48),o>12&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[48],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[49],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[50],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[51],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[52],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[53],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[54],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[55],h=56),r[0]=(j[u>>>24]<<24|j[l>>>16&255]<<16|j[d>>>8&255]<<8|j[255&p])^e[h],r[1]=(j[l>>>24]<<24|j[d>>>16&255]<<16|j[p>>>8&255]<<8|j[255&u])^e[h+1],r[2]=(j[d>>>24]<<24|j[p>>>16&255]<<16|j[u>>>8&255]<<8|j[255&l])^e[h+2],r[3]=(j[p>>>24]<<24|j[u>>>16&255]<<16|j[l>>>8&255]<<8|j[255&d])^e[h+3]}}function J(t){const n=function(){const t=new i(_),n=new i(16),e=new c(O),r=new u(e.buffer),s=new c(8);let a=0,f=0;return{update:w,digest:function(){const n=8*f,e=o.floor(n/4294967296),r=n>>>0;for(w(K,0,1);56!=a;)w(T,0,1);s[0]=e>>>24,s[1]=e>>>16,s[2]=e>>>8,s[3]=e,s[4]=r>>>24,s[5]=r>>>16,s[6]=r>>>8,s[7]=r,w(s,0,8);const i=new c(V),l=new u(i.buffer);for(let n=0;n<t.length;n++)l.setInt32(4*n,t[n]);return t.set(_),a=0,f=0,i}};function w(t,n,o){const c=n+o;if(f+=o,a){for(;n<c&&a<O;)e[a++]=t[n++];a==O&&(l(r,0),a=0)}if(n+O<=c){const e=new u(t.buffer,t.byteOffset,t.byteLength);for(;n+O<=c;n+=O)l(e,n)}for(;n<c;)e[a++]=t[n++]}function l(e,o){for(let t=0;t<16;t++)n[t]=e.getInt32(o+4*t);let r,c=t[0],s=t[1],a=t[2],i=t[3],f=t[4];for(let t=0;t<15;t+=5)f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[t]|0,s=s<<30|s>>>2,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+n[t+1]|0,c=c<<30|c>>>2,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+n[t+2]|0,f=f<<30|f>>>2,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+n[t+3]|0,i=i<<30|i>>>2,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+n[t+4]|0,a=a<<30|a>>>2;f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[15]|0,s=s<<30|s>>>2,r=n[13]^n[8]^n[2]^n[0],r=r<<1|r>>>31,n[0]=r,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+r|0,c=c<<30|c>>>2,r=n[14]^n[9]^n[3]^n[1],r=r<<1|r>>>31,n[1]=r,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+r|0,f=f<<30|f>>>2,r=n[15]^n[10]^n[4]^n[2],r=r<<1|r>>>31,n[2]=r,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+r|0,i=i<<30|i>>>2,r=n[0]^n[11]^n[5]^n[3],r=r<<1|r>>>31,n[3]=r,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+r|0,a=a<<30|a>>>2;for(let t=20;t<40;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+1859775393+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+1859775393+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+1859775393+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+1859775393+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+1859775393+r|0,a=a<<30|a>>>2;for(let t=40;t<60;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s&a|(s|a)&i)+f+2400959708+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c&s|(c|s)&a)+i+2400959708+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f&c|(f|c)&s)+a+2400959708+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i&f|(i|f)&c)+s+2400959708+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a&i|(a|i)&f)+c+2400959708+r|0,a=a<<30|a>>>2;for(let t=60;t<80;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+3395469782+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+3395469782+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+3395469782+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+3395469782+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+3395469782+r|0,a=a<<30|a>>>2;t[0]=t[0]+c|0,t[1]=t[1]+s|0,t[2]=t[2]+a|0,t[3]=t[3]+i|0,t[4]=t[4]+f|0}}(),e=new c(O),r=new c(O);t.length>O&&(n.update(t,0,t.length),t=n.digest());for(let n=0;n<O;n++){const o=n<t.length?t[n]:0;e[n]=54^o,r[n]=92^o}return n.update(e,0,O),{update(t,e,o){n.update(t,e,o)},digest(){const t=n.digest();n.update(r,0,O),n.update(t,0,V);const o=n.digest();return n.update(e,0,O),o}}}function Q(t){return j[t>>>24]<<24|j[t>>>16&255]<<16|j[t>>>8&255]<<8|j[255&t]}function X(t){return t<<24|(65280&t)<<8|t>>>8&65280|t>>>24}function Y(t){return 255&(t<<1^27*(t>>7))}const $=typeof d!=b&&typeof d.getRandomValues==k,tt="Invalid password",nt="zipjs-abort-check-password";function et(t){if($)return d.getRandomValues(t);throw new r("Crypto API not supported")}const ot={name:"PBKDF2"},rt=n.assign({hash:{name:"HMAC"}},ot),ct=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ot),st=["deriveBits"],at=[8,12,16],it=[16,24,32],ft=10,ut=typeof d!=b,wt=ut&&d.subtle;let lt=ut&&typeof wt!=b&&typeof wt.importKey==k&&typeof wt.deriveBits==k,dt=G;class pt extends h{constructor({password:t,rawPassword:n,encryptionStrength:e,checkPasswordOnly:o,checkAuthenticationCode:s=!0}){const a={};super({start(){yt(a,t,n,e)},async transform(t,n){const{password:e,strength:s,l:i,ready:f}=a;if(e?(await async function(t,n,e,o){const c=await vt(t,n,e,kt(o,0,at[n])),s=kt(o,at[n]);if(c[0]!=s[0]||c[1]!=s[1])throw gt(t),new r(tt)}(a,s,e,kt(t,0,at[s]+2)),t=kt(t,at[s]+2),o?(gt(a),n.error(new r(nt))):i()):await f,a.h)return;const u=new c(t.length-ft-(t.length-ft)%16);n.enqueue(St(a,t,u,0,ft,!0))},async flush(t){const{m:n,S:e,ready:o}=a;if(n){if(await o,a.h)return;const i=kt(e,e.length-ft),f=new c(kt(e,0,e.length-ft));n.process(f,!0);const u=n.digest();let w=e.length<ft?1:0;for(let t=0;t<ft;t++)w|=u[t]^i[t];if(w&&s)return void t.error(new r("Invalid authentication code"));t.enqueue(f)}}}),mt(this,a)}}class ht extends h{constructor({password:t,rawPassword:n,encryptionStrength:e}){const o={};super({start(){yt(o,t,n,e)},async transform(t,n){const{password:e,strength:r,l:s,ready:a}=o;let i=z;if(e?(i=await async function(t,n,e){const o=et(new c(at[n]));return B(o,await vt(t,n,e,o))}(o,r,e),s()):await a,o.h)return;const f=new c(i.length+t.length-t.length%16);f.set(i,0),n.enqueue(St(o,t,f,i.length,0,!1))},async flush(t){const{m:n,S:e,ready:r}=o;if(n){if(await r,o.h)return;const s=new c(e);n.process(s,!1);const a=kt(n.digest(),0,ft);t.enqueue(B(s,a))}}}),mt(this,o)}}function yt(t,e,o,r){n.assign(t,{ready:new w(n=>t.l=n),password:bt(e,o),strength:r-1,S:z,h:!1})}function mt(t,e){const o=t.readable.getReader(),r=new y({async pull(t){try{const{value:n,done:e}=await o.read();e?t.close():t.enqueue(n)}catch(t){throw gt(e),o.cancel(t).catch(()=>{}),t}},cancel:t=>(gt(e),o.cancel(t))});n.defineProperty(t,"readable",{get:()=>r})}function St(t,n,e,o,r,s){const{m:a,S:i}=t;i.length&&(n=B(i,n));const f=n.length-r,u=f-f%16;if(e=function(t,n){if(n&&n>t.length){const e=t;(t=new c(n)).set(e,0)}return t}(e,o+u),u){const t=kt(e,o,o+u);t.set(kt(n,0,u)),a.process(t,s)}return t.S=kt(n,u),e}function gt(t){const{m:n}=t;t.h=!0,n&&n.dispose&&n.dispose()}async function vt(t,e,r,s){t.password=null;const a=it[e],i=await async function(t,e,r){if(lt)try{const o=await wt.importKey("raw",t,rt,!1,st);return new c(await wt.deriveBits(n.assign({salt:e},ct),o,8*r))}catch{lt=!1}return function(t,n,e,r){const s=J(t),a=new c(r),i=new c(n.length+4),f=new u(i.buffer);i.set(n);for(let t=1,e=0;e<r;t++,e+=V){f.setUint32(n.length,t),s.update(i,0,i.length);let c=s.digest();const u=c.slice();for(let t=1;t<1e3;t++){s.update(c,0,V),c=s.digest();for(let t=0;t<V;t++)u[t]^=c[t]}a.set(u.subarray(0,o.min(V,r-e)),e)}return a}(t,e,0,r)}(r,s,2*a+2);return t.m=dt(kt(i,0,a),kt(i,a,2*a)),t.h&>(t),kt(i,2*a)}function bt(t,n){return n===v?function(t){if(typeof l==b){t=unescape(encodeURIComponent(t));const n=new c(t.length);for(let e=0;e<n.length;e++)n[e]=t.charCodeAt(e);return n}return(new l).encode(t)}(t):n}function kt(t,n,e){return t.subarray(n,e)}class zt extends h{constructor({password:t,rawPassword:n,passwordVerification:e,checkPasswordOnly:o}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;if(e.password||e.rawPassword){const n=Mt(e,t.subarray(0,12));if(e.password=e.rawPassword=null,0!=(n[11]^e.passwordVerification))throw new r(tt);t=t.subarray(12)}o?n.error(new r(nt)):n.enqueue(Mt(e,t))}})}}class Ct extends h{constructor({password:t,rawPassword:n,passwordVerification:e}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;let o,r;if(e.password||e.rawPassword){e.password=e.rawPassword=null;const n=et(new c(12));n[11]=e.passwordVerification,o=new c(t.length+n.length),o.set(At(e,n),0),r=12}else o=new c(t.length),r=0;o.set(At(e,t),r),n.enqueue(o)}})}}function It(t,e,o,r){n.assign(t,{password:e,rawPassword:o,passwordVerification:r}),function(t,e,o){const r=[305419896,591751049,878082192];if(n.assign(t,{v:r,C:new F(r[0]),I:new F(r[2])}),o)for(let n=0;n<o.length;n++)Et(t,o[n]);else for(let n=0;n<e.length;n++)Et(t,e.charCodeAt(n))}(t,e,o)}function Mt(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,e[o]);return e}function At(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,n[o]);return e}function Et(t,n){let[,e]=t.v;t.C.append([n]);const r=~t.C.get();e=Pt(o.imul(Pt(e+xt(r)),134775813)+1),t.I.append([e>>>24]);const c=~t.I.get();t.v=[r,e,c]}function Rt(t){const n=2|t.v[2];return xt(o.imul(n,1^n)>>>8)}function xt(t){return 255&t}function Pt(t){return 4294967295&t}function Dt(t){if(t instanceof y)return t;const n=t.getReader();return new y({async pull(t){try{const{value:e,done:o}=await n.read();o?t.close():t.enqueue(e)}catch(t){throw n.cancel(t).catch(()=>{}),t}},cancel:t=>n.cancel(t)})}function Ft(t){return Boolean(t)&&"object"==typeof t}const Ut=new f;function Bt(t){return Ut.get(t)}const Wt="Invalid uncompressed size",Ot="Codec out of memory",Vt="Invalid CRC32",Kt="deflate-raw",Tt="gzip",_t=[31,139,8];class jt extends h{constructor(t,{chunkSize:n,CompressionStreamFallback:e,CompressionStream:o}){super({});const{compressed:r,encrypted:c,useCompressionStream:s,zipCrypto:a,computeCrc32:i,level:f,deflate64:w,format:l,compressionMethod:d,inputSize:p}=t,h=this;let y,m,S,g=super.readable;const v=l&&Bt(l),b=Gt(s,o,e),k=i&&r&&!w&&!v&&(!c||a)&&Boolean(b);if(c&&!a||!i||k||(y=new U,g=Qt(g,y)),r)if(v)g=Xt(g,qt(v.CompressionStream,l,{level:f,chunkSize:n,compressionMethod:d,uncompressedSize:p}));else if(k)S=new Ht,g=Xt(g,new b(Tt,{level:f,chunkSize:n})),g=Qt(g,S);else try{g=Jt(g,s,{level:f,chunkSize:n},o,e)}catch(t){if(!s&&e)throw en(t);let n;try{n=new o(Tt)}catch{throw en(t)}g=Xt(g,n),g=Qt(g,new Ht)}c&&(a?g=Qt(g,new Ct(t)):(m=new ht(t),g=Qt(g,m))),Nt(h,g,()=>{c&&!a||!i||(h.crc32=k?S.crc32:new u(y.value.buffer).getUint32(0))})}}class Ht extends h{constructor(){let t,n=10,e=new c(0);super({transform(t,r){if(n){const e=o.min(n,t.length);if(n-=e,!(t=t.subarray(e)).length)return}const c=e.length+t.length;if(c<=8)return void(e=B(e,t));const s=c-8,a=o.min(s,e.length);r.enqueue(B(e.subarray(0,a),t.subarray(0,s-a))),e=B(e.subarray(a),t.subarray(s-a))},flush(){const n=W(e);t.crc32=n.getUint32(0,!0),t.uncompressedSize=n.getUint32(4,!0)}}),t=this}}class Lt extends h{constructor(t,{chunkSize:n,DecompressionStreamFallback:e,DecompressionStream:o}){super({});const{zipCrypto:s,encrypted:a,checkCrc32:i,crc32:f,compressed:l,useCompressionStream:d,deflate64:p,format:h,compressionMethod:m,rawBitFlag:S,outputSize:g}=t;let b,k,z,C=super.readable;if(a&&(s?C=Qt(C,new zt(t)):(k=new pt(t),C=Qt(C,k))),l){const t=new Set,s=h&&Bt(h);let a;if(s)C=Xt(C,qt(s.DecompressionStream,h,{chunkSize:n,compressionMethod:m,rawBitFlag:S,uncompressedSize:g}),t);else{const r=Gt(d,o,e);if(i&&!p&&f!==v&&g!==v&&r)try{a=new r(Tt,{chunkSize:n})}catch{a=v}if(!a)try{C=Jt(C,d,{chunkSize:n,deflate64:p},o,e,t)}catch(t){if(p||g===v||!d&&e)throw en(t);try{a=new o(Tt)}catch{throw en(t)}}}a?(z=!0,C=function(t,n,e,o,s){const a=n.writable.getWriter(),i=n.readable.getReader(),f=o===v?new F:v;let u,l,d=0,p=!1,h=!1;const m=new y({start(t){l=t},pull(){b()},cancel:t=>(h=!0,b(),i.cancel(t))});return async function(){const n=t.getReader();try{const t=new c(10);for(t.set(_t),await a.write(t);;){await g(),await a.ready;const{value:t,done:e}=await tn(n,s);if(e)break;await a.write(t)}f&&await a.write(new c(0));const r=new c(8),i=W(r);i.setUint32(0,f?f.get():o,!0),i.setUint32(4,e,!0),p=!0,await a.write(r),await a.close()}catch(t){await Yt(a,t),await $t(n,t)}}(),async function(){try{for(;;){const{value:t,done:n}=await S();if(n)break;if(d+=t.length,d>e)throw new r(Wt);f&&f.append(t),l.enqueue(t)}h||(h=!0,l.close())}catch(t){!function(t){h||(h=!0,l.error(t),b())}(t),await $t(i,t)}}(),m;function S(){return i.read().catch(t=>{if(p){if(!f)throw rn(t,Vt);if(d!=e)throw rn(t,Wt);return{done:!0}}throw nn(t,s)})}function g(){if(!h&&l.desiredSize<=0)return new w(t=>u=t)}function b(){if(u){const t=u;u=v,t()}}}(C,a,g,f,t)):C=function(t,n){const e=t.getReader();return new y({async pull(t){try{const{value:n,done:o}=await e.read();o?t.close():t.enqueue(n)}catch(t){throw await $t(e,t),nn(t,n)}},cancel:t=>e.cancel(t)})}(C,t)}i&&!z&&(b=new U,C=Qt(C,b)),Nt(this,C,()=>{if(b){const t=new u(b.value.buffer).getUint32(0,!1);if(f!=t)throw new r(Vt)}})}}const Zt=new f;function Nt(t,e,o){e=Qt(e,new h({flush:o})),n.defineProperty(t,"readable",{get:()=>e})}function qt(t,n,e){if(!t)throw new r("Compression method not supported");return new t(n,e)}function Gt(t,n,e){return t&&n?n:e&&e.requiresModule?e:void 0}function Jt(t,n,e,o,r,c){const s=n&&o?o:r||o,a=e.deflate64?"deflate64-raw":Kt;let i;try{i=new s(a,e)}catch(t){if(!n||!r||s==r)throw t;i=new r(a,e)}return Xt(t,i,c)}function Qt(t,n){return Dt(t).pipeThrough(n)}function Xt(t,n,e){const o=n.writable.getWriter(),r=t.getReader();return async function(){try{for(;;){await o.ready;const t=await tn(r,e);if(t.done){await o.close();break}await o.write(t.value)}}catch(t){await Yt(o,t),await $t(r,t)}}(),n.readable}async function Yt(t,n){try{await t.abort(n)}catch{}}async function $t(t,n){try{await t.cancel(n)}catch{}}function tn(t,n){const e=t.read();return n?e.catch(t=>{throw n.add(t),t}):e}function nn(t,n){return n.has(t)?t:rn(t,on(t)?Ot:"Invalid compressed data")}function en(t){return on(t)?rn(t,Ot):t}function on(t){return Ft(t)&&"Z_MEM_ERROR"==t.code}function rn(t,n){const e=new r(n);return e.cause=t,e}const cn="data",sn="deflate";class an extends h{constructor(t,e){super({});const o=this,{codecType:c}=t;let s;c.startsWith(sn)?s=jt:c.startsWith("inflate")&&(s=Lt),o.outputSize=0;let a=0;const i=new s(t,e),f=super.readable,u=new h({transform(t,n){t&&t.length&&(a+=t.length,n.enqueue(t))},flush(){n.assign(o,{inputSize:a})}}),w=new h({transform(n,e){if(n&&n.length&&(e.enqueue(n),o.outputSize+=n.length,t.outputSize!==v&&o.outputSize>t.outputSize))throw new r(Wt)},flush(){const{crc32:t}=i;n.assign(o,{crc32:t,inputSize:a})}});n.defineProperty(o,"readable",{get:()=>f.pipeThrough(u).pipeThrough(i).pipeThrough(w)})}}class fn extends h{constructor(t){const o=[];let r=0,s=0;function a(){const n=new c(t);let e=0;for(;e<t;){const r=o[0],c=t-e;r.length<=c?(n.set(r,e),e+=r.length,o.shift()):(n.set(r.subarray(0,c),e),o[0]=r.subarray(c),e+=c)}return r-=t,n}(!e.isFinite(t)||t<1)&&(t=65536),super({transform(n,e){for(o.push(n),r+=n.length;r>t;)s+=t,e.enqueue(a())},flush(t){r&&(s+=r,t.enqueue(function(t,n){const e=new c(n);let o=0;for(const n of t)e.set(n,o),o+=n.length;return e}(o,r)))}}),n.defineProperty(this,"outputSize",{get:()=>s})}}let un=2;try{typeof navigator!=b&&navigator.hardwareConcurrency&&(un=navigator.hardwareConcurrency)}catch{}const wn=new f,ln=new f,dn=function(){try{return structuredClone(new r)instanceof r}catch{return!1}}();let pn=0;async function hn(t){let n,c,s;try{const{options:a,config:i}=t;if(a.format)try{await async function(t,n){!Ut.has(t)&&n&&function(t,n){const{CompressionStream:e,DecompressionStream:o}=n;if(typeof e!=k&&typeof o!=k)throw new r("Invalid codec module");Ut.set(t,{CompressionStream:e,DecompressionStream:o})}(t,await(import(n)))}(a.format,a.codecURI)}catch(t){if(Ft(t))try{t.codecImportFailed=!0}catch{}throw t}if(i.CompressionStream=self.CompressionStream,i.DecompressionStream=self.DecompressionStream,a.compressed&&!a.format)if(a.useCompressionStream){if(!function(t,n){if(!t)return!1;let e=Zt.get(t);e||(e=new f,Zt.set(t,e));let o=e.get(n);if(o===v){try{new t(n),o=!0}catch{o=!1}e.set(n,o)}return o}(a.codecType.startsWith(sn)?i.CompressionStream:i.DecompressionStream,Kt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{a.useCompressionStream=!0}if(a.encrypted&&!a.zipCrypto)try{await self.initModule(t.config)}catch{}!i.CompressionStreamFallback&&i.CompressionStreamZlib&&(i.CompressionStreamFallback=i.CompressionStreamZlib),!i.DecompressionStreamFallback&&i.DecompressionStreamZlib&&(i.DecompressionStreamFallback=i.DecompressionStreamZlib);const u={highWaterMark:1},l=t.readable?Dt(t.readable):new y({async pull(t){const n=new w(t=>wn.set(pn,t));yn({type:"pull",messageId:pn}),pn=(pn+1)%e.MAX_SAFE_INTEGER;const{value:o,done:r}=await n;t.enqueue(o),r&&t.close()}},u);s=t.writable?function(t){if(t instanceof m)return t;const n=t.getWriter();return new m({write:t=>n.write(t),close:()=>n.close(),abort:t=>n.abort(t)})}(t.writable):new m({async write(t){let n;const o=new w(t=>n=t);ln.set(pn,n),yn({type:cn,value:t,messageId:pn}),pn=(pn+1)%e.MAX_SAFE_INTEGER,await o}},u),n=new an(a,i),c=new fn(function(t){return r="string"==typeof(n=r=t.chunkSize)&&n.trim()?e(n):n,e.isInteger(r)&&r>=1?o.max(r,64):65536;var n,r}(i)),await l.pipeThrough(n).pipeThrough(c).pipeTo(s,{preventClose:!0,preventAbort:!0}),await s.getWriter().close();const{crc32:d,inputSize:p,outputSize:h}=n;yn({type:"close",result:{crc32:d,inputSize:p,outputSize:h}})}catch(t){const n=c?c.outputSize:0;if(Ft(t))try{t.outputSize=n}catch{}if(s&&!s.locked)try{await s.getWriter().close()}catch{}mn(t,n)}}function yn(t){const{value:n}=t;if(n)if(n.length)try{t.value=(e=n,e.byteOffset||e.byteLength!=e.buffer.byteLength?new c(e):e).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var e}function mn(t,n){const{message:e,stack:o,code:c,name:s,outputSize:a,cause:i,codecImportFailed:f}=function(t=new r("Unknown error")){return Ft(t)?t:new r(String(t))}(t),u={message:e,stack:o,code:c,name:s,outputSize:a===v?n:a};if(Ft(i)&&(u.cause={name:i.name,message:i.message}),f&&(u.codecImportFailed=!0),dn)try{return void p({error:u,errorValue:{value:t}})}catch{}p({error:u})}addEventListener("message",({data:t})=>{const{type:n,messageId:e,value:o,done:r}=t;try{if("start"==n&&hn(t),n==cn){const t=wn.get(e);wn.delete(e),t({value:o||new c,done:r})}if("ack"==n){const t=ln.get(e);ln.delete(e),t()}}catch(t){mn(t)}}),p({type:"ready"});const Sn="deflate",gn="deflate-raw",vn="deflate64-raw",bn="gzip",kn=[Sn,gn,bn],zn=[Sn,gn,bn,vn];let Cn,In,Mn,An,En;function Rn(t,n){return-4===n&&(t.code="Z_MEM_ERROR"),t}function xn(t,n,e={}){if(!(t?kn:zn).includes(n))throw new TypeError("Unsupported format: "+n);if(!Cn){const t=new r("WASM module not loaded");throw t.cause=En,t}const s="number"==typeof e.level?e.level:-1,a="number"==typeof e.outBuffer?e.outBuffer:65536,i="number"==typeof e.inBufferSize?e.inBufferSize:65536,f={M:0,in:0,inBufferSize:0,A:0,R:!1};let u,l,d,p,h=!0,S=!1;return function(){try{let e;if(f.M=In(a),f.in=In(i),f.inBufferSize=i,!f.M||!f.in)throw Rn(new r("allocation failed"),-4);if(t?(f.P=Cn.deflate_process,f.D=Cn.deflate_last_consumed,f.F=Cn.deflate_end,f.A=Cn.deflate_new(),e=n===bn?Cn.deflate_init_gzip(f.A,s):n===gn?Cn.deflate_init_raw(f.A,s):Cn.deflate_init(f.A,s)):n===vn?(f.P=Cn.inflate9_process,f.D=Cn.inflate9_last_consumed,f.F=Cn.inflate9_end,f.A=Cn.inflate9_new(),e=Cn.inflate9_init_raw(f.A)):(f.P=Cn.inflate_process,f.D=Cn.inflate_last_consumed,f.F=Cn.inflate_end,f.A=Cn.inflate_new(),e=n===gn?Cn.inflate_init_raw(f.A):n===bn?Cn.inflate_init_gzip(f.A):Cn.inflate_init(f.A)),0!==e)throw Rn(new r("init failed:"+e),e)}catch(t){throw b(f),t}}(),{readable:new y({start(t){u=t},pull(){h=!1,v()},cancel(t){S=!0,p=t,b(f),l.error(t),v()}},{highWaterMark:0}),writable:new m({start(t){l=t},async write(t){if(h&&await new w(t=>d=t),S)throw p;try{!function(t){const n=new c(An.buffer),e=f.P,s=f.D,i=f.M;let u=0;for(;u<t.length;){if(f.R)throw new r("trailing data after the end of the stream");const c=o.min(t.length-u,32768);if((!f.in||f.inBufferSize<c)&&(f.in&&Mn&&(Mn(f.in),f.in=0),f.in=In(c),f.inBufferSize=c,!f.in))throw Rn(new r("allocation failed"),-4);n.set(t.subarray(u,u+c),f.in);const w=e(f.A,f.in,c,i,a,0),l=w>>24&255,d=128&l?l-256:l;if(d<0)throw Rn(new r("process error:"+d),d);const p=16777215&w;p&&g(n.slice(i,i+p));const h=s(f.A);if(1===l)f.R=!0;else if(0===h&&0===p)break;u+=h}}(t)}catch(t){throw b(f),u.error(t),t}},close(){if(S)return;try{!function(){const t=new c(An.buffer),n=f.P,e=f.M;for(;;){const o=n(f.A,0,0,e,a,4),c=o>>24&255,s=128&c?c-256:c;if(s<0)throw Rn(new r("process error:"+s),s);const i=16777215&o;if(i&&g(t.slice(e,e+i)),1===c||0===i)break}}()}catch(t){throw b(f),u.error(t),t}const t=b(f);if(0!==t){const n=Rn(new r("end error:"+t),t);throw u.error(n),n}u.close()},abort(t){b(f),u.error(t)}},{highWaterMark:1})};function g(t){h=!0,u.enqueue(t)}function v(){if(d){const t=d;d=null,t()}}function b(t){let n=0;return t.A&&t.F&&(n=t.F(t.A)),t.A=0,t.in&&Mn&&Mn(t.in),t.in=0,t.M&&Mn&&Mn(t.M),t.M=0,n}}class Pn{constructor(t=Sn,n){return xn(!0,t,n)}}class Dn{constructor(t=Sn,n){return xn(!1,t,n)}}Pn.requiresModule=!0,Dn.requiresModule=!0,Pn.supportedFormats=kn,Dn.supportedFormats=zn;const Fn=65536;let Un,Bn;function Wn(t){return new c(t.memory.buffer)}let On=!1;!function(t={}){const{init:n,U:e}=t,o=t.CompressionStreamFallback||t.CompressionStreamZlib,r=t.DecompressionStreamFallback||t.DecompressionStreamZlib;e&&(dt=e||G),self.initModule=async t=>{n&&await n(t),o&&(t.CompressionStreamFallback=o),r&&(t.DecompressionStreamFallback=r)}}({CompressionStreamFallback:Pn,DecompressionStreamFallback:Dn,U:function(t,n){const e=Un;let o=e?function(t,n,e){Bn||(Bn=t.malloc(Fn));const o=Bn?t.aes_hmac_new():0;if(o){const r=Wn(t);if(r.set(n,Bn),r.set(e,Bn+n.length),t.aes_hmac_init(o,Bn,n.length,Bn+n.length,e.length))return t.aes_hmac_end(o,0),0}return o}(e,t,n):0;if(!o)return G(t,n);const r=Bn;return{process(t,n){for(let c=0;c<t.length;c+=Fn){const s=t.subarray(c,c+Fn),a=Wn(e);a.set(s,r),e.aes_hmac_process(o,r,s.length,n?1:0),s.set(a.subarray(r,r+s.length))}},digest:()=>(e.aes_hmac_end(o,r),o=0,Wn(e).slice(r,r+20)),dispose(){o&&(e.aes_hmac_end(o,0),o=0)}}},init:t=>async function(t,{baseURI:n}){if(!On)try{await async function(t,n){let e,o;try{try{o=new URL(t,n)}catch{}const r=await fetch(o);e=await r.arrayBuffer()}catch(n){if(!t.startsWith("data:application/wasm;base64,"))throw n;e=function(t){const n=t.split(",")[1],e=atob(n),o=e.length,r=new c(o);for(let t=0;t<o;++t)r[t]=e.charCodeAt(t);return r.buffer}(t)}const s=await WebAssembly.instantiate(e);var a;(function(t){if(Cn=t,({malloc:In,free:Mn,memory:An}=Cn),"function"!=typeof In||"function"!=typeof Mn||!An)throw Cn=In=Mn=An=null,new r("Invalid WASM module")})(s.instance.exports),typeof(a=s.instance.exports).aes_hmac_new==k&&(Un=a,Bn=0)}(t,n),On=!0}catch(t){throw function(t){En=t}(t),t}}(t.wasmURI,t)})});
|
|
2
|
-
`;if(typeof n=="string"&&(n=new TextEncoder().encode(n)),e){let s=new Blob([n],{type:r});return URL.createObjectURL(s)}return"data:"+r+";base64,"+(function(s){let i="",a=s.length,o=0;for(;o+2<a;o+=3){let f=s[o]<<16|s[o+1]<<8|s[o+2];i+=ct[f>>18&63]+ct[f>>12&63]+ct[f>>6&63]+ct[63&f]}let c=a-o;if(c===1){let f=s[o]<<16;i+=ct[f>>18&63]+ct[f>>12&63]+"=="}else if(c===2){let f=s[o]<<16|s[o+1]<<8;i+=ct[f>>18&63]+ct[f>>12&63]+ct[f>>6&63]+"="}return i})(n)}});Ge();ue();xt();Zt();Bs();br();var vf={type:"module"},ma="error",pE="messageerror",kf="abort",Bf,Ea,zf,ha=!0;try{ha=typeof structuredClone==K&&structuredClone(new DOMException("","AbortError")).code!==w}catch{}Ff(EE);function EE(t,e){let{baseURI:r,chunkSize:n,workerStartupTimeout:s}=e,{wasmURI:i}=e;if(!t.interface){typeof i==K&&(i=i());let a;try{a=Gs(t.workerURI,r,t)}catch{return da(t),pa(t,e)}Object.assign(t,{worker:a,workerAlive:!1,terminated:!1,startupError:null,interface:{run:async()=>{try{return await mE(t,{chunkSize:n,wasmURI:i,baseURI:r,workerStartupTimeout:s})}catch(o){if(o&&o.workerStartupFailed)return da(t),Hf(t),Ws(t,e);if(o&&o.codecImportFailed){if(t.reader)return Hf(t),Ws(t,e);t.onTaskFinished()}throw o}}}})}return t.interface}async function mE(t,e){if(!t.worker){let{startupError:h}=t;t.startupError=null;let g=h||new Error(er);throw g.workerStartupFailed=!0,g}let r,n,s=new Promise((h,g)=>{r=h,n=p=>{let{outputSize:d,workerOptions:u}=t;if(u.outputSize=d,Re(p))try{p.outputSize=d}catch{}g(p)}});Object.assign(t,{reader:null,writer:null,outputSize:0,destinationFailed:!1,destinationError:null,resolveResult:r,rejectResult:n,result:s});let{readable:i,options:a}=t,{writable:o,closed:c,abortPipe:f}=hE(t.writable,t),R;try{R=ga({type:Of,options:a,config:e,readable:i,writable:o},t)}catch(h){f();try{await c}catch{}throw t.onTaskFinished(),h}R||Object.assign(t,{reader:i.getReader(),writer:o.getWriter()});let{workerStartupTimeout:E}=e;!t.workerAlive&&Number.isFinite(E)&&E>=0&&(t.startupTimeout=setTimeout(()=>gE(t),E));try{let h=await s;return await l(),await c,h}catch(h){await l(),f();try{await c}catch{}let{outputSize:g,workerOptions:p,destinationFailed:d,destinationError:u}=t;p.outputSize=g;let m=Re(h)&&(h.codecImportFailed||h.workerStartupFailed),_=d&&!m?u:h;if(Re(_))try{_.outputSize=g}catch{}throw _}async function l(){if(!R&&!o.locked)try{await o.getWriter().close()}catch{}}}function hE(t,e){let r=new AbortController,n,{writable:s,readable:i}=new TransformStream({transform(c,f){e.outputSize+=c.length,f.enqueue(c)}}),a=i.pipeTo(t,{preventClose:!0,preventAbort:!0,signal:r.signal});a.catch(c=>{n||Object.assign(e,{destinationFailed:!0,destinationError:c})});let{signal:o}=e.workerOptions.streamOptions;if(o){let c=()=>r.abort(o.reason),f=()=>o.removeEventListener(kf,c);o.addEventListener(kf,c),a.then(f,f)}return{writable:s,closed:a,abortPipe:()=>{n=!0,r.abort()}}}function Hf(t){let{reader:e}=t;e&&e.releaseLock(),t.reader=null,t.writer=null}function Ra(t){let{worker:e}=t;if(e)try{e.terminate()}catch{}t.interface=null}function Gs(t,e,r,n,s=!0){let{createWorker:i}=r,a,o,c;if(i)a=i();else if(Ea===w||Bf!==t){let f=typeof t==K;f?o=t(s):o=t;let R=o.startsWith("data:"),E=o.startsWith("blob:");if(R||E){n===w&&(n=!1),n&&(c=vf);try{a=new Worker(o,c)}catch(l){if(E)try{URL.revokeObjectURL(o)}catch{}if(f&&E)return Gs(t,e,r,n,!1);if(n)throw l;return Gs(t,e,r,!0,!1)}}else{n===w&&(n=!0),n&&(c=vf);try{o=new URL(o,e)}catch{}try{a=new Worker(o,c)}catch(l){if(n)return Gs(t,e,r,!1,s);throw l}}Bf=t,Ea=o,zf=c}else a=new Worker(Ea,zf);return a.addEventListener(Nf,f=>{r.workerAlive=!0,Wf(r),RE(f,r)}),a.addEventListener(ma,f=>Yf(f,r)),a.addEventListener(pE,f=>Yf(f,r)),a}function gE(t){if(t.startupTimeout=null,t.workerAlive)return;let{rejectResult:e,writer:r}=t;if(Ra(t),t.worker=null,e){let n=new Error(er);n.workerStartupFailed=!0,e(n),r&&r.releaseLock()}}function Wf(t){let{startupTimeout:e}=t;e&&(clearTimeout(e),t.startupTimeout=null)}function Yf(t,e){t.preventDefault&&t.preventDefault(),Wf(e);let{workerAlive:r,rejectResult:n,writer:s,onTaskFinished:i}=e;Ra(e),r||(e.worker=null);let a=t.error||new Error(t.message||ma);r||(a=Object.assign(new Error(a.message||ma),{workerStartupFailed:!0}),e.startupError=a),n&&(n(a),s&&s.releaseLock(),r&&i())}function ga(t,{worker:e,writer:r,transferStreams:n,workerAlive:s}){try{let{value:i,readable:a,writable:o}=t,c=[];if(i&&(t.value=ws(i),c.push(t.value.buffer)),n&&ha&&s?(a&&c.push(a),o&&c.push(o)):t.readable=t.writable=null,c.length)try{return e.postMessage(t,c),!0}catch{ha=!1,t.readable=t.writable=null,e.postMessage(t)}else e.postMessage(t)}catch(i){throw r&&r.releaseLock(),i}}async function RE({data:t},e){let{type:r,value:n,messageId:s,result:i,error:a,errorValue:o}=t,{reader:c,writer:f,resolveResult:R,rejectResult:E,onTaskFinished:l,generation:h}=e,g=()=>e.generation!=h;try{if(a)p(wE(a,o));else{if(r==Df){let{value:m,done:_}=await c.read();g()||ga({type:la,value:m,done:_,messageId:s},e)}if(r==la){let m=new Uint8Array(n);await f.ready,await f.write(m),g()||ga({type:Pf,messageId:s},e)}r==xf&&d(i)}}catch(m){g()||(Ra(e),p(m))}function p(m){g()||(E(m),u(),Re(m)&&m.codecImportFailed||l())}function d(m){g()||(R(m),u(),l())}function u(){f&&f.releaseLock()}}function wE(t,e){let{message:r,stack:n,code:s,name:i,outputSize:a,cause:o,codecImportFailed:c}=t,f;if(e?f=e.value:f=Object.assign(new Error(r),{stack:n,code:s,name:i}),Re(f))try{a!==w&&(f.outputSize=a),c&&(f.codecImportFailed=!0),o&&!Re(f.cause)&&(f.cause=Object.assign(new Error(o.message),{name:o.name})),e&&(f.name!==i&&(f.name=i),f.code!==s&&(f.code=s))}catch{}return f}_i();ue();Ge();Jt();br();Zs();hn();Ji();xt();Sa();Kt();Zt();ei();wr();var $o="File already exists",ec="Zip file comment exceeds 64KB",Wu="Invalid zip file comment (must be a Uint8Array)",Gu="File entry comment exceeds 64KB",Vu="Invalid file entry comment (must be a string)",Xu="Invalid date (must be a valid Date instance)",ju="File entry name exceeds 64KB",tc="Version exceeds 65535",Zu="The strength must equal 1, 2, or 3",Ku="Encryption is not supported in USDZ files",qu="Split zip files are not supported in USDZ files",Ju="Encryption is not supported when the 'passThrough' option is set to true (use 'compressed' instead)",Qu="Invalid extra field (must be a Map)",$u="Invalid extra field type (must be integer 0..65535)",ed="Invalid extra field data (must be a Uint8Array)",Oi="Extra field data exceeds 64KB",td=-2147483648,rd=2147483647,Cu=BigInt(0),Lu=BigInt("0x7fffffffffffffff"),Di="Zip64 is not supported (set the 'zip64' option to 'true')",nd="Undefined uncompressed size",sd="Undefined compression method",id="Undefined CRC32";var ad="Undefined reader",od="Invalid reader (must be a Reader instance, a ReadableStream instance, or an object with a 'readable' property)",cd="Zip file not empty",ld="Invalid uid (must be integer 0..2^32-1)",fd="Invalid gid (must be integer 0..2^32-1)",ud="Invalid UNIX mode (must be integer 0..65535)",dd="Invalid unixExtraFieldType (must be 'infozip' or 'unix')",pd="uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)",Ed="Invalid msdosAttributesRaw (must be integer 0..255)",md="Invalid msdosAttributes (must be an object with boolean flags)",hd="Invalid level (must be integer 0..9)",gd="Signature data exceeds 64KB",Rd="Invalid entry option (must be an entry returned by ZipReader#getEntries())",wd="The last modification date of an entry encrypted with ZipCrypto cannot be changed when passThrough is set",_d="compression unavailable",Td="clamped last modification date",Fu=new Uint8Array([7,0,2,0,65,69,3,0,0]),km=4,Bm=9,zm=67,Hm=32,Ym=126,Wm=1,Si="infozip",Ii="unix",Gm=[8,9,5,3],Vm=9,Go=0,Uu=[],bi=class{constructor(e,r={}){e=new Or(e);let{availableSize:n=Vt,maxSize:s=Vt}=e,i=n>0&&n!==Vt&&s>0&&s!==Vt;if(i&&r[Xt])throw new Error(qu);Object.assign(this,{writer:e,addSplitZipSignature:i,options:r,fileEntries:new Map,filenames:new Set,offset:r[$r]===w?e.size||e.writable.size||0:r[$r],initialOffset:r[$r]===w?0:r[$r]-(e.size||e.writable.size||0),pendingAddFileCalls:new Set,pendingErrors:[],warnings:[],bufferedWrites:0,directWrites:0,lastFileEntry:w,archiveClosed:!1})}prependZip(e){return Vo(this,Xm(this,e))}appendZip(e){return Vo(this,this.appendZipEntries(e))}async appendZipEntries(e){let r=this,{pendingAddFileCalls:n,filenames:s,fileEntries:i}=r;for(;n.size;)await Promise.allSettled(Array.from(n));let a,o=new Promise(R=>a=R);n.add(o);let c=[],f;try{e=new Et(e),await ge(e),(e.size===w||!e.readUint8Array)&&(e=new Qe(await ft(e.readable)),await ge(e));let{ZipReader:R}=await Promise.resolve().then(()=>(_i(),Ou)),E=new R(e),l=await E.getEntries();await E.close(),await ge(r.writer);let{directoryOffset:h}=E;l.forEach(({filename:d})=>{if(s.has(d))throw new Error($o);s.add(d),c.push(d)}),r.writerLocked=!0;let{lockWriter:g}=r;r.lockWriter=new Promise(d=>f=()=>{r.writerLocked=!1,d()}),await g,r.addSplitZipSignature&&(delete r.addSplitZipSignature,await dh(e)||(await rt(r.writer,Sd()),r.offset+=4));let p=await ph(r,e,l,h);l.forEach(d=>{let{version:u,rawLastModDate:m,rawFilename:_,bitFlag:A,encrypted:T,uncompressedSize:y,compressedSize:S,extraFieldZip64:I}=d,{compressionMethod:N,rawExtraField:F}=d,{level:H,languageEncodingFlag:q,dataDescriptor:$}=A;F=yd(F||j),d.extraFieldAES&&(N=99);let Z=z(F),W=!!I&&I.uncompressedSize!==w,U=!!I&&I.compressedSize!==w,ne=Nd(H,q,$,T,N)&-7|H<<1,{headerArray:B,headerView:X}=bd({version:u,bitFlag:ne,compressionMethod:N,uncompressedSize:y,compressedSize:S,rawLastModDate:m,rawFilename:_,zip64CompressedSize:U,zip64UncompressedSize:W,extraFieldLength:Z}),{crc32:M}=d;M!==w&&_e(X,10,M);let{offset:G,diskNumberStart:pe}=p.get(d);Object.assign(d,{zip64Enabled:!0,zip64UncompressedSize:W,zip64CompressedSize:U,offset:G,diskNumberStart:pe,zip64DiskNumberStart:!1,rawExtraFieldZip64:j,rawExtraFieldAES:j,rawExtraFieldExtendedTimestamp:j,rawExtraFieldNTFS:j,rawExtraFieldUnix:j,rawExtraField:F,rawCentralExtraField:j,headerArray:B,headerView:X}),i.set(d.filename,d)})}catch(R){throw c.forEach(E=>s.delete(E)),R}finally{a(),n.delete(o),f&&f()}}add(e="",r,n={}){let s=this,{pendingAddFileCalls:i}=s,a=jm(s,e,r,n);i.add(a);let o=()=>i.delete(a);return Promise.prototype.then.call(a,o,o),Vo(s,a)}remove(e){let{filenames:r,fileEntries:n}=this;if(typeof e==We&&(e=n.get(e)),e&&e.filename!==w){let{filename:s}=e;if(r.has(s)&&n.has(s))return r.delete(s),n.delete(s),!0}return!1}async close(e=j,r={}){let n=this,{pendingAddFileCalls:s,writer:i}=this,{writable:a}=i;if(n.archiveClosed)return Mu(i);if(!(e instanceof Uint8Array))throw new Error(Wu);if(z(e)>65535)throw new Error(ec);for(;s.size;)await Promise.allSettled(Array.from(s));await Promise.allSettled(n.pendingErrors.map(f=>f.recorded));let o=n.pendingErrors.filter(f=>f.failed&&!f.observed);if(o.length){let f=o.map(E=>E.error);o.forEach(E=>E.observed=!0);let[R]=f;try{R.entryErrors=f}catch{}throw R}return await oh(n,e,r),n.archiveClosed=!0,!mn(i)&&k(n,r,ds)||await a.getWriter().close(),Mu(i)}[is](){return this.close()}};var qo=class extends Promise{then(e,r){let{watcher:n}=this;return n&&(n.observed=!0),super.then(e,r)}};function Mu(t){return t.getData?t.getData():t.writable}function Vo(t,e){let r=new qo((s,i)=>Promise.prototype.then.call(e,s,i)),n={};return r.watcher=n,n.recorded=Promise.prototype.then.call(r,w,s=>Object.assign(n,{failed:!0,error:s})),t.pendingErrors.push(n),r}async function Xm(t,e){if(t.filenames.size)throw new Error(cd);await t.appendZipEntries(e)}async function jm(t,e,r,n){n=Object.assign({},n);let s=n[ji];if(s!==w){let{entryOptions:i,passThroughOptions:a}=Ad(s,gr(k(t,n,Qr)),k(t,n,sr));delete n[ji],n=Object.assign(i,a,n)}if(k(t,n,ir)&&!e.endsWith("/")&&(e+="/"),t.filenames.has(e))throw new Error($o);t.filenames.add(e),Go<ot().maxWorkers?Go++:await new Promise(i=>Uu.push(i));try{return await Zm(t,e,r,n)}catch(i){throw t.filenames.delete(e),i}finally{let i=Uu.shift();i?i():Go--}}async function Zm(t,e,r,n){let s=qm(t,e,n);({name:e}=s);let i=Jm(t,e,n),{comment:a}=i,o=n[bn];t.fileEntries.set(e,w);let c=t.lastFileEntry,f={},R;i.resolvedOptions.keepOrder&&(f.lockFileEntry=new Promise(l=>R=l)),t.lastFileEntry=f;let E;try{let{resolvedOptions:l}=i;l.level!=0&&l.compressionMethod===w&&!l.passThroughCompression&&!await Uf(ot())&&(l.level=0,Te(t.warnings,_d,e));let h=await Qm(t,r,i,n);({reader:r}=h);let g=Fn(t.writer),p=Rt(t.writer),d=n.crc32===w?n[$s]:n.crc32,u=h.resolvedOptions.encrypted&&!l.zipCrypto;if(l.passThroughCompression&&!l.passThroughEncryption&&u&&(d=w),l.passThroughCompression&&r&&!u&&d===w)throw new Error(id);n=Object.assign({},n,s.resolvedOptions,i.resolvedOptions,h.resolvedOptions,{signature:n[$s],crc32:d,offset:t.offset-g,diskNumberStart:p,[Xt]:t.options[Xt]});let m=rh(n);m.lastModDateClamped&&Te(t.warnings,Td,e);let _=sh(n),A=z(m.localHeaderArray,_.dataDescriptorArray);E=await eh(t,e,r,{headerInfo:m,dataDescriptorInfo:_,metadataSize:A,fileEntry:f,previousFileEntry:c,releaseLockFileEntry:R},n)}catch(l){throw t.fileEntries.delete(e),l}finally{R&&R(c&&c.lockFileEntry)}return Object.assign(E,{name:e,comment:a,extraField:o}),new mt(E)}function Ad(t,e,r){if(t===null||typeof t!=ss||Array.isArray(t))throw new Error(Rd);let{externalFileAttributes:n,versionMadeBy:s,comment:i,lastModDate:a,rawLastModDate:o,creationDate:c,lastAccessDate:f,uncompressedSize:R,encrypted:E,zipCrypto:l,crc32:h,compressionMethod:g,extraFieldAES:p,extraFieldUnix:d,internalFileAttributes:u,extraField:m,bitFlag:_,directory:A,uid:T,gid:y}=t,S={externalFileAttributes:n,versionMadeBy:s,comment:i,lastModDate:a,creationDate:c,lastAccessDate:f,internalFileAttributes:u,directory:A};_&&_.languageEncodingFlag&&(S[Gi]=!0);let I=eu(m);I&&(S[bn]=I),(T!==w||y!==w)&&Object.assign(S,{uid:T,gid:y,unixExtraFieldType:d?Ii:Si});let N={};if(e&&!A){if(Object.assign(N,{uncompressedSize:R,crc32:h,compressionMethod:g}),e!==en&&Object.assign(N,{encrypted:E,zipCrypto:l,encryptionStrength:p?p.strength:w}),_&&(N.dataDescriptor=_.dataDescriptor,N[ps]=Gm[_.level]),r===w)N.rawLastModDate=o;else if(e!==en&&l&&(!_||_.dataDescriptor)&&r instanceof Date&&Km(r)!=(o>>>8&255))throw new Error(wd)}return{entryOptions:S,passThroughOptions:N}}function Km(t){let e=new Date(Math.ceil(Math.floor(t.getTime()/1e3)/2)*2e3);return e<Nt?e=Nt:e>Jr&&(e=Jr),(e.getHours()<<3|e.getMinutes()>>3)&255}function qm(t,e,r){let n=k(t,r,Ha),s=k(t,r,Ga,n?20:768),i=k(t,r,Xa),a=Br(t,r,Za),o=Br(t,r,Ka),c=Br(t,r,qa),f=k(t,r,hl),R=k(t,r,Ja),E=k(t,r,Qa),l=k(t,r,$a);if(Rr(a,4294967295,ld),Rr(o,4294967295,fd),Rr(c,65535,ud),f!==w&&f!==Si&&f!==Ii)throw new Error(dd);if(f===Ii&&(a!==w&&a>65535||o!==w&&o>65535))throw new Error(pd);f===w&&(a!==w||o!==w)&&(f=Si);let h=Br(t,r,Ba),g=k(t,r,za),p=a!==w||o!==w||c!==w||f||i,d=h!==w||g!==w;if(p?(n=!1,s=s&255|768):d&&(n=!0,s=s&255),Rr(h,255,Ed),g&&(typeof g!==ss||Array.isArray(g)))throw new Error(md);if(s>65535)throw new Error(tc);let u=k(t,r,ka),m=u!==w;m||(u=0),!r[ir]&&e.endsWith("/")&&(r[ir]=!0);let _=k(t,r,ir);if(_?(e.endsWith("/")||(e+="/"),m||(u=16,n||(u|=16877<<16))):!n&&!m&&(i?u=493<<16:u=420<<16),!n){let y=c!==w||!!(R||E||l),S=u>>16&65535;c=c===w?S:c&65535,R?c|=2048:R=!!(c&2048),E?c|=1024:E=!!(c&1024),l?c|=512:l=!!(c&512),(!m||y)&&(_?c=c&-61441|16384:c&61440||(c|=32768),u=(c&65535)<<16|u&65535)}({msdosAttributesRaw:h,msdosAttributes:g}=nh(h,g)),d&&(u=u&4294967295|h&255);let A=u>>16&65535,T=c!==w&&(c&61440)==40960;return{name:e,resolvedOptions:{versionMadeBy:s,msDosCompatible:!!n,externalFileAttributes:u,unixExternalUpper:A,uid:a,gid:o,unixMode:c,unixExtraFieldType:f,symlink:T,setuid:R,setgid:E,sticky:l,msdosAttributesRaw:h,msdosAttributes:g}}}function Jm(t,e,r){let n=Jo(t,r,ml)||_r,s=n(e,Es);if(s===w&&(s=_r(e)),z(s)>65535)throw new Error(ju);let i=r[An]||"";if(typeof i!=We)throw new Error(Vu);let a=n(i,ms);if(a===w&&(a=_r(i)),z(a)>65535)throw new Error(Gu);let o=k(t,r,Wa);if(o!==w&&o>65535)throw new Error(tc);let c=Ko(t,r,sr,new Date),f=k(t,r,Pr),R=Ko(t,r,Sn),E=Ko(t,r,In),l=k(t,r,va,0),h=gr(k(t,r,Qr)),g=!!h,p=h===!0,d=k(t,r,as),u=k(t,r,os);gs(d,u),d=d&&d.length?d:w,u=u&&u.length?u:w;let m=Br(t,r,ol,3),_=k(t,r,Va),A=k(t,r,cl,!0),T=k(t,r,ll),y=k(t,r,fl,!0),S=k(t,r,ls),I=k(t,r,us),N=k(t,r,ul),F=Jo(t,r,dl),H=k(t,r,pl,!0),q=tn(k(t,r,cs));jt(q);let $=k(t,r,Gi,!Yu(s)||!Yu(a)),Z=k(t,r,ja),W=g||Z===w?w:Os(Z);if(!g&&Z!==w&&Z!==0&&Z!==8&&!W)throw new Error(ut);let U=Br(t,r,ps);if(Rr(U,Vm,hd),t.options[Xt]){if(d!==w||u!==w)throw new Error(Ku);U===w&&Z===w&&(U=0)}g&&(U=Dt(r[ps]));let ne=k(t,r,fs),B=k(t,r,Vi);N&&B===w&&(B=!1),(B===w||_&&!p)&&(B=!0),U!==w&&U!=6&&(ne=!1);let X=k(t,r,Qs);if(!_&&(d!==w||u!==w)&&!(Number.isInteger(m)&&m>=1&&m<=3))throw new Error(Zu);let M=Xo(r[bn]),G=Xo(r[gl]),pe=Xo(r[Rl]);return{comment:i,resolvedOptions:{rawFilename:s,rawComment:a,version:o,lastModDate:c,rawLastModDate:f,lastAccessDate:R,creationDate:E,internalFileAttributes:l,passThroughCompression:g,passThroughEncryption:p,password:d,rawPassword:u,encryptionStrength:m,zipCrypto:_,extendedTimestamp:A,ntfsTimestamp:T,keepOrder:y,useWebWorkers:S,transferStreams:I,bufferedWrite:N,createTempStream:F,dataDescriptorSignature:H,signal:q,useUnicodeFileNames:$,compressionMethod:Z,format:W?W.format:w,codecURI:W?W.codecURI:w,codecVersionNeeded:W?W.versionNeeded:w,level:U,useCompressionStream:ne,dataDescriptor:B,zip64:X,rawExtraField:M,rawLocalExtraField:G,rawCentralExtraField:pe}}}function Xo(t){if(!t)return j;if(!(t instanceof Map))throw new Error(Qu);let e=0,r=0;t.forEach((i,a)=>{if(Ki(a,65535,$u),!(i instanceof Uint8Array))throw new Error(ed);if(z(i)>65535)throw new Error(Oi);e+=4+z(i)});let n=new Uint8Array(e),s=L(n);return t.forEach((i,a)=>{tt(s,r,a),tt(s,r+2,z(i)),vn(n,i,r+4),r+=4+z(i)}),n}async function Qm(t,e,{resolvedOptions:r},n){if(r.passThroughCompression&&!e&&!k(t,n,ir))throw new Error(ad);let s;if(e){if(e=new Et(e),await ge(e),!e.readable&&!e.readUint8Array)throw new Error(od);({size:s}=e)}return Object.assign({reader:e},$m(t,!!e,s,r,n))}function $m(t,e,r,n,s){let{passThroughCompression:i,passThroughEncryption:a,zipCrypto:o,password:c,rawPassword:f,encryptionStrength:R}=n,{dataDescriptor:E,zip64:l,level:h,compressionMethod:g}=n,p=0,d=0,u=!1;if(i&&e){if(d=s[yn],d===w)throw new Error(nd);if(g===w)throw new Error(sd)}let m=l===!0,_=k(t,s,Ya);if(e&&a&&!_&&z(c,f))throw new Error(Ju);let A=e&&(!!(c&&z(c)||f&&z(f))||a&&_);e||(h=0,g=0);let T=Nn(A,o,R);e&&(i?(s.uncompressedSize=d,p=r===w?Hu(d)+T:r+(a?0:T)):r===w?(E=!0,(l||l===w)&&(l=u=!0,p=4294967296)):(s.uncompressedSize=d=r,p=(Qo(g,h)?Hu(d):d)+T));let y=!A&&(!e||r===0&&!i)&&!Qo(g,h);y&&k(t,s,Vi)===w&&(E=!1);let S=m||u||d>=4294967295,I=m||p>=4294967295;if(S||I){if(l===!1)throw new Error(Di);l=!0}return l=l||!1,{maximumCompressedSize:p,resolvedOptions:{dataDescriptor:E,emptyEntry:y,zip64:l,zip64Enabled:m,unknownSize:u,zip64UncompressedSize:S,zip64CompressedSize:I,uncompressedSize:d,level:h,compressionMethod:g,encrypted:A}}}async function eh(t,e,r,n,s){let{fileEntries:i,writer:a}=t,{keepOrder:o,dataDescriptor:c,emptyEntry:f,signal:R}=s,{headerInfo:E,fileEntry:l,previousFileEntry:h,releaseLockFileEntry:g}=n,p=t.options[Xt],d=l,u,m,_,A,T,y,S=0,I,N=o&&h?h.lockFileEntry:w;i.set(e,d);try{s.bufferedWrite||!o||t.writerLocked||t.bufferedWrites||t.directWrites||!c&&!f?(u=!0,t.bufferedWrites++,s.createTempStream?I=await s.createTempStream():I=new TransformStream(w,w,{highWaterMark:Vt}),I.size=0,await ge(a)):(m=!0,t.directWrites++,I=a,await N,await F()),await ge(I);let q=Fn(a);t.addSplitZipSignature&&!u&&await Bu(t,a),p&&!u&&vu(n,t.offset-q);let{localHeaderArray:$}=E;u||await H();let Z=Rt(a),W=Un(t,a);if(d.diskNumberStart=Z,u||(T=!0,y=a.size,await rt(I,$)),d=await th(r,I,d,n,ot(),s),u||(T=!1),i.set(e,d),d.filename=e,u){if(await Promise.all([I.writable.getWriter().close(),N]),await F(),t.addSplitZipSignature&&await Bu(t,a),A=!0,y=a.size,await H(),d.diskNumberStart=Rt(a),d.offset=Un(t,a),p){let U=n.metadataSize;vu(n,t.offset-Fn(a)),d.size+=n.metadataSize-U}ah(d,E.localHeaderView,s),await rt(a,E.localHeaderArray),await Id(I.readable,a,R,U=>S+=U),a.size+=I.size,A=!1}else d.diskNumberStart=Z,d.offset=W;return t.offset+=d.size,d}catch(q){if(A||T){if(t.hasCorruptedEntries=!0,q)try{q.corruptedEntry=!0}catch{}t.offset+=a.size-y,u&&(t.offset+=S)}throw i.delete(e),q}finally{if(u&&t.bufferedWrites--,m&&t.directWrites--,g&&g(N),_&&_(),u&&I&&I.dispose)try{await I.dispose()}catch{}}async function F(){t.writerLocked=!0;let{lockWriter:q}=t;t.lockWriter=new Promise($=>_=()=>{t.writerLocked=!1,$()}),await q}async function H(){zr(a,z(E.localHeaderArray))&&await a.closeDisk()}}async function th(t,e,{diskNumberStart:r,lockFileEntry:n},s,i,a){let{headerInfo:o,dataDescriptorInfo:c,metadataSize:f}=s,{headerArray:R,headerView:E,lastModDate:l,rawLastModDate:h,encrypted:g,compressed:p,version:d,compressionMethod:u,rawExtraFieldZip64:m,localExtraFieldZip64Length:_,rawExtraFieldExtendedTimestamp:A,extraFieldExtendedTimestampFlag:T,extraFieldExtendedTimestampTime:y,rawExtraFieldNTFS:S,rawExtraFieldUnix:I,rawExtraFieldAES:N}=o,{dataDescriptorArray:F}=c,{rawFilename:H,lastAccessDate:q,creationDate:$,password:Z,rawPassword:W,level:U,useUnicodeFileNames:ne,zip64:B,zip64Enabled:X,zip64UncompressedSize:M,zip64CompressedSize:G,zipCrypto:pe,dataDescriptor:me,directory:nt,executable:Ue,versionMadeBy:Me,rawComment:je,rawExtraField:be,rawCentralExtraField:Ne,useWebWorkers:Oe,transferStreams:oe,onstart:De,onprogress:ve,onend:fe,signal:te,encryptionStrength:J,extendedTimestamp:b,msDosCompatible:Y,internalFileAttributes:Q,externalFileAttributes:Ee,uid:Pe,gid:Ze,unixMode:Bt,symlink:Gr,setuid:zt,setgid:He,sticky:Tt,unixExternalUpper:st,msdosAttributesRaw:de,msdosAttributes:Ae,useCompressionStream:Yn,passThroughCompression:At,passThroughEncryption:yt,format:Wn,codecURI:vi}=a,Vr={lockFileEntry:n,versionMadeBy:Me,zip64:B,zip64Enabled:X,directory:!!nt,executable:!!Ue,filenameUTF8:!!ne,rawFilename:H,commentUTF8:!!ne,rawComment:je,rawExtraFieldZip64:m,localExtraFieldZip64Length:_,rawExtraFieldExtendedTimestamp:A,rawExtraFieldNTFS:S,rawExtraFieldUnix:I,rawExtraFieldAES:N,rawExtraField:be,rawCentralExtraField:Ne,extendedTimestamp:b,msDosCompatible:Y,internalFileAttributes:Q,externalFileAttributes:Ee,diskNumberStart:r,uid:Pe,gid:Ze,unixMode:Bt,symlink:!!Gr,setuid:zt,setgid:He,sticky:Tt,unixExternalUpper:st,msdosAttributesRaw:de,msdosAttributes:Ae},{crc32:Ht,uncompressedSize:St}=a,he=0;At||(St=0);let{writable:Xr}=e;if(t){let Yt=t.size,It=ze(ya(t,{size:Yt})),Gn={options:{codecType:Ir,inputSize:Yt,level:U,rawPassword:W,password:Z,encryptionStrength:J,zipCrypto:g&&pe,passwordVerification:g&&pe&&h>>8&255,computeCrc32:!At,compressed:p&&!At,encrypted:g&&!yt,useWebWorkers:Oe,useCompressionStream:Yn,transferStreams:oe,format:Wn,codecURI:vi,compressionMethod:u},config:i,streamOptions:{signal:te,size:Yt,onstart:De,onprogress:ve,onend:fe}};try{let Ke=await js({readable:It,writable:Xr},Gn);if(he=Ke.outputSize,e.size+=he,jt(te),At||(St=Ke.inputSize,(!g||pe)&&(Ht=Ke.crc32)),!G&&he>=4294967295||!M&&St>=4294967295)throw new Error(Di)}catch(Ke){let{outputSize:Vn}=Gn;throw Vn!==w?e.size+=Vn:Re(Ke)&&Ke.outputSize!==w&&(e.size+=Ke.outputSize),Ke}}return ih({crc32:Ht,compressedSize:he,uncompressedSize:St,headerInfo:o,dataDescriptorInfo:c},a),me&&await rt(e,F),Object.assign(Vr,{uncompressedSize:St,compressedSize:he,lastModDate:l,rawLastModDate:h,creationDate:$,lastAccessDate:q,encrypted:!!g,zipCrypto:!!pe,size:f+he,compressionMethod:u,version:d,headerArray:R,headerView:E,signature:Ht,crc32:g&&!pe&&!At?w:Ht,extraFieldExtendedTimestampFlag:T,extraFieldExtendedTimestampTime:y,zip64UncompressedSize:M,zip64CompressedSize:G}),Vr}function rh(t){let{rawFilename:e,lastModDate:r,rawLastModDate:n,lastAccessDate:s,creationDate:i,level:a,zip64:o,zipCrypto:c,useUnicodeFileNames:f,dataDescriptor:R,directory:E,rawExtraField:l,rawLocalExtraField:h,encryptionStrength:g,extendedTimestamp:p,ntfsTimestamp:d,passThroughCompression:u,encrypted:m,zip64UncompressedSize:_,zip64CompressedSize:A,uncompressedSize:T,unknownSize:y,crc32:S}=t,{version:I,compressionMethod:N}=t,F=!E&&Qo(N,a),H,q=u||!F,$=o&&(t.bufferedWrite||!R||!_&&!A||q&&!y),Z=$||o&&R&&(_||A);if(o&&(_||A)){let te=Le(20);if(te.writeUint16(1),te.writeUint16(16),H=te.array,$&&(te.writeUint64(T),q)){let J=Nn(m,c,g);te.writeUint64(u?0:T+J)}}else H=j;let W;if(m&&!c){let fe=Le(z(Fu)+2);fe.writeUint16(39169),fe.writeBytes(Fu),W=fe.array,W[8]=g}else W=j;let U,ne,B,X;if(p){let fe=Ai(r),te=mh(fe);if(te){let b=9+(s?4:0)+(i?4:0),Y=Le(b);B=1+(s?2:0)+(i?4:0),X=fe,Y.writeUint16(21589),Y.writeUint16(b-4),Y.writeUint8(B),Y.writeUint32(fe),s&&Y.writeUint32(zu(Ai(s))),i&&Y.writeUint32(zu(Ai(i))),ne=Y.array}else ne=j;if(d===w?!te||!!(s||i):d)try{let b=Zo(r),Y=Le(36);Y.writeUint16(10),Y.writeUint16(32),Y.skip(4),Y.writeUint16(1),Y.writeUint16(24),Y.writeUint64(b),Y.writeUint64(s?Zo(s):b),Y.writeUint64(i?Zo(i):b),U=Y.array}catch{U=j}else U=j}else U=ne=j;let M;try{let{uid:fe,gid:te,unixExtraFieldType:J}=t;if(J==Si&&(fe!==w||te!==w)){let b=ku(fe===w?0:fe),Y=ku(te===w?0:te),Q=3+b.length+Y.length,Ee=Le(4+Q);Ee.writeUint16(30837),Ee.writeUint16(Q),Ee.writeUint8(1),Ee.writeUint8(b.length),Ee.writeBytes(b),Ee.writeUint8(Y.length),Ee.writeBytes(Y),M=Ee.array}else if(J==Ii&&(fe!==w||te!==w)){let b=Le(8);b.writeUint16(30805),b.writeUint16(4),b.writeUint16((fe===w?0:fe)&65535),b.writeUint16((te===w?0:te)&65535),M=b.array}else M=j}catch{M=j}N===w&&(N=F?8:0),I===w&&(I=N==0&&!E&&!m?10:20);let{codecVersionNeeded:G}=t;F&&G!==w&&(I=I>G?I:G),o&&(I=I>45?I:45),m&&!c&&(I=I>51?I:51,u&&S!==w&&(W[km]=Wm),tt(L(W),Bm,N),N=99);let pe=Z?z(H):0,me=pe+z(W,ne,U,M,l,h),nt=t[Xt]?zm:0;if(me+nt>65535)throw new Error(Oi);let Ue=new Date(Math.ceil(Math.floor(r.getTime()/1e3)/2)*2e3),Me=Ue<Nt?Nt:Ue>Jr?Jr:Ue,je=z(ne)?new Date(Ai(r)*1e3):z(U)?r:Me,{headerArray:be,headerView:Ne,rawLastModDate:Oe}=bd({version:I,bitFlag:Nd(a,f,R,m,N),compressionMethod:N,uncompressedSize:T,lastModDate:Me,rawLastModDate:n,rawFilename:e,zip64CompressedSize:A,zip64UncompressedSize:_,extraFieldLength:me}),oe=Le(30+z(e)+me),De=oe.array,ve=L(De);return oe.writeUint32(67324752),oe.writeBytes(be),oe.writeBytes(e),Z&&oe.writeBytes(H),oe.writeBytes(W),oe.writeBytes(ne),oe.writeBytes(U),oe.writeBytes(M),oe.writeBytes(l),oe.writeBytes(h),R&&(A||_e(ve,18,0),_||_e(ve,22,0)),{localHeaderArray:De,localHeaderView:ve,headerArray:be,headerView:Ne,lastModDate:je,lastModDateClamped:je===Me&&Ue.getTime()!=Me.getTime(),rawLastModDate:Oe,encrypted:m,compressed:F,version:I,compressionMethod:N,extraFieldExtendedTimestampFlag:B,extraFieldExtendedTimestampTime:X,rawExtraFieldZip64:j,localExtraFieldZip64Length:pe,rawExtraFieldExtendedTimestamp:ne,rawExtraFieldNTFS:U,rawExtraFieldUnix:M,rawExtraFieldAES:W,extraFieldLength:me}}function vu(t,e){let{headerInfo:r}=t,{localHeaderArray:n,extraFieldLength:s}=r,i=64-(e+z(n))%64;i<4&&(i+=64);let a=new Uint8Array(i),o=L(a);tt(o,0,6534),tt(o,2,i-4);let c=n;r.localHeaderArray=n=new Uint8Array(z(c)+i),vn(n,c),vn(n,a,z(c));let f=L(n);tt(f,28,s+i),r.localHeaderView=f,t.metadataSize+=i}function ku(t){let e=new Uint8Array(4);L(e).setUint32(0,t,!0);let n=4;for(;n>1&&e[n-1]===0;)n--;return e.subarray(0,n)}function nh(t,e){if(t!==w)t=t&255;else if(e!==w){let{readOnly:r,hidden:n,system:s,directory:i,archive:a}=e,o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),i&&(o|=16),a&&(o|=32),t=o&255}return e===w&&(e={readOnly:!!(t&1),hidden:!!(t&2),system:!!(t&4),directory:!!(t&16),archive:!!(t&32)}),{msdosAttributesRaw:t,msdosAttributes:e}}function sh({zip64:t,dataDescriptor:e,dataDescriptorSignature:r}){let n=j,s,i=0,a=t?20:12;return r&&(a+=4),e&&(n=new Uint8Array(a),s=L(n),r&&(i=4,_e(s,0,134695760))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:i}}function ih({crc32:t,compressedSize:e,uncompressedSize:r,headerInfo:n,dataDescriptorInfo:s},{zip64:i,zipCrypto:a,passThroughCompression:o,dataDescriptor:c}){let{headerView:f,encrypted:R}=n,{dataDescriptorView:E,dataDescriptorOffset:l}=s;(!R||a||o)&&t!==w&&(_e(f,10,t),c&&_e(E,l,t)),i?c&&(Mn(E,l+4,BigInt(e)),Mn(E,l+12,BigInt(r))):(_e(f,14,e),_e(f,18,r),c&&(_e(E,l+4,e),_e(E,l+8,r)))}function ah({rawFilename:t,encrypted:e,zip64:r,localExtraFieldZip64Length:n,crc32:s,compressedSize:i,uncompressedSize:a,zip64UncompressedSize:o,zip64CompressedSize:c},f,{dataDescriptor:R,passThroughCompression:E}){if(R||((!e||E&&s!==w)&&_e(f,14,s),c||_e(f,18,i),o||_e(f,22,a)),r&&n){let l=30+z(t)+4;Mn(f,l,BigInt(a)),Mn(f,l+8,BigInt(i))}}async function oh(t,e,r){let{directoryDataLength:n,zip64Entries:s}=ch(t.fileEntries),{directoryStart:i,directoryEnd:a,directoryArray:o}=await lh(t,n,r),c=await fh(t,o,r);await uh(t,e,r,{directoryStart:i,directoryEnd:a,directoryDataLength:n,signatureLength:c,zip64Entries:s})}function ch(t){let e=0,r=!1;for(let[,n]of t){let{rawFilename:s,rawExtraFieldAES:i,rawComment:a,rawExtraFieldNTFS:o,rawExtraFieldUnix:c,rawExtraField:f,rawCentralExtraField:R,extraFieldExtendedTimestampFlag:E,extraFieldExtendedTimestampTime:l,zip64Enabled:h,uncompressedSize:g,compressedSize:p}=n,{zip64UncompressedSize:d,zip64CompressedSize:u}=n;h||(d&&g<4294967295&&(d=n.zip64UncompressedSize=!1),u&&p<4294967295&&(u=n.zip64CompressedSize=!1)),r=r||d||u;let m=n.offset>=4294967295,_=n.diskNumberStart>=65535,A;if(m||_||d||u){let S=4+(d?8:0)+(u?8:0)+(m?8:0)+(_?4:0),I=Le(S);I.writeUint16(1),I.writeUint16(S-4),d&&I.writeUint64(g),u&&I.writeUint64(p),m&&I.writeUint64(n.offset),_&&I.writeUint32(n.diskNumberStart),A=I.array}else A=j;n.rawExtraFieldZip64=A,n.zip64Offset=m,n.zip64DiskNumberStart=_;let T;if(l===w)T=j;else{let S=Le(9);S.writeUint16(21589),S.writeUint16(5),S.writeUint8(E),S.writeUint32(l),T=S.array}n.rawExtraFieldExtendedTimestamp=T;let y=z(A,i,o,c,T,f,R);if(y>65535)throw new Error(Oi);e+=46+z(s,a)+y}return{directoryDataLength:e,zip64Entries:r}}async function lh(t,e,r){let{fileEntries:n,writer:s}=t,i=new Uint8Array(e);await ge(s);let a=0,o=0,c=Rt(s),f=Fn(s),R=0;for(let[E,l]of Array.from(n.values()).entries()){let{offset:h,rawFilename:g,rawExtraFieldZip64:p,rawExtraFieldAES:d,rawExtraFieldExtendedTimestamp:u,rawExtraFieldNTFS:m,rawExtraFieldUnix:_,rawExtraField:A,rawCentralExtraField:T,rawComment:y,versionMadeBy:S,headerArray:I,headerView:N,zip64UncompressedSize:F,zip64CompressedSize:H,zip64DiskNumberStart:q,zip64Offset:$,internalFileAttributes:Z,externalFileAttributes:W,diskNumberStart:U,uncompressedSize:ne,compressedSize:B}=l,X=z(p,d,u,m,_,A,T),M=46+z(g,y)+X;zr(s,a+M-o)&&(await rt(s,i.slice(o,a)),o=a,R=0,await s.closeDisk()),E==0&&(c=Rt(s),f=Fn(s)),F||_e(N,18,ne),H||_e(N,14,B),($||q)&&l.version<45&&tt(N,0,45);let G=Le(M);if(G.writeUint32(33639248),G.writeUint16(S),G.writeBytes(I.subarray(0,24)),G.writeUint16(X),G.writeUint16(z(y)),G.writeUint16(q?65535:U),G.writeUint16(Z),G.writeUint32(W),G.writeUint32($?4294967295:h),G.writeBytes(g),G.writeBytes(p),G.writeBytes(d),G.writeBytes(u),G.writeBytes(m),G.writeBytes(_),G.writeBytes(A),G.writeBytes(T),G.writeBytes(y),vn(i,G.array,a),a+=M,R++,r.onprogress)try{await r.onprogress(E+1,n.size,new mt(l))}catch{}}return await rt(s,o?i.slice(o):i),{directoryStart:{diskNumber:c,diskOffset:f},directoryEnd:{diskNumber:Rt(s),entriesLength:R},directoryArray:i}}async function fh(t,e,r){let n=Jo(t,r,yl);if(n){let s=await n(e),i=z(s);if(i>65535)throw new Error(gd);let a=Le(6+i);a.writeUint32(84233040),a.writeUint16(i),a.writeBytes(s);let{writer:o}=t;return zr(o,z(a.array))&&await o.closeDisk(),await rt(o,a.array),6+i}return 0}async function uh(t,e,r,n){let{writer:s}=t,{directoryStart:i,directoryEnd:a,signatureLength:o,zip64Entries:c}=n,{directoryDataLength:f}=n,R=t.fileEntries.size,E=i.diskNumber,l=Un(t,i),h=z(e);if(h>65535)throw new Error(ec);let g=k(t,r,Qs),p=Rt(s);if(zr(s,(g?98:22)+h)&&p++,l>=4294967295||f>=4294967295||R>=65535||p>=65535){if(g===!1)throw new Error(Di);g=!0}else g===w&&c&&(g=!0);let d=Le(g?98:22);zr(s,z(d.array)+h)&&await s.closeDisk(),p=Rt(s);let u=p==a.diskNumber?a.entriesLength:0;g&&(d.writeUint32(101075792),d.writeUint64(44),d.writeUint16(45),d.writeUint16(45),d.writeUint32(p),d.writeUint32(E),d.writeUint64(u),d.writeUint64(R),d.writeUint64(f),d.writeUint64(l),d.writeUint32(117853008),d.writeUint32(p),d.writeUint64(BigInt(Un(t,s))+BigInt(f)+BigInt(o)),d.writeUint32(p+1),k(t,r,El,!0)&&(p=65535,E=65535),u=65535,R=65535,l=4294967295,f=4294967295),d.writeUint32(101010256),d.writeUint16(p),d.writeUint16(E),d.writeUint16(u),d.writeUint16(R),d.writeUint32(f),d.writeUint32(l),d.writeUint16(h),await rt(s,d.array),h&&await rt(s,e)}function Le(t){let e=new Uint8Array(t),r=L(e),n=0;return{array:e,writeUint8:s=>{gh(r,n,s),n+=1},writeUint16:s=>{tt(r,n,s),n+=2},writeUint32:s=>{_e(r,n,s),n+=4},writeUint64:s=>{Mn(r,n,BigInt(s)),n+=8},writeBytes:s=>{vn(e,s,n),n+=z(s)},skip:s=>n+=s}}function Rt(t){let{diskNumber:e=0}=t;return e}function Fn(t){let{diskOffset:e=0}=t;return e}function zr(t,e){let{availableSize:r=Vt}=t;return e>r}function Un(t,{diskNumber:e=0,diskOffset:r=0}){return t.offset-r-(e?t.initialOffset:0)}async function dh(t){let e=await re(t,0,4);return hh(L(e),0)==134695760}function yd(t){let e=L(t),r=0;for(;r+4<=z(t);){let n=4+Ni(e,r+2);if(Ni(e,r)==1)return yd(Be(t.subarray(0,r),t.subarray(Math.min(r+n,z(t)))));r+=n}return t}async function ph(t,e,r,n){let{writer:s}=t,i=new Map;if(s.closeDisk){let a=Array.from(r).sort((c,f)=>Ti(e,c)-Ti(e,f)),o=0;for(let c of a){let f=Ti(e,c);await jo(t,e,o,f-o),zr(s,await Eh(e,f))&&await s.closeDisk(),i.set(c,{offset:Un(t,s),diskNumberStart:Rt(s)}),o=f}await jo(t,e,o,n-o)}else{let a=t.offset;await jo(t,e,0,n),r.forEach(o=>i.set(o,{offset:a+Ti(e,o),diskNumberStart:0}))}return i}async function jo(t,e,r,n){if(n>0){let{writer:s}=t,i=0;try{await Id(ya(e,{offset:r,size:n}),s,w,a=>i+=a)}catch(a){t.hasCorruptedEntries=!0;try{a.corruptedEntry=!0}catch{}throw a}finally{s.size+=i,t.offset+=i}}}async function Eh(t,e){let r=await re(t,e,30);if(z(r)<30)return 30;let n=L(r);return 30+Ni(n,26)+Ni(n,28)}function Ti(t,{offset:e,diskNumberStart:r}){return e+(t.getDiskOffset?t.getDiskOffset(r):0)}function Sd(){let t=new Uint8Array(4);return _e(L(t),0,134695760),t}async function Bu(t,e){delete t.addSplitZipSignature,await rt(e,Sd()),t.offset+=4}async function rt(t,e){let{writable:r}=t,n=r.getWriter();try{await n.ready,t.size+=z(e),await n.write(e)}finally{n.releaseLock()}}async function Id(t,e,r,n){let s=e.writable.getWriter();try{await t.pipeTo(new WritableStream({async write(i){await s.ready,await s.write(i),n(z(i))}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{s.releaseLock()}}function Zo(t){if(t){let e=(BigInt(t.getTime())+BigInt(116444736e5))*BigInt(1e4);return e<Cu?Cu:e>Lu?Lu:e}}function Ai(t){return Math.floor(t.getTime()/1e3)}function mh(t){return t>=td&&t<=rd}function zu(t){return Math.min(rd,Math.max(td,t))}function k(t,e,r,n){let s=e[r]===w?t.options[r]:e[r];return s===w?n:s}function Ko(t,e,r,n){let s=k(t,e,r,n);if(s===null)return n;if(s!==w&&(typeof s.getTime!=K||Number.isNaN(s.getTime())))throw new Error(Xu);return s}function Jo(t,e,r){return hr(k(t,e,r))}function Br(t,e,r,n){return Dt(k(t,e,r,n))}function Hu(t){return t+5*(Math.floor(t/16383)+1)}function Qo(t,e){return t===w?e===w||e>0:t!==0}function Ni(t,e){return t.getUint16(e,!0)}function hh(t,e){return t.getUint32(e,!0)}function gh(t,e,r){t.setUint8(e,r)}function tt(t,e,r){t.setUint16(e,r,!0)}function _e(t,e,r){t.setUint32(e,r,!0)}function Mn(t,e,r){t.setBigUint64(e,r,!0)}function vn(t,e,r){t.set(e,r)}function z(...t){let e=0;return t.forEach(r=>r&&(e+=r.length)),e}function bd({version:t,bitFlag:e,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:i,rawLastModDate:a,rawFilename:o,zip64CompressedSize:c,zip64UncompressedSize:f,extraFieldLength:R}){let E=Le(26),l=E.array,h=L(l);if(E.writeUint16(t),E.writeUint16(e),E.writeUint16(r),a===w){let g=new Uint32Array(1),p=L(g);tt(p,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),tt(p,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),a=g[0]}return E.writeUint32(a),E.skip(4),c||s!==w?E.writeUint32(c?4294967295:s):E.skip(4),f||n!==w?E.writeUint32(f?4294967295:n):E.skip(4),E.writeUint16(z(o)),E.writeUint16(R),{headerArray:l,headerView:h,rawLastModDate:a}}function Yu(t){return t.every(e=>e>=Hm&&e<=Ym)}function Nd(t,e,r,n,s){let i=0;return e&&(i=i|2048),r&&(i=i|8),(s==8||s==9)&&(t>=0&&t<=3&&(i=i|6),t>3&&t<=5&&(i=i|4),t==9&&(i=i|2)),n&&(i=i|1),i}hn();wr();Ge();Jt();ue();Ge();Jt();ca();var Pw=1024*1024;Kt();var Lw=1024*1024;var Uw=1024*1024;var Mw=512*1024;try{Pt({baseURI:import.meta.url})}catch{}Ge();var Oh=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],Dh=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Ph=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],xh=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Ch=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Bn=new Uint8Array(288);Bn.fill(8,0,144),Bn.fill(9,144,256),Bn.fill(7,256,280),Bn.fill(8,280,288);var Lh=new Uint8Array(30).fill(5);function kn(t){let e=new Uint16Array(16);for(let s of t)e[s]++;e[0]=0;let r=new Uint16Array(17);for(let s=1;s<=15;s++)r[s+1]=r[s]+e[s];let n=new Uint16Array(t.length);for(let s=0;s<t.length;s++)t[s]&&(n[r[t[s]]++]=s);return{lengthCounts:e,symbols:n}}var Fe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Od(t){let e;t({wasmURI:()=>(e||(e="data:application/wasm;base64,"+(function(r){let n="",s=r.length,i=0;for(;i+2<s;i+=3){let o=r[i]<<16|r[i+1]<<8|r[i+2];n+=Fe[o>>18&63]+Fe[o>>12&63]+Fe[o>>6&63]+Fe[63&o]}let a=s-i;if(a===1){let o=r[i]<<16;n+=Fe[o>>18&63]+Fe[o>>12&63]+"=="}else if(a===2){let o=r[i]<<16|r[i+1]<<8;n+=Fe[o>>18&63]+Fe[o>>12&63]+Fe[o>>6&63]+"="}return n})((function(r){let n=0,s=0,i=0,a=new Uint8Array(1024),o=0,c=0;for(;!c;){c=R(1);let d=R(2);if(d==0)E();else if(d==1)l(kn(Bn),kn(Lh));else{if(d!=2)throw new Error("invalid deflate block type");l(...h())}}return a.subarray(0,o);function f(){if(n>=r.length)throw new Error("unexpected end of deflate data");return r[n++]}function R(d){for(;i<d;)s|=f()<<i,i+=8;let u=s&(1<<d)-1;return s>>>=d,i-=d,u}function E(){s=0,i=0;let d=f()|f()<<8;n+=2,p(o+d);for(let u=0;u<d;u++)a[o++]=f()}function l(d,u){let m=g(d);for(;m!=256;){if(m<256)p(o+1),a[o++]=m;else{let _=m-257,A=Oh[_]+R(Dh[_]),T=g(u),y=Ph[T]+R(xh[T]);p(o+A);let S=o-y;for(let I=0;I<A;I++)a[o++]=a[S+I]}m=g(d)}}function h(){let d=R(5)+257,u=R(5)+1,m=R(4)+4,_=new Uint8Array(19);for(let S=0;S<m;S++)_[Ch[S]]=R(3);let A=kn(_),T=new Uint8Array(d+u),y=0;for(;y<T.length;){let S=g(A);if(S<16)T[y++]=S;else if(S==16){let I=T[y-1],N=R(2)+3;for(;N--;)T[y++]=I}else y+=S==17?R(3)+3:R(7)+11}return[kn(T.subarray(0,d)),kn(T.subarray(d))]}function g(d){let{lengthCounts:u,symbols:m}=d,_=0,A=0,T=0;for(let y=1;y<=15;y++){_|=R(1);let S=u[y];if(_-A<S)return m[T+(_-A)];T+=S,A=A+S<<1,_<<=1}throw new Error("invalid huffman code")}function p(d){if(a.length<d){let u=2*a.length;for(;u<d;)u*=2;let m=new Uint8Array(u);m.set(a.subarray(0,o)),a=m}}})((function(r){let n=(r=String(r).replace(/[^A-Za-z0-9+/=]/g,"")).length,s=[];for(let i=0;i<n;i+=4){let a=Fe.indexOf(r[i])<<18|Fe.indexOf(r[i+1])<<12|(63&Fe.indexOf(r[i+2]))<<6|63&Fe.indexOf(r[i+3]);s.push(a>>16&255),r[i+2]!=="="&&s.push(a>>8&255),r[i+3]!=="="&&s.push(255&a)}return new Uint8Array(s)})("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")))),e)})}ue();Ge();br();Zs();ta();var Ci="deflate",Pi="deflate-raw",Dd="deflate64-raw",xi="gzip";var Fh="Z_MEM_ERROR",Pd=[Ci,Pi,xi],xd=[Ci,Pi,xi,Dd],le,Yr,wt,zn,Cd;function Ld(t){if(le=t,{malloc:Yr,free:wt,memory:zn}=le,typeof Yr!="function"||typeof wt!="function"||!zn)throw le=Yr=wt=zn=null,new Error("Invalid WASM module")}function Fd(t){Cd=t}function Hr(t,e){return e===-4&&(t.code=Fh),t}function Ud(t,e,r={}){if(!(t?Pd:xd).includes(e))throw new TypeError("Unsupported format: "+e);if(!le){let T=new Error("WASM module not loaded");throw T.cause=Cd,T}let n=typeof r.level=="number"?r.level:-1,s=typeof r.outBuffer=="number"?r.outBuffer:64*1024,i=typeof r.inBufferSize=="number"?r.inBufferSize:64*1024,a={out:0,in:0,inBufferSize:0,streamHandle:0,streamEnded:!1},o,c,f,R,E=!0,l=!1;p();let h=new ReadableStream({start(T){o=T},pull(){E=!1,_()},cancel(T){l=!0,R=T,A(a),c.error(T),_()}},{highWaterMark:0}),g=new WritableStream({start(T){c=T},async write(T){if(E&&await new Promise(y=>f=y),l)throw R;try{d(T)}catch(y){throw A(a),o.error(y),y}},close(){if(l)return;try{u()}catch(y){throw A(a),o.error(y),y}let T=A(a);if(T!==0){let y=Hr(new Error("end error:"+T),T);throw o.error(y),y}o.close()},abort(T){A(a),o.error(T)}},{highWaterMark:1});return{readable:h,writable:g};function p(){try{let T;if(a.out=Yr(s),a.in=Yr(i),a.inBufferSize=i,!a.out||!a.in)throw Hr(new Error("allocation failed"),-4);if(t?(a._process=le.deflate_process,a._last_consumed=le.deflate_last_consumed,a._end=le.deflate_end,a.streamHandle=le.deflate_new(),e===xi?T=le.deflate_init_gzip(a.streamHandle,n):e===Pi?T=le.deflate_init_raw(a.streamHandle,n):T=le.deflate_init(a.streamHandle,n)):e===Dd?(a._process=le.inflate9_process,a._last_consumed=le.inflate9_last_consumed,a._end=le.inflate9_end,a.streamHandle=le.inflate9_new(),T=le.inflate9_init_raw(a.streamHandle)):(a._process=le.inflate_process,a._last_consumed=le.inflate_last_consumed,a._end=le.inflate_end,a.streamHandle=le.inflate_new(),e===Pi?T=le.inflate_init_raw(a.streamHandle):e===xi?T=le.inflate_init_gzip(a.streamHandle):T=le.inflate_init(a.streamHandle)),T!==0)throw Hr(new Error("init failed:"+T),T)}catch(T){throw A(a),T}}function d(T){let y=new Uint8Array(zn.buffer),S=a._process,I=a._last_consumed,N=a.out,F=0;for(;F<T.length;){if(a.streamEnded)throw new Error("trailing data after the end of the stream");let H=Math.min(T.length-F,32*1024);if((!a.in||a.inBufferSize<H)&&(a.in&&wt&&(wt(a.in),a.in=0),a.in=Yr(H),a.inBufferSize=H,!a.in))throw Hr(new Error("allocation failed"),-4);y.set(T.subarray(F,F+H),a.in);let q=S(a.streamHandle,a.in,H,N,s,0),$=q>>24&255,Z=$&128?$-256:$;if(Z<0)throw Hr(new Error("process error:"+Z),Z);let W=q&16777215;W&&m(y.slice(N,N+W));let U=I(a.streamHandle);if($===1)a.streamEnded=!0;else if(U===0&&W===0)break;F+=U}}function u(){let T=new Uint8Array(zn.buffer),y=a._process,S=a.out;for(;;){let I=y(a.streamHandle,0,0,S,s,4),N=I>>24&255,F=N&128?N-256:N;if(F<0)throw Hr(new Error("process error:"+F),F);let H=I&16777215;if(H&&m(T.slice(S,S+H)),N===1||H===0)break}}function m(T){E=!0,o.enqueue(T)}function _(){if(f){let T=f;f=null,T()}}function A(T){let y=0;return T.streamHandle&&T._end&&(y=T._end(T.streamHandle)),T.streamHandle=0,T.in&&wt&&wt(T.in),T.in=0,T.out&&wt&&wt(T.out),T.out=0,y}}var ur=class{constructor(e=Ci,r){return Ud(!0,e,r)}},dr=class{constructor(e=Ci,r){return Ud(!1,e,r)}};ur.requiresModule=!0;dr.requiresModule=!0;ur.supportedFormats=Pd;dr.supportedFormats=xd;ue();Qi();var rc=64*1024,Uh=20,Md,_t;function vd(t){typeof t.aes_hmac_new==K&&(Md=t,_t=0)}function sc(t,e){let r=Md,n=r?Mh(r,t,e):0;if(!n)return on(t,e);let s=_t;return{process(i,a){for(let o=0;o<i.length;o+=rc){let c=i.subarray(o,o+rc),f=nc(r);f.set(c,s),r.aes_hmac_process(n,s,c.length,a?1:0),c.set(f.subarray(s,s+c.length))}},digest(){return r.aes_hmac_end(n,s),n=0,nc(r).slice(s,s+Uh)},dispose(){n&&(r.aes_hmac_end(n,0),n=0)}}}function Mh(t,e,r){_t||(_t=t.malloc(rc));let n=_t?t.aes_hmac_new():0;if(n){let s=nc(t);if(s.set(e,_t),s.set(r,_t+e.length),t.aes_hmac_init(n,_t,e.length,_t+e.length,r.length))return t.aes_hmac_end(n,0),0}return n}function nc(t){return new Uint8Array(t.memory.buffer)}var kd=!1;async function Bd(t,{baseURI:e}){if(!kd)try{await vh(t,e),kd=!0}catch(r){throw Fd(r),r}}async function vh(t,e){let r,n;try{try{n=new URL(t,e)}catch{}r=await(await fetch(n)).arrayBuffer()}catch(i){if(t.startsWith("data:application/wasm;base64,"))r=kh(t);else throw i}let s=await WebAssembly.instantiate(r);Ld(s.instance.exports),vd(s.instance.exports)}function kh(t){let e=t.split(",")[1],r=atob(e),n=r.length,s=new Uint8Array(n);for(let i=0;i<n;++i)s[i]=r.charCodeAt(i);return s.buffer}var Li;tf(sc);Lf({initModule:t=>{if(!Li){let{wasmURI:e}=t;typeof e==K&&(e=e()),Li=Bd(e,t).catch(r=>{throw Li=null,r})}return Li}});Pt({CompressionStreamFallback:ur,DecompressionStreamFallback:dr});Od(Pt);hn();_i();ei();wr();br();ue();xt();Kt();Zt();var rT=new Uint8Array(0);Hl(Pt);var ac=class{constructor(e,r){this.descriptor=e;this.size=r}async fetchRange(e){let r=await fetch(this.descriptor.url,{headers:{Range:`bytes=${e.start}-${e.end}`},cache:"no-store"});if(r.status!==206&&r.status!==200)throw new ie("network",`Range request failed with ${r.status}`);return r}async read(e){let r=await this.fetchRange(e);if(r.status!==200)return new Uint8Array(await r.arrayBuffer());if(!r.body)throw new ie("network","Range response had no body");return new Uint8Array(await new Response(Wt(r.body,e)).arrayBuffer())}async stream(e){let r=await this.fetchRange(e);if(!r.body)throw new ie("network","Range response had no body");return r.status===200?Wt(r.body,e):r.body}},oc=class{constructor(e,r,n){this.descriptor=e;this.size=r;this.store=new Ye(n)}read(e){return this.store.readRangeBytes(it,e)}async stream(e){return this.store.readRange(it,e)}},cc=class{constructor(e,r){this.descriptor=e;this.blob=r}get size(){return this.blob.size}async read(e){let r=this.blob.slice(e.start,e.end+1);return new Uint8Array(await r.arrayBuffer())}async stream(e){return this.blob.slice(e.start,e.end+1).stream()}};async function lc(t,e,r,n={}){switch(e.type){case"range-http":return new ac(e,e.size);case"chunked":{let s=await new Ye(t).getArchiveMeta();if(!s||!s.complete&&!n.partial)throw new ie("bad-archive","Archive has not finished downloading");return new oc(e,s.size??s.available,t)}case"file":{if(!r)throw new ie("bad-archive","The picked file is no longer available");return new cc(e,r)}}}function Hh(t,e){let r=e.end-e.start+1,n=Math.ceil(r/4194304),s=new Map,i=0,a=0,o=!1,c=f=>{let R=e.start+f*4194304,E=t.read({start:R,end:Math.min(R+4194304-1,e.end)});E.catch(()=>{}),s.set(f,E)};return new ReadableStream({async pull(f){if(a>=n){f.close();return}for(;!o&&i<n&&s.size<4;)c(i++);let R=await s.get(a);s.delete(a),a+=1,f.enqueue(R)},cancel(){o=!0,s.clear()}},{highWaterMark:0})}var Fi=class extends pt{constructor(r){super(r);this.handle=r;this.size=r.size}async readUint8Array(r,n){if(n===0)return new Uint8Array(0);let s=Math.min(r+n,this.size)-1;return s<r?new Uint8Array(0):this.handle.read({start:r,end:s})}createReadable(r={}){let n=r.offset??0,s=Math.min(n+(r.size??this.size-n),this.size)-1;if(s<n)return new Blob([]).stream();let i=this.handle;if(i.descriptor.type==="range-http"&&s-n+1>=8388608)return Hh(i,{start:n,end:s});let a=null;return new ReadableStream({async pull(o){a??=(await i.stream({start:n,end:s})).getReader();let{done:c,value:f}=await a.read();c?o.close():o.enqueue(f)},async cancel(o){await a?.cancel(o)}},{highWaterMark:0})}};var fc=0,Wd=8,Wh=67324752,zd=30,Hn=class t{constructor(e,r,n,s,i,a=!1){this.handle=r;this.parsedTo=0;this.forwardDone=!1;this.forwardStopped=!1;this.absorbed=0;this.lastTopFolder=null;this.fallbacks=[];this.librariesByName=null;this.dataRanges=new Map;this.pkgId=e,this.entries=n,this.rejected=s,this.manifest=i,this.partial=a}get title(){return this.manifest.title}static async open(e,r,n={}){let s;try{s=await new kt(new Fi(r)).getEntries({filenameValidation:"tolerant"})}catch(E){throw new ie("bad-archive","Could not read the archive index",{cause:E})}let{index:i,rejected:a}=Wc(s),o=new Map;for(let[E,l]of i)o.set(E,{name:E,size:l.uncompressedSize,compressedSize:l.compressedSize,method:l.compressionMethod,strategy:Gd(E,l),zip:l});if(!o.has("h5p.json"))throw new ie("bad-archive","Archive has no h5p.json, so it is not an H5P package");let c=new t(e,r,o,a,{}),f=await Yd(c),R=new t(e,r,o,a,f);return n.requireLibraries!==!1&&R.assertLibrariesPresent(),R}static async fromForwardIndex(e,r,n){let s=new t(e,r,new Map,[],{},!0);return await s.absorb(n),s}async absorb(e){if(!this.partial)return!1;let r=e.entries.slice(this.absorbed);this.absorbed=e.entries.length,this.parsedTo=e.parsedTo,this.forwardDone=e.done,this.forwardStopped=e.stopped!==null&&!e.done;let n=!1;for(let s of r){if(s.directory)continue;let i=ts(s.name);if(i===null||this.entries.has(i)){this.rejected.push(s.name);continue}this.entries.set(i,Gh(i,s)),this.lastTopFolder=Hd(i),i==="h5p.json"&&(n=!0)}return r.length>0&&(this.librariesByName=null),n&&(this.manifest=await Yd(this)),r.length>0}bootReady(){if(!this.partial)return!0;if(this.forwardStopped||!this.entries.has("h5p.json"))return!1;let e=this.manifest.preloadedDependencies;if(!Array.isArray(e)||e.length===0)return!1;let r=this.entryNames(),n=this.availableLibraries();return e.every(s=>{let i=Ui(s).find(a=>r.has(`${a}/library.json`))??dc(n,{machineName:s.machineName,major:Number(s.majorVersion),minor:Number(s.minorVersion)});return i!==void 0&&this.folderComplete(i)})}provablyAbsent(e){if(!this.partial||this.forwardDone)return!0;let r=Hd(e);if(r===null)return!1;if(this.hasFolder(r))return this.folderComplete(r);let n=uc(r);return n!==null&&this.hasFolder(n.machineName)&&this.folderComplete(n.machineName)}folderComplete(e){return this.forwardDone||this.lastTopFolder!==e}hasFolder(e){let r=`${e}/`;for(let n of this.entries.keys())if(n.startsWith(r))return!0;return!1}use(e){e===this||this.fallbacks.includes(e)||(this.fallbacks.push(e),this.librariesByName=null)}get(e){return this.locate(e)??this.locateCompatible(e)}locate(e){let r=this.entries.get(e);if(r)return{reader:this,entry:r};for(let n of this.fallbacks){let s=n.locate(e);if(s)return s}}locateCompatible(e){let r=e.indexOf("/");if(r<0)return;let n=uc(e.slice(0,r));if(!n)return;let s=dc(this.availableLibraries(),n);if(!(!s||s===n.folder))return this.locate(`${s}/${e.slice(r+1)}`)}availableLibraries(){if(this.librariesByName)return this.librariesByName;let e=Vd(this.entries.keys());for(let r of this.fallbacks)for(let[n,s]of r.availableLibraries()){let i=e.get(n);i?i.push(...s):e.set(n,[...s])}return this.librariesByName=e,e}entryNames(){let e=new Set(this.entries.keys());for(let r of this.fallbacks)for(let n of r.entryNames())e.add(n);return e}missingLibraries(){return jh(this.entryNames(),this.manifest)}get hasFallbacks(){return this.fallbacks.length>0}mergedManifest(){let e=this.entryNames(),r=new Map,n=s=>{r.has(s.machineName)||Ui(s).some(i=>e.has(`${i}/library.json`))&&r.set(s.machineName,s)};for(let s of this.manifest.preloadedDependencies??[])n(s);for(let s of this.fallbacks)for(let i of s.manifest.preloadedDependencies??[])n(i);return{...this.manifest,preloadedDependencies:[...r.values()]}}assertLibrariesPresent(){let e=this.missingLibraries();if(e)throw new ie("bad-archive",Zh(e),{missingLibraries:e})}prefetchable(){return[...this.entries.values()].filter(e=>e.strategy.kind==="chunked").map(e=>({entry:e.name,size:e.size}))}inflate(e){if(!e.zip)return this.inflateDirect(e);if(e.zip.encrypted)throw new ie("bad-archive",`${e.name} is encrypted`);let r=e.zip.getData;if(!r)throw new ie("bad-archive",`${e.name} has no readable data`);let n=new TransformStream;return r.call(e.zip,n.writable).catch(s=>{if(!n.writable.locked)try{n.writable.abort(s)}catch{}}),n.readable}dataRange(e){let r=this.dataRanges.get(e.name);if(r)return r;let n=this.readDataRange(e);return this.dataRanges.set(e.name,n),n.catch(()=>this.dataRanges.delete(e.name)),n}inflateDirect(e){if(e.encrypted)throw new ie("bad-archive",`${e.name} is encrypted`);if(e.method!==fc&&e.method!==Wd)throw new ie("bad-archive",`${e.name} uses compression method ${e.method}`);if(e.compressedSize===0)return new Blob([]).stream();let r=Vh(()=>this.sliceStream(e,{start:0,end:e.compressedSize-1}));if(e.method===fc)return r;let n=new DecompressionStream("deflate-raw");return r.pipeThrough(n)}async readDataRange(e){if(e.dataStart!==void 0)return{start:e.dataStart,end:e.dataStart+e.compressedSize-1};if(!e.zip)throw new ie("bad-archive",`${e.name} has no known location`);let r=await this.handle.read({start:e.zip.offset,end:e.zip.offset+zd-1}),n=new DataView(r.buffer,r.byteOffset,r.byteLength);if(n.getUint32(0,!0)!==Wh)throw new ie("bad-archive",`${e.name} has a malformed local header`);let s=n.getUint16(26,!0),i=n.getUint16(28,!0),a=e.zip.offset+zd+s+i;return{start:a,end:a+e.compressedSize-1}}async sliceStream(e,r){let n=await this.dataRange(e);return this.handle.stream({start:n.start+r.start,end:n.start+r.end})}};function Gd(t,e){return Vc(t)?{kind:"inline"}:e.uncompressedSize<=16777216?{kind:"inline"}:e.compressionMethod===fc?{kind:"slice"}:e.compressionMethod===Wd?{kind:"chunked"}:{kind:"inline"}}function Gh(t,e){return{name:t,size:e.uncompressedSize,compressedSize:e.compressedSize,method:e.method,strategy:Gd(t,{uncompressedSize:e.uncompressedSize,compressionMethod:e.method}),dataStart:e.dataStart,encrypted:e.encrypted}}function Hd(t){let e=t.indexOf("/");return e<0?null:t.slice(0,e)}function Vh(t){let e=null;return new ReadableStream({async pull(r){e??=(await t()).getReader();let{done:n,value:s}=await e.read();n?r.close():r.enqueue(s)},async cancel(r){await e?.cancel(r)}},{highWaterMark:0})}async function Yd(t){let{entry:e}=t.get("h5p.json");try{let r=await new Response(t.inflate(e)).json();if(!r||typeof r!="object")throw new Error("not an object");return r}catch(r){throw new ie("bad-archive","h5p.json is not readable JSON",{cause:r})}}function Ui(t){return[`${t.machineName}-${t.majorVersion}.${t.minorVersion}`,t.machineName]}function uc(t){let e=/^(.+)-(\d+)\.(\d+)$/.exec(t);return e?{machineName:e[1],major:Number(e[2]),minor:Number(e[3]),folder:t}:null}function Vd(t){let e=new Map;for(let r of t){let n=r.indexOf("/");if(n<0||r.slice(n+1)!=="library.json")continue;let s=uc(r.slice(0,n));if(!s)continue;let i=e.get(s.machineName);i?i.push(s):e.set(s.machineName,[s])}return e}function dc(t,e){return(t.get(e.machineName)??[]).filter(n=>n.major===e.major&&n.minor>=e.minor).sort((n,s)=>n.minor-s.minor)[0]?.folder}function Xh(t,e){let r=e.preloadedDependencies;if(!Array.isArray(r))return[];let n=Vd(t);return r.filter(s=>Ui(s).some(i=>t.has(`${i}/library.json`))?!1:!dc(n,{machineName:s.machineName,major:Number(s.majorVersion),minor:Number(s.minorVersion)}))}function jh(t,e){let r=e.preloadedDependencies;if(!Array.isArray(r)||r.length===0)return{mainLibrary:e.mainLibrary,folders:[],all:!0};let n=Xh(t,e);return n.length===0?null:{mainLibrary:e.mainLibrary,folders:n.map(s=>Ui(s)[0]),all:n.length===r.length}}function Zh(t){if(t.folders.length===0)return"h5p.json lists no preloadedDependencies, so there is nothing to run";let e=t.folders.join(", ");return t.all?`This package contains no libraries, only content. Exports from h5p.com and h5p.org often leave them out because the site they came from already has them. Set the "libraries" attribute to fetch them, or re-export with them included. Missing: ${e}`:`This package is missing ${t.folders.length} of its libraries: ${e}. Set the "libraries" attribute to fetch them, or re-export with them included.`}var pc={script:["cdn.jsdelivr.net","cdnjs.cloudflare.com","ajax.googleapis.com","www.youtube.com","player.vimeo.com","developers.panopto.com"],style:["fonts.googleapis.com"],font:["fonts.gstatic.com","fonts.googleapis.com"]},Kh=/^(?:(?:https?|wss?):\/\/)?(?:\*\.)?[a-z0-9.-]+(?::\d+)?$/i;function qh(t){return t?[...new Set(t.map(e=>e.trim()).filter(e=>Kh.test(e)))]:[]}function Ec(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Jh(t,e){let r=new Set;for(let n of Object.values(t))try{let s=new URL(n,e).origin;s!==new URL(e).origin&&r.add(s)}catch{}return[...r]}function Qh(t){let e=Jh(t.assets,t.virtualRoot),r=qh(t.allowOrigins),n=(s,...i)=>`${s} ${i.filter(Boolean).join(" ")}`;return["default-src 'self'",n("script-src","'self'",...e,...pc.script,...r,`'nonce-${t.nonce}'`,"'unsafe-eval'"),n("style-src","'self'",...e,...pc.style,...r,"'unsafe-inline'"),n("font-src","'self'",...e,...pc.font,...r,"data:"),"img-src * data: blob:","media-src * data: blob:","frame-src *",n("connect-src","'self'",...r),"worker-src 'self' blob:","object-src 'none'","base-uri 'self'","form-action 'none'"].join("; ")}function Xd(t){let{pkgId:e,virtualRoot:r,assets:n,nonce:s}=t,i=Qh(t),a=JSON.stringify({pkgId:e,h5pJsonPath:r,frameJs:n.frameJs,frameCss:n.frameCss});return`<!DOCTYPE html>
|
|
1
|
+
var pp=Object.defineProperty;var se=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ep=(t,e)=>{for(var r in e)pp(t,r,{get:e[r],enumerable:!0})};var nn,Dt,w,jt,ye,K,as,We,Jc,Ji,j,os,ue=se(()=>{nn=new Date(2107,11,31,23,59,58),Dt=new Date(1980,0,1),w=void 0,jt=1/0,ye="undefined",K="function",as="object",We="string",Jc="number",Ji="boolean",j=new Uint8Array,os=Symbol.asyncDispose||Symbol()});function wr(t){if(t&&typeof t!=K)throw new Error(Dl);return t}function cn(t){if(t&&(typeof t.addEventListener!=K||typeof t.aborted!=Ji))throw new Error(Pl);return t||w}function Kt(t){if(t&&t.aborted)throw t.reason===w?new DOMException(Cl,xp):t.reason}function ws(t,e){if(t&&typeof t!=We||e&&!(e instanceof Uint8Array))throw new Error(ra)}function _r(t){if(t!==w&&typeof t!=Ji&&t!==on)throw new Error(xl);return t}function na(t,e,r){if(!Number.isInteger(t)||t<0||t>e)throw new Error(r)}function Tr(t,e,r){t!==w&&na(t,e,r)}function xt(t){return typeof t==We&&t.trim()?Number(t):t}var Qc,$c,el,tl,rl,cs,ls,sn,fs,nl,sl,il,al,ol,cl,ll,fl,ul,us,ds,ps,Es,dl,pl,El,ml,ms,hl,gl,Rl,Qi,$i,wl,_l,an,Zt,Tl,Al,yl,Sl,Il,bl,ea,Nl,Ol,ta,hs,gs,Pt,Rs,at,on,Dl,Pl,ra,xl,Cl,xp,Ar=se(()=>{ue();Qc="filenameEncoding",$c="commentEncoding",el="decodeText",tl="extractPrependedData",rl="extractAppendedData",cs="password",ls="rawPassword",sn="passThrough",fs="signal",nl="checkPasswordOnly",sl="checkOverlappingEntryOnly",il="checkOverlappingEntry",al="checkAmbiguity",ol="checkLocalDirectory",cl="checkLocalFilename",ll="checkSignature",fl="checkCrc32",ul="checkAuthenticationCode",us="useWebWorkers",ds="useCompressionStream",ps="transferStreams",Es="preventClose",dl="encryptionStrength",pl="extendedTimestamp",El="ntfsTimestamp",ml="keepOrder",ms="level",hl="bufferedWrite",gl="createTempStream",Rl="dataDescriptorSignature",Qi="useUnicodeFileNames",$i="dataDescriptor",wl="supportZip64SplitFile",_l="encodeText",an="offset",Zt="usdz",Tl="unixExtraFieldType",Al="localExtraField",yl="centralExtraField",Sl="strictness",Il="filenameValidation",bl="normalizeFilename",ea="maxAppendedDataSize",Nl="decryptCentralDirectory",Ol="signCentralDirectory",ta="entry",hs="filename",gs="comment",Pt="strict",Rs="balanced",at="tolerant",on="compressed",Dl="Invalid option (must be a function)",Pl="Invalid signal (must be an AbortSignal instance)",ra="Invalid password (password must be a string, rawPassword must be a Uint8Array)",xl="Invalid passThrough option (must be a boolean or 'compressed')",Cl="The operation was aborted",xp="AbortError"});function ot(){return Vl}function ln(t){return sa(t.chunkSize)}function sa(t){return t=xt(t),Number.isInteger(t)&&t>=Fl?Math.max(t,Cp):Ll}function Up(t){let e={};for(let r of Fp){let n=t[r];n!==w&&(e[r]=Mp(r,n))}return e}function Mp(t,e){if(Wl.includes(t)){if(e=xt(e),t==zl&&(!Number.isInteger(e)||e<Fl))throw new Error(Ul)}else if(Gl.includes(t))wr(e);else if(t==Hl){if(e&&typeof e!=We)throw new Error(Ml)}else if(Yl.includes(t)&&e&&typeof e!=We&&typeof e!=K)throw new Error(vl);return e}function vp(t){t=t||{};let{CompressionStreamZlib:e,DecompressionStreamZlib:r}=t;if(e===w&&r===w)return t;let n=Object.assign({},t);return n.CompressionStreamFallback===w&&(n.CompressionStreamFallback=e),n.DecompressionStreamFallback===w&&(n.DecompressionStreamFallback=r),n}function Ct(t){let e=Up(vp(t));Object.assign(Bl,e),Object.assign(Vl,e)}var Ll,Cp,Fl,Ul,Ml,vl,kl,Bl,zl,Hl,Yl,Lp,Wl,Gl,Fp,Vl,Ge=se(()=>{ue();Ar();Ll=64*1024,Cp=64,Fl=1,Ul="Invalid maxWorkers (must be an integer greater than 0)",Ml="Invalid baseURI (must be a string)",vl="Invalid URI (must be a string or a function returning a string)",kl=2;try{typeof navigator!=ye&&navigator.hardwareConcurrency&&(kl=navigator.hardwareConcurrency)}catch{}Bl={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:Ll,maxWorkers:kl,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof CompressionStream!=ye&&CompressionStream,DecompressionStream:typeof DecompressionStream!=ye&&DecompressionStream},zl="maxWorkers",Hl="baseURI",Yl=["wasmURI","workerURI"],Lp=["useCompressionStream","useWebWorkers","transferStreams"],Wl=["chunkSize",zl,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],Gl=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],Fp=[Hl,...Yl,...Lp,...Wl,...Gl],Vl={...Bl}});function Be(t,e){let r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r}function Ts(t){return t.byteOffset||t.byteLength!=t.buffer.byteLength?new Uint8Array(t):t}function L(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}var Lt=se(()=>{});function Re(t){return!!t&&typeof t=="object"}var qt=se(()=>{});var fn,jl,kp,Bp,zp,Hp,Yp,Wp,Gp,Ve,un=se(()=>{fn=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let e=t;for(let r=0;r<8;r++)e=e&1?e>>>1^3988292384:e>>>1;fn[0][t]=e}for(let t=0;t<256;t++)for(let e=1;e<8;e++){let r=fn[e-1][t];fn[e][t]=r>>>8^fn[0][r&255]}[jl,kp,Bp,zp,Hp,Yp,Wp,Gp]=fn,Ve=class{constructor(e){this.crc=e||-1}append(e){let r=this.crc|0,n=e.length|0,s=0;if(n>=8&&e.buffer){let i=new DataView(e.buffer,e.byteOffset,n),a=n-8;for(;s<=a;s+=8){let o=r^i.getInt32(s,!0),c=i.getInt32(s+4,!0);r=Gp[o&255]^Wp[o>>>8&255]^Yp[o>>>16&255]^Hp[o>>>24&255]^zp[c&255]^Bp[c>>>8&255]^kp[c>>>16&255]^jl[c>>>24&255]}}for(;s<n;s++)r=r>>>8^jl[(r^e[s])&255];this.crc=r}get(){return~this.crc}}});var dn,Zl=se(()=>{un();dn=class extends TransformStream{constructor(){let e,r=new Ve;super({transform(n,s){r.append(n),s.enqueue(n)},flush(){let n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,r.get()),e.value=n}}),e=this}}});function yr(t){if(typeof TextEncoder==ye){t=unescape(encodeURIComponent(t));let e=new Uint8Array(t.length);for(let r=0;r<e.length;r++)e[r]=t.charCodeAt(r);return e}else return new TextEncoder().encode(t)}var ia=se(()=>{ue()});function pn(t,e){qp();let r=new Int32Array(60),n=Jp(t,r),s=new Int32Array(16/4),i=$l(e),a=0,o=0,c=0,l=0;return{process(f,m){m&&i.update(f,0,f.length),R(f),m||i.update(f,0,f.length)},digest(){return i.digest()}};function R(f){let m=new DataView(f.buffer,f.byteOffset,f.byteLength),h=f.length,E=0;for(;E+16<=h;E+=16)p(),m.setInt32(E,m.getInt32(E)^s[0]),m.setInt32(E+4,m.getInt32(E+4)^s[1]),m.setInt32(E+8,m.getInt32(E+8)^s[2]),m.setInt32(E+12,m.getInt32(E+12)^s[3]);if(E<h){p();for(let d=0;E<h;E++,d++)f[E]^=s[d>>2]>>>24-8*(d&3)}}function p(){a=a+1|0,a||(o=o+1|0,o||(c=c+1|0,c||(l=l+1|0)));let f=As(a)^r[0],m=As(o)^r[1],h=As(c)^r[2],E=As(l)^r[3],d=O[f>>>24]^D[m>>>16&255]^P[h>>>8&255]^x[E&255]^r[4],u=O[m>>>24]^D[h>>>16&255]^P[E>>>8&255]^x[f&255]^r[5],g=O[h>>>24]^D[E>>>16&255]^P[f>>>8&255]^x[m&255]^r[6],_=O[E>>>24]^D[f>>>16&255]^P[m>>>8&255]^x[h&255]^r[7];f=O[d>>>24]^D[u>>>16&255]^P[g>>>8&255]^x[_&255]^r[8],m=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^x[d&255]^r[9],h=O[g>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[10],E=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[g&255]^r[11],d=O[f>>>24]^D[m>>>16&255]^P[h>>>8&255]^x[E&255]^r[12],u=O[m>>>24]^D[h>>>16&255]^P[E>>>8&255]^x[f&255]^r[13],g=O[h>>>24]^D[E>>>16&255]^P[f>>>8&255]^x[m&255]^r[14],_=O[E>>>24]^D[f>>>16&255]^P[m>>>8&255]^x[h&255]^r[15],f=O[d>>>24]^D[u>>>16&255]^P[g>>>8&255]^x[_&255]^r[16],m=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^x[d&255]^r[17],h=O[g>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[18],E=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[g&255]^r[19],d=O[f>>>24]^D[m>>>16&255]^P[h>>>8&255]^x[E&255]^r[20],u=O[m>>>24]^D[h>>>16&255]^P[E>>>8&255]^x[f&255]^r[21],g=O[h>>>24]^D[E>>>16&255]^P[f>>>8&255]^x[m&255]^r[22],_=O[E>>>24]^D[f>>>16&255]^P[m>>>8&255]^x[h&255]^r[23],f=O[d>>>24]^D[u>>>16&255]^P[g>>>8&255]^x[_&255]^r[24],m=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^x[d&255]^r[25],h=O[g>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[26],E=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[g&255]^r[27],d=O[f>>>24]^D[m>>>16&255]^P[h>>>8&255]^x[E&255]^r[28],u=O[m>>>24]^D[h>>>16&255]^P[E>>>8&255]^x[f&255]^r[29],g=O[h>>>24]^D[E>>>16&255]^P[f>>>8&255]^x[m&255]^r[30],_=O[E>>>24]^D[f>>>16&255]^P[m>>>8&255]^x[h&255]^r[31],f=O[d>>>24]^D[u>>>16&255]^P[g>>>8&255]^x[_&255]^r[32],m=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^x[d&255]^r[33],h=O[g>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[34],E=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[g&255]^r[35],d=O[f>>>24]^D[m>>>16&255]^P[h>>>8&255]^x[E&255]^r[36],u=O[m>>>24]^D[h>>>16&255]^P[E>>>8&255]^x[f&255]^r[37],g=O[h>>>24]^D[E>>>16&255]^P[f>>>8&255]^x[m&255]^r[38],_=O[E>>>24]^D[f>>>16&255]^P[m>>>8&255]^x[h&255]^r[39];let A=40;n>10&&(f=O[d>>>24]^D[u>>>16&255]^P[g>>>8&255]^x[_&255]^r[40],m=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^x[d&255]^r[41],h=O[g>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[42],E=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[g&255]^r[43],d=O[f>>>24]^D[m>>>16&255]^P[h>>>8&255]^x[E&255]^r[44],u=O[m>>>24]^D[h>>>16&255]^P[E>>>8&255]^x[f&255]^r[45],g=O[h>>>24]^D[E>>>16&255]^P[f>>>8&255]^x[m&255]^r[46],_=O[E>>>24]^D[f>>>16&255]^P[m>>>8&255]^x[h&255]^r[47],A=48),n>12&&(f=O[d>>>24]^D[u>>>16&255]^P[g>>>8&255]^x[_&255]^r[48],m=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^x[d&255]^r[49],h=O[g>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[50],E=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[g&255]^r[51],d=O[f>>>24]^D[m>>>16&255]^P[h>>>8&255]^x[E&255]^r[52],u=O[m>>>24]^D[h>>>16&255]^P[E>>>8&255]^x[f&255]^r[53],g=O[h>>>24]^D[E>>>16&255]^P[f>>>8&255]^x[m&255]^r[54],_=O[E>>>24]^D[f>>>16&255]^P[m>>>8&255]^x[h&255]^r[55],A=56),s[0]=(ce[d>>>24]<<24|ce[u>>>16&255]<<16|ce[g>>>8&255]<<8|ce[_&255])^r[A],s[1]=(ce[u>>>24]<<24|ce[g>>>16&255]<<16|ce[_>>>8&255]<<8|ce[d&255])^r[A+1],s[2]=(ce[g>>>24]<<24|ce[_>>>16&255]<<16|ce[d>>>8&255]<<8|ce[u&255])^r[A+2],s[3]=(ce[_>>>24]<<24|ce[d>>>16&255]<<16|ce[u>>>8&255]<<8|ce[g&255])^r[A+3]}}function Ql(t,e,r,n){let s=$l(t),i=new Uint8Array(n),a=new Uint8Array(e.length+4),o=new DataView(a.buffer);a.set(e);for(let c=1,l=0;l<n;c++,l+=20){o.setUint32(e.length,c),s.update(a,0,a.length);let R=s.digest(),p=R.slice();for(let f=1;f<r;f++){s.update(R,0,20),R=s.digest();for(let m=0;m<20;m++)p[m]^=R[m]}i.set(p.subarray(0,Math.min(20,n-l)),l)}return i}function $l(t){let e=Kp(),r=new Uint8Array(64),n=new Uint8Array(64);t.length>64&&(e.update(t,0,t.length),t=e.digest());for(let s=0;s<64;s++){let i=s<t.length?t[s]:0;r[s]=i^jp,n[s]=i^Zp}return e.update(r,0,64),{update(s,i,a){e.update(s,i,a)},digest(){let s=e.digest();e.update(n,0,64),e.update(s,0,20);let i=e.digest();return e.update(r,0,64),i}}}function Kp(){let t=new Int32Array(Kl),e=new Int32Array(16),r=new Uint8Array(64),n=new DataView(r.buffer),s=new Uint8Array(8),i=0,a=0;return{update:o,digest:c};function o(R,p,f){let m=p+f;if(a+=f,i){for(;p<m&&i<64;)r[i++]=R[p++];i==64&&(l(n,0),i=0)}if(p+64<=m){let h=new DataView(R.buffer,R.byteOffset,R.byteLength);for(;p+64<=m;p+=64)l(h,p)}for(;p<m;)r[i++]=R[p++]}function c(){let R=a*8,p=Math.floor(R/4294967296),f=R>>>0;for(o(Vp,0,1);i!=56;)o(Xp,0,1);s[0]=p>>>24,s[1]=p>>>16,s[2]=p>>>8,s[3]=p,s[4]=f>>>24,s[5]=f>>>16,s[6]=f>>>8,s[7]=f,o(s,0,8);let m=new Uint8Array(20),h=new DataView(m.buffer);for(let E=0;E<t.length;E++)h.setInt32(4*E,t[E]);return t.set(Kl),i=0,a=0,m}function l(R,p){for(let g=0;g<16;g++)e[g]=R.getInt32(p+4*g);let f=t[0],m=t[1],h=t[2],E=t[3],d=t[4],u;for(let g=0;g<15;g+=5)d=(f<<5|f>>>27)+((h^E)&m^E)+d+1518500249+e[g]|0,m=m<<30|m>>>2,E=(d<<5|d>>>27)+((m^h)&f^h)+E+1518500249+e[g+1]|0,f=f<<30|f>>>2,h=(E<<5|E>>>27)+((f^m)&d^m)+h+1518500249+e[g+2]|0,d=d<<30|d>>>2,m=(h<<5|h>>>27)+((d^f)&E^f)+m+1518500249+e[g+3]|0,E=E<<30|E>>>2,f=(m<<5|m>>>27)+((E^d)&h^d)+f+1518500249+e[g+4]|0,h=h<<30|h>>>2;d=(f<<5|f>>>27)+((h^E)&m^E)+d+1518500249+e[15]|0,m=m<<30|m>>>2,u=e[13]^e[8]^e[2]^e[0],u=u<<1|u>>>31,e[0]=u,E=(d<<5|d>>>27)+((m^h)&f^h)+E+1518500249+u|0,f=f<<30|f>>>2,u=e[14]^e[9]^e[3]^e[1],u=u<<1|u>>>31,e[1]=u,h=(E<<5|E>>>27)+((f^m)&d^m)+h+1518500249+u|0,d=d<<30|d>>>2,u=e[15]^e[10]^e[4]^e[2],u=u<<1|u>>>31,e[2]=u,m=(h<<5|h>>>27)+((d^f)&E^f)+m+1518500249+u|0,E=E<<30|E>>>2,u=e[0]^e[11]^e[5]^e[3],u=u<<1|u>>>31,e[3]=u,f=(m<<5|m>>>27)+((E^d)&h^d)+f+1518500249+u|0,h=h<<30|h>>>2;for(let g=20;g<40;g+=5)u=e[g-3&15]^e[g-8&15]^e[g-14&15]^e[g&15],u=u<<1|u>>>31,e[g&15]=u,d=(f<<5|f>>>27)+(m^h^E)+d+1859775393+u|0,m=m<<30|m>>>2,u=e[g-2&15]^e[g-7&15]^e[g-13&15]^e[g+1&15],u=u<<1|u>>>31,e[g+1&15]=u,E=(d<<5|d>>>27)+(f^m^h)+E+1859775393+u|0,f=f<<30|f>>>2,u=e[g-1&15]^e[g-6&15]^e[g-12&15]^e[g+2&15],u=u<<1|u>>>31,e[g+2&15]=u,h=(E<<5|E>>>27)+(d^f^m)+h+1859775393+u|0,d=d<<30|d>>>2,u=e[g&15]^e[g-5&15]^e[g-11&15]^e[g+3&15],u=u<<1|u>>>31,e[g+3&15]=u,m=(h<<5|h>>>27)+(E^d^f)+m+1859775393+u|0,E=E<<30|E>>>2,u=e[g+1&15]^e[g-4&15]^e[g-10&15]^e[g+4&15],u=u<<1|u>>>31,e[g+4&15]=u,f=(m<<5|m>>>27)+(h^E^d)+f+1859775393+u|0,h=h<<30|h>>>2;for(let g=40;g<60;g+=5)u=e[g-3&15]^e[g-8&15]^e[g-14&15]^e[g&15],u=u<<1|u>>>31,e[g&15]=u,d=(f<<5|f>>>27)+(m&h|(m|h)&E)+d+2400959708+u|0,m=m<<30|m>>>2,u=e[g-2&15]^e[g-7&15]^e[g-13&15]^e[g+1&15],u=u<<1|u>>>31,e[g+1&15]=u,E=(d<<5|d>>>27)+(f&m|(f|m)&h)+E+2400959708+u|0,f=f<<30|f>>>2,u=e[g-1&15]^e[g-6&15]^e[g-12&15]^e[g+2&15],u=u<<1|u>>>31,e[g+2&15]=u,h=(E<<5|E>>>27)+(d&f|(d|f)&m)+h+2400959708+u|0,d=d<<30|d>>>2,u=e[g&15]^e[g-5&15]^e[g-11&15]^e[g+3&15],u=u<<1|u>>>31,e[g+3&15]=u,m=(h<<5|h>>>27)+(E&d|(E|d)&f)+m+2400959708+u|0,E=E<<30|E>>>2,u=e[g+1&15]^e[g-4&15]^e[g-10&15]^e[g+4&15],u=u<<1|u>>>31,e[g+4&15]=u,f=(m<<5|m>>>27)+(h&E|(h|E)&d)+f+2400959708+u|0,h=h<<30|h>>>2;for(let g=60;g<80;g+=5)u=e[g-3&15]^e[g-8&15]^e[g-14&15]^e[g&15],u=u<<1|u>>>31,e[g&15]=u,d=(f<<5|f>>>27)+(m^h^E)+d+3395469782+u|0,m=m<<30|m>>>2,u=e[g-2&15]^e[g-7&15]^e[g-13&15]^e[g+1&15],u=u<<1|u>>>31,e[g+1&15]=u,E=(d<<5|d>>>27)+(f^m^h)+E+3395469782+u|0,f=f<<30|f>>>2,u=e[g-1&15]^e[g-6&15]^e[g-12&15]^e[g+2&15],u=u<<1|u>>>31,e[g+2&15]=u,h=(E<<5|E>>>27)+(d^f^m)+h+3395469782+u|0,d=d<<30|d>>>2,u=e[g&15]^e[g-5&15]^e[g-11&15]^e[g+3&15],u=u<<1|u>>>31,e[g+3&15]=u,m=(h<<5|h>>>27)+(E^d^f)+m+3395469782+u|0,E=E<<30|E>>>2,u=e[g+1&15]^e[g-4&15]^e[g-10&15]^e[g+4&15],u=u<<1|u>>>31,e[g+4&15]=u,f=(m<<5|m>>>27)+(h^E^d)+f+3395469782+u|0,h=h<<30|h>>>2;t[0]=t[0]+f|0,t[1]=t[1]+m|0,t[2]=t[2]+h|0,t[3]=t[3]+E|0,t[4]=t[4]+d|0}}function qp(){if(!ql){let t=1,e=1;do t=(t^t<<1^(t&128?27:0))&255,e=(e^e<<1)&255,e=(e^e<<2)&255,e=(e^e<<4)&255,e&128&&(e^=9),ce[t]=(e^(e<<1|e>>7)^(e<<2|e>>6)^(e<<3|e>>5)^(e<<4|e>>4)^99)&255;while(t!=1);ce[0]=99;for(let r=0;r<256;r++){let n=ce[r],s=ef(n),i=s<<24|n<<16|n<<8|s^n;O[r]=i,D[r]=i>>>8|i<<24,P[r]=i>>>16|i<<16,x[r]=i>>>24|i<<8}ql=!0}}function Jp(t,e){let r=t.length>>2,n=r+6,s=4*(n+1),i=1;for(let a=0;a<r;a++)e[a]=t[4*a]<<24|t[4*a+1]<<16|t[4*a+2]<<8|t[4*a+3];for(let a=r;a<s;a++){let o=e[a-1];a%r==0?(o=Jl(o<<8|o>>>24)^i<<24,i=ef(i)):r>6&&a%r==4&&(o=Jl(o)),e[a]=e[a-r]^o}return n}function Jl(t){return ce[t>>>24]<<24|ce[t>>>16&255]<<16|ce[t>>>8&255]<<8|ce[t&255]}function As(t){return t<<24|(t&65280)<<8|t>>>8&65280|t>>>24}function ef(t){return(t<<1^(t>>7)*27)&255}var Vp,Xp,Kl,jp,Zp,ce,O,D,P,x,ql,aa=se(()=>{Vp=new Uint8Array([128]),Xp=new Uint8Array(1),Kl=new Int32Array([1732584193,4023233417,2562383102,271733878,3285377520]),jp=54,Zp=92,ce=new Uint8Array(256),O=new Int32Array(256),D=new Int32Array(256),P=new Int32Array(256),x=new Int32Array(256),ql=!1});function ys(t){if(Qp)return crypto.getRandomValues(t);throw new Error(Sr)}var Qp,Xe,Ft,lt,Sr,Ss=se(()=>{ue();Qp=typeof crypto!=ye&&typeof crypto.getRandomValues==K,Xe="Invalid password",Ft="Invalid authentication code",lt="zipjs-abort-check-password",Sr="Crypto API not supported"});function of(t){af=t||pn}function cf(t,e,r,n){Object.assign(t,{ready:new Promise(s=>t.resolveReady=s),password:fE(e,r),strength:n-1,pendingInput:j,discarded:!1})}function lf(t,e){let r=t.readable.getReader(),n=new ReadableStream({async pull(s){try{let{value:i,done:a}=await r.read();a?s.close():s.enqueue(i)}catch(i){throw hn(e),r.cancel(i).catch(()=>{}),i}},cancel(s){return hn(e),r.cancel(s)}});Object.defineProperty(t,"readable",{get(){return n}})}function ff(t,e,r,n,s,i){let{engine:a,pendingInput:o}=t;o.length&&(e=Be(o,e));let c=e.length-s,l=c-c%ca;if(r=uE(r,n+l),l){let R=xe(r,n,n+l);R.set(xe(e,0,l)),a.process(R,i)}return t.pendingInput=xe(e,l),r}async function oE(t,e,r,n){let s=await uf(t,e,r,xe(n,0,En[e])),i=xe(n,En[e]);if(s[0]!=i[0]||s[1]!=i[1])throw hn(t),new Error(Xe)}function hn(t){let{engine:e}=t;t.discarded=!0,e&&e.dispose&&e.dispose()}async function cE(t,e,r){let n=ys(new Uint8Array(En[e])),s=await uf(t,e,r,n);return Be(n,s)}async function uf(t,e,r,n){t.password=null;let s=iE[e],i=await lE(r,n,s*2+oa);return t.engine=af(xe(i,0,s),xe(i,s,s*2)),t.discarded&&hn(t),xe(i,s*2)}async function lE(t,e,r){if(tf)try{let n=await mn.importKey($p,t,rE,!1,sE);return new Uint8Array(await mn.deriveBits(Object.assign({salt:e},nE),n,r*8))}catch{tf=!1}return Ql(t,e,nf,r)}function fE(t,e){return e===w?yr(t):e}function uE(t,e){if(e&&e>t.length){let r=t;t=new Uint8Array(e),t.set(r,0)}return t}function xe(t,e,r){return t.subarray(e,r)}var ca,$p,rf,eE,tE,nf,rE,nE,sE,En,iE,Ut,oa,sf,mn,aE,tf,af,Is,bs,la=se(()=>{ue();ia();Lt();aa();Ss();ca=16,$p="raw",rf={name:"PBKDF2"},eE={name:"HMAC"},tE="SHA-1",nf=1e3,rE=Object.assign({hash:eE},rf),nE=Object.assign({iterations:nf,hash:{name:tE}},rf),sE=["deriveBits"],En=[8,12,16],iE=[16,24,32],Ut=10,oa=2,sf=typeof crypto!=ye,mn=sf&&crypto.subtle,aE=sf&&typeof mn!=ye,tf=aE&&typeof mn.importKey==K&&typeof mn.deriveBits==K,af=pn,Is=class extends TransformStream{constructor({password:e,rawPassword:r,encryptionStrength:n,checkPasswordOnly:s,checkAuthenticationCode:i=!0}){let a={};super({start(){cf(a,e,r,n)},async transform(o,c){let{password:l,strength:R,resolveReady:p,ready:f}=a;if(l?(await oE(a,R,l,xe(o,0,En[R]+oa)),o=xe(o,En[R]+oa),s?(hn(a),c.error(new Error(lt))):p()):await f,a.discarded)return;let m=new Uint8Array(o.length-Ut-(o.length-Ut)%ca);c.enqueue(ff(a,o,m,0,Ut,!0))},async flush(o){let{engine:c,pendingInput:l,ready:R}=a;if(c){if(await R,a.discarded)return;let p=xe(l,l.length-Ut),f=new Uint8Array(xe(l,0,l.length-Ut));c.process(f,!0);let m=c.digest(),h=l.length<Ut?1:0;for(let E=0;E<Ut;E++)h|=m[E]^p[E];if(h&&i){o.error(new Error(Ft));return}o.enqueue(f)}}}),lf(this,a)}},bs=class extends TransformStream{constructor({password:e,rawPassword:r,encryptionStrength:n}){let s={};super({start(){cf(s,e,r,n)},async transform(i,a){let{password:o,strength:c,resolveReady:l,ready:R}=s,p=j;if(o?(p=await cE(s,c,o),l()):await R,s.discarded)return;let f=new Uint8Array(p.length+i.length-i.length%ca);f.set(p,0),a.enqueue(ff(s,i,f,p.length,0,!1))},async flush(i){let{engine:a,pendingInput:o,ready:c}=s;if(a){if(await c,s.discarded)return;let l=new Uint8Array(o);a.process(l,!1);let R=xe(a.digest(),0,Ut);i.enqueue(Be(l,R))}}}),lf(this,s)}}});function mf(t,e,r,n){Object.assign(t,{password:e,rawPassword:r,passwordVerification:n}),dE(t,e,r)}function df(t,e){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=hf(t)^e[n],Ds(t,r[n]);return r}function pf(t,e){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=hf(t)^e[n],Ds(t,e[n]);return r}function dE(t,e,r){let n=[305419896,591751049,878082192];if(Object.assign(t,{cryptoKeys:n,crcKey0:new Ve(n[0]),crcKey2:new Ve(n[2])}),r)for(let s=0;s<r.length;s++)Ds(t,r[s]);else for(let s=0;s<e.length;s++)Ds(t,e.charCodeAt(s))}function Ds(t,e){let[,r]=t.cryptoKeys;t.crcKey0.append([e]);let n=~t.crcKey0.get();r=Ef(Math.imul(Ef(r+gf(n)),134775813)+1),t.crcKey2.append([r>>>24]);let s=~t.crcKey2.get();t.cryptoKeys=[n,r,s]}function hf(t){let e=t.cryptoKeys[2]|2;return gf(Math.imul(e,e^1)>>>8)}function gf(t){return t&255}function Ef(t){return t&4294967295}var Ir,Ns,Os,Rf=se(()=>{un();Ss();Ir=12,Ns=class extends TransformStream{constructor({password:e,rawPassword:r,passwordVerification:n,checkPasswordOnly:s}){super({start(){mf(this,e,r,n)},transform(i,a){let o=this;if(o.password||o.rawPassword){let c=df(o,i.subarray(0,Ir));if(o.password=o.rawPassword=null,(c[Ir-1]^o.passwordVerification)!=0)throw new Error(Xe);i=i.subarray(Ir)}s?a.error(new Error(lt)):a.enqueue(df(o,i))}})}},Os=class extends TransformStream{constructor({password:e,rawPassword:r,passwordVerification:n}){super({start(){mf(this,e,r,n)},transform(s,i){let a=this,o,c;if(a.password||a.rawPassword){a.password=a.rawPassword=null;let l=ys(new Uint8Array(Ir));l[Ir-1]=a.passwordVerification,o=new Uint8Array(s.length+l.length),o.set(pf(a,l),0),c=Ir}else o=new Uint8Array(s.length),c=0;o.set(pf(a,s),c),i.enqueue(o)}})}}});function ze(t){if(t instanceof ReadableStream)return t;let e=t.getReader();return new ReadableStream({async pull(r){try{let{value:n,done:s}=await e.read();s?r.close():r.enqueue(n)}catch(n){throw e.cancel(n).catch(()=>{}),n}},cancel(r){return e.cancel(r)}})}function ft(t,e){t=ze(t);let r=e?{type:e}:{};if(pE())return new Response(t).blob().then(s=>e?new Blob([s],r):s);let n=[];return t.pipeTo(new WritableStream({write(s){n.push(s)}})).then(()=>new Blob(n,r))}function pE(){return typeof Blob.prototype.stream!=K||new Blob([]).stream()instanceof ReadableStream}function fa(t){if(t instanceof WritableStream)return t;let e=t.getWriter();return new WritableStream({write(r){return e.write(r)},close(){return e.close()},abort(r){return e.abort(r)}})}var Jt=se(()=>{ue()});function Ps(t){return EE.get(t)}function xs(t){return ua.get(t)}function mE(t,e){let{CompressionStream:r,DecompressionStream:n}=e;if(typeof r!=K&&typeof n!=K)throw new Error(wf);ua.set(t,{CompressionStream:r,DecompressionStream:n})}async function _f(t,e){!ua.has(t)&&e&&mE(t,await import(e))}var wf,ut,EE,ua,$t=se(()=>{ue();wf="Invalid codec module",ut="Compression method not supported",EE=new Map,ua=new Map});function RE(t,e,r,n,s){let i=e.writable.getWriter(),a=e.readable.getReader(),o=n===w?new Ve:w,c=0,l=!1,R=!1,p,f,m=new ReadableStream({start(A){f=A},pull(){g()},cancel(A){return R=!0,g(),a.cancel(A)}});return h(),E(),m;async function h(){let A=t.getReader();try{let T=new Uint8Array(yf);for(T.set(gE),await i.write(T);;){await u(),await i.ready;let{value:I,done:N}=await Df(A,s);if(N)break;await i.write(I)}o&&await i.write(new Uint8Array(0));let y=new Uint8Array(da),S=L(y);S.setUint32(0,o?o.get():n,!0),S.setUint32(4,r,!0),l=!0,await i.write(y),await i.close()}catch(T){await Of(i,T),await Us(A,T)}}async function E(){try{for(;;){let{value:A,done:T}=await d();if(T)break;if(c+=A.length,c>r)throw new Error(Je);o&&o.append(A),f.enqueue(A)}R||(R=!0,f.close())}catch(A){_(A),await Us(a,A)}}function d(){return a.read().catch(A=>{if(l){if(!o)throw vs(A,Mt);if(c!=r)throw vs(A,Je);return{done:!0}}throw Pf(A,s)})}function u(){if(!R&&f.desiredSize<=0)return new Promise(A=>p=A)}function g(){if(p){let A=p;p=w,A()}}function _(A){R||(R=!0,f.error(A),g())}}function Ea(t,e){if(!t)return!1;let r=Tf.get(t);r||(r=new Map,Tf.set(t,r));let n=r.get(e);if(n===w){try{new t(e),n=!0}catch{n=!1}r.set(e,n)}return n}function ks(t){return Ea(t,pa)}function ma(t){return Ea(t,Nr)}function Sf(t,e,r){e=dt(e,new TransformStream({flush:r})),Object.defineProperty(t,"readable",{get(){return e}})}function If(t,e,r){if(!t)throw new Error(ut);return new t(e,r)}function bf(t,e,r){if(t&&e)return e;if(r&&r.requiresModule)return r}function Nf(t,e,r,n,s,i){let a=e&&n?n:s||n,o=r.deflate64?Af:pa,c;try{c=new a(o,r)}catch(l){if(e&&s&&a!=s)c=new s(o,r);else throw l}return Rn(t,c,i)}function dt(t,e){return ze(t).pipeThrough(e)}function Rn(t,e,r){let n=e.writable.getWriter(),s=t.getReader();return i(),e.readable;async function i(){try{for(;;){await n.ready;let a=await Df(s,r);if(a.done){await n.close();break}await n.write(a.value)}}catch(a){await Of(n,a),await Us(s,a)}}}async function Of(t,e){try{await t.abort(e)}catch{}}async function Us(t,e){try{await t.cancel(e)}catch{}}function Df(t,e){let r=t.read();return e?r.catch(n=>{throw e.add(n),n}):r}function Pf(t,e){return e.has(t)?t:vs(t,xf(t)?tr:er)}function Ms(t){return xf(t)?vs(t,tr):t}function xf(t){return Re(t)&&t.code==hE}function vs(t,e){let r=new Error(e);return r.cause=t,r}function wE(t,e){let r=t.getReader();return new ReadableStream({async pull(n){try{let{value:s,done:i}=await r.read();i?n.close():n.enqueue(s)}catch(s){throw await Us(r,s),Pf(s,e)}},cancel(n){return r.cancel(n)}})}var Je,er,tr,Mt,hE,pa,Af,Nr,yf,da,gE,Cs,Ls,Fs,Tf,ha=se(()=>{un();Zl();la();Rf();Ss();ue();Lt();Jt();qt();$t();Je="Invalid uncompressed size",er="Invalid compressed data",tr="Codec out of memory",Mt="Invalid CRC32",hE="Z_MEM_ERROR",pa="deflate-raw",Af="deflate64-raw",Nr="gzip",yf=10,da=8,gE=[31,139,8],Cs=class extends TransformStream{constructor(e,{chunkSize:r,CompressionStreamFallback:n,CompressionStream:s}){super({});let{compressed:i,encrypted:a,useCompressionStream:o,zipCrypto:c,computeCrc32:l,level:R,deflate64:p,format:f,compressionMethod:m,inputSize:h}=e,E=this,d,u,g,_=super.readable,A=f&&xs(f),T=bf(o,s,n),y=l&&i&&!p&&!A&&(!a||c)&&!!T;if((!a||c)&&l&&!y&&(d=new dn,_=dt(_,d)),i)if(A)_=Rn(_,If(A.CompressionStream,f,{level:R,chunkSize:r,compressionMethod:m,uncompressedSize:h}));else if(y)g=new Ls,_=Rn(_,new T(Nr,{level:R,chunkSize:r})),_=dt(_,g);else try{_=Nf(_,o,{level:R,chunkSize:r},s,n)}catch(S){if(!o&&n)throw Ms(S);let I;try{I=new s(Nr)}catch{throw Ms(S)}_=Rn(_,I),_=dt(_,new Ls)}a&&(c?_=dt(_,new Os(e)):(u=new bs(e),_=dt(_,u))),Sf(E,_,()=>{(!a||c)&&l&&(E.crc32=y?g.crc32:new DataView(d.value.buffer).getUint32(0))})}},Ls=class extends TransformStream{constructor(){let e,r=yf,n=new Uint8Array(0);super({transform(s,i){if(r){let l=Math.min(r,s.length);if(r-=l,s=s.subarray(l),!s.length)return}let a=n.length+s.length;if(a<=da){n=Be(n,s);return}let o=a-da,c=Math.min(o,n.length);i.enqueue(Be(n.subarray(0,c),s.subarray(0,o-c))),n=Be(n.subarray(c),s.subarray(o-c))},flush(){let s=L(n);e.crc32=s.getUint32(0,!0),e.uncompressedSize=s.getUint32(4,!0)}}),e=this}};Fs=class extends TransformStream{constructor(e,{chunkSize:r,DecompressionStreamFallback:n,DecompressionStream:s}){super({});let{zipCrypto:i,encrypted:a,checkCrc32:o,crc32:c,compressed:l,useCompressionStream:R,deflate64:p,format:f,compressionMethod:m,rawBitFlag:h,outputSize:E}=e,d,u,g,_=super.readable;if(a&&(i?_=dt(_,new Ns(e)):(u=new Is(e),_=dt(_,u))),l){let A=new Set,T=f&&xs(f),y;if(T)_=Rn(_,If(T.DecompressionStream,f,{chunkSize:r,compressionMethod:m,rawBitFlag:h,uncompressedSize:E}),A);else{let S=bf(R,s,n);if(o&&!p&&c!==w&&E!==w&&S)try{y=new S(Nr,{chunkSize:r})}catch{y=w}if(!y)try{_=Nf(_,R,{chunkSize:r,deflate64:p},s,n,A)}catch(I){if(p||E===w||!R&&n)throw Ms(I);try{y=new s(Nr)}catch{throw Ms(I)}}}y?(g=!0,_=RE(_,y,E,c,A)):_=wE(_,A)}o&&!g&&(d=new dn,_=dt(_,d)),Sf(this,_,()=>{if(d){let A=new DataView(d.value.buffer).getUint32(0,!1);if(c!=A)throw new Error(Mt)}})}},Tf=new Map});var _E,Cf,Lf,Ff,ga,Uf,Mf,Or,zs,Bs,wn,Hs=se(()=>{ue();ha();_E=64*1024,Cf="message",Lf="start",Ff="pull",ga="data",Uf="ack",Mf="close",Or="deflate",zs="inflate",Bs=class extends TransformStream{constructor(e,r){super({});let n=this,{codecType:s}=e,i;s.startsWith(Or)?i=Cs:s.startsWith(zs)&&(i=Fs),n.outputSize=0;let a=0,o=new i(e,r),c=super.readable,l=new TransformStream({transform(p,f){p&&p.length&&(a+=p.length,f.enqueue(p))},flush(){Object.assign(n,{inputSize:a})}}),R=new TransformStream({transform(p,f){if(p&&p.length&&(f.enqueue(p),n.outputSize+=p.length,e.outputSize!==w&&n.outputSize>e.outputSize))throw new Error(Je)},flush(){let{crc32:p}=o;Object.assign(n,{crc32:p,inputSize:a})}});Object.defineProperty(n,"readable",{get(){return c.pipeThrough(l).pipeThrough(o).pipeThrough(R)}})}},wn=class extends TransformStream{constructor(e){let r=[],n=0,s=0;(!Number.isFinite(e)||e<1)&&(e=_E),super({transform(o,c){for(r.push(o),n+=o.length;n>e;)s+=e,c.enqueue(i())},flush(o){n&&(s+=n,o.enqueue(a(r,n)))}}),Object.defineProperty(this,"outputSize",{get:()=>s});function i(){let o=new Uint8Array(e),c=0;for(;c<e;){let l=r[0],R=e-c;l.length<=R?(o.set(l,c),c+=l.length,r.shift()):(o.set(l.subarray(0,R),c),r[0]=l.subarray(R),c+=R)}return n-=e,o}function a(o,c){let l=new Uint8Array(c),R=0;for(let p of o)l.set(p,R),R+=p.length;return l}}}});function kf({initModule:t}){wa=t}function Bf(t){Ra=t}async function zf(t){let{CompressionStream:e,CompressionStreamFallback:r}=t;return r&&!r.requiresModule||ks(e)||ma(e)?!0:r?await Hf(t):!1}async function Hf(t){if(wa)try{return await wa(t),!0}catch{}return!1}function _a(t){t.createWorker?vf=!0:Ys=!1}async function Ws(t,...e){try{await t(...e)}catch{}}function Ta(t,e){return{run:()=>Vs(t,e)}}async function Vs({options:t,readable:e,writable:r,onTaskFinished:n,workerOptions:s},i){let a,o,c;try{if(t.compressed&&!t.format){let h=t.codecType.startsWith(Or),E=h?i.CompressionStreamFallback:i.DecompressionStreamFallback,d=h?i.CompressionStream:i.DecompressionStream;t.useCompressionStream?E&&E.requiresModule&&!ks(d)&&await l():!await l()&&(!E||E.requiresModule)&&(t.useCompressionStream=!0)}t.encrypted&&!t.zipCrypto&&await l(),a=new Bs(t,i),o=new wn(ln(i));let{signal:R}=s.streamOptions;await e.pipeThrough(a).pipeThrough(o).pipeTo(r,{preventClose:!0,preventAbort:!0,signal:R});let{crc32:p,inputSize:f,outputSize:m}=a;return{crc32:p,inputSize:f,outputSize:m}}catch(R){if(a){let p=o?o.outputSize:0;if(s.outputSize=p,Re(R))try{R.outputSize=p}catch{}}throw R}finally{n()}function l(){return c||(c=Hf(i)),c}}var rr,Ys,vf,Ra,wa,vt,Gs,Dr=se(()=>{ue();Ge();qt();Hs();rr="Worker startup timeout",wa=()=>{};vt=class{constructor(e,{readable:r,writable:n},s,i){let{options:a,config:o,streamOptions:c,useWebWorkers:l,transferStreams:R,workerURI:p}=s,{createWorker:f}=s,{signal:m}=c;return vf&&(f=w),Object.assign(e,{busy:!0,generation:(e.generation||0)+1,readable:r.pipeThrough(new wn(ln(o))).pipeThrough(new Gs(c),{signal:m}),writable:n,options:Object.assign({},a),workerOptions:s,workerURI:p,createWorker:f,transferStreams:R,terminate(){return new Promise(h=>{let{worker:E,busy:d}=e;d?(e.terminateResolvers=e.terminateResolvers||[],e.terminateResolvers.push(h)):(E&&(E.terminate(),e.worker=null),h()),e.interface=null})},onTaskFinished(){if(e.busy){let{terminateResolvers:h,worker:E}=e;h&&(e.terminateResolvers=null,E&&(e.terminated=!0,E.terminate())),e.busy=!1;let d=i(e);h&&h.forEach(u=>u(d))}}}),Ys===w&&(Ys=typeof Worker!=ye),(l&&Ra&&(Ys&&p||f)?Ra:Ta)(e,o)}},Gs=class extends TransformStream{constructor({onstart:e,onprogress:r,size:n,onend:s}){let i=0;super({async start(){e&&await Ws(e,n)},async transform(a,o){i+=a.length,r&&await Ws(r,i,n),o.enqueue(a)},async flush(){s&&await Ws(s,i)}})}}});async function Ks(t,e){let{options:r,config:n}=e,{transferStreams:s,useWebWorkers:i,useCompressionStream:a,compressed:o,checkCrc32:c,computeCrc32:l,encrypted:R,format:p,codecURI:f}=r,{workerURI:m,createWorker:h,maxWorkers:E}=n;p&&(f&&(r.codecURI=OE(f,n.baseURI)),await _f(p,r.codecURI)),e.transferStreams=!p&&(s||s===w&&n.transferStreams);let d=!o&&!c&&!l&&!R,u=p===w||!!r.codecURI;return e.useWebWorkers=!d&&u&&(i||i===w&&n.useWebWorkers),e.workerURI=e.useWebWorkers&&m?m:w,e.createWorker=e.useWebWorkers&&h?h:w,r.useCompressionStream=a||a===w&&n.useCompressionStream,(await g()).run();async function g(){let A=nr.find(T=>!T.busy);if(A)return qf(A),new vt(A,t,e,_);if(nr.length<E){let T={indexWorker:Kf};return Kf++,nr.push(T),new vt(T,t,e,_)}else return new Promise(T=>{sr.push({resolve:T,stream:t,workerOptions:e}),js=n.workerStarvationTimeout,Zs()})}function _(A){if(Na(),A.terminated)return A.terminated=!1,PE();if(sr.length){let[{resolve:T,stream:y,workerOptions:S}]=sr.splice(0,1);T(new vt(A,y,S,_)),Zs()}else A.worker?(qf(A),xE(A,e)):nr=nr.filter(T=>T!=A)}}function OE(t,e){try{return new URL(t,e).toString()}catch{return t}}function Zs(){!Pr&&sr.length&&Number.isFinite(js)&&js>=0&&(Pr=setTimeout(DE,js))}function Na(){Pr&&(clearTimeout(Pr),Pr=null)}function DE(){if(Pr=null,sr.length){let[{resolve:t,stream:e,workerOptions:r}]=sr.splice(0,1);t(new vt({},e,Jf(r),Qf)),Zs()}}function PE(){let t=sr.splice(0).map(({resolve:e,stream:r,workerOptions:n})=>new Promise(s=>{e(new vt({},r,Jf(n),()=>{Qf(),s()}))}));return Na(),Promise.all(t)}function Jf(t){return Object.assign({},t,{useWebWorkers:!1,workerURI:w,createWorker:w})}function Qf(){Na(),Zs()}function xE(t,e){let{config:r}=e,{terminateWorkerTimeout:n}=r;Number.isFinite(n)&&n>=0&&(t.terminateTimeout=setTimeout(async()=>{nr=nr.filter(s=>s!=t);try{await t.terminate()}catch{}},n))}function qf(t){let{terminateTimeout:e}=t;e&&(clearTimeout(e),t.terminateTimeout=null)}var nr,sr,Pr,js,Kf,qs=se(()=>{ue();Hs();$t();Dr();nr=[],sr=[],Kf=0});function $f(t){let e="";for(let r=0;r<t.length;r++)e+=CE[t[r]];return e}var CE,eu=se(()=>{CE="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0".split("")});function _n(t,e){return LE(t,e,!0)}function Oa(t){if(t.some(e=>e>127))try{return new TextDecoder("utf-8",{fatal:!0}).decode(t),!0}catch{return!1}else return!1}function LE(t,e,r){return e&&e.trim().toLowerCase()=="cp437"?$f(t):new TextDecoder(e,{ignoreBOM:r}).decode(t)}var Da=se(()=>{eu()});function UE(){su=(async()=>{try{let e=new Blob([new Uint8Array(3)]).slice(1,2).stream().getReader(),r=0,n=await e.read();for(;!n.done;)r+=n.value.length,n=await e.read();Pa=r==1}catch{Pa=!1}})()}function Tn(t){return!!(t&&t.getData)}async function ge(t,e){if(t.init&&!t.initialized)await t.init(e);else return Promise.resolve()}async function ME(t){return t=new Et(t),await ge(t),(t.size===w||!t.readUint8Array)&&(t=new Qe(await ft(t.readable)),await ge(t)),t}function re(t,e,r){return t.readUint8Array(e,r)}function xa(t,e){return t.createReadable?t.createReadable(e):t.readUint8Array?pt.prototype.createReadable.call(t,e):t.readable}var ru,nu,jR,ZR,KR,FE,tu,Js,pt,Pa,su,Qe,Qs,$s,Et,xr,An=se(()=>{ue();Ge();Lt();Jt();Da();ru="Writer iterator completed too soon",nu="Invalid writer (size must be writable)",jR=256*1024,ZR=16*1024*1024,KR=65557,FE="writable",tu=Symbol(),Js=class{constructor(){this.size=0}init(){this.initialized=!0}},pt=class extends Js{get readable(){return this.createReadable()}createReadable({offset:e=0,size:r,chunkSize:n=ln(ot())}={}){let s=this,i=0;return n=sa(n),new ReadableStream({async pull(a){let o=r===w?n:Math.min(n,r-i),c=await re(s,e+i,o);c.length&&(a.enqueue(c),i+=c.length),(r!==w&&i>=r||!c.length&&o)&&a.close()}})}};Qe=class extends pt{constructor(e){super(),Object.assign(this,{sourceBlob:e,size:e.size}),su||UE()}createReadable(e){let r=this,{sourceBlob:n,size:s}=r,{offset:i=0,size:a=s-i}=e||{};if(typeof n.stream==K){if(!i&&a>=s)return ze(n.stream());if(Pa)return ze(n.slice(i,i+a).stream())}return super.createReadable(e)}async readUint8Array(e,r){let n=this,s=e+r,o=await(!e&&s>=n.size?n.sourceBlob:n.sourceBlob.slice(e,s)).arrayBuffer();return o.byteLength>r&&(o=o.slice(e,s)),new Uint8Array(o)}},Qs=class extends pt{constructor(e){super(),this.readers=e}async init(){let e=this;e.lastDiskNumber=0;let r=e.readers=await Promise.all(e.readers.map(ME));e.diskOffsets=r.map(n=>{let s=e.size;return e.size+=n.size,s}),super.init()}getDiskOffset(e){let{diskOffsets:r,size:n}=this,s=r[e];return s===w?n:s}async readUint8Array(e,r){let n=this,{readers:s}=this,i,a=0,o=e;for(;s[a]&&o>=s[a].size;)o-=s[a].size,a++;let c=s[a];if(c){let l=c.size;if(o+r<=l)i=await re(c,o,r);else{let R=l-o,p=await re(c,o,R),f=await n.readUint8Array(e+R,r-R);i=Be(p,f)}}else i=j;return n.lastDiskNumber=Math.max(a,n.lastDiskNumber),i}},$s=class extends Js{constructor(e,r=4294967295){super();let n=this;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:r,availableSize:r});let s,i,a,o=new WritableStream({async write(p){if(p===tu){a&&await l();return}let{availableSize:f}=n;if(a)p.length>=f?(await c(p.subarray(0,f)),await l(),p.length>f&&await this.write(p.subarray(f))):await c(p);else{let{value:m,done:h}=await e.next();if(h&&!m)throw new Error(ru);s=m,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await ge(s),i=m.writable,a=i.getWriter(),await this.write(p)}},async close(){a&&(await a.ready,await R())},async abort(p){a&&await a.abort(p)}});Object.defineProperty(n,FE,{get(){return o}});async function c(p){let f=p.length;f&&(await a.ready,await a.write(p),s.size+=f,n.availableSize-=f)}async function l(){await R(),n.diskOffset+=s.size,n.diskNumber++,a=null,n.availableSize=n.maxSize}async function R(){await a.close()}}async closeDisk(){let e=this.writable.getWriter();try{await e.ready,await e.write(tu)}finally{e.releaseLock()}}},Et=class{constructor(e){return Array.isArray(e)&&(e=new Qs(e)),(e instanceof ReadableStream||typeof e.getReader==K)&&(e={readable:ze(e)}),e}},xr=class{constructor(e){e.writable===w&&typeof e.next==K&&(e=new $s(e)),(e instanceof WritableStream||typeof e.getWriter==K)&&(e={writable:fa(e)});try{e.size=e.size===w?0:e.size}catch{throw new Error(nu)}return e}}});function Te(t,e,r){if(!t.some(n=>n.reason==e)){let n={reason:e};r!==w&&(n.filename=r),t.push(n)}}var Ca=se(()=>{ue()});function iu(t){if(t){let e=new Map;if(t.forEach((r,n)=>{im.has(n)||e.set(n,r.data)}),e.size)return e}}function Ln(t,e,r){return t?e?12:16+r*4:0}var va,ka,On,Ba,Dn,za,Ha,Ya,ar,Lr,Pn,Wa,xn,Ga,Va,Xa,ja,Za,Ka,ei,qa,Ja,Qa,$a,or,eo,vE,to,ti,kE,Cn,BE,zE,HE,YE,ro,no,so,io,ao,oo,WE,GE,VE,XE,jE,ZE,KE,qE,JE,QE,$E,em,tm,rm,nm,sm,mt,im,ri=se(()=>{ue();va="filename",ka="rawFilename",On="comment",Ba="rawComment",Dn="uncompressedSize",za="compressedSize",Ha="offset",Ya="diskNumberStart",ar="lastModDate",Lr="rawLastModDate",Pn="lastAccessDate",Wa="rawLastAccessDate",xn="creationDate",Ga="rawCreationDate",Va="internalFileAttributes",Xa="externalFileAttributes",ja="msdosAttributesRaw",Za="msdosAttributes",Ka="msDosCompatible",ei="zip64",qa="encrypted",Ja="version",Qa="versionMadeBy",$a="zipCrypto",or="directory",eo="executable",vE="symlink",to="compressionMethod",ti="signature",kE="crc32",Cn="extraField",BE="extraFieldInfoZip",zE="extraFieldUnix",HE="extraFieldUnixType1",YE="extraFieldPkwareUnix",ro="uid",no="gid",so="unixMode",io="setuid",ao="setgid",oo="sticky",WE="bitFlag",GE="rawBitFlag",VE="filenameLength",XE="extraFieldLength",jE="unixExternalUpper",ZE="filenameUTF8",KE="commentUTF8",qE="rawExtraField",JE="extraFieldZip64",QE="extraFieldUnicodePath",$E="extraFieldUnicodeComment",em="extraFieldAES",tm="extraFieldNTFS",rm="extraFieldExtendedTimestamp",nm="extraFieldUSDZ",sm=[va,ka,Dn,za,ar,Lr,On,Ba,Pn,Wa,xn,Ga,Ha,Ya,Va,Xa,ja,Za,Ka,ei,qa,Ja,Qa,$a,or,eo,vE,to,ti,kE,Cn,zE,BE,HE,YE,ro,no,so,jE,io,ao,oo,WE,GE,VE,XE,ZE,KE,qE,JE,QE,$E,em,tm,rm,nm],mt=class{constructor(e){sm.forEach(r=>this[r]=e[r])}},im=new Set([1,39169,10,21589,28789,25461,6534,30837,30805,22613,13])});var Lu={};Ep(Lu,{ERR_AMBIGUOUS_ARCHIVE:()=>xo,ERR_BAD_FORMAT:()=>Fr,ERR_CENTRAL_DIRECTORY_NOT_FOUND:()=>bo,ERR_CODEC_OUT_OF_MEMORY:()=>tr,ERR_ENCRYPTED:()=>_i,ERR_ENCRYPTED_CENTRAL_DIRECTORY:()=>Co,ERR_ENTRY_DATA_OUT_OF_BOUNDS:()=>Po,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:()=>Io,ERR_EOCDR_NOT_FOUND:()=>So,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:()=>Oo,ERR_INVALID_AUTHENTICATION_CODE:()=>Ft,ERR_INVALID_COMPRESSED_DATA:()=>er,ERR_INVALID_CRC32:()=>Mt,ERR_INVALID_FILENAME_VALIDATION:()=>Uo,ERR_INVALID_MAX_APPENDED_DATA_SIZE:()=>Mo,ERR_INVALID_PASSWORD:()=>Xe,ERR_INVALID_STRICTNESS:()=>Fo,ERR_INVALID_UNCOMPRESSED_SIZE:()=>Je,ERR_LOCAL_FILE_HEADER_NOT_FOUND:()=>No,ERR_OVERLAPPING_ENTRY:()=>Do,ERR_SPLIT_ZIP_FILE:()=>ai,ERR_UNSAFE_FILENAME:()=>Lo,ERR_UNSUPPORTED_COMPRESSION:()=>ut,ERR_UNSUPPORTED_ENCRYPTION:()=>ii,ERR_UNSUPPORTED_UINT64:()=>vo,ERR_WORKER_STARTUP_TIMEOUT:()=>rr,WARNING_APPENDED_DATA:()=>ci,WARNING_COMPRESSED_PATCHED_DATA:()=>zo,WARNING_DUPLICATE_FILENAME:()=>Go,WARNING_MALFORMED_EXTRA_FIELD:()=>Ti,WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG:()=>jo,WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD:()=>Zo,WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES:()=>Ko,WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME:()=>Xo,WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY:()=>Ur,WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY:()=>Vo,WARNING_PREPENDED_CENTRAL_DIRECTORY:()=>Yo,WARNING_PREPENDED_DATA:()=>li,WARNING_TRAILING_CENTRAL_DIRECTORY_DATA:()=>Wo,WARNING_UNKNOWN_VERSION:()=>Bo,WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA:()=>Ho,WARNING_UNSORTED_CENTRAL_DIRECTORY:()=>ko,WARNING_WRAPPED_ENTRIES_COUNT:()=>oi,ZipReader:()=>zt,ZipReaderStream:()=>ui,isZipFile:()=>Su});function hm(t,e){let{readable:r,writable:n}=new TransformStream,s,i={cancel:async o=>{e.delete(i),await(s?s.cancel(o):r.cancel(o))}};return i.readable=new ReadableStream({async pull(o){s||(s=r.getReader(),e.add(i),a());let{done:c,value:l}=await s.read();c?o.close():o.enqueue(l)},cancel:o=>i.cancel(o)},{highWaterMark:0}),i;async function a(){try{await t.getData(n,{preventClose:!1})}catch(o){try{await n.abort(o)}catch{}}finally{e.delete(i)}}}async function Su(t,e={}){if(t=new Et(t),await ge(t),(t.size===w||!t.readUint8Array)&&(t=new Qe(await ft(t.readable)),await ge(t)),t.size<22)return!1;let r=Jo(e,{}),n=r!=at,s=Du(e[ea],r),{endOfDirectoryInfo:i,endOfDirectoryReachingEndCount:a}=await Pu(t,n,s);if(!i||r==Pt&&a>1)return!1;let o=V(L(i),20),c=i.offset+22+o;return t.size-c<=s}function co(t){let e=Math.min(t.byteLength,1024)-3;for(let r=0;r<e;r++)if(v(t,r)==134630224)return!0;return!1}function Eu(t,e,r){let n=0;for(;r+46<=e.length&&v(t,r)==33639248;)r+=46+V(t,r+28)+V(t,r+30)+V(t,r+32),n++;return n%65536?0:n}function lo(t){if(t.length>=6){let e=L(t);if(v(e,0)==84233040){let r=V(e,4);if(6+r<=t.length)return new Uint8Array(t.subarray(6,6+r))}}}function gm(t,e,r){let n=t&&t.compressedSize?t.compressedSize:e;return n>0&&n<=r?n:r}function Rm(t){let e={rawExtensibleData:t};if(t.length>=28){let r=L(t),n=V(r,26);Object.assign(e,{compressionMethod:V(r,0),compressedSize:Ce(r,2),uncompressedSize:Ce(r,10),encryptionAlgorithm:V(r,18),bitLength:V(r,20),flags:V(r,22),hashAlgorithm:V(r,24),hashData:t.subarray(28,28+n)})}return e}function Iu(t,e,r){let n=t.rawBitFlag=V(e,r+2),s=(n&1)==1,i=v(e,r+6);Object.assign(t,{encrypted:s,version:V(e,r),bitFlag:{level:(n&6)>>1,dataDescriptor:(n&8)==8,languageEncodingFlag:(n&2048)==2048},rawLastModDate:i,lastModDate:Um(i),filenameLength:V(e,r+22),extraFieldLength:V(e,r+24)})}function bu(t,e,r,n,s){let{rawExtraField:i}=e,a=e.extraField=new Map,o=L(i),c=0,l=!1;try{for(;c<i.length;){let y=V(o,c),S=V(o,c+2);a.set(y,{type:y,data:i.slice(c+4,c+4+S)}),c+=4+S}}catch{l=!0}c>i.length&&(l=!0);let R=V(r,n+4);Object.assign(e,{signature:v(r,n+10),crc32:v(r,n+10),compressedSize:v(r,n+14),uncompressedSize:v(r,n+18)});let p=a.get(1);p&&(wm(p,e),e.extraFieldZip64=p);let f=a.get(28789);f&&(mu(f,va,ka,e,t),e.extraFieldUnicodePath=f);let m=a.get(25461);m&&(mu(m,On,Ba,e,t),e.extraFieldUnicodeComment=m);let h=a.get(39169);h&&h.data.length>=7?(_m(h,e,R),e.extraFieldAES=h):e.compressionMethod=R;let E=a.get(13);E&&(hu(E,e),e.extraFieldPkwareUnix=E);let d=a.get(22613);d&&(hu(d,e),e.extraFieldUnixType1=d);let u=a.get(10);u&&(Tm(u,e),e.extraFieldNTFS=u);let g=a.get(30805),_;if(g&&(_=gu(g,e,!1),e.extraFieldUnix=g),!_){let y=a.get(30837);y&&(gu(y,e,!0),e.extraFieldInfoZip=y)}let A=a.get(21589);A&&(Am(A,e,s),e.extraFieldExtendedTimestamp=A);let T=a.get(6534);return T&&(e.extraFieldUSDZ=T),l}function wm(t,e){e.zip64=!0;let r=L(t.data),n=dm.filter(([i,a])=>e[i]==a),s=n.reduce((i,[,a])=>i+du[a].bytes,0);if(t.data.length<s)throw new Error(Oo);for(let i=0,a=0;i<n.length;i++){let[o,c]=n[i],l=du[c];e[o]=t[o]=l.getValue(r,a),a+=l.bytes}}function mu(t,e,r,n,s){if(t.data.length<5){t.valid=!1;return}let i=L(t.data),a=new Ve;a.append(s[r]);let o=L(new Uint8Array(4));o.setUint32(0,a.get(),!0);let c=v(i,1),l=Bt(i,0);Object.assign(t,{version:l,[e]:_n(t.data.subarray(5)),valid:l==1&&!s.bitFlag.languageEncodingFlag&&c==v(o,0)}),t.valid&&(n[e]=t[e],n[e+um]=!0)}function _m(t,e,r){let n=L(t.data),s=Bt(n,4);Object.assign(t,{vendorVersion:Bt(n,0),vendorId:Bt(n,2),strength:s,originalCompressionMethod:r,compressionMethod:V(n,5)}),e.compressionMethod=t.compressionMethod,t.vendorVersion!=yu&&(e.crc32=w)}function Tm(t,e){let r=L(t.data),n=4,s;try{for(;n<t.data.length&&!s;){let i=V(r,n),a=V(r,n+2);i==1&&(s=t.data.slice(n+4,n+4+a)),n+=4+a}}catch{}if(s&&s.length==24){let i=L(s),a=i.getBigUint64(0,!0),o=i.getBigUint64(8,!0),c=i.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:a,rawLastAccessDate:o,rawCreationDate:c});let l=fo(a),R=fo(o),p=fo(c),f={lastModDate:l,lastAccessDate:R,creationDate:p};Object.assign(t,f),Object.assign(e,f,{rawLastAccessDate:o,rawCreationDate:c})}}function hu(t,e){if(t.data.length<8)return;let r=L(t.data),n=new Date((v(r,0)|0)*1e3),s=new Date((v(r,4)|0)*1e3),i={lastAccessDate:n,lastModDate:s};t.data.length>=12&&(i.uid=V(r,8),i.gid=V(r,10)),Object.assign(t,i),Object.assign(e,i)}function gu(t,e,r){try{let n=L(t.data),s,i;if(r){let a=0,o=Bt(n,a++),c=Bt(n,a++);s=Ru(t.data.subarray(a,a+c)),a+=c;let l=Bt(n,a++);i=Ru(t.data.subarray(a,a+l)),Object.assign(t,{version:o,uid:s,gid:i})}else t.data.length>=4&&(s=V(n,0),i=V(n,2),Object.assign(t,{uid:s,gid:i}));return s!==w&&(e.uid=s),i!==w&&(e.gid=i),s!==w||i!==w}catch{}}function Ru(t){let e=new Uint8Array(4);return e.set(t,0),new DataView(e.buffer,e.byteOffset,4).getUint32(0,!0)}function Am(t,e,r){if(!t.data.length)return;let n=L(t.data),s=Bt(n,0),i=[],a=[];r?((s&1)==1&&(i.push(ar),a.push(Lr)),(s&2)==2&&(i.push(Pn),a.push(Wa)),(s&4)==4&&(i.push(xn),a.push(Ga))):t.data.length>=5&&(i.push(ar),a.push(Lr));let o=1;i.forEach((c,l)=>{if(t.data.length>=o+4){let R=v(n,o);e[c]=t[c]=new Date((R|0)*1e3);let p=a[l];t[p]=R}o+=4})}async function ym({reader:t,fileEntry:e,index:r,offset:n,crc32:s,compressedSize:i,uncompressedSize:a,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:R}){let p=0;if(c&&(l?p=20:p=12),p){let d=await re(t,o+i,p+4),u=L(d),g=d.length==p+4&&v(u,0)==134695760;if(g){let _=wu(u,4,l);(e.encrypted&&!e.zipCrypto||_.crc32==s)&&_.compressedSize==i&&_.uncompressedSize==a?p+=4:g=!1}if(d.length>=p){let _=wu(u,g?4:0,l);_.signature=g,e.localDirectory.dataDescriptor=_}}let f={start:n,end:o+i+p,fileEntry:e},{indexes:m,sortedRanges:h,pendingRanges:E}=R;if(!m.has(r)){let d=Sm(h,f)||E.find(u=>po(f,u));if(d){let u=new Error(Do);throw u.overlappingEntry=d.fileEntry,u}m.add(r),E.push(f),E.length*E.length>h.length&&(E.sort((u,g)=>u.start-g.start),R.sortedRanges=Im(h,E),E.length=0)}}function Sm(t,e){let r=0,n=t.length;for(;r<n;){let a=r+n>>>1;t[a].start<e.start?r=a+1:n=a}let s=t[r-1],i=t[r];if(s&&po(e,s))return s;if(i&&po(e,i))return i}function po(t,e){return t.start<e.end&&e.start<t.end}function Im(t,e){let r=[],n=0,s=0;for(;n<t.length||s<e.length;)s==e.length||n<t.length&&t[n].start<e[s].start?r.push(t[n++]):r.push(e[s++]);return r}function wu(t,e,r){let n=v(t,e),s,i;return r?(s=Ce(t,e+4),i=Ce(t,e+12)):(s=v(t,e+4),i=v(t,e+8)),{crc32:n,compressedSize:s,uncompressedSize:i}}function Mr(t,e){return t.getDiskOffset?t.getDiskOffset(e):0}async function bm(t){return await Nu(t)==134695760}async function Nm(t){let e=await Nu(t);return e==134695760||e==808471376}async function Nu(t){let e=await re(t,0,4);return v(L(e))}function Ou(t){return t===Pt||t===Rs||t===at}function Om(t,e,r){return Math.min(t,r?e*mm:e)}function Jo(t,e){return _u(t,_u(e,Rs))}function _u(t,e){let r=t[Sl];if(r!==w){if(!Ou(r))throw new Error(Fo);return r}let n=t[al];return n===w?e:n?Pt:e==at?at:Rs}function Dm(t,e){return t===w?e!=at:!!t}function Pm(t,e){return t===w?e==Pt:!!t}function xm(t,e){if(t===w)return e;if(!Ou(t))throw new Error(Uo);return t}function Cm(t,e){if(e==at)return!1;let r=t.split("/");return r.length>1&&r[r.length-1]===""&&r.pop(),fm.test(t)||t.startsWith("/")||t.startsWith("\\")||lm.test(t)?!0:e==Pt&&(r.includes(".")||r.includes("")||t.includes("\0"))}function Du(t,e){if(t!==w){let r=xt(t);if(typeof r!=Jc||Number.isNaN(r)||r<0)throw new Error(Mo);return r}return e==Pt?0:e==at?1/0:65535}async function Pu(t,e,r){let{size:n}=t,s=Math.min(n,65557),i={remaining:Em},a,o,c=0;for await(let[l,R,p,f,m]of xu(t,s)){let h=V(l,f+20);if(m+22+h==n){let E=await Cu(t,l,R,f,m,n,i);if(E==fi){if(a||(a=Eo(p,f,m)),c++,!e||c>1)break}else E==qo&&!o&&(o=Eo(p,f,m))}}return a||(a=o),a||(a=await Lm(t,r,i)),{endOfDirectoryInfo:a,endOfDirectoryReachingEndCount:c}}async function Lm(t,e,r){let{size:n}=t,s=Math.min(n,e==1/0?n:65557+e),i,a;for await(let[o,c,l,R,p]of xu(t,s)){let f=Eo(l,R,p);i||(i=f);let m=await Cu(t,o,c,R,p,n,r);if(m==fi)return f;m==qo&&!a&&(a=f)}return a||i}async function*xu(t,e){let r=t.size-e,n=await re(t,r,e),s=L(n);for(let i=n.length-22;i>=0;i--)v(s,i)==101010256&&(yield[s,r,n,i,r+i])}function Eo(t,e,r){return{offset:r,buffer:new Uint8Array(t.subarray(e,e+22)).buffer}}async function Cu(t,e,r,n,s,i,a){let o=V(e,n+10),c=v(e,n+12),l=v(e,n+16);if(o==65535||c==4294967295||l==4294967295)return await Tu(t,e,r,s-20,i,a)==117853008?fi:pu;if(!o&&!c)return qo;let R=V(e,n+6);for(let p of[s-c,Mr(t,R)+l])if(await Tu(t,e,r,p,i,a)==33639248)return fi;return pu}async function Tu(t,e,r,n,s,i){if(n<0||n+4>s)return w;if(n>=r)return v(e,n-r);if(i.remaining>0){i.remaining--;let a=await re(t,n,4);return v(L(a),0)}return w}function Fm(t,e,r,n,s){let{rawFilename:i}=t,a=!s,o=t.decryptedDirectory&&(e.rawBitFlag&8192)==8192;n&&!o&&(r.length!=i.length||r.some((c,l)=>c!=i[l]))&&et(a,s,Xo),(e.rawBitFlag&uu)!=(t.rawBitFlag&uu)&&et(a,s,jo),e.compressionMethod!=t.compressionMethod&&et(a,s,Zo),!e.bitFlag.dataDescriptor&&!o&&(e.crc32||e.compressedSize||e.uncompressedSize)&&(e.crc32!=t.crc32||e.compressedSize!=t.compressedSize||e.uncompressedSize!=t.uncompressedSize)&&et(a,s,Ko)}function et(t,e,r){t?ni(r):Te(e,r)}function ni(t){let e=new Error(xo);throw e.reason=t,e}function ae(t,e,r){return e[r]===w?t.options[r]:e[r]}function Au(t,e,r){return wr(ae(t,e,r))}function Um(t){let e=(t&4294901760)>>16,r=t&65535,n=new Date(1980+((e&65024)>>9),((e&480)>>5)-1,e&31,(r&63488)>>11,(r&2016)>>5,(r&31)*2,0);return n<Dt?Dt:n}function fo(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function Bt(t,e){return t.getUint8(e)}function V(t,e){return t.getUint16(e,!0)}function v(t,e){return t.getUint32(e,!0)}function Ce(t,e){let r=t.getBigUint64(e,!0);if(r>pm)throw new Error(vo);return Number(r)}var Fr,So,Io,bo,No,Oo,_i,ii,ai,Do,Po,xo,Co,Lo,Fo,Uo,Mo,vo,ko,Bo,zo,Ti,Ho,oi,ci,li,Yo,Wo,Go,Ur,Vo,Xo,jo,Zo,Ko,cm,lm,fm,lu,um,fu,uu,yu,dm,du,pm,Em,mm,pu,qo,fi,zt,ui,uo,Ai=se(()=>{ue();Ge();$t();qs();An();Da();Lt();Ca();Jt();qt();un();ri();Ar();Fr="File format is not recognized",So="End of central directory not found",Io="End of Zip64 central directory locator not found",bo="Central directory header not found",No="Local file header not found",Oo="Zip64 extra field not found",_i="File contains encrypted entry",ii="Encryption method not supported",ai="Split zip file",Do="Overlapping entry found",Po="Entry data out of bounds",xo="Ambiguous archive",Co="Encrypted central directory is not supported",Lo="Unsafe filename",Fo="Invalid strictness (must be 'strict', 'balanced' or 'tolerant')",Uo="Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')",Mo="Invalid maxAppendedDataSize (must be a number greater than or equal to 0)",vo="64-bit value exceeds Number.MAX_SAFE_INTEGER",ko="unsorted central directory",Bo="unknown version needed to extract",zo="compressed patched data",Ti="malformed extra field",Ho="unknown zip64 extensible data",oi="wrapped entries count",ci="appended data",li="prepended data",Yo="prepended central directory",Wo="trailing central directory data",Go="duplicate filename",Ur="mismatched zip64 end of central directory record",Vo="multiple end of central directory records",Xo="mismatched local file header (filename)",jo="mismatched local file header (general purpose bit flag)",Zo="mismatched local file header (compression method)",Ko="mismatched local file header (crc32 or sizes)",cm=63,lm=/^[a-zA-Z]:/,fm=/(^|[\\/])\.\.([\\/]|$)/,lu="utf-8",um="UTF8",fu="cp437",uu=2057,yu=1,dm=[[Dn,4294967295],[za,4294967295],[Ha,4294967295],[Ya,65535]],du={65535:{getValue:v,bytes:4},4294967295:{getValue:Ce,bytes:8}},pm=BigInt(Number.MAX_SAFE_INTEGER),Em=64,mm=1032,pu=0,qo=1,fi=2,zt=class{constructor(e,r={}){Object.assign(this,{reader:new Et(e),options:r,readRanges:{indexes:new Set,sortedRanges:[],pendingRanges:[]}})}async*getEntriesGenerator(e={}){let r=this,{reader:n}=r;if(await ge(n),(n.size===w||!n.readUint8Array)&&(n=new Qe(await ft(n.readable)),await ge(n)),n.size<22)throw new Error(Fr);let s=r.warnings=[],i=Jo(e,r.options),a=i==Pt,o=i!=at,c=Du(ae(r,e,ea),i),l=xm(ae(r,e,Il),i),R=ae(r,e,bl),{endOfDirectoryInfo:p,endOfDirectoryReachingEndCount:f}=await Pu(n,o,c);if(!p)throw await bm(n)?new Error(ai):new Error(So);o&&f>1&&ni(Vo);let m=L(p),h=v(m,12),E=v(m,16),d=p.offset,u=V(m,20),g=d+22+u,_=n.size-g;_>c&&ni(ci),_>0&&Te(s,ci);let A=V(m,4),T=n.lastDiskNumber||0,y=V(m,6),S=V(m,10),I=0,N,F,H,q,$=56,Z,W=E==4294967295||h==4294967295||S==65535||y==65535;if(E!=4294967295&&y!=65535&&(E+=Mr(n,y)),W){let J=p.offset>=20?await re(n,p.offset-20,20):j,b=L(J);if(J.length==20&&v(b,0)==117853008){E=Mr(n,v(b,4))+Ce(b,8);let Y=await re(n,E,56),Q=L(Y),Ee=p.offset-20-56;if((Y.length<56||v(Q,0)!=101075792)&&E!=Ee&&Ee>=0){let Pe=E;E=Ee,E>Pe&&(I=E-Pe),Y=await re(n,E,56),Q=L(Y)}if(Y.length<56||v(Q,0)!=101075792)throw new Error(Io);if(H=!0,q=Ce(Q,4)>44,q){let Pe=Math.min(Ce(Q,4)-44,n.size-E-56);if(Pe>0){$+=Pe;let Ze=await re(n,E+56,Pe);Z=Rm(Ze)}}A==65535?A=v(Q,16):A!=v(Q,16)&&et(a,s,Ur),y==65535?y=v(Q,20):y!=v(Q,20)&&et(a,s,Ur),S==65535?S=Ce(Q,32):S!=Ce(Q,32)&&et(a,s,Ur),h==4294967295?h=Ce(Q,40):h!=Ce(Q,40)&&et(a,s,Ur),E=Mr(n,y)+Ce(Q,48)+I}}let U=h,ne=p.offset-(H?$+20:0);if(E>=n.size&&(I=n.size-E-h-22,E=n.size-h-22),T!=A)throw new Error(ai);if(E<0)throw new Error(Fr);let B=0,X=await re(n,E,h),M=L(X);if(h){if(X.length<4)throw new Error(Fr);let J=ne-h;if(E!=J&&y==A){let b=v(M,B)==33639248||!!(Z&&Z.compressedSize)||co(M),Y=!b;if(!Y&&J>=0&&J+4<=n.size){let Q=await re(n,J,4);Y=v(L(Q),0)==33639248}if(Y){let Q=E;E=J,E>Q&&(I+=E-Q,N=b),X=await re(n,E,h),M=L(X)}}}let G=ne-E;if(h!=G&&G>=0&&y==A&&(h=G,X=await re(n,E,h),M=L(X)),E<0||E>=n.size)throw new Error(Fr);r.directoryOffset=E,r.directoryLength=U;let pe=Au(r,e,Nl),me,nt;if(pe&&S&&X.length>=4&&v(M,0)!=33639248&&(q||co(M))){let J=gm(Z,U,X.length);nt=X.subarray(J),X=await pe(X.subarray(0,J),Z),M=L(X),U=X.length,me=!0}Z&&!me&&(X.length<4||v(M,0)==33639248)&&Te(s,Ho),F=E;let Ue=ae(r,e,Qc),Me=ae(r,e,$c),je=new Set,be,Ne=-1,Oe=!a&&!H;!S&&Oe&&(S=Eu(M,X,B),S&&Te(s,oi));for(let J=0;J<S;J++){let b=new uo(n,r.options);if(B+46>X.length||v(M,B)!=33639248)throw J==0&&!me&&(q||co(M))?new Error(Co):new Error(bo);Iu(b,M,B+6);let Y=!!b.bitFlag.languageEncodingFlag,Q=B+46,Pe=Q+b.filenameLength+b.extraFieldLength,Ze=V(M,B+4),Wt=Ze>>8==0,Xr=Ze>>8==3,Gt=V(M,B+32),He=Pe+Gt,Tt=new Uint8Array(X.subarray(Q,He)),st=Tt.subarray(0,b.filenameLength),de=Tt.subarray(b.filenameLength+b.extraFieldLength),Ae=Y||!Ue&&Oa(st),Kn=Y||!Me&&Oa(de),At=v(M,B+38),yt=At&255,qn={readOnly:!!(yt&1),hidden:!!(yt&2),system:!!(yt&4),directory:!!(yt&16),archive:!!(yt&32)},Hi=v(M,B+42),jr=Au(r,e,el)||_n,Vt=Ae?lu:Ue||fu,St=Kn?lu:Me||fu,he=jr(st,Vt,hs);if(he===w&&(he=_n(st,Vt)),R){let ke=R(he);ke!==w&&(he=ke)}if(Cm(he,l)){let ke=new Error(Lo);throw ke.filename=he,ke}let Zr=jr(de,St,gs);Zr===w&&(Zr=_n(de,St)),Object.assign(b,{index:J,decryptedDirectory:me,versionMadeBy:Ze,msDosCompatible:Wt,zip64:!1,compressedSize:0,uncompressedSize:0,commentLength:Gt,offset:Hi,diskNumberStart:V(M,B+34),internalFileAttributes:V(M,B+36),externalFileAttributes:At,msdosAttributesRaw:yt,msdosAttributes:qn,rawFilename:st,filenameUTF8:Ae,commentUTF8:Kn,rawExtraField:Tt.subarray(b.filenameLength,b.filenameLength+b.extraFieldLength),rawComment:de,filename:he,comment:Zr}),bu(b,b,M,B+6)&&Te(s,Ti,he),b.offset+=I;let Xt=Mr(n,b.diskNumberStart)+b.offset;F=Math.min(Xt,F),Xt<Ne&&Te(s,ko,he),Ne=Xt,(b.version&255)>cm&&Te(s,Bo,he),(b.rawBitFlag&32)==32&&Te(s,zo,he),je.has(b.filename)&&(be=!0),je.add(b.filename);let It=b.externalFileAttributes>>16&65535;b.unixMode===w&&(It&16877)!=0&&(b.unixMode=It);let Jn=!!(b.unixMode&2048),Ke=!!(b.unixMode&1024),Qn=!!(b.unixMode&512),yc=((b.unixMode===w?It:b.unixMode)&61440)==40960,lp=!yc&&(b.unixMode!==w?(b.unixMode&73)!=0:Xr&&(It&73)!=0),fp=b.unixMode!==w&&(b.unixMode&61440)==16384,up=(It&61440)==16384;Object.assign(b,{setuid:Jn,setgid:Ke,sticky:Qn,symlink:yc,unixExternalUpper:It,executable:lp,directory:fp||up||Wt&&qn.directory||b.filename.endsWith("/"),zipCrypto:b.encrypted&&!b.extraFieldAES});let Kr=new mt(b);if(Kr.getData=(ke,$n)=>b.getData(ke,Kr,r.readRanges,$n),Kr.arrayBuffer=async ke=>{let $n=new TransformStream,Ic=ft($n.readable).then(dp=>dp.arrayBuffer());return Ic.catch(()=>{}),await b.getData($n,Kr,r.readRanges,Object.assign({},ke,{preventClose:!1})),Ic},B=He,J==S-1&&Oe){let ke=Eu(M,X,B);ke&&(S+=ke,Te(s,oi))}let{onprogress:Sc}=e;if(Sc)try{await Sc(J+1,S,new mt(b))}catch{}yield Kr}let oe=B,De=lo(X.subarray(B))||(me?lo(nt):w);if(!De&&!me){let J=E+B,b=Math.min(ne-J,65541);b>=6&&(De=lo(await re(n,J,b)))}De&&(r.digitalSignature=De,oe=B+6+De.length),(B!=U&&oe!=U||!me&&B!=h&&oe!=h)&&et(a,s,Wo),be&&et(a,s,Go);let ve=ae(r,e,tl),fe=ae(r,e,rl),te=(a||ve)&&S&&F==4&&await Nm(n)?4:0;return a&&(I||S&&F>te)&&ni(li),(I||S&&F>4)&&Te(s,li),N&&Te(s,Yo),ve&&(r.prependedData=F>te?await re(n,te,F-te):j),r.comment=u?await re(n,d+22,u):j,fe&&(r.appendedData=g<n.size?await re(n,g,n.size-g):j),!0}async getEntries(e={}){let r=[];for await(let n of this.getEntriesGenerator(e))r.push(n);return r}async close(){let{reader:e}=this;!e.readUint8Array&&e.readable&&!e.readable.locked&&await e.readable.cancel()}[os](){return this.close()}},ui=class{constructor(e={}){let r,{readable:n,writable:s}=new TransformStream({start(c){r=c}}),i=new zt(n,e),a=i.getEntriesGenerator(),o=new Set;this.readable=new ReadableStream({async pull(c){let{done:l,value:R}=await a.next();if(l)return c.close();let p=hm(R,o),f={...R,readable:p.readable};delete f.getData,Object.defineProperties(f,{localDirectory:{get:()=>R.localDirectory,enumerable:!0},warnings:{get:()=>R.warnings,enumerable:!0}}),c.enqueue(f)},async cancel(c){let l=Array.from(o);o.clear(),r.error(c),await Promise.allSettled(l.map(R=>R.cancel(c))),await Promise.allSettled([a.return(),i.close()])}}),this.writable=s}};uo=class{constructor(e,r){Object.assign(this,{reader:e,options:r})}async getData(e,r,n,s={}){let i=this,a=ot(),{reader:o,index:c,offset:l,diskNumberStart:R,extraFieldAES:p,extraFieldZip64:f,compressionMethod:m,bitFlag:h,rawBitFlag:E,crc32:d,rawLastModDate:u,uncompressedSize:g,compressedSize:_}=i,{dataDescriptor:A}=h,T=r.localDirectory={},y=r.warnings=[],S=Mr(o,R)+l,I=await re(o,S,30),N=L(I),F=ae(i,s,cs),H=ae(i,s,ls),q=_r(ae(i,s,sn)),$=!!q,Z=q===!0;if(ws(F,H),F=F&&F.length?F:w,H=H&&H.length?H:w,p&&p.originalCompressionMethod!=99)throw new Error(ut);if(I.length<30||v(N,0)!=67324752)throw new Error(No);Iu(T,N,4);let{extraFieldLength:W,filenameLength:U}=T,ne=T.dataOffset=S+30+U+W,B=ae(i,s,ol),X=Jo(s,i.options),M=Dm(B,X),G=ae(i,s,cl),pe=Pm(G===w?B:G,X),me=j;if(pe&&(U||W)){let de=await re(o,S+30,U+W);me=de.subarray(0,U),T.rawExtraField=de.subarray(U)}else T.rawExtraField=W?await re(o,S+30+U,W):j;pe&&(T.rawFilename=me),bu(i,T,N,4,!0)&&Te(y,Ti),Fm(i,T,me,pe,M?w:y);let{lastAccessDate:nt,creationDate:Ue,uid:Me,gid:je}=T;nt&&(r.lastAccessDate=nt),Ue&&(r.creationDate=Ue),Me!==w&&r.uid===w&&(r.uid=Me),je!==w&&r.gid===w&&(r.gid=je);let be=ae(i,s,nl),Ne=i.encrypted&&T.encrypted&&(!Z||be),Oe=Ne&&!p;if(Z||(r.zipCrypto=Oe),Ne&&(T.rawBitFlag&64)==64)throw new Error(ii);let oe=$?w:Ps(m);if(m!=0&&m!=8&&m!=9&&!oe&&!$)throw new Error(ut);if(Ne){if(!Oe&&(p.strength<1||p.strength>3))throw new Error(ii);if(!F&&!H)throw new Error(_i)}if(ne+_>o.size)throw new Error(Po);let De=_,ve=cn(ae(i,s,fs));Kt(ve);let fe=ae(i,s,il),te=ae(i,s,sl);te&&(fe=!0);let{onstart:J,onprogress:b,onend:Y}=s,Q=m!=0&&!$,Ee=$?_-Ln(Ne,Oe,p&&p.strength):g,Pe=m==9,Ze=ae(i,s,ds);Pe&&(Ze=!1);let Wt=ae(i,s,fl),Xr=(Wt===w?ae(i,s,ll):Wt)&&!$&&(!Ne||Oe||p&&p.vendorVersion==yu),Gt={options:{codecType:zs,password:F,rawPassword:H,zipCrypto:Oe,encryptionStrength:p&&p.strength,checkCrc32:Xr,checkAuthenticationCode:ae(i,s,ul),passwordVerification:Oe&&(A?u>>>8&255:d>>>24&255),outputSize:Ee,crc32:d,compressed:Q,encrypted:Ne,useWebWorkers:ae(i,s,us),useCompressionStream:Ze,transferStreams:ae(i,s,ps),deflate64:Pe,format:oe?oe.format:w,codecURI:oe?oe.codecURI:w,compressionMethod:m,rawBitFlag:E,checkPasswordOnly:be},config:a,streamOptions:{signal:ve,size:De,onstart:J,onprogress:b,onend:Y}};fe&&await ym({reader:o,fileEntry:r,index:c,offset:S,crc32:d,compressedSize:_,uncompressedSize:g,dataOffset:ne,dataDescriptor:A||T.bitFlag.dataDescriptor,extraFieldZip64:f||T.extraFieldZip64,readRanges:n});let He,Tt,st;try{if(!te){be&&(e=new WritableStream),e=new xr(e),await ge(e,Om(Ee,_,Q)),{writable:He}=e;let de=ze(o.createReadable({offset:ne,size:De})),{outputSize:Ae}=await Ks({readable:de,writable:He},Gt);if(Kt(ve),Ae!=Ee)throw Object.assign(new Error(Je),{outputSize:Ae});e.size+=Ae}}catch(de){let{outputSize:Ae}=Gt;if(Ae!==w?e.size+=Ae:Re(de)&&de.outputSize!==w&&(e.size+=de.outputSize),!be||!Re(de)||de.message!=lt)throw Tt=de,st=!0,de}finally{if(!(!Tn(e)&&ae(i,s,Es))&&He&&!He.locked){let Ae=He.getWriter();if(st)try{await Ae.abort(Tt)}catch{}else await Ae.close()}}return be||te?w:e.getData?e.getData():He}}});var Yi="0.1.2";var mr="h5p-pkg-v0-";var it="__archive__";var bc="h5p-player";var qr="packages",hr="https://chunks.h5p-player.invalid/";function bt(t,e){let r=e.end-e.start+1,n=0,s=0,i=new TransformStream({transform(a,o){if(s>=r)return;let c=n;if(n+=a.length,n<=e.start)return;let l=Math.max(0,e.start-c),R=Math.min(a.length,l+(r-s)),p=a.subarray(l,R);s+=p.length,o.enqueue(p),s>=r&&o.terminate()}});return t.pipeTo(i.writable).catch(()=>{}),i.readable}var mp=/^h5p:([^:]+):/;async function es(){let t=new Set,e=typeof navigator>"u"?void 0:navigator.locks;if(!e?.query)return t;try{let{held:r=[]}=await e.query();for(let n of r){let s=n.name?mp.exec(n.name):null;s&&t.add(s[1])}}catch{}return t}var hp="/__meta__",gp="/__forward__",Vi="__forward_index__",Rp=32;function Qr(t){return t.split("/").map(encodeURIComponent).join("/")}function Jr(t){return`${mr}${t}`}function Nc(t,e){return`${hr}${t}/whole/${Qr(e)}`}function Wi(t,e,r){return`${hr}${t}/chunk/${Qr(e)}/${r}`}function Oc(t,e){return`${hr}${t}/chunk/${Qr(e)}${hp}`}function Dc(t){return`${hr}${t}/chunk/${Qr(it)}${gp}`}function $r(t){return t instanceof DOMException&&(t.name==="QuotaExceededError"||t.name==="NS_ERROR_DOM_QUOTA_REACHED")}var Nt=class extends Error{constructor(e="Not enough storage to cache this package"){super(e),this.name="QuotaError"}};function Pc(t){return{first:Math.floor(t.start/8388608),last:Math.floor(t.end/8388608)}}function xc(t,e){let r=t*8388608;return{from:Math.max(0,e.start-r),to:Math.min(8388608,e.end-r+1)}}var Ye=class{constructor(e){this.cachePromise=null;this.pkgId=e}cache(){return this.cachePromise??=caches.open(Jr(this.pkgId)),this.cachePromise}async getWhole(e){return(await this.cache()).match(Nc(this.pkgId,e))}async putWhole(e,r,n,s){let i=new Headers({"content-type":n});s!==void 0&&i.set("content-length",String(s)),await this.write(Nc(this.pkgId,e),()=>new Response(r(),{headers:i}))}async getMeta(e){let n=await(await this.cache()).match(Oc(this.pkgId,e));if(n)try{return await n.json()}catch{return}}async setMeta(e,r){await this.write(Oc(this.pkgId,e),()=>new Response(JSON.stringify(r),{headers:{"content-type":"application/json"}})),Fc({pkgId:this.pkgId,entry:e,meta:r})}async discardChunks(e){let r=await this.cache(),n=`${hr}${this.pkgId}/chunk/${Qr(e)}/`,s=(await r.keys()).filter(i=>i.url.startsWith(n)&&/^\d+$/.test(i.url.slice(n.length)));await Promise.all(s.map(i=>r.delete(i)))}async putChunk(e,r,n){let s=n.slice();await this.write(Wi(this.pkgId,e,r),()=>new Response(s.buffer,{headers:{"content-type":"application/octet-stream"}}))}async getChunk(e,r){let s=await(await this.cache()).match(Wi(this.pkgId,e,r));if(s)return new Uint8Array(await s.arrayBuffer())}readRange(e,r,n){let{first:s,last:i}=Pc(r),a=s,o=null,c=this;return new ReadableStream({async pull(l){for(;;){if(o){let{done:h,value:E}=await o.read();if(!h){l.enqueue(E);return}o=null,a+=1}if(a>i){l.close();return}if(n){let h=Math.min((a+1)*8388608,r.end+1);if(!await n(h)){l.error(new Error(`Extraction of ${e} stalled before byte ${h}`));return}}let R=await c.chunkBody(e,a);if(!R){l.error(new Error(`Missing chunk ${a} of ${e}`));return}let{from:p,to:f}=xc(a,r);o=(p===0&&f>=8388608?R:bt(R,{start:p,end:f-1})).getReader()}},async cancel(l){await o?.cancel(l)}},{highWaterMark:0})}async chunkBody(e,r){return(await(await this.cache()).match(Wi(this.pkgId,e,r)))?.body??void 0}async readRangeBytes(e,r){let n=new Uint8Array(r.end-r.start+1),{first:s,last:i}=Pc(r),a=0;for(let o=s;o<=i;o+=1){let c=await this.getChunk(e,o);if(!c)throw new Error(`Missing chunk ${o} of ${e}`);let{from:l,to:R}=xc(o,r),p=c.subarray(l,Math.min(R,c.length));n.set(p,a),a+=p.length}return a===n.length?n:n.subarray(0,a)}getArchiveMeta(){return this.getMeta(it)}async getForwardIndex(){let r=await(await this.cache()).match(Dc(this.pkgId));if(r)try{return await r.json()}catch{return}}async setForwardIndex(e){await this.write(Dc(this.pkgId),()=>new Response(JSON.stringify(e),{headers:{"content-type":"application/json"}})),Fc({pkgId:this.pkgId,entry:Vi,meta:{size:null,available:e.parsedTo,complete:e.done}})}readArchiveRange(e){return this.readRangeBytes(it,e)}async write(e,r){let n=await this.cache();for(let s=0;;s+=1){let i=r();try{await n.put(e,i);return}catch(a){if(i.body?.cancel().catch(()=>{}),!$r(a))throw a;if(s>=Rp)throw new Nt;if(!await wp(this.pkgId))throw new Nt}}}async destroy(){this.cachePromise=null,await caches.delete(Jr(this.pkgId))}},Gi=null;function Uc(t){Gi=t}var Mc=null;function vc(t){Mc=t}async function wp(t){let e=Gi?await Gi(t):await Tp(t);return e?(await _p(Jr(e)),await caches.delete(Jr(e)),await Mc?.(e),!0):!1}async function _p(t){if(!await caches.has(t))return;let e=await caches.open(t),r=await e.keys();await Promise.all(r.map(n=>e.delete(n)))}async function Tp(t){let[e,r]=await Promise.all([caches.keys(),es()]),n=Jr(t),s=e.find(i=>i.startsWith(mr)&&i!==n&&!r.has(i.slice(mr.length)));return s?s.slice(mr.length):null}var Ap="h5p-player-watermark",Cc,Lc;function kc(){if(typeof BroadcastChannel!="function")return null;let t=new BroadcastChannel(Ap);return t.unref?.(),t}function Fc(t){Cc??=kc();try{Cc?.postMessage(t)}catch{}}function en(t,e,r){Lc??=kc();let n=Lc;if(!n)return()=>{};let s=i=>{let a=i.data;a?.pkgId===t&&a.entry===e&&r(a)};return n.addEventListener("message",s),()=>n.removeEventListener("message",s)}async function Bc(){let e=(await caches.keys()).filter(r=>/^h5p-pkg-v(\d+)-/.test(r)&&!r.startsWith(mr));return await Promise.all(e.map(r=>caches.delete(r))),e}var Ot=null;function zc(t,e){Ot===e&&(Ot=null),t.close()}function Sp(){if(Ot)return Ot;let t=new Promise((e,r)=>{let n=indexedDB.open(bc,1);n.onupgradeneeded=()=>{let s=n.result;s.objectStoreNames.contains(qr)||s.createObjectStore(qr,{keyPath:"pkgId"}).createIndex("lastPlayed","lastPlayed")},n.onsuccess=()=>{let s=n.result;s.onversionchange=()=>zc(s,t),s.onclose=()=>zc(s,t),e(s)},n.onerror=()=>r(n.error)});return Ot=t,t.catch(()=>{Ot===t&&(Ot=null)}),t}function Ip(t){return t instanceof DOMException&&(t.name==="InvalidStateError"||t.name==="NotFoundError"||t.name==="TransactionInactiveError")}function ts(t){return new Promise((e,r)=>{t.onsuccess=()=>e(t.result),t.onerror=()=>r(t.error)})}async function Hc(t,e){let n=(await Sp()).transaction(qr,t),s=await e(n.objectStore(qr));return await new Promise((i,a)=>{n.oncomplete=()=>i(),n.onerror=()=>a(n.error),n.onabort=()=>a(n.error)}),s}async function rs(t,e){try{return await Hc(t,e)}catch(r){if(!Ip(r))throw r;return Ot=null,Hc(t,e)}}function Rr(t){return rs("readonly",e=>ts(e.get(t)))}function ns(t){return rs("readwrite",async e=>{await ts(e.put(t))})}function Yc(t){return rs("readwrite",async e=>{await ts(e.delete(t))})}function bp(){return rs("readonly",t=>ts(t.getAll()))}async function Wc(t){let e=await Rr(t);e&&(e.lastPlayed=Date.now(),await ns(e))}async function ss(t,e){let r=await Rr(t);if(!r)return;let n={...r,...e};return await ns(n),n}async function Gc(){return(await bp()).sort((e,r)=>e.lastPlayed-r.lastPlayed)}async function Np(t,e={}){let[r,n]=await Promise.all([(e.packagesByAge??Gc)(),(e.busyPackages??es)()]);return r.find(s=>s.pkgId!==t&&!n.has(s.pkgId))?.pkgId??null}function Xc(t){Uc(e=>Np(e)),vc(async e=>{t?.(e),await Yc(e)})}var Op=/[\u0000-\u001f\u007f]/;function is(t){if(!t||Op.test(t))return null;let e=t.replace(/\\/g,"/");if(e.startsWith("/")||/^[a-zA-Z]:/.test(e))return null;let r=[];for(let n of e.split("/"))if(!(n===""||n===".")){if(n==="..")return null;r.push(n)}return r.length===0?null:r.join("/")}function jc(t){let e;try{e=decodeURIComponent(t)}catch{return null}return is(e)}function Zc(t){let e=new Map,r=[];for(let n of t){if(n.directory)continue;let s=is(n.filename);if(s===null||e.has(s)){r.push(n.filename);continue}e.set(s,n)}return{index:e,rejected:r}}var Dp={js:"text/javascript; charset=utf-8",mjs:"text/javascript; charset=utf-8",json:"application/json; charset=utf-8",css:"text/css; charset=utf-8",html:"text/html; charset=utf-8",htm:"text/html; charset=utf-8",txt:"text/plain; charset=utf-8",xml:"application/xml; charset=utf-8",csv:"text/csv; charset=utf-8",vtt:"text/vtt; charset=utf-8",srt:"application/x-subrip; charset=utf-8",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",svg:"image/svg+xml",webp:"image/webp",avif:"image/avif",bmp:"image/bmp",ico:"image/x-icon",mp3:"audio/mpeg",m4a:"audio/mp4",aac:"audio/aac",oga:"audio/ogg",ogg:"audio/ogg",wav:"audio/wav",weba:"audio/webm",flac:"audio/flac",mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",ogv:"video/ogg",mov:"video/quicktime",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf",eot:"application/vnd.ms-fontobject",pdf:"application/pdf"},Pp=new Set(["js","mjs","json","css","html","htm","txt","xml","csv","vtt","srt","svg"]);function Kc(t){let e=t.slice(t.lastIndexOf("/")+1),r=e.lastIndexOf(".");return r<=0?"":e.slice(r+1).toLowerCase()}function Xi(t){return Dp[Kc(t)]??"application/octet-stream"}function qc(t){return Pp.has(Kc(t))}var ie=class extends Error{constructor(e,r,n){super(r,n),this.name="PlayerError",this.code=e,this.missingLibraries=n?.missingLibraries}};function tn(t,e){if(!t)return"none";let r=/^bytes=(\d*)-(\d*)$/.exec(t.trim());if(!r)return"none";let[,n,s]=r;if(n===""&&s==="")return"none";if(n===""){let o=Number(s);return o===0?"unsatisfiable":{start:Math.max(0,e-o),end:e-1}}let i=Number(n);if(i>=e)return"unsatisfiable";let a=s===""?e-1:Math.min(Number(s),e-1);return a<i?"unsatisfiable":{start:i,end:a}}function rn(t,e){return`bytes ${t.start}-${t.end}/${e}`}var ji=class{constructor(e,r){this.descriptor=e;this.size=r;this.received=0}counted(e){return e.pipeThrough(new TransformStream({transform:(r,n)=>{this.received+=r.length,n.enqueue(r)}}))}async fetchRange(e){let r=await fetch(this.descriptor.url,{headers:{Range:`bytes=${e.start}-${e.end}`},cache:"no-store"});if(r.status!==206&&r.status!==200)throw new ie("network",`Range request failed with ${r.status}`);return r}async read(e){let r=await this.fetchRange(e);if(r.status!==200){let n=new Uint8Array(await r.arrayBuffer());return this.received+=n.length,n}if(!r.body)throw new ie("network","Range response had no body");return new Uint8Array(await new Response(bt(this.counted(r.body),e)).arrayBuffer())}async stream(e){let r=await this.fetchRange(e);if(!r.body)throw new ie("network","Range response had no body");let n=this.counted(r.body);return r.status===200?bt(n,e):n}},Zi=class{constructor(e,r,n){this.descriptor=e;this.size=r;this.store=new Ye(n)}read(e){return this.store.readRangeBytes(it,e)}async stream(e){return this.store.readRange(it,e)}},Ki=class{constructor(e,r){this.descriptor=e;this.blob=r}get size(){return this.blob.size}async read(e){let r=this.blob.slice(e.start,e.end+1);return new Uint8Array(await r.arrayBuffer())}async stream(e){return this.blob.slice(e.start,e.end+1).stream()}};async function qi(t,e,r,n={}){switch(e.type){case"range-http":return new ji(e,e.size);case"chunked":{let s=await new Ye(t).getArchiveMeta();if(!s||!s.complete&&!n.partial)throw new ie("bad-archive","Archive has not finished downloading");return new Zi(e,s.size??s.available,t)}case"file":{if(!r)throw new ie("bad-archive","The picked file is no longer available");return new Ki(e,r)}}}Ge();var _s=new Uint8Array(288);_s.fill(8,0,144),_s.fill(9,144,256),_s.fill(7,256,280),_s.fill(8,280,288),new Uint8Array(30).fill(5);var ct="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xl=t=>t({workerURI:e=>{let r="text/javascript",n=`!function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";const{Array:t,Object:n,Number:e,Math:o,Error:r,Uint8Array:c,Uint16Array:s,Uint32Array:a,Int32Array:i,Map:f,DataView:u,Promise:w,TextEncoder:l,crypto:d,postMessage:p,TransformStream:h,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,b="undefined",k="function",z=new c,C=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let n=t;for(let t=0;t<8;t++)n=1&n?n>>>1^3988292384:n>>>1;C[0][t]=n}for(let t=0;t<256;t++)for(let n=1;n<8;n++){const e=C[n-1][t];C[n][t]=e>>>8^C[0][255&e]}const[I,M,A,E,R,x,P,D]=C;class F{constructor(t){this.o=t||-1}append(t){let n=0|this.o;const e=0|t.length;let o=0;if(e>=8&&t.buffer){const r=new u(t.buffer,t.byteOffset,e),c=e-8;for(;o<=c;o+=8){const t=n^r.getInt32(o,!0),e=r.getInt32(o+4,!0);n=D[255&t]^P[t>>>8&255]^x[t>>>16&255]^R[t>>>24&255]^E[255&e]^A[e>>>8&255]^M[e>>>16&255]^I[e>>>24&255]}}for(;o<e;o++)n=n>>>8^I[255&(n^t[o])];this.o=n}get(){return~this.o}}class U extends h{constructor(){let t;const n=new F;super({transform(t,e){n.append(t),e.enqueue(t)},flush(){const e=new c(4);new u(e.buffer).setUint32(0,n.get()),t.value=e}}),t=this}}function B(t,n){const e=new c(t.length+n.length);return e.set(t),e.set(n,t.length),e}function W(t){return new u(t.buffer,t.byteOffset,t.byteLength)}const O=64,V=20,K=new c([128]),T=new c(1),_=new i([1732584193,4023233417,2562383102,271733878,3285377520]),j=new c(256),H=new i(256),L=new i(256),Z=new i(256),N=new i(256);let q=!1;function G(t,n){!function(){if(!q){let t=1,n=1;do{t=255&(t^t<<1^(128&t?27:0)),n=255&(n^n<<1),n=255&(n^n<<2),n=255&(n^n<<4),128&n&&(n^=9),j[t]=255&(n^(n<<1|n>>7)^(n<<2|n>>6)^(n<<3|n>>5)^(n<<4|n>>4)^99)}while(1!=t);j[0]=99;for(let t=0;t<256;t++){const n=j[t],e=Y(n),o=e<<24|n<<16|n<<8|e^n;H[t]=o,L[t]=o>>>8|o<<24,Z[t]=o>>>16|o<<16,N[t]=o>>>24|o<<8}q=!0}}();const e=new i(60),o=function(t,n){const e=t.length>>2,o=e+6,r=4*(o+1);let c=1;for(let o=0;o<e;o++)n[o]=t[4*o]<<24|t[4*o+1]<<16|t[4*o+2]<<8|t[4*o+3];for(let t=e;t<r;t++){let o=n[t-1];t%e==0?(o=Q(o<<8|o>>>24)^c<<24,c=Y(c)):e>6&&t%e==4&&(o=Q(o)),n[t]=n[t-e]^o}return o}(t,e),r=new i(4),c=J(n);let s=0,a=0,f=0,w=0;return{process(t,n){n&&c.update(t,0,t.length),function(t){const n=new u(t.buffer,t.byteOffset,t.byteLength),e=t.length;let o=0;for(;o+16<=e;o+=16)l(),n.setInt32(o,n.getInt32(o)^r[0]),n.setInt32(o+4,n.getInt32(o+4)^r[1]),n.setInt32(o+8,n.getInt32(o+8)^r[2]),n.setInt32(o+12,n.getInt32(o+12)^r[3]);if(o<e){l();for(let n=0;o<e;o++,n++)t[o]^=r[n>>2]>>>24-8*(3&n)}}(t),n||c.update(t,0,t.length)},digest:()=>c.digest()};function l(){s=s+1|0,s||(a=a+1|0,a||(f=f+1|0,f||(w=w+1|0)));let t=X(s)^e[0],n=X(a)^e[1],c=X(f)^e[2],i=X(w)^e[3],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[4],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[5],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[6],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[7];t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[8],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[9],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[10],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[11],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[12],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[13],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[14],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[15],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[16],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[17],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[18],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[19],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[20],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[21],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[22],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[23],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[24],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[25],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[26],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[27],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[28],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[29],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[30],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[31],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[32],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[33],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[34],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[35],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[36],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[37],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[38],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[39];let h=40;o>10&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[40],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[41],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[42],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[43],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[44],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[45],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[46],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[47],h=48),o>12&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[48],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[49],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[50],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[51],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[52],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[53],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[54],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[55],h=56),r[0]=(j[u>>>24]<<24|j[l>>>16&255]<<16|j[d>>>8&255]<<8|j[255&p])^e[h],r[1]=(j[l>>>24]<<24|j[d>>>16&255]<<16|j[p>>>8&255]<<8|j[255&u])^e[h+1],r[2]=(j[d>>>24]<<24|j[p>>>16&255]<<16|j[u>>>8&255]<<8|j[255&l])^e[h+2],r[3]=(j[p>>>24]<<24|j[u>>>16&255]<<16|j[l>>>8&255]<<8|j[255&d])^e[h+3]}}function J(t){const n=function(){const t=new i(_),n=new i(16),e=new c(O),r=new u(e.buffer),s=new c(8);let a=0,f=0;return{update:w,digest:function(){const n=8*f,e=o.floor(n/4294967296),r=n>>>0;for(w(K,0,1);56!=a;)w(T,0,1);s[0]=e>>>24,s[1]=e>>>16,s[2]=e>>>8,s[3]=e,s[4]=r>>>24,s[5]=r>>>16,s[6]=r>>>8,s[7]=r,w(s,0,8);const i=new c(V),l=new u(i.buffer);for(let n=0;n<t.length;n++)l.setInt32(4*n,t[n]);return t.set(_),a=0,f=0,i}};function w(t,n,o){const c=n+o;if(f+=o,a){for(;n<c&&a<O;)e[a++]=t[n++];a==O&&(l(r,0),a=0)}if(n+O<=c){const e=new u(t.buffer,t.byteOffset,t.byteLength);for(;n+O<=c;n+=O)l(e,n)}for(;n<c;)e[a++]=t[n++]}function l(e,o){for(let t=0;t<16;t++)n[t]=e.getInt32(o+4*t);let r,c=t[0],s=t[1],a=t[2],i=t[3],f=t[4];for(let t=0;t<15;t+=5)f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[t]|0,s=s<<30|s>>>2,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+n[t+1]|0,c=c<<30|c>>>2,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+n[t+2]|0,f=f<<30|f>>>2,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+n[t+3]|0,i=i<<30|i>>>2,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+n[t+4]|0,a=a<<30|a>>>2;f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[15]|0,s=s<<30|s>>>2,r=n[13]^n[8]^n[2]^n[0],r=r<<1|r>>>31,n[0]=r,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+r|0,c=c<<30|c>>>2,r=n[14]^n[9]^n[3]^n[1],r=r<<1|r>>>31,n[1]=r,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+r|0,f=f<<30|f>>>2,r=n[15]^n[10]^n[4]^n[2],r=r<<1|r>>>31,n[2]=r,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+r|0,i=i<<30|i>>>2,r=n[0]^n[11]^n[5]^n[3],r=r<<1|r>>>31,n[3]=r,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+r|0,a=a<<30|a>>>2;for(let t=20;t<40;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+1859775393+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+1859775393+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+1859775393+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+1859775393+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+1859775393+r|0,a=a<<30|a>>>2;for(let t=40;t<60;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s&a|(s|a)&i)+f+2400959708+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c&s|(c|s)&a)+i+2400959708+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f&c|(f|c)&s)+a+2400959708+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i&f|(i|f)&c)+s+2400959708+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a&i|(a|i)&f)+c+2400959708+r|0,a=a<<30|a>>>2;for(let t=60;t<80;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+3395469782+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+3395469782+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+3395469782+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+3395469782+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+3395469782+r|0,a=a<<30|a>>>2;t[0]=t[0]+c|0,t[1]=t[1]+s|0,t[2]=t[2]+a|0,t[3]=t[3]+i|0,t[4]=t[4]+f|0}}(),e=new c(O),r=new c(O);t.length>O&&(n.update(t,0,t.length),t=n.digest());for(let n=0;n<O;n++){const o=n<t.length?t[n]:0;e[n]=54^o,r[n]=92^o}return n.update(e,0,O),{update(t,e,o){n.update(t,e,o)},digest(){const t=n.digest();n.update(r,0,O),n.update(t,0,V);const o=n.digest();return n.update(e,0,O),o}}}function Q(t){return j[t>>>24]<<24|j[t>>>16&255]<<16|j[t>>>8&255]<<8|j[255&t]}function X(t){return t<<24|(65280&t)<<8|t>>>8&65280|t>>>24}function Y(t){return 255&(t<<1^27*(t>>7))}const $=typeof d!=b&&typeof d.getRandomValues==k,tt="Invalid password",nt="zipjs-abort-check-password";function et(t){if($)return d.getRandomValues(t);throw new r("Crypto API not supported")}const ot={name:"PBKDF2"},rt=n.assign({hash:{name:"HMAC"}},ot),ct=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ot),st=["deriveBits"],at=[8,12,16],it=[16,24,32],ft=10,ut=typeof d!=b,wt=ut&&d.subtle;let lt=ut&&typeof wt!=b&&typeof wt.importKey==k&&typeof wt.deriveBits==k,dt=G;class pt extends h{constructor({password:t,rawPassword:n,encryptionStrength:e,checkPasswordOnly:o,checkAuthenticationCode:s=!0}){const a={};super({start(){yt(a,t,n,e)},async transform(t,n){const{password:e,strength:s,l:i,ready:f}=a;if(e?(await async function(t,n,e,o){const c=await vt(t,n,e,kt(o,0,at[n])),s=kt(o,at[n]);if(c[0]!=s[0]||c[1]!=s[1])throw gt(t),new r(tt)}(a,s,e,kt(t,0,at[s]+2)),t=kt(t,at[s]+2),o?(gt(a),n.error(new r(nt))):i()):await f,a.h)return;const u=new c(t.length-ft-(t.length-ft)%16);n.enqueue(St(a,t,u,0,ft,!0))},async flush(t){const{m:n,S:e,ready:o}=a;if(n){if(await o,a.h)return;const i=kt(e,e.length-ft),f=new c(kt(e,0,e.length-ft));n.process(f,!0);const u=n.digest();let w=e.length<ft?1:0;for(let t=0;t<ft;t++)w|=u[t]^i[t];if(w&&s)return void t.error(new r("Invalid authentication code"));t.enqueue(f)}}}),mt(this,a)}}class ht extends h{constructor({password:t,rawPassword:n,encryptionStrength:e}){const o={};super({start(){yt(o,t,n,e)},async transform(t,n){const{password:e,strength:r,l:s,ready:a}=o;let i=z;if(e?(i=await async function(t,n,e){const o=et(new c(at[n]));return B(o,await vt(t,n,e,o))}(o,r,e),s()):await a,o.h)return;const f=new c(i.length+t.length-t.length%16);f.set(i,0),n.enqueue(St(o,t,f,i.length,0,!1))},async flush(t){const{m:n,S:e,ready:r}=o;if(n){if(await r,o.h)return;const s=new c(e);n.process(s,!1);const a=kt(n.digest(),0,ft);t.enqueue(B(s,a))}}}),mt(this,o)}}function yt(t,e,o,r){n.assign(t,{ready:new w(n=>t.l=n),password:bt(e,o),strength:r-1,S:z,h:!1})}function mt(t,e){const o=t.readable.getReader(),r=new y({async pull(t){try{const{value:n,done:e}=await o.read();e?t.close():t.enqueue(n)}catch(t){throw gt(e),o.cancel(t).catch(()=>{}),t}},cancel:t=>(gt(e),o.cancel(t))});n.defineProperty(t,"readable",{get:()=>r})}function St(t,n,e,o,r,s){const{m:a,S:i}=t;i.length&&(n=B(i,n));const f=n.length-r,u=f-f%16;if(e=function(t,n){if(n&&n>t.length){const e=t;(t=new c(n)).set(e,0)}return t}(e,o+u),u){const t=kt(e,o,o+u);t.set(kt(n,0,u)),a.process(t,s)}return t.S=kt(n,u),e}function gt(t){const{m:n}=t;t.h=!0,n&&n.dispose&&n.dispose()}async function vt(t,e,r,s){t.password=null;const a=it[e],i=await async function(t,e,r){if(lt)try{const o=await wt.importKey("raw",t,rt,!1,st);return new c(await wt.deriveBits(n.assign({salt:e},ct),o,8*r))}catch{lt=!1}return function(t,n,e,r){const s=J(t),a=new c(r),i=new c(n.length+4),f=new u(i.buffer);i.set(n);for(let t=1,e=0;e<r;t++,e+=V){f.setUint32(n.length,t),s.update(i,0,i.length);let c=s.digest();const u=c.slice();for(let t=1;t<1e3;t++){s.update(c,0,V),c=s.digest();for(let t=0;t<V;t++)u[t]^=c[t]}a.set(u.subarray(0,o.min(V,r-e)),e)}return a}(t,e,0,r)}(r,s,2*a+2);return t.m=dt(kt(i,0,a),kt(i,a,2*a)),t.h&>(t),kt(i,2*a)}function bt(t,n){return n===v?function(t){if(typeof l==b){t=unescape(encodeURIComponent(t));const n=new c(t.length);for(let e=0;e<n.length;e++)n[e]=t.charCodeAt(e);return n}return(new l).encode(t)}(t):n}function kt(t,n,e){return t.subarray(n,e)}class zt extends h{constructor({password:t,rawPassword:n,passwordVerification:e,checkPasswordOnly:o}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;if(e.password||e.rawPassword){const n=Mt(e,t.subarray(0,12));if(e.password=e.rawPassword=null,0!=(n[11]^e.passwordVerification))throw new r(tt);t=t.subarray(12)}o?n.error(new r(nt)):n.enqueue(Mt(e,t))}})}}class Ct extends h{constructor({password:t,rawPassword:n,passwordVerification:e}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;let o,r;if(e.password||e.rawPassword){e.password=e.rawPassword=null;const n=et(new c(12));n[11]=e.passwordVerification,o=new c(t.length+n.length),o.set(At(e,n),0),r=12}else o=new c(t.length),r=0;o.set(At(e,t),r),n.enqueue(o)}})}}function It(t,e,o,r){n.assign(t,{password:e,rawPassword:o,passwordVerification:r}),function(t,e,o){const r=[305419896,591751049,878082192];if(n.assign(t,{v:r,C:new F(r[0]),I:new F(r[2])}),o)for(let n=0;n<o.length;n++)Et(t,o[n]);else for(let n=0;n<e.length;n++)Et(t,e.charCodeAt(n))}(t,e,o)}function Mt(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,e[o]);return e}function At(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,n[o]);return e}function Et(t,n){let[,e]=t.v;t.C.append([n]);const r=~t.C.get();e=Pt(o.imul(Pt(e+xt(r)),134775813)+1),t.I.append([e>>>24]);const c=~t.I.get();t.v=[r,e,c]}function Rt(t){const n=2|t.v[2];return xt(o.imul(n,1^n)>>>8)}function xt(t){return 255&t}function Pt(t){return 4294967295&t}function Dt(t){if(t instanceof y)return t;const n=t.getReader();return new y({async pull(t){try{const{value:e,done:o}=await n.read();o?t.close():t.enqueue(e)}catch(t){throw n.cancel(t).catch(()=>{}),t}},cancel:t=>n.cancel(t)})}function Ft(t){return Boolean(t)&&"object"==typeof t}const Ut=new f;function Bt(t){return Ut.get(t)}const Wt="Invalid uncompressed size",Ot="Codec out of memory",Vt="Invalid CRC32",Kt="deflate-raw",Tt="gzip",_t=[31,139,8];class jt extends h{constructor(t,{chunkSize:n,CompressionStreamFallback:e,CompressionStream:o}){super({});const{compressed:r,encrypted:c,useCompressionStream:s,zipCrypto:a,computeCrc32:i,level:f,deflate64:w,format:l,compressionMethod:d,inputSize:p}=t,h=this;let y,m,S,g=super.readable;const v=l&&Bt(l),b=Gt(s,o,e),k=i&&r&&!w&&!v&&(!c||a)&&Boolean(b);if(c&&!a||!i||k||(y=new U,g=Qt(g,y)),r)if(v)g=Xt(g,qt(v.CompressionStream,l,{level:f,chunkSize:n,compressionMethod:d,uncompressedSize:p}));else if(k)S=new Ht,g=Xt(g,new b(Tt,{level:f,chunkSize:n})),g=Qt(g,S);else try{g=Jt(g,s,{level:f,chunkSize:n},o,e)}catch(t){if(!s&&e)throw en(t);let n;try{n=new o(Tt)}catch{throw en(t)}g=Xt(g,n),g=Qt(g,new Ht)}c&&(a?g=Qt(g,new Ct(t)):(m=new ht(t),g=Qt(g,m))),Nt(h,g,()=>{c&&!a||!i||(h.crc32=k?S.crc32:new u(y.value.buffer).getUint32(0))})}}class Ht extends h{constructor(){let t,n=10,e=new c(0);super({transform(t,r){if(n){const e=o.min(n,t.length);if(n-=e,!(t=t.subarray(e)).length)return}const c=e.length+t.length;if(c<=8)return void(e=B(e,t));const s=c-8,a=o.min(s,e.length);r.enqueue(B(e.subarray(0,a),t.subarray(0,s-a))),e=B(e.subarray(a),t.subarray(s-a))},flush(){const n=W(e);t.crc32=n.getUint32(0,!0),t.uncompressedSize=n.getUint32(4,!0)}}),t=this}}class Lt extends h{constructor(t,{chunkSize:n,DecompressionStreamFallback:e,DecompressionStream:o}){super({});const{zipCrypto:s,encrypted:a,checkCrc32:i,crc32:f,compressed:l,useCompressionStream:d,deflate64:p,format:h,compressionMethod:m,rawBitFlag:S,outputSize:g}=t;let b,k,z,C=super.readable;if(a&&(s?C=Qt(C,new zt(t)):(k=new pt(t),C=Qt(C,k))),l){const t=new Set,s=h&&Bt(h);let a;if(s)C=Xt(C,qt(s.DecompressionStream,h,{chunkSize:n,compressionMethod:m,rawBitFlag:S,uncompressedSize:g}),t);else{const r=Gt(d,o,e);if(i&&!p&&f!==v&&g!==v&&r)try{a=new r(Tt,{chunkSize:n})}catch{a=v}if(!a)try{C=Jt(C,d,{chunkSize:n,deflate64:p},o,e,t)}catch(t){if(p||g===v||!d&&e)throw en(t);try{a=new o(Tt)}catch{throw en(t)}}}a?(z=!0,C=function(t,n,e,o,s){const a=n.writable.getWriter(),i=n.readable.getReader(),f=o===v?new F:v;let u,l,d=0,p=!1,h=!1;const m=new y({start(t){l=t},pull(){b()},cancel:t=>(h=!0,b(),i.cancel(t))});return async function(){const n=t.getReader();try{const t=new c(10);for(t.set(_t),await a.write(t);;){await g(),await a.ready;const{value:t,done:e}=await tn(n,s);if(e)break;await a.write(t)}f&&await a.write(new c(0));const r=new c(8),i=W(r);i.setUint32(0,f?f.get():o,!0),i.setUint32(4,e,!0),p=!0,await a.write(r),await a.close()}catch(t){await Yt(a,t),await $t(n,t)}}(),async function(){try{for(;;){const{value:t,done:n}=await S();if(n)break;if(d+=t.length,d>e)throw new r(Wt);f&&f.append(t),l.enqueue(t)}h||(h=!0,l.close())}catch(t){!function(t){h||(h=!0,l.error(t),b())}(t),await $t(i,t)}}(),m;function S(){return i.read().catch(t=>{if(p){if(!f)throw rn(t,Vt);if(d!=e)throw rn(t,Wt);return{done:!0}}throw nn(t,s)})}function g(){if(!h&&l.desiredSize<=0)return new w(t=>u=t)}function b(){if(u){const t=u;u=v,t()}}}(C,a,g,f,t)):C=function(t,n){const e=t.getReader();return new y({async pull(t){try{const{value:n,done:o}=await e.read();o?t.close():t.enqueue(n)}catch(t){throw await $t(e,t),nn(t,n)}},cancel:t=>e.cancel(t)})}(C,t)}i&&!z&&(b=new U,C=Qt(C,b)),Nt(this,C,()=>{if(b){const t=new u(b.value.buffer).getUint32(0,!1);if(f!=t)throw new r(Vt)}})}}const Zt=new f;function Nt(t,e,o){e=Qt(e,new h({flush:o})),n.defineProperty(t,"readable",{get:()=>e})}function qt(t,n,e){if(!t)throw new r("Compression method not supported");return new t(n,e)}function Gt(t,n,e){return t&&n?n:e&&e.requiresModule?e:void 0}function Jt(t,n,e,o,r,c){const s=n&&o?o:r||o,a=e.deflate64?"deflate64-raw":Kt;let i;try{i=new s(a,e)}catch(t){if(!n||!r||s==r)throw t;i=new r(a,e)}return Xt(t,i,c)}function Qt(t,n){return Dt(t).pipeThrough(n)}function Xt(t,n,e){const o=n.writable.getWriter(),r=t.getReader();return async function(){try{for(;;){await o.ready;const t=await tn(r,e);if(t.done){await o.close();break}await o.write(t.value)}}catch(t){await Yt(o,t),await $t(r,t)}}(),n.readable}async function Yt(t,n){try{await t.abort(n)}catch{}}async function $t(t,n){try{await t.cancel(n)}catch{}}function tn(t,n){const e=t.read();return n?e.catch(t=>{throw n.add(t),t}):e}function nn(t,n){return n.has(t)?t:rn(t,on(t)?Ot:"Invalid compressed data")}function en(t){return on(t)?rn(t,Ot):t}function on(t){return Ft(t)&&"Z_MEM_ERROR"==t.code}function rn(t,n){const e=new r(n);return e.cause=t,e}const cn="data",sn="deflate";class an extends h{constructor(t,e){super({});const o=this,{codecType:c}=t;let s;c.startsWith(sn)?s=jt:c.startsWith("inflate")&&(s=Lt),o.outputSize=0;let a=0;const i=new s(t,e),f=super.readable,u=new h({transform(t,n){t&&t.length&&(a+=t.length,n.enqueue(t))},flush(){n.assign(o,{inputSize:a})}}),w=new h({transform(n,e){if(n&&n.length&&(e.enqueue(n),o.outputSize+=n.length,t.outputSize!==v&&o.outputSize>t.outputSize))throw new r(Wt)},flush(){const{crc32:t}=i;n.assign(o,{crc32:t,inputSize:a})}});n.defineProperty(o,"readable",{get:()=>f.pipeThrough(u).pipeThrough(i).pipeThrough(w)})}}class fn extends h{constructor(t){const o=[];let r=0,s=0;function a(){const n=new c(t);let e=0;for(;e<t;){const r=o[0],c=t-e;r.length<=c?(n.set(r,e),e+=r.length,o.shift()):(n.set(r.subarray(0,c),e),o[0]=r.subarray(c),e+=c)}return r-=t,n}(!e.isFinite(t)||t<1)&&(t=65536),super({transform(n,e){for(o.push(n),r+=n.length;r>t;)s+=t,e.enqueue(a())},flush(t){r&&(s+=r,t.enqueue(function(t,n){const e=new c(n);let o=0;for(const n of t)e.set(n,o),o+=n.length;return e}(o,r)))}}),n.defineProperty(this,"outputSize",{get:()=>s})}}let un=2;try{typeof navigator!=b&&navigator.hardwareConcurrency&&(un=navigator.hardwareConcurrency)}catch{}const wn=new f,ln=new f,dn=function(){try{return structuredClone(new r)instanceof r}catch{return!1}}();let pn=0;async function hn(t){let n,c,s;try{const{options:a,config:i}=t;if(a.format)try{await async function(t,n){!Ut.has(t)&&n&&function(t,n){const{CompressionStream:e,DecompressionStream:o}=n;if(typeof e!=k&&typeof o!=k)throw new r("Invalid codec module");Ut.set(t,{CompressionStream:e,DecompressionStream:o})}(t,await(import(n)))}(a.format,a.codecURI)}catch(t){if(Ft(t))try{t.codecImportFailed=!0}catch{}throw t}if(i.CompressionStream=self.CompressionStream,i.DecompressionStream=self.DecompressionStream,a.compressed&&!a.format)if(a.useCompressionStream){if(!function(t,n){if(!t)return!1;let e=Zt.get(t);e||(e=new f,Zt.set(t,e));let o=e.get(n);if(o===v){try{new t(n),o=!0}catch{o=!1}e.set(n,o)}return o}(a.codecType.startsWith(sn)?i.CompressionStream:i.DecompressionStream,Kt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{a.useCompressionStream=!0}if(a.encrypted&&!a.zipCrypto)try{await self.initModule(t.config)}catch{}!i.CompressionStreamFallback&&i.CompressionStreamZlib&&(i.CompressionStreamFallback=i.CompressionStreamZlib),!i.DecompressionStreamFallback&&i.DecompressionStreamZlib&&(i.DecompressionStreamFallback=i.DecompressionStreamZlib);const u={highWaterMark:1},l=t.readable?Dt(t.readable):new y({async pull(t){const n=new w(t=>wn.set(pn,t));yn({type:"pull",messageId:pn}),pn=(pn+1)%e.MAX_SAFE_INTEGER;const{value:o,done:r}=await n;t.enqueue(o),r&&t.close()}},u);s=t.writable?function(t){if(t instanceof m)return t;const n=t.getWriter();return new m({write:t=>n.write(t),close:()=>n.close(),abort:t=>n.abort(t)})}(t.writable):new m({async write(t){let n;const o=new w(t=>n=t);ln.set(pn,n),yn({type:cn,value:t,messageId:pn}),pn=(pn+1)%e.MAX_SAFE_INTEGER,await o}},u),n=new an(a,i),c=new fn(function(t){return r="string"==typeof(n=r=t.chunkSize)&&n.trim()?e(n):n,e.isInteger(r)&&r>=1?o.max(r,64):65536;var n,r}(i)),await l.pipeThrough(n).pipeThrough(c).pipeTo(s,{preventClose:!0,preventAbort:!0}),await s.getWriter().close();const{crc32:d,inputSize:p,outputSize:h}=n;yn({type:"close",result:{crc32:d,inputSize:p,outputSize:h}})}catch(t){const n=c?c.outputSize:0;if(Ft(t))try{t.outputSize=n}catch{}if(s&&!s.locked)try{await s.getWriter().close()}catch{}mn(t,n)}}function yn(t){const{value:n}=t;if(n)if(n.length)try{t.value=(e=n,e.byteOffset||e.byteLength!=e.buffer.byteLength?new c(e):e).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var e}function mn(t,n){const{message:e,stack:o,code:c,name:s,outputSize:a,cause:i,codecImportFailed:f}=function(t=new r("Unknown error")){return Ft(t)?t:new r(String(t))}(t),u={message:e,stack:o,code:c,name:s,outputSize:a===v?n:a};if(Ft(i)&&(u.cause={name:i.name,message:i.message}),f&&(u.codecImportFailed=!0),dn)try{return void p({error:u,errorValue:{value:t}})}catch{}p({error:u})}addEventListener("message",({data:t})=>{const{type:n,messageId:e,value:o,done:r}=t;try{if("start"==n&&hn(t),n==cn){const t=wn.get(e);wn.delete(e),t({value:o||new c,done:r})}if("ack"==n){const t=ln.get(e);ln.delete(e),t()}}catch(t){mn(t)}}),p({type:"ready"});const Sn="deflate",gn="deflate-raw",vn="deflate64-raw",bn="gzip",kn=[Sn,gn,bn],zn=[Sn,gn,bn,vn];let Cn,In,Mn,An,En;function Rn(t,n){return-4===n&&(t.code="Z_MEM_ERROR"),t}function xn(t,n,e={}){if(!(t?kn:zn).includes(n))throw new TypeError("Unsupported format: "+n);if(!Cn){const t=new r("WASM module not loaded");throw t.cause=En,t}const s="number"==typeof e.level?e.level:-1,a="number"==typeof e.outBuffer?e.outBuffer:65536,i="number"==typeof e.inBufferSize?e.inBufferSize:65536,f={M:0,in:0,inBufferSize:0,A:0,R:!1};let u,l,d,p,h=!0,S=!1;return function(){try{let e;if(f.M=In(a),f.in=In(i),f.inBufferSize=i,!f.M||!f.in)throw Rn(new r("allocation failed"),-4);if(t?(f.P=Cn.deflate_process,f.D=Cn.deflate_last_consumed,f.F=Cn.deflate_end,f.A=Cn.deflate_new(),e=n===bn?Cn.deflate_init_gzip(f.A,s):n===gn?Cn.deflate_init_raw(f.A,s):Cn.deflate_init(f.A,s)):n===vn?(f.P=Cn.inflate9_process,f.D=Cn.inflate9_last_consumed,f.F=Cn.inflate9_end,f.A=Cn.inflate9_new(),e=Cn.inflate9_init_raw(f.A)):(f.P=Cn.inflate_process,f.D=Cn.inflate_last_consumed,f.F=Cn.inflate_end,f.A=Cn.inflate_new(),e=n===gn?Cn.inflate_init_raw(f.A):n===bn?Cn.inflate_init_gzip(f.A):Cn.inflate_init(f.A)),0!==e)throw Rn(new r("init failed:"+e),e)}catch(t){throw b(f),t}}(),{readable:new y({start(t){u=t},pull(){h=!1,v()},cancel(t){S=!0,p=t,b(f),l.error(t),v()}},{highWaterMark:0}),writable:new m({start(t){l=t},async write(t){if(h&&await new w(t=>d=t),S)throw p;try{!function(t){const n=new c(An.buffer),e=f.P,s=f.D,i=f.M;let u=0;for(;u<t.length;){if(f.R)throw new r("trailing data after the end of the stream");const c=o.min(t.length-u,32768);if((!f.in||f.inBufferSize<c)&&(f.in&&Mn&&(Mn(f.in),f.in=0),f.in=In(c),f.inBufferSize=c,!f.in))throw Rn(new r("allocation failed"),-4);n.set(t.subarray(u,u+c),f.in);const w=e(f.A,f.in,c,i,a,0),l=w>>24&255,d=128&l?l-256:l;if(d<0)throw Rn(new r("process error:"+d),d);const p=16777215&w;p&&g(n.slice(i,i+p));const h=s(f.A);if(1===l)f.R=!0;else if(0===h&&0===p)break;u+=h}}(t)}catch(t){throw b(f),u.error(t),t}},close(){if(S)return;try{!function(){const t=new c(An.buffer),n=f.P,e=f.M;for(;;){const o=n(f.A,0,0,e,a,4),c=o>>24&255,s=128&c?c-256:c;if(s<0)throw Rn(new r("process error:"+s),s);const i=16777215&o;if(i&&g(t.slice(e,e+i)),1===c||0===i)break}}()}catch(t){throw b(f),u.error(t),t}const t=b(f);if(0!==t){const n=Rn(new r("end error:"+t),t);throw u.error(n),n}u.close()},abort(t){b(f),u.error(t)}},{highWaterMark:1})};function g(t){h=!0,u.enqueue(t)}function v(){if(d){const t=d;d=null,t()}}function b(t){let n=0;return t.A&&t.F&&(n=t.F(t.A)),t.A=0,t.in&&Mn&&Mn(t.in),t.in=0,t.M&&Mn&&Mn(t.M),t.M=0,n}}class Pn{constructor(t=Sn,n){return xn(!0,t,n)}}class Dn{constructor(t=Sn,n){return xn(!1,t,n)}}Pn.requiresModule=!0,Dn.requiresModule=!0,Pn.supportedFormats=kn,Dn.supportedFormats=zn;const Fn=65536;let Un,Bn;function Wn(t){return new c(t.memory.buffer)}let On=!1;!function(t={}){const{init:n,U:e}=t,o=t.CompressionStreamFallback||t.CompressionStreamZlib,r=t.DecompressionStreamFallback||t.DecompressionStreamZlib;e&&(dt=e||G),self.initModule=async t=>{n&&await n(t),o&&(t.CompressionStreamFallback=o),r&&(t.DecompressionStreamFallback=r)}}({CompressionStreamFallback:Pn,DecompressionStreamFallback:Dn,U:function(t,n){const e=Un;let o=e?function(t,n,e){Bn||(Bn=t.malloc(Fn));const o=Bn?t.aes_hmac_new():0;if(o){const r=Wn(t);if(r.set(n,Bn),r.set(e,Bn+n.length),t.aes_hmac_init(o,Bn,n.length,Bn+n.length,e.length))return t.aes_hmac_end(o,0),0}return o}(e,t,n):0;if(!o)return G(t,n);const r=Bn;return{process(t,n){for(let c=0;c<t.length;c+=Fn){const s=t.subarray(c,c+Fn),a=Wn(e);a.set(s,r),e.aes_hmac_process(o,r,s.length,n?1:0),s.set(a.subarray(r,r+s.length))}},digest:()=>(e.aes_hmac_end(o,r),o=0,Wn(e).slice(r,r+20)),dispose(){o&&(e.aes_hmac_end(o,0),o=0)}}},init:t=>async function(t,{baseURI:n}){if(!On)try{await async function(t,n){let e,o;try{try{o=new URL(t,n)}catch{}const r=await fetch(o);e=await r.arrayBuffer()}catch(n){if(!t.startsWith("data:application/wasm;base64,"))throw n;e=function(t){const n=t.split(",")[1],e=atob(n),o=e.length,r=new c(o);for(let t=0;t<o;++t)r[t]=e.charCodeAt(t);return r.buffer}(t)}const s=await WebAssembly.instantiate(e);var a;(function(t){if(Cn=t,({malloc:In,free:Mn,memory:An}=Cn),"function"!=typeof In||"function"!=typeof Mn||!An)throw Cn=In=Mn=An=null,new r("Invalid WASM module")})(s.instance.exports),typeof(a=s.instance.exports).aes_hmac_new==k&&(Un=a,Bn=0)}(t,n),On=!0}catch(t){throw function(t){En=t}(t),t}}(t.wasmURI,t)})});
|
|
2
|
+
`;if(typeof n=="string"&&(n=new TextEncoder().encode(n)),e){let s=new Blob([n],{type:r});return URL.createObjectURL(s)}return"data:"+r+";base64,"+(function(s){let i="",a=s.length,o=0;for(;o+2<a;o+=3){let l=s[o]<<16|s[o+1]<<8|s[o+2];i+=ct[l>>18&63]+ct[l>>12&63]+ct[l>>6&63]+ct[63&l]}let c=a-o;if(c===1){let l=s[o]<<16;i+=ct[l>>18&63]+ct[l>>12&63]+"=="}else if(c===2){let l=s[o]<<16|s[o+1]<<8;i+=ct[l>>18&63]+ct[l>>12&63]+ct[l>>6&63]+"="}return i})(n)}});Ge();ue();Lt();qt();Hs();Dr();var Yf={type:"module"},ya="error",TE="messageerror",Wf="abort",Gf,Aa,Vf,Sa=!0;try{Sa=typeof structuredClone==K&&structuredClone(new DOMException("","AbortError")).code!==w}catch{}Bf(AE);function AE(t,e){let{baseURI:r,chunkSize:n,workerStartupTimeout:s}=e,{wasmURI:i}=e;if(!t.interface){typeof i==K&&(i=i());let a;try{a=Xs(t.workerURI,r,t)}catch{return _a(t),Ta(t,e)}Object.assign(t,{worker:a,workerAlive:!1,terminated:!1,startupError:null,interface:{run:async()=>{try{return await yE(t,{chunkSize:n,wasmURI:i,baseURI:r,workerStartupTimeout:s})}catch(o){if(o&&o.workerStartupFailed)return _a(t),Xf(t),Vs(t,e);if(o&&o.codecImportFailed){if(t.reader)return Xf(t),Vs(t,e);t.onTaskFinished()}throw o}}}})}return t.interface}async function yE(t,e){if(!t.worker){let{startupError:m}=t;t.startupError=null;let h=m||new Error(rr);throw h.workerStartupFailed=!0,h}let r,n,s=new Promise((m,h)=>{r=m,n=E=>{let{outputSize:d,workerOptions:u}=t;if(u.outputSize=d,Re(E))try{E.outputSize=d}catch{}h(E)}});Object.assign(t,{reader:null,writer:null,outputSize:0,destinationFailed:!1,destinationError:null,resolveResult:r,rejectResult:n,result:s});let{readable:i,options:a}=t,{writable:o,closed:c,abortPipe:l}=SE(t.writable,t),R;try{R=Ia({type:Lf,options:a,config:e,readable:i,writable:o},t)}catch(m){l();try{await c}catch{}throw t.onTaskFinished(),m}R||Object.assign(t,{reader:i.getReader(),writer:o.getWriter()});let{workerStartupTimeout:p}=e;!t.workerAlive&&Number.isFinite(p)&&p>=0&&(t.startupTimeout=setTimeout(()=>IE(t),p));try{let m=await s;return await f(),await c,m}catch(m){await f(),l();try{await c}catch{}let{outputSize:h,workerOptions:E,destinationFailed:d,destinationError:u}=t;E.outputSize=h;let g=Re(m)&&(m.codecImportFailed||m.workerStartupFailed),_=d&&!g?u:m;if(Re(_))try{_.outputSize=h}catch{}throw _}async function f(){if(!R&&!o.locked)try{await o.getWriter().close()}catch{}}}function SE(t,e){let r=new AbortController,n,{writable:s,readable:i}=new TransformStream({transform(c,l){e.outputSize+=c.length,l.enqueue(c)}}),a=i.pipeTo(t,{preventClose:!0,preventAbort:!0,signal:r.signal});a.catch(c=>{n||Object.assign(e,{destinationFailed:!0,destinationError:c})});let{signal:o}=e.workerOptions.streamOptions;if(o){let c=()=>r.abort(o.reason),l=()=>o.removeEventListener(Wf,c);o.addEventListener(Wf,c),a.then(l,l)}return{writable:s,closed:a,abortPipe:()=>{n=!0,r.abort()}}}function Xf(t){let{reader:e}=t;e&&e.releaseLock(),t.reader=null,t.writer=null}function ba(t){let{worker:e}=t;if(e)try{e.terminate()}catch{}t.interface=null}function Xs(t,e,r,n,s=!0){let{createWorker:i}=r,a,o,c;if(i)a=i();else if(Aa===w||Gf!==t){let l=typeof t==K;l?o=t(s):o=t;let R=o.startsWith("data:"),p=o.startsWith("blob:");if(R||p){n===w&&(n=!1),n&&(c=Yf);try{a=new Worker(o,c)}catch(f){if(p)try{URL.revokeObjectURL(o)}catch{}if(l&&p)return Xs(t,e,r,n,!1);if(n)throw f;return Xs(t,e,r,!0,!1)}}else{n===w&&(n=!0),n&&(c=Yf);try{o=new URL(o,e)}catch{}try{a=new Worker(o,c)}catch(f){if(n)return Xs(t,e,r,!1,s);throw f}}Gf=t,Aa=o,Vf=c}else a=new Worker(Aa,Vf);return a.addEventListener(Cf,l=>{r.workerAlive=!0,Zf(r),bE(l,r)}),a.addEventListener(ya,l=>jf(l,r)),a.addEventListener(TE,l=>jf(l,r)),a}function IE(t){if(t.startupTimeout=null,t.workerAlive)return;let{rejectResult:e,writer:r}=t;if(ba(t),t.worker=null,e){let n=new Error(rr);n.workerStartupFailed=!0,e(n),r&&r.releaseLock()}}function Zf(t){let{startupTimeout:e}=t;e&&(clearTimeout(e),t.startupTimeout=null)}function jf(t,e){t.preventDefault&&t.preventDefault(),Zf(e);let{workerAlive:r,rejectResult:n,writer:s,onTaskFinished:i}=e;ba(e),r||(e.worker=null);let a=t.error||new Error(t.message||ya);r||(a=Object.assign(new Error(a.message||ya),{workerStartupFailed:!0}),e.startupError=a),n&&(n(a),s&&s.releaseLock(),r&&i())}function Ia(t,{worker:e,writer:r,transferStreams:n,workerAlive:s}){try{let{value:i,readable:a,writable:o}=t,c=[];if(i&&(t.value=Ts(i),c.push(t.value.buffer)),n&&Sa&&s?(a&&c.push(a),o&&c.push(o)):t.readable=t.writable=null,c.length)try{return e.postMessage(t,c),!0}catch{Sa=!1,t.readable=t.writable=null,e.postMessage(t)}else e.postMessage(t)}catch(i){throw r&&r.releaseLock(),i}}async function bE({data:t},e){let{type:r,value:n,messageId:s,result:i,error:a,errorValue:o}=t,{reader:c,writer:l,resolveResult:R,rejectResult:p,onTaskFinished:f,generation:m}=e,h=()=>e.generation!=m;try{if(a)E(NE(a,o));else{if(r==Ff){let{value:g,done:_}=await c.read();h()||Ia({type:ga,value:g,done:_,messageId:s},e)}if(r==ga){let g=new Uint8Array(n);await l.ready,await l.write(g),h()||Ia({type:Uf,messageId:s},e)}r==Mf&&d(i)}}catch(g){h()||(ba(e),E(g))}function E(g){h()||(p(g),u(),Re(g)&&g.codecImportFailed||f())}function d(g){h()||(R(g),u(),f())}function u(){l&&l.releaseLock()}}function NE(t,e){let{message:r,stack:n,code:s,name:i,outputSize:a,cause:o,codecImportFailed:c}=t,l;if(e?l=e.value:l=Object.assign(new Error(r),{stack:n,code:s,name:i}),Re(l))try{a!==w&&(l.outputSize=a),c&&(l.codecImportFailed=!0),o&&!Re(l.cause)&&(l.cause=Object.assign(new Error(o.message),{name:o.name})),e&&(l.name!==i&&(l.name=i),l.code!==s&&(l.code=s))}catch{}return l}Ai();ue();Ge();$t();Dr();qs();An();ia();Lt();Ca();Jt();qt();ri();Ar();var oc="File already exists",cc="Zip file comment exceeds 64KB",Zu="Invalid zip file comment (must be a Uint8Array)",Ku="File entry comment exceeds 64KB",qu="Invalid file entry comment (must be a string)",Ju="Invalid date (must be a valid Date instance)",Qu="File entry name exceeds 64KB",lc="Version exceeds 65535",$u="The strength must equal 1, 2, or 3",ed="Encryption is not supported in USDZ files",td="Split zip files are not supported in USDZ files",rd="Encryption is not supported when the 'passThrough' option is set to true (use 'compressed' instead)",nd="Invalid extra field (must be a Map)",sd="Invalid extra field type (must be integer 0..65535)",id="Invalid extra field data (must be a Uint8Array)",Pi="Extra field data exceeds 64KB",ad=-2147483648,od=2147483647,vu=BigInt(0),ku=BigInt("0x7fffffffffffffff"),xi="Zip64 is not supported (set the 'zip64' option to 'true')",cd="Undefined uncompressed size",ld="Undefined compression method",fd="Undefined CRC32";var ud="Undefined reader",dd="Invalid reader (must be a Reader instance, a ReadableStream instance, or an object with a 'readable' property)",pd="Zip file not empty",Ed="Invalid uid (must be integer 0..2^32-1)",md="Invalid gid (must be integer 0..2^32-1)",hd="Invalid UNIX mode (must be integer 0..65535)",gd="Invalid unixExtraFieldType (must be 'infozip' or 'unix')",Rd="uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)",wd="Invalid msdosAttributesRaw (must be integer 0..255)",_d="Invalid msdosAttributes (must be an object with boolean flags)",Td="Invalid level (must be integer 0..9)",Ad="Signature data exceeds 64KB",yd="Invalid entry option (must be an entry returned by ZipReader#getEntries())",Sd="The last modification date of an entry encrypted with ZipCrypto cannot be changed when passThrough is set",Id="compression unavailable",bd="clamped last modification date",Bu=new Uint8Array([7,0,2,0,65,69,3,0,0]),Xm=4,jm=9,Zm=67,Km=32,qm=126,Jm=1,bi="infozip",Ni="unix",Qm=[8,9,5,3],$m=9,Qo=0,zu=[],Oi=class{constructor(e,r={}){e=new xr(e);let{availableSize:n=jt,maxSize:s=jt}=e,i=n>0&&n!==jt&&s>0&&s!==jt;if(i&&r[Zt])throw new Error(td);Object.assign(this,{writer:e,addSplitZipSignature:i,options:r,fileEntries:new Map,filenames:new Set,offset:r[an]===w?e.size||e.writable.size||0:r[an],initialOffset:r[an]===w?0:r[an]-(e.size||e.writable.size||0),pendingAddFileCalls:new Set,pendingErrors:[],warnings:[],bufferedWrites:0,directWrites:0,lastFileEntry:w,archiveClosed:!1})}prependZip(e){return $o(this,eh(this,e))}appendZip(e){return $o(this,this.appendZipEntries(e))}async appendZipEntries(e){let r=this,{pendingAddFileCalls:n,filenames:s,fileEntries:i}=r;for(;n.size;)await Promise.allSettled(Array.from(n));let a,o=new Promise(R=>a=R);n.add(o);let c=[],l;try{e=new Et(e),await ge(e),(e.size===w||!e.readUint8Array)&&(e=new Qe(await ft(e.readable)),await ge(e));let{ZipReader:R}=await Promise.resolve().then(()=>(Ai(),Lu)),p=new R(e),f=await p.getEntries();await p.close(),await ge(r.writer);let{directoryOffset:m}=p;f.forEach(({filename:d})=>{if(s.has(d))throw new Error(oc);s.add(d),c.push(d)}),r.writerLocked=!0;let{lockWriter:h}=r;r.lockWriter=new Promise(d=>l=()=>{r.writerLocked=!1,d()}),await h,r.addSplitZipSignature&&(delete r.addSplitZipSignature,await _h(e)||(await rt(r.writer,Dd()),r.offset+=4));let E=await Th(r,e,f,m);f.forEach(d=>{let{version:u,rawLastModDate:g,rawFilename:_,bitFlag:A,encrypted:T,uncompressedSize:y,compressedSize:S,extraFieldZip64:I}=d,{compressionMethod:N,rawExtraField:F}=d,{level:H,languageEncodingFlag:q,dataDescriptor:$}=A;F=Od(F||j),d.extraFieldAES&&(N=99);let Z=z(F),W=!!I&&I.uncompressedSize!==w,U=!!I&&I.compressedSize!==w,ne=Cd(H,q,$,T,N)&-7|H<<1,{headerArray:B,headerView:X}=xd({version:u,bitFlag:ne,compressionMethod:N,uncompressedSize:y,compressedSize:S,rawLastModDate:g,rawFilename:_,zip64CompressedSize:U,zip64UncompressedSize:W,extraFieldLength:Z}),{crc32:M}=d;M!==w&&_e(X,10,M);let{offset:G,diskNumberStart:pe}=E.get(d);Object.assign(d,{zip64Enabled:!0,zip64UncompressedSize:W,zip64CompressedSize:U,offset:G,diskNumberStart:pe,zip64DiskNumberStart:!1,rawExtraFieldZip64:j,rawExtraFieldAES:j,rawExtraFieldExtendedTimestamp:j,rawExtraFieldNTFS:j,rawExtraFieldUnix:j,rawExtraField:F,rawCentralExtraField:j,headerArray:B,headerView:X}),i.set(d.filename,d)})}catch(R){throw c.forEach(p=>s.delete(p)),R}finally{a(),n.delete(o),l&&l()}}add(e="",r,n={}){let s=this,{pendingAddFileCalls:i}=s,a=th(s,e,r,n);i.add(a);let o=()=>i.delete(a);return Promise.prototype.then.call(a,o,o),$o(s,a)}remove(e){let{filenames:r,fileEntries:n}=this;if(typeof e==We&&(e=n.get(e)),e&&e.filename!==w){let{filename:s}=e;if(r.has(s)&&n.has(s))return r.delete(s),n.delete(s),!0}return!1}async close(e=j,r={}){let n=this,{pendingAddFileCalls:s,writer:i}=this,{writable:a}=i;if(n.archiveClosed)return Hu(i);if(!(e instanceof Uint8Array))throw new Error(Zu);if(z(e)>65535)throw new Error(cc);for(;s.size;)await Promise.allSettled(Array.from(s));await Promise.allSettled(n.pendingErrors.map(l=>l.recorded));let o=n.pendingErrors.filter(l=>l.failed&&!l.observed);if(o.length){let l=o.map(p=>p.error);o.forEach(p=>p.observed=!0);let[R]=l;try{R.entryErrors=l}catch{}throw R}return await mh(n,e,r),n.archiveClosed=!0,!Tn(i)&&k(n,r,Es)||await a.getWriter().close(),Hu(i)}[os](){return this.close()}};var sc=class extends Promise{then(e,r){let{watcher:n}=this;return n&&(n.observed=!0),super.then(e,r)}};function Hu(t){return t.getData?t.getData():t.writable}function $o(t,e){let r=new sc((s,i)=>Promise.prototype.then.call(e,s,i)),n={};return r.watcher=n,n.recorded=Promise.prototype.then.call(r,w,s=>Object.assign(n,{failed:!0,error:s})),t.pendingErrors.push(n),r}async function eh(t,e){if(t.filenames.size)throw new Error(pd);await t.appendZipEntries(e)}async function th(t,e,r,n){n=Object.assign({},n);let s=n[ta];if(s!==w){let{entryOptions:i,passThroughOptions:a}=Nd(s,_r(k(t,n,sn)),k(t,n,ar));delete n[ta],n=Object.assign(i,a,n)}if(k(t,n,or)&&!e.endsWith("/")&&(e+="/"),t.filenames.has(e))throw new Error(oc);t.filenames.add(e),Qo<ot().maxWorkers?Qo++:await new Promise(i=>zu.push(i));try{return await rh(t,e,r,n)}catch(i){throw t.filenames.delete(e),i}finally{let i=zu.shift();i?i():Qo--}}async function rh(t,e,r,n){let s=sh(t,e,n);({name:e}=s);let i=ih(t,e,n),{comment:a}=i,o=n[Cn];t.fileEntries.set(e,w);let c=t.lastFileEntry,l={},R;i.resolvedOptions.keepOrder&&(l.lockFileEntry=new Promise(f=>R=f)),t.lastFileEntry=l;let p;try{let{resolvedOptions:f}=i;f.level!=0&&f.compressionMethod===w&&!f.passThroughCompression&&!await zf(ot())&&(f.level=0,Te(t.warnings,Id,e));let m=await ah(t,r,i,n);({reader:r}=m);let h=zn(t.writer),E=Rt(t.writer),d=n.crc32===w?n[ti]:n.crc32,u=m.resolvedOptions.encrypted&&!f.zipCrypto;if(f.passThroughCompression&&!f.passThroughEncryption&&u&&(d=w),f.passThroughCompression&&r&&!u&&d===w)throw new Error(fd);n=Object.assign({},n,s.resolvedOptions,i.resolvedOptions,m.resolvedOptions,{signature:n[ti],crc32:d,offset:t.offset-h,diskNumberStart:E,[Zt]:t.options[Zt]});let g=fh(n);g.lastModDateClamped&&Te(t.warnings,bd,e);let _=dh(n),A=z(g.localHeaderArray,_.dataDescriptorArray);p=await ch(t,e,r,{headerInfo:g,dataDescriptorInfo:_,metadataSize:A,fileEntry:l,previousFileEntry:c,releaseLockFileEntry:R},n)}catch(f){throw t.fileEntries.delete(e),f}finally{R&&R(c&&c.lockFileEntry)}return Object.assign(p,{name:e,comment:a,extraField:o}),new mt(p)}function Nd(t,e,r){if(t===null||typeof t!=as||Array.isArray(t))throw new Error(yd);let{externalFileAttributes:n,versionMadeBy:s,comment:i,lastModDate:a,rawLastModDate:o,creationDate:c,lastAccessDate:l,uncompressedSize:R,encrypted:p,zipCrypto:f,crc32:m,compressionMethod:h,extraFieldAES:E,extraFieldUnix:d,internalFileAttributes:u,extraField:g,bitFlag:_,directory:A,uid:T,gid:y}=t,S={externalFileAttributes:n,versionMadeBy:s,comment:i,lastModDate:a,creationDate:c,lastAccessDate:l,internalFileAttributes:u,directory:A};_&&_.languageEncodingFlag&&(S[Qi]=!0);let I=iu(g);I&&(S[Cn]=I),(T!==w||y!==w)&&Object.assign(S,{uid:T,gid:y,unixExtraFieldType:d?Ni:bi});let N={};if(e&&!A){if(Object.assign(N,{uncompressedSize:R,crc32:m,compressionMethod:h}),e!==on&&Object.assign(N,{encrypted:p,zipCrypto:f,encryptionStrength:E?E.strength:w}),_&&(N.dataDescriptor=_.dataDescriptor,N[ms]=Qm[_.level]),r===w)N.rawLastModDate=o;else if(e!==on&&f&&(!_||_.dataDescriptor)&&r instanceof Date&&nh(r)!=(o>>>8&255))throw new Error(Sd)}return{entryOptions:S,passThroughOptions:N}}function nh(t){let e=new Date(Math.ceil(Math.floor(t.getTime()/1e3)/2)*2e3);return e<Dt?e=Dt:e>nn&&(e=nn),(e.getHours()<<3|e.getMinutes()>>3)&255}function sh(t,e,r){let n=k(t,r,Ka),s=k(t,r,Qa,n?20:768),i=k(t,r,eo),a=Yr(t,r,ro),o=Yr(t,r,no),c=Yr(t,r,so),l=k(t,r,Tl),R=k(t,r,io),p=k(t,r,ao),f=k(t,r,oo);if(Tr(a,4294967295,Ed),Tr(o,4294967295,md),Tr(c,65535,hd),l!==w&&l!==bi&&l!==Ni)throw new Error(gd);if(l===Ni&&(a!==w&&a>65535||o!==w&&o>65535))throw new Error(Rd);l===w&&(a!==w||o!==w)&&(l=bi);let m=Yr(t,r,ja),h=k(t,r,Za),E=a!==w||o!==w||c!==w||l||i,d=m!==w||h!==w;if(E?(n=!1,s=s&255|768):d&&(n=!0,s=s&255),Tr(m,255,wd),h&&(typeof h!==as||Array.isArray(h)))throw new Error(_d);if(s>65535)throw new Error(lc);let u=k(t,r,Xa),g=u!==w;g||(u=0),!r[or]&&e.endsWith("/")&&(r[or]=!0);let _=k(t,r,or);if(_?(e.endsWith("/")||(e+="/"),g||(u=16,n||(u|=16877<<16))):!n&&!g&&(i?u=493<<16:u=420<<16),!n){let y=c!==w||!!(R||p||f),S=u>>16&65535;c=c===w?S:c&65535,R?c|=2048:R=!!(c&2048),p?c|=1024:p=!!(c&1024),f?c|=512:f=!!(c&512),(!g||y)&&(_?c=c&-61441|16384:c&61440||(c|=32768),u=(c&65535)<<16|u&65535)}({msdosAttributesRaw:m,msdosAttributes:h}=uh(m,h)),d&&(u=u&4294967295|m&255);let A=u>>16&65535,T=c!==w&&(c&61440)==40960;return{name:e,resolvedOptions:{versionMadeBy:s,msDosCompatible:!!n,externalFileAttributes:u,unixExternalUpper:A,uid:a,gid:o,unixMode:c,unixExtraFieldType:l,symlink:T,setuid:R,setgid:p,sticky:f,msdosAttributesRaw:m,msdosAttributes:h}}}function ih(t,e,r){let n=ic(t,r,_l)||yr,s=n(e,hs);if(s===w&&(s=yr(e)),z(s)>65535)throw new Error(Qu);let i=r[On]||"";if(typeof i!=We)throw new Error(qu);let a=n(i,gs);if(a===w&&(a=yr(i)),z(a)>65535)throw new Error(Ku);let o=k(t,r,Ja);if(o!==w&&o>65535)throw new Error(lc);let c=nc(t,r,ar,new Date),l=k(t,r,Lr),R=nc(t,r,Pn),p=nc(t,r,xn),f=k(t,r,Va,0),m=_r(k(t,r,sn)),h=!!m,E=m===!0,d=k(t,r,cs),u=k(t,r,ls);ws(d,u),d=d&&d.length?d:w,u=u&&u.length?u:w;let g=Yr(t,r,dl,3),_=k(t,r,$a),A=k(t,r,pl,!0),T=k(t,r,El),y=k(t,r,ml,!0),S=k(t,r,us),I=k(t,r,ps),N=k(t,r,hl),F=ic(t,r,gl),H=k(t,r,Rl,!0),q=cn(k(t,r,fs));Kt(q);let $=k(t,r,Qi,!ju(s)||!ju(a)),Z=k(t,r,to),W=h||Z===w?w:Ps(Z);if(!h&&Z!==w&&Z!==0&&Z!==8&&!W)throw new Error(ut);let U=Yr(t,r,ms);if(Tr(U,$m,Td),t.options[Zt]){if(d!==w||u!==w)throw new Error(ed);U===w&&Z===w&&(U=0)}h&&(U=xt(r[ms]));let ne=k(t,r,ds),B=k(t,r,$i);N&&B===w&&(B=!1),(B===w||_&&!E)&&(B=!0),U!==w&&U!=6&&(ne=!1);let X=k(t,r,ei);if(!_&&(d!==w||u!==w)&&!(Number.isInteger(g)&&g>=1&&g<=3))throw new Error($u);let M=ec(r[Cn]),G=ec(r[Al]),pe=ec(r[yl]);return{comment:i,resolvedOptions:{rawFilename:s,rawComment:a,version:o,lastModDate:c,rawLastModDate:l,lastAccessDate:R,creationDate:p,internalFileAttributes:f,passThroughCompression:h,passThroughEncryption:E,password:d,rawPassword:u,encryptionStrength:g,zipCrypto:_,extendedTimestamp:A,ntfsTimestamp:T,keepOrder:y,useWebWorkers:S,transferStreams:I,bufferedWrite:N,createTempStream:F,dataDescriptorSignature:H,signal:q,useUnicodeFileNames:$,compressionMethod:Z,format:W?W.format:w,codecURI:W?W.codecURI:w,codecVersionNeeded:W?W.versionNeeded:w,level:U,useCompressionStream:ne,dataDescriptor:B,zip64:X,rawExtraField:M,rawLocalExtraField:G,rawCentralExtraField:pe}}}function ec(t){if(!t)return j;if(!(t instanceof Map))throw new Error(nd);let e=0,r=0;t.forEach((i,a)=>{if(na(a,65535,sd),!(i instanceof Uint8Array))throw new Error(id);if(z(i)>65535)throw new Error(Pi);e+=4+z(i)});let n=new Uint8Array(e),s=L(n);return t.forEach((i,a)=>{tt(s,r,a),tt(s,r+2,z(i)),Wn(n,i,r+4),r+=4+z(i)}),n}async function ah(t,e,{resolvedOptions:r},n){if(r.passThroughCompression&&!e&&!k(t,n,or))throw new Error(ud);let s;if(e){if(e=new Et(e),await ge(e),!e.readable&&!e.readUint8Array)throw new Error(dd);({size:s}=e)}return Object.assign({reader:e},oh(t,!!e,s,r,n))}function oh(t,e,r,n,s){let{passThroughCompression:i,passThroughEncryption:a,zipCrypto:o,password:c,rawPassword:l,encryptionStrength:R}=n,{dataDescriptor:p,zip64:f,level:m,compressionMethod:h}=n,E=0,d=0,u=!1;if(i&&e){if(d=s[Dn],d===w)throw new Error(cd);if(h===w)throw new Error(ld)}let g=f===!0,_=k(t,s,qa);if(e&&a&&!_&&z(c,l))throw new Error(rd);let A=e&&(!!(c&&z(c)||l&&z(l))||a&&_);e||(m=0,h=0);let T=Ln(A,o,R);e&&(i?(s.uncompressedSize=d,E=r===w?Xu(d)+T:r+(a?0:T)):r===w?(p=!0,(f||f===w)&&(f=u=!0,E=4294967296)):(s.uncompressedSize=d=r,E=(ac(h,m)?Xu(d):d)+T));let y=!A&&(!e||r===0&&!i)&&!ac(h,m);y&&k(t,s,$i)===w&&(p=!1);let S=g||u||d>=4294967295,I=g||E>=4294967295;if(S||I){if(f===!1)throw new Error(xi);f=!0}return f=f||!1,{maximumCompressedSize:E,resolvedOptions:{dataDescriptor:p,emptyEntry:y,zip64:f,zip64Enabled:g,unknownSize:u,zip64UncompressedSize:S,zip64CompressedSize:I,uncompressedSize:d,level:m,compressionMethod:h,encrypted:A}}}async function ch(t,e,r,n,s){let{fileEntries:i,writer:a}=t,{keepOrder:o,dataDescriptor:c,emptyEntry:l,signal:R}=s,{headerInfo:p,fileEntry:f,previousFileEntry:m,releaseLockFileEntry:h}=n,E=t.options[Zt],d=f,u,g,_,A,T,y,S=0,I,N=o&&m?m.lockFileEntry:w;i.set(e,d);try{s.bufferedWrite||!o||t.writerLocked||t.bufferedWrites||t.directWrites||!c&&!l?(u=!0,t.bufferedWrites++,s.createTempStream?I=await s.createTempStream():I=new TransformStream(w,w,{highWaterMark:jt}),I.size=0,await ge(a)):(g=!0,t.directWrites++,I=a,await N,await F()),await ge(I);let q=zn(a);t.addSplitZipSignature&&!u&&await Gu(t,a),E&&!u&&Yu(n,t.offset-q);let{localHeaderArray:$}=p;u||await H();let Z=Rt(a),W=Hn(t,a);if(d.diskNumberStart=Z,u||(T=!0,y=a.size,await rt(I,$)),d=await lh(r,I,d,n,ot(),s),u||(T=!1),i.set(e,d),d.filename=e,u){if(await Promise.all([I.writable.getWriter().close(),N]),await F(),t.addSplitZipSignature&&await Gu(t,a),A=!0,y=a.size,await H(),d.diskNumberStart=Rt(a),d.offset=Hn(t,a),E){let U=n.metadataSize;Yu(n,t.offset-zn(a)),d.size+=n.metadataSize-U}Eh(d,p.localHeaderView,s),await rt(a,p.localHeaderArray),await Pd(I.readable,a,R,U=>S+=U),a.size+=I.size,A=!1}else d.diskNumberStart=Z,d.offset=W;return t.offset+=d.size,d}catch(q){if(A||T){if(t.hasCorruptedEntries=!0,q)try{q.corruptedEntry=!0}catch{}t.offset+=a.size-y,u&&(t.offset+=S)}throw i.delete(e),q}finally{if(u&&t.bufferedWrites--,g&&t.directWrites--,h&&h(N),_&&_(),u&&I&&I.dispose)try{await I.dispose()}catch{}}async function F(){t.writerLocked=!0;let{lockWriter:q}=t;t.lockWriter=new Promise($=>_=()=>{t.writerLocked=!1,$()}),await q}async function H(){Wr(a,z(p.localHeaderArray))&&await a.closeDisk()}}async function lh(t,e,{diskNumberStart:r,lockFileEntry:n},s,i,a){let{headerInfo:o,dataDescriptorInfo:c,metadataSize:l}=s,{headerArray:R,headerView:p,lastModDate:f,rawLastModDate:m,encrypted:h,compressed:E,version:d,compressionMethod:u,rawExtraFieldZip64:g,localExtraFieldZip64Length:_,rawExtraFieldExtendedTimestamp:A,extraFieldExtendedTimestampFlag:T,extraFieldExtendedTimestampTime:y,rawExtraFieldNTFS:S,rawExtraFieldUnix:I,rawExtraFieldAES:N}=o,{dataDescriptorArray:F}=c,{rawFilename:H,lastAccessDate:q,creationDate:$,password:Z,rawPassword:W,level:U,useUnicodeFileNames:ne,zip64:B,zip64Enabled:X,zip64UncompressedSize:M,zip64CompressedSize:G,zipCrypto:pe,dataDescriptor:me,directory:nt,executable:Ue,versionMadeBy:Me,rawComment:je,rawExtraField:be,rawCentralExtraField:Ne,useWebWorkers:Oe,transferStreams:oe,onstart:De,onprogress:ve,onend:fe,signal:te,encryptionStrength:J,extendedTimestamp:b,msDosCompatible:Y,internalFileAttributes:Q,externalFileAttributes:Ee,uid:Pe,gid:Ze,unixMode:Wt,symlink:Xr,setuid:Gt,setgid:He,sticky:Tt,unixExternalUpper:st,msdosAttributesRaw:de,msdosAttributes:Ae,useCompressionStream:Kn,passThroughCompression:At,passThroughEncryption:yt,format:qn,codecURI:Hi}=a,jr={lockFileEntry:n,versionMadeBy:Me,zip64:B,zip64Enabled:X,directory:!!nt,executable:!!Ue,filenameUTF8:!!ne,rawFilename:H,commentUTF8:!!ne,rawComment:je,rawExtraFieldZip64:g,localExtraFieldZip64Length:_,rawExtraFieldExtendedTimestamp:A,rawExtraFieldNTFS:S,rawExtraFieldUnix:I,rawExtraFieldAES:N,rawExtraField:be,rawCentralExtraField:Ne,extendedTimestamp:b,msDosCompatible:Y,internalFileAttributes:Q,externalFileAttributes:Ee,diskNumberStart:r,uid:Pe,gid:Ze,unixMode:Wt,symlink:!!Xr,setuid:Gt,setgid:He,sticky:Tt,unixExternalUpper:st,msdosAttributesRaw:de,msdosAttributes:Ae},{crc32:Vt,uncompressedSize:St}=a,he=0;At||(St=0);let{writable:Zr}=e;if(t){let Xt=t.size,It=ze(xa(t,{size:Xt})),Jn={options:{codecType:Or,inputSize:Xt,level:U,rawPassword:W,password:Z,encryptionStrength:J,zipCrypto:h&&pe,passwordVerification:h&&pe&&m>>8&255,computeCrc32:!At,compressed:E&&!At,encrypted:h&&!yt,useWebWorkers:Oe,useCompressionStream:Kn,transferStreams:oe,format:qn,codecURI:Hi,compressionMethod:u},config:i,streamOptions:{signal:te,size:Xt,onstart:De,onprogress:ve,onend:fe}};try{let Ke=await Ks({readable:It,writable:Zr},Jn);if(he=Ke.outputSize,e.size+=he,Kt(te),At||(St=Ke.inputSize,(!h||pe)&&(Vt=Ke.crc32)),!G&&he>=4294967295||!M&&St>=4294967295)throw new Error(xi)}catch(Ke){let{outputSize:Qn}=Jn;throw Qn!==w?e.size+=Qn:Re(Ke)&&Ke.outputSize!==w&&(e.size+=Ke.outputSize),Ke}}return ph({crc32:Vt,compressedSize:he,uncompressedSize:St,headerInfo:o,dataDescriptorInfo:c},a),me&&await rt(e,F),Object.assign(jr,{uncompressedSize:St,compressedSize:he,lastModDate:f,rawLastModDate:m,creationDate:$,lastAccessDate:q,encrypted:!!h,zipCrypto:!!pe,size:l+he,compressionMethod:u,version:d,headerArray:R,headerView:p,signature:Vt,crc32:h&&!pe&&!At?w:Vt,extraFieldExtendedTimestampFlag:T,extraFieldExtendedTimestampTime:y,zip64UncompressedSize:M,zip64CompressedSize:G}),jr}function fh(t){let{rawFilename:e,lastModDate:r,rawLastModDate:n,lastAccessDate:s,creationDate:i,level:a,zip64:o,zipCrypto:c,useUnicodeFileNames:l,dataDescriptor:R,directory:p,rawExtraField:f,rawLocalExtraField:m,encryptionStrength:h,extendedTimestamp:E,ntfsTimestamp:d,passThroughCompression:u,encrypted:g,zip64UncompressedSize:_,zip64CompressedSize:A,uncompressedSize:T,unknownSize:y,crc32:S}=t,{version:I,compressionMethod:N}=t,F=!p&&ac(N,a),H,q=u||!F,$=o&&(t.bufferedWrite||!R||!_&&!A||q&&!y),Z=$||o&&R&&(_||A);if(o&&(_||A)){let te=Le(20);if(te.writeUint16(1),te.writeUint16(16),H=te.array,$&&(te.writeUint64(T),q)){let J=Ln(g,c,h);te.writeUint64(u?0:T+J)}}else H=j;let W;if(g&&!c){let fe=Le(z(Bu)+2);fe.writeUint16(39169),fe.writeBytes(Bu),W=fe.array,W[8]=h}else W=j;let U,ne,B,X;if(E){let fe=Si(r),te=yh(fe);if(te){let b=9+(s?4:0)+(i?4:0),Y=Le(b);B=1+(s?2:0)+(i?4:0),X=fe,Y.writeUint16(21589),Y.writeUint16(b-4),Y.writeUint8(B),Y.writeUint32(fe),s&&Y.writeUint32(Vu(Si(s))),i&&Y.writeUint32(Vu(Si(i))),ne=Y.array}else ne=j;if(d===w?!te||!!(s||i):d)try{let b=rc(r),Y=Le(36);Y.writeUint16(10),Y.writeUint16(32),Y.skip(4),Y.writeUint16(1),Y.writeUint16(24),Y.writeUint64(b),Y.writeUint64(s?rc(s):b),Y.writeUint64(i?rc(i):b),U=Y.array}catch{U=j}else U=j}else U=ne=j;let M;try{let{uid:fe,gid:te,unixExtraFieldType:J}=t;if(J==bi&&(fe!==w||te!==w)){let b=Wu(fe===w?0:fe),Y=Wu(te===w?0:te),Q=3+b.length+Y.length,Ee=Le(4+Q);Ee.writeUint16(30837),Ee.writeUint16(Q),Ee.writeUint8(1),Ee.writeUint8(b.length),Ee.writeBytes(b),Ee.writeUint8(Y.length),Ee.writeBytes(Y),M=Ee.array}else if(J==Ni&&(fe!==w||te!==w)){let b=Le(8);b.writeUint16(30805),b.writeUint16(4),b.writeUint16((fe===w?0:fe)&65535),b.writeUint16((te===w?0:te)&65535),M=b.array}else M=j}catch{M=j}N===w&&(N=F?8:0),I===w&&(I=N==0&&!p&&!g?10:20);let{codecVersionNeeded:G}=t;F&&G!==w&&(I=I>G?I:G),o&&(I=I>45?I:45),g&&!c&&(I=I>51?I:51,u&&S!==w&&(W[Xm]=Jm),tt(L(W),jm,N),N=99);let pe=Z?z(H):0,me=pe+z(W,ne,U,M,f,m),nt=t[Zt]?Zm:0;if(me+nt>65535)throw new Error(Pi);let Ue=new Date(Math.ceil(Math.floor(r.getTime()/1e3)/2)*2e3),Me=Ue<Dt?Dt:Ue>nn?nn:Ue,je=z(ne)?new Date(Si(r)*1e3):z(U)?r:Me,{headerArray:be,headerView:Ne,rawLastModDate:Oe}=xd({version:I,bitFlag:Cd(a,l,R,g,N),compressionMethod:N,uncompressedSize:T,lastModDate:Me,rawLastModDate:n,rawFilename:e,zip64CompressedSize:A,zip64UncompressedSize:_,extraFieldLength:me}),oe=Le(30+z(e)+me),De=oe.array,ve=L(De);return oe.writeUint32(67324752),oe.writeBytes(be),oe.writeBytes(e),Z&&oe.writeBytes(H),oe.writeBytes(W),oe.writeBytes(ne),oe.writeBytes(U),oe.writeBytes(M),oe.writeBytes(f),oe.writeBytes(m),R&&(A||_e(ve,18,0),_||_e(ve,22,0)),{localHeaderArray:De,localHeaderView:ve,headerArray:be,headerView:Ne,lastModDate:je,lastModDateClamped:je===Me&&Ue.getTime()!=Me.getTime(),rawLastModDate:Oe,encrypted:g,compressed:F,version:I,compressionMethod:N,extraFieldExtendedTimestampFlag:B,extraFieldExtendedTimestampTime:X,rawExtraFieldZip64:j,localExtraFieldZip64Length:pe,rawExtraFieldExtendedTimestamp:ne,rawExtraFieldNTFS:U,rawExtraFieldUnix:M,rawExtraFieldAES:W,extraFieldLength:me}}function Yu(t,e){let{headerInfo:r}=t,{localHeaderArray:n,extraFieldLength:s}=r,i=64-(e+z(n))%64;i<4&&(i+=64);let a=new Uint8Array(i),o=L(a);tt(o,0,6534),tt(o,2,i-4);let c=n;r.localHeaderArray=n=new Uint8Array(z(c)+i),Wn(n,c),Wn(n,a,z(c));let l=L(n);tt(l,28,s+i),r.localHeaderView=l,t.metadataSize+=i}function Wu(t){let e=new Uint8Array(4);L(e).setUint32(0,t,!0);let n=4;for(;n>1&&e[n-1]===0;)n--;return e.subarray(0,n)}function uh(t,e){if(t!==w)t=t&255;else if(e!==w){let{readOnly:r,hidden:n,system:s,directory:i,archive:a}=e,o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),i&&(o|=16),a&&(o|=32),t=o&255}return e===w&&(e={readOnly:!!(t&1),hidden:!!(t&2),system:!!(t&4),directory:!!(t&16),archive:!!(t&32)}),{msdosAttributesRaw:t,msdosAttributes:e}}function dh({zip64:t,dataDescriptor:e,dataDescriptorSignature:r}){let n=j,s,i=0,a=t?20:12;return r&&(a+=4),e&&(n=new Uint8Array(a),s=L(n),r&&(i=4,_e(s,0,134695760))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:i}}function ph({crc32:t,compressedSize:e,uncompressedSize:r,headerInfo:n,dataDescriptorInfo:s},{zip64:i,zipCrypto:a,passThroughCompression:o,dataDescriptor:c}){let{headerView:l,encrypted:R}=n,{dataDescriptorView:p,dataDescriptorOffset:f}=s;(!R||a||o)&&t!==w&&(_e(l,10,t),c&&_e(p,f,t)),i?c&&(Yn(p,f+4,BigInt(e)),Yn(p,f+12,BigInt(r))):(_e(l,14,e),_e(l,18,r),c&&(_e(p,f+4,e),_e(p,f+8,r)))}function Eh({rawFilename:t,encrypted:e,zip64:r,localExtraFieldZip64Length:n,crc32:s,compressedSize:i,uncompressedSize:a,zip64UncompressedSize:o,zip64CompressedSize:c},l,{dataDescriptor:R,passThroughCompression:p}){if(R||((!e||p&&s!==w)&&_e(l,14,s),c||_e(l,18,i),o||_e(l,22,a)),r&&n){let f=30+z(t)+4;Yn(l,f,BigInt(a)),Yn(l,f+8,BigInt(i))}}async function mh(t,e,r){let{directoryDataLength:n,zip64Entries:s}=hh(t.fileEntries),{directoryStart:i,directoryEnd:a,directoryArray:o}=await gh(t,n,r),c=await Rh(t,o,r);await wh(t,e,r,{directoryStart:i,directoryEnd:a,directoryDataLength:n,signatureLength:c,zip64Entries:s})}function hh(t){let e=0,r=!1;for(let[,n]of t){let{rawFilename:s,rawExtraFieldAES:i,rawComment:a,rawExtraFieldNTFS:o,rawExtraFieldUnix:c,rawExtraField:l,rawCentralExtraField:R,extraFieldExtendedTimestampFlag:p,extraFieldExtendedTimestampTime:f,zip64Enabled:m,uncompressedSize:h,compressedSize:E}=n,{zip64UncompressedSize:d,zip64CompressedSize:u}=n;m||(d&&h<4294967295&&(d=n.zip64UncompressedSize=!1),u&&E<4294967295&&(u=n.zip64CompressedSize=!1)),r=r||d||u;let g=n.offset>=4294967295,_=n.diskNumberStart>=65535,A;if(g||_||d||u){let S=4+(d?8:0)+(u?8:0)+(g?8:0)+(_?4:0),I=Le(S);I.writeUint16(1),I.writeUint16(S-4),d&&I.writeUint64(h),u&&I.writeUint64(E),g&&I.writeUint64(n.offset),_&&I.writeUint32(n.diskNumberStart),A=I.array}else A=j;n.rawExtraFieldZip64=A,n.zip64Offset=g,n.zip64DiskNumberStart=_;let T;if(f===w)T=j;else{let S=Le(9);S.writeUint16(21589),S.writeUint16(5),S.writeUint8(p),S.writeUint32(f),T=S.array}n.rawExtraFieldExtendedTimestamp=T;let y=z(A,i,o,c,T,l,R);if(y>65535)throw new Error(Pi);e+=46+z(s,a)+y}return{directoryDataLength:e,zip64Entries:r}}async function gh(t,e,r){let{fileEntries:n,writer:s}=t,i=new Uint8Array(e);await ge(s);let a=0,o=0,c=Rt(s),l=zn(s),R=0;for(let[p,f]of Array.from(n.values()).entries()){let{offset:m,rawFilename:h,rawExtraFieldZip64:E,rawExtraFieldAES:d,rawExtraFieldExtendedTimestamp:u,rawExtraFieldNTFS:g,rawExtraFieldUnix:_,rawExtraField:A,rawCentralExtraField:T,rawComment:y,versionMadeBy:S,headerArray:I,headerView:N,zip64UncompressedSize:F,zip64CompressedSize:H,zip64DiskNumberStart:q,zip64Offset:$,internalFileAttributes:Z,externalFileAttributes:W,diskNumberStart:U,uncompressedSize:ne,compressedSize:B}=f,X=z(E,d,u,g,_,A,T),M=46+z(h,y)+X;Wr(s,a+M-o)&&(await rt(s,i.slice(o,a)),o=a,R=0,await s.closeDisk()),p==0&&(c=Rt(s),l=zn(s)),F||_e(N,18,ne),H||_e(N,14,B),($||q)&&f.version<45&&tt(N,0,45);let G=Le(M);if(G.writeUint32(33639248),G.writeUint16(S),G.writeBytes(I.subarray(0,24)),G.writeUint16(X),G.writeUint16(z(y)),G.writeUint16(q?65535:U),G.writeUint16(Z),G.writeUint32(W),G.writeUint32($?4294967295:m),G.writeBytes(h),G.writeBytes(E),G.writeBytes(d),G.writeBytes(u),G.writeBytes(g),G.writeBytes(_),G.writeBytes(A),G.writeBytes(T),G.writeBytes(y),Wn(i,G.array,a),a+=M,R++,r.onprogress)try{await r.onprogress(p+1,n.size,new mt(f))}catch{}}return await rt(s,o?i.slice(o):i),{directoryStart:{diskNumber:c,diskOffset:l},directoryEnd:{diskNumber:Rt(s),entriesLength:R},directoryArray:i}}async function Rh(t,e,r){let n=ic(t,r,Ol);if(n){let s=await n(e),i=z(s);if(i>65535)throw new Error(Ad);let a=Le(6+i);a.writeUint32(84233040),a.writeUint16(i),a.writeBytes(s);let{writer:o}=t;return Wr(o,z(a.array))&&await o.closeDisk(),await rt(o,a.array),6+i}return 0}async function wh(t,e,r,n){let{writer:s}=t,{directoryStart:i,directoryEnd:a,signatureLength:o,zip64Entries:c}=n,{directoryDataLength:l}=n,R=t.fileEntries.size,p=i.diskNumber,f=Hn(t,i),m=z(e);if(m>65535)throw new Error(cc);let h=k(t,r,ei),E=Rt(s);if(Wr(s,(h?98:22)+m)&&E++,f>=4294967295||l>=4294967295||R>=65535||E>=65535){if(h===!1)throw new Error(xi);h=!0}else h===w&&c&&(h=!0);let d=Le(h?98:22);Wr(s,z(d.array)+m)&&await s.closeDisk(),E=Rt(s);let u=E==a.diskNumber?a.entriesLength:0;h&&(d.writeUint32(101075792),d.writeUint64(44),d.writeUint16(45),d.writeUint16(45),d.writeUint32(E),d.writeUint32(p),d.writeUint64(u),d.writeUint64(R),d.writeUint64(l),d.writeUint64(f),d.writeUint32(117853008),d.writeUint32(E),d.writeUint64(BigInt(Hn(t,s))+BigInt(l)+BigInt(o)),d.writeUint32(E+1),k(t,r,wl,!0)&&(E=65535,p=65535),u=65535,R=65535,f=4294967295,l=4294967295),d.writeUint32(101010256),d.writeUint16(E),d.writeUint16(p),d.writeUint16(u),d.writeUint16(R),d.writeUint32(l),d.writeUint32(f),d.writeUint16(m),await rt(s,d.array),m&&await rt(s,e)}function Le(t){let e=new Uint8Array(t),r=L(e),n=0;return{array:e,writeUint8:s=>{Ih(r,n,s),n+=1},writeUint16:s=>{tt(r,n,s),n+=2},writeUint32:s=>{_e(r,n,s),n+=4},writeUint64:s=>{Yn(r,n,BigInt(s)),n+=8},writeBytes:s=>{Wn(e,s,n),n+=z(s)},skip:s=>n+=s}}function Rt(t){let{diskNumber:e=0}=t;return e}function zn(t){let{diskOffset:e=0}=t;return e}function Wr(t,e){let{availableSize:r=jt}=t;return e>r}function Hn(t,{diskNumber:e=0,diskOffset:r=0}){return t.offset-r-(e?t.initialOffset:0)}async function _h(t){let e=await re(t,0,4);return Sh(L(e),0)==134695760}function Od(t){let e=L(t),r=0;for(;r+4<=z(t);){let n=4+Di(e,r+2);if(Di(e,r)==1)return Od(Be(t.subarray(0,r),t.subarray(Math.min(r+n,z(t)))));r+=n}return t}async function Th(t,e,r,n){let{writer:s}=t,i=new Map;if(s.closeDisk){let a=Array.from(r).sort((c,l)=>yi(e,c)-yi(e,l)),o=0;for(let c of a){let l=yi(e,c);await tc(t,e,o,l-o),Wr(s,await Ah(e,l))&&await s.closeDisk(),i.set(c,{offset:Hn(t,s),diskNumberStart:Rt(s)}),o=l}await tc(t,e,o,n-o)}else{let a=t.offset;await tc(t,e,0,n),r.forEach(o=>i.set(o,{offset:a+yi(e,o),diskNumberStart:0}))}return i}async function tc(t,e,r,n){if(n>0){let{writer:s}=t,i=0;try{await Pd(xa(e,{offset:r,size:n}),s,w,a=>i+=a)}catch(a){t.hasCorruptedEntries=!0;try{a.corruptedEntry=!0}catch{}throw a}finally{s.size+=i,t.offset+=i}}}async function Ah(t,e){let r=await re(t,e,30);if(z(r)<30)return 30;let n=L(r);return 30+Di(n,26)+Di(n,28)}function yi(t,{offset:e,diskNumberStart:r}){return e+(t.getDiskOffset?t.getDiskOffset(r):0)}function Dd(){let t=new Uint8Array(4);return _e(L(t),0,134695760),t}async function Gu(t,e){delete t.addSplitZipSignature,await rt(e,Dd()),t.offset+=4}async function rt(t,e){let{writable:r}=t,n=r.getWriter();try{await n.ready,t.size+=z(e),await n.write(e)}finally{n.releaseLock()}}async function Pd(t,e,r,n){let s=e.writable.getWriter();try{await t.pipeTo(new WritableStream({async write(i){await s.ready,await s.write(i),n(z(i))}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{s.releaseLock()}}function rc(t){if(t){let e=(BigInt(t.getTime())+BigInt(116444736e5))*BigInt(1e4);return e<vu?vu:e>ku?ku:e}}function Si(t){return Math.floor(t.getTime()/1e3)}function yh(t){return t>=ad&&t<=od}function Vu(t){return Math.min(od,Math.max(ad,t))}function k(t,e,r,n){let s=e[r]===w?t.options[r]:e[r];return s===w?n:s}function nc(t,e,r,n){let s=k(t,e,r,n);if(s===null)return n;if(s!==w&&(typeof s.getTime!=K||Number.isNaN(s.getTime())))throw new Error(Ju);return s}function ic(t,e,r){return wr(k(t,e,r))}function Yr(t,e,r,n){return xt(k(t,e,r,n))}function Xu(t){return t+5*(Math.floor(t/16383)+1)}function ac(t,e){return t===w?e===w||e>0:t!==0}function Di(t,e){return t.getUint16(e,!0)}function Sh(t,e){return t.getUint32(e,!0)}function Ih(t,e,r){t.setUint8(e,r)}function tt(t,e,r){t.setUint16(e,r,!0)}function _e(t,e,r){t.setUint32(e,r,!0)}function Yn(t,e,r){t.setBigUint64(e,r,!0)}function Wn(t,e,r){t.set(e,r)}function z(...t){let e=0;return t.forEach(r=>r&&(e+=r.length)),e}function xd({version:t,bitFlag:e,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:i,rawLastModDate:a,rawFilename:o,zip64CompressedSize:c,zip64UncompressedSize:l,extraFieldLength:R}){let p=Le(26),f=p.array,m=L(f);if(p.writeUint16(t),p.writeUint16(e),p.writeUint16(r),a===w){let h=new Uint32Array(1),E=L(h);tt(E,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),tt(E,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),a=h[0]}return p.writeUint32(a),p.skip(4),c||s!==w?p.writeUint32(c?4294967295:s):p.skip(4),l||n!==w?p.writeUint32(l?4294967295:n):p.skip(4),p.writeUint16(z(o)),p.writeUint16(R),{headerArray:f,headerView:m,rawLastModDate:a}}function ju(t){return t.every(e=>e>=Km&&e<=qm)}function Cd(t,e,r,n,s){let i=0;return e&&(i=i|2048),r&&(i=i|8),(s==8||s==9)&&(t>=0&&t<=3&&(i=i|6),t>3&&t<=5&&(i=i|4),t==9&&(i=i|2)),n&&(i=i|1),i}An();Ar();Ge();$t();ue();Ge();$t();ha();var Ww=1024*1024;Jt();var Xw=1024*1024;var Zw=1024*1024;var Kw=512*1024;try{Ct({baseURI:import.meta.url})}catch{}Ge();var Mh=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],vh=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],kh=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Bh=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],zh=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Vn=new Uint8Array(288);Vn.fill(8,0,144),Vn.fill(9,144,256),Vn.fill(7,256,280),Vn.fill(8,280,288);var Hh=new Uint8Array(30).fill(5);function Gn(t){let e=new Uint16Array(16);for(let s of t)e[s]++;e[0]=0;let r=new Uint16Array(17);for(let s=1;s<=15;s++)r[s+1]=r[s]+e[s];let n=new Uint16Array(t.length);for(let s=0;s<t.length;s++)t[s]&&(n[r[t[s]]++]=s);return{lengthCounts:e,symbols:n}}var Fe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Ld(t){let e;t({wasmURI:()=>(e||(e="data:application/wasm;base64,"+(function(r){let n="",s=r.length,i=0;for(;i+2<s;i+=3){let o=r[i]<<16|r[i+1]<<8|r[i+2];n+=Fe[o>>18&63]+Fe[o>>12&63]+Fe[o>>6&63]+Fe[63&o]}let a=s-i;if(a===1){let o=r[i]<<16;n+=Fe[o>>18&63]+Fe[o>>12&63]+"=="}else if(a===2){let o=r[i]<<16|r[i+1]<<8;n+=Fe[o>>18&63]+Fe[o>>12&63]+Fe[o>>6&63]+"="}return n})((function(r){let n=0,s=0,i=0,a=new Uint8Array(1024),o=0,c=0;for(;!c;){c=R(1);let d=R(2);if(d==0)p();else if(d==1)f(Gn(Vn),Gn(Hh));else{if(d!=2)throw new Error("invalid deflate block type");f(...m())}}return a.subarray(0,o);function l(){if(n>=r.length)throw new Error("unexpected end of deflate data");return r[n++]}function R(d){for(;i<d;)s|=l()<<i,i+=8;let u=s&(1<<d)-1;return s>>>=d,i-=d,u}function p(){s=0,i=0;let d=l()|l()<<8;n+=2,E(o+d);for(let u=0;u<d;u++)a[o++]=l()}function f(d,u){let g=h(d);for(;g!=256;){if(g<256)E(o+1),a[o++]=g;else{let _=g-257,A=Mh[_]+R(vh[_]),T=h(u),y=kh[T]+R(Bh[T]);E(o+A);let S=o-y;for(let I=0;I<A;I++)a[o++]=a[S+I]}g=h(d)}}function m(){let d=R(5)+257,u=R(5)+1,g=R(4)+4,_=new Uint8Array(19);for(let S=0;S<g;S++)_[zh[S]]=R(3);let A=Gn(_),T=new Uint8Array(d+u),y=0;for(;y<T.length;){let S=h(A);if(S<16)T[y++]=S;else if(S==16){let I=T[y-1],N=R(2)+3;for(;N--;)T[y++]=I}else y+=S==17?R(3)+3:R(7)+11}return[Gn(T.subarray(0,d)),Gn(T.subarray(d))]}function h(d){let{lengthCounts:u,symbols:g}=d,_=0,A=0,T=0;for(let y=1;y<=15;y++){_|=R(1);let S=u[y];if(_-A<S)return g[T+(_-A)];T+=S,A=A+S<<1,_<<=1}throw new Error("invalid huffman code")}function E(d){if(a.length<d){let u=2*a.length;for(;u<d;)u*=2;let g=new Uint8Array(u);g.set(a.subarray(0,o)),a=g}}})((function(r){let n=(r=String(r).replace(/[^A-Za-z0-9+/=]/g,"")).length,s=[];for(let i=0;i<n;i+=4){let a=Fe.indexOf(r[i])<<18|Fe.indexOf(r[i+1])<<12|(63&Fe.indexOf(r[i+2]))<<6|63&Fe.indexOf(r[i+3]);s.push(a>>16&255),r[i+2]!=="="&&s.push(a>>8&255),r[i+3]!=="="&&s.push(255&a)}return new Uint8Array(s)})("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")))),e)})}ue();Ge();Dr();qs();la();var Fi="deflate",Ci="deflate-raw",Fd="deflate64-raw",Li="gzip";var Yh="Z_MEM_ERROR",Ud=[Fi,Ci,Li],Md=[Fi,Ci,Li,Fd],le,Vr,wt,Xn,vd;function kd(t){if(le=t,{malloc:Vr,free:wt,memory:Xn}=le,typeof Vr!="function"||typeof wt!="function"||!Xn)throw le=Vr=wt=Xn=null,new Error("Invalid WASM module")}function Bd(t){vd=t}function Gr(t,e){return e===-4&&(t.code=Yh),t}function zd(t,e,r={}){if(!(t?Ud:Md).includes(e))throw new TypeError("Unsupported format: "+e);if(!le){let T=new Error("WASM module not loaded");throw T.cause=vd,T}let n=typeof r.level=="number"?r.level:-1,s=typeof r.outBuffer=="number"?r.outBuffer:64*1024,i=typeof r.inBufferSize=="number"?r.inBufferSize:64*1024,a={out:0,in:0,inBufferSize:0,streamHandle:0,streamEnded:!1},o,c,l,R,p=!0,f=!1;E();let m=new ReadableStream({start(T){o=T},pull(){p=!1,_()},cancel(T){f=!0,R=T,A(a),c.error(T),_()}},{highWaterMark:0}),h=new WritableStream({start(T){c=T},async write(T){if(p&&await new Promise(y=>l=y),f)throw R;try{d(T)}catch(y){throw A(a),o.error(y),y}},close(){if(f)return;try{u()}catch(y){throw A(a),o.error(y),y}let T=A(a);if(T!==0){let y=Gr(new Error("end error:"+T),T);throw o.error(y),y}o.close()},abort(T){A(a),o.error(T)}},{highWaterMark:1});return{readable:m,writable:h};function E(){try{let T;if(a.out=Vr(s),a.in=Vr(i),a.inBufferSize=i,!a.out||!a.in)throw Gr(new Error("allocation failed"),-4);if(t?(a._process=le.deflate_process,a._last_consumed=le.deflate_last_consumed,a._end=le.deflate_end,a.streamHandle=le.deflate_new(),e===Li?T=le.deflate_init_gzip(a.streamHandle,n):e===Ci?T=le.deflate_init_raw(a.streamHandle,n):T=le.deflate_init(a.streamHandle,n)):e===Fd?(a._process=le.inflate9_process,a._last_consumed=le.inflate9_last_consumed,a._end=le.inflate9_end,a.streamHandle=le.inflate9_new(),T=le.inflate9_init_raw(a.streamHandle)):(a._process=le.inflate_process,a._last_consumed=le.inflate_last_consumed,a._end=le.inflate_end,a.streamHandle=le.inflate_new(),e===Ci?T=le.inflate_init_raw(a.streamHandle):e===Li?T=le.inflate_init_gzip(a.streamHandle):T=le.inflate_init(a.streamHandle)),T!==0)throw Gr(new Error("init failed:"+T),T)}catch(T){throw A(a),T}}function d(T){let y=new Uint8Array(Xn.buffer),S=a._process,I=a._last_consumed,N=a.out,F=0;for(;F<T.length;){if(a.streamEnded)throw new Error("trailing data after the end of the stream");let H=Math.min(T.length-F,32*1024);if((!a.in||a.inBufferSize<H)&&(a.in&&wt&&(wt(a.in),a.in=0),a.in=Vr(H),a.inBufferSize=H,!a.in))throw Gr(new Error("allocation failed"),-4);y.set(T.subarray(F,F+H),a.in);let q=S(a.streamHandle,a.in,H,N,s,0),$=q>>24&255,Z=$&128?$-256:$;if(Z<0)throw Gr(new Error("process error:"+Z),Z);let W=q&16777215;W&&g(y.slice(N,N+W));let U=I(a.streamHandle);if($===1)a.streamEnded=!0;else if(U===0&&W===0)break;F+=U}}function u(){let T=new Uint8Array(Xn.buffer),y=a._process,S=a.out;for(;;){let I=y(a.streamHandle,0,0,S,s,4),N=I>>24&255,F=N&128?N-256:N;if(F<0)throw Gr(new Error("process error:"+F),F);let H=I&16777215;if(H&&g(T.slice(S,S+H)),N===1||H===0)break}}function g(T){p=!0,o.enqueue(T)}function _(){if(l){let T=l;l=null,T()}}function A(T){let y=0;return T.streamHandle&&T._end&&(y=T._end(T.streamHandle)),T.streamHandle=0,T.in&&wt&&wt(T.in),T.in=0,T.out&&wt&&wt(T.out),T.out=0,y}}var pr=class{constructor(e=Fi,r){return zd(!0,e,r)}},Er=class{constructor(e=Fi,r){return zd(!1,e,r)}};pr.requiresModule=!0;Er.requiresModule=!0;pr.supportedFormats=Ud;Er.supportedFormats=Md;ue();aa();var fc=64*1024,Wh=20,Hd,_t;function Yd(t){typeof t.aes_hmac_new==K&&(Hd=t,_t=0)}function dc(t,e){let r=Hd,n=r?Gh(r,t,e):0;if(!n)return pn(t,e);let s=_t;return{process(i,a){for(let o=0;o<i.length;o+=fc){let c=i.subarray(o,o+fc),l=uc(r);l.set(c,s),r.aes_hmac_process(n,s,c.length,a?1:0),c.set(l.subarray(s,s+c.length))}},digest(){return r.aes_hmac_end(n,s),n=0,uc(r).slice(s,s+Wh)},dispose(){n&&(r.aes_hmac_end(n,0),n=0)}}}function Gh(t,e,r){_t||(_t=t.malloc(fc));let n=_t?t.aes_hmac_new():0;if(n){let s=uc(t);if(s.set(e,_t),s.set(r,_t+e.length),t.aes_hmac_init(n,_t,e.length,_t+e.length,r.length))return t.aes_hmac_end(n,0),0}return n}function uc(t){return new Uint8Array(t.memory.buffer)}var Wd=!1;async function Gd(t,{baseURI:e}){if(!Wd)try{await Vh(t,e),Wd=!0}catch(r){throw Bd(r),r}}async function Vh(t,e){let r,n;try{try{n=new URL(t,e)}catch{}r=await(await fetch(n)).arrayBuffer()}catch(i){if(t.startsWith("data:application/wasm;base64,"))r=Xh(t);else throw i}let s=await WebAssembly.instantiate(r);kd(s.instance.exports),Yd(s.instance.exports)}function Xh(t){let e=t.split(",")[1],r=atob(e),n=r.length,s=new Uint8Array(n);for(let i=0;i<n;++i)s[i]=r.charCodeAt(i);return s.buffer}var Ui;of(dc);kf({initModule:t=>{if(!Ui){let{wasmURI:e}=t;typeof e==K&&(e=e()),Ui=Gd(e,t).catch(r=>{throw Ui=null,r})}return Ui}});Ct({CompressionStreamFallback:pr,DecompressionStreamFallback:Er});Ld(Ct);An();Ai();ri();Ar();Dr();ue();Lt();Jt();qt();var mT=new Uint8Array(0);Xl(Ct);var Ec=class{constructor(e){this.arrived=[];this.reader=null;this.finished=!1;this.failure=null;this.wake=null;this.cancelled=!1;this.received=0;this.pump(e)}async pump(e){try{let r=await e();if(this.cancelled){await r.cancel();return}for(this.reader=r.getReader();;){let{done:n,value:s}=await this.reader.read();if(n)break;this.arrived.push(s),this.received+=s.length,this.wake?.()}}catch(r){this.cancelled||(this.failure=r)}finally{this.finished=!0,this.wake?.()}}async next(){for(;;){let e=this.arrived.shift();if(e)return e;if(this.failure)throw this.failure;if(this.finished)return null;await new Promise(r=>{this.wake=r}),this.wake=null}}cancel(){this.cancelled=!0,this.arrived.length=0,this.reader?.cancel().catch(()=>{}),this.wake?.()}};function Kh(t,e){let r=e.end-e.start+1,n=Math.ceil(r/4194304),s=new Map,i=0,a=0,o=c=>{let l=e.start+c*4194304,R={start:l,end:Math.min(l+4194304-1,e.end)};s.set(c,new Ec(()=>t.stream(R)))};return new ReadableStream({async pull(c){for(;;){if(a>=n){c.close();return}i===a&&o(i++);let l=s.get(a);if(l.received>0)for(;i<n&&s.size<4;)o(i++);let R=await l.next();if(R){c.enqueue(R);return}s.delete(a),a+=1}},cancel(){for(let c of s.values())c.cancel();s.clear(),i=n,a=n}},{highWaterMark:0})}var Mi=class extends pt{constructor(r){super(r);this.handle=r;this.size=r.size}async readUint8Array(r,n){if(n===0)return new Uint8Array(0);let s=Math.min(r+n,this.size)-1;return s<r?new Uint8Array(0):this.handle.read({start:r,end:s})}createReadable(r={}){let n=r.offset??0,s=Math.min(n+(r.size??this.size-n),this.size)-1;if(s<n)return new Blob([]).stream();let i=this.handle;if(i.descriptor.type==="range-http"&&s-n+1>=8388608)return Kh(i,{start:n,end:s});let a=null;return new ReadableStream({async pull(o){a??=(await i.stream({start:n,end:s})).getReader();let{done:c,value:l}=await a.read();c?o.close():o.enqueue(l)},async cancel(o){await a?.cancel(o)}},{highWaterMark:0})}};var jn=0,Zd=8,Jh=67324752,Vd=30,Zn=class t{constructor(e,r,n,s,i,a=!1){this.handle=r;this.parsedTo=0;this.forwardDone=!1;this.forwardStopped=!1;this.absorbed=0;this.lastTopFolder=null;this.fallbacks=[];this.librariesByName=null;this.dataRanges=new Map;this.pkgId=e,this.entries=n,this.rejected=s,this.manifest=i,this.partial=a}get title(){return this.manifest.title}static async open(e,r,n={}){let s;try{s=await new zt(new Mi(r)).getEntries({filenameValidation:"tolerant"})}catch(p){throw new ie("bad-archive","Could not read the archive index",{cause:p})}let{index:i,rejected:a}=Zc(s),o=new Map;for(let[p,f]of i)o.set(p,{name:p,size:f.uncompressedSize,compressedSize:f.compressedSize,method:f.compressionMethod,strategy:Kd(p,f),zip:f});if(!o.has("h5p.json"))throw new ie("bad-archive","Archive has no h5p.json, so it is not an H5P package");let c=new t(e,r,o,a,{}),l=await jd(c),R=new t(e,r,o,a,l);return n.requireLibraries!==!1&&R.assertLibrariesPresent(),R}static async fromForwardIndex(e,r,n){let s=new t(e,r,new Map,[],{},!0);return await s.absorb(n),s}async absorb(e){if(!this.partial)return!1;let r=e.entries.slice(this.absorbed);this.absorbed=e.entries.length,this.parsedTo=e.parsedTo,this.forwardDone=e.done,this.forwardStopped=e.stopped!==null&&!e.done;let n=!1;for(let s of r){if(s.directory)continue;let i=is(s.name);if(i===null||this.entries.has(i)){this.rejected.push(s.name);continue}this.entries.set(i,Qh(i,s)),this.lastTopFolder=Xd(i),i==="h5p.json"&&(n=!0)}return r.length>0&&(this.librariesByName=null),n&&(this.manifest=await jd(this)),r.length>0}bootReady(){if(!this.partial)return!0;if(this.forwardStopped||!this.entries.has("h5p.json"))return!1;let e=this.manifest.preloadedDependencies;if(!Array.isArray(e)||e.length===0)return!1;let r=this.entryNames(),n=this.availableLibraries();return e.every(s=>{let i=vi(s).find(a=>r.has(`${a}/library.json`))??hc(n,{machineName:s.machineName,major:Number(s.majorVersion),minor:Number(s.minorVersion)});return i!==void 0&&this.folderComplete(i)})}provablyAbsent(e){if(!this.partial||this.forwardDone)return!0;let r=Xd(e);if(r===null)return!1;if(this.hasFolder(r))return this.folderComplete(r);let n=mc(r);return n!==null&&this.hasFolder(n.machineName)&&this.folderComplete(n.machineName)}folderComplete(e){return this.forwardDone||this.lastTopFolder!==e}hasFolder(e){let r=`${e}/`;for(let n of this.entries.keys())if(n.startsWith(r))return!0;return!1}use(e){e===this||this.fallbacks.includes(e)||(this.fallbacks.push(e),this.librariesByName=null)}get(e){return this.locate(e)??this.locateCompatible(e)}locate(e){let r=this.entries.get(e);if(r)return{reader:this,entry:r};for(let n of this.fallbacks){let s=n.locate(e);if(s)return s}}locateCompatible(e){let r=e.indexOf("/");if(r<0)return;let n=mc(e.slice(0,r));if(!n)return;let s=hc(this.availableLibraries(),n);if(!(!s||s===n.folder))return this.locate(`${s}/${e.slice(r+1)}`)}availableLibraries(){if(this.librariesByName)return this.librariesByName;let e=qd(this.entries.keys());for(let r of this.fallbacks)for(let[n,s]of r.availableLibraries()){let i=e.get(n);i?i.push(...s):e.set(n,[...s])}return this.librariesByName=e,e}entryNames(){let e=new Set(this.entries.keys());for(let r of this.fallbacks)for(let n of r.entryNames())e.add(n);return e}missingLibraries(){return tg(this.entryNames(),this.manifest)}get hasFallbacks(){return this.fallbacks.length>0}mergedManifest(){let e=this.entryNames(),r=new Map,n=s=>{r.has(s.machineName)||vi(s).some(i=>e.has(`${i}/library.json`))&&r.set(s.machineName,s)};for(let s of this.manifest.preloadedDependencies??[])n(s);for(let s of this.fallbacks)for(let i of s.manifest.preloadedDependencies??[])n(i);return{...this.manifest,preloadedDependencies:[...r.values()]}}assertLibrariesPresent(){let e=this.missingLibraries();if(e)throw new ie("bad-archive",rg(e),{missingLibraries:e})}prefetchable(){return[...this.entries.values()].filter(e=>e.strategy.kind==="chunked").map(e=>({entry:e.name,size:e.size}))}inflate(e){if(!e.zip)return this.inflateDirect(e);if(e.zip.encrypted)throw new ie("bad-archive",`${e.name} is encrypted`);let r=e.zip.getData;if(!r)throw new ie("bad-archive",`${e.name} has no readable data`);let n=new TransformStream;return r.call(e.zip,n.writable).catch(s=>{if(!n.writable.locked)try{n.writable.abort(s)}catch{}}),n.readable}dataRange(e){let r=this.dataRanges.get(e.name);if(r)return r;let n=this.readDataRange(e);return this.dataRanges.set(e.name,n),n.catch(()=>this.dataRanges.delete(e.name)),n}inflateDirect(e){if(e.encrypted)throw new ie("bad-archive",`${e.name} is encrypted`);if(e.method!==jn&&e.method!==Zd)throw new ie("bad-archive",`${e.name} uses compression method ${e.method}`);if(e.compressedSize===0)return new Blob([]).stream();let r=$h(()=>this.sliceStream(e,{start:0,end:e.compressedSize-1}));if(e.method===jn)return r;let n=new DecompressionStream("deflate-raw");return r.pipeThrough(n)}async readDataRange(e){if(e.dataStart!==void 0)return{start:e.dataStart,end:e.dataStart+e.compressedSize-1};if(!e.zip)throw new ie("bad-archive",`${e.name} has no known location`);let r=await this.handle.read({start:e.zip.offset,end:e.zip.offset+Vd-1}),n=new DataView(r.buffer,r.byteOffset,r.byteLength);if(n.getUint32(0,!0)!==Jh)throw new ie("bad-archive",`${e.name} has a malformed local header`);let s=n.getUint16(26,!0),i=n.getUint16(28,!0),a=e.zip.offset+Vd+s+i;return{start:a,end:a+e.compressedSize-1}}async sliceStream(e,r){let n=await this.dataRange(e);return this.handle.stream({start:n.start+r.start,end:n.start+r.end})}};function Kd(t,e){return qc(t)?{kind:"inline"}:e.uncompressedSize<=16777216?{kind:"inline"}:e.compressionMethod===jn?{kind:"slice"}:e.compressionMethod===Zd?{kind:"chunked"}:{kind:"inline"}}function Qh(t,e){return{name:t,size:e.uncompressedSize,compressedSize:e.compressedSize,method:e.method,strategy:Kd(t,{uncompressedSize:e.uncompressedSize,compressionMethod:e.method}),dataStart:e.dataStart,encrypted:e.encrypted}}function Xd(t){let e=t.indexOf("/");return e<0?null:t.slice(0,e)}function $h(t){let e=null;return new ReadableStream({async pull(r){e??=(await t()).getReader();let{done:n,value:s}=await e.read();n?r.close():r.enqueue(s)},async cancel(r){await e?.cancel(r)}},{highWaterMark:0})}async function jd(t){let{entry:e}=t.get("h5p.json");try{let r=await new Response(t.inflate(e)).json();if(!r||typeof r!="object")throw new Error("not an object");return r}catch(r){throw new ie("bad-archive","h5p.json is not readable JSON",{cause:r})}}function vi(t){return[`${t.machineName}-${t.majorVersion}.${t.minorVersion}`,t.machineName]}function mc(t){let e=/^(.+)-(\d+)\.(\d+)$/.exec(t);return e?{machineName:e[1],major:Number(e[2]),minor:Number(e[3]),folder:t}:null}function qd(t){let e=new Map;for(let r of t){let n=r.indexOf("/");if(n<0||r.slice(n+1)!=="library.json")continue;let s=mc(r.slice(0,n));if(!s)continue;let i=e.get(s.machineName);i?i.push(s):e.set(s.machineName,[s])}return e}function hc(t,e){return(t.get(e.machineName)??[]).filter(n=>n.major===e.major&&n.minor>=e.minor).sort((n,s)=>n.minor-s.minor)[0]?.folder}function eg(t,e){let r=e.preloadedDependencies;if(!Array.isArray(r))return[];let n=qd(t);return r.filter(s=>vi(s).some(i=>t.has(`${i}/library.json`))?!1:!hc(n,{machineName:s.machineName,major:Number(s.majorVersion),minor:Number(s.minorVersion)}))}function tg(t,e){let r=e.preloadedDependencies;if(!Array.isArray(r)||r.length===0)return{mainLibrary:e.mainLibrary,folders:[],all:!0};let n=eg(t,e);return n.length===0?null:{mainLibrary:e.mainLibrary,folders:n.map(s=>vi(s)[0]),all:n.length===r.length}}function rg(t){if(t.folders.length===0)return"h5p.json lists no preloadedDependencies, so there is nothing to run";let e=t.folders.join(", ");return t.all?`This package contains no libraries, only content. Exports from h5p.com and h5p.org often leave them out because the site they came from already has them. Set the "libraries" attribute to fetch them, or re-export with them included. Missing: ${e}`:`This package is missing ${t.folders.length} of its libraries: ${e}. Set the "libraries" attribute to fetch them, or re-export with them included.`}var Jd='"use strict";(()=>{var o=JSON.parse(document.getElementById("h5p-boot-config").textContent),a=function(t){try{parent.postMessage(Object.assign({channel:"h5p-player",pkgId:o.pkgId},t),location.origin)}catch{}};navigator.serviceWorker&&navigator.serviceWorker.addEventListener("message",function(t){var e=t.data;e&&(e.type==="need-job"||e.type==="need-file")&&a({type:"relay",payload:e})});var s=document.getElementById("h5p-root"),d={h5pJsonPath:o.h5pJsonPath,frameJs:o.frameJs,frameCss:o.frameCss,embedType:"div",frame:!1,copyright:!1,export:!1,icon:!1,fullScreen:!0,postUserStatistics:!1,saveFreq:!1};new window.H5PStandalone.H5P(s,d).then(function(){var t=window.H5P&&window.H5P.externalDispatcher;t&&t.on("xAPI",function(e){var n=e&&e.data?e.data.statement:void 0,r=n&&n.verb?n.verb.id:void 0;a({type:"xapi",statement:n,verb:r}),r==="http://adlnet.gov/expapi/verbs/completed"&&a({type:"finished",statement:n})}),a({type:"ready"})}).catch(function(t){a({type:"error",message:String(t&&t.message||t)})});window.addEventListener("error",function(t){var e=t.target;if(e&&e!==window){if(!(e.dataset&&e.dataset.h5p))return;var n=String(e.src||e.href||"").replace(location.origin,""),r=String(o.h5pJsonPath).replace(location.origin,"")+"/",i=n.indexOf(r)===0?n.slice(r.length):n;a({type:"error",message:"Could not load "+i});return}a({type:"error",message:String(t.message||"Script error in H5P content")})},!0);})();';var gc={script:["cdn.jsdelivr.net","cdnjs.cloudflare.com","ajax.googleapis.com","www.youtube.com","player.vimeo.com","developers.panopto.com"],style:["fonts.googleapis.com"],font:["fonts.gstatic.com","fonts.googleapis.com"]},ng=/^(?:(?:https?|wss?):\/\/)?(?:\*\.)?[a-z0-9.-]+(?::\d+)?$/i;function sg(t){return t?[...new Set(t.map(e=>e.trim()).filter(e=>ng.test(e)))]:[]}function Rc(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function ig(t,e){let r=new Set;for(let n of Object.values(t))try{let s=new URL(n,e).origin;s!==new URL(e).origin&&r.add(s)}catch{}return[...r]}function ag(t){let e=ig(t.assets,t.virtualRoot),r=sg(t.allowOrigins),n=(s,...i)=>`${s} ${i.filter(Boolean).join(" ")}`;return["default-src 'self'",n("script-src","'self'",...e,...gc.script,...r,`'nonce-${t.nonce}'`,"'unsafe-eval'"),n("style-src","'self'",...e,...gc.style,...r,"'unsafe-inline'"),n("font-src","'self'",...e,...gc.font,...r,"data:"),"img-src * data: blob:","media-src * data: blob:","frame-src *",n("connect-src","'self'",...r),"worker-src 'self' blob:","object-src 'none'","base-uri 'self'","form-action 'none'"].join("; ")}function Qd(t){let{pkgId:e,virtualRoot:r,assets:n,nonce:s}=t,i=ag(t),a=JSON.stringify({pkgId:e,h5pJsonPath:r,frameJs:n.frameJs,frameCss:n.frameCss}).replaceAll("<","\\u003c");return`<!DOCTYPE html>
|
|
3
3
|
<html lang="en" class="h5p-iframe">
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="utf-8">
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
7
|
-
<meta http-equiv="Content-Security-Policy" content="${
|
|
8
|
-
<title>${
|
|
7
|
+
<meta http-equiv="Content-Security-Policy" content="${Rc(i)}">
|
|
8
|
+
<title>${Rc(t.title??"H5P content")}</title>
|
|
9
9
|
<style nonce="${s}">
|
|
10
10
|
html, body { background: transparent; }
|
|
11
11
|
body { overflow-x: hidden; }
|
|
12
12
|
#h5p-root { width: 100%; }
|
|
13
|
+
.h5p-video.h5p-youtube iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
|
13
14
|
</style>
|
|
14
15
|
</head>
|
|
15
16
|
<body>
|
|
16
17
|
<div id="h5p-root"></div>
|
|
17
|
-
<script nonce="${s}" src="${
|
|
18
|
-
<script
|
|
19
|
-
${
|
|
20
|
-
<\/script>
|
|
18
|
+
<script nonce="${s}" src="${Rc(n.mainJs)}" charset="UTF-8"><\/script>
|
|
19
|
+
<script type="application/json" id="h5p-boot-config">${a}<\/script>
|
|
20
|
+
<script nonce="${s}">${Jd}<\/script>
|
|
21
21
|
</body>
|
|
22
|
-
</html>`}function $h(t){return`(function () {
|
|
23
|
-
var config = ${t};
|
|
24
|
-
// To this document's own origin, never '*'. The element's page is same-origin by construction
|
|
25
|
-
// (the worker script must be, and this frame lives under its scope), so nothing legitimate is
|
|
26
|
-
// lost \u2014 but package ids are derived from the URL and therefore guessable, and a third-party
|
|
27
|
-
// page that framed this URL directly would otherwise be handed every xAPI statement.
|
|
28
|
-
var post = function (message) {
|
|
29
|
-
try { parent.postMessage(Object.assign({ channel: 'h5p-player', pkgId: config.pkgId }, message), location.origin); }
|
|
30
|
-
catch (error) { /* a detached parent is not worth reporting */ }
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
// The worker cannot start a long job itself, so it asks this client and the element obliges.
|
|
34
|
-
if (navigator.serviceWorker) {
|
|
35
|
-
navigator.serviceWorker.addEventListener('message', function (event) {
|
|
36
|
-
var data = event.data;
|
|
37
|
-
if (data && (data.type === 'need-job' || data.type === 'need-file')) {
|
|
38
|
-
post({ type: 'relay', payload: data });
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
var root = document.getElementById('h5p-root');
|
|
44
|
-
|
|
45
|
-
var options = {
|
|
46
|
-
h5pJsonPath: config.h5pJsonPath,
|
|
47
|
-
frameJs: config.frameJs,
|
|
48
|
-
frameCss: config.frameCss,
|
|
49
|
-
// Div embedding, not the default iframe: with 'iframe' H5P core writes the content into an
|
|
50
|
-
// inner about:blank frame, and whether such a child inherits this document's Service Worker
|
|
51
|
-
// controller differs between browsers. With 'div' this document is the H5P document.
|
|
52
|
-
embedType: 'div',
|
|
53
|
-
frame: false,
|
|
54
|
-
copyright: false,
|
|
55
|
-
export: false,
|
|
56
|
-
icon: false,
|
|
57
|
-
fullScreen: true,
|
|
58
|
-
// No result endpoints exist here. xAPI leaves as events; nothing is posted or stored.
|
|
59
|
-
postUserStatistics: false,
|
|
60
|
-
saveFreq: false
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
new window.H5PStandalone.H5P(root, options)
|
|
64
|
-
.then(function () {
|
|
65
|
-
var dispatcher = window.H5P && window.H5P.externalDispatcher;
|
|
66
|
-
if (dispatcher) {
|
|
67
|
-
dispatcher.on('xAPI', function (event) {
|
|
68
|
-
var statement = event && event.data ? event.data.statement : undefined;
|
|
69
|
-
var verb = statement && statement.verb ? statement.verb.id : undefined;
|
|
70
|
-
post({ type: 'xapi', statement: statement, verb: verb });
|
|
71
|
-
if (verb === 'http://adlnet.gov/expapi/verbs/completed') {
|
|
72
|
-
post({ type: 'finished', statement: statement });
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
// Sizing is H5P's own: it talks the resizer protocol to the element over postMessage,
|
|
77
|
-
// driven by the resize events content types raise when they actually change. Watching the
|
|
78
|
-
// DOM from here would miss those and fire on changes that are not resizes.
|
|
79
|
-
post({ type: 'ready' });
|
|
80
|
-
})
|
|
81
|
-
.catch(function (error) {
|
|
82
|
-
post({ type: 'error', message: String((error && error.message) || error) });
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
window.addEventListener('error', function (event) {
|
|
86
|
-
post({ type: 'error', message: String(event.message || 'Script error in H5P content') });
|
|
87
|
-
});
|
|
88
|
-
})();`}function jd(){let t=crypto.getRandomValues(new Uint8Array(16));return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}function Kd(t){let e=t.endsWith("/")?t:`${t}/`,r=e.endsWith("h5p/")?e:`${e}h5p/`;return{base:r,virtual:`${r}virtual/`,frame:`${r}frame/`,ping:`${r}virtual/_ping`}}var Zd=/^[0-9a-f]{32}$/;function qd(t,e){if(e===t.ping)return{kind:"ping"};if(e.startsWith(t.frame)){let r=e.slice(t.frame.length).split(/[/?#]/,1)[0];return Zd.test(r)?{kind:"frame",pkgId:r}:{kind:"none"}}if(e.startsWith(t.virtual)){let r=e.slice(t.virtual.length).split(/[?#]/,1)[0],n=r.indexOf("/");if(n<0)return{kind:"none"};let s=r.slice(0,n);return Zd.test(s)?{kind:"entry",pkgId:s,path:r.slice(n+1)}:{kind:"none"}}return{kind:"none"}}function jT(t,e={}){let r=Kd(e.scope??t.registration.scope),n=new gc(t,r);t.addEventListener("install",()=>{t.skipWaiting()}),t.addEventListener("activate",s=>{s.waitUntil((async()=>{await Fc(),await t.clients.claim()})())}),t.addEventListener("message",s=>{s.waitUntil(n.handleMessage(s))}),t.addEventListener("fetch",s=>{let i=qd(r,s.request.url);i.kind!=="none"&&s.respondWith(n.handleFetch(s,i))})}var gc=class{constructor(e,r){this.worker=e;this.routes=r;this.readers=new Map;this.files=new Map;this.pendingFiles=new Map;this.requestedJobs=new Set;this.inflating=new Map;Hc(n=>{this.readers.delete(n)})}async handleMessage(e){let r=e.data;if(!r||typeof r.type!="string")return;let n=s=>{let i=e.ports[0];i&&i.postMessage(s)};try{switch(r.type){case"ping":n({ok:!0,type:"pong",version:ki});return;case"register":await $n(r.record),this.readers.delete(r.record.pkgId),n({ok:!0,type:"ack"});return;case"index":{let s=await this.refresh(r.pkgId,await this.reader(r.pkgId));s.partial||await es(r.pkgId,{status:"indexed",lastPlayed:Date.now()}),n({ok:!0,type:"indexed",pkgId:r.pkgId,entryCount:s.entries.size,title:s.title,prefetch:s.prefetchable(),partial:s.partial||void 0,ready:s.partial?s.bootReady():void 0});return}case"attach-libraries":{await es(r.pkgId,{libraryPkgId:r.libraryPkgId}),this.readers.delete(r.pkgId),n({ok:!0,type:"ack"});return}case"file":{this.files.set(r.pkgId,r.file);let s=this.pendingFiles.get(r.pkgId);s&&(clearTimeout(s.timer),s.resolve(r.file),this.pendingFiles.delete(r.pkgId)),n({ok:!0,type:"ack"});return}}}catch(s){n(tg(s))}}async handleFetch(e,r){try{switch(r.kind){case"ping":return $d({version:ki});case"frame":return await this.serveFrame(r.pkgId);case"entry":return await this.serveEntry(e,r.pkgId,r.path);default:return new Response(null,{status:404})}}catch(n){return n instanceof Mi?pr(n.message,404):n instanceof ie&&n.code==="bad-archive"?pr(n.message,422):n instanceof Gt?pr(n.message,507):pr(n instanceof Error?n.message:"Internal player error",500)}}async serveFrame(e){let r=await qr(e);if(!r)return pr("Unknown package",404);await kc(e);let n=jd(),s=Xd({pkgId:e,virtualRoot:`${this.routes.virtual}${e}`,assets:r.frameAssets,nonce:n,title:r.title,allowOrigins:r.allowOrigins});return new Response(s,{status:200,headers:{"content-type":"text/html; charset=utf-8","cache-control":"no-store"}})}async serveEntry(e,r,n){let s=Yc(n);if(s===null)return pr("Bad entry path",400);let i=await this.reader(r),a=i.get(s);if(!a&&i.partial){let c=await this.awaitEntry(r,i,s);if(c==="stalled")return Qd(`The download has stalled before ${s}`);i=c.reader,a=c.located}if(!a)return new Response(null,{status:404});if(s==="h5p.json"&&i.hasFallbacks)return $d(i.mergedManifest());let o=e.request.headers.get("range");switch(a.entry.strategy.kind){case"inline":return this.serveInline(a,o);case"slice":return this.serveSlice(a,o);case"chunked":return this.serveChunked(e,a,o)}}async serveInline({reader:e,entry:r},n){let s=new Ye(e.pkgId),i=await s.getWhole(r.name);if(i||(await this.cacheInline(s,e,r),i=await s.getWhole(r.name)),!i?.body)return pr("Entry could not be read",500);let a=rs(n,r.size);return a==="unsatisfiable"?mc(r.size):a==="none"?new Response(i.body,{status:200,headers:Wr(r,{length:r.size})}):new Response(Wt(i.body,a),{status:206,headers:Wr(r,{length:a.end-a.start+1,contentRange:ns(a,r.size)})})}cacheInline(e,r,n){let s=`${r.pkgId}\0${n.name}`,i=this.inflating.get(s);if(i)return i;let a=e.putWhole(n.name,()=>r.inflate(n),Yi(n.name),n.size).finally(()=>this.inflating.delete(s));return this.inflating.set(s,a),a}async serveSlice({reader:e,entry:r},n){let s=rs(n,r.size);if(s==="unsatisfiable")return mc(r.size);let i=s==="none"?{start:0,end:r.size-1}:s,a=await e.sliceStream(r,i);return s==="none"?new Response(a,{status:200,headers:Wr(r,{length:r.size})}):new Response(a,{status:206,headers:Wr(r,{length:i.end-i.start+1,contentRange:ns(i,r.size)})})}async serveChunked(e,{reader:r,entry:n},s){let i=r.pkgId,a=new Ye(i),o=()=>this.requestJob(e,i,n.name),c=async l=>await Jd(a,n.name,l,{onStall:o})!==null,f=await a.getMeta(n.name);if((!f||!f.complete&&f.available===0)&&(await o(),f=await Jd(a,n.name,1,{onStall:o}),!f))return Qd("Extraction has not produced any bytes yet");let R=rs(s,n.size);if(R==="unsatisfiable")return mc(n.size);if(R==="none")return new Response(a.readRange(n.name,{start:0,end:n.size-1},c),{status:200,headers:Wr(n,{length:n.size})});let E=R.start<f.available?{start:R.start,end:Math.min(R.end,f.available-1)}:R;return new Response(a.readRange(n.name,E,c),{status:206,headers:Wr(n,{length:E.end-E.start+1,contentRange:ns(E,n.size)})})}async awaitEntry(e,r,n){let s=new Ye(e),i=null,a=qn(e,Hi,()=>i?.()),o=qn(e,it,()=>i?.()),c=-1,f=Date.now();try{for(;;){let R=await this.refresh(e,r),E=R.get(n);if(E||!R.partial||R.provablyAbsent(n))return{reader:R,located:E};let l=(await s.getArchiveMeta())?.available??0;if(l!==c)c=l,f=Date.now();else if(Date.now()-f>=15e3)return"stalled";await new Promise(h=>{let g=setTimeout(h,500);i=()=>{clearTimeout(g),h()}}),i=null,r=R}}finally{a(),o()}}async requestJob(e,r,n){let s=`${r}\0${n}`;this.requestedJobs.has(s)||(this.requestedJobs.add(s),setTimeout(()=>this.requestedJobs.delete(s),2e3),await this.postToClient(e.clientId,{type:"need-job",pkgId:r,entry:n}))}async postToClient(e,r){let n=e?await this.worker.clients.get(e):void 0;if(n){n.postMessage(r);return}let s=await this.worker.clients.matchAll({type:"window"});for(let i of s)i.postMessage(r)}reader(e){let r=this.readers.get(e);if(r)return r;let n=this.openReader(e);return this.readers.set(e,n),n.catch(()=>this.readers.delete(e)),n}async openReader(e){let r=await qr(e);if(!r)throw new Mi(e);let n=r.source.type==="file"?await this.fileFor(e):void 0;if(r.source.type==="chunked"){let c=new Ye(e);if(!(await c.getArchiveMeta())?.complete){let R=await c.getForwardIndex()??{entries:[],parsedTo:0,done:!1,stopped:null},E=await lc(e,r.source,n,{partial:!0}),l=await Hn.fromForwardIndex(e,E,R);return r.libraryPkgId&&l.use(await this.reader(r.libraryPkgId)),l}}let s=await lc(e,r.source,n),i=r.role!=="libraries"&&!r.libraryPkgId,a=await Hn.open(e,s,{requireLibraries:i});r.libraryPkgId&&(a.use(await this.reader(r.libraryPkgId)),a.assertLibrariesPresent());let{title:o}=a;return o&&o!==r.title&&await es(e,{title:o}),a}async refresh(e,r){if(!r.partial)return r;let n=new Ye(e);if((await n.getArchiveMeta())?.complete)return this.readers.delete(e),this.reader(e);let i=await n.getForwardIndex();return i&&await r.absorb(i),r}async fileFor(e){let r=this.files.get(e);if(r)return r;let n=this.pendingFiles.get(e);if(n)return n.promise;let s,i,a=new Promise((c,f)=>{s=c,i=f}),o={promise:a,resolve:s,timer:setTimeout(()=>{this.pendingFiles.get(e)===o&&this.pendingFiles.delete(e),i(new ie("bad-archive","The picked file is no longer available"))},15e3)};return this.pendingFiles.set(e,o),await this.postToClient("",{type:"need-file",pkgId:e}),a}};async function Jd(t,e,r,n={}){let s=n.stallMs??15e3,i=-1,a=Date.now(),o=!1,c=null,f=qn(t.pkgId,e,()=>c?.());try{for(;;){let R=await t.getMeta(e);if(R&&(R.available>=r||R.complete))return R;let E=R?.available??0;if(E!==i)i=E,a=Date.now(),o=!1;else if(Date.now()-a>=s){if(o||!n.onStall)return null;await n.onStall(),o=!0,a=Date.now()}await new Promise(l=>{let h=setTimeout(l,500);c=()=>{clearTimeout(h),l()}}),c=null}}finally{f()}}function Wr(t,e){let r=new Headers({"content-type":Yi(t.name),"content-length":String(e.length),"accept-ranges":"bytes","cache-control":"no-store"});return e.contentRange&&r.set("content-range",e.contentRange),r}function mc(t){return new Response(null,{status:416,headers:{"content-range":`bytes */${t}`,"accept-ranges":"bytes"}})}function Qd(t){return new Response(t,{status:503,headers:{"retry-after":"1","content-type":"text/plain; charset=utf-8"}})}function $d(t){return new Response(JSON.stringify(t),{headers:{"content-type":"application/json; charset=utf-8","cache-control":"no-store"}})}function pr(t,e){return new Response(t,{status:e,headers:{"content-type":"text/plain; charset=utf-8"}})}var Mi=class extends ie{constructor(e){super("bad-archive",`Package ${e} is not registered`),this.name="UnknownPackageError"}};function tg(t){return t instanceof ie?{ok:!1,code:t.code,message:t.message,missingLibraries:t.missingLibraries}:t instanceof Gt?{ok:!1,code:"quota",message:t.message}:{ok:!1,code:"bad-archive",message:t instanceof Error?t.message:String(t)}}export{jT as mountH5P};
|
|
22
|
+
</html>`}function $d(){let t=crypto.getRandomValues(new Uint8Array(16));return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}function tp(t){let e=t.endsWith("/")?t:`${t}/`,r=e.endsWith("h5p/")?e:`${e}h5p/`;return{base:r,virtual:`${r}virtual/`,frame:`${r}frame/`,ping:`${r}virtual/_ping`}}var ep=/^[0-9a-f]{32}$/;function rp(t,e){if(e===t.ping)return{kind:"ping"};if(e.startsWith(t.frame)){let r=e.slice(t.frame.length).split(/[/?#]/,1)[0];return ep.test(r)?{kind:"frame",pkgId:r}:{kind:"none"}}if(e.startsWith(t.virtual)){let r=e.slice(t.virtual.length).split(/[?#]/,1)[0],n=r.indexOf("/");if(n<0)return{kind:"none"};let s=r.slice(0,n);return ep.test(s)?{kind:"entry",pkgId:s,path:r.slice(n+1)}:{kind:"none"}}return{kind:"none"}}async function _c(t,e,r,n={}){let s=n.stallMs??15e3,i=-1,a=-1,o=Date.now(),c=!1,l=null,R=en(t.pkgId,e,p=>{p.received!==void 0&&p.received!==a&&(a=p.received,o=Date.now(),c=!1),l?.()});try{for(;;){let p=await t.getMeta(e);if(p&&(p.available>=r||p.complete)||p?.error)return p;let f=p?.available??0;if(f!==i)i=f,o=Date.now(),c=!1;else if(Date.now()-o>=s){if(c||!n.onStall)return null;await n.onStall(),c=!0,o=Date.now()}await new Promise(m=>{let h=setTimeout(m,500);l=()=>{clearTimeout(h),m()}}),l=null}}finally{R()}}function Tc(t){if(!Number.isFinite(t)||t<0)return"? B";if(t<1024)return`${Math.round(t)} B`;let e=["kB","MB","GB","TB"],r=t/1024,n=0;for(;r>=1024&&n<e.length-1;)r/=1024,n+=1;return`${r<10?r.toFixed(1):String(Math.round(r))} ${e[n]}`}async function og(){let t=typeof navigator>"u"?void 0:navigator.storage;if(typeof t?.estimate!="function")return null;try{let{usage:e,quota:r}=await t.estimate();return typeof e!="number"||typeof r!="number"?null:{usage:e,quota:r}}catch{return null}}async function np(t,e){let r=await og(),n=e===null?`Not enough storage for ${t}`:`Not enough storage: ${t} needs ${Tc(e)}`;return r?`${n}; this site is using ${Tc(r.usage)} of the ${Tc(r.quota)} the browser allows it.`:`${n}.`}function uA(t,e={}){let r=tp(e.scope??t.registration.scope),n=new Ac(t,r);t.addEventListener("install",()=>{t.skipWaiting()}),t.addEventListener("activate",s=>{s.waitUntil((async()=>{await Bc(),await t.clients.claim()})())}),t.addEventListener("message",s=>{s.waitUntil(n.handleMessage(s))}),t.addEventListener("fetch",s=>{let i=rp(r,s.request.url);i.kind!=="none"&&s.respondWith(n.handleFetch(s,i))})}var Ac=class{constructor(e,r){this.worker=e;this.routes=r;this.readers=new Map;this.files=new Map;this.pendingFiles=new Map;this.requestedJobs=new Set;this.inflating=new Map;this.storageFullUntil=0;Xc(n=>{this.readers.delete(n)})}async handleMessage(e){let r=e.data;if(!r||typeof r.type!="string")return;let n=s=>{let i=e.ports[0];i&&i.postMessage(s)};try{switch(r.type){case"ping":n({ok:!0,type:"pong",version:Yi});return;case"register":await this.registerPackage(r.record),n({ok:!0,type:"ack"});return;case"index":{let s=await this.refresh(r.pkgId,await this.reader(r.pkgId));s.partial||await op(ss(r.pkgId,{status:"indexed",lastPlayed:Date.now()})),n({ok:!0,type:"indexed",pkgId:r.pkgId,entryCount:s.entries.size,title:s.title,prefetch:s.prefetchable(),partial:s.partial||void 0,ready:s.partial?s.bootReady():void 0});return}case"attach-libraries":{await ss(r.pkgId,{libraryPkgId:r.libraryPkgId}),this.readers.delete(r.pkgId),n({ok:!0,type:"ack"});return}case"file":{this.files.set(r.pkgId,r.file);let s=this.pendingFiles.get(r.pkgId);s&&(clearTimeout(s.timer),s.resolve(r.file),this.pendingFiles.delete(r.pkgId)),n({ok:!0,type:"ack"});return}}}catch(s){n(await lg(s))}}async registerPackage(e){try{await ns(e)}catch(r){if(!$r(r)||!await Rr(e.pkgId))throw r}this.readers.delete(e.pkgId)}async handleFetch(e,r){try{switch(r.kind){case"ping":return cp({version:Yi});case"frame":return await this.serveFrame(r.pkgId);case"entry":return await this.serveEntry(e,r.pkgId,r.path);default:return new Response(null,{status:404})}}catch(n){return n instanceof zi?Yt(n.message,404):n instanceof ie&&n.code==="bad-archive"?Yt(n.message,422):n instanceof Nt?Yt(n.message,507):Yt(n instanceof Error?n.message:"Internal player error",500)}}async serveFrame(e){let r=await Rr(e);if(!r)return Yt("Unknown package",404);await op(Wc(e));let n=$d(),s=Qd({pkgId:e,virtualRoot:`${this.routes.virtual}${e}`,assets:r.frameAssets,nonce:n,title:r.title,allowOrigins:r.allowOrigins});return new Response(s,{status:200,headers:{"content-type":"text/html; charset=utf-8","cache-control":"no-store"}})}async serveEntry(e,r,n){let s=jc(n);if(s===null)return Yt("Bad entry path",400);let i=await this.reader(r),a=i.get(s);if(!a&&i.partial){let c=await this.awaitEntry(r,i,s);if(c==="stalled")return ip(`The download has stalled before ${s}`);i=c.reader,a=c.located}if(!a)return new Response(null,{status:404});if(s==="h5p.json"&&i.hasFallbacks)return cp(i.mergedManifest());let o=e.request.headers.get("range");switch(a.entry.strategy.kind){case"inline":return this.serveInline(a,o);case"slice":return this.serveSlice(a,o);case"chunked":return this.serveChunked(e,a,o)}}async serveInline({reader:e,entry:r},n){let s=new Ye(e.pkgId),i=await s.getWhole(r.name);if(!i&&Date.now()>=this.storageFullUntil)try{await this.cacheInline(s,e,r),i=await s.getWhole(r.name)}catch(o){if(!(o instanceof Nt))throw o;this.storageFullUntil=Date.now()+1e4}if(!i)return this.serveUncached(e,r,n);if(!i.body)return Yt("Entry could not be read",500);let a=tn(n,r.size);return a==="unsatisfiable"?Bi(r.size):a==="none"?new Response(i.body,{status:200,headers:Ht(r,{length:r.size})}):new Response(bt(i.body,a),{status:206,headers:Ht(r,{length:a.end-a.start+1,contentRange:rn(a,r.size)})})}cacheInline(e,r,n){let s=`${r.pkgId}\0${n.name}`,i=this.inflating.get(s);if(i)return i;let a=e.putWhole(n.name,()=>r.inflate(n),Xi(n.name),n.size).finally(()=>this.inflating.delete(s));return this.inflating.set(s,a),a}async serveUncached(e,r,n){let s=tn(n,r.size);if(s==="unsatisfiable")return Bi(r.size);let i=s==="none"||s.start===0&&s.end===r.size-1,a=s==="none"?{start:0,end:r.size-1}:s,o;return r.size===0?o=null:r.method===jn?o=await e.sliceStream(r,a):i?o=e.inflate(r):o=bt(e.inflate(r),a),s==="none"?new Response(o,{status:200,headers:Ht(r,{length:r.size})}):new Response(o,{status:206,headers:Ht(r,{length:a.end-a.start+1,contentRange:rn(a,r.size)})})}async serveSlice({reader:e,entry:r},n){let s=tn(n,r.size);if(s==="unsatisfiable")return Bi(r.size);let i=s==="none"?{start:0,end:r.size-1}:s,a=await e.sliceStream(r,i);return s==="none"?new Response(a,{status:200,headers:Ht(r,{length:r.size})}):new Response(a,{status:206,headers:Ht(r,{length:i.end-i.start+1,contentRange:rn(i,r.size)})})}async serveChunked(e,{reader:r,entry:n},s){let i=r.pkgId,a=new Ye(i),o=()=>this.requestJob(e,i,n.name),c=async f=>{let m=await _c(a,n.name,f,{onStall:o});return m!==null&&(m.complete||m.available>=f)},l=await a.getMeta(n.name);if(l?.error){if(Date.now()-l.error.at<1e4)return ap(l.error);await a.setMeta(n.name,{size:n.size,available:0,complete:!1}),l=void 0}if(!l||!l.complete&&l.available===0){if(await o(),l=await _c(a,n.name,1,{onStall:o}),!l)return ip("Extraction has not produced any bytes yet");if(l.error&&l.available===0)return ap(l.error)}let R=tn(s,n.size);if(R==="unsatisfiable")return Bi(n.size);if(R==="none")return new Response(a.readRange(n.name,{start:0,end:n.size-1},c),{status:200,headers:Ht(n,{length:n.size})});let p=R.start<l.available?{start:R.start,end:Math.min(R.end,l.available-1)}:R;return new Response(a.readRange(n.name,p,c),{status:206,headers:Ht(n,{length:p.end-p.start+1,contentRange:rn(p,n.size)})})}async awaitEntry(e,r,n){let s=new Ye(e),i=null,a=en(e,Vi,()=>i?.()),o=en(e,it,()=>i?.()),c=-1,l=Date.now();try{for(;;){let R=await this.refresh(e,r),p=R.get(n);if(p||!R.partial||R.provablyAbsent(n))return{reader:R,located:p};let f=(await s.getArchiveMeta())?.available??0;if(f!==c)c=f,l=Date.now();else if(Date.now()-l>=15e3)return"stalled";await new Promise(m=>{let h=setTimeout(m,500);i=()=>{clearTimeout(h),m()}}),i=null,r=R}}finally{a(),o()}}async requestJob(e,r,n){let s=`${r}\0${n}`;this.requestedJobs.has(s)||(this.requestedJobs.add(s),setTimeout(()=>this.requestedJobs.delete(s),2e3),await this.postToClient(e.clientId,{type:"need-job",pkgId:r,entry:n}))}async postToClient(e,r){let n=e?await this.worker.clients.get(e):void 0;if(n){n.postMessage(r);return}let s=await this.worker.clients.matchAll({type:"window"});for(let i of s)i.postMessage(r)}reader(e){let r=this.readers.get(e);if(r)return r;let n=this.openReader(e);return this.readers.set(e,n),n.catch(()=>this.readers.delete(e)),n}async openReader(e){let r=await Rr(e);if(!r)throw new zi(e);let n=r.source.type==="file"?await this.fileFor(e):void 0;if(r.source.type==="chunked"){let c=new Ye(e);if(!(await c.getArchiveMeta())?.complete){let R=await c.getForwardIndex()??{entries:[],parsedTo:0,done:!1,stopped:null},p=await qi(e,r.source,n,{partial:!0}),f=await Zn.fromForwardIndex(e,p,R);return r.libraryPkgId&&f.use(await this.reader(r.libraryPkgId)),f}}let s=await qi(e,r.source,n),i=r.role!=="libraries"&&!r.libraryPkgId,a=await Zn.open(e,s,{requireLibraries:i});r.libraryPkgId&&(a.use(await this.reader(r.libraryPkgId)),a.assertLibrariesPresent());let{title:o}=a;return o&&o!==r.title&&await ss(e,{title:o}),a}async refresh(e,r){if(!r.partial)return r;let n=new Ye(e);if((await n.getArchiveMeta())?.complete)return this.readers.delete(e),this.reader(e);let i=await n.getForwardIndex();return i&&await r.absorb(i),r}async fileFor(e){let r=this.files.get(e);if(r)return r;let n=this.pendingFiles.get(e);if(n)return n.promise;let s,i,a=new Promise((c,l)=>{s=c,i=l}),o={promise:a,resolve:s,timer:setTimeout(()=>{this.pendingFiles.get(e)===o&&this.pendingFiles.delete(e),i(new ie("bad-archive","The picked file is no longer available"))},15e3)};return this.pendingFiles.set(e,o),await this.postToClient("",{type:"need-file",pkgId:e}),a}};function Ht(t,e){let r=new Headers({"content-type":Xi(t.name),"content-length":String(e.length),"accept-ranges":"bytes","cache-control":"no-store"});return e.contentRange&&r.set("content-range",e.contentRange),r}function Bi(t){return new Response(null,{status:416,headers:{"content-range":`bytes */${t}`,"accept-ranges":"bytes"}})}function ip(t){return new Response(t,{status:503,headers:{"retry-after":"1","content-type":"text/plain; charset=utf-8"}})}function ap(t){return Yt(t.message,t.code==="quota"?507:500)}async function op(t){try{await t}catch(e){if(!$r(e))throw e}}function cp(t){return new Response(JSON.stringify(t),{headers:{"content-type":"application/json; charset=utf-8","cache-control":"no-store"}})}function Yt(t,e){return new Response(t,{status:e,headers:{"content-type":"text/plain; charset=utf-8"}})}var zi=class extends ie{constructor(e){super("bad-archive",`Package ${e} is not registered`),this.name="UnknownPackageError"}};async function lg(t){return t instanceof ie?{ok:!1,code:t.code,message:t.message,missingLibraries:t.missingLibraries}:t instanceof Nt?{ok:!1,code:"quota",message:t.message}:$r(t)?{ok:!1,code:"quota",message:await np("this package",null)}:{ok:!1,code:"bad-archive",message:t instanceof Error?t.message:String(t)}}export{uA as mountH5P};
|