@missing-elements/h5p-offline-player 0.1.0 → 0.1.1

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.
@@ -1,1780 +1,11 @@
1
- const xt = '"use strict";(()=>{var Bd=Object.defineProperty;var ie=(t,e)=>()=>(t&&(e=t(t=0)),e);var Hd=(t,e)=>{for(var r in e)Bd(t,r,{get:e[r],enumerable:!0})};var Xr,bt,w,Gt,Se,K,Vn,We,lc,Ci,Z,Xn,ue=ie(()=>{Xr=new Date(2107,11,31,23,59,58),bt=new Date(1980,0,1),w=void 0,Gt=1/0,Se="undefined",K="function",Vn="object",We="string",lc="number",Ci="boolean",Z=new Uint8Array,Xn=Symbol.asyncDispose||Symbol()});function Er(t){if(t&&typeof t!=K)throw new Error(Hc);return t}function qr(t){if(t&&(typeof t.addEventListener!=K||typeof t.aborted!=Ci))throw new Error(Yc);return t||w}function Xt(t){if(t&&t.aborted)throw t.reason===w?new DOMException(Gc,Yd):t.reason}function ss(t,e){if(t&&typeof t!=We||e&&!(e instanceof Uint8Array))throw new Error(Mi)}function pr(t){if(t!==w&&typeof t!=Ci&&t!==Kr)throw new Error(Wc);return t}function vi(t,e,r){if(!Number.isInteger(t)||t<0||t>e)throw new Error(r)}function mr(t,e,r){t!==w&&vi(t,e,r)}function Ot(t){return typeof t==We&&t.trim()?Number(t):t}var fc,uc,dc,Ec,pc,Zn,jn,Zr,Kn,mc,hc,gc,Rc,wc,_c,Tc,Ac,yc,qn,Jn,Qn,$n,Sc,Ic,bc,Nc,es,Oc,Dc,Pc,xi,Li,Cc,xc,jr,Vt,Lc,Uc,Fc,Mc,vc,kc,Ui,zc,Bc,Fi,ts,rs,Nt,ns,ot,Kr,Hc,Yc,Mi,Wc,Gc,Yd,hr=ie(()=>{ue();fc="filenameEncoding",uc="commentEncoding",dc="decodeText",Ec="extractPrependedData",pc="extractAppendedData",Zn="password",jn="rawPassword",Zr="passThrough",Kn="signal",mc="checkPasswordOnly",hc="checkOverlappingEntryOnly",gc="checkOverlappingEntry",Rc="checkAmbiguity",wc="checkLocalDirectory",_c="checkLocalFilename",Tc="checkSignature",Ac="checkCrc32",yc="checkAuthenticationCode",qn="useWebWorkers",Jn="useCompressionStream",Qn="transferStreams",$n="preventClose",Sc="encryptionStrength",Ic="extendedTimestamp",bc="ntfsTimestamp",Nc="keepOrder",es="level",Oc="bufferedWrite",Dc="createTempStream",Pc="dataDescriptorSignature",xi="useUnicodeFileNames",Li="dataDescriptor",Cc="supportZip64SplitFile",xc="encodeText",jr="offset",Vt="usdz",Lc="unixExtraFieldType",Uc="localExtraField",Fc="centralExtraField",Mc="strictness",vc="filenameValidation",kc="normalizeFilename",Ui="maxAppendedDataSize",zc="decryptCentralDirectory",Bc="signCentralDirectory",Fi="entry",ts="filename",rs="comment",Nt="strict",ns="balanced",ot="tolerant",Kr="compressed",Hc="Invalid option (must be a function)",Yc="Invalid signal (must be an AbortSignal instance)",Mi="Invalid password (password must be a string, rawPassword must be a Uint8Array)",Wc="Invalid passThrough option (must be a boolean or \'compressed\')",Gc="The operation was aborted",Yd="AbortError"});function at(){return ki}function Jr(t){return zi(t.chunkSize)}function zi(t){return t=Ot(t),Number.isInteger(t)&&t>=Xc?Math.max(t,Wd):Vc}function Bi(t){Object.assign(ki,nl(sl(t)))}function nl(t){let e={};for(let r of Vd){let n=t[r];n!==w&&(e[r]=Xd(r,n))}return e}function Xd(t,e){if(tl.includes(t)){if(e=Ot(e),t==Qc&&(!Number.isInteger(e)||e<Xc))throw new Error(Zc)}else if(rl.includes(t))Er(e);else if(t==$c){if(e&&typeof e!=We)throw new Error(jc)}else if(el.includes(t)&&e&&typeof e!=We&&typeof e!=K)throw new Error(Kc);return e}function sl(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 Dt(t){let e=nl(sl(t));Object.assign(Jc,e),Object.assign(ki,e)}var Vc,Wd,Xc,Zc,jc,Kc,qc,Jc,Qc,$c,el,Gd,tl,rl,Vd,ki,Ge=ie(()=>{ue();hr();Vc=64*1024,Wd=64,Xc=1,Zc="Invalid maxWorkers (must be an integer greater than 0)",jc="Invalid baseURI (must be a string)",Kc="Invalid URI (must be a string or a function returning a string)",qc=2;try{typeof navigator!=Se&&navigator.hardwareConcurrency&&(qc=navigator.hardwareConcurrency)}catch{}Jc={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:Vc,maxWorkers:qc,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof CompressionStream!=Se&&CompressionStream,DecompressionStream:typeof DecompressionStream!=Se&&DecompressionStream},Qc="maxWorkers",$c="baseURI",el=["wasmURI","workerURI"],Gd=["useCompressionStream","useWebWorkers","transferStreams"],tl=["chunkSize",Qc,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],rl=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],Vd=[$c,...el,...Gd,...tl,...rl],ki={...Jc}});function Be(t,e){let r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r}function os(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 Pt=ie(()=>{});function Re(t){return!!t&&typeof t=="object"}var Zt=ie(()=>{});var Qr,ol,Zd,jd,Kd,qd,Jd,Qd,$d,Ve,$r=ie(()=>{Qr=[[],[],[],[],[],[],[],[]];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;Qr[0][t]=e}for(let t=0;t<256;t++)for(let e=1;e<8;e++){let r=Qr[e-1][t];Qr[e][t]=r>>>8^Qr[0][r&255]}[ol,Zd,jd,Kd,qd,Jd,Qd,$d]=Qr,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),o=n-8;for(;s<=o;s+=8){let a=r^i.getInt32(s,!0),c=i.getInt32(s+4,!0);r=$d[a&255]^Qd[a>>>8&255]^Jd[a>>>16&255]^qd[a>>>24&255]^Kd[c&255]^jd[c>>>8&255]^Zd[c>>>16&255]^ol[c>>>24&255]}}for(;s<n;s++)r=r>>>8^ol[(r^e[s])&255];this.crc=r}get(){return~this.crc}}});var en,al=ie(()=>{$r();en=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 gr(t){if(typeof TextEncoder==Se){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 Hi=ie(()=>{ue()});function tn(t,e){iE();let r=new Int32Array(60),n=oE(t,r),s=new Int32Array(16/4),i=dl(e),o=0,a=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),m=l.length,E=0;for(;E+16<=m;E+=16)p(),h.setInt32(E,h.getInt32(E)^s[0]),h.setInt32(E+4,h.getInt32(E+4)^s[1]),h.setInt32(E+8,h.getInt32(E+8)^s[2]),h.setInt32(E+12,h.getInt32(E+12)^s[3]);if(E<m){p();for(let d=0;E<m;E++,d++)l[E]^=s[d>>2]>>>24-8*(d&3)}}function p(){o=o+1|0,o||(a=a+1|0,a||(c=c+1|0,c||(f=f+1|0)));let l=as(o)^r[0],h=as(a)^r[1],m=as(c)^r[2],E=as(f)^r[3],d=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^C[E&255]^r[4],u=O[h>>>24]^D[m>>>16&255]^P[E>>>8&255]^C[l&255]^r[5],g=O[m>>>24]^D[E>>>16&255]^P[l>>>8&255]^C[h&255]^r[6],_=O[E>>>24]^D[l>>>16&255]^P[h>>>8&255]^C[m&255]^r[7];l=O[d>>>24]^D[u>>>16&255]^P[g>>>8&255]^C[_&255]^r[8],h=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^C[d&255]^r[9],m=O[g>>>24]^D[_>>>16&255]^P[d>>>8&255]^C[u&255]^r[10],E=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^C[g&255]^r[11],d=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^C[E&255]^r[12],u=O[h>>>24]^D[m>>>16&255]^P[E>>>8&255]^C[l&255]^r[13],g=O[m>>>24]^D[E>>>16&255]^P[l>>>8&255]^C[h&255]^r[14],_=O[E>>>24]^D[l>>>16&255]^P[h>>>8&255]^C[m&255]^r[15],l=O[d>>>24]^D[u>>>16&255]^P[g>>>8&255]^C[_&255]^r[16],h=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^C[d&255]^r[17],m=O[g>>>24]^D[_>>>16&255]^P[d>>>8&255]^C[u&255]^r[18],E=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^C[g&255]^r[19],d=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^C[E&255]^r[20],u=O[h>>>24]^D[m>>>16&255]^P[E>>>8&255]^C[l&255]^r[21],g=O[m>>>24]^D[E>>>16&255]^P[l>>>8&255]^C[h&255]^r[22],_=O[E>>>24]^D[l>>>16&255]^P[h>>>8&255]^C[m&255]^r[23],l=O[d>>>24]^D[u>>>16&255]^P[g>>>8&255]^C[_&255]^r[24],h=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^C[d&255]^r[25],m=O[g>>>24]^D[_>>>16&255]^P[d>>>8&255]^C[u&255]^r[26],E=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^C[g&255]^r[27],d=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^C[E&255]^r[28],u=O[h>>>24]^D[m>>>16&255]^P[E>>>8&255]^C[l&255]^r[29],g=O[m>>>24]^D[E>>>16&255]^P[l>>>8&255]^C[h&255]^r[30],_=O[E>>>24]^D[l>>>16&255]^P[h>>>8&255]^C[m&255]^r[31],l=O[d>>>24]^D[u>>>16&255]^P[g>>>8&255]^C[_&255]^r[32],h=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^C[d&255]^r[33],m=O[g>>>24]^D[_>>>16&255]^P[d>>>8&255]^C[u&255]^r[34],E=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^C[g&255]^r[35],d=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^C[E&255]^r[36],u=O[h>>>24]^D[m>>>16&255]^P[E>>>8&255]^C[l&255]^r[37],g=O[m>>>24]^D[E>>>16&255]^P[l>>>8&255]^C[h&255]^r[38],_=O[E>>>24]^D[l>>>16&255]^P[h>>>8&255]^C[m&255]^r[39];let A=40;n>10&&(l=O[d>>>24]^D[u>>>16&255]^P[g>>>8&255]^C[_&255]^r[40],h=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^C[d&255]^r[41],m=O[g>>>24]^D[_>>>16&255]^P[d>>>8&255]^C[u&255]^r[42],E=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^C[g&255]^r[43],d=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^C[E&255]^r[44],u=O[h>>>24]^D[m>>>16&255]^P[E>>>8&255]^C[l&255]^r[45],g=O[m>>>24]^D[E>>>16&255]^P[l>>>8&255]^C[h&255]^r[46],_=O[E>>>24]^D[l>>>16&255]^P[h>>>8&255]^C[m&255]^r[47],A=48),n>12&&(l=O[d>>>24]^D[u>>>16&255]^P[g>>>8&255]^C[_&255]^r[48],h=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^C[d&255]^r[49],m=O[g>>>24]^D[_>>>16&255]^P[d>>>8&255]^C[u&255]^r[50],E=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^C[g&255]^r[51],d=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^C[E&255]^r[52],u=O[h>>>24]^D[m>>>16&255]^P[E>>>8&255]^C[l&255]^r[53],g=O[m>>>24]^D[E>>>16&255]^P[l>>>8&255]^C[h&255]^r[54],_=O[E>>>24]^D[l>>>16&255]^P[h>>>8&255]^C[m&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 ul(t,e,r,n){let s=dl(t),i=new Uint8Array(n),o=new Uint8Array(e.length+4),a=new DataView(o.buffer);o.set(e);for(let c=1,f=0;f<n;c++,f+=20){a.setUint32(e.length,c),s.update(o,0,o.length);let R=s.digest(),p=R.slice();for(let l=1;l<r;l++){s.update(R,0,20),R=s.digest();for(let h=0;h<20;h++)p[h]^=R[h]}i.set(p.subarray(0,Math.min(20,n-f)),f)}return i}function dl(t){let e=sE(),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^rE,n[s]=i^nE}return e.update(r,0,64),{update(s,i,o){e.update(s,i,o)},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 sE(){let t=new Int32Array(cl),e=new Int32Array(16),r=new Uint8Array(64),n=new DataView(r.buffer),s=new Uint8Array(8),i=0,o=0;return{update:a,digest:c};function a(R,p,l){let h=p+l;if(o+=l,i){for(;p<h&&i<64;)r[i++]=R[p++];i==64&&(f(n,0),i=0)}if(p+64<=h){let m=new DataView(R.buffer,R.byteOffset,R.byteLength);for(;p+64<=h;p+=64)f(m,p)}for(;p<h;)r[i++]=R[p++]}function c(){let R=o*8,p=Math.floor(R/4294967296),l=R>>>0;for(a(eE,0,1);i!=56;)a(tE,0,1);s[0]=p>>>24,s[1]=p>>>16,s[2]=p>>>8,s[3]=p,s[4]=l>>>24,s[5]=l>>>16,s[6]=l>>>8,s[7]=l,a(s,0,8);let h=new Uint8Array(20),m=new DataView(h.buffer);for(let E=0;E<t.length;E++)m.setInt32(4*E,t[E]);return t.set(cl),i=0,o=0,h}function f(R,p){for(let g=0;g<16;g++)e[g]=R.getInt32(p+4*g);let l=t[0],h=t[1],m=t[2],E=t[3],d=t[4],u;for(let g=0;g<15;g+=5)d=(l<<5|l>>>27)+((m^E)&h^E)+d+1518500249+e[g]|0,h=h<<30|h>>>2,E=(d<<5|d>>>27)+((h^m)&l^m)+E+1518500249+e[g+1]|0,l=l<<30|l>>>2,m=(E<<5|E>>>27)+((l^h)&d^h)+m+1518500249+e[g+2]|0,d=d<<30|d>>>2,h=(m<<5|m>>>27)+((d^l)&E^l)+h+1518500249+e[g+3]|0,E=E<<30|E>>>2,l=(h<<5|h>>>27)+((E^d)&m^d)+l+1518500249+e[g+4]|0,m=m<<30|m>>>2;d=(l<<5|l>>>27)+((m^E)&h^E)+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,E=(d<<5|d>>>27)+((h^m)&l^m)+E+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,m=(E<<5|E>>>27)+((l^h)&d^h)+m+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=(m<<5|m>>>27)+((d^l)&E^l)+h+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,l=(h<<5|h>>>27)+((E^d)&m^d)+l+1518500249+u|0,m=m<<30|m>>>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=(l<<5|l>>>27)+(h^m^E)+d+1859775393+u|0,h=h<<30|h>>>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)+(l^h^m)+E+1859775393+u|0,l=l<<30|l>>>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,m=(E<<5|E>>>27)+(d^l^h)+m+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,h=(m<<5|m>>>27)+(E^d^l)+h+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,l=(h<<5|h>>>27)+(m^E^d)+l+1859775393+u|0,m=m<<30|m>>>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=(l<<5|l>>>27)+(h&m|(h|m)&E)+d+2400959708+u|0,h=h<<30|h>>>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)+(l&h|(l|h)&m)+E+2400959708+u|0,l=l<<30|l>>>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,m=(E<<5|E>>>27)+(d&l|(d|l)&h)+m+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,h=(m<<5|m>>>27)+(E&d|(E|d)&l)+h+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,l=(h<<5|h>>>27)+(m&E|(m|E)&d)+l+2400959708+u|0,m=m<<30|m>>>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=(l<<5|l>>>27)+(h^m^E)+d+3395469782+u|0,h=h<<30|h>>>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)+(l^h^m)+E+3395469782+u|0,l=l<<30|l>>>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,m=(E<<5|E>>>27)+(d^l^h)+m+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,h=(m<<5|m>>>27)+(E^d^l)+h+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,l=(h<<5|h>>>27)+(m^E^d)+l+3395469782+u|0,m=m<<30|m>>>2;t[0]=t[0]+l|0,t[1]=t[1]+h|0,t[2]=t[2]+m|0,t[3]=t[3]+E|0,t[4]=t[4]+d|0}}function iE(){if(!ll){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=El(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,C[r]=i>>>24|i<<8}ll=!0}}function oE(t,e){let r=t.length>>2,n=r+6,s=4*(n+1),i=1;for(let o=0;o<r;o++)e[o]=t[4*o]<<24|t[4*o+1]<<16|t[4*o+2]<<8|t[4*o+3];for(let o=r;o<s;o++){let a=e[o-1];o%r==0?(a=fl(a<<8|a>>>24)^i<<24,i=El(i)):r>6&&o%r==4&&(a=fl(a)),e[o]=e[o-r]^a}return n}function fl(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 El(t){return(t<<1^(t>>7)*27)&255}var eE,tE,cl,rE,nE,ce,O,D,P,C,ll,Yi=ie(()=>{eE=new Uint8Array([128]),tE=new Uint8Array(1),cl=new Int32Array([1732584193,4023233417,2562383102,271733878,3285377520]),rE=54,nE=92,ce=new Uint8Array(256),O=new Int32Array(256),D=new Int32Array(256),P=new Int32Array(256),C=new Int32Array(256),ll=!1});function cs(t){if(aE)return crypto.getRandomValues(t);throw new Error(Rr)}var aE,Xe,Ct,lt,Rr,ls=ie(()=>{ue();aE=typeof crypto!=Se&&typeof crypto.getRandomValues==K,Xe="Invalid password",Ct="Invalid authentication code",lt="zipjs-abort-check-password",Rr="Crypto API not supported"});function wl(t){Rl=t||tn}function _l(t,e,r,n){Object.assign(t,{ready:new Promise(s=>t.resolveReady=s),password:wE(e,r),strength:n-1,pendingInput:Z,discarded:!1})}function Tl(t,e){let r=t.readable.getReader(),n=new ReadableStream({async pull(s){try{let{value:i,done:o}=await r.read();o?s.close():s.enqueue(i)}catch(i){throw sn(e),r.cancel(i).catch(()=>{}),i}},cancel(s){return sn(e),r.cancel(s)}});Object.defineProperty(t,"readable",{get(){return n}})}function Al(t,e,r,n,s,i){let{engine:o,pendingInput:a}=t;a.length&&(e=Be(a,e));let c=e.length-s,f=c-c%Gi;if(r=_E(r,n+f),f){let R=xe(r,n,n+f);R.set(xe(e,0,f)),o.process(R,i)}return t.pendingInput=xe(e,f),r}async function hE(t,e,r,n){let s=await yl(t,e,r,xe(n,0,rn[e])),i=xe(n,rn[e]);if(s[0]!=i[0]||s[1]!=i[1])throw sn(t),new Error(Xe)}function sn(t){let{engine:e}=t;t.discarded=!0,e&&e.dispose&&e.dispose()}async function gE(t,e,r){let n=cs(new Uint8Array(rn[e])),s=await yl(t,e,r,n);return Be(n,s)}async function yl(t,e,r,n){t.password=null;let s=pE[e],i=await RE(r,n,s*2+Wi);return t.engine=Rl(xe(i,0,s),xe(i,s,s*2)),t.discarded&&sn(t),xe(i,s*2)}async function RE(t,e,r){if(pl)try{let n=await nn.importKey(cE,t,uE,!1,EE);return new Uint8Array(await nn.deriveBits(Object.assign({salt:e},dE),n,r*8))}catch{pl=!1}return ul(t,e,hl,r)}function wE(t,e){return e===w?gr(t):e}function _E(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 Gi,cE,ml,lE,fE,hl,uE,dE,EE,rn,pE,xt,Wi,gl,nn,mE,pl,Rl,fs,us,Vi=ie(()=>{ue();Hi();Pt();Yi();ls();Gi=16,cE="raw",ml={name:"PBKDF2"},lE={name:"HMAC"},fE="SHA-1",hl=1e3,uE=Object.assign({hash:lE},ml),dE=Object.assign({iterations:hl,hash:{name:fE}},ml),EE=["deriveBits"],rn=[8,12,16],pE=[16,24,32],xt=10,Wi=2,gl=typeof crypto!=Se,nn=gl&&crypto.subtle,mE=gl&&typeof nn!=Se,pl=mE&&typeof nn.importKey==K&&typeof nn.deriveBits==K,Rl=tn,fs=class extends TransformStream{constructor({password:e,rawPassword:r,encryptionStrength:n,checkPasswordOnly:s,checkAuthenticationCode:i=!0}){let o={};super({start(){_l(o,e,r,n)},async transform(a,c){let{password:f,strength:R,resolveReady:p,ready:l}=o;if(f?(await hE(o,R,f,xe(a,0,rn[R]+Wi)),a=xe(a,rn[R]+Wi),s?(sn(o),c.error(new Error(lt))):p()):await l,o.discarded)return;let h=new Uint8Array(a.length-xt-(a.length-xt)%Gi);c.enqueue(Al(o,a,h,0,xt,!0))},async flush(a){let{engine:c,pendingInput:f,ready:R}=o;if(c){if(await R,o.discarded)return;let p=xe(f,f.length-xt),l=new Uint8Array(xe(f,0,f.length-xt));c.process(l,!0);let h=c.digest(),m=f.length<xt?1:0;for(let E=0;E<xt;E++)m|=h[E]^p[E];if(m&&i){a.error(new Error(Ct));return}a.enqueue(l)}}}),Tl(this,o)}},us=class extends TransformStream{constructor({password:e,rawPassword:r,encryptionStrength:n}){let s={};super({start(){_l(s,e,r,n)},async transform(i,o){let{password:a,strength:c,resolveReady:f,ready:R}=s,p=Z;if(a?(p=await gE(s,c,a),f()):await R,s.discarded)return;let l=new Uint8Array(p.length+i.length-i.length%Gi);l.set(p,0),o.enqueue(Al(s,i,l,p.length,0,!1))},async flush(i){let{engine:o,pendingInput:a,ready:c}=s;if(o){if(await c,s.discarded)return;let f=new Uint8Array(a);o.process(f,!1);let R=xe(o.digest(),0,xt);i.enqueue(Be(f,R))}}}),Tl(this,s)}}});function Nl(t,e,r,n){Object.assign(t,{password:e,rawPassword:r,passwordVerification:n}),TE(t,e,r)}function Sl(t,e){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=Ol(t)^e[n],ps(t,r[n]);return r}function Il(t,e){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=Ol(t)^e[n],ps(t,e[n]);return r}function TE(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++)ps(t,r[s]);else for(let s=0;s<e.length;s++)ps(t,e.charCodeAt(s))}function ps(t,e){let[,r]=t.cryptoKeys;t.crcKey0.append([e]);let n=~t.crcKey0.get();r=bl(Math.imul(bl(r+Dl(n)),134775813)+1),t.crcKey2.append([r>>>24]);let s=~t.crcKey2.get();t.cryptoKeys=[n,r,s]}function Ol(t){let e=t.cryptoKeys[2]|2;return Dl(Math.imul(e,e^1)>>>8)}function Dl(t){return t&255}function bl(t){return t&4294967295}var wr,ds,Es,Pl=ie(()=>{$r();ls();wr=12,ds=class extends TransformStream{constructor({password:e,rawPassword:r,passwordVerification:n,checkPasswordOnly:s}){super({start(){Nl(this,e,r,n)},transform(i,o){let a=this;if(a.password||a.rawPassword){let c=Sl(a,i.subarray(0,wr));if(a.password=a.rawPassword=null,(c[wr-1]^a.passwordVerification)!=0)throw new Error(Xe);i=i.subarray(wr)}s?o.error(new Error(lt)):o.enqueue(Sl(a,i))}})}},Es=class extends TransformStream{constructor({password:e,rawPassword:r,passwordVerification:n}){super({start(){Nl(this,e,r,n)},transform(s,i){let o=this,a,c;if(o.password||o.rawPassword){o.password=o.rawPassword=null;let f=cs(new Uint8Array(wr));f[wr-1]=o.passwordVerification,a=new Uint8Array(s.length+f.length),a.set(Il(o,f),0),c=wr}else a=new Uint8Array(s.length),c=0;a.set(Il(o,s),c),i.enqueue(a)}})}}});function He(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=He(t);let r=e?{type:e}:{};if(AE())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 AE(){return typeof Blob.prototype.stream!=K||new Blob([]).stream()instanceof ReadableStream}function Xi(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=ie(()=>{ue()});function ms(t){return yE.get(t)}function hs(t){return Zi.get(t)}function SE(t,e){let{CompressionStream:r,DecompressionStream:n}=e;if(typeof r!=K&&typeof n!=K)throw new Error(Cl);Zi.set(t,{CompressionStream:r,DecompressionStream:n})}async function xl(t,e){!Zi.has(t)&&e&&SE(t,await import(e))}var Cl,ut,yE,Zi,qt=ie(()=>{ue();Cl="Invalid codec module",ut="Compression method not supported",yE=new Map,Zi=new Map});function NE(t,e,r,n,s){let i=e.writable.getWriter(),o=e.readable.getReader(),a=n===w?new Ve:w,c=0,f=!1,R=!1,p,l,h=new ReadableStream({start(A){l=A},pull(){g()},cancel(A){return R=!0,g(),o.cancel(A)}});return m(),E(),h;async function m(){let A=t.getReader();try{let T=new Uint8Array(Fl);for(T.set(bE),await i.write(T);;){await u(),await i.ready;let{value:I,done:N}=await Hl(A,s);if(N)break;await i.write(I)}a&&await i.write(new Uint8Array(0));let y=new Uint8Array(ji),S=L(y);S.setUint32(0,a?a.get():n,!0),S.setUint32(4,r,!0),f=!0,await i.write(y),await i.close()}catch(T){await Bl(i,T),await _s(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(Qe);a&&a.append(A),l.enqueue(A)}R||(R=!0,l.close())}catch(A){_(A),await _s(o,A)}}function d(){return o.read().catch(A=>{if(f){if(!a)throw As(A,Lt);if(c!=r)throw As(A,Qe);return{done:!0}}throw Yl(A,s)})}function u(){if(!R&&l.desiredSize<=0)return new Promise(A=>p=A)}function g(){if(p){let A=p;p=w,A()}}function _(A){R||(R=!0,l.error(A),g())}}function qi(t,e){if(!t)return!1;let r=Ll.get(t);r||(r=new Map,Ll.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 ys(t){return qi(t,Ki)}function Ji(t){return qi(t,Tr)}function Ml(t,e,r){e=dt(e,new TransformStream({flush:r})),Object.defineProperty(t,"readable",{get(){return e}})}function vl(t,e,r){if(!t)throw new Error(ut);return new t(e,r)}function kl(t,e,r){if(t&&e)return e;if(r&&r.requiresModule)return r}function zl(t,e,r,n,s,i){let o=e&&n?n:s||n,a=r.deflate64?Ul:Ki,c;try{c=new o(a,r)}catch(f){if(e&&s&&o!=s)c=new s(a,r);else throw f}return an(t,c,i)}function dt(t,e){return He(t).pipeThrough(e)}function an(t,e,r){let n=e.writable.getWriter(),s=t.getReader();return i(),e.readable;async function i(){try{for(;;){await n.ready;let o=await Hl(s,r);if(o.done){await n.close();break}await n.write(o.value)}}catch(o){await Bl(n,o),await _s(s,o)}}}async function Bl(t,e){try{await t.abort(e)}catch{}}async function _s(t,e){try{await t.cancel(e)}catch{}}function Hl(t,e){let r=t.read();return e?r.catch(n=>{throw e.add(n),n}):r}function Yl(t,e){return e.has(t)?t:As(t,Wl(t)?Qt:Jt)}function Ts(t){return Wl(t)?As(t,Qt):t}function Wl(t){return Re(t)&&t.code==IE}function As(t,e){let r=new Error(e);return r.cause=t,r}function OE(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 _s(r,s),Yl(s,e)}},cancel(n){return r.cancel(n)}})}var Qe,Jt,Qt,Lt,IE,Ki,Ul,Tr,Fl,ji,bE,gs,Rs,ws,Ll,Qi=ie(()=>{$r();al();Vi();Pl();ls();ue();Pt();jt();Zt();qt();Qe="Invalid uncompressed size",Jt="Invalid compressed data",Qt="Codec out of memory",Lt="Invalid CRC32",IE="Z_MEM_ERROR",Ki="deflate-raw",Ul="deflate64-raw",Tr="gzip",Fl=10,ji=8,bE=[31,139,8],gs=class extends TransformStream{constructor(e,{chunkSize:r,CompressionStreamFallback:n,CompressionStream:s}){super({});let{compressed:i,encrypted:o,useCompressionStream:a,zipCrypto:c,computeCrc32:f,level:R,deflate64:p,format:l,compressionMethod:h,inputSize:m}=e,E=this,d,u,g,_=super.readable,A=l&&hs(l),T=kl(a,s,n),y=f&&i&&!p&&!A&&(!o||c)&&!!T;if((!o||c)&&f&&!y&&(d=new en,_=dt(_,d)),i)if(A)_=an(_,vl(A.CompressionStream,l,{level:R,chunkSize:r,compressionMethod:h,uncompressedSize:m}));else if(y)g=new Rs,_=an(_,new T(Tr,{level:R,chunkSize:r})),_=dt(_,g);else try{_=zl(_,a,{level:R,chunkSize:r},s,n)}catch(S){if(!a&&n)throw Ts(S);let I;try{I=new s(Tr)}catch{throw Ts(S)}_=an(_,I),_=dt(_,new Rs)}o&&(c?_=dt(_,new Es(e)):(u=new us(e),_=dt(_,u))),Ml(E,_,()=>{(!o||c)&&f&&(E.crc32=y?g.crc32:new DataView(d.value.buffer).getUint32(0))})}},Rs=class extends TransformStream{constructor(){let e,r=Fl,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 o=n.length+s.length;if(o<=ji){n=Be(n,s);return}let a=o-ji,c=Math.min(a,n.length);i.enqueue(Be(n.subarray(0,c),s.subarray(0,a-c))),n=Be(n.subarray(c),s.subarray(a-c))},flush(){let s=L(n);e.crc32=s.getUint32(0,!0),e.uncompressedSize=s.getUint32(4,!0)}}),e=this}};ws=class extends TransformStream{constructor(e,{chunkSize:r,DecompressionStreamFallback:n,DecompressionStream:s}){super({});let{zipCrypto:i,encrypted:o,checkCrc32:a,crc32:c,compressed:f,useCompressionStream:R,deflate64:p,format:l,compressionMethod:h,rawBitFlag:m,outputSize:E}=e,d,u,g,_=super.readable;if(o&&(i?_=dt(_,new ds(e)):(u=new fs(e),_=dt(_,u))),f){let A=new Set,T=l&&hs(l),y;if(T)_=an(_,vl(T.DecompressionStream,l,{chunkSize:r,compressionMethod:h,rawBitFlag:m,uncompressedSize:E}),A);else{let S=kl(R,s,n);if(a&&!p&&c!==w&&E!==w&&S)try{y=new S(Tr,{chunkSize:r})}catch{y=w}if(!y)try{_=zl(_,R,{chunkSize:r,deflate64:p},s,n,A)}catch(I){if(p||E===w||!R&&n)throw Ts(I);try{y=new s(Tr)}catch{throw Ts(I)}}}y?(g=!0,_=NE(_,y,E,c,A)):_=OE(_,A)}a&&!g&&(d=new en,_=dt(_,d)),Ml(this,_,()=>{if(d){let A=new DataView(d.value.buffer).getUint32(0,!1);if(c!=A)throw new Error(Lt)}})}},Ll=new Map});var DE,Gl,Vl,Xl,$i,Zl,jl,Ar,Is,Ss,cn,bs=ie(()=>{ue();Qi();DE=64*1024,Gl="message",Vl="start",Xl="pull",$i="data",Zl="ack",jl="close",Ar="deflate",Is="inflate",Ss=class extends TransformStream{constructor(e,r){super({});let n=this,{codecType:s}=e,i;s.startsWith(Ar)?i=gs:s.startsWith(Is)&&(i=ws),n.outputSize=0;let o=0,a=new i(e,r),c=super.readable,f=new TransformStream({transform(p,l){p&&p.length&&(o+=p.length,l.enqueue(p))},flush(){Object.assign(n,{inputSize:o})}}),R=new TransformStream({transform(p,l){if(p&&p.length&&(l.enqueue(p),n.outputSize+=p.length,e.outputSize!==w&&n.outputSize>e.outputSize))throw new Error(Qe)},flush(){let{crc32:p}=a;Object.assign(n,{crc32:p,inputSize:o})}});Object.defineProperty(n,"readable",{get(){return c.pipeThrough(f).pipeThrough(a).pipeThrough(R)}})}},cn=class extends TransformStream{constructor(e){let r=[],n=0,s=0;(!Number.isFinite(e)||e<1)&&(e=DE),super({transform(a,c){for(r.push(a),n+=a.length;n>e;)s+=e,c.enqueue(i())},flush(a){n&&(s+=n,a.enqueue(o(r,n)))}}),Object.defineProperty(this,"outputSize",{get:()=>s});function i(){let a=new Uint8Array(e),c=0;for(;c<e;){let f=r[0],R=e-c;f.length<=R?(a.set(f,c),c+=f.length,r.shift()):(a.set(f.subarray(0,R),c),r[0]=f.subarray(R),c+=R)}return n-=e,a}function o(a,c){let f=new Uint8Array(c),R=0;for(let p of a)f.set(p,R),R+=p.length;return f}}}});function ql({initModule:t}){to=t}function Jl(t){eo=t}async function Ql(t){let{CompressionStream:e,CompressionStreamFallback:r}=t;return r&&!r.requiresModule||ys(e)||Ji(e)?!0:r?await $l(t):!1}async function $l(t){if(to)try{return await to(t),!0}catch{}return!1}function ro(t){t.createWorker?Kl=!0:Ns=!1}async function Os(t,...e){try{await t(...e)}catch{}}function no(t,e){return{run:()=>Ps(t,e)}}async function Ps({options:t,readable:e,writable:r,onTaskFinished:n,workerOptions:s},i){let o,a,c;try{if(t.compressed&&!t.format){let m=t.codecType.startsWith(Ar),E=m?i.CompressionStreamFallback:i.DecompressionStreamFallback,d=m?i.CompressionStream:i.DecompressionStream;t.useCompressionStream?E&&E.requiresModule&&!ys(d)&&await f():!await f()&&(!E||E.requiresModule)&&(t.useCompressionStream=!0)}t.encrypted&&!t.zipCrypto&&await f(),o=new Ss(t,i),a=new cn(Jr(i));let{signal:R}=s.streamOptions;await e.pipeThrough(o).pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0,signal:R});let{crc32:p,inputSize:l,outputSize:h}=o;return{crc32:p,inputSize:l,outputSize:h}}catch(R){if(o){let p=a?a.outputSize:0;if(s.outputSize=p,Re(R))try{R.outputSize=p}catch{}}throw R}finally{n()}function f(){return c||(c=$l(i)),c}}var $t,Ns,Kl,eo,to,Ut,Ds,yr=ie(()=>{ue();Ge();Zt();bs();$t="Worker startup timeout",to=()=>{};Ut=class{constructor(e,{readable:r,writable:n},s,i){let{options:o,config:a,streamOptions:c,useWebWorkers:f,transferStreams:R,workerURI:p}=s,{createWorker:l}=s,{signal:h}=c;return Kl&&(l=w),Object.assign(e,{busy:!0,generation:(e.generation||0)+1,readable:r.pipeThrough(new cn(Jr(a))).pipeThrough(new Ds(c),{signal:h}),writable:n,options:Object.assign({},o),workerOptions:s,workerURI:p,createWorker:l,transferStreams:R,terminate(){return new Promise(m=>{let{worker:E,busy:d}=e;d?(e.terminateResolvers=e.terminateResolvers||[],e.terminateResolvers.push(m)):(E&&(E.terminate(),e.worker=null),m()),e.interface=null})},onTaskFinished(){if(e.busy){let{terminateResolvers:m,worker:E}=e;m&&(e.terminateResolvers=null,E&&(e.terminated=!0,E.terminate())),e.busy=!1;let d=i(e);m&&m.forEach(u=>u(d))}}}),Ns===w&&(Ns=typeof Worker!=Se),(f&&eo&&(Ns&&p||l)?eo:no)(e,a)}},Ds=class extends TransformStream{constructor({onstart:e,onprogress:r,size:n,onend:s}){let i=0;super({async start(){e&&await Os(e,n)},async transform(o,a){i+=o.length,r&&await Os(r,i,n),a.enqueue(o)},async flush(){s&&await Os(s,i)}})}}});async function Us(t,e){let{options:r,config:n}=e,{transferStreams:s,useWebWorkers:i,useCompressionStream:o,compressed:a,checkCrc32:c,computeCrc32:f,encrypted:R,format:p,codecURI:l}=r,{workerURI:h,createWorker:m,maxWorkers:E}=n;p&&(l&&(r.codecURI=vE(l,n.baseURI)),await xl(p,r.codecURI)),e.transferStreams=!p&&(s||s===w&&n.transferStreams);let d=!a&&!c&&!f&&!R,u=p===w||!!r.codecURI;return e.useWebWorkers=!d&&u&&(i||i===w&&n.useWebWorkers),e.workerURI=e.useWebWorkers&&h?h:w,e.createWorker=e.useWebWorkers&&m?m:w,r.useCompressionStream=o||o===w&&n.useCompressionStream,(await g()).run();async function g(){let A=er.find(T=>!T.busy);if(A)return lf(A),new Ut(A,t,e,_);if(er.length<E){let T={indexWorker:cf};return cf++,er.push(T),new Ut(T,t,e,_)}else return new Promise(T=>{tr.push({resolve:T,stream:t,workerOptions:e}),xs=n.workerStarvationTimeout,Ls()})}function _(A){if(lo(),A.terminated)return A.terminated=!1,zE();if(tr.length){let[{resolve:T,stream:y,workerOptions:S}]=tr.splice(0,1);T(new Ut(A,y,S,_)),Ls()}else A.worker?(lf(A),BE(A,e)):er=er.filter(T=>T!=A)}}function vE(t,e){try{return new URL(t,e).toString()}catch{return t}}function Ls(){!Sr&&tr.length&&Number.isFinite(xs)&&xs>=0&&(Sr=setTimeout(kE,xs))}function lo(){Sr&&(clearTimeout(Sr),Sr=null)}function kE(){if(Sr=null,tr.length){let[{resolve:t,stream:e,workerOptions:r}]=tr.splice(0,1);t(new Ut({},e,ff(r),uf)),Ls()}}function zE(){let t=tr.splice(0).map(({resolve:e,stream:r,workerOptions:n})=>new Promise(s=>{e(new Ut({},r,ff(n),()=>{uf(),s()}))}));return lo(),Promise.all(t)}function ff(t){return Object.assign({},t,{useWebWorkers:!1,workerURI:w,createWorker:w})}function uf(){lo(),Ls()}function BE(t,e){let{config:r}=e,{terminateWorkerTimeout:n}=r;Number.isFinite(n)&&n>=0&&(t.terminateTimeout=setTimeout(async()=>{er=er.filter(s=>s!=t);try{await t.terminate()}catch{}},n))}function lf(t){let{terminateTimeout:e}=t;e&&(clearTimeout(e),t.terminateTimeout=null)}var er,tr,Sr,xs,cf,Fs=ie(()=>{ue();bs();qt();yr();er=[],tr=[],cf=0});function df(t){let e="";for(let r=0;r<t.length;r++)e+=HE[t[r]];return e}var HE,Ef=ie(()=>{HE="\\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 ln(t,e){return YE(t,e,!0)}function fo(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 YE(t,e,r){return e&&e.trim().toLowerCase()=="cp437"?df(t):new TextDecoder(e,{ignoreBOM:r}).decode(t)}var uo=ie(()=>{Ef()});function GE(){gf=(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();Eo=r==1}catch{Eo=!1}})()}function fn(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 VE(t){return t=new pt(t),await ge(t),(t.size===w||!t.readUint8Array)&&(t=new $e(await ft(t.readable)),await ge(t)),t}function re(t,e,r){return t.readUint8Array(e,r)}function po(t,e){return t.createReadable?t.createReadable(e):t.readUint8Array?Et.prototype.createReadable.call(t,e):t.readable}var mf,hf,sR,iR,oR,WE,pf,Ms,Et,Eo,gf,$e,vs,ks,pt,Ir,un=ie(()=>{ue();Ge();Pt();jt();uo();mf="Writer iterator completed too soon",hf="Invalid writer (size must be writable)",sR=256*1024,iR=16*1024*1024,oR=65557,WE="writable",pf=Symbol(),Ms=class{constructor(){this.size=0}init(){this.initialized=!0}},Et=class extends Ms{get readable(){return this.createReadable()}createReadable({offset:e=0,size:r,chunkSize:n=Jr(at())}={}){let s=this,i=0;return n=zi(n),new ReadableStream({async pull(o){let a=r===w?n:Math.min(n,r-i),c=await re(s,e+i,a);c.length&&(o.enqueue(c),i+=c.length),(r!==w&&i>=r||!c.length&&a)&&o.close()}})}};$e=class extends Et{constructor(e){super(),Object.assign(this,{sourceBlob:e,size:e.size}),gf||GE()}createReadable(e){let r=this,{sourceBlob:n,size:s}=r,{offset:i=0,size:o=s-i}=e||{};if(typeof n.stream==K){if(!i&&o>=s)return He(n.stream());if(Eo)return He(n.slice(i,i+o).stream())}return super.createReadable(e)}async readUint8Array(e,r){let n=this,s=e+r,a=await(!e&&s>=n.size?n.sourceBlob:n.sourceBlob.slice(e,s)).arrayBuffer();return a.byteLength>r&&(a=a.slice(e,s)),new Uint8Array(a)}},vs=class extends Et{constructor(e){super(),this.readers=e}async init(){let e=this;e.lastDiskNumber=0;let r=e.readers=await Promise.all(e.readers.map(VE));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,o=0,a=e;for(;s[o]&&a>=s[o].size;)a-=s[o].size,o++;let c=s[o];if(c){let f=c.size;if(a+r<=f)i=await re(c,a,r);else{let R=f-a,p=await re(c,a,R),l=await n.readUint8Array(e+R,r-R);i=Be(p,l)}}else i=Z;return n.lastDiskNumber=Math.max(o,n.lastDiskNumber),i}},ks=class extends Ms{constructor(e,r=4294967295){super();let n=this;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:r,availableSize:r});let s,i,o,a=new WritableStream({async write(p){if(p===pf){o&&await f();return}let{availableSize:l}=n;if(o)p.length>=l?(await c(p.subarray(0,l)),await f(),p.length>l&&await this.write(p.subarray(l))):await c(p);else{let{value:h,done:m}=await e.next();if(m&&!h)throw new Error(mf);s=h,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await ge(s),i=h.writable,o=i.getWriter(),await this.write(p)}},async close(){o&&(await o.ready,await R())},async abort(p){o&&await o.abort(p)}});Object.defineProperty(n,WE,{get(){return a}});async function c(p){let l=p.length;l&&(await o.ready,await o.write(p),s.size+=l,n.availableSize-=l)}async function f(){await R(),n.diskOffset+=s.size,n.diskNumber++,o=null,n.availableSize=n.maxSize}async function R(){await o.close()}}async closeDisk(){let e=this.writable.getWriter();try{await e.ready,await e.write(pf)}finally{e.releaseLock()}}},pt=class{constructor(e){return Array.isArray(e)&&(e=new vs(e)),(e instanceof ReadableStream||typeof e.getReader==K)&&(e={readable:He(e)}),e}},Ir=class{constructor(e){e.writable===w&&typeof e.next==K&&(e=new ks(e)),(e instanceof WritableStream||typeof e.getWriter==K)&&(e={writable:Xi(e)});try{e.size=e.size===w?0:e.size}catch{throw new Error(hf)}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 mo=ie(()=>{ue()});function Rf(t){if(t){let e=new Map;if(t.forEach((r,n)=>{pp.has(n)||e.set(n,r.data)}),e.size)return e}}function An(t,e,r){return t?e?12:16+r*4:0}var _o,To,gn,Ao,Rn,yo,So,Io,nr,Nr,wn,bo,_n,No,Oo,Do,Po,Co,xo,zs,Lo,Uo,Fo,Mo,sr,vo,XE,ko,Bs,ZE,Tn,jE,KE,qE,JE,zo,Bo,Ho,Yo,Wo,Go,QE,$E,ep,tp,rp,np,sp,ip,op,ap,cp,lp,fp,up,dp,Ep,mt,pp,Hs=ie(()=>{ue();_o="filename",To="rawFilename",gn="comment",Ao="rawComment",Rn="uncompressedSize",yo="compressedSize",So="offset",Io="diskNumberStart",nr="lastModDate",Nr="rawLastModDate",wn="lastAccessDate",bo="rawLastAccessDate",_n="creationDate",No="rawCreationDate",Oo="internalFileAttributes",Do="externalFileAttributes",Po="msdosAttributesRaw",Co="msdosAttributes",xo="msDosCompatible",zs="zip64",Lo="encrypted",Uo="version",Fo="versionMadeBy",Mo="zipCrypto",sr="directory",vo="executable",XE="symlink",ko="compressionMethod",Bs="signature",ZE="crc32",Tn="extraField",jE="extraFieldInfoZip",KE="extraFieldUnix",qE="extraFieldUnixType1",JE="extraFieldPkwareUnix",zo="uid",Bo="gid",Ho="unixMode",Yo="setuid",Wo="setgid",Go="sticky",QE="bitFlag",$E="rawBitFlag",ep="filenameLength",tp="extraFieldLength",rp="unixExternalUpper",np="filenameUTF8",sp="commentUTF8",ip="rawExtraField",op="extraFieldZip64",ap="extraFieldUnicodePath",cp="extraFieldUnicodeComment",lp="extraFieldAES",fp="extraFieldNTFS",up="extraFieldExtendedTimestamp",dp="extraFieldUSDZ",Ep=[_o,To,Rn,yo,nr,Nr,gn,Ao,wn,bo,_n,No,So,Io,Oo,Do,Po,Co,xo,zs,Lo,Uo,Fo,Mo,sr,vo,XE,ko,Bs,ZE,Tn,KE,jE,qE,JE,zo,Bo,Ho,rp,Yo,Wo,Go,QE,$E,ep,tp,np,sp,ip,op,ap,cp,lp,fp,up,dp],mt=class{constructor(e){Ep.forEach(r=>this[r]=e[r])}},pp=new Set([1,39169,10,21589,28789,25461,6534,30837,30805,22613,13])});var Xf={};Hd(Xf,{ERR_AMBIGUOUS_ARCHIVE:()=>Ea,ERR_BAD_FORMAT:()=>Or,ERR_CENTRAL_DIRECTORY_NOT_FOUND:()=>ca,ERR_CODEC_OUT_OF_MEMORY:()=>Qt,ERR_ENCRYPTED:()=>ii,ERR_ENCRYPTED_CENTRAL_DIRECTORY:()=>pa,ERR_ENTRY_DATA_OUT_OF_BOUNDS:()=>da,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:()=>aa,ERR_EOCDR_NOT_FOUND:()=>oa,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:()=>fa,ERR_INVALID_AUTHENTICATION_CODE:()=>Ct,ERR_INVALID_COMPRESSED_DATA:()=>Jt,ERR_INVALID_CRC32:()=>Lt,ERR_INVALID_FILENAME_VALIDATION:()=>ga,ERR_INVALID_MAX_APPENDED_DATA_SIZE:()=>Ra,ERR_INVALID_PASSWORD:()=>Xe,ERR_INVALID_STRICTNESS:()=>ha,ERR_INVALID_UNCOMPRESSED_SIZE:()=>Qe,ERR_LOCAL_FILE_HEADER_NOT_FOUND:()=>la,ERR_OVERLAPPING_ENTRY:()=>ua,ERR_SPLIT_ZIP_FILE:()=>Vs,ERR_UNSAFE_FILENAME:()=>ma,ERR_UNSUPPORTED_COMPRESSION:()=>ut,ERR_UNSUPPORTED_ENCRYPTION:()=>Gs,ERR_UNSUPPORTED_UINT64:()=>wa,ERR_WORKER_STARTUP_TIMEOUT:()=>$t,WARNING_APPENDED_DATA:()=>Zs,WARNING_COMPRESSED_PATCHED_DATA:()=>Aa,WARNING_DUPLICATE_FILENAME:()=>ba,WARNING_MALFORMED_EXTRA_FIELD:()=>oi,WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG:()=>Da,WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD:()=>Pa,WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES:()=>Ca,WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME:()=>Oa,WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY:()=>Dr,WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY:()=>Na,WARNING_PREPENDED_CENTRAL_DIRECTORY:()=>Sa,WARNING_PREPENDED_DATA:()=>js,WARNING_TRAILING_CENTRAL_DIRECTORY_DATA:()=>Ia,WARNING_UNKNOWN_VERSION:()=>Ta,WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA:()=>ya,WARNING_UNSORTED_CENTRAL_DIRECTORY:()=>_a,WARNING_WRAPPED_ENTRIES_COUNT:()=>Xs,ZipReader:()=>vt,ZipReaderStream:()=>qs,isZipFile:()=>vf});function Ip(t,e){let{readable:r,writable:n}=new TransformStream,s,i={cancel:async a=>{e.delete(i),await(s?s.cancel(a):r.cancel(a))}};return i.readable=new ReadableStream({async pull(a){s||(s=r.getReader(),e.add(i),o());let{done:c,value:f}=await s.read();c?a.close():a.enqueue(f)},cancel:a=>i.cancel(a)},{highWaterMark:0}),i;async function o(){try{await t.getData(n,{preventClose:!1})}catch(a){try{await n.abort(a)}catch{}}finally{e.delete(i)}}}async function vf(t,e={}){if(t=new pt(t),await ge(t),(t.size===w||!t.readUint8Array)&&(t=new $e(await ft(t.readable)),await ge(t)),t.size<22)return!1;let r=La(e,{}),n=r!=ot,s=Yf(e[Ui],r),{endOfDirectoryInfo:i,endOfDirectoryReachingEndCount:o}=await Wf(t,n,s);if(!i||r==Nt&&o>1)return!1;let a=V(L(i),20),c=i.offset+22+a;return t.size-c<=s}function Vo(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 Nf(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 Xo(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 bp(t,e,r){let n=t&&t.compressedSize?t.compressedSize:e;return n>0&&n<=r?n:r}function Np(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:Le(r,2),uncompressedSize:Le(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 kf(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:Gp(i),filenameLength:V(e,r+22),extraFieldLength:V(e,r+24)})}function zf(t,e,r,n,s){let{rawExtraField:i}=e,o=e.extraField=new Map,a=L(i),c=0,f=!1;try{for(;c<i.length;){let y=V(a,c),S=V(a,c+2);o.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 p=o.get(1);p&&(Op(p,e),e.extraFieldZip64=p);let l=o.get(28789);l&&(Of(l,_o,To,e,t),e.extraFieldUnicodePath=l);let h=o.get(25461);h&&(Of(h,gn,Ao,e,t),e.extraFieldUnicodeComment=h);let m=o.get(39169);m&&m.data.length>=7?(Dp(m,e,R),e.extraFieldAES=m):e.compressionMethod=R;let E=o.get(13);E&&(Df(E,e),e.extraFieldPkwareUnix=E);let d=o.get(22613);d&&(Df(d,e),e.extraFieldUnixType1=d);let u=o.get(10);u&&(Pp(u,e),e.extraFieldNTFS=u);let g=o.get(30805),_;if(g&&(_=Pf(g,e,!1),e.extraFieldUnix=g),!_){let y=o.get(30837);y&&(Pf(y,e,!0),e.extraFieldInfoZip=y)}let A=o.get(21589);A&&(Cp(A,e,s),e.extraFieldExtendedTimestamp=A);let T=o.get(6534);return T&&(e.extraFieldUSDZ=T),f}function Op(t,e){e.zip64=!0;let r=L(t.data),n=Tp.filter(([i,o])=>e[i]==o),s=n.reduce((i,[,o])=>i+If[o].bytes,0);if(t.data.length<s)throw new Error(fa);for(let i=0,o=0;i<n.length;i++){let[a,c]=n[i],f=If[c];e[a]=t[a]=f.getValue(r,o),o+=f.bytes}}function Of(t,e,r,n,s){if(t.data.length<5){t.valid=!1;return}let i=L(t.data),o=new Ve;o.append(s[r]);let a=L(new Uint8Array(4));a.setUint32(0,o.get(),!0);let c=v(i,1),f=Mt(i,0);Object.assign(t,{version:f,[e]:ln(t.data.subarray(5)),valid:f==1&&!s.bitFlag.languageEncodingFlag&&c==v(a,0)}),t.valid&&(n[e]=t[e],n[e+_p]=!0)}function Dp(t,e,r){let n=L(t.data),s=Mt(n,4);Object.assign(t,{vendorVersion:Mt(n,0),vendorId:Mt(n,2),strength:s,originalCompressionMethod:r,compressionMethod:V(n,5)}),e.compressionMethod=t.compressionMethod,t.vendorVersion!=Mf&&(e.crc32=w)}function Pp(t,e){let r=L(t.data),n=4,s;try{for(;n<t.data.length&&!s;){let i=V(r,n),o=V(r,n+2);i==1&&(s=t.data.slice(n+4,n+4+o)),n+=4+o}}catch{}if(s&&s.length==24){let i=L(s),o=i.getBigUint64(0,!0),a=i.getBigUint64(8,!0),c=i.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:o,rawLastAccessDate:a,rawCreationDate:c});let f=Zo(o),R=Zo(a),p=Zo(c),l={lastModDate:f,lastAccessDate:R,creationDate:p};Object.assign(t,l),Object.assign(e,l,{rawLastAccessDate:a,rawCreationDate:c})}}function Df(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 Pf(t,e,r){try{let n=L(t.data),s,i;if(r){let o=0,a=Mt(n,o++),c=Mt(n,o++);s=Cf(t.data.subarray(o,o+c)),o+=c;let f=Mt(n,o++);i=Cf(t.data.subarray(o,o+f)),Object.assign(t,{version:a,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 Cf(t){let e=new Uint8Array(4);return e.set(t,0),new DataView(e.buffer,e.byteOffset,4).getUint32(0,!0)}function Cp(t,e,r){if(!t.data.length)return;let n=L(t.data),s=Mt(n,0),i=[],o=[];r?((s&1)==1&&(i.push(nr),o.push(Nr)),(s&2)==2&&(i.push(wn),o.push(bo)),(s&4)==4&&(i.push(_n),o.push(No))):t.data.length>=5&&(i.push(nr),o.push(Nr));let a=1;i.forEach((c,f)=>{if(t.data.length>=a+4){let R=v(n,a);e[c]=t[c]=new Date((R|0)*1e3);let p=o[f];t[p]=R}a+=4})}async function xp({reader:t,fileEntry:e,index:r,offset:n,crc32:s,compressedSize:i,uncompressedSize:o,dataOffset:a,dataDescriptor:c,extraFieldZip64:f,readRanges:R}){let p=0;if(c&&(f?p=20:p=12),p){let d=await re(t,a+i,p+4),u=L(d),g=d.length==p+4&&v(u,0)==134695760;if(g){let _=xf(u,4,f);(e.encrypted&&!e.zipCrypto||_.crc32==s)&&_.compressedSize==i&&_.uncompressedSize==o?p+=4:g=!1}if(d.length>=p){let _=xf(u,g?4:0,f);_.signature=g,e.localDirectory.dataDescriptor=_}}let l={start:n,end:a+i+p,fileEntry:e},{indexes:h,sortedRanges:m,pendingRanges:E}=R;if(!h.has(r)){let d=Lp(m,l)||E.find(u=>Ko(l,u));if(d){let u=new Error(ua);throw u.overlappingEntry=d.fileEntry,u}h.add(r),E.push(l),E.length*E.length>m.length&&(E.sort((u,g)=>u.start-g.start),R.sortedRanges=Up(m,E),E.length=0)}}function Lp(t,e){let r=0,n=t.length;for(;r<n;){let o=r+n>>>1;t[o].start<e.start?r=o+1:n=o}let s=t[r-1],i=t[r];if(s&&Ko(e,s))return s;if(i&&Ko(e,i))return i}function Ko(t,e){return t.start<e.end&&e.start<t.end}function Up(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 xf(t,e,r){let n=v(t,e),s,i;return r?(s=Le(t,e+4),i=Le(t,e+12)):(s=v(t,e+4),i=v(t,e+8)),{crc32:n,compressedSize:s,uncompressedSize:i}}function Pr(t,e){return t.getDiskOffset?t.getDiskOffset(e):0}async function Fp(t){return await Bf(t)==134695760}async function Mp(t){let e=await Bf(t);return e==134695760||e==808471376}async function Bf(t){let e=await re(t,0,4);return v(L(e))}function Hf(t){return t===Nt||t===ns||t===ot}function vp(t,e,r){return Math.min(t,r?e*Sp:e)}function La(t,e){return Lf(t,Lf(e,ns))}function Lf(t,e){let r=t[Mc];if(r!==w){if(!Hf(r))throw new Error(ha);return r}let n=t[Rc];return n===w?e:n?Nt:e==ot?ot:ns}function kp(t,e){return t===w?e!=ot:!!t}function zp(t,e){return t===w?e==Nt:!!t}function Bp(t,e){if(t===w)return e;if(!Hf(t))throw new Error(ga);return t}function Hp(t,e){if(e==ot)return!1;let r=t.split("/");return r.length>1&&r[r.length-1]===""&&r.pop(),wp.test(t)||t.startsWith("/")||t.startsWith("\\\\")||Rp.test(t)?!0:e==Nt&&(r.includes(".")||r.includes("")||t.includes("\\0"))}function Yf(t,e){if(t!==w){let r=Ot(t);if(typeof r!=lc||Number.isNaN(r)||r<0)throw new Error(Ra);return r}return e==Nt?0:e==ot?1/0:65535}async function Wf(t,e,r){let{size:n}=t,s=Math.min(n,65557),i={remaining:yp},o,a,c=0;for await(let[f,R,p,l,h]of Gf(t,s)){let m=V(f,l+20);if(h+22+m==n){let E=await Vf(t,f,R,l,h,n,i);if(E==Ks){if(o||(o=qo(p,l,h)),c++,!e||c>1)break}else E==xa&&!a&&(a=qo(p,l,h))}}return o||(o=a),o||(o=await Yp(t,r,i)),{endOfDirectoryInfo:o,endOfDirectoryReachingEndCount:c}}async function Yp(t,e,r){let{size:n}=t,s=Math.min(n,e==1/0?n:65557+e),i,o;for await(let[a,c,f,R,p]of Gf(t,s)){let l=qo(f,R,p);i||(i=l);let h=await Vf(t,a,c,R,p,n,r);if(h==Ks)return l;h==xa&&!o&&(o=l)}return o||i}async function*Gf(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 qo(t,e,r){return{offset:r,buffer:new Uint8Array(t.subarray(e,e+22)).buffer}}async function Vf(t,e,r,n,s,i,o){let a=V(e,n+10),c=v(e,n+12),f=v(e,n+16);if(a==65535||c==4294967295||f==4294967295)return await Uf(t,e,r,s-20,i,o)==117853008?Ks:bf;if(!a&&!c)return xa;let R=V(e,n+6);for(let p of[s-c,Pr(t,R)+f])if(await Uf(t,e,r,p,i,o)==33639248)return Ks;return bf}async function Uf(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 o=await re(t,n,4);return v(L(o),0)}return w}function Wp(t,e,r,n,s){let{rawFilename:i}=t,o=!s,a=t.decryptedDirectory&&(e.rawBitFlag&8192)==8192;n&&!a&&(r.length!=i.length||r.some((c,f)=>c!=i[f]))&&tt(o,s,Oa),(e.rawBitFlag&Sf)!=(t.rawBitFlag&Sf)&&tt(o,s,Da),e.compressionMethod!=t.compressionMethod&&tt(o,s,Pa),!e.bitFlag.dataDescriptor&&!a&&(e.crc32||e.compressedSize||e.uncompressedSize)&&(e.crc32!=t.crc32||e.compressedSize!=t.compressedSize||e.uncompressedSize!=t.uncompressedSize)&&tt(o,s,Ca)}function tt(t,e,r){t?Ys(r):Te(e,r)}function Ys(t){let e=new Error(Ea);throw e.reason=t,e}function oe(t,e,r){return e[r]===w?t.options[r]:e[r]}function Ff(t,e,r){return Er(oe(t,e,r))}function Gp(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<bt?bt:n}function Zo(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function Mt(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 Le(t,e){let r=t.getBigUint64(e,!0);if(r>Ap)throw new Error(wa);return Number(r)}var Or,oa,aa,ca,la,fa,ii,Gs,Vs,ua,da,Ea,pa,ma,ha,ga,Ra,wa,_a,Ta,Aa,oi,ya,Xs,Zs,js,Sa,Ia,ba,Dr,Na,Oa,Da,Pa,Ca,gp,Rp,wp,Af,_p,yf,Sf,Mf,Tp,If,Ap,yp,Sp,bf,xa,Ks,vt,qs,jo,ai=ie(()=>{ue();Ge();qt();Fs();un();uo();Pt();mo();jt();Zt();$r();Hs();hr();Or="File format is not recognized",oa="End of central directory not found",aa="End of Zip64 central directory locator not found",ca="Central directory header not found",la="Local file header not found",fa="Zip64 extra field not found",ii="File contains encrypted entry",Gs="Encryption method not supported",Vs="Split zip file",ua="Overlapping entry found",da="Entry data out of bounds",Ea="Ambiguous archive",pa="Encrypted central directory is not supported",ma="Unsafe filename",ha="Invalid strictness (must be \'strict\', \'balanced\' or \'tolerant\')",ga="Invalid filenameValidation (must be \'strict\', \'balanced\' or \'tolerant\')",Ra="Invalid maxAppendedDataSize (must be a number greater than or equal to 0)",wa="64-bit value exceeds Number.MAX_SAFE_INTEGER",_a="unsorted central directory",Ta="unknown version needed to extract",Aa="compressed patched data",oi="malformed extra field",ya="unknown zip64 extensible data",Xs="wrapped entries count",Zs="appended data",js="prepended data",Sa="prepended central directory",Ia="trailing central directory data",ba="duplicate filename",Dr="mismatched zip64 end of central directory record",Na="multiple end of central directory records",Oa="mismatched local file header (filename)",Da="mismatched local file header (general purpose bit flag)",Pa="mismatched local file header (compression method)",Ca="mismatched local file header (crc32 or sizes)",gp=63,Rp=/^[a-zA-Z]:/,wp=/(^|[\\\\/])\\.\\.([\\\\/]|$)/,Af="utf-8",_p="UTF8",yf="cp437",Sf=2057,Mf=1,Tp=[[Rn,4294967295],[yo,4294967295],[So,4294967295],[Io,65535]],If={65535:{getValue:v,bytes:4},4294967295:{getValue:Le,bytes:8}},Ap=BigInt(Number.MAX_SAFE_INTEGER),yp=64,Sp=1032,bf=0,xa=1,Ks=2,vt=class{constructor(e,r={}){Object.assign(this,{reader:new pt(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 $e(await ft(n.readable)),await ge(n)),n.size<22)throw new Error(Or);let s=r.warnings=[],i=La(e,r.options),o=i==Nt,a=i!=ot,c=Yf(oe(r,e,Ui),i),f=Bp(oe(r,e,vc),i),R=oe(r,e,kc),{endOfDirectoryInfo:p,endOfDirectoryReachingEndCount:l}=await Wf(n,a,c);if(!p)throw await Fp(n)?new Error(Vs):new Error(oa);a&&l>1&&Ys(Na);let h=L(p),m=v(h,12),E=v(h,16),d=p.offset,u=V(h,20),g=d+22+u,_=n.size-g;_>c&&Ys(Zs),_>0&&Te(s,Zs);let A=V(h,4),T=n.lastDiskNumber||0,y=V(h,6),S=V(h,10),I=0,N,U,H,q,$=56,j,W=E==4294967295||m==4294967295||S==65535||y==65535;if(E!=4294967295&&y!=65535&&(E+=Pr(n,y)),W){let J=p.offset>=20?await re(n,p.offset-20,20):Z,b=L(J);if(J.length==20&&v(b,0)==117853008){E=Pr(n,v(b,4))+Le(b,8);let Y=await re(n,E,56),Q=L(Y),pe=p.offset-20-56;if((Y.length<56||v(Q,0)!=101075792)&&E!=pe&&pe>=0){let Ce=E;E=pe,E>Ce&&(I=E-Ce),Y=await re(n,E,56),Q=L(Y)}if(Y.length<56||v(Q,0)!=101075792)throw new Error(aa);if(H=!0,q=Le(Q,4)>44,q){let Ce=Math.min(Le(Q,4)-44,n.size-E-56);if(Ce>0){$+=Ce;let Ke=await re(n,E+56,Ce);j=Np(Ke)}}A==65535?A=v(Q,16):A!=v(Q,16)&&tt(o,s,Dr),y==65535?y=v(Q,20):y!=v(Q,20)&&tt(o,s,Dr),S==65535?S=Le(Q,32):S!=Le(Q,32)&&tt(o,s,Dr),m==4294967295?m=Le(Q,40):m!=Le(Q,40)&&tt(o,s,Dr),E=Pr(n,y)+Le(Q,48)+I}}let F=m,ne=p.offset-(H?$+20:0);if(E>=n.size&&(I=n.size-E-m-22,E=n.size-m-22),T!=A)throw new Error(Vs);if(E<0)throw new Error(Or);let z=0,X=await re(n,E,m),M=L(X);if(m){if(X.length<4)throw new Error(Or);let J=ne-m;if(E!=J&&y==A){let b=v(M,z)==33639248||!!(j&&j.compressedSize)||Vo(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,m),M=L(X)}}}let G=ne-E;if(m!=G&&G>=0&&y==A&&(m=G,X=await re(n,E,m),M=L(X)),E<0||E>=n.size)throw new Error(Or);r.directoryOffset=E,r.directoryLength=F;let Ee=Ff(r,e,zc),me,st;if(Ee&&S&&X.length>=4&&v(M,0)!=33639248&&(q||Vo(M))){let J=bp(j,F,X.length);st=X.subarray(J),X=await Ee(X.subarray(0,J),j),M=L(X),F=X.length,me=!0}j&&!me&&(X.length<4||v(M,0)==33639248)&&Te(s,ya),U=E;let Me=oe(r,e,fc),ve=oe(r,e,uc),je=new Set,Ne,Oe=-1,De=!o&&!H;!S&&De&&(S=Nf(M,X,z),S&&Te(s,Xs));for(let J=0;J<S;J++){let b=new jo(n,r.options);if(z+46>X.length||v(M,z)!=33639248)throw J==0&&!me&&(q||Vo(M))?new Error(pa):new Error(ca);kf(b,M,z+6);let Y=!!b.bitFlag.languageEncodingFlag,Q=z+46,Ce=Q+b.filenameLength+b.extraFieldLength,Ke=V(M,z+4),Bt=Ke>>8==0,Yr=Ke>>8==3,Ht=V(M,z+32),Ye=Ce+Ht,Tt=new Uint8Array(X.subarray(Q,Ye)),it=Tt.subarray(0,b.filenameLength),de=Tt.subarray(b.filenameLength+b.extraFieldLength),ye=Y||!Me&&fo(it),Bn=Y||!ve&&fo(de),At=v(M,z+38),yt=At&255,Hn={readOnly:!!(yt&1),hidden:!!(yt&2),system:!!(yt&4),directory:!!(yt&16),archive:!!(yt&32)},Pi=v(M,z+42),Wr=Ff(r,e,dc)||ln,Yt=ye?Af:Me||yf,St=Bn?Af:ve||yf,he=Wr(it,Yt,ts);if(he===w&&(he=ln(it,Yt)),R){let ze=R(he);ze!==w&&(he=ze)}if(Hp(he,f)){let ze=new Error(ma);throw ze.filename=he,ze}let Gr=Wr(de,St,rs);Gr===w&&(Gr=ln(de,St)),Object.assign(b,{index:J,decryptedDirectory:me,versionMadeBy:Ke,msDosCompatible:Bt,zip64:!1,compressedSize:0,uncompressedSize:0,commentLength:Ht,offset:Pi,diskNumberStart:V(M,z+34),internalFileAttributes:V(M,z+36),externalFileAttributes:At,msdosAttributesRaw:yt,msdosAttributes:Hn,rawFilename:it,filenameUTF8:ye,commentUTF8:Bn,rawExtraField:Tt.subarray(b.filenameLength,b.filenameLength+b.extraFieldLength),rawComment:de,filename:he,comment:Gr}),zf(b,b,M,z+6)&&Te(s,oi,he),b.offset+=I;let Wt=Pr(n,b.diskNumberStart)+b.offset;U=Math.min(Wt,U),Wt<Oe&&Te(s,_a,he),Oe=Wt,(b.version&255)>gp&&Te(s,Ta,he),(b.rawBitFlag&32)==32&&Te(s,Aa,he),je.has(b.filename)&&(Ne=!0),je.add(b.filename);let It=b.externalFileAttributes>>16&65535;b.unixMode===w&&(It&16877)!=0&&(b.unixMode=It);let Yn=!!(b.unixMode&2048),qe=!!(b.unixMode&1024),Wn=!!(b.unixMode&512),oc=((b.unixMode===w?It:b.unixMode)&61440)==40960,Md=!oc&&(b.unixMode!==w?(b.unixMode&73)!=0:Yr&&(It&73)!=0),vd=b.unixMode!==w&&(b.unixMode&61440)==16384,kd=(It&61440)==16384;Object.assign(b,{setuid:Yn,setgid:qe,sticky:Wn,symlink:oc,unixExternalUpper:It,executable:Md,directory:vd||kd||Bt&&Hn.directory||b.filename.endsWith("/"),zipCrypto:b.encrypted&&!b.extraFieldAES});let Vr=new mt(b);if(Vr.getData=(ze,Gn)=>b.getData(ze,Vr,r.readRanges,Gn),Vr.arrayBuffer=async ze=>{let Gn=new TransformStream,cc=ft(Gn.readable).then(zd=>zd.arrayBuffer());return cc.catch(()=>{}),await b.getData(Gn,Vr,r.readRanges,Object.assign({},ze,{preventClose:!1})),cc},z=Ye,J==S-1&&De){let ze=Nf(M,X,z);ze&&(S+=ze,Te(s,Xs))}let{onprogress:ac}=e;if(ac)try{await ac(J+1,S,new mt(b))}catch{}yield Vr}let ae=z,Pe=Xo(X.subarray(z))||(me?Xo(st):w);if(!Pe&&!me){let J=E+z,b=Math.min(ne-J,65541);b>=6&&(Pe=Xo(await re(n,J,b)))}Pe&&(r.digitalSignature=Pe,ae=z+6+Pe.length),(z!=F&&ae!=F||!me&&z!=m&&ae!=m)&&tt(o,s,Ia),Ne&&tt(o,s,ba);let ke=oe(r,e,Ec),fe=oe(r,e,pc),te=(o||ke)&&S&&U==4&&await Mp(n)?4:0;return o&&(I||S&&U>te)&&Ys(js),(I||S&&U>4)&&Te(s,js),N&&Te(s,Sa),ke&&(r.prependedData=U>te?await re(n,te,U-te):Z),r.comment=u?await re(n,d+22,u):Z,fe&&(r.appendedData=g<n.size?await re(n,g,n.size-g):Z),!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()}[Xn](){return this.close()}},qs=class{constructor(e={}){let r,{readable:n,writable:s}=new TransformStream({start(c){r=c}}),i=new vt(n,e),o=i.getEntriesGenerator(),a=new Set;this.readable=new ReadableStream({async pull(c){let{done:f,value:R}=await o.next();if(f)return c.close();let p=Ip(R,a),l={...R,readable:p.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(a);a.clear(),r.error(c),await Promise.allSettled(f.map(R=>R.cancel(c))),await Promise.allSettled([o.return(),i.close()])}}),this.writable=s}};jo=class{constructor(e,r){Object.assign(this,{reader:e,options:r})}async getData(e,r,n,s={}){let i=this,o=at(),{reader:a,index:c,offset:f,diskNumberStart:R,extraFieldAES:p,extraFieldZip64:l,compressionMethod:h,bitFlag:m,rawBitFlag:E,crc32:d,rawLastModDate:u,uncompressedSize:g,compressedSize:_}=i,{dataDescriptor:A}=m,T=r.localDirectory={},y=r.warnings=[],S=Pr(a,R)+f,I=await re(a,S,30),N=L(I),U=oe(i,s,Zn),H=oe(i,s,jn),q=pr(oe(i,s,Zr)),$=!!q,j=q===!0;if(ss(U,H),U=U&&U.length?U: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(la);kf(T,N,4);let{extraFieldLength:W,filenameLength:F}=T,ne=T.dataOffset=S+30+F+W,z=oe(i,s,wc),X=La(s,i.options),M=kp(z,X),G=oe(i,s,_c),Ee=zp(G===w?z:G,X),me=Z;if(Ee&&(F||W)){let de=await re(a,S+30,F+W);me=de.subarray(0,F),T.rawExtraField=de.subarray(F)}else T.rawExtraField=W?await re(a,S+30+F,W):Z;Ee&&(T.rawFilename=me),zf(i,T,N,4,!0)&&Te(y,oi),Wp(i,T,me,Ee,M?w:y);let{lastAccessDate:st,creationDate:Me,uid:ve,gid:je}=T;st&&(r.lastAccessDate=st),Me&&(r.creationDate=Me),ve!==w&&r.uid===w&&(r.uid=ve),je!==w&&r.gid===w&&(r.gid=je);let Ne=oe(i,s,mc),Oe=i.encrypted&&T.encrypted&&(!j||Ne),De=Oe&&!p;if(j||(r.zipCrypto=De),Oe&&(T.rawBitFlag&64)==64)throw new Error(Gs);let ae=$?w:ms(h);if(h!=0&&h!=8&&h!=9&&!ae&&!$)throw new Error(ut);if(Oe){if(!De&&(p.strength<1||p.strength>3))throw new Error(Gs);if(!U&&!H)throw new Error(ii)}if(ne+_>a.size)throw new Error(da);let Pe=_,ke=qr(oe(i,s,Kn));Xt(ke);let fe=oe(i,s,gc),te=oe(i,s,hc);te&&(fe=!0);let{onstart:J,onprogress:b,onend:Y}=s,Q=h!=0&&!$,pe=$?_-An(Oe,De,p&&p.strength):g,Ce=h==9,Ke=oe(i,s,Jn);Ce&&(Ke=!1);let Bt=oe(i,s,Ac),Yr=(Bt===w?oe(i,s,Tc):Bt)&&!$&&(!Oe||De||p&&p.vendorVersion==Mf),Ht={options:{codecType:Is,password:U,rawPassword:H,zipCrypto:De,encryptionStrength:p&&p.strength,checkCrc32:Yr,checkAuthenticationCode:oe(i,s,yc),passwordVerification:De&&(A?u>>>8&255:d>>>24&255),outputSize:pe,crc32:d,compressed:Q,encrypted:Oe,useWebWorkers:oe(i,s,qn),useCompressionStream:Ke,transferStreams:oe(i,s,Qn),deflate64:Ce,format:ae?ae.format:w,codecURI:ae?ae.codecURI:w,compressionMethod:h,rawBitFlag:E,checkPasswordOnly:Ne},config:o,streamOptions:{signal:ke,size:Pe,onstart:J,onprogress:b,onend:Y}};fe&&await xp({reader:a,fileEntry:r,index:c,offset:S,crc32:d,compressedSize:_,uncompressedSize:g,dataOffset:ne,dataDescriptor:A||T.bitFlag.dataDescriptor,extraFieldZip64:l||T.extraFieldZip64,readRanges:n});let Ye,Tt,it;try{if(!te){Ne&&(e=new WritableStream),e=new Ir(e),await ge(e,vp(pe,_,Q)),{writable:Ye}=e;let de=He(a.createReadable({offset:ne,size:Pe})),{outputSize:ye}=await Us({readable:de,writable:Ye},Ht);if(Xt(ke),ye!=pe)throw Object.assign(new Error(Qe),{outputSize:ye});e.size+=ye}}catch(de){let{outputSize:ye}=Ht;if(ye!==w?e.size+=ye:Re(de)&&de.outputSize!==w&&(e.size+=de.outputSize),!Ne||!Re(de)||de.message!=lt)throw Tt=de,it=!0,de}finally{if(!(!fn(e)&&oe(i,s,$n))&&Ye&&!Ye.locked){let ye=Ye.getWriter();if(it)try{await ye.abort(Tt)}catch{}else await ye.close()}}return Ne||te?w:e.getData?e.getData():Ye}}});Ge();var is=new Uint8Array(288);is.fill(8,0,144),is.fill(9,144,256),is.fill(7,256,280),is.fill(8,280,288),new Uint8Array(30).fill(5);var ct="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",il=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&&gt(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)})});\n`;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="",o=s.length,a=0;for(;a+2<o;a+=3){let f=s[a]<<16|s[a+1]<<8|s[a+2];i+=ct[f>>18&63]+ct[f>>12&63]+ct[f>>6&63]+ct[63&f]}let c=o-a;if(c===1){let f=s[a]<<16;i+=ct[f>>18&63]+ct[f>>12&63]+"=="}else if(c===2){let f=s[a]<<16|s[a+1]<<8;i+=ct[f>>18&63]+ct[f>>12&63]+ct[f>>6&63]+"="}return i})(n)}});Ge();ue();Pt();Zt();bs();yr();var ef={type:"module"},io="error",PE="messageerror",tf="abort",rf,so,nf,oo=!0;try{oo=typeof structuredClone==K&&structuredClone(new DOMException("","AbortError")).code!==w}catch{}Jl(CE);function CE(t,e){let{baseURI:r,chunkSize:n,workerStartupTimeout:s}=e,{wasmURI:i}=e;if(!t.interface){typeof i==K&&(i=i());let o;try{o=Cs(t.workerURI,r,t)}catch{return ro(t),no(t,e)}Object.assign(t,{worker:o,workerAlive:!1,terminated:!1,startupError:null,interface:{run:async()=>{try{return await xE(t,{chunkSize:n,wasmURI:i,baseURI:r,workerStartupTimeout:s})}catch(a){if(a&&a.workerStartupFailed)return ro(t),sf(t),Ps(t,e);if(a&&a.codecImportFailed){if(t.reader)return sf(t),Ps(t,e);t.onTaskFinished()}throw a}}}})}return t.interface}async function xE(t,e){if(!t.worker){let{startupError:h}=t;t.startupError=null;let m=h||new Error($t);throw m.workerStartupFailed=!0,m}let r,n,s=new Promise((h,m)=>{r=h,n=E=>{let{outputSize:d,workerOptions:u}=t;if(u.outputSize=d,Re(E))try{E.outputSize=d}catch{}m(E)}});Object.assign(t,{reader:null,writer:null,outputSize:0,destinationFailed:!1,destinationError:null,resolveResult:r,rejectResult:n,result:s});let{readable:i,options:o}=t,{writable:a,closed:c,abortPipe:f}=LE(t.writable,t),R;try{R=ao({type:Vl,options:o,config:e,readable:i,writable:a},t)}catch(h){f();try{await c}catch{}throw t.onTaskFinished(),h}R||Object.assign(t,{reader:i.getReader(),writer:a.getWriter()});let{workerStartupTimeout:p}=e;!t.workerAlive&&Number.isFinite(p)&&p>=0&&(t.startupTimeout=setTimeout(()=>UE(t),p));try{let h=await s;return await l(),await c,h}catch(h){await l(),f();try{await c}catch{}let{outputSize:m,workerOptions:E,destinationFailed:d,destinationError:u}=t;E.outputSize=m;let g=Re(h)&&(h.codecImportFailed||h.workerStartupFailed),_=d&&!g?u:h;if(Re(_))try{_.outputSize=m}catch{}throw _}async function l(){if(!R&&!a.locked)try{await a.getWriter().close()}catch{}}}function LE(t,e){let r=new AbortController,n,{writable:s,readable:i}=new TransformStream({transform(c,f){e.outputSize+=c.length,f.enqueue(c)}}),o=i.pipeTo(t,{preventClose:!0,preventAbort:!0,signal:r.signal});o.catch(c=>{n||Object.assign(e,{destinationFailed:!0,destinationError:c})});let{signal:a}=e.workerOptions.streamOptions;if(a){let c=()=>r.abort(a.reason),f=()=>a.removeEventListener(tf,c);a.addEventListener(tf,c),o.then(f,f)}return{writable:s,closed:o,abortPipe:()=>{n=!0,r.abort()}}}function sf(t){let{reader:e}=t;e&&e.releaseLock(),t.reader=null,t.writer=null}function co(t){let{worker:e}=t;if(e)try{e.terminate()}catch{}t.interface=null}function Cs(t,e,r,n,s=!0){let{createWorker:i}=r,o,a,c;if(i)o=i();else if(so===w||rf!==t){let f=typeof t==K;f?a=t(s):a=t;let R=a.startsWith("data:"),p=a.startsWith("blob:");if(R||p){n===w&&(n=!1),n&&(c=ef);try{o=new Worker(a,c)}catch(l){if(p)try{URL.revokeObjectURL(a)}catch{}if(f&&p)return Cs(t,e,r,n,!1);if(n)throw l;return Cs(t,e,r,!0,!1)}}else{n===w&&(n=!0),n&&(c=ef);try{a=new URL(a,e)}catch{}try{o=new Worker(a,c)}catch(l){if(n)return Cs(t,e,r,!1,s);throw l}}rf=t,so=a,nf=c}else o=new Worker(so,nf);return o.addEventListener(Gl,f=>{r.workerAlive=!0,af(r),FE(f,r)}),o.addEventListener(io,f=>of(f,r)),o.addEventListener(PE,f=>of(f,r)),o}function UE(t){if(t.startupTimeout=null,t.workerAlive)return;let{rejectResult:e,writer:r}=t;if(co(t),t.worker=null,e){let n=new Error($t);n.workerStartupFailed=!0,e(n),r&&r.releaseLock()}}function af(t){let{startupTimeout:e}=t;e&&(clearTimeout(e),t.startupTimeout=null)}function of(t,e){t.preventDefault&&t.preventDefault(),af(e);let{workerAlive:r,rejectResult:n,writer:s,onTaskFinished:i}=e;co(e),r||(e.worker=null);let o=t.error||new Error(t.message||io);r||(o=Object.assign(new Error(o.message||io),{workerStartupFailed:!0}),e.startupError=o),n&&(n(o),s&&s.releaseLock(),r&&i())}function ao(t,{worker:e,writer:r,transferStreams:n,workerAlive:s}){try{let{value:i,readable:o,writable:a}=t,c=[];if(i&&(t.value=os(i),c.push(t.value.buffer)),n&&oo&&s?(o&&c.push(o),a&&c.push(a)):t.readable=t.writable=null,c.length)try{return e.postMessage(t,c),!0}catch{oo=!1,t.readable=t.writable=null,e.postMessage(t)}else e.postMessage(t)}catch(i){throw r&&r.releaseLock(),i}}async function FE({data:t},e){let{type:r,value:n,messageId:s,result:i,error:o,errorValue:a}=t,{reader:c,writer:f,resolveResult:R,rejectResult:p,onTaskFinished:l,generation:h}=e,m=()=>e.generation!=h;try{if(o)E(ME(o,a));else{if(r==Xl){let{value:g,done:_}=await c.read();m()||ao({type:$i,value:g,done:_,messageId:s},e)}if(r==$i){let g=new Uint8Array(n);await f.ready,await f.write(g),m()||ao({type:Zl,messageId:s},e)}r==jl&&d(i)}}catch(g){m()||(co(e),E(g))}function E(g){m()||(p(g),u(),Re(g)&&g.codecImportFailed||l())}function d(g){m()||(R(g),u(),l())}function u(){f&&f.releaseLock()}}function ME(t,e){let{message:r,stack:n,code:s,name:i,outputSize:o,cause:a,codecImportFailed:c}=t,f;if(e?f=e.value:f=Object.assign(new Error(r),{stack:n,code:s,name:i}),Re(f))try{o!==w&&(f.outputSize=o),c&&(f.codecImportFailed=!0),a&&!Re(f.cause)&&(f.cause=Object.assign(new Error(a.message),{name:a.name})),e&&(f.name!==i&&(f.name=i),f.code!==s&&(f.code=s))}catch{}return f}ai();ue();Ge();qt();yr();Fs();un();Hi();Pt();mo();jt();Zt();Hs();hr();var Wa="File already exists",Ga="Zip file comment exceeds 64KB",au="Invalid zip file comment (must be a Uint8Array)",cu="File entry comment exceeds 64KB",lu="Invalid file entry comment (must be a string)",fu="Invalid date (must be a valid Date instance)",uu="File entry name exceeds 64KB",Va="Version exceeds 65535",du="The strength must equal 1, 2, or 3",Eu="Encryption is not supported in USDZ files",pu="Split zip files are not supported in USDZ files",mu="Encryption is not supported when the \'passThrough\' option is set to true (use \'compressed\' instead)",hu="Invalid extra field (must be a Map)",gu="Invalid extra field type (must be integer 0..65535)",Ru="Invalid extra field data (must be a Uint8Array)",mi="Extra field data exceeds 64KB",wu=-2147483648,_u=2147483647,qf=BigInt(0),Jf=BigInt("0x7fffffffffffffff"),hi="Zip64 is not supported (set the \'zip64\' option to \'true\')",Tu="Undefined uncompressed size",Au="Undefined compression method",yu="Undefined CRC32";var Su="Undefined reader",Iu="Invalid reader (must be a Reader instance, a ReadableStream instance, or an object with a \'readable\' property)",bu="Zip file not empty",Nu="Invalid uid (must be integer 0..2^32-1)",Ou="Invalid gid (must be integer 0..2^32-1)",Du="Invalid UNIX mode (must be integer 0..65535)",Pu="Invalid unixExtraFieldType (must be \'infozip\' or \'unix\')",Cu="uid/gid must be 0..65535 for unixExtraFieldType \'unix\' (use \'infozip\' for larger ids)",xu="Invalid msdosAttributesRaw (must be integer 0..255)",Lu="Invalid msdosAttributes (must be an object with boolean flags)",Uu="Invalid level (must be integer 0..9)",Fu="Signature data exceeds 64KB",Mu="Invalid entry option (must be an entry returned by ZipReader#getEntries())",vu="The last modification date of an entry encrypted with ZipCrypto cannot be changed when passThrough is set",ku="compression unavailable",zu="clamped last modification date",Qf=new Uint8Array([7,0,2,0,65,69,3,0,0]),tm=4,rm=9,nm=67,sm=32,im=126,om=1,ui="infozip",di="unix",am=[8,9,5,3],cm=9,Ua=0,$f=[],Ei=class{constructor(e,r={}){e=new Ir(e);let{availableSize:n=Gt,maxSize:s=Gt}=e,i=n>0&&n!==Gt&&s>0&&s!==Gt;if(i&&r[Vt])throw new Error(pu);Object.assign(this,{writer:e,addSplitZipSignature:i,options:r,fileEntries:new Map,filenames:new Set,offset:r[jr]===w?e.size||e.writable.size||0:r[jr],initialOffset:r[jr]===w?0:r[jr]-(e.size||e.writable.size||0),pendingAddFileCalls:new Set,pendingErrors:[],warnings:[],bufferedWrites:0,directWrites:0,lastFileEntry:w,archiveClosed:!1})}prependZip(e){return Fa(this,lm(this,e))}appendZip(e){return Fa(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 o,a=new Promise(R=>o=R);n.add(a);let c=[],f;try{e=new pt(e),await ge(e),(e.size===w||!e.readUint8Array)&&(e=new $e(await ft(e.readable)),await ge(e));let{ZipReader:R}=await Promise.resolve().then(()=>(ai(),Xf)),p=new R(e),l=await p.getEntries();await p.close(),await ge(r.writer);let{directoryOffset:h}=p;l.forEach(({filename:d})=>{if(s.has(d))throw new Error(Wa);s.add(d),c.push(d)}),r.writerLocked=!0;let{lockWriter:m}=r;r.lockWriter=new Promise(d=>f=()=>{r.writerLocked=!1,d()}),await m,r.addSplitZipSignature&&(delete r.addSplitZipSignature,await Dm(e)||(await nt(r.writer,Yu()),r.offset+=4));let E=await Pm(r,e,l,h);l.forEach(d=>{let{version:u,rawLastModDate:g,rawFilename:_,bitFlag:A,encrypted:T,uncompressedSize:y,compressedSize:S,extraFieldZip64:I}=d,{compressionMethod:N,rawExtraField:U}=d,{level:H,languageEncodingFlag:q,dataDescriptor:$}=A;U=Hu(U||Z),d.extraFieldAES&&(N=99);let j=B(U),W=!!I&&I.uncompressedSize!==w,F=!!I&&I.compressedSize!==w,ne=Vu(H,q,$,T,N)&-7|H<<1,{headerArray:z,headerView:X}=Gu({version:u,bitFlag:ne,compressionMethod:N,uncompressedSize:y,compressedSize:S,rawLastModDate:g,rawFilename:_,zip64CompressedSize:F,zip64UncompressedSize:W,extraFieldLength:j}),{crc32:M}=d;M!==w&&_e(X,10,M);let{offset:G,diskNumberStart:Ee}=E.get(d);Object.assign(d,{zip64Enabled:!0,zip64UncompressedSize:W,zip64CompressedSize:F,offset:G,diskNumberStart:Ee,zip64DiskNumberStart:!1,rawExtraFieldZip64:Z,rawExtraFieldAES:Z,rawExtraFieldExtendedTimestamp:Z,rawExtraFieldNTFS:Z,rawExtraFieldUnix:Z,rawExtraField:U,rawCentralExtraField:Z,headerArray:z,headerView:X}),i.set(d.filename,d)})}catch(R){throw c.forEach(p=>s.delete(p)),R}finally{o(),n.delete(a),f&&f()}}add(e="",r,n={}){let s=this,{pendingAddFileCalls:i}=s,o=fm(s,e,r,n);i.add(o);let a=()=>i.delete(o);return Promise.prototype.then.call(o,a,a),Fa(s,o)}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=Z,r={}){let n=this,{pendingAddFileCalls:s,writer:i}=this,{writable:o}=i;if(n.archiveClosed)return eu(i);if(!(e instanceof Uint8Array))throw new Error(au);if(B(e)>65535)throw new Error(Ga);for(;s.size;)await Promise.allSettled(Array.from(s));await Promise.allSettled(n.pendingErrors.map(f=>f.recorded));let a=n.pendingErrors.filter(f=>f.failed&&!f.observed);if(a.length){let f=a.map(p=>p.error);a.forEach(p=>p.observed=!0);let[R]=f;try{R.entryErrors=f}catch{}throw R}return await Sm(n,e,r),n.archiveClosed=!0,!fn(i)&&k(n,r,$n)||await o.getWriter().close(),eu(i)}[Xn](){return this.close()}};var Ba=class extends Promise{then(e,r){let{watcher:n}=this;return n&&(n.observed=!0),super.then(e,r)}};function eu(t){return t.getData?t.getData():t.writable}function Fa(t,e){let r=new Ba((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 lm(t,e){if(t.filenames.size)throw new Error(bu);await t.appendZipEntries(e)}async function fm(t,e,r,n){n=Object.assign({},n);let s=n[Fi];if(s!==w){let{entryOptions:i,passThroughOptions:o}=Bu(s,pr(k(t,n,Zr)),k(t,n,nr));delete n[Fi],n=Object.assign(i,o,n)}if(k(t,n,sr)&&!e.endsWith("/")&&(e+="/"),t.filenames.has(e))throw new Error(Wa);t.filenames.add(e),Ua<at().maxWorkers?Ua++:await new Promise(i=>$f.push(i));try{return await um(t,e,r,n)}catch(i){throw t.filenames.delete(e),i}finally{let i=$f.shift();i?i():Ua--}}async function um(t,e,r,n){let s=Em(t,e,n);({name:e}=s);let i=pm(t,e,n),{comment:o}=i,a=n[Tn];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 p;try{let{resolvedOptions:l}=i;l.level!=0&&l.compressionMethod===w&&!l.passThroughCompression&&!await Ql(at())&&(l.level=0,Te(t.warnings,ku,e));let h=await mm(t,r,i,n);({reader:r}=h);let m=Dn(t.writer),E=Rt(t.writer),d=n.crc32===w?n[Bs]: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(yu);n=Object.assign({},n,s.resolvedOptions,i.resolvedOptions,h.resolvedOptions,{signature:n[Bs],crc32:d,offset:t.offset-m,diskNumberStart:E,[Vt]:t.options[Vt]});let g=wm(n);g.lastModDateClamped&&Te(t.warnings,zu,e);let _=Tm(n),A=B(g.localHeaderArray,_.dataDescriptorArray);p=await gm(t,e,r,{headerInfo:g,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(p,{name:e,comment:o,extraField:a}),new mt(p)}function Bu(t,e,r){if(t===null||typeof t!=Vn||Array.isArray(t))throw new Error(Mu);let{externalFileAttributes:n,versionMadeBy:s,comment:i,lastModDate:o,rawLastModDate:a,creationDate:c,lastAccessDate:f,uncompressedSize:R,encrypted:p,zipCrypto:l,crc32:h,compressionMethod:m,extraFieldAES:E,extraFieldUnix:d,internalFileAttributes:u,extraField:g,bitFlag:_,directory:A,uid:T,gid:y}=t,S={externalFileAttributes:n,versionMadeBy:s,comment:i,lastModDate:o,creationDate:c,lastAccessDate:f,internalFileAttributes:u,directory:A};_&&_.languageEncodingFlag&&(S[xi]=!0);let I=Rf(g);I&&(S[Tn]=I),(T!==w||y!==w)&&Object.assign(S,{uid:T,gid:y,unixExtraFieldType:d?di:ui});let N={};if(e&&!A){if(Object.assign(N,{uncompressedSize:R,crc32:h,compressionMethod:m}),e!==Kr&&Object.assign(N,{encrypted:p,zipCrypto:l,encryptionStrength:E?E.strength:w}),_&&(N.dataDescriptor=_.dataDescriptor,N[es]=am[_.level]),r===w)N.rawLastModDate=a;else if(e!==Kr&&l&&(!_||_.dataDescriptor)&&r instanceof Date&&dm(r)!=(a>>>8&255))throw new Error(vu)}return{entryOptions:S,passThroughOptions:N}}function dm(t){let e=new Date(Math.ceil(Math.floor(t.getTime()/1e3)/2)*2e3);return e<bt?e=bt:e>Xr&&(e=Xr),(e.getHours()<<3|e.getMinutes()>>3)&255}function Em(t,e,r){let n=k(t,r,xo),s=k(t,r,Fo,n?20:768),i=k(t,r,vo),o=Mr(t,r,zo),a=Mr(t,r,Bo),c=Mr(t,r,Ho),f=k(t,r,Lc),R=k(t,r,Yo),p=k(t,r,Wo),l=k(t,r,Go);if(mr(o,4294967295,Nu),mr(a,4294967295,Ou),mr(c,65535,Du),f!==w&&f!==ui&&f!==di)throw new Error(Pu);if(f===di&&(o!==w&&o>65535||a!==w&&a>65535))throw new Error(Cu);f===w&&(o!==w||a!==w)&&(f=ui);let h=Mr(t,r,Po),m=k(t,r,Co),E=o!==w||a!==w||c!==w||f||i,d=h!==w||m!==w;if(E?(n=!1,s=s&255|768):d&&(n=!0,s=s&255),mr(h,255,xu),m&&(typeof m!==Vn||Array.isArray(m)))throw new Error(Lu);if(s>65535)throw new Error(Va);let u=k(t,r,Do),g=u!==w;g||(u=0),!r[sr]&&e.endsWith("/")&&(r[sr]=!0);let _=k(t,r,sr);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||l),S=u>>16&65535;c=c===w?S:c&65535,R?c|=2048:R=!!(c&2048),p?c|=1024:p=!!(c&1024),l?c|=512:l=!!(c&512),(!g||y)&&(_?c=c&-61441|16384:c&61440||(c|=32768),u=(c&65535)<<16|u&65535)}({msdosAttributesRaw:h,msdosAttributes:m}=_m(h,m)),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:o,gid:a,unixMode:c,unixExtraFieldType:f,symlink:T,setuid:R,setgid:p,sticky:l,msdosAttributesRaw:h,msdosAttributes:m}}}function pm(t,e,r){let n=Ha(t,r,xc)||gr,s=n(e,ts);if(s===w&&(s=gr(e)),B(s)>65535)throw new Error(uu);let i=r[gn]||"";if(typeof i!=We)throw new Error(lu);let o=n(i,rs);if(o===w&&(o=gr(i)),B(o)>65535)throw new Error(cu);let a=k(t,r,Uo);if(a!==w&&a>65535)throw new Error(Va);let c=za(t,r,nr,new Date),f=k(t,r,Nr),R=za(t,r,wn),p=za(t,r,_n),l=k(t,r,Oo,0),h=pr(k(t,r,Zr)),m=!!h,E=h===!0,d=k(t,r,Zn),u=k(t,r,jn);ss(d,u),d=d&&d.length?d:w,u=u&&u.length?u:w;let g=Mr(t,r,Sc,3),_=k(t,r,Mo),A=k(t,r,Ic,!0),T=k(t,r,bc),y=k(t,r,Nc,!0),S=k(t,r,qn),I=k(t,r,Qn),N=k(t,r,Oc),U=Ha(t,r,Dc),H=k(t,r,Pc,!0),q=qr(k(t,r,Kn));Xt(q);let $=k(t,r,xi,!ou(s)||!ou(o)),j=k(t,r,ko),W=m||j===w?w:ms(j);if(!m&&j!==w&&j!==0&&j!==8&&!W)throw new Error(ut);let F=Mr(t,r,es);if(mr(F,cm,Uu),t.options[Vt]){if(d!==w||u!==w)throw new Error(Eu);F===w&&j===w&&(F=0)}m&&(F=Ot(r[es]));let ne=k(t,r,Jn),z=k(t,r,Li);N&&z===w&&(z=!1),(z===w||_&&!E)&&(z=!0),F!==w&&F!=6&&(ne=!1);let X=k(t,r,zs);if(!_&&(d!==w||u!==w)&&!(Number.isInteger(g)&&g>=1&&g<=3))throw new Error(du);let M=Ma(r[Tn]),G=Ma(r[Uc]),Ee=Ma(r[Fc]);return{comment:i,resolvedOptions:{rawFilename:s,rawComment:o,version:a,lastModDate:c,rawLastModDate:f,lastAccessDate:R,creationDate:p,internalFileAttributes:l,passThroughCompression:m,passThroughEncryption:E,password:d,rawPassword:u,encryptionStrength:g,zipCrypto:_,extendedTimestamp:A,ntfsTimestamp:T,keepOrder:y,useWebWorkers:S,transferStreams:I,bufferedWrite:N,createTempStream:U,dataDescriptorSignature:H,signal:q,useUnicodeFileNames:$,compressionMethod:j,format:W?W.format:w,codecURI:W?W.codecURI:w,codecVersionNeeded:W?W.versionNeeded:w,level:F,useCompressionStream:ne,dataDescriptor:z,zip64:X,rawExtraField:M,rawLocalExtraField:G,rawCentralExtraField:Ee}}}function Ma(t){if(!t)return Z;if(!(t instanceof Map))throw new Error(hu);let e=0,r=0;t.forEach((i,o)=>{if(vi(o,65535,gu),!(i instanceof Uint8Array))throw new Error(Ru);if(B(i)>65535)throw new Error(mi);e+=4+B(i)});let n=new Uint8Array(e),s=L(n);return t.forEach((i,o)=>{rt(s,r,o),rt(s,r+2,B(i)),xn(n,i,r+4),r+=4+B(i)}),n}async function mm(t,e,{resolvedOptions:r},n){if(r.passThroughCompression&&!e&&!k(t,n,sr))throw new Error(Su);let s;if(e){if(e=new pt(e),await ge(e),!e.readable&&!e.readUint8Array)throw new Error(Iu);({size:s}=e)}return Object.assign({reader:e},hm(t,!!e,s,r,n))}function hm(t,e,r,n,s){let{passThroughCompression:i,passThroughEncryption:o,zipCrypto:a,password:c,rawPassword:f,encryptionStrength:R}=n,{dataDescriptor:p,zip64:l,level:h,compressionMethod:m}=n,E=0,d=0,u=!1;if(i&&e){if(d=s[Rn],d===w)throw new Error(Tu);if(m===w)throw new Error(Au)}let g=l===!0,_=k(t,s,Lo);if(e&&o&&!_&&B(c,f))throw new Error(mu);let A=e&&(!!(c&&B(c)||f&&B(f))||o&&_);e||(h=0,m=0);let T=An(A,a,R);e&&(i?(s.uncompressedSize=d,E=r===w?iu(d)+T:r+(o?0:T)):r===w?(p=!0,(l||l===w)&&(l=u=!0,E=4294967296)):(s.uncompressedSize=d=r,E=(Ya(m,h)?iu(d):d)+T));let y=!A&&(!e||r===0&&!i)&&!Ya(m,h);y&&k(t,s,Li)===w&&(p=!1);let S=g||u||d>=4294967295,I=g||E>=4294967295;if(S||I){if(l===!1)throw new Error(hi);l=!0}return l=l||!1,{maximumCompressedSize:E,resolvedOptions:{dataDescriptor:p,emptyEntry:y,zip64:l,zip64Enabled:g,unknownSize:u,zip64UncompressedSize:S,zip64CompressedSize:I,uncompressedSize:d,level:h,compressionMethod:m,encrypted:A}}}async function gm(t,e,r,n,s){let{fileEntries:i,writer:o}=t,{keepOrder:a,dataDescriptor:c,emptyEntry:f,signal:R}=s,{headerInfo:p,fileEntry:l,previousFileEntry:h,releaseLockFileEntry:m}=n,E=t.options[Vt],d=l,u,g,_,A,T,y,S=0,I,N=a&&h?h.lockFileEntry:w;i.set(e,d);try{s.bufferedWrite||!a||t.writerLocked||t.bufferedWrites||t.directWrites||!c&&!f?(u=!0,t.bufferedWrites++,s.createTempStream?I=await s.createTempStream():I=new TransformStream(w,w,{highWaterMark:Gt}),I.size=0,await ge(o)):(g=!0,t.directWrites++,I=o,await N,await U()),await ge(I);let q=Dn(o);t.addSplitZipSignature&&!u&&await nu(t,o),E&&!u&&tu(n,t.offset-q);let{localHeaderArray:$}=p;u||await H();let j=Rt(o),W=Pn(t,o);if(d.diskNumberStart=j,u||(T=!0,y=o.size,await nt(I,$)),d=await Rm(r,I,d,n,at(),s),u||(T=!1),i.set(e,d),d.filename=e,u){if(await Promise.all([I.writable.getWriter().close(),N]),await U(),t.addSplitZipSignature&&await nu(t,o),A=!0,y=o.size,await H(),d.diskNumberStart=Rt(o),d.offset=Pn(t,o),E){let F=n.metadataSize;tu(n,t.offset-Dn(o)),d.size+=n.metadataSize-F}ym(d,p.localHeaderView,s),await nt(o,p.localHeaderArray),await Wu(I.readable,o,R,F=>S+=F),o.size+=I.size,A=!1}else d.diskNumberStart=j,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+=o.size-y,u&&(t.offset+=S)}throw i.delete(e),q}finally{if(u&&t.bufferedWrites--,g&&t.directWrites--,m&&m(N),_&&_(),u&&I&&I.dispose)try{await I.dispose()}catch{}}async function U(){t.writerLocked=!0;let{lockWriter:q}=t;t.lockWriter=new Promise($=>_=()=>{t.writerLocked=!1,$()}),await q}async function H(){vr(o,B(p.localHeaderArray))&&await o.closeDisk()}}async function Rm(t,e,{diskNumberStart:r,lockFileEntry:n},s,i,o){let{headerInfo:a,dataDescriptorInfo:c,metadataSize:f}=s,{headerArray:R,headerView:p,lastModDate:l,rawLastModDate:h,encrypted:m,compressed:E,version:d,compressionMethod:u,rawExtraFieldZip64:g,localExtraFieldZip64Length:_,rawExtraFieldExtendedTimestamp:A,extraFieldExtendedTimestampFlag:T,extraFieldExtendedTimestampTime:y,rawExtraFieldNTFS:S,rawExtraFieldUnix:I,rawExtraFieldAES:N}=a,{dataDescriptorArray:U}=c,{rawFilename:H,lastAccessDate:q,creationDate:$,password:j,rawPassword:W,level:F,useUnicodeFileNames:ne,zip64:z,zip64Enabled:X,zip64UncompressedSize:M,zip64CompressedSize:G,zipCrypto:Ee,dataDescriptor:me,directory:st,executable:Me,versionMadeBy:ve,rawComment:je,rawExtraField:Ne,rawCentralExtraField:Oe,useWebWorkers:De,transferStreams:ae,onstart:Pe,onprogress:ke,onend:fe,signal:te,encryptionStrength:J,extendedTimestamp:b,msDosCompatible:Y,internalFileAttributes:Q,externalFileAttributes:pe,uid:Ce,gid:Ke,unixMode:Bt,symlink:Yr,setuid:Ht,setgid:Ye,sticky:Tt,unixExternalUpper:it,msdosAttributesRaw:de,msdosAttributes:ye,useCompressionStream:Bn,passThroughCompression:At,passThroughEncryption:yt,format:Hn,codecURI:Pi}=o,Wr={lockFileEntry:n,versionMadeBy:ve,zip64:z,zip64Enabled:X,directory:!!st,executable:!!Me,filenameUTF8:!!ne,rawFilename:H,commentUTF8:!!ne,rawComment:je,rawExtraFieldZip64:g,localExtraFieldZip64Length:_,rawExtraFieldExtendedTimestamp:A,rawExtraFieldNTFS:S,rawExtraFieldUnix:I,rawExtraFieldAES:N,rawExtraField:Ne,rawCentralExtraField:Oe,extendedTimestamp:b,msDosCompatible:Y,internalFileAttributes:Q,externalFileAttributes:pe,diskNumberStart:r,uid:Ce,gid:Ke,unixMode:Bt,symlink:!!Yr,setuid:Ht,setgid:Ye,sticky:Tt,unixExternalUpper:it,msdosAttributesRaw:de,msdosAttributes:ye},{crc32:Yt,uncompressedSize:St}=o,he=0;At||(St=0);let{writable:Gr}=e;if(t){let Wt=t.size,It=He(po(t,{size:Wt})),Yn={options:{codecType:Ar,inputSize:Wt,level:F,rawPassword:W,password:j,encryptionStrength:J,zipCrypto:m&&Ee,passwordVerification:m&&Ee&&h>>8&255,computeCrc32:!At,compressed:E&&!At,encrypted:m&&!yt,useWebWorkers:De,useCompressionStream:Bn,transferStreams:ae,format:Hn,codecURI:Pi,compressionMethod:u},config:i,streamOptions:{signal:te,size:Wt,onstart:Pe,onprogress:ke,onend:fe}};try{let qe=await Us({readable:It,writable:Gr},Yn);if(he=qe.outputSize,e.size+=he,Xt(te),At||(St=qe.inputSize,(!m||Ee)&&(Yt=qe.crc32)),!G&&he>=4294967295||!M&&St>=4294967295)throw new Error(hi)}catch(qe){let{outputSize:Wn}=Yn;throw Wn!==w?e.size+=Wn:Re(qe)&&qe.outputSize!==w&&(e.size+=qe.outputSize),qe}}return Am({crc32:Yt,compressedSize:he,uncompressedSize:St,headerInfo:a,dataDescriptorInfo:c},o),me&&await nt(e,U),Object.assign(Wr,{uncompressedSize:St,compressedSize:he,lastModDate:l,rawLastModDate:h,creationDate:$,lastAccessDate:q,encrypted:!!m,zipCrypto:!!Ee,size:f+he,compressionMethod:u,version:d,headerArray:R,headerView:p,signature:Yt,crc32:m&&!Ee&&!At?w:Yt,extraFieldExtendedTimestampFlag:T,extraFieldExtendedTimestampTime:y,zip64UncompressedSize:M,zip64CompressedSize:G}),Wr}function wm(t){let{rawFilename:e,lastModDate:r,rawLastModDate:n,lastAccessDate:s,creationDate:i,level:o,zip64:a,zipCrypto:c,useUnicodeFileNames:f,dataDescriptor:R,directory:p,rawExtraField:l,rawLocalExtraField:h,encryptionStrength:m,extendedTimestamp:E,ntfsTimestamp:d,passThroughCompression:u,encrypted:g,zip64UncompressedSize:_,zip64CompressedSize:A,uncompressedSize:T,unknownSize:y,crc32:S}=t,{version:I,compressionMethod:N}=t,U=!p&&Ya(N,o),H,q=u||!U,$=a&&(t.bufferedWrite||!R||!_&&!A||q&&!y),j=$||a&&R&&(_||A);if(a&&(_||A)){let te=Ue(20);if(te.writeUint16(1),te.writeUint16(16),H=te.array,$&&(te.writeUint64(T),q)){let J=An(g,c,m);te.writeUint64(u?0:T+J)}}else H=Z;let W;if(g&&!c){let fe=Ue(B(Qf)+2);fe.writeUint16(39169),fe.writeBytes(Qf),W=fe.array,W[8]=m}else W=Z;let F,ne,z,X;if(E){let fe=li(r),te=xm(fe);if(te){let b=9+(s?4:0)+(i?4:0),Y=Ue(b);z=1+(s?2:0)+(i?4:0),X=fe,Y.writeUint16(21589),Y.writeUint16(b-4),Y.writeUint8(z),Y.writeUint32(fe),s&&Y.writeUint32(su(li(s))),i&&Y.writeUint32(su(li(i))),ne=Y.array}else ne=Z;if(d===w?!te||!!(s||i):d)try{let b=ka(r),Y=Ue(36);Y.writeUint16(10),Y.writeUint16(32),Y.skip(4),Y.writeUint16(1),Y.writeUint16(24),Y.writeUint64(b),Y.writeUint64(s?ka(s):b),Y.writeUint64(i?ka(i):b),F=Y.array}catch{F=Z}else F=Z}else F=ne=Z;let M;try{let{uid:fe,gid:te,unixExtraFieldType:J}=t;if(J==ui&&(fe!==w||te!==w)){let b=ru(fe===w?0:fe),Y=ru(te===w?0:te),Q=3+b.length+Y.length,pe=Ue(4+Q);pe.writeUint16(30837),pe.writeUint16(Q),pe.writeUint8(1),pe.writeUint8(b.length),pe.writeBytes(b),pe.writeUint8(Y.length),pe.writeBytes(Y),M=pe.array}else if(J==di&&(fe!==w||te!==w)){let b=Ue(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=Z}catch{M=Z}N===w&&(N=U?8:0),I===w&&(I=N==0&&!p&&!g?10:20);let{codecVersionNeeded:G}=t;U&&G!==w&&(I=I>G?I:G),a&&(I=I>45?I:45),g&&!c&&(I=I>51?I:51,u&&S!==w&&(W[tm]=om),rt(L(W),rm,N),N=99);let Ee=j?B(H):0,me=Ee+B(W,ne,F,M,l,h),st=t[Vt]?nm:0;if(me+st>65535)throw new Error(mi);let Me=new Date(Math.ceil(Math.floor(r.getTime()/1e3)/2)*2e3),ve=Me<bt?bt:Me>Xr?Xr:Me,je=B(ne)?new Date(li(r)*1e3):B(F)?r:ve,{headerArray:Ne,headerView:Oe,rawLastModDate:De}=Gu({version:I,bitFlag:Vu(o,f,R,g,N),compressionMethod:N,uncompressedSize:T,lastModDate:ve,rawLastModDate:n,rawFilename:e,zip64CompressedSize:A,zip64UncompressedSize:_,extraFieldLength:me}),ae=Ue(30+B(e)+me),Pe=ae.array,ke=L(Pe);return ae.writeUint32(67324752),ae.writeBytes(Ne),ae.writeBytes(e),j&&ae.writeBytes(H),ae.writeBytes(W),ae.writeBytes(ne),ae.writeBytes(F),ae.writeBytes(M),ae.writeBytes(l),ae.writeBytes(h),R&&(A||_e(ke,18,0),_||_e(ke,22,0)),{localHeaderArray:Pe,localHeaderView:ke,headerArray:Ne,headerView:Oe,lastModDate:je,lastModDateClamped:je===ve&&Me.getTime()!=ve.getTime(),rawLastModDate:De,encrypted:g,compressed:U,version:I,compressionMethod:N,extraFieldExtendedTimestampFlag:z,extraFieldExtendedTimestampTime:X,rawExtraFieldZip64:Z,localExtraFieldZip64Length:Ee,rawExtraFieldExtendedTimestamp:ne,rawExtraFieldNTFS:F,rawExtraFieldUnix:M,rawExtraFieldAES:W,extraFieldLength:me}}function tu(t,e){let{headerInfo:r}=t,{localHeaderArray:n,extraFieldLength:s}=r,i=64-(e+B(n))%64;i<4&&(i+=64);let o=new Uint8Array(i),a=L(o);rt(a,0,6534),rt(a,2,i-4);let c=n;r.localHeaderArray=n=new Uint8Array(B(c)+i),xn(n,c),xn(n,o,B(c));let f=L(n);rt(f,28,s+i),r.localHeaderView=f,t.metadataSize+=i}function ru(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 _m(t,e){if(t!==w)t=t&255;else if(e!==w){let{readOnly:r,hidden:n,system:s,directory:i,archive:o}=e,a=0;r&&(a|=1),n&&(a|=2),s&&(a|=4),i&&(a|=16),o&&(a|=32),t=a&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 Tm({zip64:t,dataDescriptor:e,dataDescriptorSignature:r}){let n=Z,s,i=0,o=t?20:12;return r&&(o+=4),e&&(n=new Uint8Array(o),s=L(n),r&&(i=4,_e(s,0,134695760))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:i}}function Am({crc32:t,compressedSize:e,uncompressedSize:r,headerInfo:n,dataDescriptorInfo:s},{zip64:i,zipCrypto:o,passThroughCompression:a,dataDescriptor:c}){let{headerView:f,encrypted:R}=n,{dataDescriptorView:p,dataDescriptorOffset:l}=s;(!R||o||a)&&t!==w&&(_e(f,10,t),c&&_e(p,l,t)),i?c&&(Cn(p,l+4,BigInt(e)),Cn(p,l+12,BigInt(r))):(_e(f,14,e),_e(f,18,r),c&&(_e(p,l+4,e),_e(p,l+8,r)))}function ym({rawFilename:t,encrypted:e,zip64:r,localExtraFieldZip64Length:n,crc32:s,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:a,zip64CompressedSize:c},f,{dataDescriptor:R,passThroughCompression:p}){if(R||((!e||p&&s!==w)&&_e(f,14,s),c||_e(f,18,i),a||_e(f,22,o)),r&&n){let l=30+B(t)+4;Cn(f,l,BigInt(o)),Cn(f,l+8,BigInt(i))}}async function Sm(t,e,r){let{directoryDataLength:n,zip64Entries:s}=Im(t.fileEntries),{directoryStart:i,directoryEnd:o,directoryArray:a}=await bm(t,n,r),c=await Nm(t,a,r);await Om(t,e,r,{directoryStart:i,directoryEnd:o,directoryDataLength:n,signatureLength:c,zip64Entries:s})}function Im(t){let e=0,r=!1;for(let[,n]of t){let{rawFilename:s,rawExtraFieldAES:i,rawComment:o,rawExtraFieldNTFS:a,rawExtraFieldUnix:c,rawExtraField:f,rawCentralExtraField:R,extraFieldExtendedTimestampFlag:p,extraFieldExtendedTimestampTime:l,zip64Enabled:h,uncompressedSize:m,compressedSize:E}=n,{zip64UncompressedSize:d,zip64CompressedSize:u}=n;h||(d&&m<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=Ue(S);I.writeUint16(1),I.writeUint16(S-4),d&&I.writeUint64(m),u&&I.writeUint64(E),g&&I.writeUint64(n.offset),_&&I.writeUint32(n.diskNumberStart),A=I.array}else A=Z;n.rawExtraFieldZip64=A,n.zip64Offset=g,n.zip64DiskNumberStart=_;let T;if(l===w)T=Z;else{let S=Ue(9);S.writeUint16(21589),S.writeUint16(5),S.writeUint8(p),S.writeUint32(l),T=S.array}n.rawExtraFieldExtendedTimestamp=T;let y=B(A,i,a,c,T,f,R);if(y>65535)throw new Error(mi);e+=46+B(s,o)+y}return{directoryDataLength:e,zip64Entries:r}}async function bm(t,e,r){let{fileEntries:n,writer:s}=t,i=new Uint8Array(e);await ge(s);let o=0,a=0,c=Rt(s),f=Dn(s),R=0;for(let[p,l]of Array.from(n.values()).entries()){let{offset:h,rawFilename:m,rawExtraFieldZip64:E,rawExtraFieldAES:d,rawExtraFieldExtendedTimestamp:u,rawExtraFieldNTFS:g,rawExtraFieldUnix:_,rawExtraField:A,rawCentralExtraField:T,rawComment:y,versionMadeBy:S,headerArray:I,headerView:N,zip64UncompressedSize:U,zip64CompressedSize:H,zip64DiskNumberStart:q,zip64Offset:$,internalFileAttributes:j,externalFileAttributes:W,diskNumberStart:F,uncompressedSize:ne,compressedSize:z}=l,X=B(E,d,u,g,_,A,T),M=46+B(m,y)+X;vr(s,o+M-a)&&(await nt(s,i.slice(a,o)),a=o,R=0,await s.closeDisk()),p==0&&(c=Rt(s),f=Dn(s)),U||_e(N,18,ne),H||_e(N,14,z),($||q)&&l.version<45&&rt(N,0,45);let G=Ue(M);if(G.writeUint32(33639248),G.writeUint16(S),G.writeBytes(I.subarray(0,24)),G.writeUint16(X),G.writeUint16(B(y)),G.writeUint16(q?65535:F),G.writeUint16(j),G.writeUint32(W),G.writeUint32($?4294967295:h),G.writeBytes(m),G.writeBytes(E),G.writeBytes(d),G.writeBytes(u),G.writeBytes(g),G.writeBytes(_),G.writeBytes(A),G.writeBytes(T),G.writeBytes(y),xn(i,G.array,o),o+=M,R++,r.onprogress)try{await r.onprogress(p+1,n.size,new mt(l))}catch{}}return await nt(s,a?i.slice(a):i),{directoryStart:{diskNumber:c,diskOffset:f},directoryEnd:{diskNumber:Rt(s),entriesLength:R},directoryArray:i}}async function Nm(t,e,r){let n=Ha(t,r,Bc);if(n){let s=await n(e),i=B(s);if(i>65535)throw new Error(Fu);let o=Ue(6+i);o.writeUint32(84233040),o.writeUint16(i),o.writeBytes(s);let{writer:a}=t;return vr(a,B(o.array))&&await a.closeDisk(),await nt(a,o.array),6+i}return 0}async function Om(t,e,r,n){let{writer:s}=t,{directoryStart:i,directoryEnd:o,signatureLength:a,zip64Entries:c}=n,{directoryDataLength:f}=n,R=t.fileEntries.size,p=i.diskNumber,l=Pn(t,i),h=B(e);if(h>65535)throw new Error(Ga);let m=k(t,r,zs),E=Rt(s);if(vr(s,(m?98:22)+h)&&E++,l>=4294967295||f>=4294967295||R>=65535||E>=65535){if(m===!1)throw new Error(hi);m=!0}else m===w&&c&&(m=!0);let d=Ue(m?98:22);vr(s,B(d.array)+h)&&await s.closeDisk(),E=Rt(s);let u=E==o.diskNumber?o.entriesLength:0;m&&(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(f),d.writeUint64(l),d.writeUint32(117853008),d.writeUint32(E),d.writeUint64(BigInt(Pn(t,s))+BigInt(f)+BigInt(a)),d.writeUint32(E+1),k(t,r,Cc,!0)&&(E=65535,p=65535),u=65535,R=65535,l=4294967295,f=4294967295),d.writeUint32(101010256),d.writeUint16(E),d.writeUint16(p),d.writeUint16(u),d.writeUint16(R),d.writeUint32(f),d.writeUint32(l),d.writeUint16(h),await nt(s,d.array),h&&await nt(s,e)}function Ue(t){let e=new Uint8Array(t),r=L(e),n=0;return{array:e,writeUint8:s=>{Um(r,n,s),n+=1},writeUint16:s=>{rt(r,n,s),n+=2},writeUint32:s=>{_e(r,n,s),n+=4},writeUint64:s=>{Cn(r,n,BigInt(s)),n+=8},writeBytes:s=>{xn(e,s,n),n+=B(s)},skip:s=>n+=s}}function Rt(t){let{diskNumber:e=0}=t;return e}function Dn(t){let{diskOffset:e=0}=t;return e}function vr(t,e){let{availableSize:r=Gt}=t;return e>r}function Pn(t,{diskNumber:e=0,diskOffset:r=0}){return t.offset-r-(e?t.initialOffset:0)}async function Dm(t){let e=await re(t,0,4);return Lm(L(e),0)==134695760}function Hu(t){let e=L(t),r=0;for(;r+4<=B(t);){let n=4+pi(e,r+2);if(pi(e,r)==1)return Hu(Be(t.subarray(0,r),t.subarray(Math.min(r+n,B(t)))));r+=n}return t}async function Pm(t,e,r,n){let{writer:s}=t,i=new Map;if(s.closeDisk){let o=Array.from(r).sort((c,f)=>ci(e,c)-ci(e,f)),a=0;for(let c of o){let f=ci(e,c);await va(t,e,a,f-a),vr(s,await Cm(e,f))&&await s.closeDisk(),i.set(c,{offset:Pn(t,s),diskNumberStart:Rt(s)}),a=f}await va(t,e,a,n-a)}else{let o=t.offset;await va(t,e,0,n),r.forEach(a=>i.set(a,{offset:o+ci(e,a),diskNumberStart:0}))}return i}async function va(t,e,r,n){if(n>0){let{writer:s}=t,i=0;try{await Wu(po(e,{offset:r,size:n}),s,w,o=>i+=o)}catch(o){t.hasCorruptedEntries=!0;try{o.corruptedEntry=!0}catch{}throw o}finally{s.size+=i,t.offset+=i}}}async function Cm(t,e){let r=await re(t,e,30);if(B(r)<30)return 30;let n=L(r);return 30+pi(n,26)+pi(n,28)}function ci(t,{offset:e,diskNumberStart:r}){return e+(t.getDiskOffset?t.getDiskOffset(r):0)}function Yu(){let t=new Uint8Array(4);return _e(L(t),0,134695760),t}async function nu(t,e){delete t.addSplitZipSignature,await nt(e,Yu()),t.offset+=4}async function nt(t,e){let{writable:r}=t,n=r.getWriter();try{await n.ready,t.size+=B(e),await n.write(e)}finally{n.releaseLock()}}async function Wu(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(B(i))}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{s.releaseLock()}}function ka(t){if(t){let e=(BigInt(t.getTime())+BigInt(116444736e5))*BigInt(1e4);return e<qf?qf:e>Jf?Jf:e}}function li(t){return Math.floor(t.getTime()/1e3)}function xm(t){return t>=wu&&t<=_u}function su(t){return Math.min(_u,Math.max(wu,t))}function k(t,e,r,n){let s=e[r]===w?t.options[r]:e[r];return s===w?n:s}function za(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(fu);return s}function Ha(t,e,r){return Er(k(t,e,r))}function Mr(t,e,r,n){return Ot(k(t,e,r,n))}function iu(t){return t+5*(Math.floor(t/16383)+1)}function Ya(t,e){return t===w?e===w||e>0:t!==0}function pi(t,e){return t.getUint16(e,!0)}function Lm(t,e){return t.getUint32(e,!0)}function Um(t,e,r){t.setUint8(e,r)}function rt(t,e,r){t.setUint16(e,r,!0)}function _e(t,e,r){t.setUint32(e,r,!0)}function Cn(t,e,r){t.setBigUint64(e,r,!0)}function xn(t,e,r){t.set(e,r)}function B(...t){let e=0;return t.forEach(r=>r&&(e+=r.length)),e}function Gu({version:t,bitFlag:e,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:i,rawLastModDate:o,rawFilename:a,zip64CompressedSize:c,zip64UncompressedSize:f,extraFieldLength:R}){let p=Ue(26),l=p.array,h=L(l);if(p.writeUint16(t),p.writeUint16(e),p.writeUint16(r),o===w){let m=new Uint32Array(1),E=L(m);rt(E,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),rt(E,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),o=m[0]}return p.writeUint32(o),p.skip(4),c||s!==w?p.writeUint32(c?4294967295:s):p.skip(4),f||n!==w?p.writeUint32(f?4294967295:n):p.skip(4),p.writeUint16(B(a)),p.writeUint16(R),{headerArray:l,headerView:h,rawLastModDate:o}}function ou(t){return t.every(e=>e>=sm&&e<=im)}function Vu(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}un();hr();Ge();qt();ue();Ge();qt();Qi();var ew=1024*1024;jt();var nw=1024*1024;var iw=1024*1024;var ow=512*1024;var Vm={};try{Dt({baseURI:Vm.url})}catch{}Ge();var Xm=[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],Zm=[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],jm=[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],Km=[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],qm=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Un=new Uint8Array(288);Un.fill(8,0,144),Un.fill(9,144,256),Un.fill(7,256,280),Un.fill(8,280,288);var Jm=new Uint8Array(30).fill(5);function Ln(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 Xu(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 a=r[i]<<16|r[i+1]<<8|r[i+2];n+=Fe[a>>18&63]+Fe[a>>12&63]+Fe[a>>6&63]+Fe[63&a]}let o=s-i;if(o===1){let a=r[i]<<16;n+=Fe[a>>18&63]+Fe[a>>12&63]+"=="}else if(o===2){let a=r[i]<<16|r[i+1]<<8;n+=Fe[a>>18&63]+Fe[a>>12&63]+Fe[a>>6&63]+"="}return n})((function(r){let n=0,s=0,i=0,o=new Uint8Array(1024),a=0,c=0;for(;!c;){c=R(1);let d=R(2);if(d==0)p();else if(d==1)l(Ln(Un),Ln(Jm));else{if(d!=2)throw new Error("invalid deflate block type");l(...h())}}return o.subarray(0,a);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 p(){s=0,i=0;let d=f()|f()<<8;n+=2,E(a+d);for(let u=0;u<d;u++)o[a++]=f()}function l(d,u){let g=m(d);for(;g!=256;){if(g<256)E(a+1),o[a++]=g;else{let _=g-257,A=Xm[_]+R(Zm[_]),T=m(u),y=jm[T]+R(Km[T]);E(a+A);let S=a-y;for(let I=0;I<A;I++)o[a++]=o[S+I]}g=m(d)}}function h(){let d=R(5)+257,u=R(5)+1,g=R(4)+4,_=new Uint8Array(19);for(let S=0;S<g;S++)_[qm[S]]=R(3);let A=Ln(_),T=new Uint8Array(d+u),y=0;for(;y<T.length;){let S=m(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[Ln(T.subarray(0,d)),Ln(T.subarray(d))]}function m(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(o.length<d){let u=2*o.length;for(;u<d;)u*=2;let g=new Uint8Array(u);g.set(o.subarray(0,a)),o=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 o=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(o>>16&255),r[i+2]!=="="&&s.push(o>>8&255),r[i+3]!=="="&&s.push(255&o)}return new Uint8Array(s)})("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")))),e)})}ue();Ge();yr();Fs();Vi();var wi="deflate",gi="deflate-raw",Zu="deflate64-raw",Ri="gzip";var Qm="Z_MEM_ERROR",ju=[wi,gi,Ri],Ku=[wi,gi,Ri,Zu],le,zr,wt,Fn,qu;function Ju(t){if(le=t,{malloc:zr,free:wt,memory:Fn}=le,typeof zr!="function"||typeof wt!="function"||!Fn)throw le=zr=wt=Fn=null,new Error("Invalid WASM module")}function Qu(t){qu=t}function kr(t,e){return e===-4&&(t.code=Qm),t}function $u(t,e,r={}){if(!(t?ju:Ku).includes(e))throw new TypeError("Unsupported format: "+e);if(!le){let T=new Error("WASM module not loaded");throw T.cause=qu,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,o={out:0,in:0,inBufferSize:0,streamHandle:0,streamEnded:!1},a,c,f,R,p=!0,l=!1;E();let h=new ReadableStream({start(T){a=T},pull(){p=!1,_()},cancel(T){l=!0,R=T,A(o),c.error(T),_()}},{highWaterMark:0}),m=new WritableStream({start(T){c=T},async write(T){if(p&&await new Promise(y=>f=y),l)throw R;try{d(T)}catch(y){throw A(o),a.error(y),y}},close(){if(l)return;try{u()}catch(y){throw A(o),a.error(y),y}let T=A(o);if(T!==0){let y=kr(new Error("end error:"+T),T);throw a.error(y),y}a.close()},abort(T){A(o),a.error(T)}},{highWaterMark:1});return{readable:h,writable:m};function E(){try{let T;if(o.out=zr(s),o.in=zr(i),o.inBufferSize=i,!o.out||!o.in)throw kr(new Error("allocation failed"),-4);if(t?(o._process=le.deflate_process,o._last_consumed=le.deflate_last_consumed,o._end=le.deflate_end,o.streamHandle=le.deflate_new(),e===Ri?T=le.deflate_init_gzip(o.streamHandle,n):e===gi?T=le.deflate_init_raw(o.streamHandle,n):T=le.deflate_init(o.streamHandle,n)):e===Zu?(o._process=le.inflate9_process,o._last_consumed=le.inflate9_last_consumed,o._end=le.inflate9_end,o.streamHandle=le.inflate9_new(),T=le.inflate9_init_raw(o.streamHandle)):(o._process=le.inflate_process,o._last_consumed=le.inflate_last_consumed,o._end=le.inflate_end,o.streamHandle=le.inflate_new(),e===gi?T=le.inflate_init_raw(o.streamHandle):e===Ri?T=le.inflate_init_gzip(o.streamHandle):T=le.inflate_init(o.streamHandle)),T!==0)throw kr(new Error("init failed:"+T),T)}catch(T){throw A(o),T}}function d(T){let y=new Uint8Array(Fn.buffer),S=o._process,I=o._last_consumed,N=o.out,U=0;for(;U<T.length;){if(o.streamEnded)throw new Error("trailing data after the end of the stream");let H=Math.min(T.length-U,32*1024);if((!o.in||o.inBufferSize<H)&&(o.in&&wt&&(wt(o.in),o.in=0),o.in=zr(H),o.inBufferSize=H,!o.in))throw kr(new Error("allocation failed"),-4);y.set(T.subarray(U,U+H),o.in);let q=S(o.streamHandle,o.in,H,N,s,0),$=q>>24&255,j=$&128?$-256:$;if(j<0)throw kr(new Error("process error:"+j),j);let W=q&16777215;W&&g(y.slice(N,N+W));let F=I(o.streamHandle);if($===1)o.streamEnded=!0;else if(F===0&&W===0)break;U+=F}}function u(){let T=new Uint8Array(Fn.buffer),y=o._process,S=o.out;for(;;){let I=y(o.streamHandle,0,0,S,s,4),N=I>>24&255,U=N&128?N-256:N;if(U<0)throw kr(new Error("process error:"+U),U);let H=I&16777215;if(H&&g(T.slice(S,S+H)),N===1||H===0)break}}function g(T){p=!0,a.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 fr=class{constructor(e=wi,r){return $u(!0,e,r)}},ur=class{constructor(e=wi,r){return $u(!1,e,r)}};fr.requiresModule=!0;ur.requiresModule=!0;fr.supportedFormats=ju;ur.supportedFormats=Ku;ue();Yi();var Xa=64*1024,$m=20,ed,_t;function td(t){typeof t.aes_hmac_new==K&&(ed=t,_t=0)}function ja(t,e){let r=ed,n=r?eh(r,t,e):0;if(!n)return tn(t,e);let s=_t;return{process(i,o){for(let a=0;a<i.length;a+=Xa){let c=i.subarray(a,a+Xa),f=Za(r);f.set(c,s),r.aes_hmac_process(n,s,c.length,o?1:0),c.set(f.subarray(s,s+c.length))}},digest(){return r.aes_hmac_end(n,s),n=0,Za(r).slice(s,s+$m)},dispose(){n&&(r.aes_hmac_end(n,0),n=0)}}}function eh(t,e,r){_t||(_t=t.malloc(Xa));let n=_t?t.aes_hmac_new():0;if(n){let s=Za(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 Za(t){return new Uint8Array(t.memory.buffer)}var rd=!1;async function nd(t,{baseURI:e}){if(!rd)try{await th(t,e),rd=!0}catch(r){throw Qu(r),r}}async function th(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=rh(t);else throw i}let s=await WebAssembly.instantiate(r);Ju(s.instance.exports),td(s.instance.exports)}function rh(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 _i;wl(ja);ql({initModule:t=>{if(!_i){let{wasmURI:e}=t;typeof e==K&&(e=e()),_i=nd(e,t).catch(r=>{throw _i=null,r})}return _i}});Dt({CompressionStreamFallback:fr,DecompressionStreamFallback:ur});Xu(Dt);un();ai();Hs();hr();yr();ue();Pt();jt();Zt();var I_=new Uint8Array(0);il(Dt);var Mn="h5p-pkg-v0-";var Ze="__archive__";var sd="h5p-player";var vn="packages",kn="https://chunks.h5p-player.invalid/";function zn(t,e){let r=e.end-e.start+1,n=0,s=0,i=new TransformStream({transform(o,a){if(s>=r)return;let c=n;if(n+=o.length,n<=e.start)return;let f=Math.max(0,e.start-c),R=Math.min(o.length,f+(r-s)),p=o.subarray(f,R);s+=p.length,a.enqueue(p),s>=r&&a.terminate()}});return t.pipeTo(i.writable).catch(()=>{}),i.readable}function id(t,e){return`h5p:${t}:${e}`}function od(t){return`h5p:${t}:`}var nh=/^h5p:([^:]+):/;async function Ti(){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?nh.exec(n.name):null;s&&t.add(s[1])}}catch{}return t}var sh="/__meta__",ih="/__forward__",oh="__forward_index__",ah=32;function yi(t){return t.split("/").map(encodeURIComponent).join("/")}function Ai(t){return`${Mn}${t}`}function ad(t,e){return`${kn}${t}/whole/${yi(e)}`}function Ka(t,e,r){return`${kn}${t}/chunk/${yi(e)}/${r}`}function cd(t,e){return`${kn}${t}/chunk/${yi(e)}${sh}`}function ld(t){return`${kn}${t}/chunk/${yi(Ze)}${ih}`}function ch(t){return t instanceof DOMException&&(t.name==="QuotaExceededError"||t.name==="NS_ERROR_DOM_QUOTA_REACHED")}var Br=class extends Error{constructor(e="Not enough storage to cache this package"){super(e),this.name="QuotaError"}};function fd(t){return{first:Math.floor(t.start/8388608),last:Math.floor(t.end/8388608)}}function ud(t,e){let r=t*8388608;return{from:Math.max(0,e.start-r),to:Math.min(8388608,e.end-r+1)}}var kt=class{constructor(e){this.cachePromise=null;this.pkgId=e}cache(){return this.cachePromise??=caches.open(Ai(this.pkgId)),this.cachePromise}async getWhole(e){return(await this.cache()).match(ad(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(ad(this.pkgId,e),()=>new Response(r(),{headers:i}))}async getMeta(e){let n=await(await this.cache()).match(cd(this.pkgId,e));if(n)try{return await n.json()}catch{return}}async setMeta(e,r){await(await this.cache()).put(cd(this.pkgId,e),new Response(JSON.stringify(r),{headers:{"content-type":"application/json"}})),Ed({pkgId:this.pkgId,entry:e,meta:r})}async putChunk(e,r,n){let s=n.slice();await this.write(Ka(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(Ka(this.pkgId,e,r));if(s)return new Uint8Array(await s.arrayBuffer())}readRange(e,r,n){let{first:s,last:i}=fd(r),o=s,a=null,c=this;return new ReadableStream({async pull(f){for(;;){if(a){let{done:m,value:E}=await a.read();if(!m){f.enqueue(E);return}a=null,o+=1}if(o>i){f.close();return}if(n){let m=Math.min((o+1)*8388608,r.end+1);if(!await n(m)){f.error(new Error(`Extraction of ${e} stalled before byte ${m}`));return}}let R=await c.chunkBody(e,o);if(!R){f.error(new Error(`Missing chunk ${o} of ${e}`));return}let{from:p,to:l}=ud(o,r);a=(p===0&&l>=8388608?R:zn(R,{start:p,end:l-1})).getReader()}},async cancel(f){await a?.cancel(f)}},{highWaterMark:0})}async chunkBody(e,r){return(await(await this.cache()).match(Ka(this.pkgId,e,r)))?.body??void 0}async readRangeBytes(e,r){let n=new Uint8Array(r.end-r.start+1),{first:s,last:i}=fd(r),o=0;for(let a=s;a<=i;a+=1){let c=await this.getChunk(e,a);if(!c)throw new Error(`Missing chunk ${a} of ${e}`);let{from:f,to:R}=ud(a,r),p=c.subarray(f,Math.min(R,c.length));n.set(p,o),o+=p.length}return o===n.length?n:n.subarray(0,o)}getArchiveMeta(){return this.getMeta(Ze)}async getForwardIndex(){let r=await(await this.cache()).match(ld(this.pkgId));if(r)try{return await r.json()}catch{return}}async setForwardIndex(e){await(await this.cache()).put(ld(this.pkgId),new Response(JSON.stringify(e),{headers:{"content-type":"application/json"}})),Ed({pkgId:this.pkgId,entry:oh,meta:{size:null,available:e.parsedTo,complete:e.done}})}readArchiveRange(e){return this.readRangeBytes(Ze,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(o){if(i.body?.cancel().catch(()=>{}),!ch(o))throw o;if(s>=ah)throw new Br;if(!await lh(this.pkgId))throw new Br}}}async destroy(){this.cachePromise=null,await caches.delete(Ai(this.pkgId))}},qa=null;function pd(t){qa=t}var md=null;function hd(t){md=t}async function lh(t){let e=qa?await qa(t):await fh(t);return e?(await caches.delete(Ai(e)),await md?.(e),!0):!1}async function fh(t){let[e,r]=await Promise.all([caches.keys(),Ti()]),n=Ai(t),s=e.find(i=>i.startsWith(Mn)&&i!==n&&!r.has(i.slice(Mn.length)));return s?s.slice(Mn.length):null}var uh="h5p-player-watermark",dd;function dh(){if(typeof BroadcastChannel!="function")return null;let t=new BroadcastChannel(uh);return t.unref?.(),t}function Ed(t){dd??=dh();try{dd?.postMessage(t)}catch{}}var zt=null;function gd(t,e){zt===e&&(zt=null),t.close()}function ph(){if(zt)return zt;let t=new Promise((e,r)=>{let n=indexedDB.open(sd,1);n.onupgradeneeded=()=>{let s=n.result;s.objectStoreNames.contains(vn)||s.createObjectStore(vn,{keyPath:"pkgId"}).createIndex("lastPlayed","lastPlayed")},n.onsuccess=()=>{let s=n.result;s.onversionchange=()=>gd(s,t),s.onclose=()=>gd(s,t),e(s)},n.onerror=()=>r(n.error)});return zt=t,t.catch(()=>{zt===t&&(zt=null)}),t}function mh(t){return t instanceof DOMException&&(t.name==="InvalidStateError"||t.name==="NotFoundError"||t.name==="TransactionInactiveError")}function wd(t){return new Promise((e,r)=>{t.onsuccess=()=>e(t.result),t.onerror=()=>r(t.error)})}async function Rd(t,e){let n=(await ph()).transaction(vn,t),s=await e(n.objectStore(vn));return await new Promise((i,o)=>{n.oncomplete=()=>i(),n.onerror=()=>o(n.error),n.onabort=()=>o(n.error)}),s}async function _d(t,e){try{return await Rd(t,e)}catch(r){if(!mh(r))throw r;return zt=null,Rd(t,e)}}function Td(t){return _d("readwrite",async e=>{await wd(e.delete(t))})}function hh(){return _d("readonly",t=>wd(t.getAll()))}async function Ad(){return(await hh()).sort((e,r)=>e.lastPlayed-r.lastPlayed)}async function Rh(t,e={}){let[r,n]=await Promise.all([(e.packagesByAge??Ad)(),(e.busyPackages??Ti)()]);return r.find(s=>s.pkgId!==t&&!n.has(s.pkgId))?.pkgId??null}function yd(t){pd(e=>Rh(e)),hd(async e=>{t?.(e),await Td(e)})}var wh=new TextDecoder,Si=class{constructor(){this.entries=[];this.parsedTo=0;this.done=!1;this.stopped=null;this.buffer=new Uint8Array(0);this.position=0;this.state={kind:"header"}}push(e){this.stopped||this.done||e.length===0||(this.buffer=this.buffer.length===0?e:Th(this.buffer,e),this.drain())}finish(){!this.done&&!this.stopped&&this.state.kind==="descriptor"&&(this.stopped="unresolved-descriptor")}snapshot(){return{entries:[...this.entries],parsedTo:this.parsedTo,done:this.done,stopped:this.stopped}}consume(e){this.buffer=this.buffer.subarray(e),this.position+=e}drain(){for(;;){let e=this.state;if(e.kind==="skip"){let r=Math.min(e.remaining,this.buffer.length);if(this.consume(r),e.remaining-=r,e.remaining>0)return;this.record(e.entry),this.state={kind:"header"},this.parsedTo=this.position;continue}if(e.kind==="header"){if(!this.readHeader())return;continue}if(!this.findDescriptor(e.entry))return}}readHeader(){let{buffer:e}=this;if(e.length<4)return!1;let r=new DataView(e.buffer,e.byteOffset,e.byteLength),n=r.getUint32(0,!0);if(n===33639248||n===101010256||n===101075792||n===117853008)return this.done=!0,this.stopped="central-directory",this.parsedTo=this.position,!1;if(n!==67324752)return this.stopped="bad-signature",!1;if(e.length<30)return!1;let s=r.getUint16(6,!0),i=r.getUint16(8,!0),o=r.getUint32(14,!0),a=r.getUint32(18,!0),c=r.getUint32(22,!0),f=r.getUint16(26,!0),R=r.getUint16(28,!0),p=30+f+R;if(e.length<p)return!1;let l=wh.decode(e.subarray(30,30+f)),h=e.subarray(30+f,p),m=_h(h,c===4294967295,a===4294967295);m&&(c=m.uncompressedSize??c,a=m.compressedSize??a);let E={name:l,directory:l.endsWith("/"),method:i,encrypted:(s&1)!==0,crc32:o,compressedSize:a,uncompressedSize:c,headerOffset:this.position,dataStart:this.position+p,zip64:m!==null};return this.consume(p),s&8?(this.state={kind:"descriptor",entry:E},!0):(this.state={kind:"skip",remaining:a,entry:E},!0)}findDescriptor(e){let{buffer:r}=this,n=e.zip64?24:16,s=new DataView(r.buffer,r.byteOffset,r.byteLength),i=0;for(;i+n<=r.length&&(i=r.indexOf(80,i),!(i<0||i+n>r.length));){if(s.getUint32(i,!0)===134695760){let a=this.position+i-e.dataStart,c=e.zip64?Ii(s,i+8):s.getUint32(i+8,!0);if(c===a)return e.crc32=s.getUint32(i+4,!0),e.compressedSize=c,e.uncompressedSize=e.zip64?Ii(s,i+16):s.getUint32(i+12,!0),this.record(e),this.consume(i+n),this.state={kind:"header"},this.parsedTo=this.position,!0}i+=1}let o=Math.min(r.length,n-1);return this.consume(r.length-o),!1}record(e){let{zip64:r,...n}=e;this.entries.push(n)}};function _h(t,e,r){let n=new DataView(t.buffer,t.byteOffset,t.byteLength),s=0;for(;s+4<=t.length;){let i=n.getUint16(s,!0),o=n.getUint16(s+2,!0);if(i===1){let a={},c=s+4;return e&&c+8<=s+4+o&&(a.uncompressedSize=Ii(n,c),c+=8),r&&c+8<=s+4+o&&(a.compressedSize=Ii(n,c)),a}s+=4+o}return null}function Ii(t,e){let r=t.getBigUint64(e,!0);if(r>BigInt(Number.MAX_SAFE_INTEGER))throw new RangeError("zip64 size beyond a safe integer");return Number(r)}function Th(t,e){let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r}var se=class extends Error{constructor(e,r,n){super(r,n),this.name="PlayerError",this.code=e,this.missingLibraries=n?.missingLibraries}};var Qa=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 se("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 se("network","Range response had no body");return new Uint8Array(await new Response(zn(r.body,e)).arrayBuffer())}async stream(e){let r=await this.fetchRange(e);if(!r.body)throw new se("network","Range response had no body");return r.status===200?zn(r.body,e):r.body}},$a=class{constructor(e,r,n){this.descriptor=e;this.size=r;this.store=new kt(n)}read(e){return this.store.readRangeBytes(Ze,e)}async stream(e){return this.store.readRange(Ze,e)}},ec=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 Sd(t,e,r,n={}){switch(e.type){case"range-http":return new Qa(e,e.size);case"chunked":{let s=await new kt(t).getArchiveMeta();if(!s||!s.complete&&!n.partial)throw new se("bad-archive","Archive has not finished downloading");return new $a(e,s.size??s.available,t)}case"file":{if(!r)throw new se("bad-archive","The picked file is no longer available");return new ec(e,r)}}}function Sh(t,e){let r=e.end-e.start+1,n=Math.ceil(r/4194304),s=new Map,i=0,o=0,a=!1,c=f=>{let R=e.start+f*4194304,p=t.read({start:R,end:Math.min(R+4194304-1,e.end)});p.catch(()=>{}),s.set(f,p)};return new ReadableStream({async pull(f){if(o>=n){f.close();return}for(;!a&&i<n&&s.size<4;)c(i++);let R=await s.get(o);s.delete(o),o+=1,f.enqueue(R)},cancel(){a=!0,s.clear()}},{highWaterMark:0})}var bi=class extends Et{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 Sh(i,{start:n,end:s});let o=null;return new ReadableStream({async pull(a){o??=(await i.stream({start:n,end:s})).getReader();let{done:c,value:f}=await o.read();c?a.close():a.enqueue(f)},async cancel(a){await o?.cancel(a)}},{highWaterMark:0})}};var Ih=/[\\u0000-\\u001f\\u007f]/;function tc(t){if(!t||Ih.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 Id(t){let e=new Map,r=[];for(let n of t){if(n.directory)continue;let s=tc(n.filename);if(s===null||e.has(s)){r.push(n.filename);continue}e.set(s,n)}return{index:e,rejected:r}}var bh=new Set(["js","mjs","json","css","html","htm","txt","xml","csv","vtt","srt","svg"]);function Nh(t){let e=t.slice(t.lastIndexOf("/")+1),r=e.lastIndexOf(".");return r<=0?"":e.slice(r+1).toLowerCase()}function bd(t){return bh.has(Nh(t))}var rc=0,Pd=8,Dh=67324752,Nd=30,Ni=class t{constructor(e,r,n,s,i,o=!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=o}get title(){return this.manifest.title}static async open(e,r,n={}){let s;try{s=await new vt(new bi(r)).getEntries({filenameValidation:"tolerant"})}catch(p){throw new se("bad-archive","Could not read the archive index",{cause:p})}let{index:i,rejected:o}=Id(s),a=new Map;for(let[p,l]of i)a.set(p,{name:p,size:l.uncompressedSize,compressedSize:l.compressedSize,method:l.compressionMethod,strategy:Cd(p,l),zip:l});if(!a.has("h5p.json"))throw new se("bad-archive","Archive has no h5p.json, so it is not an H5P package");let c=new t(e,r,a,o,{}),f=await Dd(c),R=new t(e,r,a,o,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=tc(s.name);if(i===null||this.entries.has(i)){this.rejected.push(s.name);continue}this.entries.set(i,Ph(i,s)),this.lastTopFolder=Od(i),i==="h5p.json"&&(n=!0)}return r.length>0&&(this.librariesByName=null),n&&(this.manifest=await Dd(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=Oi(s).find(o=>r.has(`${o}/library.json`))??sc(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=Od(e);if(r===null)return!1;if(this.hasFolder(r))return this.folderComplete(r);let n=nc(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=nc(e.slice(0,r));if(!n)return;let s=sc(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=xd(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 Lh(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)||Oi(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 se("bad-archive",Uh(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 se("bad-archive",`${e.name} is encrypted`);let r=e.zip.getData;if(!r)throw new se("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 se("bad-archive",`${e.name} is encrypted`);if(e.method!==rc&&e.method!==Pd)throw new se("bad-archive",`${e.name} uses compression method ${e.method}`);if(e.compressedSize===0)return new Blob([]).stream();let r=Ch(()=>this.sliceStream(e,{start:0,end:e.compressedSize-1}));if(e.method===rc)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 se("bad-archive",`${e.name} has no known location`);let r=await this.handle.read({start:e.zip.offset,end:e.zip.offset+Nd-1}),n=new DataView(r.buffer,r.byteOffset,r.byteLength);if(n.getUint32(0,!0)!==Dh)throw new se("bad-archive",`${e.name} has a malformed local header`);let s=n.getUint16(26,!0),i=n.getUint16(28,!0),o=e.zip.offset+Nd+s+i;return{start:o,end:o+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 Cd(t,e){return bd(t)?{kind:"inline"}:e.uncompressedSize<=16777216?{kind:"inline"}:e.compressionMethod===rc?{kind:"slice"}:e.compressionMethod===Pd?{kind:"chunked"}:{kind:"inline"}}function Ph(t,e){return{name:t,size:e.uncompressedSize,compressedSize:e.compressedSize,method:e.method,strategy:Cd(t,{uncompressedSize:e.uncompressedSize,compressionMethod:e.method}),dataStart:e.dataStart,encrypted:e.encrypted}}function Od(t){let e=t.indexOf("/");return e<0?null:t.slice(0,e)}function Ch(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 Dd(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 se("bad-archive","h5p.json is not readable JSON",{cause:r})}}function Oi(t){return[`${t.machineName}-${t.majorVersion}.${t.minorVersion}`,t.machineName]}function nc(t){let e=/^(.+)-(\\d+)\\.(\\d+)$/.exec(t);return e?{machineName:e[1],major:Number(e[2]),minor:Number(e[3]),folder:t}:null}function xd(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=nc(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 sc(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=xd(t);return r.filter(s=>Oi(s).some(i=>t.has(`${i}/library.json`))?!1:!sc(n,{machineName:s.machineName,major:Number(s.majorVersion),minor:Number(s.minorVersion)}))}function Lh(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=>Oi(s)[0]),all:n.length===r.length}}function Uh(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 Ld=1024*1024;function ic(t){let{store:e,entry:r,totalSize:n,onProgress:s}=t,i=t.startOffset??0;if(i%8388608!==0)throw new Error("A resumed write must start on a chunk boundary");let o=i/8388608,a=new Uint8Array(8388608),c=0,f=i,R=Ld,p=async l=>{await e.setMeta(r,{size:l?f:n,available:f,complete:l}),s?.(f)};return new WritableStream({async write(l){let h=0;for(;h<l.length;){let m=8388608-c,E=Math.min(m,l.length-h);a.set(l.subarray(h,h+E),c),c+=E,h+=E,f+=E,c===8388608?(await e.putChunk(r,o,a),o+=1,a=new Uint8Array(8388608),c=0,R=Ld,await p(!1)):c>=R&&(await e.putChunk(r,o,a.subarray(0,c)),R=c*2,await p(!1))}},async close(){c>0&&await e.putChunk(r,o,a.subarray(0,c)),await p(!0)},abort(){}})}Bi({useWebWorkers:!1});var Ud=self,Hr=new Map,Fd=new Map,Di=new Map;function Fh(t,e){let r=Di.get(t);if(r)return r;let n=(async()=>{let s=await Sd(t,e,Fd.get(t));return Ni.open(t,s,{requireLibraries:!1})})();return Di.set(t,n),n.catch(()=>Di.delete(t)),n}function dr(t){Ud.postMessage(t)}yd(t=>{Di.delete(t)});function Mh(t,e){return id(t,e??Ze)}Ud.addEventListener("message",t=>{let e=t.data;if(e){if(e.type==="abort"){for(let[r,n]of Hr)r.startsWith(od(e.pkgId))&&(n.abort(),Hr.delete(r));return}e.file&&Fd.set(e.pkgId,e.file),vh(e)}});async function vh(t){let e=t.type==="extract"?t.entry:void 0,r=Mh(t.pkgId,e);if(Hr.has(r))return;let n=new AbortController;Hr.set(r,n);try{await navigator.locks.request(r,{signal:n.signal},async()=>{t.type==="download"?await kh(t.pkgId,t.source,n.signal):await zh(t.pkgId,t.entry,t.source,n.signal)})}catch(s){if(n.signal.aborted)return;dr({type:"failed",pkgId:t.pkgId,entry:e,code:Bh(s),message:s instanceof Error?s.message:String(s)})}finally{Hr.get(r)===n&&Hr.delete(r)}}async function kh(t,e,r){if(e.type!=="chunked")throw new se("network","Only a chunked source is downloaded ahead of play");let n=new kt(t),s=await n.getArchiveMeta();if(s?.complete){dr({type:"done",pkgId:t,size:s.size??s.available});return}let i=s?Math.floor(s.available/8388608)*8388608:0,o=await fetch(e.url,{signal:r,cache:"no-store",headers:i>0?{Range:`bytes=${i}-`}:void 0});if(i>0&&o.status!==206&&(i=0,o.status!==200&&(o=await fetch(e.url,{signal:r,cache:"no-store"}))),!o.ok&&o.status!==206)throw new se("network",`${e.url} returned ${o.status}`);if(!o.body)throw new se("network","The archive response had no body");let a=o.headers.get("content-length"),c=a?Number(a)+i:e.size,f=new Si;i>0&&await n.readRange(Ze,{start:0,end:i-1}).pipeTo(new WritableStream({write:E=>f.push(E)}));let R=-1,p=Promise.resolve(),l=E=>{E&&f.finish();let d=f.snapshot();return!E&&d.entries.length===R||(R=d.entries.length,p=p.then(()=>n.setForwardIndex(d))),p},h=new TransformStream({transform(E,d){f.push(E),d.enqueue(E)}});await o.body.pipeThrough(h).pipeTo(ic({store:n,entry:Ze,totalSize:c,startOffset:i,onProgress:E=>{dr({type:"progress",pkgId:t,loaded:E,total:c}),l(!1)}}),{signal:r}),await l(!0);let m=await n.getArchiveMeta();dr({type:"done",pkgId:t,size:m?.size??m?.available??0})}async function zh(t,e,r,n){let s=new kt(t),i=await s.getMeta(e);if(i?.complete){dr({type:"done",pkgId:t,entry:e,size:i.size??i.available});return}let o=await Fh(t,r),a=o.get(e);if(!a)throw new se("bad-archive",`${e} is not in the archive`);let{entry:c}=a;await s.setMeta(e,{size:c.size,available:0,complete:!1}),await o.inflate(c).pipeTo(ic({store:s,entry:e,totalSize:c.size,onProgress:f=>dr({type:"progress",pkgId:t,entry:e,loaded:f,total:c.size})}),{signal:n}),dr({type:"done",pkgId:t,entry:e,size:c.size})}function Bh(t){return t instanceof se?t.code:t instanceof Br?"quota":"network"}})();\n', de = "0.1.0", zt = "https://api.h5p.org/v1/content-types/";
2
- class I extends Error {
3
- constructor(e, t, n) {
4
- super(t, n), this.name = "PlayerError", this.code = e, this.missingLibraries = n?.missingLibraries;
5
- }
6
- }
7
- function Ut(r, e) {
8
- return `h5p:${r}:${e}`;
9
- }
10
- const It = new TextEncoder();
11
- async function Ct(r) {
12
- const e = await crypto.subtle.digest("SHA-256", It.encode(r));
13
- return Array.from(new Uint8Array(e)).map((t) => t.toString(16).padStart(2, "0")).join("");
14
- }
15
- async function Fe(r) {
16
- return (await Ct(r)).slice(0, 32);
17
- }
18
- function Se(r, e) {
19
- return Fe(`url\0${r}\0${e ?? ""}`);
20
- }
21
- function Tt(r) {
22
- return Fe(`file\0${r.name}\0${r.size}\0${r.lastModified}`);
23
- }
24
- const C = void 0, B = "undefined", j = "function", he = "string", Pe = new Uint8Array(), Dt = "Invalid option (must be a function)";
25
- function Lt(r) {
26
- if (r && typeof r != j)
27
- throw new Error(Dt);
28
- return r;
29
- }
30
- function Nt(r) {
31
- return typeof r == he && r.trim() ? Number(r) : r;
32
- }
33
- const Ot = 64 * 1024, Ft = 1, Pt = "Invalid maxWorkers (must be an integer greater than 0)", Bt = "Invalid baseURI (must be a string)", Mt = "Invalid URI (must be a string or a function returning a string)";
34
- let Be = 2;
35
- try {
36
- typeof navigator != B && navigator.hardwareConcurrency && (Be = navigator.hardwareConcurrency);
37
- } catch {
38
- }
39
- const Me = {
40
- workerURI: "./core/web-worker-wasm.js",
41
- wasmURI: "./core/streams/zlib-wasm/zlib-streams.wasm",
42
- chunkSize: Ot,
43
- maxWorkers: Be,
44
- terminateWorkerTimeout: 5e3,
45
- workerStarvationTimeout: 5e3,
46
- workerStartupTimeout: 5e3,
47
- useWebWorkers: !0,
48
- useCompressionStream: !0,
49
- transferStreams: !0,
50
- CompressionStream: typeof CompressionStream != B && CompressionStream,
51
- DecompressionStream: typeof DecompressionStream != B && DecompressionStream
52
- }, We = "maxWorkers", He = "baseURI", je = [
53
- "wasmURI",
54
- "workerURI"
55
- ], Wt = [
56
- "useCompressionStream",
57
- "useWebWorkers",
58
- "transferStreams"
59
- ], Ze = [
60
- "chunkSize",
61
- We,
62
- "terminateWorkerTimeout",
63
- "workerStarvationTimeout",
64
- "workerStartupTimeout"
65
- ], Ve = [
66
- "createWorker",
67
- "CompressionStream",
68
- "DecompressionStream",
69
- "CompressionStreamFallback",
70
- "DecompressionStreamFallback"
71
- ], Ht = [
72
- He,
73
- ...je,
74
- ...Wt,
75
- ...Ze,
76
- ...Ve
77
- ], jt = { ...Me };
78
- function Zt(r) {
79
- const e = {};
80
- for (const t of Ht) {
81
- const n = r[t];
82
- n !== C && (e[t] = Vt(t, n));
83
- }
84
- return e;
85
- }
86
- function Vt(r, e) {
87
- if (Ze.includes(r)) {
88
- if (e = Nt(e), r == We && (!Number.isInteger(e) || e < Ft))
89
- throw new Error(Pt);
90
- } else if (Ve.includes(r))
91
- Lt(e);
92
- else if (r == He) {
93
- if (e && typeof e != he)
94
- throw new Error(Bt);
95
- } else if (je.includes(r) && e && typeof e != he && typeof e != j)
96
- throw new Error(Mt);
97
- return e;
98
- }
99
- function Yt(r) {
100
- r = r || {};
101
- const { CompressionStreamZlib: e, DecompressionStreamZlib: t } = r;
102
- if (e === C && t === C)
103
- return r;
104
- const n = Object.assign({}, r);
105
- return n.CompressionStreamFallback === C && (n.CompressionStreamFallback = e), n.DecompressionStreamFallback === C && (n.DecompressionStreamFallback = t), n;
106
- }
107
- function se(r) {
108
- const e = Zt(Yt(r));
109
- Object.assign(Me, e), Object.assign(jt, e);
110
- }
111
- const Q = new Uint8Array(288);
112
- Q.fill(8, 0, 144), Q.fill(9, 144, 256), Q.fill(7, 256, 280), Q.fill(8, 280, 288), new Uint8Array(30).fill(5);
113
- const O = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Xt = (r) => r({ workerURI: (e) => {
114
- const t = "text/javascript";
115
- let 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&&gt(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)})});
116
- `;
117
- if (typeof n == "string" && (n = new TextEncoder().encode(n)), e) {
118
- const i = new Blob([n], { type: t });
119
- return URL.createObjectURL(i);
120
- }
121
- return "data:" + t + ";base64," + (function(i) {
122
- let s = "";
123
- const c = i.length;
124
- let u = 0;
125
- for (; u + 2 < c; u += 3) {
126
- const g = i[u] << 16 | i[u + 1] << 8 | i[u + 2];
127
- s += O[g >> 18 & 63] + O[g >> 12 & 63] + O[g >> 6 & 63] + O[63 & g];
128
- }
129
- const w = c - u;
130
- if (w === 1) {
131
- const g = i[u] << 16;
132
- s += O[g >> 18 & 63] + O[g >> 12 & 63] + "==";
133
- } else if (w === 2) {
134
- const g = i[u] << 16 | i[u + 1] << 8;
135
- s += O[g >> 18 & 63] + O[g >> 12 & 63] + O[g >> 6 & 63] + "=";
136
- }
137
- return s;
138
- })(n);
139
- } });
140
- function W(r, e) {
141
- const t = new Uint8Array(r.length + e.length);
142
- return t.set(r), t.set(e, r.length), t;
143
- }
144
- function Ye(r) {
145
- return new DataView(r.buffer, r.byteOffset, r.byteLength);
146
- }
147
- function qt(r) {
148
- return !!r && typeof r == "object";
149
- }
150
- const Y = [[], [], [], [], [], [], [], []];
151
- for (let r = 0; r < 256; r++) {
152
- let e = r;
153
- for (let t = 0; t < 8; t++)
154
- e = e & 1 ? e >>> 1 ^ 3988292384 : e >>> 1;
155
- Y[0][r] = e;
156
- }
157
- for (let r = 0; r < 256; r++)
158
- for (let e = 1; e < 8; e++) {
159
- const t = Y[e - 1][r];
160
- Y[e][r] = t >>> 8 ^ Y[0][t & 255];
161
- }
162
- const [Re, Gt, Kt, Qt, Jt, _t, $t, er] = Y;
163
- class ee {
164
- constructor(e) {
165
- this.crc = e || -1;
166
- }
167
- append(e) {
168
- let t = this.crc | 0;
169
- const n = e.length | 0;
170
- let i = 0;
171
- if (n >= 8 && e.buffer) {
172
- const s = new DataView(e.buffer, e.byteOffset, n), c = n - 8;
173
- for (; i <= c; i += 8) {
174
- const u = t ^ s.getInt32(i, !0), w = s.getInt32(i + 4, !0);
175
- t = er[u & 255] ^ $t[u >>> 8 & 255] ^ _t[u >>> 16 & 255] ^ Jt[u >>> 24 & 255] ^ Qt[w & 255] ^ Kt[w >>> 8 & 255] ^ Gt[w >>> 16 & 255] ^ Re[w >>> 24 & 255];
176
- }
177
- }
178
- for (; i < n; i++)
179
- t = t >>> 8 ^ Re[(t ^ e[i]) & 255];
180
- this.crc = t;
181
- }
182
- get() {
183
- return ~this.crc;
184
- }
185
- }
186
- class Xe extends TransformStream {
187
- constructor() {
188
- let e;
189
- const t = new ee();
190
- super({
191
- transform(n, i) {
192
- t.append(n), i.enqueue(n);
193
- },
194
- flush() {
195
- const n = new Uint8Array(4);
196
- new DataView(n.buffer).setUint32(0, t.get()), e.value = n;
197
- }
198
- }), e = this;
199
- }
200
- }
201
- function tr(r) {
202
- if (typeof TextEncoder == B) {
203
- r = unescape(encodeURIComponent(r));
204
- const e = new Uint8Array(r.length);
205
- for (let t = 0; t < e.length; t++)
206
- e[t] = r.charCodeAt(t);
207
- return e;
208
- } else
209
- return new TextEncoder().encode(r);
210
- }
211
- const le = 16, rr = 60, L = 64, M = 20, nr = 16, ir = 56, ar = new Uint8Array([128]), sr = new Uint8Array(1), Ae = new Int32Array([1732584193, 4023233417, 2562383102, 271733878, 3285377520]), or = 54, cr = 92, U = new Uint8Array(256), E = new Int32Array(256), S = new Int32Array(256), R = new Int32Array(256), A = new Int32Array(256);
212
- let ve = !1;
213
- function ge(r, e) {
214
- fr();
215
- const t = new Int32Array(rr), n = dr(r, t), i = new Int32Array(le / 4), s = qe(e);
216
- let c = 0, u = 0, w = 0, g = 0;
217
- return {
218
- process(l, h) {
219
- h && s.update(l, 0, l.length), b(l), h || s.update(l, 0, l.length);
220
- },
221
- digest() {
222
- return s.digest();
223
- }
224
- };
225
- function b(l) {
226
- const h = new DataView(l.buffer, l.byteOffset, l.byteLength), p = l.length;
227
- let f = 0;
228
- for (; f + le <= p; f += le)
229
- y(), h.setInt32(f, h.getInt32(f) ^ i[0]), h.setInt32(f + 4, h.getInt32(f + 4) ^ i[1]), h.setInt32(f + 8, h.getInt32(f + 8) ^ i[2]), h.setInt32(f + 12, h.getInt32(f + 12) ^ i[3]);
230
- if (f < p) {
231
- y();
232
- for (let d = 0; f < p; f++, d++)
233
- l[f] ^= i[d >> 2] >>> 24 - 8 * (d & 3);
234
- }
235
- }
236
- function y() {
237
- c = c + 1 | 0, c || (u = u + 1 | 0, u || (w = w + 1 | 0, w || (g = g + 1 | 0)));
238
- let l = J(c) ^ t[0], h = J(u) ^ t[1], p = J(w) ^ t[2], f = J(g) ^ t[3], d = E[l >>> 24] ^ S[h >>> 16 & 255] ^ R[p >>> 8 & 255] ^ A[f & 255] ^ t[4], a = E[h >>> 24] ^ S[p >>> 16 & 255] ^ R[f >>> 8 & 255] ^ A[l & 255] ^ t[5], o = E[p >>> 24] ^ S[f >>> 16 & 255] ^ R[l >>> 8 & 255] ^ A[h & 255] ^ t[6], m = E[f >>> 24] ^ S[l >>> 16 & 255] ^ R[h >>> 8 & 255] ^ A[p & 255] ^ t[7];
239
- l = E[d >>> 24] ^ S[a >>> 16 & 255] ^ R[o >>> 8 & 255] ^ A[m & 255] ^ t[8], h = E[a >>> 24] ^ S[o >>> 16 & 255] ^ R[m >>> 8 & 255] ^ A[d & 255] ^ t[9], p = E[o >>> 24] ^ S[m >>> 16 & 255] ^ R[d >>> 8 & 255] ^ A[a & 255] ^ t[10], f = E[m >>> 24] ^ S[d >>> 16 & 255] ^ R[a >>> 8 & 255] ^ A[o & 255] ^ t[11], d = E[l >>> 24] ^ S[h >>> 16 & 255] ^ R[p >>> 8 & 255] ^ A[f & 255] ^ t[12], a = E[h >>> 24] ^ S[p >>> 16 & 255] ^ R[f >>> 8 & 255] ^ A[l & 255] ^ t[13], o = E[p >>> 24] ^ S[f >>> 16 & 255] ^ R[l >>> 8 & 255] ^ A[h & 255] ^ t[14], m = E[f >>> 24] ^ S[l >>> 16 & 255] ^ R[h >>> 8 & 255] ^ A[p & 255] ^ t[15], l = E[d >>> 24] ^ S[a >>> 16 & 255] ^ R[o >>> 8 & 255] ^ A[m & 255] ^ t[16], h = E[a >>> 24] ^ S[o >>> 16 & 255] ^ R[m >>> 8 & 255] ^ A[d & 255] ^ t[17], p = E[o >>> 24] ^ S[m >>> 16 & 255] ^ R[d >>> 8 & 255] ^ A[a & 255] ^ t[18], f = E[m >>> 24] ^ S[d >>> 16 & 255] ^ R[a >>> 8 & 255] ^ A[o & 255] ^ t[19], d = E[l >>> 24] ^ S[h >>> 16 & 255] ^ R[p >>> 8 & 255] ^ A[f & 255] ^ t[20], a = E[h >>> 24] ^ S[p >>> 16 & 255] ^ R[f >>> 8 & 255] ^ A[l & 255] ^ t[21], o = E[p >>> 24] ^ S[f >>> 16 & 255] ^ R[l >>> 8 & 255] ^ A[h & 255] ^ t[22], m = E[f >>> 24] ^ S[l >>> 16 & 255] ^ R[h >>> 8 & 255] ^ A[p & 255] ^ t[23], l = E[d >>> 24] ^ S[a >>> 16 & 255] ^ R[o >>> 8 & 255] ^ A[m & 255] ^ t[24], h = E[a >>> 24] ^ S[o >>> 16 & 255] ^ R[m >>> 8 & 255] ^ A[d & 255] ^ t[25], p = E[o >>> 24] ^ S[m >>> 16 & 255] ^ R[d >>> 8 & 255] ^ A[a & 255] ^ t[26], f = E[m >>> 24] ^ S[d >>> 16 & 255] ^ R[a >>> 8 & 255] ^ A[o & 255] ^ t[27], d = E[l >>> 24] ^ S[h >>> 16 & 255] ^ R[p >>> 8 & 255] ^ A[f & 255] ^ t[28], a = E[h >>> 24] ^ S[p >>> 16 & 255] ^ R[f >>> 8 & 255] ^ A[l & 255] ^ t[29], o = E[p >>> 24] ^ S[f >>> 16 & 255] ^ R[l >>> 8 & 255] ^ A[h & 255] ^ t[30], m = E[f >>> 24] ^ S[l >>> 16 & 255] ^ R[h >>> 8 & 255] ^ A[p & 255] ^ t[31], l = E[d >>> 24] ^ S[a >>> 16 & 255] ^ R[o >>> 8 & 255] ^ A[m & 255] ^ t[32], h = E[a >>> 24] ^ S[o >>> 16 & 255] ^ R[m >>> 8 & 255] ^ A[d & 255] ^ t[33], p = E[o >>> 24] ^ S[m >>> 16 & 255] ^ R[d >>> 8 & 255] ^ A[a & 255] ^ t[34], f = E[m >>> 24] ^ S[d >>> 16 & 255] ^ R[a >>> 8 & 255] ^ A[o & 255] ^ t[35], d = E[l >>> 24] ^ S[h >>> 16 & 255] ^ R[p >>> 8 & 255] ^ A[f & 255] ^ t[36], a = E[h >>> 24] ^ S[p >>> 16 & 255] ^ R[f >>> 8 & 255] ^ A[l & 255] ^ t[37], o = E[p >>> 24] ^ S[f >>> 16 & 255] ^ R[l >>> 8 & 255] ^ A[h & 255] ^ t[38], m = E[f >>> 24] ^ S[l >>> 16 & 255] ^ R[h >>> 8 & 255] ^ A[p & 255] ^ t[39];
240
- let v = 40;
241
- n > 10 && (l = E[d >>> 24] ^ S[a >>> 16 & 255] ^ R[o >>> 8 & 255] ^ A[m & 255] ^ t[40], h = E[a >>> 24] ^ S[o >>> 16 & 255] ^ R[m >>> 8 & 255] ^ A[d & 255] ^ t[41], p = E[o >>> 24] ^ S[m >>> 16 & 255] ^ R[d >>> 8 & 255] ^ A[a & 255] ^ t[42], f = E[m >>> 24] ^ S[d >>> 16 & 255] ^ R[a >>> 8 & 255] ^ A[o & 255] ^ t[43], d = E[l >>> 24] ^ S[h >>> 16 & 255] ^ R[p >>> 8 & 255] ^ A[f & 255] ^ t[44], a = E[h >>> 24] ^ S[p >>> 16 & 255] ^ R[f >>> 8 & 255] ^ A[l & 255] ^ t[45], o = E[p >>> 24] ^ S[f >>> 16 & 255] ^ R[l >>> 8 & 255] ^ A[h & 255] ^ t[46], m = E[f >>> 24] ^ S[l >>> 16 & 255] ^ R[h >>> 8 & 255] ^ A[p & 255] ^ t[47], v = 48), n > 12 && (l = E[d >>> 24] ^ S[a >>> 16 & 255] ^ R[o >>> 8 & 255] ^ A[m & 255] ^ t[48], h = E[a >>> 24] ^ S[o >>> 16 & 255] ^ R[m >>> 8 & 255] ^ A[d & 255] ^ t[49], p = E[o >>> 24] ^ S[m >>> 16 & 255] ^ R[d >>> 8 & 255] ^ A[a & 255] ^ t[50], f = E[m >>> 24] ^ S[d >>> 16 & 255] ^ R[a >>> 8 & 255] ^ A[o & 255] ^ t[51], d = E[l >>> 24] ^ S[h >>> 16 & 255] ^ R[p >>> 8 & 255] ^ A[f & 255] ^ t[52], a = E[h >>> 24] ^ S[p >>> 16 & 255] ^ R[f >>> 8 & 255] ^ A[l & 255] ^ t[53], o = E[p >>> 24] ^ S[f >>> 16 & 255] ^ R[l >>> 8 & 255] ^ A[h & 255] ^ t[54], m = E[f >>> 24] ^ S[l >>> 16 & 255] ^ R[h >>> 8 & 255] ^ A[p & 255] ^ t[55], v = 56), i[0] = (U[d >>> 24] << 24 | U[a >>> 16 & 255] << 16 | U[o >>> 8 & 255] << 8 | U[m & 255]) ^ t[v], i[1] = (U[a >>> 24] << 24 | U[o >>> 16 & 255] << 16 | U[m >>> 8 & 255] << 8 | U[d & 255]) ^ t[v + 1], i[2] = (U[o >>> 24] << 24 | U[m >>> 16 & 255] << 16 | U[d >>> 8 & 255] << 8 | U[a & 255]) ^ t[v + 2], i[3] = (U[m >>> 24] << 24 | U[d >>> 16 & 255] << 16 | U[a >>> 8 & 255] << 8 | U[o & 255]) ^ t[v + 3];
242
- }
243
- }
244
- function lr(r, e, t, n) {
245
- const i = qe(r), s = new Uint8Array(n), c = new Uint8Array(e.length + 4), u = new DataView(c.buffer);
246
- c.set(e);
247
- for (let w = 1, g = 0; g < n; w++, g += M) {
248
- u.setUint32(e.length, w), i.update(c, 0, c.length);
249
- let b = i.digest();
250
- const y = b.slice();
251
- for (let l = 1; l < t; l++) {
252
- i.update(b, 0, M), b = i.digest();
253
- for (let h = 0; h < M; h++)
254
- y[h] ^= b[h];
255
- }
256
- s.set(y.subarray(0, Math.min(M, n - g)), g);
257
- }
258
- return s;
259
- }
260
- function qe(r) {
261
- const e = ur(), t = new Uint8Array(L), n = new Uint8Array(L);
262
- r.length > L && (e.update(r, 0, r.length), r = e.digest());
263
- for (let i = 0; i < L; i++) {
264
- const s = i < r.length ? r[i] : 0;
265
- t[i] = s ^ or, n[i] = s ^ cr;
266
- }
267
- return e.update(t, 0, L), {
268
- update(i, s, c) {
269
- e.update(i, s, c);
270
- },
271
- digest() {
272
- const i = e.digest();
273
- e.update(n, 0, L), e.update(i, 0, M);
274
- const s = e.digest();
275
- return e.update(t, 0, L), s;
276
- }
277
- };
278
- }
279
- function ur() {
280
- const r = new Int32Array(Ae), e = new Int32Array(nr), t = new Uint8Array(L), n = new DataView(t.buffer), i = new Uint8Array(8);
281
- let s = 0, c = 0;
282
- return {
283
- update: u,
284
- digest: w
285
- };
286
- function u(b, y, l) {
287
- const h = y + l;
288
- if (c += l, s) {
289
- for (; y < h && s < L; )
290
- t[s++] = b[y++];
291
- s == L && (g(n, 0), s = 0);
292
- }
293
- if (y + L <= h) {
294
- const p = new DataView(b.buffer, b.byteOffset, b.byteLength);
295
- for (; y + L <= h; y += L)
296
- g(p, y);
297
- }
298
- for (; y < h; )
299
- t[s++] = b[y++];
300
- }
301
- function w() {
302
- const b = c * 8, y = Math.floor(b / 4294967296), l = b >>> 0;
303
- for (u(ar, 0, 1); s != ir; )
304
- u(sr, 0, 1);
305
- i[0] = y >>> 24, i[1] = y >>> 16, i[2] = y >>> 8, i[3] = y, i[4] = l >>> 24, i[5] = l >>> 16, i[6] = l >>> 8, i[7] = l, u(i, 0, 8);
306
- const h = new Uint8Array(M), p = new DataView(h.buffer);
307
- for (let f = 0; f < r.length; f++)
308
- p.setInt32(4 * f, r[f]);
309
- return r.set(Ae), s = 0, c = 0, h;
310
- }
311
- function g(b, y) {
312
- for (let o = 0; o < 16; o++)
313
- e[o] = b.getInt32(y + 4 * o);
314
- let l = r[0], h = r[1], p = r[2], f = r[3], d = r[4], a;
315
- for (let o = 0; o < 15; o += 5)
316
- d = (l << 5 | l >>> 27) + ((p ^ f) & h ^ f) + d + 1518500249 + e[o] | 0, h = h << 30 | h >>> 2, f = (d << 5 | d >>> 27) + ((h ^ p) & l ^ p) + f + 1518500249 + e[o + 1] | 0, l = l << 30 | l >>> 2, p = (f << 5 | f >>> 27) + ((l ^ h) & d ^ h) + p + 1518500249 + e[o + 2] | 0, d = d << 30 | d >>> 2, h = (p << 5 | p >>> 27) + ((d ^ l) & f ^ l) + h + 1518500249 + e[o + 3] | 0, f = f << 30 | f >>> 2, l = (h << 5 | h >>> 27) + ((f ^ d) & p ^ d) + l + 1518500249 + e[o + 4] | 0, p = p << 30 | p >>> 2;
317
- d = (l << 5 | l >>> 27) + ((p ^ f) & h ^ f) + d + 1518500249 + e[15] | 0, h = h << 30 | h >>> 2, a = e[13] ^ e[8] ^ e[2] ^ e[0], a = a << 1 | a >>> 31, e[0] = a, f = (d << 5 | d >>> 27) + ((h ^ p) & l ^ p) + f + 1518500249 + a | 0, l = l << 30 | l >>> 2, a = e[14] ^ e[9] ^ e[3] ^ e[1], a = a << 1 | a >>> 31, e[1] = a, p = (f << 5 | f >>> 27) + ((l ^ h) & d ^ h) + p + 1518500249 + a | 0, d = d << 30 | d >>> 2, a = e[15] ^ e[10] ^ e[4] ^ e[2], a = a << 1 | a >>> 31, e[2] = a, h = (p << 5 | p >>> 27) + ((d ^ l) & f ^ l) + h + 1518500249 + a | 0, f = f << 30 | f >>> 2, a = e[0] ^ e[11] ^ e[5] ^ e[3], a = a << 1 | a >>> 31, e[3] = a, l = (h << 5 | h >>> 27) + ((f ^ d) & p ^ d) + l + 1518500249 + a | 0, p = p << 30 | p >>> 2;
318
- for (let o = 20; o < 40; o += 5)
319
- a = e[o - 3 & 15] ^ e[o - 8 & 15] ^ e[o - 14 & 15] ^ e[o & 15], a = a << 1 | a >>> 31, e[o & 15] = a, d = (l << 5 | l >>> 27) + (h ^ p ^ f) + d + 1859775393 + a | 0, h = h << 30 | h >>> 2, a = e[o - 2 & 15] ^ e[o - 7 & 15] ^ e[o - 13 & 15] ^ e[o + 1 & 15], a = a << 1 | a >>> 31, e[o + 1 & 15] = a, f = (d << 5 | d >>> 27) + (l ^ h ^ p) + f + 1859775393 + a | 0, l = l << 30 | l >>> 2, a = e[o - 1 & 15] ^ e[o - 6 & 15] ^ e[o - 12 & 15] ^ e[o + 2 & 15], a = a << 1 | a >>> 31, e[o + 2 & 15] = a, p = (f << 5 | f >>> 27) + (d ^ l ^ h) + p + 1859775393 + a | 0, d = d << 30 | d >>> 2, a = e[o & 15] ^ e[o - 5 & 15] ^ e[o - 11 & 15] ^ e[o + 3 & 15], a = a << 1 | a >>> 31, e[o + 3 & 15] = a, h = (p << 5 | p >>> 27) + (f ^ d ^ l) + h + 1859775393 + a | 0, f = f << 30 | f >>> 2, a = e[o + 1 & 15] ^ e[o - 4 & 15] ^ e[o - 10 & 15] ^ e[o + 4 & 15], a = a << 1 | a >>> 31, e[o + 4 & 15] = a, l = (h << 5 | h >>> 27) + (p ^ f ^ d) + l + 1859775393 + a | 0, p = p << 30 | p >>> 2;
320
- for (let o = 40; o < 60; o += 5)
321
- a = e[o - 3 & 15] ^ e[o - 8 & 15] ^ e[o - 14 & 15] ^ e[o & 15], a = a << 1 | a >>> 31, e[o & 15] = a, d = (l << 5 | l >>> 27) + (h & p | (h | p) & f) + d + 2400959708 + a | 0, h = h << 30 | h >>> 2, a = e[o - 2 & 15] ^ e[o - 7 & 15] ^ e[o - 13 & 15] ^ e[o + 1 & 15], a = a << 1 | a >>> 31, e[o + 1 & 15] = a, f = (d << 5 | d >>> 27) + (l & h | (l | h) & p) + f + 2400959708 + a | 0, l = l << 30 | l >>> 2, a = e[o - 1 & 15] ^ e[o - 6 & 15] ^ e[o - 12 & 15] ^ e[o + 2 & 15], a = a << 1 | a >>> 31, e[o + 2 & 15] = a, p = (f << 5 | f >>> 27) + (d & l | (d | l) & h) + p + 2400959708 + a | 0, d = d << 30 | d >>> 2, a = e[o & 15] ^ e[o - 5 & 15] ^ e[o - 11 & 15] ^ e[o + 3 & 15], a = a << 1 | a >>> 31, e[o + 3 & 15] = a, h = (p << 5 | p >>> 27) + (f & d | (f | d) & l) + h + 2400959708 + a | 0, f = f << 30 | f >>> 2, a = e[o + 1 & 15] ^ e[o - 4 & 15] ^ e[o - 10 & 15] ^ e[o + 4 & 15], a = a << 1 | a >>> 31, e[o + 4 & 15] = a, l = (h << 5 | h >>> 27) + (p & f | (p | f) & d) + l + 2400959708 + a | 0, p = p << 30 | p >>> 2;
322
- for (let o = 60; o < 80; o += 5)
323
- a = e[o - 3 & 15] ^ e[o - 8 & 15] ^ e[o - 14 & 15] ^ e[o & 15], a = a << 1 | a >>> 31, e[o & 15] = a, d = (l << 5 | l >>> 27) + (h ^ p ^ f) + d + 3395469782 + a | 0, h = h << 30 | h >>> 2, a = e[o - 2 & 15] ^ e[o - 7 & 15] ^ e[o - 13 & 15] ^ e[o + 1 & 15], a = a << 1 | a >>> 31, e[o + 1 & 15] = a, f = (d << 5 | d >>> 27) + (l ^ h ^ p) + f + 3395469782 + a | 0, l = l << 30 | l >>> 2, a = e[o - 1 & 15] ^ e[o - 6 & 15] ^ e[o - 12 & 15] ^ e[o + 2 & 15], a = a << 1 | a >>> 31, e[o + 2 & 15] = a, p = (f << 5 | f >>> 27) + (d ^ l ^ h) + p + 3395469782 + a | 0, d = d << 30 | d >>> 2, a = e[o & 15] ^ e[o - 5 & 15] ^ e[o - 11 & 15] ^ e[o + 3 & 15], a = a << 1 | a >>> 31, e[o + 3 & 15] = a, h = (p << 5 | p >>> 27) + (f ^ d ^ l) + h + 3395469782 + a | 0, f = f << 30 | f >>> 2, a = e[o + 1 & 15] ^ e[o - 4 & 15] ^ e[o - 10 & 15] ^ e[o + 4 & 15], a = a << 1 | a >>> 31, e[o + 4 & 15] = a, l = (h << 5 | h >>> 27) + (p ^ f ^ d) + l + 3395469782 + a | 0, p = p << 30 | p >>> 2;
324
- r[0] = r[0] + l | 0, r[1] = r[1] + h | 0, r[2] = r[2] + p | 0, r[3] = r[3] + f | 0, r[4] = r[4] + d | 0;
325
- }
326
- }
327
- function fr() {
328
- if (!ve) {
329
- let r = 1, e = 1;
330
- do
331
- r = (r ^ r << 1 ^ (r & 128 ? 27 : 0)) & 255, e = (e ^ e << 1) & 255, e = (e ^ e << 2) & 255, e = (e ^ e << 4) & 255, e & 128 && (e ^= 9), U[r] = (e ^ (e << 1 | e >> 7) ^ (e << 2 | e >> 6) ^ (e << 3 | e >> 5) ^ (e << 4 | e >> 4) ^ 99) & 255;
332
- while (r != 1);
333
- U[0] = 99;
334
- for (let t = 0; t < 256; t++) {
335
- const n = U[t], i = Ge(n), s = i << 24 | n << 16 | n << 8 | i ^ n;
336
- E[t] = s, S[t] = s >>> 8 | s << 24, R[t] = s >>> 16 | s << 16, A[t] = s >>> 24 | s << 8;
337
- }
338
- ve = !0;
339
- }
340
- }
341
- function dr(r, e) {
342
- const t = r.length >> 2, n = t + 6, i = 4 * (n + 1);
343
- let s = 1;
344
- for (let c = 0; c < t; c++)
345
- e[c] = r[4 * c] << 24 | r[4 * c + 1] << 16 | r[4 * c + 2] << 8 | r[4 * c + 3];
346
- for (let c = t; c < i; c++) {
347
- let u = e[c - 1];
348
- c % t == 0 ? (u = ke(u << 8 | u >>> 24) ^ s << 24, s = Ge(s)) : t > 6 && c % t == 4 && (u = ke(u)), e[c] = e[c - t] ^ u;
349
- }
350
- return n;
351
- }
352
- function ke(r) {
353
- return U[r >>> 24] << 24 | U[r >>> 16 & 255] << 16 | U[r >>> 8 & 255] << 8 | U[r & 255];
354
- }
355
- function J(r) {
356
- return r << 24 | (r & 65280) << 8 | r >>> 8 & 65280 | r >>> 24;
357
- }
358
- function Ge(r) {
359
- return (r << 1 ^ (r >> 7) * 27) & 255;
360
- }
361
- const hr = typeof crypto != B && typeof crypto.getRandomValues == j, Ke = "Invalid password", pr = "Invalid authentication code", Qe = "zipjs-abort-check-password", wr = "Crypto API not supported";
362
- function Je(r) {
363
- if (hr)
364
- return crypto.getRandomValues(r);
365
- throw new Error(wr);
366
- }
367
- const ye = 16, mr = "raw", _e = { name: "PBKDF2" }, gr = { name: "HMAC" }, yr = "SHA-1", $e = 1e3, br = Object.assign({ hash: gr }, _e), Er = Object.assign({ iterations: $e, hash: { name: yr } }, _e), Sr = ["deriveBits"], q = [8, 12, 16], Rr = [16, 24, 32], P = 10, pe = 2, et = typeof crypto != B, G = et && crypto.subtle, Ar = et && typeof G != B;
368
- let xe = Ar && typeof G.importKey == j && typeof G.deriveBits == j, tt = ge;
369
- class vr extends TransformStream {
370
- constructor({ password: e, rawPassword: t, encryptionStrength: n, checkPasswordOnly: i, checkAuthenticationCode: s = !0 }) {
371
- const c = {};
372
- super({
373
- start() {
374
- rt(c, e, t, n);
375
- },
376
- async transform(u, w) {
377
- const {
378
- password: g,
379
- strength: b,
380
- resolveReady: y,
381
- ready: l
382
- } = c;
383
- if (g ? (await zr(c, b, g, N(u, 0, q[b] + pe)), u = N(u, q[b] + pe), i ? (K(c), w.error(new Error(Qe))) : y()) : await l, c.discarded)
384
- return;
385
- const h = new Uint8Array(u.length - P - (u.length - P) % ye);
386
- w.enqueue(it(c, u, h, 0, P, !0));
387
- },
388
- async flush(u) {
389
- const {
390
- engine: w,
391
- pendingInput: g,
392
- ready: b
393
- } = c;
394
- if (w) {
395
- if (await b, c.discarded)
396
- return;
397
- const y = N(g, g.length - P), l = new Uint8Array(N(g, 0, g.length - P));
398
- w.process(l, !0);
399
- const h = w.digest();
400
- let p = g.length < P ? 1 : 0;
401
- for (let f = 0; f < P; f++)
402
- p |= h[f] ^ y[f];
403
- if (p && s) {
404
- u.error(new Error(pr));
405
- return;
406
- }
407
- u.enqueue(l);
408
- }
409
- }
410
- }), nt(this, c);
411
- }
412
- }
413
- class kr extends TransformStream {
414
- constructor({ password: e, rawPassword: t, encryptionStrength: n }) {
415
- const i = {};
416
- super({
417
- start() {
418
- rt(i, e, t, n);
419
- },
420
- async transform(s, c) {
421
- const {
422
- password: u,
423
- strength: w,
424
- resolveReady: g,
425
- ready: b
426
- } = i;
427
- let y = Pe;
428
- if (u ? (y = await Ur(i, w, u), g()) : await b, i.discarded)
429
- return;
430
- const l = new Uint8Array(y.length + s.length - s.length % ye);
431
- l.set(y, 0), c.enqueue(it(i, s, l, y.length, 0, !1));
432
- },
433
- async flush(s) {
434
- const {
435
- engine: c,
436
- pendingInput: u,
437
- ready: w
438
- } = i;
439
- if (c) {
440
- if (await w, i.discarded)
441
- return;
442
- const g = new Uint8Array(u);
443
- c.process(g, !1);
444
- const b = N(c.digest(), 0, P);
445
- s.enqueue(W(g, b));
446
- }
447
- }
448
- }), nt(this, i);
449
- }
450
- }
451
- function xr(r) {
452
- tt = r || ge;
453
- }
454
- function rt(r, e, t, n) {
455
- Object.assign(r, {
456
- ready: new Promise((i) => r.resolveReady = i),
457
- password: Cr(e, t),
458
- strength: n - 1,
459
- pendingInput: Pe,
460
- discarded: !1
461
- });
462
- }
463
- function nt(r, e) {
464
- const t = r.readable.getReader(), n = new ReadableStream({
465
- async pull(i) {
466
- try {
467
- const { value: s, done: c } = await t.read();
468
- c ? i.close() : i.enqueue(s);
469
- } catch (s) {
470
- throw K(e), t.cancel(s).catch(() => {
471
- }), s;
472
- }
473
- },
474
- cancel(i) {
475
- return K(e), t.cancel(i);
476
- }
477
- });
478
- Object.defineProperty(r, "readable", {
479
- get() {
480
- return n;
481
- }
482
- });
483
- }
484
- function it(r, e, t, n, i, s) {
485
- const {
486
- engine: c,
487
- pendingInput: u
488
- } = r;
489
- u.length && (e = W(u, e));
490
- const w = e.length - i, g = w - w % ye;
491
- if (t = Tr(t, n + g), g) {
492
- const b = N(t, n, n + g);
493
- b.set(N(e, 0, g)), c.process(b, s);
494
- }
495
- return r.pendingInput = N(e, g), t;
496
- }
497
- async function zr(r, e, t, n) {
498
- const i = await at(r, e, t, N(n, 0, q[e])), s = N(n, q[e]);
499
- if (i[0] != s[0] || i[1] != s[1])
500
- throw K(r), new Error(Ke);
501
- }
502
- function K(r) {
503
- const { engine: e } = r;
504
- r.discarded = !0, e && e.dispose && e.dispose();
505
- }
506
- async function Ur(r, e, t) {
507
- const n = Je(new Uint8Array(q[e])), i = await at(r, e, t, n);
508
- return W(n, i);
509
- }
510
- async function at(r, e, t, n) {
511
- r.password = null;
512
- const i = Rr[e], s = await Ir(t, n, i * 2 + pe);
513
- return r.engine = tt(N(s, 0, i), N(s, i, i * 2)), r.discarded && K(r), N(s, i * 2);
514
- }
515
- async function Ir(r, e, t) {
516
- if (xe)
517
- try {
518
- const n = await G.importKey(mr, r, br, !1, Sr);
519
- return new Uint8Array(await G.deriveBits(Object.assign({ salt: e }, Er), n, t * 8));
520
- } catch {
521
- xe = !1;
522
- }
523
- return lr(r, e, $e, t);
524
- }
525
- function Cr(r, e) {
526
- return e === C ? tr(r) : e;
527
- }
528
- function Tr(r, e) {
529
- if (e && e > r.length) {
530
- const t = r;
531
- r = new Uint8Array(e), r.set(t, 0);
532
- }
533
- return r;
534
- }
535
- function N(r, e, t) {
536
- return r.subarray(e, t);
537
- }
538
- const H = 12;
539
- class Dr extends TransformStream {
540
- constructor({ password: e, rawPassword: t, passwordVerification: n, checkPasswordOnly: i }) {
541
- super({
542
- start() {
543
- st(this, e, t, n);
544
- },
545
- transform(s, c) {
546
- const u = this;
547
- if (u.password || u.rawPassword) {
548
- const w = ze(u, s.subarray(0, H));
549
- if (u.password = u.rawPassword = null, (w[H - 1] ^ u.passwordVerification) != 0)
550
- throw new Error(Ke);
551
- s = s.subarray(H);
552
- }
553
- i ? c.error(new Error(Qe)) : c.enqueue(ze(u, s));
554
- }
555
- });
556
- }
557
- }
558
- class Lr extends TransformStream {
559
- constructor({ password: e, rawPassword: t, passwordVerification: n }) {
560
- super({
561
- start() {
562
- st(this, e, t, n);
563
- },
564
- transform(i, s) {
565
- const c = this;
566
- let u, w;
567
- if (c.password || c.rawPassword) {
568
- c.password = c.rawPassword = null;
569
- const g = Je(new Uint8Array(H));
570
- g[H - 1] = c.passwordVerification, u = new Uint8Array(i.length + g.length), u.set(Ue(c, g), 0), w = H;
571
- } else
572
- u = new Uint8Array(i.length), w = 0;
573
- u.set(Ue(c, i), w), s.enqueue(u);
574
- }
575
- });
576
- }
577
- }
578
- function st(r, e, t, n) {
579
- Object.assign(r, {
580
- password: e,
581
- rawPassword: t,
582
- passwordVerification: n
583
- }), Nr(r, e, t);
584
- }
585
- function ze(r, e) {
586
- const t = new Uint8Array(e.length);
587
- for (let n = 0; n < e.length; n++)
588
- t[n] = ot(r) ^ e[n], te(r, t[n]);
589
- return t;
590
- }
591
- function Ue(r, e) {
592
- const t = new Uint8Array(e.length);
593
- for (let n = 0; n < e.length; n++)
594
- t[n] = ot(r) ^ e[n], te(r, e[n]);
595
- return t;
596
- }
597
- function Nr(r, e, t) {
598
- const n = [305419896, 591751049, 878082192];
599
- if (Object.assign(r, {
600
- cryptoKeys: n,
601
- crcKey0: new ee(n[0]),
602
- crcKey2: new ee(n[2])
603
- }), t)
604
- for (let i = 0; i < t.length; i++)
605
- te(r, t[i]);
606
- else
607
- for (let i = 0; i < e.length; i++)
608
- te(r, e.charCodeAt(i));
609
- }
610
- function te(r, e) {
611
- let [, t] = r.cryptoKeys;
612
- r.crcKey0.append([e]);
613
- const n = ~r.crcKey0.get();
614
- t = Ie(Math.imul(Ie(t + ct(n)), 134775813) + 1), r.crcKey2.append([t >>> 24]);
615
- const i = ~r.crcKey2.get();
616
- r.cryptoKeys = [n, t, i];
617
- }
618
- function ot(r) {
619
- const e = r.cryptoKeys[2] | 2;
620
- return ct(Math.imul(e, e ^ 1) >>> 8);
621
- }
622
- function ct(r) {
623
- return r & 255;
624
- }
625
- function Ie(r) {
626
- return r & 4294967295;
627
- }
628
- function Or(r) {
629
- if (r instanceof ReadableStream)
630
- return r;
631
- const e = r.getReader();
632
- return new ReadableStream({
633
- async pull(t) {
634
- try {
635
- const { value: n, done: i } = await e.read();
636
- i ? t.close() : t.enqueue(n);
637
- } catch (n) {
638
- throw e.cancel(n).catch(() => {
639
- }), n;
640
- }
641
- },
642
- cancel(t) {
643
- return e.cancel(t);
644
- }
645
- });
646
- }
647
- const Fr = "Compression method not supported", Pr = /* @__PURE__ */ new Map();
648
- function lt(r) {
649
- return Pr.get(r);
650
- }
651
- const we = "Invalid uncompressed size", Br = "Invalid compressed data", ut = "Codec out of memory", ft = "Invalid CRC32", Mr = "Z_MEM_ERROR", Wr = "deflate-raw", Hr = "deflate64-raw", re = "gzip", dt = 10, me = 8, jr = [31, 139, 8];
652
- class Zr extends TransformStream {
653
- constructor(e, { chunkSize: t, CompressionStreamFallback: n, CompressionStream: i }) {
654
- super({});
655
- const { compressed: s, encrypted: c, useCompressionStream: u, zipCrypto: w, computeCrc32: g, level: b, deflate64: y, format: l, compressionMethod: h, inputSize: p } = e, f = this;
656
- let d, a, o, m = super.readable;
657
- const v = l && lt(l), k = wt(u, i, n), x = g && s && !y && !v && (!c || w) && !!k;
658
- if ((!c || w) && g && !x && (d = new Xe(), m = F(m, d)), s)
659
- if (v)
660
- m = X(m, pt(v.CompressionStream, l, { level: b, chunkSize: t, compressionMethod: h, uncompressedSize: p }));
661
- else if (x)
662
- o = new Ce(), m = X(m, new k(re, { level: b, chunkSize: t })), m = F(m, o);
663
- else
664
- try {
665
- m = mt(m, u, { level: b, chunkSize: t }, i, n);
666
- } catch (z) {
667
- if (!u && n)
668
- throw ie(z);
669
- let T;
670
- try {
671
- T = new i(re);
672
- } catch {
673
- throw ie(z);
674
- }
675
- m = X(m, T), m = F(m, new Ce());
676
- }
677
- c && (w ? m = F(m, new Lr(e)) : (a = new kr(e), m = F(m, a))), ht(f, m, () => {
678
- (!c || w) && g && (f.crc32 = x ? o.crc32 : new DataView(d.value.buffer).getUint32(0));
679
- });
680
- }
681
- }
682
- class Ce extends TransformStream {
683
- constructor() {
684
- let e, t = dt, n = new Uint8Array(0);
685
- super({
686
- transform(i, s) {
687
- if (t) {
688
- const g = Math.min(t, i.length);
689
- if (t -= g, i = i.subarray(g), !i.length)
690
- return;
691
- }
692
- const c = n.length + i.length;
693
- if (c <= me) {
694
- n = W(n, i);
695
- return;
696
- }
697
- const u = c - me, w = Math.min(u, n.length);
698
- s.enqueue(W(
699
- n.subarray(0, w),
700
- i.subarray(0, u - w)
701
- )), n = W(
702
- n.subarray(w),
703
- i.subarray(u - w)
704
- );
705
- },
706
- flush() {
707
- const i = Ye(n);
708
- e.crc32 = i.getUint32(0, !0), e.uncompressedSize = i.getUint32(4, !0);
709
- }
710
- }), e = this;
711
- }
712
- }
713
- function Vr(r, e, t, n, i) {
714
- const s = e.writable.getWriter(), c = e.readable.getReader(), u = n === C ? new ee() : C;
715
- let w = 0, g = !1, b = !1, y, l;
716
- const h = new ReadableStream({
717
- start(v) {
718
- l = v;
719
- },
720
- pull() {
721
- o();
722
- },
723
- cancel(v) {
724
- return b = !0, o(), c.cancel(v);
725
- }
726
- });
727
- return p(), f(), h;
728
- async function p() {
729
- const v = r.getReader();
730
- try {
731
- const k = new Uint8Array(dt);
732
- for (k.set(jr), await s.write(k); ; ) {
733
- await a(), await s.ready;
734
- const { value: T, done: ce } = await yt(v, i);
735
- if (ce)
736
- break;
737
- await s.write(T);
738
- }
739
- u && await s.write(new Uint8Array(0));
740
- const x = new Uint8Array(me), z = Ye(x);
741
- z.setUint32(0, u ? u.get() : n, !0), z.setUint32(4, t, !0), g = !0, await s.write(x), await s.close();
742
- } catch (k) {
743
- await gt(s, k), await ne(v, k);
744
- }
745
- }
746
- async function f() {
747
- try {
748
- for (; ; ) {
749
- const { value: v, done: k } = await d();
750
- if (k)
751
- break;
752
- if (w += v.length, w > t)
753
- throw new Error(we);
754
- u && u.append(v), l.enqueue(v);
755
- }
756
- b || (b = !0, l.close());
757
- } catch (v) {
758
- m(v), await ne(c, v);
759
- }
760
- }
761
- function d() {
762
- return c.read().catch((v) => {
763
- if (g) {
764
- if (!u)
765
- throw ae(v, ft);
766
- if (w != t)
767
- throw ae(v, we);
768
- return { done: !0 };
769
- }
770
- throw bt(v, i);
771
- });
772
- }
773
- function a() {
774
- if (!b && l.desiredSize <= 0)
775
- return new Promise((v) => y = v);
776
- }
777
- function o() {
778
- if (y) {
779
- const v = y;
780
- y = C, v();
781
- }
782
- }
783
- function m(v) {
784
- b || (b = !0, l.error(v), o());
785
- }
786
- }
787
- class Yr extends TransformStream {
788
- constructor(e, { chunkSize: t, DecompressionStreamFallback: n, DecompressionStream: i }) {
789
- super({});
790
- const { zipCrypto: s, encrypted: c, checkCrc32: u, crc32: w, compressed: g, useCompressionStream: b, deflate64: y, format: l, compressionMethod: h, rawBitFlag: p, outputSize: f } = e;
791
- let d, a, o, m = super.readable;
792
- if (c && (s ? m = F(m, new Dr(e)) : (a = new vr(e), m = F(m, a))), g) {
793
- const v = /* @__PURE__ */ new Set(), k = l && lt(l);
794
- let x;
795
- if (k)
796
- m = X(m, pt(k.DecompressionStream, l, { chunkSize: t, compressionMethod: h, rawBitFlag: p, uncompressedSize: f }), v);
797
- else {
798
- const z = wt(b, i, n);
799
- if (u && !y && w !== C && f !== C && z)
800
- try {
801
- x = new z(re, { chunkSize: t });
802
- } catch {
803
- x = C;
804
- }
805
- if (!x)
806
- try {
807
- m = mt(m, b, { chunkSize: t, deflate64: y }, i, n, v);
808
- } catch (T) {
809
- if (y || f === C || !b && n)
810
- throw ie(T);
811
- try {
812
- x = new i(re);
813
- } catch {
814
- throw ie(T);
815
- }
816
- }
817
- }
818
- x ? (o = !0, m = Vr(m, x, f, w, v)) : m = Xr(m, v);
819
- }
820
- u && !o && (d = new Xe(), m = F(m, d)), ht(this, m, () => {
821
- if (d) {
822
- const v = new DataView(d.value.buffer).getUint32(0, !1);
823
- if (w != v)
824
- throw new Error(ft);
825
- }
826
- });
827
- }
828
- }
829
- function ht(r, e, t) {
830
- e = F(e, new TransformStream({ flush: t })), Object.defineProperty(r, "readable", {
831
- get() {
832
- return e;
833
- }
834
- });
835
- }
836
- function pt(r, e, t) {
837
- if (!r)
838
- throw new Error(Fr);
839
- return new r(e, t);
840
- }
841
- function wt(r, e, t) {
842
- if (r && e)
843
- return e;
844
- if (t && t.requiresModule)
845
- return t;
846
- }
847
- function mt(r, e, t, n, i, s) {
848
- const c = e && n ? n : i || n, u = t.deflate64 ? Hr : Wr;
849
- let w;
850
- try {
851
- w = new c(u, t);
852
- } catch (g) {
853
- if (e && i && c != i)
854
- w = new i(u, t);
855
- else
856
- throw g;
857
- }
858
- return X(r, w, s);
859
- }
860
- function F(r, e) {
861
- return Or(r).pipeThrough(e);
862
- }
863
- function X(r, e, t) {
864
- const n = e.writable.getWriter(), i = r.getReader();
865
- return s(), e.readable;
866
- async function s() {
867
- try {
868
- for (; ; ) {
869
- await n.ready;
870
- const c = await yt(i, t);
871
- if (c.done) {
872
- await n.close();
873
- break;
874
- }
875
- await n.write(c.value);
876
- }
877
- } catch (c) {
878
- await gt(n, c), await ne(i, c);
879
- }
880
- }
881
- }
882
- async function gt(r, e) {
883
- try {
884
- await r.abort(e);
885
- } catch {
886
- }
887
- }
888
- async function ne(r, e) {
889
- try {
890
- await r.cancel(e);
891
- } catch {
892
- }
893
- }
894
- function yt(r, e) {
895
- const t = r.read();
896
- return e ? t.catch((n) => {
897
- throw e.add(n), n;
898
- }) : t;
899
- }
900
- function bt(r, e) {
901
- return e.has(r) ? r : ae(r, Et(r) ? ut : Br);
902
- }
903
- function ie(r) {
904
- return Et(r) ? ae(r, ut) : r;
905
- }
906
- function Et(r) {
907
- return qt(r) && r.code == Mr;
908
- }
909
- function ae(r, e) {
910
- const t = new Error(e);
911
- return t.cause = r, t;
912
- }
913
- function Xr(r, e) {
914
- const t = r.getReader();
915
- return new ReadableStream({
916
- async pull(n) {
917
- try {
918
- const { value: i, done: s } = await t.read();
919
- s ? n.close() : n.enqueue(i);
920
- } catch (i) {
921
- throw await ne(t, i), bt(i, e);
922
- }
923
- },
924
- cancel(n) {
925
- return t.cancel(n);
926
- }
927
- });
928
- }
929
- const qr = 64 * 1024, Gr = "deflate", Kr = "inflate";
930
- class yn extends TransformStream {
931
- constructor(e, t) {
932
- super({});
933
- const n = this, { codecType: i } = e;
934
- let s;
935
- i.startsWith(Gr) ? s = Zr : i.startsWith(Kr) && (s = Yr), n.outputSize = 0;
936
- let c = 0;
937
- const u = new s(e, t), w = super.readable, g = new TransformStream({
938
- transform(y, l) {
939
- y && y.length && (c += y.length, l.enqueue(y));
940
- },
941
- flush() {
942
- Object.assign(n, {
943
- inputSize: c
944
- });
945
- }
946
- }), b = new TransformStream({
947
- transform(y, l) {
948
- if (y && y.length && (l.enqueue(y), n.outputSize += y.length, e.outputSize !== C && n.outputSize > e.outputSize))
949
- throw new Error(we);
950
- },
951
- flush() {
952
- const { crc32: y } = u;
953
- Object.assign(n, {
954
- crc32: y,
955
- inputSize: c
956
- });
957
- }
958
- });
959
- Object.defineProperty(n, "readable", {
960
- get() {
961
- return w.pipeThrough(g).pipeThrough(u).pipeThrough(b);
962
- }
963
- });
964
- }
965
- }
966
- class bn extends TransformStream {
967
- constructor(e) {
968
- const t = [];
969
- let n = 0, i = 0;
970
- (!Number.isFinite(e) || e < 1) && (e = qr), super({
971
- transform(u, w) {
972
- for (t.push(u), n += u.length; n > e; )
973
- i += e, w.enqueue(s());
974
- },
975
- flush(u) {
976
- n && (i += n, u.enqueue(c(t, n)));
977
- }
978
- }), Object.defineProperty(this, "outputSize", {
979
- get: () => i
980
- });
981
- function s() {
982
- const u = new Uint8Array(e);
983
- let w = 0;
984
- for (; w < e; ) {
985
- const g = t[0], b = e - w;
986
- g.length <= b ? (u.set(g, w), w += g.length, t.shift()) : (u.set(g.subarray(0, b), w), t[0] = g.subarray(b), w += b);
987
- }
988
- return n -= e, u;
989
- }
990
- function c(u, w) {
991
- const g = new Uint8Array(w);
992
- let b = 0;
993
- for (const y of u)
994
- g.set(y, b), b += y.length;
995
- return g;
996
- }
997
- }
998
- }
999
- class En extends TransformStream {
1000
- constructor({ onstart: e, onprogress: t, size: n, onend: i }) {
1001
- let s = 0;
1002
- super({
1003
- async start() {
1004
- e && await ue(e, n);
1005
- },
1006
- async transform(c, u) {
1007
- s += c.length, t && await ue(t, s, n), u.enqueue(c);
1008
- },
1009
- async flush() {
1010
- i && await ue(i, s);
1011
- }
1012
- });
1013
- }
1014
- }
1015
- async function ue(r, ...e) {
1016
- try {
1017
- await r(...e);
1018
- } catch {
1019
- }
1020
- }
1021
- let Qr = !0;
1022
- try {
1023
- Qr = typeof structuredClone == j && structuredClone(new DOMException("", "AbortError")).code !== C;
1024
- } catch {
1025
- }
1026
- BigInt(Number.MAX_SAFE_INTEGER);
1027
- BigInt(0);
1028
- BigInt("0x7fffffffffffffff");
1029
- try {
1030
- se({ baseURI: import.meta.url });
1031
- } catch {
1032
- }
1033
- const Jr = [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], _r = [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], $r = [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], en = [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], tn = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], V = new Uint8Array(288);
1034
- V.fill(8, 0, 144), V.fill(9, 144, 256), V.fill(7, 256, 280), V.fill(8, 280, 288);
1035
- const rn = new Uint8Array(30).fill(5);
1036
- function Z(r) {
1037
- const e = new Uint16Array(16);
1038
- for (const i of r) e[i]++;
1039
- e[0] = 0;
1040
- const t = new Uint16Array(17);
1041
- for (let i = 1; i <= 15; i++) t[i + 1] = t[i] + e[i];
1042
- const n = new Uint16Array(r.length);
1043
- for (let i = 0; i < r.length; i++) r[i] && (n[t[r[i]]++] = i);
1044
- return { lengthCounts: e, symbols: n };
1045
- }
1046
- const D = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1047
- function nn(r) {
1048
- let e;
1049
- r({ wasmURI: () => (e || (e = "data:application/wasm;base64," + (function(t) {
1050
- let n = "";
1051
- const i = t.length;
1052
- let s = 0;
1053
- for (; s + 2 < i; s += 3) {
1054
- const u = t[s] << 16 | t[s + 1] << 8 | t[s + 2];
1055
- n += D[u >> 18 & 63] + D[u >> 12 & 63] + D[u >> 6 & 63] + D[63 & u];
1056
- }
1057
- const c = i - s;
1058
- if (c === 1) {
1059
- const u = t[s] << 16;
1060
- n += D[u >> 18 & 63] + D[u >> 12 & 63] + "==";
1061
- } else if (c === 2) {
1062
- const u = t[s] << 16 | t[s + 1] << 8;
1063
- n += D[u >> 18 & 63] + D[u >> 12 & 63] + D[u >> 6 & 63] + "=";
1064
- }
1065
- return n;
1066
- })((function(t) {
1067
- let n = 0, i = 0, s = 0, c = new Uint8Array(1024), u = 0, w = 0;
1068
- for (; !w; ) {
1069
- w = b(1);
1070
- const d = b(2);
1071
- if (d == 0) y();
1072
- else if (d == 1) l(Z(V), Z(rn));
1073
- else {
1074
- if (d != 2) throw new Error("invalid deflate block type");
1075
- l(...h());
1076
- }
1077
- }
1078
- return c.subarray(0, u);
1079
- function g() {
1080
- if (n >= t.length) throw new Error("unexpected end of deflate data");
1081
- return t[n++];
1082
- }
1083
- function b(d) {
1084
- for (; s < d; ) i |= g() << s, s += 8;
1085
- const a = i & (1 << d) - 1;
1086
- return i >>>= d, s -= d, a;
1087
- }
1088
- function y() {
1089
- i = 0, s = 0;
1090
- const d = g() | g() << 8;
1091
- n += 2, f(u + d);
1092
- for (let a = 0; a < d; a++) c[u++] = g();
1093
- }
1094
- function l(d, a) {
1095
- let o = p(d);
1096
- for (; o != 256; ) {
1097
- if (o < 256) f(u + 1), c[u++] = o;
1098
- else {
1099
- const m = o - 257, v = Jr[m] + b(_r[m]), k = p(a), x = $r[k] + b(en[k]);
1100
- f(u + v);
1101
- const z = u - x;
1102
- for (let T = 0; T < v; T++) c[u++] = c[z + T];
1103
- }
1104
- o = p(d);
1105
- }
1106
- }
1107
- function h() {
1108
- const d = b(5) + 257, a = b(5) + 1, o = b(4) + 4, m = new Uint8Array(19);
1109
- for (let z = 0; z < o; z++) m[tn[z]] = b(3);
1110
- const v = Z(m), k = new Uint8Array(d + a);
1111
- let x = 0;
1112
- for (; x < k.length; ) {
1113
- const z = p(v);
1114
- if (z < 16) k[x++] = z;
1115
- else if (z == 16) {
1116
- const T = k[x - 1];
1117
- let ce = b(2) + 3;
1118
- for (; ce--; ) k[x++] = T;
1119
- } else x += z == 17 ? b(3) + 3 : b(7) + 11;
1120
- }
1121
- return [Z(k.subarray(0, d)), Z(k.subarray(d))];
1122
- }
1123
- function p(d) {
1124
- const { lengthCounts: a, symbols: o } = d;
1125
- let m = 0, v = 0, k = 0;
1126
- for (let x = 1; x <= 15; x++) {
1127
- m |= b(1);
1128
- const z = a[x];
1129
- if (m - v < z) return o[k + (m - v)];
1130
- k += z, v = v + z << 1, m <<= 1;
1131
- }
1132
- throw new Error("invalid huffman code");
1133
- }
1134
- function f(d) {
1135
- if (c.length < d) {
1136
- let a = 2 * c.length;
1137
- for (; a < d; ) a *= 2;
1138
- const o = new Uint8Array(a);
1139
- o.set(c.subarray(0, u)), c = o;
1140
- }
1141
- }
1142
- })((function(t) {
1143
- const n = (t = String(t).replace(/[^A-Za-z0-9+/=]/g, "")).length, i = [];
1144
- for (let s = 0; s < n; s += 4) {
1145
- const c = D.indexOf(t[s]) << 18 | D.indexOf(t[s + 1]) << 12 | (63 & D.indexOf(t[s + 2])) << 6 | 63 & D.indexOf(t[s + 3]);
1146
- i.push(c >> 16 & 255), t[s + 2] !== "=" && i.push(c >> 8 & 255), t[s + 3] !== "=" && i.push(255 & c);
1147
- }
1148
- return new Uint8Array(i);
1149
- })("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")))), e) });
1150
- }
1151
- const oe = "deflate", St = "deflate-raw", an = "deflate64-raw", Rt = "gzip", At = [oe, St, Rt], vt = [oe, St, Rt, an];
1152
- let sn;
1153
- function kt(r, e, t = {}) {
1154
- if (!(r ? At : vt).includes(e))
1155
- throw new TypeError("Unsupported format: " + e);
1156
- {
1157
- const n = new Error("WASM module not loaded");
1158
- throw n.cause = sn, n;
1159
- }
1160
- }
1161
- class be {
1162
- constructor(e = oe, t) {
1163
- return kt(!0, e, t);
1164
- }
1165
- }
1166
- class Ee {
1167
- constructor(e = oe, t) {
1168
- return kt(!1, e, t);
1169
- }
1170
- }
1171
- be.requiresModule = !0;
1172
- Ee.requiresModule = !0;
1173
- be.supportedFormats = At;
1174
- Ee.supportedFormats = vt;
1175
- function on(r, e) {
1176
- return ge(r, e);
1177
- }
1178
- xr(on);
1179
- se({
1180
- CompressionStreamFallback: be,
1181
- DecompressionStreamFallback: Ee
1182
- });
1183
- nn(se);
1184
- Xt(se);
1185
- async function $(r) {
1186
- try {
1187
- await r.body?.cancel();
1188
- } catch {
1189
- }
1190
- }
1191
- function cn(r) {
1192
- if (!r) return null;
1193
- const e = /\/(\d+)$/.exec(r.trim());
1194
- return e ? Number(e[1]) : null;
1195
- }
1196
- function ln(r) {
1197
- return r.headers.get("etag") ?? r.headers.get("last-modified");
1198
- }
1199
- async function Te(r, e) {
1200
- let t;
1201
- try {
1202
- t = await fetch(r, { headers: { Range: "bytes=0-0" }, signal: e, cache: "no-store" });
1203
- } catch (s) {
1204
- throw e?.aborted ? s : new I("no-cors", `Cannot read ${r} from the browser (no CORS headers?)`, {
1205
- cause: s
1206
- });
1207
- }
1208
- const n = ln(t);
1209
- if (!t.ok && t.status !== 206)
1210
- throw await $(t), new I("network", `${r} returned ${t.status}`);
1211
- if (t.status === 206) {
1212
- const s = cn(t.headers.get("content-range"));
1213
- await $(t);
1214
- const c = s ?? await un(r, e);
1215
- return c === null ? { type: "chunked", url: r, size: null, validator: n } : { type: "range-http", url: r, size: c, validator: n };
1216
- }
1217
- const i = t.headers.get("content-length");
1218
- return await $(t), { type: "chunked", url: r, size: i ? Number(i) : null, validator: n };
1219
- }
1220
- async function un(r, e) {
1221
- const t = await fetch(r, { signal: e, cache: "no-store" }), n = t.headers.get("content-length");
1222
- return await $(t), n ? Number(n) : null;
1223
- }
1224
- function De(r) {
1225
- const e = r.endsWith("/") ? r : `${r}/`, t = e.endsWith("h5p/") ? e : `${e}h5p/`;
1226
- return {
1227
- base: t,
1228
- virtual: `${t}virtual/`,
1229
- frame: `${t}frame/`,
1230
- ping: `${t}virtual/_ping`
1231
- };
1232
- }
1233
- const fn = new URL(
1234
- /* @vite-ignore */
1235
- "./h5p-sw.js",
1236
- import.meta.url
1237
- ).href, dn = new URL(
1238
- /* @vite-ignore */
1239
- "./frame-assets/",
1240
- import.meta.url
1241
- ).href, fe = {
1242
- mainJs: "main.bundle.js",
1243
- frameJs: "frame.bundle.js",
1244
- frameCss: "styles/h5p.css"
1245
- }, Le = `
1246
- /* Any rule in the host page that names this element beats a :host rule, however
1247
- specific — so the layout lives on a wrapper inside the shadow tree, which the page
1248
- cannot reach. A host writing "h5p-player { display: block; height: 400px }", which is
1249
- the obvious thing to write, then cannot break it. */
1
+ const A='"use strict";(()=>{var Vd=Object.defineProperty;var ie=(t,e)=>()=>(t&&(e=t(t=0)),e);var Xd=(t,e)=>{for(var r in e)Vd(t,r,{get:e[r],enumerable:!0})};var Zr,Ot,w,Vt,Se,K,Zn,We,pc,xi,Z,jn,ue=ie(()=>{Zr=new Date(2107,11,31,23,59,58),Ot=new Date(1980,0,1),w=void 0,Vt=1/0,Se="undefined",K="function",Zn="object",We="string",pc="number",xi="boolean",Z=new Uint8Array,jn=Symbol.asyncDispose||Symbol()});function pr(t){if(t&&typeof t!=K)throw new Error(Xc);return t}function Jr(t){if(t&&(typeof t.addEventListener!=K||typeof t.aborted!=xi))throw new Error(Zc);return t||w}function Zt(t){if(t&&t.aborted)throw t.reason===w?new DOMException(Kc,Zd):t.reason}function os(t,e){if(t&&typeof t!=We||e&&!(e instanceof Uint8Array))throw new Error(Mi)}function mr(t){if(t!==w&&typeof t!=xi&&t!==qr)throw new Error(jc);return t}function vi(t,e,r){if(!Number.isInteger(t)||t<0||t>e)throw new Error(r)}function hr(t,e,r){t!==w&&vi(t,e,r)}function Pt(t){return typeof t==We&&t.trim()?Number(t):t}var mc,hc,gc,Rc,wc,Kn,qn,jr,Jn,_c,Tc,Ac,yc,Sc,Ic,bc,Nc,Oc,Qn,$n,es,ts,Dc,Pc,xc,Cc,rs,Lc,Uc,Fc,Ci,Li,Mc,vc,Kr,Xt,kc,zc,Bc,Hc,Yc,Wc,Ui,Gc,Vc,Fi,ns,ss,Dt,is,at,qr,Xc,Zc,Mi,jc,Kc,Zd,gr=ie(()=>{ue();mc="filenameEncoding",hc="commentEncoding",gc="decodeText",Rc="extractPrependedData",wc="extractAppendedData",Kn="password",qn="rawPassword",jr="passThrough",Jn="signal",_c="checkPasswordOnly",Tc="checkOverlappingEntryOnly",Ac="checkOverlappingEntry",yc="checkAmbiguity",Sc="checkLocalDirectory",Ic="checkLocalFilename",bc="checkSignature",Nc="checkCrc32",Oc="checkAuthenticationCode",Qn="useWebWorkers",$n="useCompressionStream",es="transferStreams",ts="preventClose",Dc="encryptionStrength",Pc="extendedTimestamp",xc="ntfsTimestamp",Cc="keepOrder",rs="level",Lc="bufferedWrite",Uc="createTempStream",Fc="dataDescriptorSignature",Ci="useUnicodeFileNames",Li="dataDescriptor",Mc="supportZip64SplitFile",vc="encodeText",Kr="offset",Xt="usdz",kc="unixExtraFieldType",zc="localExtraField",Bc="centralExtraField",Hc="strictness",Yc="filenameValidation",Wc="normalizeFilename",Ui="maxAppendedDataSize",Gc="decryptCentralDirectory",Vc="signCentralDirectory",Fi="entry",ns="filename",ss="comment",Dt="strict",is="balanced",at="tolerant",qr="compressed",Xc="Invalid option (must be a function)",Zc="Invalid signal (must be an AbortSignal instance)",Mi="Invalid password (password must be a string, rawPassword must be a Uint8Array)",jc="Invalid passThrough option (must be a boolean or \'compressed\')",Kc="The operation was aborted",Zd="AbortError"});function ct(){return ki}function Qr(t){return zi(t.chunkSize)}function zi(t){return t=Pt(t),Number.isInteger(t)&&t>=Jc?Math.max(t,jd):qc}function Bi(t){Object.assign(ki,cl(ll(t)))}function cl(t){let e={};for(let r of qd){let n=t[r];n!==w&&(e[r]=Jd(r,n))}return e}function Jd(t,e){if(ol.includes(t)){if(e=Pt(e),t==nl&&(!Number.isInteger(e)||e<Jc))throw new Error(Qc)}else if(al.includes(t))pr(e);else if(t==sl){if(e&&typeof e!=We)throw new Error($c)}else if(il.includes(t)&&e&&typeof e!=We&&typeof e!=K)throw new Error(el);return e}function ll(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 xt(t){let e=cl(ll(t));Object.assign(rl,e),Object.assign(ki,e)}var qc,jd,Jc,Qc,$c,el,tl,rl,nl,sl,il,Kd,ol,al,qd,ki,Ge=ie(()=>{ue();gr();qc=64*1024,jd=64,Jc=1,Qc="Invalid maxWorkers (must be an integer greater than 0)",$c="Invalid baseURI (must be a string)",el="Invalid URI (must be a string or a function returning a string)",tl=2;try{typeof navigator!=Se&&navigator.hardwareConcurrency&&(tl=navigator.hardwareConcurrency)}catch{}rl={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:qc,maxWorkers:tl,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof CompressionStream!=Se&&CompressionStream,DecompressionStream:typeof DecompressionStream!=Se&&DecompressionStream},nl="maxWorkers",sl="baseURI",il=["wasmURI","workerURI"],Kd=["useCompressionStream","useWebWorkers","transferStreams"],ol=["chunkSize",nl,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],al=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],qd=[sl,...il,...Kd,...ol,...al],ki={...rl}});function Be(t,e){let r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r}function cs(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 Ct=ie(()=>{});function Re(t){return!!t&&typeof t=="object"}var jt=ie(()=>{});var $r,ul,Qd,$d,eE,tE,rE,nE,sE,Ve,en=ie(()=>{$r=[[],[],[],[],[],[],[],[]];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;$r[0][t]=e}for(let t=0;t<256;t++)for(let e=1;e<8;e++){let r=$r[e-1][t];$r[e][t]=r>>>8^$r[0][r&255]}[ul,Qd,$d,eE,tE,rE,nE,sE]=$r,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),o=n-8;for(;s<=o;s+=8){let a=r^i.getInt32(s,!0),c=i.getInt32(s+4,!0);r=sE[a&255]^nE[a>>>8&255]^rE[a>>>16&255]^tE[a>>>24&255]^eE[c&255]^$d[c>>>8&255]^Qd[c>>>16&255]^ul[c>>>24&255]}}for(;s<n;s++)r=r>>>8^ul[(r^e[s])&255];this.crc=r}get(){return~this.crc}}});var tn,dl=ie(()=>{en();tn=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 Rr(t){if(typeof TextEncoder==Se){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 Hi=ie(()=>{ue()});function rn(t,e){fE();let r=new Int32Array(60),n=uE(t,r),s=new Int32Array(16/4),i=gl(e),o=0,a=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),m=l.length,d=0;for(;d+16<=m;d+=16)p(),h.setInt32(d,h.getInt32(d)^s[0]),h.setInt32(d+4,h.getInt32(d+4)^s[1]),h.setInt32(d+8,h.getInt32(d+8)^s[2]),h.setInt32(d+12,h.getInt32(d+12)^s[3]);if(d<m){p();for(let E=0;d<m;d++,E++)l[d]^=s[E>>2]>>>24-8*(E&3)}}function p(){o=o+1|0,o||(a=a+1|0,a||(c=c+1|0,c||(f=f+1|0)));let l=ls(o)^r[0],h=ls(a)^r[1],m=ls(c)^r[2],d=ls(f)^r[3],E=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^x[d&255]^r[4],u=O[h>>>24]^D[m>>>16&255]^P[d>>>8&255]^x[l&255]^r[5],g=O[m>>>24]^D[d>>>16&255]^P[l>>>8&255]^x[h&255]^r[6],_=O[d>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[m&255]^r[7];l=O[E>>>24]^D[u>>>16&255]^P[g>>>8&255]^x[_&255]^r[8],h=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^x[E&255]^r[9],m=O[g>>>24]^D[_>>>16&255]^P[E>>>8&255]^x[u&255]^r[10],d=O[_>>>24]^D[E>>>16&255]^P[u>>>8&255]^x[g&255]^r[11],E=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^x[d&255]^r[12],u=O[h>>>24]^D[m>>>16&255]^P[d>>>8&255]^x[l&255]^r[13],g=O[m>>>24]^D[d>>>16&255]^P[l>>>8&255]^x[h&255]^r[14],_=O[d>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[m&255]^r[15],l=O[E>>>24]^D[u>>>16&255]^P[g>>>8&255]^x[_&255]^r[16],h=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^x[E&255]^r[17],m=O[g>>>24]^D[_>>>16&255]^P[E>>>8&255]^x[u&255]^r[18],d=O[_>>>24]^D[E>>>16&255]^P[u>>>8&255]^x[g&255]^r[19],E=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^x[d&255]^r[20],u=O[h>>>24]^D[m>>>16&255]^P[d>>>8&255]^x[l&255]^r[21],g=O[m>>>24]^D[d>>>16&255]^P[l>>>8&255]^x[h&255]^r[22],_=O[d>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[m&255]^r[23],l=O[E>>>24]^D[u>>>16&255]^P[g>>>8&255]^x[_&255]^r[24],h=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^x[E&255]^r[25],m=O[g>>>24]^D[_>>>16&255]^P[E>>>8&255]^x[u&255]^r[26],d=O[_>>>24]^D[E>>>16&255]^P[u>>>8&255]^x[g&255]^r[27],E=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^x[d&255]^r[28],u=O[h>>>24]^D[m>>>16&255]^P[d>>>8&255]^x[l&255]^r[29],g=O[m>>>24]^D[d>>>16&255]^P[l>>>8&255]^x[h&255]^r[30],_=O[d>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[m&255]^r[31],l=O[E>>>24]^D[u>>>16&255]^P[g>>>8&255]^x[_&255]^r[32],h=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^x[E&255]^r[33],m=O[g>>>24]^D[_>>>16&255]^P[E>>>8&255]^x[u&255]^r[34],d=O[_>>>24]^D[E>>>16&255]^P[u>>>8&255]^x[g&255]^r[35],E=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^x[d&255]^r[36],u=O[h>>>24]^D[m>>>16&255]^P[d>>>8&255]^x[l&255]^r[37],g=O[m>>>24]^D[d>>>16&255]^P[l>>>8&255]^x[h&255]^r[38],_=O[d>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[m&255]^r[39];let A=40;n>10&&(l=O[E>>>24]^D[u>>>16&255]^P[g>>>8&255]^x[_&255]^r[40],h=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^x[E&255]^r[41],m=O[g>>>24]^D[_>>>16&255]^P[E>>>8&255]^x[u&255]^r[42],d=O[_>>>24]^D[E>>>16&255]^P[u>>>8&255]^x[g&255]^r[43],E=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^x[d&255]^r[44],u=O[h>>>24]^D[m>>>16&255]^P[d>>>8&255]^x[l&255]^r[45],g=O[m>>>24]^D[d>>>16&255]^P[l>>>8&255]^x[h&255]^r[46],_=O[d>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[m&255]^r[47],A=48),n>12&&(l=O[E>>>24]^D[u>>>16&255]^P[g>>>8&255]^x[_&255]^r[48],h=O[u>>>24]^D[g>>>16&255]^P[_>>>8&255]^x[E&255]^r[49],m=O[g>>>24]^D[_>>>16&255]^P[E>>>8&255]^x[u&255]^r[50],d=O[_>>>24]^D[E>>>16&255]^P[u>>>8&255]^x[g&255]^r[51],E=O[l>>>24]^D[h>>>16&255]^P[m>>>8&255]^x[d&255]^r[52],u=O[h>>>24]^D[m>>>16&255]^P[d>>>8&255]^x[l&255]^r[53],g=O[m>>>24]^D[d>>>16&255]^P[l>>>8&255]^x[h&255]^r[54],_=O[d>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[m&255]^r[55],A=56),s[0]=(ce[E>>>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[E&255])^r[A+1],s[2]=(ce[g>>>24]<<24|ce[_>>>16&255]<<16|ce[E>>>8&255]<<8|ce[u&255])^r[A+2],s[3]=(ce[_>>>24]<<24|ce[E>>>16&255]<<16|ce[u>>>8&255]<<8|ce[g&255])^r[A+3]}}function hl(t,e,r,n){let s=gl(t),i=new Uint8Array(n),o=new Uint8Array(e.length+4),a=new DataView(o.buffer);o.set(e);for(let c=1,f=0;f<n;c++,f+=20){a.setUint32(e.length,c),s.update(o,0,o.length);let R=s.digest(),p=R.slice();for(let l=1;l<r;l++){s.update(R,0,20),R=s.digest();for(let h=0;h<20;h++)p[h]^=R[h]}i.set(p.subarray(0,Math.min(20,n-f)),f)}return i}function gl(t){let e=lE(),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^aE,n[s]=i^cE}return e.update(r,0,64),{update(s,i,o){e.update(s,i,o)},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 lE(){let t=new Int32Array(El),e=new Int32Array(16),r=new Uint8Array(64),n=new DataView(r.buffer),s=new Uint8Array(8),i=0,o=0;return{update:a,digest:c};function a(R,p,l){let h=p+l;if(o+=l,i){for(;p<h&&i<64;)r[i++]=R[p++];i==64&&(f(n,0),i=0)}if(p+64<=h){let m=new DataView(R.buffer,R.byteOffset,R.byteLength);for(;p+64<=h;p+=64)f(m,p)}for(;p<h;)r[i++]=R[p++]}function c(){let R=o*8,p=Math.floor(R/4294967296),l=R>>>0;for(a(iE,0,1);i!=56;)a(oE,0,1);s[0]=p>>>24,s[1]=p>>>16,s[2]=p>>>8,s[3]=p,s[4]=l>>>24,s[5]=l>>>16,s[6]=l>>>8,s[7]=l,a(s,0,8);let h=new Uint8Array(20),m=new DataView(h.buffer);for(let d=0;d<t.length;d++)m.setInt32(4*d,t[d]);return t.set(El),i=0,o=0,h}function f(R,p){for(let g=0;g<16;g++)e[g]=R.getInt32(p+4*g);let l=t[0],h=t[1],m=t[2],d=t[3],E=t[4],u;for(let g=0;g<15;g+=5)E=(l<<5|l>>>27)+((m^d)&h^d)+E+1518500249+e[g]|0,h=h<<30|h>>>2,d=(E<<5|E>>>27)+((h^m)&l^m)+d+1518500249+e[g+1]|0,l=l<<30|l>>>2,m=(d<<5|d>>>27)+((l^h)&E^h)+m+1518500249+e[g+2]|0,E=E<<30|E>>>2,h=(m<<5|m>>>27)+((E^l)&d^l)+h+1518500249+e[g+3]|0,d=d<<30|d>>>2,l=(h<<5|h>>>27)+((d^E)&m^E)+l+1518500249+e[g+4]|0,m=m<<30|m>>>2;E=(l<<5|l>>>27)+((m^d)&h^d)+E+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,d=(E<<5|E>>>27)+((h^m)&l^m)+d+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,m=(d<<5|d>>>27)+((l^h)&E^h)+m+1518500249+u|0,E=E<<30|E>>>2,u=e[15]^e[10]^e[4]^e[2],u=u<<1|u>>>31,e[2]=u,h=(m<<5|m>>>27)+((E^l)&d^l)+h+1518500249+u|0,d=d<<30|d>>>2,u=e[0]^e[11]^e[5]^e[3],u=u<<1|u>>>31,e[3]=u,l=(h<<5|h>>>27)+((d^E)&m^E)+l+1518500249+u|0,m=m<<30|m>>>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,E=(l<<5|l>>>27)+(h^m^d)+E+1859775393+u|0,h=h<<30|h>>>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,d=(E<<5|E>>>27)+(l^h^m)+d+1859775393+u|0,l=l<<30|l>>>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,m=(d<<5|d>>>27)+(E^l^h)+m+1859775393+u|0,E=E<<30|E>>>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,h=(m<<5|m>>>27)+(d^E^l)+h+1859775393+u|0,d=d<<30|d>>>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,l=(h<<5|h>>>27)+(m^d^E)+l+1859775393+u|0,m=m<<30|m>>>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,E=(l<<5|l>>>27)+(h&m|(h|m)&d)+E+2400959708+u|0,h=h<<30|h>>>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,d=(E<<5|E>>>27)+(l&h|(l|h)&m)+d+2400959708+u|0,l=l<<30|l>>>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,m=(d<<5|d>>>27)+(E&l|(E|l)&h)+m+2400959708+u|0,E=E<<30|E>>>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,h=(m<<5|m>>>27)+(d&E|(d|E)&l)+h+2400959708+u|0,d=d<<30|d>>>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,l=(h<<5|h>>>27)+(m&d|(m|d)&E)+l+2400959708+u|0,m=m<<30|m>>>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,E=(l<<5|l>>>27)+(h^m^d)+E+3395469782+u|0,h=h<<30|h>>>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,d=(E<<5|E>>>27)+(l^h^m)+d+3395469782+u|0,l=l<<30|l>>>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,m=(d<<5|d>>>27)+(E^l^h)+m+3395469782+u|0,E=E<<30|E>>>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,h=(m<<5|m>>>27)+(d^E^l)+h+3395469782+u|0,d=d<<30|d>>>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,l=(h<<5|h>>>27)+(m^d^E)+l+3395469782+u|0,m=m<<30|m>>>2;t[0]=t[0]+l|0,t[1]=t[1]+h|0,t[2]=t[2]+m|0,t[3]=t[3]+d|0,t[4]=t[4]+E|0}}function fE(){if(!pl){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=Rl(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}pl=!0}}function uE(t,e){let r=t.length>>2,n=r+6,s=4*(n+1),i=1;for(let o=0;o<r;o++)e[o]=t[4*o]<<24|t[4*o+1]<<16|t[4*o+2]<<8|t[4*o+3];for(let o=r;o<s;o++){let a=e[o-1];o%r==0?(a=ml(a<<8|a>>>24)^i<<24,i=Rl(i)):r>6&&o%r==4&&(a=ml(a)),e[o]=e[o-r]^a}return n}function ml(t){return ce[t>>>24]<<24|ce[t>>>16&255]<<16|ce[t>>>8&255]<<8|ce[t&255]}function ls(t){return t<<24|(t&65280)<<8|t>>>8&65280|t>>>24}function Rl(t){return(t<<1^(t>>7)*27)&255}var iE,oE,El,aE,cE,ce,O,D,P,x,pl,Yi=ie(()=>{iE=new Uint8Array([128]),oE=new Uint8Array(1),El=new Int32Array([1732584193,4023233417,2562383102,271733878,3285377520]),aE=54,cE=92,ce=new Uint8Array(256),O=new Int32Array(256),D=new Int32Array(256),P=new Int32Array(256),x=new Int32Array(256),pl=!1});function fs(t){if(dE)return crypto.getRandomValues(t);throw new Error(wr)}var dE,Xe,Lt,ft,wr,us=ie(()=>{ue();dE=typeof crypto!=Se&&typeof crypto.getRandomValues==K,Xe="Invalid password",Lt="Invalid authentication code",ft="zipjs-abort-check-password",wr="Crypto API not supported"});function Sl(t){yl=t||rn}function Il(t,e,r,n){Object.assign(t,{ready:new Promise(s=>t.resolveReady=s),password:SE(e,r),strength:n-1,pendingInput:Z,discarded:!1})}function bl(t,e){let r=t.readable.getReader(),n=new ReadableStream({async pull(s){try{let{value:i,done:o}=await r.read();o?s.close():s.enqueue(i)}catch(i){throw on(e),r.cancel(i).catch(()=>{}),i}},cancel(s){return on(e),r.cancel(s)}});Object.defineProperty(t,"readable",{get(){return n}})}function Nl(t,e,r,n,s,i){let{engine:o,pendingInput:a}=t;a.length&&(e=Be(a,e));let c=e.length-s,f=c-c%Gi;if(r=IE(r,n+f),f){let R=Ce(r,n,n+f);R.set(Ce(e,0,f)),o.process(R,i)}return t.pendingInput=Ce(e,f),r}async function TE(t,e,r,n){let s=await Ol(t,e,r,Ce(n,0,nn[e])),i=Ce(n,nn[e]);if(s[0]!=i[0]||s[1]!=i[1])throw on(t),new Error(Xe)}function on(t){let{engine:e}=t;t.discarded=!0,e&&e.dispose&&e.dispose()}async function AE(t,e,r){let n=fs(new Uint8Array(nn[e])),s=await Ol(t,e,r,n);return Be(n,s)}async function Ol(t,e,r,n){t.password=null;let s=wE[e],i=await yE(r,n,s*2+Wi);return t.engine=yl(Ce(i,0,s),Ce(i,s,s*2)),t.discarded&&on(t),Ce(i,s*2)}async function yE(t,e,r){if(wl)try{let n=await sn.importKey(EE,t,hE,!1,RE);return new Uint8Array(await sn.deriveBits(Object.assign({salt:e},gE),n,r*8))}catch{wl=!1}return hl(t,e,Tl,r)}function SE(t,e){return e===w?Rr(t):e}function IE(t,e){if(e&&e>t.length){let r=t;t=new Uint8Array(e),t.set(r,0)}return t}function Ce(t,e,r){return t.subarray(e,r)}var Gi,EE,_l,pE,mE,Tl,hE,gE,RE,nn,wE,Ut,Wi,Al,sn,_E,wl,yl,ds,Es,Vi=ie(()=>{ue();Hi();Ct();Yi();us();Gi=16,EE="raw",_l={name:"PBKDF2"},pE={name:"HMAC"},mE="SHA-1",Tl=1e3,hE=Object.assign({hash:pE},_l),gE=Object.assign({iterations:Tl,hash:{name:mE}},_l),RE=["deriveBits"],nn=[8,12,16],wE=[16,24,32],Ut=10,Wi=2,Al=typeof crypto!=Se,sn=Al&&crypto.subtle,_E=Al&&typeof sn!=Se,wl=_E&&typeof sn.importKey==K&&typeof sn.deriveBits==K,yl=rn,ds=class extends TransformStream{constructor({password:e,rawPassword:r,encryptionStrength:n,checkPasswordOnly:s,checkAuthenticationCode:i=!0}){let o={};super({start(){Il(o,e,r,n)},async transform(a,c){let{password:f,strength:R,resolveReady:p,ready:l}=o;if(f?(await TE(o,R,f,Ce(a,0,nn[R]+Wi)),a=Ce(a,nn[R]+Wi),s?(on(o),c.error(new Error(ft))):p()):await l,o.discarded)return;let h=new Uint8Array(a.length-Ut-(a.length-Ut)%Gi);c.enqueue(Nl(o,a,h,0,Ut,!0))},async flush(a){let{engine:c,pendingInput:f,ready:R}=o;if(c){if(await R,o.discarded)return;let p=Ce(f,f.length-Ut),l=new Uint8Array(Ce(f,0,f.length-Ut));c.process(l,!0);let h=c.digest(),m=f.length<Ut?1:0;for(let d=0;d<Ut;d++)m|=h[d]^p[d];if(m&&i){a.error(new Error(Lt));return}a.enqueue(l)}}}),bl(this,o)}},Es=class extends TransformStream{constructor({password:e,rawPassword:r,encryptionStrength:n}){let s={};super({start(){Il(s,e,r,n)},async transform(i,o){let{password:a,strength:c,resolveReady:f,ready:R}=s,p=Z;if(a?(p=await AE(s,c,a),f()):await R,s.discarded)return;let l=new Uint8Array(p.length+i.length-i.length%Gi);l.set(p,0),o.enqueue(Nl(s,i,l,p.length,0,!1))},async flush(i){let{engine:o,pendingInput:a,ready:c}=s;if(o){if(await c,s.discarded)return;let f=new Uint8Array(a);o.process(f,!1);let R=Ce(o.digest(),0,Ut);i.enqueue(Be(f,R))}}}),bl(this,s)}}});function Cl(t,e,r,n){Object.assign(t,{password:e,rawPassword:r,passwordVerification:n}),bE(t,e,r)}function Dl(t,e){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=Ll(t)^e[n],hs(t,r[n]);return r}function Pl(t,e){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=Ll(t)^e[n],hs(t,e[n]);return r}function bE(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++)hs(t,r[s]);else for(let s=0;s<e.length;s++)hs(t,e.charCodeAt(s))}function hs(t,e){let[,r]=t.cryptoKeys;t.crcKey0.append([e]);let n=~t.crcKey0.get();r=xl(Math.imul(xl(r+Ul(n)),134775813)+1),t.crcKey2.append([r>>>24]);let s=~t.crcKey2.get();t.cryptoKeys=[n,r,s]}function Ll(t){let e=t.cryptoKeys[2]|2;return Ul(Math.imul(e,e^1)>>>8)}function Ul(t){return t&255}function xl(t){return t&4294967295}var _r,ps,ms,Fl=ie(()=>{en();us();_r=12,ps=class extends TransformStream{constructor({password:e,rawPassword:r,passwordVerification:n,checkPasswordOnly:s}){super({start(){Cl(this,e,r,n)},transform(i,o){let a=this;if(a.password||a.rawPassword){let c=Dl(a,i.subarray(0,_r));if(a.password=a.rawPassword=null,(c[_r-1]^a.passwordVerification)!=0)throw new Error(Xe);i=i.subarray(_r)}s?o.error(new Error(ft)):o.enqueue(Dl(a,i))}})}},ms=class extends TransformStream{constructor({password:e,rawPassword:r,passwordVerification:n}){super({start(){Cl(this,e,r,n)},transform(s,i){let o=this,a,c;if(o.password||o.rawPassword){o.password=o.rawPassword=null;let f=fs(new Uint8Array(_r));f[_r-1]=o.passwordVerification,a=new Uint8Array(s.length+f.length),a.set(Pl(o,f),0),c=_r}else a=new Uint8Array(s.length),c=0;a.set(Pl(o,s),c),i.enqueue(a)}})}}});function He(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 ut(t,e){t=He(t);let r=e?{type:e}:{};if(NE())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 NE(){return typeof Blob.prototype.stream!=K||new Blob([]).stream()instanceof ReadableStream}function Xi(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=ie(()=>{ue()});function gs(t){return OE.get(t)}function Rs(t){return Zi.get(t)}function DE(t,e){let{CompressionStream:r,DecompressionStream:n}=e;if(typeof r!=K&&typeof n!=K)throw new Error(Ml);Zi.set(t,{CompressionStream:r,DecompressionStream:n})}async function vl(t,e){!Zi.has(t)&&e&&DE(t,await import(e))}var Ml,dt,OE,Zi,Jt=ie(()=>{ue();Ml="Invalid codec module",dt="Compression method not supported",OE=new Map,Zi=new Map});function CE(t,e,r,n,s){let i=e.writable.getWriter(),o=e.readable.getReader(),a=n===w?new Ve:w,c=0,f=!1,R=!1,p,l,h=new ReadableStream({start(A){l=A},pull(){g()},cancel(A){return R=!0,g(),o.cancel(A)}});return m(),d(),h;async function m(){let A=t.getReader();try{let T=new Uint8Array(Bl);for(T.set(xE),await i.write(T);;){await u(),await i.ready;let{value:I,done:N}=await Xl(A,s);if(N)break;await i.write(I)}a&&await i.write(new Uint8Array(0));let y=new Uint8Array(ji),S=L(y);S.setUint32(0,a?a.get():n,!0),S.setUint32(4,r,!0),f=!0,await i.write(y),await i.close()}catch(T){await Vl(i,T),await As(A,T)}}async function d(){try{for(;;){let{value:A,done:T}=await E();if(T)break;if(c+=A.length,c>r)throw new Error(Qe);a&&a.append(A),l.enqueue(A)}R||(R=!0,l.close())}catch(A){_(A),await As(o,A)}}function E(){return o.read().catch(A=>{if(f){if(!a)throw Ss(A,Ft);if(c!=r)throw Ss(A,Qe);return{done:!0}}throw Zl(A,s)})}function u(){if(!R&&l.desiredSize<=0)return new Promise(A=>p=A)}function g(){if(p){let A=p;p=w,A()}}function _(A){R||(R=!0,l.error(A),g())}}function qi(t,e){if(!t)return!1;let r=kl.get(t);r||(r=new Map,kl.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 Is(t){return qi(t,Ki)}function Ji(t){return qi(t,Ar)}function Hl(t,e,r){e=Et(e,new TransformStream({flush:r})),Object.defineProperty(t,"readable",{get(){return e}})}function Yl(t,e,r){if(!t)throw new Error(dt);return new t(e,r)}function Wl(t,e,r){if(t&&e)return e;if(r&&r.requiresModule)return r}function Gl(t,e,r,n,s,i){let o=e&&n?n:s||n,a=r.deflate64?zl:Ki,c;try{c=new o(a,r)}catch(f){if(e&&s&&o!=s)c=new s(a,r);else throw f}return cn(t,c,i)}function Et(t,e){return He(t).pipeThrough(e)}function cn(t,e,r){let n=e.writable.getWriter(),s=t.getReader();return i(),e.readable;async function i(){try{for(;;){await n.ready;let o=await Xl(s,r);if(o.done){await n.close();break}await n.write(o.value)}}catch(o){await Vl(n,o),await As(s,o)}}}async function Vl(t,e){try{await t.abort(e)}catch{}}async function As(t,e){try{await t.cancel(e)}catch{}}function Xl(t,e){let r=t.read();return e?r.catch(n=>{throw e.add(n),n}):r}function Zl(t,e){return e.has(t)?t:Ss(t,jl(t)?$t:Qt)}function ys(t){return jl(t)?Ss(t,$t):t}function jl(t){return Re(t)&&t.code==PE}function Ss(t,e){let r=new Error(e);return r.cause=t,r}function LE(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 As(r,s),Zl(s,e)}},cancel(n){return r.cancel(n)}})}var Qe,Qt,$t,Ft,PE,Ki,zl,Ar,Bl,ji,xE,ws,_s,Ts,kl,Qi=ie(()=>{en();dl();Vi();Fl();us();ue();Ct();Kt();jt();Jt();Qe="Invalid uncompressed size",Qt="Invalid compressed data",$t="Codec out of memory",Ft="Invalid CRC32",PE="Z_MEM_ERROR",Ki="deflate-raw",zl="deflate64-raw",Ar="gzip",Bl=10,ji=8,xE=[31,139,8],ws=class extends TransformStream{constructor(e,{chunkSize:r,CompressionStreamFallback:n,CompressionStream:s}){super({});let{compressed:i,encrypted:o,useCompressionStream:a,zipCrypto:c,computeCrc32:f,level:R,deflate64:p,format:l,compressionMethod:h,inputSize:m}=e,d=this,E,u,g,_=super.readable,A=l&&Rs(l),T=Wl(a,s,n),y=f&&i&&!p&&!A&&(!o||c)&&!!T;if((!o||c)&&f&&!y&&(E=new tn,_=Et(_,E)),i)if(A)_=cn(_,Yl(A.CompressionStream,l,{level:R,chunkSize:r,compressionMethod:h,uncompressedSize:m}));else if(y)g=new _s,_=cn(_,new T(Ar,{level:R,chunkSize:r})),_=Et(_,g);else try{_=Gl(_,a,{level:R,chunkSize:r},s,n)}catch(S){if(!a&&n)throw ys(S);let I;try{I=new s(Ar)}catch{throw ys(S)}_=cn(_,I),_=Et(_,new _s)}o&&(c?_=Et(_,new ms(e)):(u=new Es(e),_=Et(_,u))),Hl(d,_,()=>{(!o||c)&&f&&(d.crc32=y?g.crc32:new DataView(E.value.buffer).getUint32(0))})}},_s=class extends TransformStream{constructor(){let e,r=Bl,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 o=n.length+s.length;if(o<=ji){n=Be(n,s);return}let a=o-ji,c=Math.min(a,n.length);i.enqueue(Be(n.subarray(0,c),s.subarray(0,a-c))),n=Be(n.subarray(c),s.subarray(a-c))},flush(){let s=L(n);e.crc32=s.getUint32(0,!0),e.uncompressedSize=s.getUint32(4,!0)}}),e=this}};Ts=class extends TransformStream{constructor(e,{chunkSize:r,DecompressionStreamFallback:n,DecompressionStream:s}){super({});let{zipCrypto:i,encrypted:o,checkCrc32:a,crc32:c,compressed:f,useCompressionStream:R,deflate64:p,format:l,compressionMethod:h,rawBitFlag:m,outputSize:d}=e,E,u,g,_=super.readable;if(o&&(i?_=Et(_,new ps(e)):(u=new ds(e),_=Et(_,u))),f){let A=new Set,T=l&&Rs(l),y;if(T)_=cn(_,Yl(T.DecompressionStream,l,{chunkSize:r,compressionMethod:h,rawBitFlag:m,uncompressedSize:d}),A);else{let S=Wl(R,s,n);if(a&&!p&&c!==w&&d!==w&&S)try{y=new S(Ar,{chunkSize:r})}catch{y=w}if(!y)try{_=Gl(_,R,{chunkSize:r,deflate64:p},s,n,A)}catch(I){if(p||d===w||!R&&n)throw ys(I);try{y=new s(Ar)}catch{throw ys(I)}}}y?(g=!0,_=CE(_,y,d,c,A)):_=LE(_,A)}a&&!g&&(E=new tn,_=Et(_,E)),Hl(this,_,()=>{if(E){let A=new DataView(E.value.buffer).getUint32(0,!1);if(c!=A)throw new Error(Ft)}})}},kl=new Map});var UE,Kl,ql,Jl,$i,Ql,$l,yr,Ns,bs,ln,Os=ie(()=>{ue();Qi();UE=64*1024,Kl="message",ql="start",Jl="pull",$i="data",Ql="ack",$l="close",yr="deflate",Ns="inflate",bs=class extends TransformStream{constructor(e,r){super({});let n=this,{codecType:s}=e,i;s.startsWith(yr)?i=ws:s.startsWith(Ns)&&(i=Ts),n.outputSize=0;let o=0,a=new i(e,r),c=super.readable,f=new TransformStream({transform(p,l){p&&p.length&&(o+=p.length,l.enqueue(p))},flush(){Object.assign(n,{inputSize:o})}}),R=new TransformStream({transform(p,l){if(p&&p.length&&(l.enqueue(p),n.outputSize+=p.length,e.outputSize!==w&&n.outputSize>e.outputSize))throw new Error(Qe)},flush(){let{crc32:p}=a;Object.assign(n,{crc32:p,inputSize:o})}});Object.defineProperty(n,"readable",{get(){return c.pipeThrough(f).pipeThrough(a).pipeThrough(R)}})}},ln=class extends TransformStream{constructor(e){let r=[],n=0,s=0;(!Number.isFinite(e)||e<1)&&(e=UE),super({transform(a,c){for(r.push(a),n+=a.length;n>e;)s+=e,c.enqueue(i())},flush(a){n&&(s+=n,a.enqueue(o(r,n)))}}),Object.defineProperty(this,"outputSize",{get:()=>s});function i(){let a=new Uint8Array(e),c=0;for(;c<e;){let f=r[0],R=e-c;f.length<=R?(a.set(f,c),c+=f.length,r.shift()):(a.set(f.subarray(0,R),c),r[0]=f.subarray(R),c+=R)}return n-=e,a}function o(a,c){let f=new Uint8Array(c),R=0;for(let p of a)f.set(p,R),R+=p.length;return f}}}});function tf({initModule:t}){to=t}function rf(t){eo=t}async function nf(t){let{CompressionStream:e,CompressionStreamFallback:r}=t;return r&&!r.requiresModule||Is(e)||Ji(e)?!0:r?await sf(t):!1}async function sf(t){if(to)try{return await to(t),!0}catch{}return!1}function ro(t){t.createWorker?ef=!0:Ds=!1}async function Ps(t,...e){try{await t(...e)}catch{}}function no(t,e){return{run:()=>Cs(t,e)}}async function Cs({options:t,readable:e,writable:r,onTaskFinished:n,workerOptions:s},i){let o,a,c;try{if(t.compressed&&!t.format){let m=t.codecType.startsWith(yr),d=m?i.CompressionStreamFallback:i.DecompressionStreamFallback,E=m?i.CompressionStream:i.DecompressionStream;t.useCompressionStream?d&&d.requiresModule&&!Is(E)&&await f():!await f()&&(!d||d.requiresModule)&&(t.useCompressionStream=!0)}t.encrypted&&!t.zipCrypto&&await f(),o=new bs(t,i),a=new ln(Qr(i));let{signal:R}=s.streamOptions;await e.pipeThrough(o).pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0,signal:R});let{crc32:p,inputSize:l,outputSize:h}=o;return{crc32:p,inputSize:l,outputSize:h}}catch(R){if(o){let p=a?a.outputSize:0;if(s.outputSize=p,Re(R))try{R.outputSize=p}catch{}}throw R}finally{n()}function f(){return c||(c=sf(i)),c}}var er,Ds,ef,eo,to,Mt,xs,Sr=ie(()=>{ue();Ge();jt();Os();er="Worker startup timeout",to=()=>{};Mt=class{constructor(e,{readable:r,writable:n},s,i){let{options:o,config:a,streamOptions:c,useWebWorkers:f,transferStreams:R,workerURI:p}=s,{createWorker:l}=s,{signal:h}=c;return ef&&(l=w),Object.assign(e,{busy:!0,generation:(e.generation||0)+1,readable:r.pipeThrough(new ln(Qr(a))).pipeThrough(new xs(c),{signal:h}),writable:n,options:Object.assign({},o),workerOptions:s,workerURI:p,createWorker:l,transferStreams:R,terminate(){return new Promise(m=>{let{worker:d,busy:E}=e;E?(e.terminateResolvers=e.terminateResolvers||[],e.terminateResolvers.push(m)):(d&&(d.terminate(),e.worker=null),m()),e.interface=null})},onTaskFinished(){if(e.busy){let{terminateResolvers:m,worker:d}=e;m&&(e.terminateResolvers=null,d&&(e.terminated=!0,d.terminate())),e.busy=!1;let E=i(e);m&&m.forEach(u=>u(E))}}}),Ds===w&&(Ds=typeof Worker!=Se),(f&&eo&&(Ds&&p||l)?eo:no)(e,a)}},xs=class extends TransformStream{constructor({onstart:e,onprogress:r,size:n,onend:s}){let i=0;super({async start(){e&&await Ps(e,n)},async transform(o,a){i+=o.length,r&&await Ps(r,i,n),a.enqueue(o)},async flush(){s&&await Ps(s,i)}})}}});async function Ms(t,e){let{options:r,config:n}=e,{transferStreams:s,useWebWorkers:i,useCompressionStream:o,compressed:a,checkCrc32:c,computeCrc32:f,encrypted:R,format:p,codecURI:l}=r,{workerURI:h,createWorker:m,maxWorkers:d}=n;p&&(l&&(r.codecURI=YE(l,n.baseURI)),await vl(p,r.codecURI)),e.transferStreams=!p&&(s||s===w&&n.transferStreams);let E=!a&&!c&&!f&&!R,u=p===w||!!r.codecURI;return e.useWebWorkers=!E&&u&&(i||i===w&&n.useWebWorkers),e.workerURI=e.useWebWorkers&&h?h:w,e.createWorker=e.useWebWorkers&&m?m:w,r.useCompressionStream=o||o===w&&n.useCompressionStream,(await g()).run();async function g(){let A=tr.find(T=>!T.busy);if(A)return pf(A),new Mt(A,t,e,_);if(tr.length<d){let T={indexWorker:Ef};return Ef++,tr.push(T),new Mt(T,t,e,_)}else return new Promise(T=>{rr.push({resolve:T,stream:t,workerOptions:e}),Us=n.workerStarvationTimeout,Fs()})}function _(A){if(lo(),A.terminated)return A.terminated=!1,GE();if(rr.length){let[{resolve:T,stream:y,workerOptions:S}]=rr.splice(0,1);T(new Mt(A,y,S,_)),Fs()}else A.worker?(pf(A),VE(A,e)):tr=tr.filter(T=>T!=A)}}function YE(t,e){try{return new URL(t,e).toString()}catch{return t}}function Fs(){!Ir&&rr.length&&Number.isFinite(Us)&&Us>=0&&(Ir=setTimeout(WE,Us))}function lo(){Ir&&(clearTimeout(Ir),Ir=null)}function WE(){if(Ir=null,rr.length){let[{resolve:t,stream:e,workerOptions:r}]=rr.splice(0,1);t(new Mt({},e,mf(r),hf)),Fs()}}function GE(){let t=rr.splice(0).map(({resolve:e,stream:r,workerOptions:n})=>new Promise(s=>{e(new Mt({},r,mf(n),()=>{hf(),s()}))}));return lo(),Promise.all(t)}function mf(t){return Object.assign({},t,{useWebWorkers:!1,workerURI:w,createWorker:w})}function hf(){lo(),Fs()}function VE(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 pf(t){let{terminateTimeout:e}=t;e&&(clearTimeout(e),t.terminateTimeout=null)}var tr,rr,Ir,Us,Ef,vs=ie(()=>{ue();Os();Jt();Sr();tr=[],rr=[],Ef=0});function gf(t){let e="";for(let r=0;r<t.length;r++)e+=XE[t[r]];return e}var XE,Rf=ie(()=>{XE="\\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 fn(t,e){return ZE(t,e,!0)}function fo(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 ZE(t,e,r){return e&&e.trim().toLowerCase()=="cp437"?gf(t):new TextDecoder(e,{ignoreBOM:r}).decode(t)}var uo=ie(()=>{Rf()});function KE(){Af=(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();Eo=r==1}catch{Eo=!1}})()}function un(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 qE(t){return t=new mt(t),await ge(t),(t.size===w||!t.readUint8Array)&&(t=new $e(await ut(t.readable)),await ge(t)),t}function re(t,e,r){return t.readUint8Array(e,r)}function po(t,e){return t.createReadable?t.createReadable(e):t.readUint8Array?pt.prototype.createReadable.call(t,e):t.readable}var _f,Tf,ER,pR,mR,jE,wf,ks,pt,Eo,Af,$e,zs,Bs,mt,br,dn=ie(()=>{ue();Ge();Ct();Kt();uo();_f="Writer iterator completed too soon",Tf="Invalid writer (size must be writable)",ER=256*1024,pR=16*1024*1024,mR=65557,jE="writable",wf=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=Qr(ct())}={}){let s=this,i=0;return n=zi(n),new ReadableStream({async pull(o){let a=r===w?n:Math.min(n,r-i),c=await re(s,e+i,a);c.length&&(o.enqueue(c),i+=c.length),(r!==w&&i>=r||!c.length&&a)&&o.close()}})}};$e=class extends pt{constructor(e){super(),Object.assign(this,{sourceBlob:e,size:e.size}),Af||KE()}createReadable(e){let r=this,{sourceBlob:n,size:s}=r,{offset:i=0,size:o=s-i}=e||{};if(typeof n.stream==K){if(!i&&o>=s)return He(n.stream());if(Eo)return He(n.slice(i,i+o).stream())}return super.createReadable(e)}async readUint8Array(e,r){let n=this,s=e+r,a=await(!e&&s>=n.size?n.sourceBlob:n.sourceBlob.slice(e,s)).arrayBuffer();return a.byteLength>r&&(a=a.slice(e,s)),new Uint8Array(a)}},zs=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(qE));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,o=0,a=e;for(;s[o]&&a>=s[o].size;)a-=s[o].size,o++;let c=s[o];if(c){let f=c.size;if(a+r<=f)i=await re(c,a,r);else{let R=f-a,p=await re(c,a,R),l=await n.readUint8Array(e+R,r-R);i=Be(p,l)}}else i=Z;return n.lastDiskNumber=Math.max(o,n.lastDiskNumber),i}},Bs=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,o,a=new WritableStream({async write(p){if(p===wf){o&&await f();return}let{availableSize:l}=n;if(o)p.length>=l?(await c(p.subarray(0,l)),await f(),p.length>l&&await this.write(p.subarray(l))):await c(p);else{let{value:h,done:m}=await e.next();if(m&&!h)throw new Error(_f);s=h,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await ge(s),i=h.writable,o=i.getWriter(),await this.write(p)}},async close(){o&&(await o.ready,await R())},async abort(p){o&&await o.abort(p)}});Object.defineProperty(n,jE,{get(){return a}});async function c(p){let l=p.length;l&&(await o.ready,await o.write(p),s.size+=l,n.availableSize-=l)}async function f(){await R(),n.diskOffset+=s.size,n.diskNumber++,o=null,n.availableSize=n.maxSize}async function R(){await o.close()}}async closeDisk(){let e=this.writable.getWriter();try{await e.ready,await e.write(wf)}finally{e.releaseLock()}}},mt=class{constructor(e){return Array.isArray(e)&&(e=new zs(e)),(e instanceof ReadableStream||typeof e.getReader==K)&&(e={readable:He(e)}),e}},br=class{constructor(e){e.writable===w&&typeof e.next==K&&(e=new Bs(e)),(e instanceof WritableStream||typeof e.getWriter==K)&&(e={writable:Xi(e)});try{e.size=e.size===w?0:e.size}catch{throw new Error(Tf)}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 mo=ie(()=>{ue()});function yf(t){if(t){let e=new Map;if(t.forEach((r,n)=>{wp.has(n)||e.set(n,r.data)}),e.size)return e}}function yn(t,e,r){return t?e?12:16+r*4:0}var _o,To,Rn,Ao,wn,yo,So,Io,sr,Or,_n,bo,Tn,No,Oo,Do,Po,xo,Co,Hs,Lo,Uo,Fo,Mo,ir,vo,JE,ko,Ys,QE,An,$E,ep,tp,rp,zo,Bo,Ho,Yo,Wo,Go,np,sp,ip,op,ap,cp,lp,fp,up,dp,Ep,pp,mp,hp,gp,Rp,ht,wp,Ws=ie(()=>{ue();_o="filename",To="rawFilename",Rn="comment",Ao="rawComment",wn="uncompressedSize",yo="compressedSize",So="offset",Io="diskNumberStart",sr="lastModDate",Or="rawLastModDate",_n="lastAccessDate",bo="rawLastAccessDate",Tn="creationDate",No="rawCreationDate",Oo="internalFileAttributes",Do="externalFileAttributes",Po="msdosAttributesRaw",xo="msdosAttributes",Co="msDosCompatible",Hs="zip64",Lo="encrypted",Uo="version",Fo="versionMadeBy",Mo="zipCrypto",ir="directory",vo="executable",JE="symlink",ko="compressionMethod",Ys="signature",QE="crc32",An="extraField",$E="extraFieldInfoZip",ep="extraFieldUnix",tp="extraFieldUnixType1",rp="extraFieldPkwareUnix",zo="uid",Bo="gid",Ho="unixMode",Yo="setuid",Wo="setgid",Go="sticky",np="bitFlag",sp="rawBitFlag",ip="filenameLength",op="extraFieldLength",ap="unixExternalUpper",cp="filenameUTF8",lp="commentUTF8",fp="rawExtraField",up="extraFieldZip64",dp="extraFieldUnicodePath",Ep="extraFieldUnicodeComment",pp="extraFieldAES",mp="extraFieldNTFS",hp="extraFieldExtendedTimestamp",gp="extraFieldUSDZ",Rp=[_o,To,wn,yo,sr,Or,Rn,Ao,_n,bo,Tn,No,So,Io,Oo,Do,Po,xo,Co,Hs,Lo,Uo,Fo,Mo,ir,vo,JE,ko,Ys,QE,An,ep,$E,tp,rp,zo,Bo,Ho,ap,Yo,Wo,Go,np,sp,ip,op,cp,lp,fp,up,dp,Ep,pp,mp,hp,gp],ht=class{constructor(e){Rp.forEach(r=>this[r]=e[r])}},wp=new Set([1,39169,10,21589,28789,25461,6534,30837,30805,22613,13])});var Jf={};Xd(Jf,{ERR_AMBIGUOUS_ARCHIVE:()=>Ea,ERR_BAD_FORMAT:()=>Dr,ERR_CENTRAL_DIRECTORY_NOT_FOUND:()=>ca,ERR_CODEC_OUT_OF_MEMORY:()=>$t,ERR_ENCRYPTED:()=>ai,ERR_ENCRYPTED_CENTRAL_DIRECTORY:()=>pa,ERR_ENTRY_DATA_OUT_OF_BOUNDS:()=>da,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:()=>aa,ERR_EOCDR_NOT_FOUND:()=>oa,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:()=>fa,ERR_INVALID_AUTHENTICATION_CODE:()=>Lt,ERR_INVALID_COMPRESSED_DATA:()=>Qt,ERR_INVALID_CRC32:()=>Ft,ERR_INVALID_FILENAME_VALIDATION:()=>ga,ERR_INVALID_MAX_APPENDED_DATA_SIZE:()=>Ra,ERR_INVALID_PASSWORD:()=>Xe,ERR_INVALID_STRICTNESS:()=>ha,ERR_INVALID_UNCOMPRESSED_SIZE:()=>Qe,ERR_LOCAL_FILE_HEADER_NOT_FOUND:()=>la,ERR_OVERLAPPING_ENTRY:()=>ua,ERR_SPLIT_ZIP_FILE:()=>Zs,ERR_UNSAFE_FILENAME:()=>ma,ERR_UNSUPPORTED_COMPRESSION:()=>dt,ERR_UNSUPPORTED_ENCRYPTION:()=>Xs,ERR_UNSUPPORTED_UINT64:()=>wa,ERR_WORKER_STARTUP_TIMEOUT:()=>er,WARNING_APPENDED_DATA:()=>Ks,WARNING_COMPRESSED_PATCHED_DATA:()=>Aa,WARNING_DUPLICATE_FILENAME:()=>ba,WARNING_MALFORMED_EXTRA_FIELD:()=>ci,WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG:()=>Da,WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD:()=>Pa,WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES:()=>xa,WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME:()=>Oa,WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY:()=>Pr,WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY:()=>Na,WARNING_PREPENDED_CENTRAL_DIRECTORY:()=>Sa,WARNING_PREPENDED_DATA:()=>qs,WARNING_TRAILING_CENTRAL_DIRECTORY_DATA:()=>Ia,WARNING_UNKNOWN_VERSION:()=>Ta,WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA:()=>ya,WARNING_UNSORTED_CENTRAL_DIRECTORY:()=>_a,WARNING_WRAPPED_ENTRIES_COUNT:()=>js,ZipReader:()=>zt,ZipReaderStream:()=>Qs,isZipFile:()=>Yf});function Pp(t,e){let{readable:r,writable:n}=new TransformStream,s,i={cancel:async a=>{e.delete(i),await(s?s.cancel(a):r.cancel(a))}};return i.readable=new ReadableStream({async pull(a){s||(s=r.getReader(),e.add(i),o());let{done:c,value:f}=await s.read();c?a.close():a.enqueue(f)},cancel:a=>i.cancel(a)},{highWaterMark:0}),i;async function o(){try{await t.getData(n,{preventClose:!1})}catch(a){try{await n.abort(a)}catch{}}finally{e.delete(i)}}}async function Yf(t,e={}){if(t=new mt(t),await ge(t),(t.size===w||!t.readUint8Array)&&(t=new $e(await ut(t.readable)),await ge(t)),t.size<22)return!1;let r=La(e,{}),n=r!=at,s=Zf(e[Ui],r),{endOfDirectoryInfo:i,endOfDirectoryReachingEndCount:o}=await jf(t,n,s);if(!i||r==Dt&&o>1)return!1;let a=V(L(i),20),c=i.offset+22+a;return t.size-c<=s}function Vo(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 Cf(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 Xo(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 xp(t,e,r){let n=t&&t.compressedSize?t.compressedSize:e;return n>0&&n<=r?n:r}function Cp(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:Le(r,2),uncompressedSize:Le(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 Wf(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:Kp(i),filenameLength:V(e,r+22),extraFieldLength:V(e,r+24)})}function Gf(t,e,r,n,s){let{rawExtraField:i}=e,o=e.extraField=new Map,a=L(i),c=0,f=!1;try{for(;c<i.length;){let y=V(a,c),S=V(a,c+2);o.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 p=o.get(1);p&&(Lp(p,e),e.extraFieldZip64=p);let l=o.get(28789);l&&(Lf(l,_o,To,e,t),e.extraFieldUnicodePath=l);let h=o.get(25461);h&&(Lf(h,Rn,Ao,e,t),e.extraFieldUnicodeComment=h);let m=o.get(39169);m&&m.data.length>=7?(Up(m,e,R),e.extraFieldAES=m):e.compressionMethod=R;let d=o.get(13);d&&(Uf(d,e),e.extraFieldPkwareUnix=d);let E=o.get(22613);E&&(Uf(E,e),e.extraFieldUnixType1=E);let u=o.get(10);u&&(Fp(u,e),e.extraFieldNTFS=u);let g=o.get(30805),_;if(g&&(_=Ff(g,e,!1),e.extraFieldUnix=g),!_){let y=o.get(30837);y&&(Ff(y,e,!0),e.extraFieldInfoZip=y)}let A=o.get(21589);A&&(Mp(A,e,s),e.extraFieldExtendedTimestamp=A);let T=o.get(6534);return T&&(e.extraFieldUSDZ=T),f}function Lp(t,e){e.zip64=!0;let r=L(t.data),n=bp.filter(([i,o])=>e[i]==o),s=n.reduce((i,[,o])=>i+Pf[o].bytes,0);if(t.data.length<s)throw new Error(fa);for(let i=0,o=0;i<n.length;i++){let[a,c]=n[i],f=Pf[c];e[a]=t[a]=f.getValue(r,o),o+=f.bytes}}function Lf(t,e,r,n,s){if(t.data.length<5){t.valid=!1;return}let i=L(t.data),o=new Ve;o.append(s[r]);let a=L(new Uint8Array(4));a.setUint32(0,o.get(),!0);let c=v(i,1),f=kt(i,0);Object.assign(t,{version:f,[e]:fn(t.data.subarray(5)),valid:f==1&&!s.bitFlag.languageEncodingFlag&&c==v(a,0)}),t.valid&&(n[e]=t[e],n[e+Ip]=!0)}function Up(t,e,r){let n=L(t.data),s=kt(n,4);Object.assign(t,{vendorVersion:kt(n,0),vendorId:kt(n,2),strength:s,originalCompressionMethod:r,compressionMethod:V(n,5)}),e.compressionMethod=t.compressionMethod,t.vendorVersion!=Hf&&(e.crc32=w)}function Fp(t,e){let r=L(t.data),n=4,s;try{for(;n<t.data.length&&!s;){let i=V(r,n),o=V(r,n+2);i==1&&(s=t.data.slice(n+4,n+4+o)),n+=4+o}}catch{}if(s&&s.length==24){let i=L(s),o=i.getBigUint64(0,!0),a=i.getBigUint64(8,!0),c=i.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:o,rawLastAccessDate:a,rawCreationDate:c});let f=Zo(o),R=Zo(a),p=Zo(c),l={lastModDate:f,lastAccessDate:R,creationDate:p};Object.assign(t,l),Object.assign(e,l,{rawLastAccessDate:a,rawCreationDate:c})}}function Uf(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 Ff(t,e,r){try{let n=L(t.data),s,i;if(r){let o=0,a=kt(n,o++),c=kt(n,o++);s=Mf(t.data.subarray(o,o+c)),o+=c;let f=kt(n,o++);i=Mf(t.data.subarray(o,o+f)),Object.assign(t,{version:a,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 Mf(t){let e=new Uint8Array(4);return e.set(t,0),new DataView(e.buffer,e.byteOffset,4).getUint32(0,!0)}function Mp(t,e,r){if(!t.data.length)return;let n=L(t.data),s=kt(n,0),i=[],o=[];r?((s&1)==1&&(i.push(sr),o.push(Or)),(s&2)==2&&(i.push(_n),o.push(bo)),(s&4)==4&&(i.push(Tn),o.push(No))):t.data.length>=5&&(i.push(sr),o.push(Or));let a=1;i.forEach((c,f)=>{if(t.data.length>=a+4){let R=v(n,a);e[c]=t[c]=new Date((R|0)*1e3);let p=o[f];t[p]=R}a+=4})}async function vp({reader:t,fileEntry:e,index:r,offset:n,crc32:s,compressedSize:i,uncompressedSize:o,dataOffset:a,dataDescriptor:c,extraFieldZip64:f,readRanges:R}){let p=0;if(c&&(f?p=20:p=12),p){let E=await re(t,a+i,p+4),u=L(E),g=E.length==p+4&&v(u,0)==134695760;if(g){let _=vf(u,4,f);(e.encrypted&&!e.zipCrypto||_.crc32==s)&&_.compressedSize==i&&_.uncompressedSize==o?p+=4:g=!1}if(E.length>=p){let _=vf(u,g?4:0,f);_.signature=g,e.localDirectory.dataDescriptor=_}}let l={start:n,end:a+i+p,fileEntry:e},{indexes:h,sortedRanges:m,pendingRanges:d}=R;if(!h.has(r)){let E=kp(m,l)||d.find(u=>Ko(l,u));if(E){let u=new Error(ua);throw u.overlappingEntry=E.fileEntry,u}h.add(r),d.push(l),d.length*d.length>m.length&&(d.sort((u,g)=>u.start-g.start),R.sortedRanges=zp(m,d),d.length=0)}}function kp(t,e){let r=0,n=t.length;for(;r<n;){let o=r+n>>>1;t[o].start<e.start?r=o+1:n=o}let s=t[r-1],i=t[r];if(s&&Ko(e,s))return s;if(i&&Ko(e,i))return i}function Ko(t,e){return t.start<e.end&&e.start<t.end}function zp(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 vf(t,e,r){let n=v(t,e),s,i;return r?(s=Le(t,e+4),i=Le(t,e+12)):(s=v(t,e+4),i=v(t,e+8)),{crc32:n,compressedSize:s,uncompressedSize:i}}function xr(t,e){return t.getDiskOffset?t.getDiskOffset(e):0}async function Bp(t){return await Vf(t)==134695760}async function Hp(t){let e=await Vf(t);return e==134695760||e==808471376}async function Vf(t){let e=await re(t,0,4);return v(L(e))}function Xf(t){return t===Dt||t===is||t===at}function Yp(t,e,r){return Math.min(t,r?e*Dp:e)}function La(t,e){return kf(t,kf(e,is))}function kf(t,e){let r=t[Hc];if(r!==w){if(!Xf(r))throw new Error(ha);return r}let n=t[yc];return n===w?e:n?Dt:e==at?at:is}function Wp(t,e){return t===w?e!=at:!!t}function Gp(t,e){return t===w?e==Dt:!!t}function Vp(t,e){if(t===w)return e;if(!Xf(t))throw new Error(ga);return t}function Xp(t,e){if(e==at)return!1;let r=t.split("/");return r.length>1&&r[r.length-1]===""&&r.pop(),Sp.test(t)||t.startsWith("/")||t.startsWith("\\\\")||yp.test(t)?!0:e==Dt&&(r.includes(".")||r.includes("")||t.includes("\\0"))}function Zf(t,e){if(t!==w){let r=Pt(t);if(typeof r!=pc||Number.isNaN(r)||r<0)throw new Error(Ra);return r}return e==Dt?0:e==at?1/0:65535}async function jf(t,e,r){let{size:n}=t,s=Math.min(n,65557),i={remaining:Op},o,a,c=0;for await(let[f,R,p,l,h]of Kf(t,s)){let m=V(f,l+20);if(h+22+m==n){let d=await qf(t,f,R,l,h,n,i);if(d==Js){if(o||(o=qo(p,l,h)),c++,!e||c>1)break}else d==Ca&&!a&&(a=qo(p,l,h))}}return o||(o=a),o||(o=await Zp(t,r,i)),{endOfDirectoryInfo:o,endOfDirectoryReachingEndCount:c}}async function Zp(t,e,r){let{size:n}=t,s=Math.min(n,e==1/0?n:65557+e),i,o;for await(let[a,c,f,R,p]of Kf(t,s)){let l=qo(f,R,p);i||(i=l);let h=await qf(t,a,c,R,p,n,r);if(h==Js)return l;h==Ca&&!o&&(o=l)}return o||i}async function*Kf(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 qo(t,e,r){return{offset:r,buffer:new Uint8Array(t.subarray(e,e+22)).buffer}}async function qf(t,e,r,n,s,i,o){let a=V(e,n+10),c=v(e,n+12),f=v(e,n+16);if(a==65535||c==4294967295||f==4294967295)return await zf(t,e,r,s-20,i,o)==117853008?Js:xf;if(!a&&!c)return Ca;let R=V(e,n+6);for(let p of[s-c,xr(t,R)+f])if(await zf(t,e,r,p,i,o)==33639248)return Js;return xf}async function zf(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 o=await re(t,n,4);return v(L(o),0)}return w}function jp(t,e,r,n,s){let{rawFilename:i}=t,o=!s,a=t.decryptedDirectory&&(e.rawBitFlag&8192)==8192;n&&!a&&(r.length!=i.length||r.some((c,f)=>c!=i[f]))&&tt(o,s,Oa),(e.rawBitFlag&Df)!=(t.rawBitFlag&Df)&&tt(o,s,Da),e.compressionMethod!=t.compressionMethod&&tt(o,s,Pa),!e.bitFlag.dataDescriptor&&!a&&(e.crc32||e.compressedSize||e.uncompressedSize)&&(e.crc32!=t.crc32||e.compressedSize!=t.compressedSize||e.uncompressedSize!=t.uncompressedSize)&&tt(o,s,xa)}function tt(t,e,r){t?Gs(r):Te(e,r)}function Gs(t){let e=new Error(Ea);throw e.reason=t,e}function oe(t,e,r){return e[r]===w?t.options[r]:e[r]}function Bf(t,e,r){return pr(oe(t,e,r))}function Kp(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<Ot?Ot:n}function Zo(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function kt(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 Le(t,e){let r=t.getBigUint64(e,!0);if(r>Np)throw new Error(wa);return Number(r)}var Dr,oa,aa,ca,la,fa,ai,Xs,Zs,ua,da,Ea,pa,ma,ha,ga,Ra,wa,_a,Ta,Aa,ci,ya,js,Ks,qs,Sa,Ia,ba,Pr,Na,Oa,Da,Pa,xa,Ap,yp,Sp,Nf,Ip,Of,Df,Hf,bp,Pf,Np,Op,Dp,xf,Ca,Js,zt,Qs,jo,li=ie(()=>{ue();Ge();Jt();vs();dn();uo();Ct();mo();Kt();jt();en();Ws();gr();Dr="File format is not recognized",oa="End of central directory not found",aa="End of Zip64 central directory locator not found",ca="Central directory header not found",la="Local file header not found",fa="Zip64 extra field not found",ai="File contains encrypted entry",Xs="Encryption method not supported",Zs="Split zip file",ua="Overlapping entry found",da="Entry data out of bounds",Ea="Ambiguous archive",pa="Encrypted central directory is not supported",ma="Unsafe filename",ha="Invalid strictness (must be \'strict\', \'balanced\' or \'tolerant\')",ga="Invalid filenameValidation (must be \'strict\', \'balanced\' or \'tolerant\')",Ra="Invalid maxAppendedDataSize (must be a number greater than or equal to 0)",wa="64-bit value exceeds Number.MAX_SAFE_INTEGER",_a="unsorted central directory",Ta="unknown version needed to extract",Aa="compressed patched data",ci="malformed extra field",ya="unknown zip64 extensible data",js="wrapped entries count",Ks="appended data",qs="prepended data",Sa="prepended central directory",Ia="trailing central directory data",ba="duplicate filename",Pr="mismatched zip64 end of central directory record",Na="multiple end of central directory records",Oa="mismatched local file header (filename)",Da="mismatched local file header (general purpose bit flag)",Pa="mismatched local file header (compression method)",xa="mismatched local file header (crc32 or sizes)",Ap=63,yp=/^[a-zA-Z]:/,Sp=/(^|[\\\\/])\\.\\.([\\\\/]|$)/,Nf="utf-8",Ip="UTF8",Of="cp437",Df=2057,Hf=1,bp=[[wn,4294967295],[yo,4294967295],[So,4294967295],[Io,65535]],Pf={65535:{getValue:v,bytes:4},4294967295:{getValue:Le,bytes:8}},Np=BigInt(Number.MAX_SAFE_INTEGER),Op=64,Dp=1032,xf=0,Ca=1,Js=2,zt=class{constructor(e,r={}){Object.assign(this,{reader:new mt(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 $e(await ut(n.readable)),await ge(n)),n.size<22)throw new Error(Dr);let s=r.warnings=[],i=La(e,r.options),o=i==Dt,a=i!=at,c=Zf(oe(r,e,Ui),i),f=Vp(oe(r,e,Yc),i),R=oe(r,e,Wc),{endOfDirectoryInfo:p,endOfDirectoryReachingEndCount:l}=await jf(n,a,c);if(!p)throw await Bp(n)?new Error(Zs):new Error(oa);a&&l>1&&Gs(Na);let h=L(p),m=v(h,12),d=v(h,16),E=p.offset,u=V(h,20),g=E+22+u,_=n.size-g;_>c&&Gs(Ks),_>0&&Te(s,Ks);let A=V(h,4),T=n.lastDiskNumber||0,y=V(h,6),S=V(h,10),I=0,N,U,H,q,$=56,j,W=d==4294967295||m==4294967295||S==65535||y==65535;if(d!=4294967295&&y!=65535&&(d+=xr(n,y)),W){let J=p.offset>=20?await re(n,p.offset-20,20):Z,b=L(J);if(J.length==20&&v(b,0)==117853008){d=xr(n,v(b,4))+Le(b,8);let Y=await re(n,d,56),Q=L(Y),pe=p.offset-20-56;if((Y.length<56||v(Q,0)!=101075792)&&d!=pe&&pe>=0){let xe=d;d=pe,d>xe&&(I=d-xe),Y=await re(n,d,56),Q=L(Y)}if(Y.length<56||v(Q,0)!=101075792)throw new Error(aa);if(H=!0,q=Le(Q,4)>44,q){let xe=Math.min(Le(Q,4)-44,n.size-d-56);if(xe>0){$+=xe;let Ke=await re(n,d+56,xe);j=Cp(Ke)}}A==65535?A=v(Q,16):A!=v(Q,16)&&tt(o,s,Pr),y==65535?y=v(Q,20):y!=v(Q,20)&&tt(o,s,Pr),S==65535?S=Le(Q,32):S!=Le(Q,32)&&tt(o,s,Pr),m==4294967295?m=Le(Q,40):m!=Le(Q,40)&&tt(o,s,Pr),d=xr(n,y)+Le(Q,48)+I}}let F=m,ne=p.offset-(H?$+20:0);if(d>=n.size&&(I=n.size-d-m-22,d=n.size-m-22),T!=A)throw new Error(Zs);if(d<0)throw new Error(Dr);let z=0,X=await re(n,d,m),M=L(X);if(m){if(X.length<4)throw new Error(Dr);let J=ne-m;if(d!=J&&y==A){let b=v(M,z)==33639248||!!(j&&j.compressedSize)||Vo(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=d;d=J,d>Q&&(I+=d-Q,N=b),X=await re(n,d,m),M=L(X)}}}let G=ne-d;if(m!=G&&G>=0&&y==A&&(m=G,X=await re(n,d,m),M=L(X)),d<0||d>=n.size)throw new Error(Dr);r.directoryOffset=d,r.directoryLength=F;let Ee=Bf(r,e,Gc),me,it;if(Ee&&S&&X.length>=4&&v(M,0)!=33639248&&(q||Vo(M))){let J=xp(j,F,X.length);it=X.subarray(J),X=await Ee(X.subarray(0,J),j),M=L(X),F=X.length,me=!0}j&&!me&&(X.length<4||v(M,0)==33639248)&&Te(s,ya),U=d;let Me=oe(r,e,mc),ve=oe(r,e,hc),je=new Set,Ne,Oe=-1,De=!o&&!H;!S&&De&&(S=Cf(M,X,z),S&&Te(s,js));for(let J=0;J<S;J++){let b=new jo(n,r.options);if(z+46>X.length||v(M,z)!=33639248)throw J==0&&!me&&(q||Vo(M))?new Error(pa):new Error(ca);Wf(b,M,z+6);let Y=!!b.bitFlag.languageEncodingFlag,Q=z+46,xe=Q+b.filenameLength+b.extraFieldLength,Ke=V(M,z+4),Ht=Ke>>8==0,Wr=Ke>>8==3,Yt=V(M,z+32),Ye=xe+Yt,yt=new Uint8Array(X.subarray(Q,Ye)),ot=yt.subarray(0,b.filenameLength),de=yt.subarray(b.filenameLength+b.extraFieldLength),ye=Y||!Me&&fo(ot),Yn=Y||!ve&&fo(de),St=v(M,z+38),It=St&255,Wn={readOnly:!!(It&1),hidden:!!(It&2),system:!!(It&4),directory:!!(It&16),archive:!!(It&32)},Pi=v(M,z+42),Gr=Bf(r,e,gc)||fn,Wt=ye?Nf:Me||Of,bt=Yn?Nf:ve||Of,he=Gr(ot,Wt,ns);if(he===w&&(he=fn(ot,Wt)),R){let ze=R(he);ze!==w&&(he=ze)}if(Xp(he,f)){let ze=new Error(ma);throw ze.filename=he,ze}let Vr=Gr(de,bt,ss);Vr===w&&(Vr=fn(de,bt)),Object.assign(b,{index:J,decryptedDirectory:me,versionMadeBy:Ke,msDosCompatible:Ht,zip64:!1,compressedSize:0,uncompressedSize:0,commentLength:Yt,offset:Pi,diskNumberStart:V(M,z+34),internalFileAttributes:V(M,z+36),externalFileAttributes:St,msdosAttributesRaw:It,msdosAttributes:Wn,rawFilename:ot,filenameUTF8:ye,commentUTF8:Yn,rawExtraField:yt.subarray(b.filenameLength,b.filenameLength+b.extraFieldLength),rawComment:de,filename:he,comment:Vr}),Gf(b,b,M,z+6)&&Te(s,ci,he),b.offset+=I;let Gt=xr(n,b.diskNumberStart)+b.offset;U=Math.min(Gt,U),Gt<Oe&&Te(s,_a,he),Oe=Gt,(b.version&255)>Ap&&Te(s,Ta,he),(b.rawBitFlag&32)==32&&Te(s,Aa,he),je.has(b.filename)&&(Ne=!0),je.add(b.filename);let Nt=b.externalFileAttributes>>16&65535;b.unixMode===w&&(Nt&16877)!=0&&(b.unixMode=Nt);let Gn=!!(b.unixMode&2048),qe=!!(b.unixMode&1024),Vn=!!(b.unixMode&512),uc=((b.unixMode===w?Nt:b.unixMode)&61440)==40960,Hd=!uc&&(b.unixMode!==w?(b.unixMode&73)!=0:Wr&&(Nt&73)!=0),Yd=b.unixMode!==w&&(b.unixMode&61440)==16384,Wd=(Nt&61440)==16384;Object.assign(b,{setuid:Gn,setgid:qe,sticky:Vn,symlink:uc,unixExternalUpper:Nt,executable:Hd,directory:Yd||Wd||Ht&&Wn.directory||b.filename.endsWith("/"),zipCrypto:b.encrypted&&!b.extraFieldAES});let Xr=new ht(b);if(Xr.getData=(ze,Xn)=>b.getData(ze,Xr,r.readRanges,Xn),Xr.arrayBuffer=async ze=>{let Xn=new TransformStream,Ec=ut(Xn.readable).then(Gd=>Gd.arrayBuffer());return Ec.catch(()=>{}),await b.getData(Xn,Xr,r.readRanges,Object.assign({},ze,{preventClose:!1})),Ec},z=Ye,J==S-1&&De){let ze=Cf(M,X,z);ze&&(S+=ze,Te(s,js))}let{onprogress:dc}=e;if(dc)try{await dc(J+1,S,new ht(b))}catch{}yield Xr}let ae=z,Pe=Xo(X.subarray(z))||(me?Xo(it):w);if(!Pe&&!me){let J=d+z,b=Math.min(ne-J,65541);b>=6&&(Pe=Xo(await re(n,J,b)))}Pe&&(r.digitalSignature=Pe,ae=z+6+Pe.length),(z!=F&&ae!=F||!me&&z!=m&&ae!=m)&&tt(o,s,Ia),Ne&&tt(o,s,ba);let ke=oe(r,e,Rc),fe=oe(r,e,wc),te=(o||ke)&&S&&U==4&&await Hp(n)?4:0;return o&&(I||S&&U>te)&&Gs(qs),(I||S&&U>4)&&Te(s,qs),N&&Te(s,Sa),ke&&(r.prependedData=U>te?await re(n,te,U-te):Z),r.comment=u?await re(n,E+22,u):Z,fe&&(r.appendedData=g<n.size?await re(n,g,n.size-g):Z),!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()}[jn](){return this.close()}},Qs=class{constructor(e={}){let r,{readable:n,writable:s}=new TransformStream({start(c){r=c}}),i=new zt(n,e),o=i.getEntriesGenerator(),a=new Set;this.readable=new ReadableStream({async pull(c){let{done:f,value:R}=await o.next();if(f)return c.close();let p=Pp(R,a),l={...R,readable:p.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(a);a.clear(),r.error(c),await Promise.allSettled(f.map(R=>R.cancel(c))),await Promise.allSettled([o.return(),i.close()])}}),this.writable=s}};jo=class{constructor(e,r){Object.assign(this,{reader:e,options:r})}async getData(e,r,n,s={}){let i=this,o=ct(),{reader:a,index:c,offset:f,diskNumberStart:R,extraFieldAES:p,extraFieldZip64:l,compressionMethod:h,bitFlag:m,rawBitFlag:d,crc32:E,rawLastModDate:u,uncompressedSize:g,compressedSize:_}=i,{dataDescriptor:A}=m,T=r.localDirectory={},y=r.warnings=[],S=xr(a,R)+f,I=await re(a,S,30),N=L(I),U=oe(i,s,Kn),H=oe(i,s,qn),q=mr(oe(i,s,jr)),$=!!q,j=q===!0;if(os(U,H),U=U&&U.length?U:w,H=H&&H.length?H:w,p&&p.originalCompressionMethod!=99)throw new Error(dt);if(I.length<30||v(N,0)!=67324752)throw new Error(la);Wf(T,N,4);let{extraFieldLength:W,filenameLength:F}=T,ne=T.dataOffset=S+30+F+W,z=oe(i,s,Sc),X=La(s,i.options),M=Wp(z,X),G=oe(i,s,Ic),Ee=Gp(G===w?z:G,X),me=Z;if(Ee&&(F||W)){let de=await re(a,S+30,F+W);me=de.subarray(0,F),T.rawExtraField=de.subarray(F)}else T.rawExtraField=W?await re(a,S+30+F,W):Z;Ee&&(T.rawFilename=me),Gf(i,T,N,4,!0)&&Te(y,ci),jp(i,T,me,Ee,M?w:y);let{lastAccessDate:it,creationDate:Me,uid:ve,gid:je}=T;it&&(r.lastAccessDate=it),Me&&(r.creationDate=Me),ve!==w&&r.uid===w&&(r.uid=ve),je!==w&&r.gid===w&&(r.gid=je);let Ne=oe(i,s,_c),Oe=i.encrypted&&T.encrypted&&(!j||Ne),De=Oe&&!p;if(j||(r.zipCrypto=De),Oe&&(T.rawBitFlag&64)==64)throw new Error(Xs);let ae=$?w:gs(h);if(h!=0&&h!=8&&h!=9&&!ae&&!$)throw new Error(dt);if(Oe){if(!De&&(p.strength<1||p.strength>3))throw new Error(Xs);if(!U&&!H)throw new Error(ai)}if(ne+_>a.size)throw new Error(da);let Pe=_,ke=Jr(oe(i,s,Jn));Zt(ke);let fe=oe(i,s,Ac),te=oe(i,s,Tc);te&&(fe=!0);let{onstart:J,onprogress:b,onend:Y}=s,Q=h!=0&&!$,pe=$?_-yn(Oe,De,p&&p.strength):g,xe=h==9,Ke=oe(i,s,$n);xe&&(Ke=!1);let Ht=oe(i,s,Nc),Wr=(Ht===w?oe(i,s,bc):Ht)&&!$&&(!Oe||De||p&&p.vendorVersion==Hf),Yt={options:{codecType:Ns,password:U,rawPassword:H,zipCrypto:De,encryptionStrength:p&&p.strength,checkCrc32:Wr,checkAuthenticationCode:oe(i,s,Oc),passwordVerification:De&&(A?u>>>8&255:E>>>24&255),outputSize:pe,crc32:E,compressed:Q,encrypted:Oe,useWebWorkers:oe(i,s,Qn),useCompressionStream:Ke,transferStreams:oe(i,s,es),deflate64:xe,format:ae?ae.format:w,codecURI:ae?ae.codecURI:w,compressionMethod:h,rawBitFlag:d,checkPasswordOnly:Ne},config:o,streamOptions:{signal:ke,size:Pe,onstart:J,onprogress:b,onend:Y}};fe&&await vp({reader:a,fileEntry:r,index:c,offset:S,crc32:E,compressedSize:_,uncompressedSize:g,dataOffset:ne,dataDescriptor:A||T.bitFlag.dataDescriptor,extraFieldZip64:l||T.extraFieldZip64,readRanges:n});let Ye,yt,ot;try{if(!te){Ne&&(e=new WritableStream),e=new br(e),await ge(e,Yp(pe,_,Q)),{writable:Ye}=e;let de=He(a.createReadable({offset:ne,size:Pe})),{outputSize:ye}=await Ms({readable:de,writable:Ye},Yt);if(Zt(ke),ye!=pe)throw Object.assign(new Error(Qe),{outputSize:ye});e.size+=ye}}catch(de){let{outputSize:ye}=Yt;if(ye!==w?e.size+=ye:Re(de)&&de.outputSize!==w&&(e.size+=de.outputSize),!Ne||!Re(de)||de.message!=ft)throw yt=de,ot=!0,de}finally{if(!(!un(e)&&oe(i,s,ts))&&Ye&&!Ye.locked){let ye=Ye.getWriter();if(ot)try{await ye.abort(yt)}catch{}else await ye.close()}}return Ne||te?w:e.getData?e.getData():Ye}}});Ge();var as=new Uint8Array(288);as.fill(8,0,144),as.fill(9,144,256),as.fill(7,256,280),as.fill(8,280,288),new Uint8Array(30).fill(5);var lt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fl=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&&gt(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)})});\n`;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="",o=s.length,a=0;for(;a+2<o;a+=3){let f=s[a]<<16|s[a+1]<<8|s[a+2];i+=lt[f>>18&63]+lt[f>>12&63]+lt[f>>6&63]+lt[63&f]}let c=o-a;if(c===1){let f=s[a]<<16;i+=lt[f>>18&63]+lt[f>>12&63]+"=="}else if(c===2){let f=s[a]<<16|s[a+1]<<8;i+=lt[f>>18&63]+lt[f>>12&63]+lt[f>>6&63]+"="}return i})(n)}});Ge();ue();Ct();jt();Os();Sr();var of={type:"module"},io="error",FE="messageerror",af="abort",cf,so,lf,oo=!0;try{oo=typeof structuredClone==K&&structuredClone(new DOMException("","AbortError")).code!==w}catch{}rf(ME);function ME(t,e){let{baseURI:r,chunkSize:n,workerStartupTimeout:s}=e,{wasmURI:i}=e;if(!t.interface){typeof i==K&&(i=i());let o;try{o=Ls(t.workerURI,r,t)}catch{return ro(t),no(t,e)}Object.assign(t,{worker:o,workerAlive:!1,terminated:!1,startupError:null,interface:{run:async()=>{try{return await vE(t,{chunkSize:n,wasmURI:i,baseURI:r,workerStartupTimeout:s})}catch(a){if(a&&a.workerStartupFailed)return ro(t),ff(t),Cs(t,e);if(a&&a.codecImportFailed){if(t.reader)return ff(t),Cs(t,e);t.onTaskFinished()}throw a}}}})}return t.interface}async function vE(t,e){if(!t.worker){let{startupError:h}=t;t.startupError=null;let m=h||new Error(er);throw m.workerStartupFailed=!0,m}let r,n,s=new Promise((h,m)=>{r=h,n=d=>{let{outputSize:E,workerOptions:u}=t;if(u.outputSize=E,Re(d))try{d.outputSize=E}catch{}m(d)}});Object.assign(t,{reader:null,writer:null,outputSize:0,destinationFailed:!1,destinationError:null,resolveResult:r,rejectResult:n,result:s});let{readable:i,options:o}=t,{writable:a,closed:c,abortPipe:f}=kE(t.writable,t),R;try{R=ao({type:ql,options:o,config:e,readable:i,writable:a},t)}catch(h){f();try{await c}catch{}throw t.onTaskFinished(),h}R||Object.assign(t,{reader:i.getReader(),writer:a.getWriter()});let{workerStartupTimeout:p}=e;!t.workerAlive&&Number.isFinite(p)&&p>=0&&(t.startupTimeout=setTimeout(()=>zE(t),p));try{let h=await s;return await l(),await c,h}catch(h){await l(),f();try{await c}catch{}let{outputSize:m,workerOptions:d,destinationFailed:E,destinationError:u}=t;d.outputSize=m;let g=Re(h)&&(h.codecImportFailed||h.workerStartupFailed),_=E&&!g?u:h;if(Re(_))try{_.outputSize=m}catch{}throw _}async function l(){if(!R&&!a.locked)try{await a.getWriter().close()}catch{}}}function kE(t,e){let r=new AbortController,n,{writable:s,readable:i}=new TransformStream({transform(c,f){e.outputSize+=c.length,f.enqueue(c)}}),o=i.pipeTo(t,{preventClose:!0,preventAbort:!0,signal:r.signal});o.catch(c=>{n||Object.assign(e,{destinationFailed:!0,destinationError:c})});let{signal:a}=e.workerOptions.streamOptions;if(a){let c=()=>r.abort(a.reason),f=()=>a.removeEventListener(af,c);a.addEventListener(af,c),o.then(f,f)}return{writable:s,closed:o,abortPipe:()=>{n=!0,r.abort()}}}function ff(t){let{reader:e}=t;e&&e.releaseLock(),t.reader=null,t.writer=null}function co(t){let{worker:e}=t;if(e)try{e.terminate()}catch{}t.interface=null}function Ls(t,e,r,n,s=!0){let{createWorker:i}=r,o,a,c;if(i)o=i();else if(so===w||cf!==t){let f=typeof t==K;f?a=t(s):a=t;let R=a.startsWith("data:"),p=a.startsWith("blob:");if(R||p){n===w&&(n=!1),n&&(c=of);try{o=new Worker(a,c)}catch(l){if(p)try{URL.revokeObjectURL(a)}catch{}if(f&&p)return Ls(t,e,r,n,!1);if(n)throw l;return Ls(t,e,r,!0,!1)}}else{n===w&&(n=!0),n&&(c=of);try{a=new URL(a,e)}catch{}try{o=new Worker(a,c)}catch(l){if(n)return Ls(t,e,r,!1,s);throw l}}cf=t,so=a,lf=c}else o=new Worker(so,lf);return o.addEventListener(Kl,f=>{r.workerAlive=!0,df(r),BE(f,r)}),o.addEventListener(io,f=>uf(f,r)),o.addEventListener(FE,f=>uf(f,r)),o}function zE(t){if(t.startupTimeout=null,t.workerAlive)return;let{rejectResult:e,writer:r}=t;if(co(t),t.worker=null,e){let n=new Error(er);n.workerStartupFailed=!0,e(n),r&&r.releaseLock()}}function df(t){let{startupTimeout:e}=t;e&&(clearTimeout(e),t.startupTimeout=null)}function uf(t,e){t.preventDefault&&t.preventDefault(),df(e);let{workerAlive:r,rejectResult:n,writer:s,onTaskFinished:i}=e;co(e),r||(e.worker=null);let o=t.error||new Error(t.message||io);r||(o=Object.assign(new Error(o.message||io),{workerStartupFailed:!0}),e.startupError=o),n&&(n(o),s&&s.releaseLock(),r&&i())}function ao(t,{worker:e,writer:r,transferStreams:n,workerAlive:s}){try{let{value:i,readable:o,writable:a}=t,c=[];if(i&&(t.value=cs(i),c.push(t.value.buffer)),n&&oo&&s?(o&&c.push(o),a&&c.push(a)):t.readable=t.writable=null,c.length)try{return e.postMessage(t,c),!0}catch{oo=!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:o,errorValue:a}=t,{reader:c,writer:f,resolveResult:R,rejectResult:p,onTaskFinished:l,generation:h}=e,m=()=>e.generation!=h;try{if(o)d(HE(o,a));else{if(r==Jl){let{value:g,done:_}=await c.read();m()||ao({type:$i,value:g,done:_,messageId:s},e)}if(r==$i){let g=new Uint8Array(n);await f.ready,await f.write(g),m()||ao({type:Ql,messageId:s},e)}r==$l&&E(i)}}catch(g){m()||(co(e),d(g))}function d(g){m()||(p(g),u(),Re(g)&&g.codecImportFailed||l())}function E(g){m()||(R(g),u(),l())}function u(){f&&f.releaseLock()}}function HE(t,e){let{message:r,stack:n,code:s,name:i,outputSize:o,cause:a,codecImportFailed:c}=t,f;if(e?f=e.value:f=Object.assign(new Error(r),{stack:n,code:s,name:i}),Re(f))try{o!==w&&(f.outputSize=o),c&&(f.codecImportFailed=!0),a&&!Re(f.cause)&&(f.cause=Object.assign(new Error(a.message),{name:a.name})),e&&(f.name!==i&&(f.name=i),f.code!==s&&(f.code=s))}catch{}return f}li();ue();Ge();Jt();Sr();vs();dn();Hi();Ct();mo();Kt();jt();Ws();gr();var Wa="File already exists",Ga="Zip file comment exceeds 64KB",du="Invalid zip file comment (must be a Uint8Array)",Eu="File entry comment exceeds 64KB",pu="Invalid file entry comment (must be a string)",mu="Invalid date (must be a valid Date instance)",hu="File entry name exceeds 64KB",Va="Version exceeds 65535",gu="The strength must equal 1, 2, or 3",Ru="Encryption is not supported in USDZ files",wu="Split zip files are not supported in USDZ files",_u="Encryption is not supported when the \'passThrough\' option is set to true (use \'compressed\' instead)",Tu="Invalid extra field (must be a Map)",Au="Invalid extra field type (must be integer 0..65535)",yu="Invalid extra field data (must be a Uint8Array)",gi="Extra field data exceeds 64KB",Su=-2147483648,Iu=2147483647,tu=BigInt(0),ru=BigInt("0x7fffffffffffffff"),Ri="Zip64 is not supported (set the \'zip64\' option to \'true\')",bu="Undefined uncompressed size",Nu="Undefined compression method",Ou="Undefined CRC32";var Du="Undefined reader",Pu="Invalid reader (must be a Reader instance, a ReadableStream instance, or an object with a \'readable\' property)",xu="Zip file not empty",Cu="Invalid uid (must be integer 0..2^32-1)",Lu="Invalid gid (must be integer 0..2^32-1)",Uu="Invalid UNIX mode (must be integer 0..65535)",Fu="Invalid unixExtraFieldType (must be \'infozip\' or \'unix\')",Mu="uid/gid must be 0..65535 for unixExtraFieldType \'unix\' (use \'infozip\' for larger ids)",vu="Invalid msdosAttributesRaw (must be integer 0..255)",ku="Invalid msdosAttributes (must be an object with boolean flags)",zu="Invalid level (must be integer 0..9)",Bu="Signature data exceeds 64KB",Hu="Invalid entry option (must be an entry returned by ZipReader#getEntries())",Yu="The last modification date of an entry encrypted with ZipCrypto cannot be changed when passThrough is set",Wu="compression unavailable",Gu="clamped last modification date",nu=new Uint8Array([7,0,2,0,65,69,3,0,0]),om=4,am=9,cm=67,lm=32,fm=126,um=1,Ei="infozip",pi="unix",dm=[8,9,5,3],Em=9,Ua=0,su=[],mi=class{constructor(e,r={}){e=new br(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(wu);Object.assign(this,{writer:e,addSplitZipSignature:i,options:r,fileEntries:new Map,filenames:new Set,offset:r[Kr]===w?e.size||e.writable.size||0:r[Kr],initialOffset:r[Kr]===w?0:r[Kr]-(e.size||e.writable.size||0),pendingAddFileCalls:new Set,pendingErrors:[],warnings:[],bufferedWrites:0,directWrites:0,lastFileEntry:w,archiveClosed:!1})}prependZip(e){return Fa(this,pm(this,e))}appendZip(e){return Fa(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 o,a=new Promise(R=>o=R);n.add(a);let c=[],f;try{e=new mt(e),await ge(e),(e.size===w||!e.readUint8Array)&&(e=new $e(await ut(e.readable)),await ge(e));let{ZipReader:R}=await Promise.resolve().then(()=>(li(),Jf)),p=new R(e),l=await p.getEntries();await p.close(),await ge(r.writer);let{directoryOffset:h}=p;l.forEach(({filename:E})=>{if(s.has(E))throw new Error(Wa);s.add(E),c.push(E)}),r.writerLocked=!0;let{lockWriter:m}=r;r.lockWriter=new Promise(E=>f=()=>{r.writerLocked=!1,E()}),await m,r.addSplitZipSignature&&(delete r.addSplitZipSignature,await Um(e)||(await nt(r.writer,Zu()),r.offset+=4));let d=await Fm(r,e,l,h);l.forEach(E=>{let{version:u,rawLastModDate:g,rawFilename:_,bitFlag:A,encrypted:T,uncompressedSize:y,compressedSize:S,extraFieldZip64:I}=E,{compressionMethod:N,rawExtraField:U}=E,{level:H,languageEncodingFlag:q,dataDescriptor:$}=A;U=Xu(U||Z),E.extraFieldAES&&(N=99);let j=B(U),W=!!I&&I.uncompressedSize!==w,F=!!I&&I.compressedSize!==w,ne=qu(H,q,$,T,N)&-7|H<<1,{headerArray:z,headerView:X}=Ku({version:u,bitFlag:ne,compressionMethod:N,uncompressedSize:y,compressedSize:S,rawLastModDate:g,rawFilename:_,zip64CompressedSize:F,zip64UncompressedSize:W,extraFieldLength:j}),{crc32:M}=E;M!==w&&_e(X,10,M);let{offset:G,diskNumberStart:Ee}=d.get(E);Object.assign(E,{zip64Enabled:!0,zip64UncompressedSize:W,zip64CompressedSize:F,offset:G,diskNumberStart:Ee,zip64DiskNumberStart:!1,rawExtraFieldZip64:Z,rawExtraFieldAES:Z,rawExtraFieldExtendedTimestamp:Z,rawExtraFieldNTFS:Z,rawExtraFieldUnix:Z,rawExtraField:U,rawCentralExtraField:Z,headerArray:z,headerView:X}),i.set(E.filename,E)})}catch(R){throw c.forEach(p=>s.delete(p)),R}finally{o(),n.delete(a),f&&f()}}add(e="",r,n={}){let s=this,{pendingAddFileCalls:i}=s,o=mm(s,e,r,n);i.add(o);let a=()=>i.delete(o);return Promise.prototype.then.call(o,a,a),Fa(s,o)}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=Z,r={}){let n=this,{pendingAddFileCalls:s,writer:i}=this,{writable:o}=i;if(n.archiveClosed)return iu(i);if(!(e instanceof Uint8Array))throw new Error(du);if(B(e)>65535)throw new Error(Ga);for(;s.size;)await Promise.allSettled(Array.from(s));await Promise.allSettled(n.pendingErrors.map(f=>f.recorded));let a=n.pendingErrors.filter(f=>f.failed&&!f.observed);if(a.length){let f=a.map(p=>p.error);a.forEach(p=>p.observed=!0);let[R]=f;try{R.entryErrors=f}catch{}throw R}return await Dm(n,e,r),n.archiveClosed=!0,!un(i)&&k(n,r,ts)||await o.getWriter().close(),iu(i)}[jn](){return this.close()}};var Ba=class extends Promise{then(e,r){let{watcher:n}=this;return n&&(n.observed=!0),super.then(e,r)}};function iu(t){return t.getData?t.getData():t.writable}function Fa(t,e){let r=new Ba((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 pm(t,e){if(t.filenames.size)throw new Error(xu);await t.appendZipEntries(e)}async function mm(t,e,r,n){n=Object.assign({},n);let s=n[Fi];if(s!==w){let{entryOptions:i,passThroughOptions:o}=Vu(s,mr(k(t,n,jr)),k(t,n,sr));delete n[Fi],n=Object.assign(i,o,n)}if(k(t,n,ir)&&!e.endsWith("/")&&(e+="/"),t.filenames.has(e))throw new Error(Wa);t.filenames.add(e),Ua<ct().maxWorkers?Ua++:await new Promise(i=>su.push(i));try{return await hm(t,e,r,n)}catch(i){throw t.filenames.delete(e),i}finally{let i=su.shift();i?i():Ua--}}async function hm(t,e,r,n){let s=Rm(t,e,n);({name:e}=s);let i=wm(t,e,n),{comment:o}=i,a=n[An];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 p;try{let{resolvedOptions:l}=i;l.level!=0&&l.compressionMethod===w&&!l.passThroughCompression&&!await nf(ct())&&(l.level=0,Te(t.warnings,Wu,e));let h=await _m(t,r,i,n);({reader:r}=h);let m=Pn(t.writer),d=wt(t.writer),E=n.crc32===w?n[Ys]:n.crc32,u=h.resolvedOptions.encrypted&&!l.zipCrypto;if(l.passThroughCompression&&!l.passThroughEncryption&&u&&(E=w),l.passThroughCompression&&r&&!u&&E===w)throw new Error(Ou);n=Object.assign({},n,s.resolvedOptions,i.resolvedOptions,h.resolvedOptions,{signature:n[Ys],crc32:E,offset:t.offset-m,diskNumberStart:d,[Xt]:t.options[Xt]});let g=Sm(n);g.lastModDateClamped&&Te(t.warnings,Gu,e);let _=bm(n),A=B(g.localHeaderArray,_.dataDescriptorArray);p=await Am(t,e,r,{headerInfo:g,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(p,{name:e,comment:o,extraField:a}),new ht(p)}function Vu(t,e,r){if(t===null||typeof t!=Zn||Array.isArray(t))throw new Error(Hu);let{externalFileAttributes:n,versionMadeBy:s,comment:i,lastModDate:o,rawLastModDate:a,creationDate:c,lastAccessDate:f,uncompressedSize:R,encrypted:p,zipCrypto:l,crc32:h,compressionMethod:m,extraFieldAES:d,extraFieldUnix:E,internalFileAttributes:u,extraField:g,bitFlag:_,directory:A,uid:T,gid:y}=t,S={externalFileAttributes:n,versionMadeBy:s,comment:i,lastModDate:o,creationDate:c,lastAccessDate:f,internalFileAttributes:u,directory:A};_&&_.languageEncodingFlag&&(S[Ci]=!0);let I=yf(g);I&&(S[An]=I),(T!==w||y!==w)&&Object.assign(S,{uid:T,gid:y,unixExtraFieldType:E?pi:Ei});let N={};if(e&&!A){if(Object.assign(N,{uncompressedSize:R,crc32:h,compressionMethod:m}),e!==qr&&Object.assign(N,{encrypted:p,zipCrypto:l,encryptionStrength:d?d.strength:w}),_&&(N.dataDescriptor=_.dataDescriptor,N[rs]=dm[_.level]),r===w)N.rawLastModDate=a;else if(e!==qr&&l&&(!_||_.dataDescriptor)&&r instanceof Date&&gm(r)!=(a>>>8&255))throw new Error(Yu)}return{entryOptions:S,passThroughOptions:N}}function gm(t){let e=new Date(Math.ceil(Math.floor(t.getTime()/1e3)/2)*2e3);return e<Ot?e=Ot:e>Zr&&(e=Zr),(e.getHours()<<3|e.getMinutes()>>3)&255}function Rm(t,e,r){let n=k(t,r,Co),s=k(t,r,Fo,n?20:768),i=k(t,r,vo),o=vr(t,r,zo),a=vr(t,r,Bo),c=vr(t,r,Ho),f=k(t,r,kc),R=k(t,r,Yo),p=k(t,r,Wo),l=k(t,r,Go);if(hr(o,4294967295,Cu),hr(a,4294967295,Lu),hr(c,65535,Uu),f!==w&&f!==Ei&&f!==pi)throw new Error(Fu);if(f===pi&&(o!==w&&o>65535||a!==w&&a>65535))throw new Error(Mu);f===w&&(o!==w||a!==w)&&(f=Ei);let h=vr(t,r,Po),m=k(t,r,xo),d=o!==w||a!==w||c!==w||f||i,E=h!==w||m!==w;if(d?(n=!1,s=s&255|768):E&&(n=!0,s=s&255),hr(h,255,vu),m&&(typeof m!==Zn||Array.isArray(m)))throw new Error(ku);if(s>65535)throw new Error(Va);let u=k(t,r,Do),g=u!==w;g||(u=0),!r[ir]&&e.endsWith("/")&&(r[ir]=!0);let _=k(t,r,ir);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||l),S=u>>16&65535;c=c===w?S:c&65535,R?c|=2048:R=!!(c&2048),p?c|=1024:p=!!(c&1024),l?c|=512:l=!!(c&512),(!g||y)&&(_?c=c&-61441|16384:c&61440||(c|=32768),u=(c&65535)<<16|u&65535)}({msdosAttributesRaw:h,msdosAttributes:m}=Im(h,m)),E&&(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:o,gid:a,unixMode:c,unixExtraFieldType:f,symlink:T,setuid:R,setgid:p,sticky:l,msdosAttributesRaw:h,msdosAttributes:m}}}function wm(t,e,r){let n=Ha(t,r,vc)||Rr,s=n(e,ns);if(s===w&&(s=Rr(e)),B(s)>65535)throw new Error(hu);let i=r[Rn]||"";if(typeof i!=We)throw new Error(pu);let o=n(i,ss);if(o===w&&(o=Rr(i)),B(o)>65535)throw new Error(Eu);let a=k(t,r,Uo);if(a!==w&&a>65535)throw new Error(Va);let c=za(t,r,sr,new Date),f=k(t,r,Or),R=za(t,r,_n),p=za(t,r,Tn),l=k(t,r,Oo,0),h=mr(k(t,r,jr)),m=!!h,d=h===!0,E=k(t,r,Kn),u=k(t,r,qn);os(E,u),E=E&&E.length?E:w,u=u&&u.length?u:w;let g=vr(t,r,Dc,3),_=k(t,r,Mo),A=k(t,r,Pc,!0),T=k(t,r,xc),y=k(t,r,Cc,!0),S=k(t,r,Qn),I=k(t,r,es),N=k(t,r,Lc),U=Ha(t,r,Uc),H=k(t,r,Fc,!0),q=Jr(k(t,r,Jn));Zt(q);let $=k(t,r,Ci,!uu(s)||!uu(o)),j=k(t,r,ko),W=m||j===w?w:gs(j);if(!m&&j!==w&&j!==0&&j!==8&&!W)throw new Error(dt);let F=vr(t,r,rs);if(hr(F,Em,zu),t.options[Xt]){if(E!==w||u!==w)throw new Error(Ru);F===w&&j===w&&(F=0)}m&&(F=Pt(r[rs]));let ne=k(t,r,$n),z=k(t,r,Li);N&&z===w&&(z=!1),(z===w||_&&!d)&&(z=!0),F!==w&&F!=6&&(ne=!1);let X=k(t,r,Hs);if(!_&&(E!==w||u!==w)&&!(Number.isInteger(g)&&g>=1&&g<=3))throw new Error(gu);let M=Ma(r[An]),G=Ma(r[zc]),Ee=Ma(r[Bc]);return{comment:i,resolvedOptions:{rawFilename:s,rawComment:o,version:a,lastModDate:c,rawLastModDate:f,lastAccessDate:R,creationDate:p,internalFileAttributes:l,passThroughCompression:m,passThroughEncryption:d,password:E,rawPassword:u,encryptionStrength:g,zipCrypto:_,extendedTimestamp:A,ntfsTimestamp:T,keepOrder:y,useWebWorkers:S,transferStreams:I,bufferedWrite:N,createTempStream:U,dataDescriptorSignature:H,signal:q,useUnicodeFileNames:$,compressionMethod:j,format:W?W.format:w,codecURI:W?W.codecURI:w,codecVersionNeeded:W?W.versionNeeded:w,level:F,useCompressionStream:ne,dataDescriptor:z,zip64:X,rawExtraField:M,rawLocalExtraField:G,rawCentralExtraField:Ee}}}function Ma(t){if(!t)return Z;if(!(t instanceof Map))throw new Error(Tu);let e=0,r=0;t.forEach((i,o)=>{if(vi(o,65535,Au),!(i instanceof Uint8Array))throw new Error(yu);if(B(i)>65535)throw new Error(gi);e+=4+B(i)});let n=new Uint8Array(e),s=L(n);return t.forEach((i,o)=>{rt(s,r,o),rt(s,r+2,B(i)),Ln(n,i,r+4),r+=4+B(i)}),n}async function _m(t,e,{resolvedOptions:r},n){if(r.passThroughCompression&&!e&&!k(t,n,ir))throw new Error(Du);let s;if(e){if(e=new mt(e),await ge(e),!e.readable&&!e.readUint8Array)throw new Error(Pu);({size:s}=e)}return Object.assign({reader:e},Tm(t,!!e,s,r,n))}function Tm(t,e,r,n,s){let{passThroughCompression:i,passThroughEncryption:o,zipCrypto:a,password:c,rawPassword:f,encryptionStrength:R}=n,{dataDescriptor:p,zip64:l,level:h,compressionMethod:m}=n,d=0,E=0,u=!1;if(i&&e){if(E=s[wn],E===w)throw new Error(bu);if(m===w)throw new Error(Nu)}let g=l===!0,_=k(t,s,Lo);if(e&&o&&!_&&B(c,f))throw new Error(_u);let A=e&&(!!(c&&B(c)||f&&B(f))||o&&_);e||(h=0,m=0);let T=yn(A,a,R);e&&(i?(s.uncompressedSize=E,d=r===w?fu(E)+T:r+(o?0:T)):r===w?(p=!0,(l||l===w)&&(l=u=!0,d=4294967296)):(s.uncompressedSize=E=r,d=(Ya(m,h)?fu(E):E)+T));let y=!A&&(!e||r===0&&!i)&&!Ya(m,h);y&&k(t,s,Li)===w&&(p=!1);let S=g||u||E>=4294967295,I=g||d>=4294967295;if(S||I){if(l===!1)throw new Error(Ri);l=!0}return l=l||!1,{maximumCompressedSize:d,resolvedOptions:{dataDescriptor:p,emptyEntry:y,zip64:l,zip64Enabled:g,unknownSize:u,zip64UncompressedSize:S,zip64CompressedSize:I,uncompressedSize:E,level:h,compressionMethod:m,encrypted:A}}}async function Am(t,e,r,n,s){let{fileEntries:i,writer:o}=t,{keepOrder:a,dataDescriptor:c,emptyEntry:f,signal:R}=s,{headerInfo:p,fileEntry:l,previousFileEntry:h,releaseLockFileEntry:m}=n,d=t.options[Xt],E=l,u,g,_,A,T,y,S=0,I,N=a&&h?h.lockFileEntry:w;i.set(e,E);try{s.bufferedWrite||!a||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(o)):(g=!0,t.directWrites++,I=o,await N,await U()),await ge(I);let q=Pn(o);t.addSplitZipSignature&&!u&&await cu(t,o),d&&!u&&ou(n,t.offset-q);let{localHeaderArray:$}=p;u||await H();let j=wt(o),W=xn(t,o);if(E.diskNumberStart=j,u||(T=!0,y=o.size,await nt(I,$)),E=await ym(r,I,E,n,ct(),s),u||(T=!1),i.set(e,E),E.filename=e,u){if(await Promise.all([I.writable.getWriter().close(),N]),await U(),t.addSplitZipSignature&&await cu(t,o),A=!0,y=o.size,await H(),E.diskNumberStart=wt(o),E.offset=xn(t,o),d){let F=n.metadataSize;ou(n,t.offset-Pn(o)),E.size+=n.metadataSize-F}Om(E,p.localHeaderView,s),await nt(o,p.localHeaderArray),await ju(I.readable,o,R,F=>S+=F),o.size+=I.size,A=!1}else E.diskNumberStart=j,E.offset=W;return t.offset+=E.size,E}catch(q){if(A||T){if(t.hasCorruptedEntries=!0,q)try{q.corruptedEntry=!0}catch{}t.offset+=o.size-y,u&&(t.offset+=S)}throw i.delete(e),q}finally{if(u&&t.bufferedWrites--,g&&t.directWrites--,m&&m(N),_&&_(),u&&I&&I.dispose)try{await I.dispose()}catch{}}async function U(){t.writerLocked=!0;let{lockWriter:q}=t;t.lockWriter=new Promise($=>_=()=>{t.writerLocked=!1,$()}),await q}async function H(){kr(o,B(p.localHeaderArray))&&await o.closeDisk()}}async function ym(t,e,{diskNumberStart:r,lockFileEntry:n},s,i,o){let{headerInfo:a,dataDescriptorInfo:c,metadataSize:f}=s,{headerArray:R,headerView:p,lastModDate:l,rawLastModDate:h,encrypted:m,compressed:d,version:E,compressionMethod:u,rawExtraFieldZip64:g,localExtraFieldZip64Length:_,rawExtraFieldExtendedTimestamp:A,extraFieldExtendedTimestampFlag:T,extraFieldExtendedTimestampTime:y,rawExtraFieldNTFS:S,rawExtraFieldUnix:I,rawExtraFieldAES:N}=a,{dataDescriptorArray:U}=c,{rawFilename:H,lastAccessDate:q,creationDate:$,password:j,rawPassword:W,level:F,useUnicodeFileNames:ne,zip64:z,zip64Enabled:X,zip64UncompressedSize:M,zip64CompressedSize:G,zipCrypto:Ee,dataDescriptor:me,directory:it,executable:Me,versionMadeBy:ve,rawComment:je,rawExtraField:Ne,rawCentralExtraField:Oe,useWebWorkers:De,transferStreams:ae,onstart:Pe,onprogress:ke,onend:fe,signal:te,encryptionStrength:J,extendedTimestamp:b,msDosCompatible:Y,internalFileAttributes:Q,externalFileAttributes:pe,uid:xe,gid:Ke,unixMode:Ht,symlink:Wr,setuid:Yt,setgid:Ye,sticky:yt,unixExternalUpper:ot,msdosAttributesRaw:de,msdosAttributes:ye,useCompressionStream:Yn,passThroughCompression:St,passThroughEncryption:It,format:Wn,codecURI:Pi}=o,Gr={lockFileEntry:n,versionMadeBy:ve,zip64:z,zip64Enabled:X,directory:!!it,executable:!!Me,filenameUTF8:!!ne,rawFilename:H,commentUTF8:!!ne,rawComment:je,rawExtraFieldZip64:g,localExtraFieldZip64Length:_,rawExtraFieldExtendedTimestamp:A,rawExtraFieldNTFS:S,rawExtraFieldUnix:I,rawExtraFieldAES:N,rawExtraField:Ne,rawCentralExtraField:Oe,extendedTimestamp:b,msDosCompatible:Y,internalFileAttributes:Q,externalFileAttributes:pe,diskNumberStart:r,uid:xe,gid:Ke,unixMode:Ht,symlink:!!Wr,setuid:Yt,setgid:Ye,sticky:yt,unixExternalUpper:ot,msdosAttributesRaw:de,msdosAttributes:ye},{crc32:Wt,uncompressedSize:bt}=o,he=0;St||(bt=0);let{writable:Vr}=e;if(t){let Gt=t.size,Nt=He(po(t,{size:Gt})),Gn={options:{codecType:yr,inputSize:Gt,level:F,rawPassword:W,password:j,encryptionStrength:J,zipCrypto:m&&Ee,passwordVerification:m&&Ee&&h>>8&255,computeCrc32:!St,compressed:d&&!St,encrypted:m&&!It,useWebWorkers:De,useCompressionStream:Yn,transferStreams:ae,format:Wn,codecURI:Pi,compressionMethod:u},config:i,streamOptions:{signal:te,size:Gt,onstart:Pe,onprogress:ke,onend:fe}};try{let qe=await Ms({readable:Nt,writable:Vr},Gn);if(he=qe.outputSize,e.size+=he,Zt(te),St||(bt=qe.inputSize,(!m||Ee)&&(Wt=qe.crc32)),!G&&he>=4294967295||!M&&bt>=4294967295)throw new Error(Ri)}catch(qe){let{outputSize:Vn}=Gn;throw Vn!==w?e.size+=Vn:Re(qe)&&qe.outputSize!==w&&(e.size+=qe.outputSize),qe}}return Nm({crc32:Wt,compressedSize:he,uncompressedSize:bt,headerInfo:a,dataDescriptorInfo:c},o),me&&await nt(e,U),Object.assign(Gr,{uncompressedSize:bt,compressedSize:he,lastModDate:l,rawLastModDate:h,creationDate:$,lastAccessDate:q,encrypted:!!m,zipCrypto:!!Ee,size:f+he,compressionMethod:u,version:E,headerArray:R,headerView:p,signature:Wt,crc32:m&&!Ee&&!St?w:Wt,extraFieldExtendedTimestampFlag:T,extraFieldExtendedTimestampTime:y,zip64UncompressedSize:M,zip64CompressedSize:G}),Gr}function Sm(t){let{rawFilename:e,lastModDate:r,rawLastModDate:n,lastAccessDate:s,creationDate:i,level:o,zip64:a,zipCrypto:c,useUnicodeFileNames:f,dataDescriptor:R,directory:p,rawExtraField:l,rawLocalExtraField:h,encryptionStrength:m,extendedTimestamp:d,ntfsTimestamp:E,passThroughCompression:u,encrypted:g,zip64UncompressedSize:_,zip64CompressedSize:A,uncompressedSize:T,unknownSize:y,crc32:S}=t,{version:I,compressionMethod:N}=t,U=!p&&Ya(N,o),H,q=u||!U,$=a&&(t.bufferedWrite||!R||!_&&!A||q&&!y),j=$||a&&R&&(_||A);if(a&&(_||A)){let te=Ue(20);if(te.writeUint16(1),te.writeUint16(16),H=te.array,$&&(te.writeUint64(T),q)){let J=yn(g,c,m);te.writeUint64(u?0:T+J)}}else H=Z;let W;if(g&&!c){let fe=Ue(B(nu)+2);fe.writeUint16(39169),fe.writeBytes(nu),W=fe.array,W[8]=m}else W=Z;let F,ne,z,X;if(d){let fe=ui(r),te=vm(fe);if(te){let b=9+(s?4:0)+(i?4:0),Y=Ue(b);z=1+(s?2:0)+(i?4:0),X=fe,Y.writeUint16(21589),Y.writeUint16(b-4),Y.writeUint8(z),Y.writeUint32(fe),s&&Y.writeUint32(lu(ui(s))),i&&Y.writeUint32(lu(ui(i))),ne=Y.array}else ne=Z;if(E===w?!te||!!(s||i):E)try{let b=ka(r),Y=Ue(36);Y.writeUint16(10),Y.writeUint16(32),Y.skip(4),Y.writeUint16(1),Y.writeUint16(24),Y.writeUint64(b),Y.writeUint64(s?ka(s):b),Y.writeUint64(i?ka(i):b),F=Y.array}catch{F=Z}else F=Z}else F=ne=Z;let M;try{let{uid:fe,gid:te,unixExtraFieldType:J}=t;if(J==Ei&&(fe!==w||te!==w)){let b=au(fe===w?0:fe),Y=au(te===w?0:te),Q=3+b.length+Y.length,pe=Ue(4+Q);pe.writeUint16(30837),pe.writeUint16(Q),pe.writeUint8(1),pe.writeUint8(b.length),pe.writeBytes(b),pe.writeUint8(Y.length),pe.writeBytes(Y),M=pe.array}else if(J==pi&&(fe!==w||te!==w)){let b=Ue(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=Z}catch{M=Z}N===w&&(N=U?8:0),I===w&&(I=N==0&&!p&&!g?10:20);let{codecVersionNeeded:G}=t;U&&G!==w&&(I=I>G?I:G),a&&(I=I>45?I:45),g&&!c&&(I=I>51?I:51,u&&S!==w&&(W[om]=um),rt(L(W),am,N),N=99);let Ee=j?B(H):0,me=Ee+B(W,ne,F,M,l,h),it=t[Xt]?cm:0;if(me+it>65535)throw new Error(gi);let Me=new Date(Math.ceil(Math.floor(r.getTime()/1e3)/2)*2e3),ve=Me<Ot?Ot:Me>Zr?Zr:Me,je=B(ne)?new Date(ui(r)*1e3):B(F)?r:ve,{headerArray:Ne,headerView:Oe,rawLastModDate:De}=Ku({version:I,bitFlag:qu(o,f,R,g,N),compressionMethod:N,uncompressedSize:T,lastModDate:ve,rawLastModDate:n,rawFilename:e,zip64CompressedSize:A,zip64UncompressedSize:_,extraFieldLength:me}),ae=Ue(30+B(e)+me),Pe=ae.array,ke=L(Pe);return ae.writeUint32(67324752),ae.writeBytes(Ne),ae.writeBytes(e),j&&ae.writeBytes(H),ae.writeBytes(W),ae.writeBytes(ne),ae.writeBytes(F),ae.writeBytes(M),ae.writeBytes(l),ae.writeBytes(h),R&&(A||_e(ke,18,0),_||_e(ke,22,0)),{localHeaderArray:Pe,localHeaderView:ke,headerArray:Ne,headerView:Oe,lastModDate:je,lastModDateClamped:je===ve&&Me.getTime()!=ve.getTime(),rawLastModDate:De,encrypted:g,compressed:U,version:I,compressionMethod:N,extraFieldExtendedTimestampFlag:z,extraFieldExtendedTimestampTime:X,rawExtraFieldZip64:Z,localExtraFieldZip64Length:Ee,rawExtraFieldExtendedTimestamp:ne,rawExtraFieldNTFS:F,rawExtraFieldUnix:M,rawExtraFieldAES:W,extraFieldLength:me}}function ou(t,e){let{headerInfo:r}=t,{localHeaderArray:n,extraFieldLength:s}=r,i=64-(e+B(n))%64;i<4&&(i+=64);let o=new Uint8Array(i),a=L(o);rt(a,0,6534),rt(a,2,i-4);let c=n;r.localHeaderArray=n=new Uint8Array(B(c)+i),Ln(n,c),Ln(n,o,B(c));let f=L(n);rt(f,28,s+i),r.localHeaderView=f,t.metadataSize+=i}function au(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 Im(t,e){if(t!==w)t=t&255;else if(e!==w){let{readOnly:r,hidden:n,system:s,directory:i,archive:o}=e,a=0;r&&(a|=1),n&&(a|=2),s&&(a|=4),i&&(a|=16),o&&(a|=32),t=a&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 bm({zip64:t,dataDescriptor:e,dataDescriptorSignature:r}){let n=Z,s,i=0,o=t?20:12;return r&&(o+=4),e&&(n=new Uint8Array(o),s=L(n),r&&(i=4,_e(s,0,134695760))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:i}}function Nm({crc32:t,compressedSize:e,uncompressedSize:r,headerInfo:n,dataDescriptorInfo:s},{zip64:i,zipCrypto:o,passThroughCompression:a,dataDescriptor:c}){let{headerView:f,encrypted:R}=n,{dataDescriptorView:p,dataDescriptorOffset:l}=s;(!R||o||a)&&t!==w&&(_e(f,10,t),c&&_e(p,l,t)),i?c&&(Cn(p,l+4,BigInt(e)),Cn(p,l+12,BigInt(r))):(_e(f,14,e),_e(f,18,r),c&&(_e(p,l+4,e),_e(p,l+8,r)))}function Om({rawFilename:t,encrypted:e,zip64:r,localExtraFieldZip64Length:n,crc32:s,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:a,zip64CompressedSize:c},f,{dataDescriptor:R,passThroughCompression:p}){if(R||((!e||p&&s!==w)&&_e(f,14,s),c||_e(f,18,i),a||_e(f,22,o)),r&&n){let l=30+B(t)+4;Cn(f,l,BigInt(o)),Cn(f,l+8,BigInt(i))}}async function Dm(t,e,r){let{directoryDataLength:n,zip64Entries:s}=Pm(t.fileEntries),{directoryStart:i,directoryEnd:o,directoryArray:a}=await xm(t,n,r),c=await Cm(t,a,r);await Lm(t,e,r,{directoryStart:i,directoryEnd:o,directoryDataLength:n,signatureLength:c,zip64Entries:s})}function Pm(t){let e=0,r=!1;for(let[,n]of t){let{rawFilename:s,rawExtraFieldAES:i,rawComment:o,rawExtraFieldNTFS:a,rawExtraFieldUnix:c,rawExtraField:f,rawCentralExtraField:R,extraFieldExtendedTimestampFlag:p,extraFieldExtendedTimestampTime:l,zip64Enabled:h,uncompressedSize:m,compressedSize:d}=n,{zip64UncompressedSize:E,zip64CompressedSize:u}=n;h||(E&&m<4294967295&&(E=n.zip64UncompressedSize=!1),u&&d<4294967295&&(u=n.zip64CompressedSize=!1)),r=r||E||u;let g=n.offset>=4294967295,_=n.diskNumberStart>=65535,A;if(g||_||E||u){let S=4+(E?8:0)+(u?8:0)+(g?8:0)+(_?4:0),I=Ue(S);I.writeUint16(1),I.writeUint16(S-4),E&&I.writeUint64(m),u&&I.writeUint64(d),g&&I.writeUint64(n.offset),_&&I.writeUint32(n.diskNumberStart),A=I.array}else A=Z;n.rawExtraFieldZip64=A,n.zip64Offset=g,n.zip64DiskNumberStart=_;let T;if(l===w)T=Z;else{let S=Ue(9);S.writeUint16(21589),S.writeUint16(5),S.writeUint8(p),S.writeUint32(l),T=S.array}n.rawExtraFieldExtendedTimestamp=T;let y=B(A,i,a,c,T,f,R);if(y>65535)throw new Error(gi);e+=46+B(s,o)+y}return{directoryDataLength:e,zip64Entries:r}}async function xm(t,e,r){let{fileEntries:n,writer:s}=t,i=new Uint8Array(e);await ge(s);let o=0,a=0,c=wt(s),f=Pn(s),R=0;for(let[p,l]of Array.from(n.values()).entries()){let{offset:h,rawFilename:m,rawExtraFieldZip64:d,rawExtraFieldAES:E,rawExtraFieldExtendedTimestamp:u,rawExtraFieldNTFS:g,rawExtraFieldUnix:_,rawExtraField:A,rawCentralExtraField:T,rawComment:y,versionMadeBy:S,headerArray:I,headerView:N,zip64UncompressedSize:U,zip64CompressedSize:H,zip64DiskNumberStart:q,zip64Offset:$,internalFileAttributes:j,externalFileAttributes:W,diskNumberStart:F,uncompressedSize:ne,compressedSize:z}=l,X=B(d,E,u,g,_,A,T),M=46+B(m,y)+X;kr(s,o+M-a)&&(await nt(s,i.slice(a,o)),a=o,R=0,await s.closeDisk()),p==0&&(c=wt(s),f=Pn(s)),U||_e(N,18,ne),H||_e(N,14,z),($||q)&&l.version<45&&rt(N,0,45);let G=Ue(M);if(G.writeUint32(33639248),G.writeUint16(S),G.writeBytes(I.subarray(0,24)),G.writeUint16(X),G.writeUint16(B(y)),G.writeUint16(q?65535:F),G.writeUint16(j),G.writeUint32(W),G.writeUint32($?4294967295:h),G.writeBytes(m),G.writeBytes(d),G.writeBytes(E),G.writeBytes(u),G.writeBytes(g),G.writeBytes(_),G.writeBytes(A),G.writeBytes(T),G.writeBytes(y),Ln(i,G.array,o),o+=M,R++,r.onprogress)try{await r.onprogress(p+1,n.size,new ht(l))}catch{}}return await nt(s,a?i.slice(a):i),{directoryStart:{diskNumber:c,diskOffset:f},directoryEnd:{diskNumber:wt(s),entriesLength:R},directoryArray:i}}async function Cm(t,e,r){let n=Ha(t,r,Vc);if(n){let s=await n(e),i=B(s);if(i>65535)throw new Error(Bu);let o=Ue(6+i);o.writeUint32(84233040),o.writeUint16(i),o.writeBytes(s);let{writer:a}=t;return kr(a,B(o.array))&&await a.closeDisk(),await nt(a,o.array),6+i}return 0}async function Lm(t,e,r,n){let{writer:s}=t,{directoryStart:i,directoryEnd:o,signatureLength:a,zip64Entries:c}=n,{directoryDataLength:f}=n,R=t.fileEntries.size,p=i.diskNumber,l=xn(t,i),h=B(e);if(h>65535)throw new Error(Ga);let m=k(t,r,Hs),d=wt(s);if(kr(s,(m?98:22)+h)&&d++,l>=4294967295||f>=4294967295||R>=65535||d>=65535){if(m===!1)throw new Error(Ri);m=!0}else m===w&&c&&(m=!0);let E=Ue(m?98:22);kr(s,B(E.array)+h)&&await s.closeDisk(),d=wt(s);let u=d==o.diskNumber?o.entriesLength:0;m&&(E.writeUint32(101075792),E.writeUint64(44),E.writeUint16(45),E.writeUint16(45),E.writeUint32(d),E.writeUint32(p),E.writeUint64(u),E.writeUint64(R),E.writeUint64(f),E.writeUint64(l),E.writeUint32(117853008),E.writeUint32(d),E.writeUint64(BigInt(xn(t,s))+BigInt(f)+BigInt(a)),E.writeUint32(d+1),k(t,r,Mc,!0)&&(d=65535,p=65535),u=65535,R=65535,l=4294967295,f=4294967295),E.writeUint32(101010256),E.writeUint16(d),E.writeUint16(p),E.writeUint16(u),E.writeUint16(R),E.writeUint32(f),E.writeUint32(l),E.writeUint16(h),await nt(s,E.array),h&&await nt(s,e)}function Ue(t){let e=new Uint8Array(t),r=L(e),n=0;return{array:e,writeUint8:s=>{zm(r,n,s),n+=1},writeUint16:s=>{rt(r,n,s),n+=2},writeUint32:s=>{_e(r,n,s),n+=4},writeUint64:s=>{Cn(r,n,BigInt(s)),n+=8},writeBytes:s=>{Ln(e,s,n),n+=B(s)},skip:s=>n+=s}}function wt(t){let{diskNumber:e=0}=t;return e}function Pn(t){let{diskOffset:e=0}=t;return e}function kr(t,e){let{availableSize:r=Vt}=t;return e>r}function xn(t,{diskNumber:e=0,diskOffset:r=0}){return t.offset-r-(e?t.initialOffset:0)}async function Um(t){let e=await re(t,0,4);return km(L(e),0)==134695760}function Xu(t){let e=L(t),r=0;for(;r+4<=B(t);){let n=4+hi(e,r+2);if(hi(e,r)==1)return Xu(Be(t.subarray(0,r),t.subarray(Math.min(r+n,B(t)))));r+=n}return t}async function Fm(t,e,r,n){let{writer:s}=t,i=new Map;if(s.closeDisk){let o=Array.from(r).sort((c,f)=>fi(e,c)-fi(e,f)),a=0;for(let c of o){let f=fi(e,c);await va(t,e,a,f-a),kr(s,await Mm(e,f))&&await s.closeDisk(),i.set(c,{offset:xn(t,s),diskNumberStart:wt(s)}),a=f}await va(t,e,a,n-a)}else{let o=t.offset;await va(t,e,0,n),r.forEach(a=>i.set(a,{offset:o+fi(e,a),diskNumberStart:0}))}return i}async function va(t,e,r,n){if(n>0){let{writer:s}=t,i=0;try{await ju(po(e,{offset:r,size:n}),s,w,o=>i+=o)}catch(o){t.hasCorruptedEntries=!0;try{o.corruptedEntry=!0}catch{}throw o}finally{s.size+=i,t.offset+=i}}}async function Mm(t,e){let r=await re(t,e,30);if(B(r)<30)return 30;let n=L(r);return 30+hi(n,26)+hi(n,28)}function fi(t,{offset:e,diskNumberStart:r}){return e+(t.getDiskOffset?t.getDiskOffset(r):0)}function Zu(){let t=new Uint8Array(4);return _e(L(t),0,134695760),t}async function cu(t,e){delete t.addSplitZipSignature,await nt(e,Zu()),t.offset+=4}async function nt(t,e){let{writable:r}=t,n=r.getWriter();try{await n.ready,t.size+=B(e),await n.write(e)}finally{n.releaseLock()}}async function ju(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(B(i))}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{s.releaseLock()}}function ka(t){if(t){let e=(BigInt(t.getTime())+BigInt(116444736e5))*BigInt(1e4);return e<tu?tu:e>ru?ru:e}}function ui(t){return Math.floor(t.getTime()/1e3)}function vm(t){return t>=Su&&t<=Iu}function lu(t){return Math.min(Iu,Math.max(Su,t))}function k(t,e,r,n){let s=e[r]===w?t.options[r]:e[r];return s===w?n:s}function za(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(mu);return s}function Ha(t,e,r){return pr(k(t,e,r))}function vr(t,e,r,n){return Pt(k(t,e,r,n))}function fu(t){return t+5*(Math.floor(t/16383)+1)}function Ya(t,e){return t===w?e===w||e>0:t!==0}function hi(t,e){return t.getUint16(e,!0)}function km(t,e){return t.getUint32(e,!0)}function zm(t,e,r){t.setUint8(e,r)}function rt(t,e,r){t.setUint16(e,r,!0)}function _e(t,e,r){t.setUint32(e,r,!0)}function Cn(t,e,r){t.setBigUint64(e,r,!0)}function Ln(t,e,r){t.set(e,r)}function B(...t){let e=0;return t.forEach(r=>r&&(e+=r.length)),e}function Ku({version:t,bitFlag:e,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:i,rawLastModDate:o,rawFilename:a,zip64CompressedSize:c,zip64UncompressedSize:f,extraFieldLength:R}){let p=Ue(26),l=p.array,h=L(l);if(p.writeUint16(t),p.writeUint16(e),p.writeUint16(r),o===w){let m=new Uint32Array(1),d=L(m);rt(d,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),rt(d,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),o=m[0]}return p.writeUint32(o),p.skip(4),c||s!==w?p.writeUint32(c?4294967295:s):p.skip(4),f||n!==w?p.writeUint32(f?4294967295:n):p.skip(4),p.writeUint16(B(a)),p.writeUint16(R),{headerArray:l,headerView:h,rawLastModDate:o}}function uu(t){return t.every(e=>e>=lm&&e<=fm)}function qu(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}dn();gr();Ge();Jt();ue();Ge();Jt();Qi();var lw=1024*1024;Kt();var dw=1024*1024;var pw=1024*1024;var mw=512*1024;var qm={};try{xt({baseURI:qm.url})}catch{}Ge();var Jm=[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],Qm=[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],$m=[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],eh=[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],th=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Fn=new Uint8Array(288);Fn.fill(8,0,144),Fn.fill(9,144,256),Fn.fill(7,256,280),Fn.fill(8,280,288);var rh=new Uint8Array(30).fill(5);function Un(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 Ju(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 a=r[i]<<16|r[i+1]<<8|r[i+2];n+=Fe[a>>18&63]+Fe[a>>12&63]+Fe[a>>6&63]+Fe[63&a]}let o=s-i;if(o===1){let a=r[i]<<16;n+=Fe[a>>18&63]+Fe[a>>12&63]+"=="}else if(o===2){let a=r[i]<<16|r[i+1]<<8;n+=Fe[a>>18&63]+Fe[a>>12&63]+Fe[a>>6&63]+"="}return n})((function(r){let n=0,s=0,i=0,o=new Uint8Array(1024),a=0,c=0;for(;!c;){c=R(1);let E=R(2);if(E==0)p();else if(E==1)l(Un(Fn),Un(rh));else{if(E!=2)throw new Error("invalid deflate block type");l(...h())}}return o.subarray(0,a);function f(){if(n>=r.length)throw new Error("unexpected end of deflate data");return r[n++]}function R(E){for(;i<E;)s|=f()<<i,i+=8;let u=s&(1<<E)-1;return s>>>=E,i-=E,u}function p(){s=0,i=0;let E=f()|f()<<8;n+=2,d(a+E);for(let u=0;u<E;u++)o[a++]=f()}function l(E,u){let g=m(E);for(;g!=256;){if(g<256)d(a+1),o[a++]=g;else{let _=g-257,A=Jm[_]+R(Qm[_]),T=m(u),y=$m[T]+R(eh[T]);d(a+A);let S=a-y;for(let I=0;I<A;I++)o[a++]=o[S+I]}g=m(E)}}function h(){let E=R(5)+257,u=R(5)+1,g=R(4)+4,_=new Uint8Array(19);for(let S=0;S<g;S++)_[th[S]]=R(3);let A=Un(_),T=new Uint8Array(E+u),y=0;for(;y<T.length;){let S=m(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[Un(T.subarray(0,E)),Un(T.subarray(E))]}function m(E){let{lengthCounts:u,symbols:g}=E,_=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 d(E){if(o.length<E){let u=2*o.length;for(;u<E;)u*=2;let g=new Uint8Array(u);g.set(o.subarray(0,a)),o=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 o=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(o>>16&255),r[i+2]!=="="&&s.push(o>>8&255),r[i+3]!=="="&&s.push(255&o)}return new Uint8Array(s)})("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")))),e)})}ue();Ge();Sr();vs();Vi();var Ti="deflate",wi="deflate-raw",Qu="deflate64-raw",_i="gzip";var nh="Z_MEM_ERROR",$u=[Ti,wi,_i],ed=[Ti,wi,_i,Qu],le,Br,_t,Mn,td;function rd(t){if(le=t,{malloc:Br,free:_t,memory:Mn}=le,typeof Br!="function"||typeof _t!="function"||!Mn)throw le=Br=_t=Mn=null,new Error("Invalid WASM module")}function nd(t){td=t}function zr(t,e){return e===-4&&(t.code=nh),t}function sd(t,e,r={}){if(!(t?$u:ed).includes(e))throw new TypeError("Unsupported format: "+e);if(!le){let T=new Error("WASM module not loaded");throw T.cause=td,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,o={out:0,in:0,inBufferSize:0,streamHandle:0,streamEnded:!1},a,c,f,R,p=!0,l=!1;d();let h=new ReadableStream({start(T){a=T},pull(){p=!1,_()},cancel(T){l=!0,R=T,A(o),c.error(T),_()}},{highWaterMark:0}),m=new WritableStream({start(T){c=T},async write(T){if(p&&await new Promise(y=>f=y),l)throw R;try{E(T)}catch(y){throw A(o),a.error(y),y}},close(){if(l)return;try{u()}catch(y){throw A(o),a.error(y),y}let T=A(o);if(T!==0){let y=zr(new Error("end error:"+T),T);throw a.error(y),y}a.close()},abort(T){A(o),a.error(T)}},{highWaterMark:1});return{readable:h,writable:m};function d(){try{let T;if(o.out=Br(s),o.in=Br(i),o.inBufferSize=i,!o.out||!o.in)throw zr(new Error("allocation failed"),-4);if(t?(o._process=le.deflate_process,o._last_consumed=le.deflate_last_consumed,o._end=le.deflate_end,o.streamHandle=le.deflate_new(),e===_i?T=le.deflate_init_gzip(o.streamHandle,n):e===wi?T=le.deflate_init_raw(o.streamHandle,n):T=le.deflate_init(o.streamHandle,n)):e===Qu?(o._process=le.inflate9_process,o._last_consumed=le.inflate9_last_consumed,o._end=le.inflate9_end,o.streamHandle=le.inflate9_new(),T=le.inflate9_init_raw(o.streamHandle)):(o._process=le.inflate_process,o._last_consumed=le.inflate_last_consumed,o._end=le.inflate_end,o.streamHandle=le.inflate_new(),e===wi?T=le.inflate_init_raw(o.streamHandle):e===_i?T=le.inflate_init_gzip(o.streamHandle):T=le.inflate_init(o.streamHandle)),T!==0)throw zr(new Error("init failed:"+T),T)}catch(T){throw A(o),T}}function E(T){let y=new Uint8Array(Mn.buffer),S=o._process,I=o._last_consumed,N=o.out,U=0;for(;U<T.length;){if(o.streamEnded)throw new Error("trailing data after the end of the stream");let H=Math.min(T.length-U,32*1024);if((!o.in||o.inBufferSize<H)&&(o.in&&_t&&(_t(o.in),o.in=0),o.in=Br(H),o.inBufferSize=H,!o.in))throw zr(new Error("allocation failed"),-4);y.set(T.subarray(U,U+H),o.in);let q=S(o.streamHandle,o.in,H,N,s,0),$=q>>24&255,j=$&128?$-256:$;if(j<0)throw zr(new Error("process error:"+j),j);let W=q&16777215;W&&g(y.slice(N,N+W));let F=I(o.streamHandle);if($===1)o.streamEnded=!0;else if(F===0&&W===0)break;U+=F}}function u(){let T=new Uint8Array(Mn.buffer),y=o._process,S=o.out;for(;;){let I=y(o.streamHandle,0,0,S,s,4),N=I>>24&255,U=N&128?N-256:N;if(U<0)throw zr(new Error("process error:"+U),U);let H=I&16777215;if(H&&g(T.slice(S,S+H)),N===1||H===0)break}}function g(T){p=!0,a.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&&_t&&_t(T.in),T.in=0,T.out&&_t&&_t(T.out),T.out=0,y}}var ur=class{constructor(e=Ti,r){return sd(!0,e,r)}},dr=class{constructor(e=Ti,r){return sd(!1,e,r)}};ur.requiresModule=!0;dr.requiresModule=!0;ur.supportedFormats=$u;dr.supportedFormats=ed;ue();Yi();var Xa=64*1024,sh=20,id,Tt;function od(t){typeof t.aes_hmac_new==K&&(id=t,Tt=0)}function ja(t,e){let r=id,n=r?ih(r,t,e):0;if(!n)return rn(t,e);let s=Tt;return{process(i,o){for(let a=0;a<i.length;a+=Xa){let c=i.subarray(a,a+Xa),f=Za(r);f.set(c,s),r.aes_hmac_process(n,s,c.length,o?1:0),c.set(f.subarray(s,s+c.length))}},digest(){return r.aes_hmac_end(n,s),n=0,Za(r).slice(s,s+sh)},dispose(){n&&(r.aes_hmac_end(n,0),n=0)}}}function ih(t,e,r){Tt||(Tt=t.malloc(Xa));let n=Tt?t.aes_hmac_new():0;if(n){let s=Za(t);if(s.set(e,Tt),s.set(r,Tt+e.length),t.aes_hmac_init(n,Tt,e.length,Tt+e.length,r.length))return t.aes_hmac_end(n,0),0}return n}function Za(t){return new Uint8Array(t.memory.buffer)}var ad=!1;async function cd(t,{baseURI:e}){if(!ad)try{await oh(t,e),ad=!0}catch(r){throw nd(r),r}}async function oh(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=ah(t);else throw i}let s=await WebAssembly.instantiate(r);rd(s.instance.exports),od(s.instance.exports)}function ah(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 Ai;Sl(ja);tf({initModule:t=>{if(!Ai){let{wasmURI:e}=t;typeof e==K&&(e=e()),Ai=cd(e,t).catch(r=>{throw Ai=null,r})}return Ai}});xt({CompressionStreamFallback:ur,DecompressionStreamFallback:dr});Ju(xt);dn();li();Ws();gr();Sr();ue();Ct();Kt();jt();var U_=new Uint8Array(0);fl(xt);var vn="h5p-pkg-v0-";var Ze="__archive__";var ld="h5p-player";var kn="packages",Hr="https://chunks.h5p-player.invalid/";function zn(t,e){let r=e.end-e.start+1,n=0,s=0,i=new TransformStream({transform(o,a){if(s>=r)return;let c=n;if(n+=o.length,n<=e.start)return;let f=Math.max(0,e.start-c),R=Math.min(o.length,f+(r-s)),p=o.subarray(f,R);s+=p.length,a.enqueue(p),s>=r&&a.terminate()}});return t.pipeTo(i.writable).catch(()=>{}),i.readable}function fd(t,e){return`h5p:${t}:${e}`}function ud(t){return`h5p:${t}:`}var ch=/^h5p:([^:]+):/;async function yi(){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?ch.exec(n.name):null;s&&t.add(s[1])}}catch{}return t}var lh="/__meta__",fh="/__forward__",uh="__forward_index__",dh=32;function Hn(t){return t.split("/").map(encodeURIComponent).join("/")}function Bn(t){return`${vn}${t}`}function dd(t,e){return`${Hr}${t}/whole/${Hn(e)}`}function Ka(t,e,r){return`${Hr}${t}/chunk/${Hn(e)}/${r}`}function Ed(t,e){return`${Hr}${t}/chunk/${Hn(e)}${lh}`}function pd(t){return`${Hr}${t}/chunk/${Hn(Ze)}${fh}`}function Qa(t){return t instanceof DOMException&&(t.name==="QuotaExceededError"||t.name==="NS_ERROR_DOM_QUOTA_REACHED")}var st=class extends Error{constructor(e="Not enough storage to cache this package"){super(e),this.name="QuotaError"}};function md(t){return{first:Math.floor(t.start/8388608),last:Math.floor(t.end/8388608)}}function hd(t,e){let r=t*8388608;return{from:Math.max(0,e.start-r),to:Math.min(8388608,e.end-r+1)}}var At=class{constructor(e){this.cachePromise=null;this.pkgId=e}cache(){return this.cachePromise??=caches.open(Bn(this.pkgId)),this.cachePromise}async getWhole(e){return(await this.cache()).match(dd(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(dd(this.pkgId,e),()=>new Response(r(),{headers:i}))}async getMeta(e){let n=await(await this.cache()).match(Ed(this.pkgId,e));if(n)try{return await n.json()}catch{return}}async setMeta(e,r){await this.write(Ed(this.pkgId,e),()=>new Response(JSON.stringify(r),{headers:{"content-type":"application/json"}})),Ja({pkgId:this.pkgId,entry:e,meta:r})}async discardChunks(e){let r=await this.cache(),n=`${Hr}${this.pkgId}/chunk/${Hn(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(Ka(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(Ka(this.pkgId,e,r));if(s)return new Uint8Array(await s.arrayBuffer())}readRange(e,r,n){let{first:s,last:i}=md(r),o=s,a=null,c=this;return new ReadableStream({async pull(f){for(;;){if(a){let{done:m,value:d}=await a.read();if(!m){f.enqueue(d);return}a=null,o+=1}if(o>i){f.close();return}if(n){let m=Math.min((o+1)*8388608,r.end+1);if(!await n(m)){f.error(new Error(`Extraction of ${e} stalled before byte ${m}`));return}}let R=await c.chunkBody(e,o);if(!R){f.error(new Error(`Missing chunk ${o} of ${e}`));return}let{from:p,to:l}=hd(o,r);a=(p===0&&l>=8388608?R:zn(R,{start:p,end:l-1})).getReader()}},async cancel(f){await a?.cancel(f)}},{highWaterMark:0})}async chunkBody(e,r){return(await(await this.cache()).match(Ka(this.pkgId,e,r)))?.body??void 0}async readRangeBytes(e,r){let n=new Uint8Array(r.end-r.start+1),{first:s,last:i}=md(r),o=0;for(let a=s;a<=i;a+=1){let c=await this.getChunk(e,a);if(!c)throw new Error(`Missing chunk ${a} of ${e}`);let{from:f,to:R}=hd(a,r),p=c.subarray(f,Math.min(R,c.length));n.set(p,o),o+=p.length}return o===n.length?n:n.subarray(0,o)}getArchiveMeta(){return this.getMeta(Ze)}async getForwardIndex(){let r=await(await this.cache()).match(pd(this.pkgId));if(r)try{return await r.json()}catch{return}}async setForwardIndex(e){await this.write(pd(this.pkgId),()=>new Response(JSON.stringify(e),{headers:{"content-type":"application/json"}})),Ja({pkgId:this.pkgId,entry:uh,meta:{size:null,available:e.parsedTo,complete:e.done}})}readArchiveRange(e){return this.readRangeBytes(Ze,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(o){if(i.body?.cancel().catch(()=>{}),!Qa(o))throw o;if(s>=dh)throw new st;if(!await Eh(this.pkgId))throw new st}}}async destroy(){this.cachePromise=null,await caches.delete(Bn(this.pkgId))}},qa=null;function Rd(t){qa=t}var wd=null;function _d(t){wd=t}async function Eh(t){let e=qa?await qa(t):await mh(t);return e?(await ph(Bn(e)),await caches.delete(Bn(e)),await wd?.(e),!0):!1}async function ph(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 mh(t){let[e,r]=await Promise.all([caches.keys(),yi()]),n=Bn(t),s=e.find(i=>i.startsWith(vn)&&i!==n&&!r.has(i.slice(vn.length)));return s?s.slice(vn.length):null}var hh="h5p-player-watermark",gd;function gh(){if(typeof BroadcastChannel!="function")return null;let t=new BroadcastChannel(hh);return t.unref?.(),t}function Ja(t){gd??=gh();try{gd?.postMessage(t)}catch{}}function Td(t,e,r){Ja({pkgId:t,entry:e,received:r})}var Bt=null;function Ad(t,e){Bt===e&&(Bt=null),t.close()}function wh(){if(Bt)return Bt;let t=new Promise((e,r)=>{let n=indexedDB.open(ld,1);n.onupgradeneeded=()=>{let s=n.result;s.objectStoreNames.contains(kn)||s.createObjectStore(kn,{keyPath:"pkgId"}).createIndex("lastPlayed","lastPlayed")},n.onsuccess=()=>{let s=n.result;s.onversionchange=()=>Ad(s,t),s.onclose=()=>Ad(s,t),e(s)},n.onerror=()=>r(n.error)});return Bt=t,t.catch(()=>{Bt===t&&(Bt=null)}),t}function _h(t){return t instanceof DOMException&&(t.name==="InvalidStateError"||t.name==="NotFoundError"||t.name==="TransactionInactiveError")}function Sd(t){return new Promise((e,r)=>{t.onsuccess=()=>e(t.result),t.onerror=()=>r(t.error)})}async function yd(t,e){let n=(await wh()).transaction(kn,t),s=await e(n.objectStore(kn));return await new Promise((i,o)=>{n.oncomplete=()=>i(),n.onerror=()=>o(n.error),n.onabort=()=>o(n.error)}),s}async function Id(t,e){try{return await yd(t,e)}catch(r){if(!_h(r))throw r;return Bt=null,yd(t,e)}}function bd(t){return Id("readwrite",async e=>{await Sd(e.delete(t))})}function Th(){return Id("readonly",t=>Sd(t.getAll()))}async function Nd(){return(await Th()).sort((e,r)=>e.lastPlayed-r.lastPlayed)}async function yh(t,e={}){let[r,n]=await Promise.all([(e.packagesByAge??Nd)(),(e.busyPackages??yi)()]);return r.find(s=>s.pkgId!==t&&!n.has(s.pkgId))?.pkgId??null}function Od(t){Rd(e=>yh(e)),_d(async e=>{t?.(e),await bd(e)})}var Sh=new TextDecoder,Si=class{constructor(){this.entries=[];this.parsedTo=0;this.done=!1;this.stopped=null;this.buffer=new Uint8Array(0);this.position=0;this.state={kind:"header"}}push(e){this.stopped||this.done||e.length===0||(this.buffer=this.buffer.length===0?e:bh(this.buffer,e),this.drain())}finish(){!this.done&&!this.stopped&&this.state.kind==="descriptor"&&(this.stopped="unresolved-descriptor")}snapshot(){return{entries:[...this.entries],parsedTo:this.parsedTo,done:this.done,stopped:this.stopped}}consume(e){this.buffer=this.buffer.subarray(e),this.position+=e}drain(){for(;;){let e=this.state;if(e.kind==="skip"){let r=Math.min(e.remaining,this.buffer.length);if(this.consume(r),e.remaining-=r,e.remaining>0)return;this.record(e.entry),this.state={kind:"header"},this.parsedTo=this.position;continue}if(e.kind==="header"){if(!this.readHeader())return;continue}if(!this.findDescriptor(e.entry))return}}readHeader(){let{buffer:e}=this;if(e.length<4)return!1;let r=new DataView(e.buffer,e.byteOffset,e.byteLength),n=r.getUint32(0,!0);if(n===33639248||n===101010256||n===101075792||n===117853008)return this.done=!0,this.stopped="central-directory",this.parsedTo=this.position,!1;if(n!==67324752)return this.stopped="bad-signature",!1;if(e.length<30)return!1;let s=r.getUint16(6,!0),i=r.getUint16(8,!0),o=r.getUint32(14,!0),a=r.getUint32(18,!0),c=r.getUint32(22,!0),f=r.getUint16(26,!0),R=r.getUint16(28,!0),p=30+f+R;if(e.length<p)return!1;let l=Sh.decode(e.subarray(30,30+f)),h=e.subarray(30+f,p),m=Ih(h,c===4294967295,a===4294967295);m&&(c=m.uncompressedSize??c,a=m.compressedSize??a);let d={name:l,directory:l.endsWith("/"),method:i,encrypted:(s&1)!==0,crc32:o,compressedSize:a,uncompressedSize:c,headerOffset:this.position,dataStart:this.position+p,zip64:m!==null};return this.consume(p),s&8?(this.state={kind:"descriptor",entry:d},!0):(this.state={kind:"skip",remaining:a,entry:d},!0)}findDescriptor(e){let{buffer:r}=this,n=e.zip64?24:16,s=new DataView(r.buffer,r.byteOffset,r.byteLength),i=0;for(;i+n<=r.length&&(i=r.indexOf(80,i),!(i<0||i+n>r.length));){if(s.getUint32(i,!0)===134695760){let a=this.position+i-e.dataStart,c=e.zip64?Ii(s,i+8):s.getUint32(i+8,!0);if(c===a)return e.crc32=s.getUint32(i+4,!0),e.compressedSize=c,e.uncompressedSize=e.zip64?Ii(s,i+16):s.getUint32(i+12,!0),this.record(e),this.consume(i+n),this.state={kind:"header"},this.parsedTo=this.position,!0}i+=1}let o=Math.min(r.length,n-1);return this.consume(r.length-o),!1}record(e){let{zip64:r,...n}=e;this.entries.push(n)}};function Ih(t,e,r){let n=new DataView(t.buffer,t.byteOffset,t.byteLength),s=0;for(;s+4<=t.length;){let i=n.getUint16(s,!0),o=n.getUint16(s+2,!0);if(i===1){let a={},c=s+4;return e&&c+8<=s+4+o&&(a.uncompressedSize=Ii(n,c),c+=8),r&&c+8<=s+4+o&&(a.compressedSize=Ii(n,c)),a}s+=4+o}return null}function Ii(t,e){let r=t.getBigUint64(e,!0);if(r>BigInt(Number.MAX_SAFE_INTEGER))throw new RangeError("zip64 size beyond a safe integer");return Number(r)}function bh(t,e){let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r}var se=class extends Error{constructor(e,r,n){super(r,n),this.name="PlayerError",this.code=e,this.missingLibraries=n?.missingLibraries}};var $a=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 se("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 se("network","Range response had no body");return new Uint8Array(await new Response(zn(this.counted(r.body),e)).arrayBuffer())}async stream(e){let r=await this.fetchRange(e);if(!r.body)throw new se("network","Range response had no body");let n=this.counted(r.body);return r.status===200?zn(n,e):n}},ec=class{constructor(e,r,n){this.descriptor=e;this.size=r;this.store=new At(n)}read(e){return this.store.readRangeBytes(Ze,e)}async stream(e){return this.store.readRange(Ze,e)}},tc=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 Dd(t,e,r,n={}){switch(e.type){case"range-http":return new $a(e,e.size);case"chunked":{let s=await new At(t).getArchiveMeta();if(!s||!s.complete&&!n.partial)throw new se("bad-archive","Archive has not finished downloading");return new ec(e,s.size??s.available,t)}case"file":{if(!r)throw new se("bad-archive","The picked file is no longer available");return new tc(e,r)}}}function rc(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 Nh(){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 nc(t,e){let r=await Nh(),n=e===null?`Not enough storage for ${t}`:`Not enough storage: ${t} needs ${rc(e)}`;return r?`${n}; this site is using ${rc(r.usage)} of the ${rc(r.quota)} the browser allows it.`:`${n}.`}var Oh=/[\\u0000-\\u001f\\u007f]/;function sc(t){if(!t||Oh.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 Pd(t){let e=new Map,r=[];for(let n of t){if(n.directory)continue;let s=sc(n.filename);if(s===null||e.has(s)){r.push(n.filename);continue}e.set(s,n)}return{index:e,rejected:r}}var Dh=new Set(["js","mjs","json","css","html","htm","txt","xml","csv","vtt","srt","svg"]);function Ph(t){let e=t.slice(t.lastIndexOf("/")+1),r=e.lastIndexOf(".");return r<=0?"":e.slice(r+1).toLowerCase()}function xd(t){return Dh.has(Ph(t))}var oc=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 Lh(t,e){let r=e.end-e.start+1,n=Math.ceil(r/4194304),s=new Map,i=0,o=0,a=c=>{let f=e.start+c*4194304,R={start:f,end:Math.min(f+4194304-1,e.end)};s.set(c,new oc(()=>t.stream(R)))};return new ReadableStream({async pull(c){for(;;){if(o>=n){c.close();return}i===o&&a(i++);let f=s.get(o);if(f.received>0)for(;i<n&&s.size<4;)a(i++);let R=await f.next();if(R){c.enqueue(R);return}s.delete(o),o+=1}},cancel(){for(let c of s.values())c.cancel();s.clear(),i=n,o=n}},{highWaterMark:0})}var bi=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 Lh(i,{start:n,end:s});let o=null;return new ReadableStream({async pull(a){o??=(await i.stream({start:n,end:s})).getReader();let{done:c,value:f}=await o.read();c?a.close():a.enqueue(f)},async cancel(a){await o?.cancel(a)}},{highWaterMark:0})}};var ac=0,Fd=8,Fh=67324752,Cd=30,Ni=class t{constructor(e,r,n,s,i,o=!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=o}get title(){return this.manifest.title}static async open(e,r,n={}){let s;try{s=await new zt(new bi(r)).getEntries({filenameValidation:"tolerant"})}catch(p){throw new se("bad-archive","Could not read the archive index",{cause:p})}let{index:i,rejected:o}=Pd(s),a=new Map;for(let[p,l]of i)a.set(p,{name:p,size:l.uncompressedSize,compressedSize:l.compressedSize,method:l.compressionMethod,strategy:Md(p,l),zip:l});if(!a.has("h5p.json"))throw new se("bad-archive","Archive has no h5p.json, so it is not an H5P package");let c=new t(e,r,a,o,{}),f=await Ud(c),R=new t(e,r,a,o,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=sc(s.name);if(i===null||this.entries.has(i)){this.rejected.push(s.name);continue}this.entries.set(i,Mh(i,s)),this.lastTopFolder=Ld(i),i==="h5p.json"&&(n=!0)}return r.length>0&&(this.librariesByName=null),n&&(this.manifest=await Ud(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=Oi(s).find(o=>r.has(`${o}/library.json`))??lc(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=Ld(e);if(r===null)return!1;if(this.hasFolder(r))return this.folderComplete(r);let n=cc(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=cc(e.slice(0,r));if(!n)return;let s=lc(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 zh(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)||Oi(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 se("bad-archive",Bh(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 se("bad-archive",`${e.name} is encrypted`);let r=e.zip.getData;if(!r)throw new se("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 se("bad-archive",`${e.name} is encrypted`);if(e.method!==ac&&e.method!==Fd)throw new se("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===ac)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 se("bad-archive",`${e.name} has no known location`);let r=await this.handle.read({start:e.zip.offset,end:e.zip.offset+Cd-1}),n=new DataView(r.buffer,r.byteOffset,r.byteLength);if(n.getUint32(0,!0)!==Fh)throw new se("bad-archive",`${e.name} has a malformed local header`);let s=n.getUint16(26,!0),i=n.getUint16(28,!0),o=e.zip.offset+Cd+s+i;return{start:o,end:o+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 Md(t,e){return xd(t)?{kind:"inline"}:e.uncompressedSize<=16777216?{kind:"inline"}:e.compressionMethod===ac?{kind:"slice"}:e.compressionMethod===Fd?{kind:"chunked"}:{kind:"inline"}}function Mh(t,e){return{name:t,size:e.uncompressedSize,compressedSize:e.compressedSize,method:e.method,strategy:Md(t,{uncompressedSize:e.uncompressedSize,compressionMethod:e.method}),dataStart:e.dataStart,encrypted:e.encrypted}}function Ld(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 Ud(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 se("bad-archive","h5p.json is not readable JSON",{cause:r})}}function Oi(t){return[`${t.machineName}-${t.majorVersion}.${t.minorVersion}`,t.machineName]}function cc(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=cc(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 lc(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 kh(t,e){let r=e.preloadedDependencies;if(!Array.isArray(r))return[];let n=vd(t);return r.filter(s=>Oi(s).some(i=>t.has(`${i}/library.json`))?!1:!lc(n,{machineName:s.machineName,major:Number(s.majorVersion),minor:Number(s.minorVersion)}))}function zh(t,e){let r=e.preloadedDependencies;if(!Array.isArray(r)||r.length===0)return{mainLibrary:e.mainLibrary,folders:[],all:!0};let n=kh(t,e);return n.length===0?null:{mainLibrary:e.mainLibrary,folders:n.map(s=>Oi(s)[0]),all:n.length===r.length}}function Bh(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 kd=256*1024;function fc(t){let{store:e,entry:r,totalSize:n,onProgress:s}=t,i=t.startOffset??0;if(i%8388608!==0)throw new Error("A resumed write must start on a chunk boundary");let o=i/8388608,a=new Uint8Array(8388608),c=0,f=i,R=kd,p=async l=>{await e.setMeta(r,{size:l?f:n,available:f,complete:l}),s?.(f)};return new WritableStream({async write(l){let h=0;for(;h<l.length;){let m=8388608-c,d=Math.min(m,l.length-h);a.set(l.subarray(h,h+d),c),c+=d,h+=d,f+=d,c===8388608?(await e.putChunk(r,o,a),o+=1,a=new Uint8Array(8388608),c=0,R=kd,await p(!1)):c>=R&&(await e.putChunk(r,o,a.subarray(0,c)),R=c*2,await p(!1))}},async close(){c>0&&await e.putChunk(r,o,a.subarray(0,c)),await p(!0)},abort(){}})}Bi({useWebWorkers:!1});var zd=self,Yr=new Map,Bd=new Map,Di=new Map;function Yh(t,e){let r=Di.get(t);if(r)return r;let n=(async()=>{let s=await Dd(t,e,Bd.get(t));return Ni.open(t,s,{requireLibraries:!1})})();return Di.set(t,n),n.catch(()=>Di.delete(t)),n}function Er(t){zd.postMessage(t)}Od(t=>{Di.delete(t)});function Wh(t,e){return fd(t,e??Ze)}zd.addEventListener("message",t=>{let e=t.data;if(e){if(e.type==="abort"){for(let[r,n]of Yr)r.startsWith(ud(e.pkgId))&&(n.abort(),Yr.delete(r));return}e.file&&Bd.set(e.pkgId,e.file),Gh(e)}});async function Gh(t){let e=t.type==="extract"?t.entry:void 0,r=Wh(t.pkgId,e);if(Yr.has(r))return;let n=new AbortController;Yr.set(r,n);try{await navigator.locks.request(r,{signal:n.signal},async()=>{t.type==="download"?await Vh(t.pkgId,t.source,n.signal):await Xh(t.pkgId,t.entry,t.source,n.signal)})}catch(s){if(n.signal.aborted)return;let i=Kh(s),o=s instanceof Error?s.message:String(s);e&&await jh(t.pkgId,e,i,o),Er({type:"failed",pkgId:t.pkgId,entry:e,code:i,message:o})}finally{Yr.get(r)===n&&Yr.delete(r)}}async function Vh(t,e,r){if(e.type!=="chunked")throw new se("network","Only a chunked source is downloaded ahead of play");let n=new At(t),s=await n.getArchiveMeta();if(s?.complete){Er({type:"done",pkgId:t,size:s.size??s.available});return}let i=s?Math.floor(s.available/8388608)*8388608:0,o=await fetch(e.url,{signal:r,cache:"no-store",headers:i>0?{Range:`bytes=${i}-`}:void 0});if(i>0&&o.status!==206&&(i=0,o.status!==200&&(o=await fetch(e.url,{signal:r,cache:"no-store"}))),!o.ok&&o.status!==206)throw new se("network",`${e.url} returned ${o.status}`);if(!o.body)throw new se("network","The archive response had no body");let a=o.headers.get("content-length"),c=a?Number(a)+i:e.size,f=new Si;i>0&&await n.readRange(Ze,{start:0,end:i-1}).pipeTo(new WritableStream({write:d=>f.push(d)}));let R=-1,p=Promise.resolve(),l=d=>{d&&f.finish();let E=f.snapshot();return!d&&E.entries.length===R||(R=E.entries.length,p=p.then(()=>n.setForwardIndex(E))),p},h=new TransformStream({transform(d,E){f.push(d),E.enqueue(d)}});try{await o.body.pipeThrough(h).pipeTo(fc({store:n,entry:Ze,totalSize:c,startOffset:i,onProgress:d=>{Er({type:"progress",pkgId:t,loaded:d,total:c}),l(!1)}}),{signal:r})}catch(d){throw d instanceof st?new st(`${await nc("this package",c)} Its host does not support partial downloads, so the whole archive has to be stored before it can play.`):d}await l(!0);let m=await n.getArchiveMeta();Er({type:"done",pkgId:t,size:m?.size??m?.available??0})}async function Xh(t,e,r,n){let s=new At(t),i=await s.getMeta(e);if(i?.complete){Er({type:"done",pkgId:t,entry:e,size:i.size??i.available});return}let o=await Yh(t,r),a=o.get(e);if(!a)throw new se("bad-archive",`${e} is not in the archive`);let{entry:c}=a;await s.setMeta(e,{size:c.size,available:0,complete:!1});let f=Zh(o.handle,t,e);try{await o.inflate(c).pipeTo(fc({store:s,entry:e,totalSize:c.size,onProgress:R=>Er({type:"progress",pkgId:t,entry:e,loaded:R,total:c.size})}),{signal:n})}catch(R){throw R instanceof st?new st(await nc("this file",c.size)):R}finally{f()}Er({type:"done",pkgId:t,entry:e,size:c.size})}function Zh(t,e,r){if(t.received===void 0)return()=>{};let n=t.received,s=setInterval(()=>{let i=t.received??n;i!==n&&(n=i,Td(e,r,i))},1e3);return()=>clearInterval(s)}async function jh(t,e,r,n){let s=new At(t);try{let i=await s.getMeta(e);await s.discardChunks(e),await s.setMeta(e,{size:i?.size??null,available:0,complete:!1,error:{code:r,message:n,at:Date.now()}})}catch{}}function Kh(t){return t instanceof se?t.code:t instanceof st||Qa(t)?"quota":"network"}})();\n',p="0.1.1",z="https://api.h5p.org/v1/content-types/";class o extends Error{constructor(e,r,t){super(r,t),this.name="PlayerError",this.code=e,this.missingLibraries=t?.missingLibraries}}function x(n,e){return`h5p:${n}:${e}`}const U=new TextEncoder;async function I(n){const e=await crypto.subtle.digest("SHA-256",U.encode(n));return Array.from(new Uint8Array(e)).map(r=>r.toString(16).padStart(2,"0")).join("")}async function g(n){return(await I(n)).slice(0,32)}function y(n,e){return g(`url\0${n}\0${e??""}`)}function T(n){return g(`file\0${n.name}\0${n.size}\0${n.lastModified}`)}async function d(n){try{await n.body?.cancel()}catch{}}function D(n){if(!n)return null;const e=/\/(\d+)$/.exec(n.trim());return e?Number(e[1]):null}function F(n){return n.headers.get("etag")??n.headers.get("last-modified")}async function b(n,e){let r;try{r=await fetch(n,{headers:{Range:"bytes=0-0"},signal:e,cache:"no-store"})}catch(a){throw e?.aborted?a:new o("no-cors",`Cannot read ${n} from the browser (no CORS headers?)`,{cause:a})}const t=F(r);if(!r.ok&&r.status!==206)throw await d(r),new o("network",`${n} returned ${r.status}`);if(r.status===206){const a=D(r.headers.get("content-range"));await d(r);const s=a??await C(n,e);return s===null?{type:"chunked",url:n,size:null,validator:t}:{type:"range-http",url:n,size:s,validator:t}}const i=r.headers.get("content-length");return await d(r),{type:"chunked",url:n,size:i?Number(i):null,validator:t}}async function C(n,e){const r=await fetch(n,{signal:e,cache:"no-store"}),t=r.headers.get("content-length");return await d(r),t?Number(t):null}function E(n){const e=n.endsWith("/")?n:`${n}/`,r=e.endsWith("h5p/")?e:`${e}h5p/`;return{base:r,virtual:`${r}virtual/`,frame:`${r}frame/`,ping:`${r}virtual/_ping`}}const L=new URL("./h5p-sw.js",import.meta.url).href,O=new URL("./frame-assets/",import.meta.url).href,w={mainJs:"main.bundle.js",frameJs:"frame.bundle.js",frameCss:"styles/h5p.css"},S=`
1250
2
  :host { display: block; position: relative; width: 100%; }
1251
3
  :host([hidden]) { display: none !important; }
1252
-
1253
- /* H5P's own fullscreen targets the frame, which the browser sizes to the screen on its
1254
- own; this is for a host page that calls requestFullscreen on the element instead.
1255
- Without the important flag, the inline height auto-resize writes would pin it to the
1256
- content height while it is meant to be filling the screen. */
1257
4
  :host(:fullscreen) { height: 100% !important; width: 100% !important; }
1258
-
1259
- /* height: 100% covers a host given an explicit height; min-height: inherit covers one
1260
- given only a min-height, where a percentage height would resolve to auto and leave the
1261
- frame at an iframe's intrinsic 150px. */
1262
- .viewport {
1263
- display: flex;
1264
- flex-direction: column;
1265
- height: 100%;
1266
- min-height: inherit;
1267
- }
1268
-
5
+ .viewport { display: flex; flex-direction: column; height: 100%; min-height: inherit; }
1269
6
  iframe { display: block; flex: 1 1 auto; width: 100%; min-height: 0; border: 0; }
1270
- `;
1271
- let _ = null;
1272
- function hn(r) {
1273
- if ("adoptedStyleSheets" in r && typeof CSSStyleSheet.prototype.replaceSync == "function") {
1274
- _ || (_ = new CSSStyleSheet(), _.replaceSync(Le)), r.adoptedStyleSheets = [_];
1275
- return;
1276
- }
1277
- const e = document.createElement("style");
1278
- e.textContent = Le, r.prepend(e);
1279
- }
1280
- class pn extends HTMLElement {
1281
- constructor() {
1282
- super(), this.jobs = null, this.jobsUrl = null, this.routes = null, this.registration = null, this.currentFile = null, this.currentSource = null, this.load = null, this.connected = !1, this.internalState = "idle", this.internalPkgId = null, this.prefetchQueue = [], this.prefetching = null, this.onWindowMessage = (t) => {
1283
- const n = t.data;
1284
- if (n && t.source === this.iframe.contentWindow && t.origin === location.origin) {
1285
- if ("context" in n && n.context === "h5p") {
1286
- this.onResizerMessage(n);
1287
- return;
1288
- }
1289
- if (!(!("channel" in n) || n.channel !== "h5p-player") && !(this.internalPkgId && n.pkgId !== this.internalPkgId))
1290
- switch (n.type) {
1291
- case "ready":
1292
- this.setState("ready"), this.advancePrefetch(), this.dispatchEvent(new CustomEvent("ready", { detail: { pkgId: n.pkgId } }));
1293
- return;
1294
- case "xapi":
1295
- this.dispatchEvent(
1296
- new CustomEvent("xapi", { detail: { statement: n.statement, verb: n.verb } })
1297
- );
1298
- return;
1299
- case "finished":
1300
- this.dispatchEvent(new CustomEvent("finished", { detail: { statement: n.statement } }));
1301
- return;
1302
- case "error":
1303
- this.dispatchEvent(
1304
- new CustomEvent("error", {
1305
- detail: { code: "runtime", message: n.message }
1306
- })
1307
- ), this.setState("error");
1308
- return;
1309
- case "relay":
1310
- this.handleWorkerRequest(n.payload);
1311
- }
1312
- }
1313
- }, this.onServiceWorkerMessage = (t) => {
1314
- (t.data?.type === "need-job" || t.data?.type === "need-file") && this.handleWorkerRequest(t.data);
1315
- }, this.onWindowResize = () => {
1316
- this.iframe.contentWindow?.postMessage({ context: "h5p", action: "resize" }, location.origin);
1317
- };
1318
- const e = this.attachShadow({ mode: "open" });
1319
- e.innerHTML = `
7
+ `;let f=null;function N(n){if("adoptedStyleSheets"in n&&typeof CSSStyleSheet.prototype.replaceSync=="function"){f||(f=new CSSStyleSheet,f.replaceSync(S)),n.adoptedStyleSheets=[f];return}const e=document.createElement("style");e.textContent=S,n.prepend(e)}class m extends HTMLElement{constructor(){super(),this.jobs=null,this.jobsUrl=null,this.routes=null,this.registration=null,this.currentFile=null,this.currentSource=null,this.load=null,this.connected=!1,this.internalState="idle",this.internalPkgId=null,this.prefetchQueue=[],this.prefetching=null,this.onWindowMessage=r=>{const t=r.data;if(t&&r.source===this.iframe.contentWindow&&r.origin===location.origin){if("context"in t&&t.context==="h5p"){this.onResizerMessage(t);return}if(!(!("channel"in t)||t.channel!=="h5p-player")&&!(this.internalPkgId&&t.pkgId!==this.internalPkgId))switch(t.type){case"ready":this.setState("ready"),this.advancePrefetch(),this.dispatchEvent(new CustomEvent("ready",{detail:{pkgId:t.pkgId}}));return;case"xapi":this.dispatchEvent(new CustomEvent("xapi",{detail:{statement:t.statement,verb:t.verb}}));return;case"finished":this.dispatchEvent(new CustomEvent("finished",{detail:{statement:t.statement}}));return;case"error":this.dispatchEvent(new CustomEvent("error",{detail:{code:"runtime",message:t.message}})),this.internalState!=="ready"&&this.setState("error");return;case"relay":this.handleWorkerRequest(t.payload)}}},this.onServiceWorkerMessage=r=>{(r.data?.type==="need-job"||r.data?.type==="need-file")&&this.handleWorkerRequest(r.data)},this.onWindowResize=()=>{this.iframe.contentWindow?.postMessage({context:"h5p",action:"resize"},location.origin)};const e=this.attachShadow({mode:"open"});e.innerHTML=`
1320
8
  <div class="viewport">
1321
9
  <iframe part="frame" allow="fullscreen" title="H5P content"></iframe>
1322
10
  </div>
1323
- `, hn(e), this.iframe = e.querySelector("iframe");
1324
- }
1325
- static get observedAttributes() {
1326
- return ["src", "sw", "assets-base", "auto-resize", "libraries", "allow-origins", "preload"];
1327
- }
1328
- /* ---------------------------------------------------------------- public surface */
1329
- get src() {
1330
- return this.getAttribute("src");
1331
- }
1332
- set src(e) {
1333
- e === null ? this.removeAttribute("src") : this.setAttribute("src", e);
1334
- }
1335
- /**
1336
- * Whether to pull large deflated media before the content asks for it. `none` (the default)
1337
- * fetches an entry when the runtime requests it; `auto` starts once the content is up.
1338
- *
1339
- * Off by default because `auto` spends a learner's bandwidth on a video they may never reach —
1340
- * the host's call, not the element's. It is worth making for a package whose media cannot be
1341
- * streamed: see `PrefetchEntry`.
1342
- */
1343
- get preload() {
1344
- return this.getAttribute("preload") === "auto" ? "auto" : "none";
1345
- }
1346
- set preload(e) {
1347
- this.setAttribute("preload", e);
1348
- }
1349
- /** A `File` from a picker. Setting it loads, and takes precedence over `src`. */
1350
- get file() {
1351
- return this.currentFile;
1352
- }
1353
- set file(e) {
1354
- this.currentFile = e, this.connected && (e ? this.startLoad() : this.clear());
1355
- }
1356
- get state() {
1357
- return this.internalState;
1358
- }
1359
- get pkgId() {
1360
- return this.internalPkgId;
1361
- }
1362
- /** The resolved Service Worker scope the routes live under. Read-only, `null` until registered. */
1363
- get scope() {
1364
- return this.routes?.base ?? null;
1365
- }
1366
- /* ---------------------------------------------------------------- lifecycle */
1367
- connectedCallback() {
1368
- this.connected = !0, window.addEventListener("message", this.onWindowMessage), navigator.serviceWorker?.addEventListener("message", this.onServiceWorkerMessage), (this.src || this.currentFile) && this.startLoad();
1369
- }
1370
- disconnectedCallback() {
1371
- this.connected = !1, window.removeEventListener("message", this.onWindowMessage), window.removeEventListener("resize", this.onWindowResize), navigator.serviceWorker?.removeEventListener("message", this.onServiceWorkerMessage), this.abortLoad(), this.jobs?.terminate(), this.jobs = null, this.jobsUrl && URL.revokeObjectURL(this.jobsUrl), this.jobsUrl = null;
1372
- }
1373
- attributeChangedCallback(e, t, n) {
1374
- if (t !== n && this.connected) {
1375
- if (e === "src") {
1376
- if (this.currentFile = null, n === null) {
1377
- this.clear();
1378
- return;
1379
- }
1380
- this.startLoad();
1381
- return;
1382
- }
1383
- e === "auto-resize" && n === null && this.style.removeProperty("height");
1384
- }
1385
- }
1386
- /* ---------------------------------------------------------------- loading */
1387
- abortLoad() {
1388
- this.load?.abort(), this.load = null, this.prefetchQueue = [], this.prefetching = null, this.internalPkgId && this.postToJobs({ type: "abort", pkgId: this.internalPkgId });
1389
- }
1390
- /**
1391
- * Holds a shared lock on the package for as long as it is loaded here. Eviction — in this tab
1392
- * or any other — never picks a package with a lock under its prefix, so a learner mid-video is
1393
- * safe from a quota squeeze caused by a package loading somewhere else. Shared, so two tabs on
1394
- * the same package both hold it. Released when the load is aborted, which a new `src`,
1395
- * `clear()` and disconnection all do.
1396
- */
1397
- holdPackage(e, t) {
1398
- const n = navigator.locks;
1399
- if (!n) return;
1400
- const i = new Promise((s) => {
1401
- t.addEventListener("abort", () => s(), { once: !0 });
1402
- });
1403
- n.request(Ut(e, "playing"), { mode: "shared", signal: t }, () => i).catch(() => {
1404
- });
1405
- }
1406
- /** Empties the player without an error: what removing `src`, or setting `file` to null, means. */
1407
- clear() {
1408
- this.abortLoad(), this.iframe.removeAttribute("src"), this.internalPkgId = null, this.setState("idle");
1409
- }
1410
- async startLoad() {
1411
- this.abortLoad();
1412
- const e = new AbortController();
1413
- this.load = e;
1414
- const { signal: t } = e;
1415
- this.iframe.removeAttribute("src"), this.internalPkgId = null;
1416
- try {
1417
- this.setState("probing");
1418
- const n = await this.ensureWorker();
1419
- if (t.aborted) return;
1420
- const { descriptor: i, pkgId: s } = await this.resolveSource(t);
1421
- if (t.aborted || (this.currentSource = i, this.internalPkgId = s, this.holdPackage(s, t), await this.send({ type: "register", record: this.recordFor(s, i) }), t.aborted)) return;
1422
- i.type === "file" && this.currentFile && await this.send({ type: "file", pkgId: s, file: this.currentFile });
1423
- const c = `${n.frame}${s}`;
1424
- let u;
1425
- if (i.type === "chunked" ? (this.setState("downloading"), u = await this.downloadAndIndex(s, i, t, c)) : (this.setState("indexing"), u = await this.index(s, t)), t.aborted) return;
1426
- this.prefetchQueue = u.map((w) => w.entry), this.iframe.getAttribute("src") !== c ? this.iframe.src = c : this.internalState === "ready" && this.advancePrefetch();
1427
- } catch (n) {
1428
- if (t.aborted) return;
1429
- this.fail(n);
1430
- }
1431
- }
1432
- /**
1433
- * Downloads a package from a host that ignores `Range`, and boots as soon as the worker's
1434
- * forward index says the runtime has what it needs — for a libraries-first export, long before
1435
- * the media has finished. Each progress report is a chance to ask; a "not yet" is not an error.
1436
- * The final index after the download is the real one, from the central directory: it swaps the
1437
- * worker onto it, and is where a package missing libraries is found out.
1438
- */
1439
- async downloadAndIndex(e, t, n, i) {
1440
- let s = !1, c = null;
1441
- const u = () => {
1442
- s || c || n.aborted || (c = this.send({ type: "index", pkgId: e }).then((w) => {
1443
- n.aborted || s || w.ok && w.type === "indexed" && w.ready !== !1 && (s = !0, this.iframe.src = i);
1444
- }).catch(() => {
1445
- }).finally(() => {
1446
- c = null;
1447
- }));
1448
- };
1449
- return await this.runDownload(e, t, n, "download", u), n.aborted ? [] : (c && await c, s || this.setState("indexing"), this.index(e, n));
1450
- }
1451
- /**
1452
- * Indexes the package, and if it turns out to declare libraries it does not carry, fetches them
1453
- * from the configured source and indexes again.
1454
- *
1455
- * Without a `libraries` attribute this is one call that either works or reports exactly what is
1456
- * missing. Reaching out to a third party is never something the element decides on its own.
1457
- */
1458
- async index(e, t) {
1459
- try {
1460
- return Ne(await this.send({ type: "index", pkgId: e }));
1461
- } catch (n) {
1462
- const i = n instanceof I ? n.missingLibraries : void 0, s = this.librarySource();
1463
- if (!i || !s) throw n;
1464
- return await this.supplyLibraries(e, i, s, t), t.aborted ? [] : Ne(await this.send({ type: "index", pkgId: e }));
1465
- }
1466
- }
1467
- /**
1468
- * Registers a second package as the source of the libraries this one is missing.
1469
- *
1470
- * Every failure along the way — an unreachable URL, a bundle that is not an archive, one that
1471
- * turns out not to have them either — is reported as one thing: these libraries are missing and
1472
- * this is where the attempt to supply them stopped.
1473
- */
1474
- async supplyLibraries(e, t, n, i) {
1475
- const s = wn(t, n);
1476
- try {
1477
- const c = await Te(s, i), u = await Se(s, c.validator), w = {
1478
- type: "chunked",
1479
- url: s,
1480
- size: c.size,
1481
- validator: c.validator
1482
- };
1483
- if (await this.send({
1484
- type: "register",
1485
- record: { ...this.recordFor(u, w), role: "libraries" }
1486
- }), this.setState("downloading"), await this.runDownload(u, w, i, "libraries"), i.aborted) return;
1487
- this.setState("indexing"), await this.send({ type: "index", pkgId: u }), await this.send({ type: "attach-libraries", pkgId: e, libraryPkgId: u });
1488
- } catch (c) {
1489
- if (i.aborted) throw c;
1490
- const u = c instanceof Error ? c.message : String(c);
1491
- throw new I(
1492
- "bad-archive",
1493
- `This package is missing ${t.folders.join(", ")}, and ${s} did not supply them: ${u}`,
1494
- { cause: c, missingLibraries: t }
1495
- );
1496
- }
1497
- }
1498
- /**
1499
- * Origins the host vouches for, added to the frame's policy. For content that reaches somewhere
1500
- * the built-in list cannot know about — a tenant's own Panopto host, an in-house CDN. The
1501
- * worker drops anything that is not plainly a host.
1502
- */
1503
- allowOrigins() {
1504
- const e = this.getAttribute("allow-origins")?.trim();
1505
- return e ? e.split(/\s+/) : [];
1506
- }
1507
- librarySource() {
1508
- const e = this.getAttribute("libraries")?.trim();
1509
- return e ? e === "hub" ? "hub" : { url: e } : null;
1510
- }
1511
- async resolveSource(e) {
1512
- if (this.currentFile) {
1513
- const s = this.currentFile;
1514
- return { descriptor: {
1515
- type: "file",
1516
- name: s.name,
1517
- size: s.size,
1518
- lastModified: s.lastModified
1519
- }, pkgId: await Tt(s) };
1520
- }
1521
- const t = this.src;
1522
- if (!t) throw new I("network", "No src or file was set");
1523
- const n = new URL(t, location.href).href, i = await Te(n, e);
1524
- return { descriptor: i, pkgId: await Se(n, i.validator) };
1525
- }
1526
- recordFor(e, t) {
1527
- return {
1528
- pkgId: e,
1529
- source: t,
1530
- frameAssets: this.frameAssets(),
1531
- allowOrigins: this.allowOrigins(),
1532
- status: "registered",
1533
- lastPlayed: Date.now(),
1534
- version: de
1535
- };
1536
- }
1537
- frameAssets() {
1538
- const e = this.getAttribute("assets-base")?.trim(), t = e ? new URL(e.endsWith("/") ? e : `${e}/`, location.href).href : dn;
1539
- return {
1540
- mainJs: new URL(fe.mainJs, t).href,
1541
- frameJs: new URL(fe.frameJs, t).href,
1542
- frameCss: new URL(fe.frameCss, t).href
1543
- };
1544
- }
1545
- /** Runs the pre-play download for a host that does not honour `Range`, reporting progress. */
1546
- runDownload(e, t, n, i = "download", s) {
1547
- return new Promise((c, u) => {
1548
- const w = this.ensureJobs(), g = (b) => {
1549
- const y = b.data;
1550
- if (!(y.pkgId !== e || y.entry)) {
1551
- if (y.type === "progress") {
1552
- this.emitProgress({
1553
- phase: i,
1554
- loaded: y.loaded,
1555
- total: y.total,
1556
- fraction: y.total ? y.loaded / y.total : null
1557
- }), s?.();
1558
- return;
1559
- }
1560
- w.removeEventListener("message", g), y.type === "done" ? c() : u(new I(y.code, y.message));
1561
- }
1562
- };
1563
- w.addEventListener("message", g), n.addEventListener("abort", () => {
1564
- w.removeEventListener("message", g), c();
1565
- }), this.postToJobs({ type: "download", pkgId: e, source: t });
1566
- });
1567
- }
1568
- /* ---------------------------------------------------------------- Service Worker */
1569
- /**
1570
- * Finds the routes, registering our own worker unless a host has already mounted the handlers
1571
- * into theirs. Registration uses an explicit `h5p/` sub-scope, so a host worker living in the
1572
- * same directory — or at `/`, for a root-placed `h5p-sw.js` — is never displaced.
1573
- */
1574
- async ensureWorker() {
1575
- if (this.routes && this.registration) {
1576
- if (await mn(this.registration)) return this.routes;
1577
- this.routes = null, this.registration = null;
1578
- }
1579
- if (!("serviceWorker" in navigator))
1580
- throw new I(
1581
- "no-worker",
1582
- "This browser has no Service Worker support, or the page is not on https/localhost"
1583
- );
1584
- const e = await this.findMountedRoutes();
1585
- if (e)
1586
- return this.routes = e.routes, this.registration = e.registration, e.routes;
1587
- const t = this.getAttribute("sw")?.trim() || fn, n = new URL(t, location.href);
1588
- if (n.origin !== location.origin)
1589
- throw new I("no-worker", "The Service Worker script must be served same-origin");
1590
- const i = new URL("h5p/", n).href;
1591
- let s;
1592
- try {
1593
- s = await navigator.serviceWorker.register(n.href, { scope: i });
1594
- } catch (c) {
1595
- throw new I("no-worker", `Could not register ${n.href}`, { cause: c });
1596
- }
1597
- return await gn(s), this.registration = s, this.routes = De(s.scope), this.warnOnVersionMismatch(), this.routes;
1598
- }
1599
- /** A host that enforces one worker mounts our handlers in theirs; those routes answer `_ping`. */
1600
- async findMountedRoutes() {
1601
- if (!navigator.serviceWorker.controller) return null;
1602
- try {
1603
- const e = await navigator.serviceWorker.ready, t = De(e.scope), n = await fetch(t.ping, { cache: "no-store" });
1604
- if (!n.ok) return null;
1605
- const i = await n.json();
1606
- return Oe(i.version), { routes: t, registration: e };
1607
- } catch {
1608
- return null;
1609
- }
1610
- }
1611
- /**
1612
- * Asks the worker its version over the control channel rather than over the `_ping` route. The
1613
- * route only answers for a client the worker controls, and the host page deliberately is not
1614
- * one — our scope is a sub-directory it does not sit under. `postMessage` to the registration's
1615
- * own worker has no such requirement.
1616
- */
1617
- async warnOnVersionMismatch() {
1618
- try {
1619
- const e = await this.send({ type: "ping" });
1620
- e.ok && e.type === "pong" && Oe(e.version);
1621
- } catch {
1622
- }
1623
- }
1624
- /** Sends a control message to the worker and waits for its reply on a private port. */
1625
- async send(e) {
1626
- const t = this.registration?.active;
1627
- if (!t) throw new I("no-worker", "The Service Worker is not active");
1628
- const n = await new Promise((i, s) => {
1629
- const c = new MessageChannel(), u = setTimeout(() => {
1630
- c.port1.close(), s(new I("no-worker", `The worker did not answer "${e.type}"`));
1631
- }, 3e4);
1632
- c.port1.onmessage = (w) => {
1633
- clearTimeout(u), c.port1.close(), i(w.data);
1634
- }, t.postMessage(e, [c.port2]);
1635
- });
1636
- if (!n.ok)
1637
- throw new I(n.code, n.message, { missingLibraries: n.missingLibraries });
1638
- return n;
1639
- }
1640
- /* ---------------------------------------------------------------- Jobs worker */
1641
- ensureJobs() {
1642
- if (this.jobs) return this.jobs;
1643
- const e = new Blob([xt], { type: "text/javascript" });
1644
- return this.jobsUrl = URL.createObjectURL(e), this.jobs = new Worker(this.jobsUrl), this.jobs.addEventListener("message", (t) => {
1645
- const n = t.data;
1646
- n.type === "progress" && n.entry && this.emitProgress({
1647
- phase: "extract",
1648
- entry: n.entry,
1649
- loaded: n.loaded,
1650
- total: n.total,
1651
- fraction: n.total ? n.loaded / n.total : null
1652
- }), (n.type === "done" || n.type === "failed") && n.entry && n.entry === this.prefetching && (this.prefetching = null, this.advancePrefetch()), n.type === "failed" && n.entry && this.dispatchEvent(
1653
- new CustomEvent("error", {
1654
- detail: { code: n.code, message: `${n.entry}: ${n.message}` }
1655
- })
1656
- );
1657
- }), this.jobs;
1658
- }
1659
- /**
1660
- * Starts the next queued entry, one at a time. Serial rather than parallel: these are whole
1661
- * videos, and running two halves the rate of the one the learner reaches first. A demand
1662
- * request from the runtime is not queued behind this — it is posted straight through, and the
1663
- * Jobs worker's in-flight map collapses the two if they name the same entry.
1664
- */
1665
- advancePrefetch() {
1666
- if (this.preload !== "auto" || this.prefetching) return;
1667
- const e = this.prefetchQueue.shift();
1668
- if (!e) return;
1669
- const t = this.internalPkgId, n = this.currentSource;
1670
- !t || !n || (this.prefetching = e, this.postToJobs({ type: "extract", pkgId: t, entry: e, source: n }));
1671
- }
1672
- postToJobs(e) {
1673
- if (e.type === "abort" && !this.jobs) return;
1674
- const t = this.ensureJobs();
1675
- if (e.type !== "abort" && this.currentFile && this.currentSource?.type === "file") {
1676
- t.postMessage({ ...e, file: this.currentFile });
1677
- return;
1678
- }
1679
- t.postMessage(e);
1680
- }
1681
- handleWorkerRequest(e) {
1682
- if (e.pkgId === this.internalPkgId) {
1683
- if (e.type === "need-file") {
1684
- if (!this.currentFile) return;
1685
- this.send({ type: "file", pkgId: e.pkgId, file: this.currentFile }).catch(() => {
1686
- });
1687
- return;
1688
- }
1689
- this.currentSource && this.postToJobs({
1690
- type: "extract",
1691
- pkgId: e.pkgId,
1692
- entry: e.entry,
1693
- source: this.currentSource
1694
- });
1695
- }
1696
- }
1697
- /* ---------------------------------------------------------------- H5P's resizer protocol */
1698
- /**
1699
- * The embedder half of H5P's own iframe resizing, the same exchange `h5p-resizer.js` implements
1700
- * for a site embedding h5p.org content.
1701
- *
1702
- * H5P drives it from the `resize` events content types raise when they actually change — a
1703
- * dialog opening, an interaction loading, an image arriving. Watching the frame's DOM from the
1704
- * outside would both miss those and fire on changes that are not resizes.
1705
- */
1706
- onResizerMessage(e) {
1707
- const t = (n, i = {}) => {
1708
- this.iframe.contentWindow?.postMessage({ ...i, context: "h5p", action: n }, location.origin);
1709
- };
1710
- switch (e.action) {
1711
- case "hello":
1712
- this.iframe.getBoundingClientRect(), window.addEventListener("resize", this.onWindowResize), t("hello");
1713
- return;
1714
- case "prepareResize": {
1715
- const { scrollHeight: n = 0, clientHeight: i = 0 } = e;
1716
- if (this.iframe.clientHeight === n && n === i) return;
1717
- this.hasAttribute("auto-resize") && i > 0 && (this.style.height = `${i}px`), t("resizePrepared");
1718
- return;
1719
- }
1720
- case "resize": {
1721
- const n = e.scrollHeight ?? 0;
1722
- if (n <= 0) return;
1723
- this.dispatchEvent(new CustomEvent("resize", { detail: { height: n } })), this.hasAttribute("auto-resize") && (this.style.height = `${n}px`);
1724
- return;
1725
- }
1726
- }
1727
- }
1728
- /* ---------------------------------------------------------------- events out */
1729
- setState(e) {
1730
- this.internalState !== e && (this.internalState = e, this.setAttribute("state", e), this.dispatchEvent(new CustomEvent("statechange", { detail: { state: e } })));
1731
- }
1732
- emitProgress(e) {
1733
- this.dispatchEvent(new CustomEvent("progress", { detail: e }));
1734
- }
1735
- fail(e) {
1736
- const t = e instanceof I ? e.code : "network", n = e instanceof Error ? e.message : String(e), i = e instanceof I ? e.missingLibraries : void 0;
1737
- this.setState("error"), this.dispatchEvent(
1738
- new CustomEvent("error", { detail: { code: t, message: n, missingLibraries: i } })
1739
- );
1740
- }
1741
- }
1742
- function Ne(r) {
1743
- return r.ok && r.type === "indexed" ? r.prefetch ?? [] : [];
1744
- }
1745
- function wn(r, e) {
1746
- if (e !== "hub") return new URL(e.url, location.href).href;
1747
- if (!r.mainLibrary)
1748
- throw new I(
1749
- "bad-archive",
1750
- "h5p.json names no mainLibrary, so there is nothing to ask the hub for",
1751
- { missingLibraries: r }
1752
- );
1753
- return `${zt}${encodeURIComponent(r.mainLibrary)}`;
1754
- }
1755
- async function mn(r) {
1756
- try {
1757
- return (await navigator.serviceWorker.getRegistration(r.scope))?.active != null;
1758
- } catch {
1759
- return !1;
1760
- }
1761
- }
1762
- function gn(r) {
1763
- const e = r.active ?? r.waiting ?? r.installing;
1764
- return e ? e.state === "activated" ? Promise.resolve(e) : new Promise((t, n) => {
1765
- const i = () => {
1766
- e.state === "activated" ? (e.removeEventListener("statechange", i), t(r.active ?? e)) : e.state === "redundant" && (e.removeEventListener("statechange", i), n(new I("no-worker", "The Service Worker became redundant")));
1767
- };
1768
- e.addEventListener("statechange", i);
1769
- }) : Promise.reject(new I("no-worker", "The registration has no worker"));
1770
- }
1771
- function Oe(r) {
1772
- r && r !== de && console.warn(
1773
- `[h5p-player] element is ${de} but the Service Worker is ${r}. Re-copy h5p-sw.js so the two match.`
1774
- );
1775
- }
1776
- customElements.get("h5p-player") || customElements.define("h5p-player", pn);
1777
- export {
1778
- pn as H5PPlayerElement,
1779
- pn as default
1780
- };
11
+ `,N(e),this.iframe=e.querySelector("iframe")}static get observedAttributes(){return["src","sw","assets-base","auto-resize","libraries","allow-origins","preload"]}get src(){return this.getAttribute("src")}set src(e){e===null?this.removeAttribute("src"):this.setAttribute("src",e)}get preload(){return this.getAttribute("preload")==="auto"?"auto":"none"}set preload(e){this.setAttribute("preload",e)}get file(){return this.currentFile}set file(e){this.currentFile=e,this.connected&&(e?this.startLoad():this.clear())}get state(){return this.internalState}get pkgId(){return this.internalPkgId}get scope(){return this.routes?.base??null}connectedCallback(){this.connected=!0,window.addEventListener("message",this.onWindowMessage),navigator.serviceWorker?.addEventListener("message",this.onServiceWorkerMessage),(this.src||this.currentFile)&&this.startLoad()}disconnectedCallback(){this.connected=!1,window.removeEventListener("message",this.onWindowMessage),window.removeEventListener("resize",this.onWindowResize),navigator.serviceWorker?.removeEventListener("message",this.onServiceWorkerMessage),this.abortLoad(),this.jobs?.terminate(),this.jobs=null,this.jobsUrl&&URL.revokeObjectURL(this.jobsUrl),this.jobsUrl=null}attributeChangedCallback(e,r,t){if(r!==t&&this.connected){if(e==="src"){if(this.currentFile=null,t===null){this.clear();return}this.startLoad();return}e==="auto-resize"&&t===null&&this.style.removeProperty("height")}}abortLoad(){this.load?.abort(),this.load=null,this.prefetchQueue=[],this.prefetching=null,this.internalPkgId&&this.postToJobs({type:"abort",pkgId:this.internalPkgId})}holdPackage(e,r){const t=navigator.locks;if(!t)return;const i=new Promise(a=>{r.addEventListener("abort",()=>a(),{once:!0})});t.request(x(e,"playing"),{mode:"shared",signal:r},()=>i).catch(()=>{})}clear(){this.abortLoad(),this.iframe.removeAttribute("src"),this.internalPkgId=null,this.setState("idle")}async startLoad(){this.abortLoad();const e=new AbortController;this.load=e;const{signal:r}=e;this.iframe.removeAttribute("src"),this.internalPkgId=null;try{this.setState("probing");const t=await this.ensureWorker();if(r.aborted)return;const{descriptor:i,pkgId:a}=await this.resolveSource(r);if(r.aborted||(this.currentSource=i,this.internalPkgId=a,this.holdPackage(a,r),await this.send({type:"register",record:this.recordFor(a,i)}),r.aborted))return;i.type==="file"&&this.currentFile&&await this.send({type:"file",pkgId:a,file:this.currentFile});const s=`${t.frame}${a}`;let l;if(i.type==="chunked"?(this.setState("downloading"),l=await this.downloadAndIndex(a,i,r,s)):(this.setState("indexing"),l=await this.index(a,r)),r.aborted)return;this.prefetchQueue=l.map(c=>c.entry),this.iframe.getAttribute("src")!==s?this.iframe.src=s:this.internalState==="ready"&&this.advancePrefetch()}catch(t){if(r.aborted)return;this.fail(t)}}async downloadAndIndex(e,r,t,i){let a=!1,s=null;const l=()=>{a||s||t.aborted||(s=this.send({type:"index",pkgId:e}).then(c=>{t.aborted||a||c.ok&&c.type==="indexed"&&c.ready!==!1&&(a=!0,this.iframe.src=i)}).catch(()=>{}).finally(()=>{s=null}))};return await this.runDownload(e,r,t,"download",l),t.aborted?[]:(s&&await s,a||this.setState("indexing"),this.index(e,t))}async index(e,r){try{return k(await this.send({type:"index",pkgId:e}))}catch(t){const i=t instanceof o?t.missingLibraries:void 0,a=this.librarySource();if(!i||!a)throw t;return await this.supplyLibraries(e,i,a,r),r.aborted?[]:k(await this.send({type:"index",pkgId:e}))}}async supplyLibraries(e,r,t,i){const a=M(r,t);try{const s=await b(a,i),l=await y(a,s.validator),c={type:"chunked",url:a,size:s.size,validator:s.validator};if(await this.send({type:"register",record:{...this.recordFor(l,c),role:"libraries"}}),this.setState("downloading"),await this.runDownload(l,c,i,"libraries"),i.aborted)return;this.setState("indexing"),await this.send({type:"index",pkgId:l}),await this.send({type:"attach-libraries",pkgId:e,libraryPkgId:l})}catch(s){if(i.aborted)throw s;const l=s instanceof Error?s.message:String(s);throw new o("bad-archive",`This package is missing ${r.folders.join(", ")}, and ${a} did not supply them: ${l}`,{cause:s,missingLibraries:r})}}allowOrigins(){const e=this.getAttribute("allow-origins")?.trim();return e?e.split(/\s+/):[]}librarySource(){const e=this.getAttribute("libraries")?.trim();return e?e==="hub"?"hub":{url:e}:null}async resolveSource(e){if(this.currentFile){const a=this.currentFile;return{descriptor:{type:"file",name:a.name,size:a.size,lastModified:a.lastModified},pkgId:await T(a)}}const r=this.src;if(!r)throw new o("network","No src or file was set");const t=new URL(r,location.href).href,i=await b(t,e);return{descriptor:i,pkgId:await y(t,i.validator)}}recordFor(e,r){return{pkgId:e,source:r,frameAssets:this.frameAssets(),allowOrigins:this.allowOrigins(),status:"registered",lastPlayed:Date.now(),version:p}}frameAssets(){const e=this.getAttribute("assets-base")?.trim(),r=e?new URL(e.endsWith("/")?e:`${e}/`,location.href).href:O;return{mainJs:new URL(w.mainJs,r).href,frameJs:new URL(w.frameJs,r).href,frameCss:new URL(w.frameCss,r).href}}runDownload(e,r,t,i="download",a){return new Promise((s,l)=>{const c=this.ensureJobs(),h=v=>{const u=v.data;if(!(u.pkgId!==e||u.entry)){if(u.type==="progress"){this.emitProgress({phase:i,loaded:u.loaded,total:u.total,fraction:u.total?u.loaded/u.total:null}),a?.();return}c.removeEventListener("message",h),u.type==="done"?s():l(new o(u.code,u.message))}};c.addEventListener("message",h),t.addEventListener("abort",()=>{c.removeEventListener("message",h),s()}),this.postToJobs({type:"download",pkgId:e,source:r})})}async ensureWorker(){if(this.routes&&this.registration){if(await P(this.registration))return this.routes;this.routes=null,this.registration=null}if(!("serviceWorker"in navigator))throw new o("no-worker","This browser has no Service Worker support, or the page is not on https/localhost");const e=await this.findMountedRoutes();if(e)return this.routes=e.routes,this.registration=e.registration,e.routes;const r=this.getAttribute("sw")?.trim()||L,t=new URL(r,location.href);if(t.origin!==location.origin)throw new o("no-worker","The Service Worker script must be served same-origin");const i=new URL("h5p/",t).href;let a;try{a=await navigator.serviceWorker.register(t.href,{scope:i})}catch(s){throw new o("no-worker",`Could not register ${t.href}`,{cause:s})}return await B(a),this.registration=a,this.routes=E(a.scope),this.warnOnVersionMismatch(),this.routes}async findMountedRoutes(){if(!navigator.serviceWorker.controller)return null;try{const e=await navigator.serviceWorker.ready,r=E(e.scope),t=await fetch(r.ping,{cache:"no-store"});if(!t.ok)return null;const i=await t.json();return R(i.version),{routes:r,registration:e}}catch{return null}}async warnOnVersionMismatch(){try{const e=await this.send({type:"ping"});e.ok&&e.type==="pong"&&R(e.version)}catch{}}async send(e){const r=this.registration?.active;if(!r)throw new o("no-worker","The Service Worker is not active");const t=await new Promise((i,a)=>{const s=new MessageChannel,l=setTimeout(()=>{s.port1.close(),a(new o("no-worker",`The worker did not answer "${e.type}"`))},3e4);s.port1.onmessage=c=>{clearTimeout(l),s.port1.close(),i(c.data)},r.postMessage(e,[s.port2])});if(!t.ok)throw new o(t.code,t.message,{missingLibraries:t.missingLibraries});return t}ensureJobs(){if(this.jobs)return this.jobs;const e=new Blob([A],{type:"text/javascript"});return this.jobsUrl=URL.createObjectURL(e),this.jobs=new Worker(this.jobsUrl),this.jobs.addEventListener("message",r=>{const t=r.data;t.type==="progress"&&t.entry&&this.emitProgress({phase:"extract",entry:t.entry,loaded:t.loaded,total:t.total,fraction:t.total?t.loaded/t.total:null}),(t.type==="done"||t.type==="failed")&&t.entry&&t.entry===this.prefetching&&(this.prefetching=null,this.advancePrefetch()),t.type==="failed"&&t.entry&&this.dispatchEvent(new CustomEvent("error",{detail:{code:t.code,message:`${t.entry}: ${t.message}`}}))}),this.jobs}advancePrefetch(){if(this.preload!=="auto"||this.prefetching)return;const e=this.prefetchQueue.shift();if(!e)return;const r=this.internalPkgId,t=this.currentSource;!r||!t||(this.prefetching=e,this.postToJobs({type:"extract",pkgId:r,entry:e,source:t}))}postToJobs(e){if(e.type==="abort"&&!this.jobs)return;const r=this.ensureJobs();if(e.type!=="abort"&&this.currentFile&&this.currentSource?.type==="file"){r.postMessage({...e,file:this.currentFile});return}r.postMessage(e)}handleWorkerRequest(e){if(e.pkgId===this.internalPkgId){if(e.type==="need-file"){if(!this.currentFile)return;this.send({type:"file",pkgId:e.pkgId,file:this.currentFile}).catch(()=>{});return}this.currentSource&&this.postToJobs({type:"extract",pkgId:e.pkgId,entry:e.entry,source:this.currentSource})}}onResizerMessage(e){const r=(t,i={})=>{this.iframe.contentWindow?.postMessage({...i,context:"h5p",action:t},location.origin)};switch(e.action){case"hello":this.iframe.getBoundingClientRect(),window.addEventListener("resize",this.onWindowResize),r("hello");return;case"prepareResize":{const{scrollHeight:t=0,clientHeight:i=0}=e;if(this.iframe.clientHeight===t&&t===i)return;this.hasAttribute("auto-resize")&&i>0&&(this.style.height=`${i}px`),r("resizePrepared");return}case"resize":{const t=e.scrollHeight??0;if(t<=0)return;this.dispatchEvent(new CustomEvent("resize",{detail:{height:t}})),this.hasAttribute("auto-resize")&&(this.style.height=`${t}px`);return}}}setState(e){this.internalState!==e&&(this.internalState=e,this.setAttribute("state",e),this.dispatchEvent(new CustomEvent("statechange",{detail:{state:e}})))}emitProgress(e){this.dispatchEvent(new CustomEvent("progress",{detail:e}))}fail(e){const r=e instanceof o?e.code:"network",t=e instanceof Error?e.message:String(e),i=e instanceof o?e.missingLibraries:void 0;this.abortLoad(),this.setState("error"),this.dispatchEvent(new CustomEvent("error",{detail:{code:r,message:t,missingLibraries:i}}))}}function k(n){return n.ok&&n.type==="indexed"?n.prefetch??[]:[]}function M(n,e){if(e!=="hub")return new URL(e.url,location.href).href;if(!n.mainLibrary)throw new o("bad-archive","h5p.json names no mainLibrary, so there is nothing to ask the hub for",{missingLibraries:n});return`${z}${encodeURIComponent(n.mainLibrary)}`}async function P(n){try{return(await navigator.serviceWorker.getRegistration(n.scope))?.active!=null}catch{return!1}}function B(n){const e=n.active??n.waiting??n.installing;return e?e.state==="activated"?Promise.resolve(e):new Promise((r,t)=>{const i=()=>{e.state==="activated"?(e.removeEventListener("statechange",i),r(n.active??e)):e.state==="redundant"&&(e.removeEventListener("statechange",i),t(new o("no-worker","The Service Worker became redundant")))};e.addEventListener("statechange",i)}):Promise.reject(new o("no-worker","The registration has no worker"))}function R(n){n&&n!==p&&console.warn(`[h5p-player] element is ${p} but the Service Worker is ${n}. Re-copy h5p-sw.js so the two match.`)}customElements.get("h5p-player")||customElements.define("h5p-player",m);export{m as H5PPlayerElement,m as default};