@zip.js/zip.js 2.8.35 → 2.8.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deno.json +1 -1
- package/dist/zip-core.js +48 -27
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core.js +48 -27
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-native.js +50 -29
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +49 -28
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +50 -29
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +50 -29
- package/dist/zip-native.min.js +1 -1
- package/dist/zip-web-worker-native.js +1 -1
- package/dist/zip-web-worker.js +1 -1
- package/dist/zip.js +49 -28
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +50 -29
- package/index-native.min.js +1 -1
- package/index.cjs +49 -28
- package/index.d.cts +8 -0
- package/index.d.ts +8 -0
- package/index.min.js +1 -1
- package/lib/core/io.js +47 -26
- package/lib/core/streams/codec-stream.js +1 -1
- package/lib/core/web-worker-inline-native.js +1 -1
- package/lib/core/web-worker-inline-wasm.js +1 -1
- package/package.json +1 -1
package/dist/zip.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
((t,e)=>{"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).zip={})})(this,function(t){"use strict";const{Array:e,Object:n,String:s,Number:r,BigInt:i,Math:a,Date:o,Map:c,Set:l,Response:u,URL:f,Error:d,Uint8Array:w,Uint16Array:h,Uint32Array:p,DataView:m,Blob:y,Promise:g,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:F,TransformStream:v,ReadableStream:U,WritableStream:R,CompressionStream:k,DecompressionStream:E,navigator:D,Worker:M}="undefined"!=typeof globalThis?globalThis:this||self;var N=void 0!==S?S.currentScript:null;const T=4294967295,L=65535,O=255,I=67324752,C=134695760,W=C,V=33639248,A=101010256,Z=101075792,j=117853008,P=22,q=20,X=21589,G=2048,Y=16384,H=2048,B=1024,Q="/",K=30,J=new o(2107,11,31),_=new o(1980,0,1),$=void 0,tt=1/0,et="undefined",nt="function",st=new w;let rt=2;try{typeof D!=et&&D.hardwareConcurrency&&(rt=D.hardwareConcurrency)}catch{}const it={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:rt,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof k!=et&&k,DecompressionStream:typeof E!=et&&E},at=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","useCompressionStream","useWebWorkers","transferStreams","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],ot={...it};function ct(){return ot}function lt(t){return a.max(t.chunkSize,64)}function ut(t){for(const e of at){const n=t[e];n!==$&&(ot[e]=n)}}function ft(t){for(const e of at){const n=t[e];n!==$&&(it[e]=n)}ut(t)}const dt=[[],[],[],[],[],[],[],[]];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)e=1&e?e>>>1^3988292384:e>>>1;dt[0][t]=e}for(let t=0;256>t;t++)for(let e=1;8>e;e++){const n=dt[e-1][t];dt[e][t]=n>>>8^dt[0][255&n]}const[wt,ht,pt,mt,yt,gt,bt,zt]=dt;class St{constructor(t){this.o=t||-1}append(t){let e=0|this.o;const n=0|t.length;let s=0;if(n>=8&&t.buffer){const r=new m(t.buffer,t.byteOffset,n),i=n-8;for(;i>=s;s+=8){const t=e^r.getInt32(s,!0),n=r.getInt32(s+4,!0);e=zt[255&t]^bt[t>>>8&255]^gt[t>>>16&255]^yt[t>>>24&255]^mt[255&n]^pt[n>>>8&255]^ht[n>>>16&255]^wt[n>>>24&255]}}for(;n>s;s++)e=e>>>8^wt[255&(e^t[s])];this.o=e}get(){return~this.o}}class xt extends v{constructor(){let t;const e=new St;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new w(4);new m(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function Ft(t){if(typeof b==et){const e=new w((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new b).encode(t)}function vt(t,e){const n=new w(t.length+e.length);return n.set(t),n.set(e,t.length),n}function Ut(t){return t.byteOffset||t.byteLength!=t.buffer.byteLength?new w(t):t}function Rt(t){return new m(t.buffer,t.byteOffset,t.byteLength)}const kt={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],s=kt.l(n);return 32===s?t.concat(e):kt.h(e,s,0|n,t.slice(0,t.length-1))},m(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+kt.l(n)},S(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,a.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=kt.F(e,t[n-1]&2147483648>>e-1,1)),t},F:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,l:t=>a.round(t/1099511627776)||32,h(t,e,n,s){for(void 0===s&&(s=[]);e>=32;e-=32)s.push(n),n=0;if(0===e)return s.concat(t);for(let r=0;r<t.length;r++)s.push(n|t[r]>>>e),n=t[r]<<32-e;const r=t.length?t[t.length-1]:0,i=kt.l(r);return s.push(kt.F(e+i&31,e+i>32?n:s.pop(),1)),s}},Et={bytes:{v(t){const e=kt.m(t)/8,n=new w(e);let s;for(let r=0;e>r;r++)3&r||(s=t[r/4]),n[r]=s>>>24,s<<=8;return n},U(t){const e=[];let n,s=0;for(n=0;n<t.length;n++)s=s<<8|t[n],3&~n||(e.push(s),s=0);return 3&n&&e.push(kt.F(8*(3&n),s)),e}}},Dt=class{constructor(t){const e=this;e.blockSize=512,e.R=[1732584193,4023233417,2562383102,271733878,3285377520],e.D=[1518500249,1859775393,2400959708,3395469782],t?(e.M=t.M.slice(0),e.N=t.N.slice(0),e.T=t.T):e.reset()}reset(){const t=this;return t.M=t.R.slice(0),t.N=[],t.T=0,t}update(t){const e=this;"string"==typeof t&&(t=Et.L.U(t));const n=e.N=kt.concat(e.N,t),s=e.T,r=e.T=s+kt.m(t);if(r>9007199254740991)throw new d("Cannot hash more than 2^53 - 1 bits");const i=new p(n);let a=0;for(let t=e.blockSize+s-(e.blockSize+s&e.blockSize-1);r>=t;t+=e.blockSize)e.O(i.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),e}I(){const t=this;let e=t.N;const n=t.M;e=kt.concat(e,[kt.F(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(a.floor(t.T/4294967296)),e.push(0|t.T);e.length;)t.O(e.splice(0,16));return t.reset(),n}C(t,e,n,s){return t>19?t>39?t>59?t>79?void 0:e^n^s:e&n|e&s|n&s:e^n^s:e&n|~e&s}W(t,e){return e<<t|e>>>32-t}O(t){const n=this,s=n.M,r=e(80);for(let e=0;16>e;e++)r[e]=t[e];let i=s[0],o=s[1],c=s[2],l=s[3],u=s[4];for(let t=0;79>=t;t++){16>t||(r[t]=n.W(1,r[t-3]^r[t-8]^r[t-14]^r[t-16]));const e=n.W(5,i)+n.C(t,o,c,l)+u+r[t]+n.D[a.floor(t/20)]|0;u=l,l=c,c=n.W(30,o),o=i,i=e}s[0]=s[0]+i|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+u|0}},Mt={importKey:t=>new Mt.V(Et.bytes.U(t)),A(t,e,n,s){if(n=n||1e4,0>s||0>n)throw new d("invalid params to pbkdf2");const r=1+(s>>5)<<2;let i,a,o,c,l;const u=new ArrayBuffer(r),f=new m(u);let w=0;const h=kt;for(e=Et.bytes.U(e),l=1;(r||1)>w;l++){for(i=a=t.encrypt(h.concat(e,[l])),o=1;n>o;o++)for(a=t.encrypt(a),c=0;c<a.length;c++)i[c]^=a[c];for(o=0;(r||1)>w&&o<i.length;o++)f.setInt32(w,i[o]),w+=4}return u.slice(0,s/8)},V:class{constructor(t){const e=this,n=e.Z=Dt,s=[[],[]];e.j=[new n,new n];const r=e.j[0].blockSize/32;t.length>r&&(t=(new n).update(t).I());for(let e=0;r>e;e++)s[0][e]=909522486^t[e],s[1][e]=1549556828^t[e];e.j[0].update(s[0]),e.j[1].update(s[1]),e.P=new n(e.j[0])}reset(){const t=this;t.P=new t.Z(t.j[0]),t.X=!1}update(t){this.X=!0,this.P.update(t)}digest(){const t=this,e=t.P.I(),n=new t.Z(t.j[1]).update(e).I();return t.reset(),n}encrypt(t){if(this.X)throw new d("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},Nt=typeof x!=et&&typeof x.getRandomValues==nt,Tt="Invalid password",Lt="Invalid signature",Ot="zipjs-abort-check-password";function It(t){if(Nt)return x.getRandomValues(t);throw new d("Crypto API not supported")}const Ct=16,Wt={name:"PBKDF2"},Vt=n.assign({hash:{name:"HMAC"}},Wt),At=n.assign({iterations:1e3,hash:{name:"SHA-1"}},Wt),Zt=["deriveBits"],jt=[8,12,16],Pt=[16,24,32],qt=10,Xt=[0,0,0,0],Gt=typeof x!=et,Yt=Gt&&x.subtle,Ht=Gt&&typeof Yt!=et,Bt=Et.bytes,Qt=class{constructor(t){const e=this;e.G=[[[],[],[],[],[]],[[],[],[],[],[]]],e.G[0][0][0]||e.Y();const n=e.G[0][4],s=e.G[1],r=t.length;let i,a,o,c=1;if(4!==r&&6!==r&&8!==r)throw new d("invalid aes key size");for(e.D=[a=t.slice(0),o=[]],i=r;4*r+28>i;i++){let t=a[i-1];(i%r===0||8===r&&i%r===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],i%r===0&&(t=t<<8^t>>>24^c<<24,c=c<<1^283*(c>>7))),a[i]=a[i-r]^t}for(let t=0;i;t++,i--){const e=a[3&t?i:i-4];o[t]=4>=i||4>t?e:s[0][n[e>>>24]]^s[1][n[e>>16&255]]^s[2][n[e>>8&255]]^s[3][n[255&e]]}}encrypt(t){return this.H(t,0)}decrypt(t){return this.H(t,1)}Y(){const t=this.G[0],e=this.G[1],n=t[4],s=e[4],r=[],i=[];let a,o,c,l;for(let t=0;256>t;t++)i[(r[t]=t<<1^283*(t>>7))^t]=t;for(let u=a=0;!n[u];u^=o||1,a=i[a]||1){let i=a^a<<1^a<<2^a<<3^a<<4;i=i>>8^255&i^99,n[u]=i,s[i]=u,l=r[c=r[o=r[u]]];let f=16843009*l^65537*c^257*o^16843008*u,d=257*r[i]^16843008*i;for(let n=0;4>n;n++)t[n][u]=d=d<<24^d>>>8,e[n][i]=f=f<<24^f>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}H(t,e){if(4!==t.length)throw new d("invalid aes block size");const n=this.D[e],s=n.length/4-2,r=[0,0,0,0],i=this.G[e],a=i[0],o=i[1],c=i[2],l=i[3],u=i[4];let f,w,h,p=t[0]^n[0],m=t[e?3:1]^n[1],y=t[2]^n[2],g=t[e?1:3]^n[3],b=4;for(let t=0;s>t;t++)f=a[p>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&g]^n[b],w=a[m>>>24]^o[y>>16&255]^c[g>>8&255]^l[255&p]^n[b+1],h=a[y>>>24]^o[g>>16&255]^c[p>>8&255]^l[255&m]^n[b+2],g=a[g>>>24]^o[p>>16&255]^c[m>>8&255]^l[255&y]^n[b+3],b+=4,p=f,m=w,y=h;for(let t=0;4>t;t++)r[e?3&-t:t]=u[p>>>24]<<24^u[m>>16&255]<<16^u[y>>8&255]<<8^u[255&g]^n[b++],f=p,p=m,m=y,y=g,g=f;return r}},Kt=class{constructor(t,e){this.B=t,this.K=e,this.J=e}reset(){this.J=this.K}update(t){return this._(this.B,t,this.J)}$(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,s=255&t;255===e?(e=0,255===n?(n=0,255===s?s=0:++s):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=s}return t}et(t){0===(t[0]=this.$(t[0]))&&(t[1]=this.$(t[1]))}_(t,e,n){let s;if(!(s=e.length))return[];const r=kt.m(e);for(let r=0;s>r;r+=4){this.et(n);const s=t.encrypt(n);e[r]^=s[0],e[r+1]^=s[1],e[r+2]^=s[2],e[r+3]^=s[3]}return kt.S(e,r)}},Jt=Mt.V;let _t=Gt&&Ht&&typeof Yt.importKey==nt,$t=Gt&&Ht&&typeof Yt.deriveBits==nt;class te extends v{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:s}){super({start(){ne(this,t,e,n)},async transform(t,e){const n=this,{password:r,strength:i,nt:a,ready:o}=n;r?(await(async(t,e,n,s)=>{const r=await re(t,e,n,ae(s,0,jt[e])),i=ae(s,jt[e]);if(r[0]!=i[0]||r[1]!=i[1])throw new d(Tt)})(n,i,r,ae(t,0,jt[i]+2)),t=ae(t,jt[i]+2),s?e.error(new d(Ot)):a()):await o;const c=new w(t.length-qt-(t.length-qt)%Ct);e.enqueue(se(n,t,c,0,qt,!0))},async flush(t){const{st:e,it:n,pending:s,ready:r}=this;if(n&&e){await r;const i=ae(s,0,s.length-qt),a=ae(s,s.length-qt);let o=st;if(i.length){const t=ce(Bt,i);n.update(t);const s=e.update(t);o=oe(Bt,s)}const c=ae(oe(Bt,n.digest()),0,qt);let l=s.length<qt?1:0;for(let t=0;qt>t;t++)l|=c[t]^a[t];if(l)throw new d(Lt);t.enqueue(o)}}})}}class ee extends v{constructor({password:t,rawPassword:e,encryptionStrength:n}){let s;super({start(){ne(this,t,e,n)},async transform(t,e){const n=this,{password:s,strength:r,nt:i,ready:a}=n;let o=st;s?(o=await(async(t,e,n)=>{const s=It(new w(jt[e]));return vt(s,await re(t,e,n,s))})(n,r,s),i()):await a;const c=new w(o.length+t.length-t.length%Ct);c.set(o,0),e.enqueue(se(n,t,c,o.length,0))},async flush(t){const{st:e,it:n,pending:r,ready:i}=this;if(n&&e){await i;let a=st;if(r.length){const t=e.update(ce(Bt,r));n.update(t),a=oe(Bt,t)}s.signature=oe(Bt,n.digest()).slice(0,qt),t.enqueue(vt(a,s.signature))}}}),s=this}}function ne(t,e,s,r){n.assign(t,{ready:new g(e=>t.nt=e),password:ie(e,s),strength:r-1,pending:st})}function se(t,e,n,s,r,i){const{st:a,it:o,pending:c}=t;c.length&&(e=vt(c,e));const l=e.length-r;let u;for(n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new w(e)).set(n,0)}return t})(n,s+(l-l%Ct)),u=0;l-Ct>=u;u+=Ct){const t=ce(Bt,ae(e,u,u+Ct));i&&o.update(t);const r=a.update(t);i||o.update(r),n.set(oe(Bt,r),u+s)}return t.pending=ae(e,u),n}async function re(t,s,r,i){t.password=null;const a=await(async(t,e,n,s,r)=>{if(!_t)return Mt.importKey(e);try{return await Yt.importKey("raw",e,n,!1,r)}catch{return _t=!1,Mt.importKey(e)}})(0,r,Vt,0,Zt),o=await(async(t,e,n)=>{if(!$t)return Mt.A(e,t.salt,At.iterations,n);try{return await Yt.deriveBits(t,e,n)}catch{return $t=!1,Mt.A(e,t.salt,At.iterations,n)}})(n.assign({salt:i},At),a,8*(2*Pt[s]+2)),c=new w(o),l=ce(Bt,ae(c,0,Pt[s])),u=ce(Bt,ae(c,Pt[s],2*Pt[s])),f=ae(c,2*Pt[s]);return n.assign(t,{keys:{key:l,ot:u,passwordVerification:f},st:new Kt(new Qt(l),e.from(Xt)),it:new Jt(u)}),f}function ie(t,e){return e===$?Ft(t):e}function ae(t,e,n){return t.subarray(e,n)}function oe(t,e){return t.v(e)}function ce(t,e){return t.U(e)}class le extends v{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:s}){super({start(){fe(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=de(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e.at(-1)^n.passwordVerification))throw new d(Tt);t=t.subarray(12)}s?e.error(new d(Ot)):e.enqueue(de(n,t))}})}}class ue extends v{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){fe(this,t,e,n)},transform(t,e){const n=this;let s,r;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=It(new w(12));e[11]=n.passwordVerification,s=new w(t.length+e.length),s.set(we(n,e),0),r=12}else s=new w(t.length),r=0;s.set(we(n,t),r),e.enqueue(s)}})}}function fe(t,e,s,r){n.assign(t,{password:e,rawPassword:s,passwordVerification:r}),((t,e,s)=>{const r=[305419896,591751049,878082192];if(n.assign(t,{keys:r,ct:new St(r[0]),lt:new St(r[2])}),s)for(let e=0;e<s.length;e++)he(t,s[e]);else for(let n=0;n<e.length;n++)he(t,e.charCodeAt(n))})(t,e,s)}function de(t,e){const n=new w(e.length);for(let s=0;s<e.length;s++)n[s]=pe(t)^e[s],he(t,n[s]);return n}function we(t,e){const n=new w(e.length);for(let s=0;s<e.length;s++)n[s]=pe(t)^e[s],he(t,e[s]);return n}function he(t,e){let[,n]=t.keys;t.ct.append([e]);const s=~t.ct.get();n=ye(a.imul(ye(n+me(s)),134775813)+1),t.lt.append([n>>>24]);const r=~t.lt.get();t.keys=[s,n,r]}function pe(t){const e=2|t.keys[2];return me(a.imul(e,1^e)>>>8)}function me(t){return 255&t}function ye(t){return 4294967295&t}const ge="Invalid uncompressed size",be="Invalid compressed data";class ze extends v{constructor(t,{chunkSize:e,CompressionStreamZlib:n,CompressionStream:s}){super({});const{compressed:r,encrypted:i,useCompressionStream:a,zipCrypto:o,signed:c,level:l,deflate64:u}=t,f=this;let d,w,h,p=super.readable;const y=c&&r&&!u&&(!i||o)&&!(!a||!s);i&&!o||!c||y||(d=new xt,p=Ue(p,d)),r&&(y?(h=new Se,p=Re(p,new s("gzip")),p=Ue(p,h)):p=ve(p,a,{level:l,chunkSize:e},s,n,s)),i&&(o?p=Ue(p,new ue(t)):(w=new ee(t),p=Ue(p,w))),Fe(f,p,()=>{let t;i&&!o&&(t=w.signature),i&&!o||!c||(t=y?h.signature:new m(d.value.buffer).getUint32(0)),f.signature=t})}}class Se extends v{constructor(){let t,e=10,n=new w(0);super({transform(t,s){if(e){const n=a.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const r=n.length+t.length;if(8>=r)return void(n=vt(n,t));const i=r-8,o=a.min(i,n.length);s.enqueue(vt(n.subarray(0,o),t.subarray(0,i-o))),n=vt(n.subarray(o),t.subarray(i-o))},flush(){const e=Rt(n);t.signature=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class xe extends v{constructor(t,{chunkSize:e,DecompressionStreamZlib:n,DecompressionStream:s}){super({});const{zipCrypto:r,encrypted:i,signed:a,signature:o,compressed:c,useCompressionStream:l,deflate64:u}=t;let f,w,h=super.readable;i&&(r?h=Ue(h,new le(t)):(w=new te(t),h=Ue(h,w))),c&&(h=ve(h,l,{chunkSize:e,deflate64:u},s,n,s),h=(t=>{const e=t.getReader();return new U({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new d(be);throw e.cause=t,e}const{value:s,done:r}=n;r?t.close():t.enqueue(s)},cancel:t=>e.cancel(t)})})(h)),i&&!r||!a||(f=new xt,h=Ue(h,f)),Fe(this,h,()=>{if((!i||r)&&a){const t=new m(f.value.buffer);if(o!=t.getUint32(0,!1))throw new d(Lt)}})}}function Fe(t,e,s){e=Ue(e,new v({flush:s})),n.defineProperty(t,"readable",{get:()=>e})}function ve(t,e,n,s,r,i){const a=e&&s?s:r||i,o=n.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new a(o,n)}catch(t){if(!e)throw t;if(r)c=new r(o,n);else{if(!i)throw t;c=new i(o,n)}}return Re(t,c)}function Ue(t,e){return t.pipeThrough(e)}function Re(t,e){const n=e.writable.getWriter(),s=t.getReader();return(async()=>{try{for(;;){await n.ready;const t=await s.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await(async(t,e)=>{try{await t.abort(e)}catch{}})(n,t),await(async(t,e)=>{try{await t.cancel(e)}catch{}})(s,t)}})(),e.readable}const ke="data",Ee="deflate",De="inflate";class Me extends v{constructor(t,e){super({});const s=this,{codecType:r}=t;let i;r.startsWith(Ee)?i=ze:r.startsWith(De)&&(i=xe),s.outputSize=0;let a=0;const o=new i(t,e),c=super.readable,l=new v({transform(t,e){t&&t.length&&(a+=t.length,e.enqueue(t))},flush(){n.assign(s,{inputSize:a})}}),u=new v({transform(e,n){if(e&&e.length&&(n.enqueue(e),s.outputSize+=e.length,t.outputSize!==$&&s.outputSize>t.outputSize))throw new d(ge)},flush(){const{signature:t}=o;n.assign(s,{signature:t,inputSize:a})}});n.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(u)})}}class Ne extends v{constructor(t){const e=[];let n=0;function s(){const s=new w(t);let r=0;for(;t>r;){const n=e[0],i=t-r;n.length>i?(s.set(n.subarray(0,i),r),e[0]=n.subarray(i),r+=i):(s.set(n,r),r+=n.length,e.shift())}return n-=t,s}1>t&&(t=65536),super({transform(r,i){for(e.push(r),n+=r.length;n>t;)i.enqueue(s())},flush(t){n&&t.enqueue(((t,e)=>{const n=new w(e);let s=0;for(const e of t)n.set(e,s),s+=e.length;return n})(e,n))}})}}const Te={type:"module"},Le="error";let Oe,Ie,Ce,We,Ve=!0;try{Ve=typeof structuredClone==nt&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}let Ae=()=>{};class Ze{constructor(t,{readable:e,writable:s},{options:r,config:i,ut:a,useWebWorkers:o,transferStreams:c,workerURI:l},u){const{signal:f}=a;return n.assign(t,{ft:!0,wt:(t.wt||0)+1,readable:e.pipeThrough(new Ne(lt(i))).pipeThrough(new je(a),{signal:f}),writable:s,options:n.assign({},r),workerURI:l,transferStreams:c,terminate:()=>new g(e=>{const{ht:n,ft:s}=t;n?(s?t.yt=e:(n.terminate(),e()),t.gt=null):e()}),bt(){if(t.ft){const{yt:e}=t;e&&(t.yt=null,t.zt=!0,t.ht.terminate(),e()),t.ft=!1,u(t)}}}),Oe===$&&(Oe=typeof M!=et),(o&&Oe?Xe:qe)(t,i)}}class je extends v{constructor({onstart:t,onprogress:e,size:n,onend:s}){let r=0;super({async start(){t&&await Pe(t,n)},async transform(t,s){r+=t.length,e&&await Pe(e,r,n),s.enqueue(t)},async flush(){s&&await Pe(s,r)}})}}async function Pe(t,...e){try{await t(...e)}catch{}}function qe(t,e){return{run:()=>(async({options:t,readable:e,writable:n,bt:s},r)=>{let i;try{if(!t.useCompressionStream)try{await Ae(r)}catch{const e=t.codecType.startsWith(Ee)?r.CompressionStreamZlib:r.DecompressionStreamZlib;e&&!e.St||(t.useCompressionStream=!0)}i=new Me(t,r),await e.pipeThrough(i).pipeThrough(new Ne(lt(r))).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:a,outputSize:o}=i;return{signature:s,inputSize:a,outputSize:o}}catch(t){throw i&&(t.outputSize=i.outputSize),t}finally{s()}})(t,e)}}function Xe(t,e){const{baseURI:s,chunkSize:r}=e;let{wasmURI:i}=e;if(!t.gt){let a;typeof i==nt&&(i=i());try{a=Ye(t.workerURI,s,t)}catch{return Oe=!1,qe(t,e)}n.assign(t,{ht:a,zt:!1,gt:{run:()=>(async(t,e)=>{let s,r;const i=new g((t,e)=>{s=t,r=e});n.assign(t,{reader:null,writer:null,xt:s,Ft:r,result:i});const{readable:a,options:o}=t,{writable:c,closed:l,vt:u}=(t=>{const e=new AbortController,{writable:n,readable:s}=new v,r=s.pipeTo(t,{preventClose:!0,preventAbort:!0,signal:e.signal});return r.catch(()=>{}),{writable:n,closed:r,vt:()=>e.abort()}})(t.writable);let f;try{f=Be({type:"start",options:o,config:e,readable:a,writable:c},t)}catch(e){u();try{await l}catch{}throw t.bt(),e}f||n.assign(t,{reader:a.getReader(),writer:c.getWriter()});try{const t=await i;return await d(),await l,t}catch(t){await d(),u();try{await l}catch{}throw t}async function d(){if(!f&&!c.locked)try{await c.getWriter().close()}catch{}}})(t,{chunkSize:r,wasmURI:i,baseURI:s})}})}return t.gt}function Ge(t){const{ht:e}=t;if(e)try{e.terminate()}catch{}t.gt=null}function Ye(t,e,s,r,i=!0){let a,o,c;if(Ce===$||Ie!==t){const n=typeof t==nt;o=n?t(i):t;const l=o.startsWith("data:"),u=o.startsWith("blob:");if(l||u){r===$&&(r=!1),r&&(c=Te);try{a=new M(o,c)}catch(i){if(u)try{f.revokeObjectURL(o)}catch{}if(n&&u)return Ye(t,e,s,r,!1);if(r)throw i;return Ye(t,e,s,!0,!1)}}else{r===$&&(r=!0),r&&(c=Te);try{o=new f(o,e)}catch{}try{a=new M(o,c)}catch(n){if(r)throw n;return Ye(t,e,s,!1,i)}}Ie=t,Ce=o,We=c}else a=new M(Ce,We);return a.addEventListener("message",t=>(async({data:t},e)=>{const{type:s,value:r,messageId:i,result:a,error:o}=t,{reader:c,writer:l,xt:u,Ft:f,bt:h,wt:p}=e,m=()=>e.wt!=p;try{if(o){const{message:t,stack:e,code:s,name:r,outputSize:i}=o,a=new d(t);n.assign(a,{stack:e,code:s,name:r,outputSize:i}),y(a)}else{if("pull"==s){const{value:t,done:n}=await c.read();m()||Be({type:ke,value:t,done:n,messageId:i},e)}s==ke&&(await l.ready,await l.write(new w(r)),m()||Be({type:"ack",messageId:i},e)),"close"==s&&y(null,a)}}catch(o){m()||(Ge(e),y(o))}function y(t,e){m()||(t?f(t):u(e),l&&l.releaseLock(),h())}})(t,s)),a.addEventListener(Le,t=>He(t,s)),a.addEventListener("messageerror",t=>He(t,s)),a}function He(t,e){t.preventDefault&&t.preventDefault();const{Ft:n,writer:s,bt:r}=e;Ge(e),n&&(n(t.error||new d(t.message||Le)),s&&s.releaseLock(),r())}function Be(t,{ht:e,writer:n,transferStreams:s}){try{const{value:n,readable:r,writable:i}=t,a=[];if(n&&(t.value=Ut(n),a.push(t.value.buffer)),s&&Ve?(r&&a.push(r),i&&a.push(i)):t.readable=t.writable=null,a.length)try{return e.postMessage(t,a),!0}catch{Ve=!1,t.readable=t.writable=null,e.postMessage(t)}else e.postMessage(t)}catch(t){throw n&&n.releaseLock(),t}}let Qe=[];const Ke=[];let Je,_e,$e=0;async function tn(t,e){const{options:n,config:s}=e,{transferStreams:i,useWebWorkers:a,useCompressionStream:o,compressed:c,signed:l,encrypted:u}=n,{workerURI:f,maxWorkers:d}=s;e.transferStreams=i||i===$&&s.transferStreams;const w=!c&&!l&&!u;return e.useWebWorkers=!w&&(a||a===$&&s.useWebWorkers),e.workerURI=e.useWebWorkers&&f?f:$,n.useCompressionStream=o||o===$&&s.useCompressionStream,(await(async()=>{const n=Qe.find(t=>!t.ft);if(n)return an(n),new Ze(n,t,e,h);if(Qe.length<d){const n={Ut:$e};return $e++,Qe.push(n),new Ze(n,t,e,h)}return new g(n=>{Ke.push({resolve:n,stream:t,Rt:e}),_e=s.workerStarvationTimeout,en()})})()).run();function h(t){if(nn(),Ke.length){const[{resolve:e,stream:n,Rt:s}]=Ke.splice(0,1);e(new Ze(t,n,s,h)),en()}else t.ht?(an(t),((t,e)=>{const{config:n}=e,{terminateWorkerTimeout:s}=n;r.isFinite(s)&&s>=0&&(t.zt?t.zt=!1:t.kt=setTimeout(async()=>{Qe=Qe.filter(e=>e!=t);try{await t.terminate()}catch{}},s))})(t,e)):Qe=Qe.filter(e=>e!=t)}}function en(){!Je&&Ke.length&&r.isFinite(_e)&&_e>=0&&(Je=setTimeout(sn,_e))}function nn(){Je&&(clearTimeout(Je),Je=null)}function sn(){if(Je=null,Ke.length){const[{resolve:t,stream:e,Rt:s}]=Ke.splice(0,1),r=n.assign({},s,{useWebWorkers:!1,workerURI:$});t(new Ze({},e,r,rn)),en()}}function rn(){nn(),en()}function an(t){const{kt:e}=t;e&&(clearTimeout(e),t.kt=null)}const on="HTTP error ",cn="HTTP Range not supported",ln="HTTP resource changed",un="Writer iterator completed too soon",fn="Writer not initialized",dn="Content-Range",wn="Range",hn="GET",pn="bytes",mn="writable",yn=Symbol();class gn{constructor(){this.size=0}init(){this.initialized=!0}}class bn extends gn{get readable(){return this.createReadable()}createReadable({offset:t=0,size:e,chunkSize:n=lt(ct())}={}){const s=this;let r=0;return new U({async pull(i){const o=e===$?n:a.min(n,e-r),c=await Bn(s,t+r,o);i.enqueue(c),r+n>e||e===$&&!c.length&&o?i.close():r+=n}})}}class zn extends gn{constructor(){super();const t=this,e=new R({write(e){if(!t.initialized)throw new d(fn);return t.writeUint8Array(Ut(e))}});n.defineProperty(t,mn,{get:()=>e})}writeUint8Array(){}}let Sn,xn;class Fn extends bn{constructor(t){super(),n.assign(this,{blob:t,size:t.size}),xn||(xn=(async()=>{try{const t=new y([new w(3)]).slice(1,2).stream().getReader();let e=0,n=await t.read();for(;!n.done;)e+=n.value.length,n=await t.read();Sn=1==e}catch{Sn=!1}})())}createReadable(t){const{blob:e,size:n}=this,{offset:s=0,size:r=n-s}=t||{};return s||n>r?Sn?e.slice(s,s+r).stream():super.createReadable(t):e.stream()}async readUint8Array(t,e){const n=this,s=t+e,r=t||s<n.size?n.blob.slice(t,s):n.blob;let i=await r.arrayBuffer();return i.byteLength>e&&(i=i.slice(t,s)),new w(i)}}class vn extends gn{constructor(t){super();const e=this,s=new v,r=[];t&&r.push(["Content-Type",t]),n.defineProperty(e,mn,{get:()=>s.writable}),e.blob=new u(s.readable,{headers:r}).blob(),e.blob.catch(()=>{})}getData(){return this.blob}}class Un extends bn{constructor(t,e){super(),kn(this,t,e)}async init(){await En(this,Zn,Cn),super.init()}createReadable(t){const e=this,{useRangeHeader:n,forceRangeRequests:s,size:i}=e;if((n||s)&&i!==$){const{offset:n=0,size:s=i-n}=t||{};if(s>0&&i>n)return((t,e,n)=>{let s,i=n;return new U({async start(){const i=await Zn(hn,t,On(t,e,n));if(206!=i.status)throw new d(cn);const a=i.headers.get(dn);if(a){const t=r(a.trim().split(/[\s-]+/)[1]);if(!r.isNaN(t)&&t!=e)throw new d(cn)}Ln(t,i),Tn(t,i),s=i.body.getReader()},async pull(t){const{value:e,done:n}=await s.read();if(n){if(i)throw new d(cn);t.close()}else{const n=e.length>i?e.subarray(0,i):e;i-=n.length,n.length&&t.enqueue(n),i||(t.close(),await s.cancel())}},cancel:t=>s&&s.cancel(t)})})(e,n,a.min(s,i-n))}return super.createReadable(t)}readUint8Array(t,e){return Dn(this,t,e,Zn,Cn)}}class Rn extends bn{constructor(t,e){super(),kn(this,t,e)}async init(){await En(this,jn,Wn),super.init()}readUint8Array(t,e){return Dn(this,t,e,jn,Wn)}}function kn(t,e,s){const{preventHeadRequest:r,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c=!0,fetch:l}=s;delete(s=n.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.checkResourceChanges,delete s.useXHR,delete s.fetch,n.assign(t,{url:e,options:s,preventHeadRequest:r,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c,fetch:l})}async function En(t,e,n){const{url:s,preventHeadRequest:r,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=t;if((t=>{const{baseURI:e}=ct(),{protocol:n}=new f(t,e);return"http:"==n||"https:"==n})(s)&&(i||a)&&(void 0===r||r)){const s=await e(hn,t,On(t,o?-22:void 0)),r=s.headers.get("Accept-Ranges");if(!(a||r&&r.toLowerCase()==pn))throw new d(cn);{if(o){const e=new w(await s.arrayBuffer());206==s.status&&e.length==P&&(t.Et=e)}Tn(t,s);const r=Mn(s);r===$?await An(t,e,n):t.size=r}}else await An(t,e,n)}async function Dn(t,e,n,s,i){const{useRangeHeader:a,forceRangeRequests:o,Et:c,size:l,options:u}=t;if(a||o){if(c&&e==l-P&&n==P)return c;if(l>e&&0!==n){e+n>l&&(n=l-e);const i=await s(hn,t,On(t,e,n));if(206!=i.status)throw new d(cn);const a=i.headers.get(dn);if(a){const t=r(a.trim().split(/[\s-]+/)[1]);if(!r.isNaN(t)&&t!=e)throw new d(cn)}Ln(t,i),Tn(t,i);const o=new w(await i.arrayBuffer());if(o.length!=n)throw new d(cn);return o}return st}{const{data:s}=t;return s||await i(t,u),t.data.subarray(e,e+n)}}function Mn(t){const e=t.headers.get(dn);if(e){const t=e.trim().split(/\s*\/\s*/)[1];if(t&&"*"!=t){const e=r(t);if(!r.isNaN(e))return e}}}function Nn({headers:t}){return{Dt:t.get("Etag")||$,lastModified:t.get("Last-Modified")||$}}function Tn(t,e){const{checkResourceChanges:n,Mt:s}=t;n&&!s&&206==e.status&&(t.Mt=Nn(e))}function Ln(t,e){const{checkResourceChanges:s,Mt:r,size:i}=t;if(s){const t=Mn(e);if(t!==$&&i!==$&&t!=i)throw new d(ln);if(r){const t=Nn(e);if(n.entries(r).some(([e,n])=>n!==$&&t[e]!==$&&n!=t[e]))throw new d(ln)}}}function On(t,e=0,s=1){return n.assign({},In(t),{[wn]:pn+"="+(0>e?e:e+"-"+(e+s-1))})}function In({options:t}){const{headers:e}=t;if(e)return Symbol.iterator in e?n.fromEntries(e):e}async function Cn(t){await Vn(t,Zn)}async function Wn(t){await Vn(t,jn)}async function Vn(t,e){const n=await e(hn,t,In(t));t.data=new w(await n.arrayBuffer()),t.size=t.data.length}async function An(t,e,n){if(t.preventHeadRequest)await n(t,t.options);else{const s=await e("HEAD",t,In(t)),i=s.headers.get("Content-Length");i&&!s.headers.get("Content-Encoding")?t.size=r(i):await n(t,t.options)}}async function Zn(t,{fetch:e=fetch,options:s,url:r},i){const a=await e(r,n.assign({},s,{method:t,headers:i}));if(400>a.status)return a;throw 416==a.status?new d(cn):new d(on+(a.statusText||a.status))}function jn(t,{url:e},s){return new g((r,i)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const t=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const n=e.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,t=>t.toUpperCase()),t.push(n)}),r({status:a.status,arrayBuffer:()=>a.response,headers:new c(t)})}else i(416==a.status?new d(cn):new d(on+(a.statusText||a.status)))},!1),a.addEventListener("error",t=>i(t.detail?t.detail.error:new d("Network error")),!1),a.open(t,e),s)for(const t of n.entries(s))a.setRequestHeader(t[0],t[1]);a.responseType="arraybuffer",a.send()})}class Pn extends bn{constructor(t,e={}){super(),n.assign(this,{url:t,reader:e.useXHR&&!e.fetch?new Rn(t,e):new Un(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(t){return this.reader.createReadable(t)}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class qn extends bn{constructor(t){super(),this.Nt=t}async init(){const t=this,{Nt:e}=t;t.Tt=0,await g.all(e.map(t=>Hn(t))),t.Lt=e.map(e=>{const n=t.size;return t.size+=e.size,n}),super.init()}Ot(t){const{Lt:e,size:n}=this,s=e.at(t);return s===$?n:s}async readUint8Array(t,e){const n=this,{Nt:s}=this;let r,i=0,o=t;for(;s[i]&&o>=s[i].size;)o-=s[i].size,i++;const c=s[i];if(c){const s=c.size;if(o+e>s){const i=s-o;r=vt(await Bn(c,o,i),await n.readUint8Array(t+i,e-i))}else r=await Bn(c,o,e)}else r=st;return n.Tt=a.max(i,n.Tt),r}}class Xn extends gn{constructor(t,e=4294967295){super();const s=this;let r,i,a;n.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const o=new R({async write(e){if(e===yn)return void(a&&await l());const{availableSize:n}=s;if(a)e.length<n?await c(e):(await c(e.subarray(0,n)),await l(),e.length>n&&await this.write(e.subarray(n)));else{const{value:n,done:o}=await t.next();if(o&&!n)throw new d(un);r=n,r.size=0,r.maxSize&&(s.maxSize=r.maxSize),s.availableSize=s.maxSize,await Hn(r),i=n.writable,a=i.getWriter(),await this.write(e)}},async close(){a&&(await a.ready,await u())},async abort(t){a&&await a.abort(t)}});async function c(t){const e=t.length;e&&(await a.ready,await a.write(t),r.size+=e,s.availableSize-=e)}async function l(){await u(),s.diskOffset+=r.size,s.diskNumber++,a=null,s.availableSize=s.maxSize}async function u(){await a.close()}n.defineProperty(s,mn,{get:()=>o})}async closeDisk(){const t=this.writable.getWriter();try{await t.ready,await t.write(yn)}finally{t.releaseLock()}}}class Gn{constructor(t){return e.isArray(t)&&(t=new qn(t)),t instanceof U&&(t={readable:t}),t}}class Yn{constructor(t){return t.writable===$&&typeof t.next==nt&&(t=new Xn(t)),t instanceof R&&(t={writable:t}),t.size===$&&(t.size=0),t}}async function Hn(t,e){if(!t.init||t.initialized)return g.resolve();await t.init(e)}function Bn(t,e,n){return t.readUint8Array(e,n)}const Qn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Kn(t,e){return e&&"cp437"==e.trim().toLowerCase()?(t=>{{let e="";for(let n=0;n<t.length;n++)e+=Qn[t[n]];return e}})(t):new z(e,{ignoreBOM:!0}).decode(t)}const Jn="filename",_n="rawFilename",$n="comment",ts="rawComment",es="uncompressedSize",ns="compressedSize",ss="offset",rs="diskNumberStart",is="lastModDate",as="rawLastModDate",os="lastAccessDate",cs="creationDate",ls="rawCreationDate",us="internalFileAttributes",fs="externalFileAttributes",ds="msdosAttributesRaw",ws="msdosAttributes",hs="msDosCompatible",ps="zip64",ms="encrypted",ys="version",gs="versionMadeBy",bs="zipCrypto",zs="directory",Ss="executable",xs="compressionMethod",Fs="signature",vs="extraField",Us="unixMode",Rs="setuid",ks="setgid",Es="sticky",Ds=[Jn,_n,es,ns,is,as,$n,ts,os,cs,ls,ss,rs,us,fs,ds,ws,hs,ps,ms,ys,gs,bs,zs,Ss,xs,Fs,vs,"extraFieldUnix","extraFieldInfoZip","uid","gid",Us,Rs,ks,Es,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Ms{constructor(t){Ds.forEach(e=>this[e]=t[e])}}const Ns="password",Ts="rawPassword",Ls="passThrough",Os="signal",Is="checkAmbiguity",Cs="useWebWorkers",Ws="useCompressionStream",Vs="transferStreams",As="preventClose",Zs="offset",js="strictness",Ps="strict",qs="tolerant",Xs="File format is not recognized",Gs="End of central directory not found",Ys="End of Zip64 central directory locator not found",Hs="Central directory header not found",Bs="Local file header not found",Qs="Zip64 extra field not found",Ks="File contains encrypted entry",Js="Encryption method not supported",_s="Compression method not supported",$s="Split zip file",tr="Overlapping entry found",er="Ambiguous archive",nr="utf-8",sr="cp437",rr=[[es,T],[ns,T],[ss,T],[rs,L]],ir={[L]:{It:Mr,bytes:4},[T]:{It:Nr,bytes:8}};class ar{constructor(t,e={}){n.assign(this,{reader:new Gn(t),options:e,config:ct(),Ct:new c})}async*getEntriesGenerator(t={}){const e=this;let{reader:s}=e;const{config:r}=e;if(await Hn(s),s.size!==$&&s.readUint8Array||(s=new Fn(await new u(s.readable).blob()),await Hn(s)),s.size<P)throw new d(Xs);const i=pr(Ur(e,t,js),Ur(e,t,Is)),o=i==Ps,c=i!=qs,f=((t,e)=>t!==$?t:e==Ps?0:e==qs?1/0:L)(Ur(e,t,"maxAppendedDataSize"),i),{Wt:w,Vt:h}=await(async(t,e,n)=>{const{size:s}=t,r=a.min(s,65557),i={count:mr};let o,c,l=0;for await(const[n,a,u,f,d]of zr(t,r)){const r=Dr(n,f+20);if(d+P+r==s){const r=await xr(t,n,a,f,d,s,i);if(r==br){if(o||(o=Sr(u,f,d)),l++,!e||l>1)break}else r!=gr||c||(c=Sr(u,f,d))}}return o||(o=c),o||(o=await(async(t,e,n)=>{const{size:s}=t,r=a.min(s,e==1/0?s:65557+e);let i,o;for await(const[e,a,c,l,u]of zr(t,r)){const r=Sr(c,l,u);i||(i=r);const f=await xr(t,e,a,l,u,s,n);if(f==br)return r;f!=gr||o||(o=r)}return o||i})(t,n,i)),{Wt:o,Vt:l}})(s,c,f);if(!w)throw Mr(Rt(await Bn(s,0,4)))==C?new d($s):new d(Gs);c&&h>1&&vr("multiple end of central directory records");const p=Rt(w);let m=Mr(p,12),y=Mr(p,16);const b=w.offset,z=Dr(p,20),S=b+P+z;s.size-S>f&&vr("appended data");let x=Dr(p,4);const F=s.Tt||0;let U,R,k=Dr(p,6),E=Dr(p,10),D=0;const M=y==T||m==T||E==L||k==L;if(y!=T&&k!=L&&(y+=hr(s,k)),M){const t=w.offset<q?st:await Bn(s,w.offset-q,q),e=Rt(t);if(t.length==q&&Mr(e,0)==j){y=hr(s,Mr(e,4))+Nr(e,8);let t=await Bn(s,y,56),n=Rt(t);const r=w.offset-q-56;if((56>t.length||Mr(n,0)!=Z)&&y!=r&&r>=0){const e=y;y=r,y>e&&(D=y-e),t=await Bn(s,y,56),n=Rt(t)}if(56>t.length||Mr(n,0)!=Z)throw new d(Ys);R=!0,x==L?x=Mr(n,16):o&&x!=Mr(n,16)&&vr("mismatched zip64 end of central directory record"),k==L?k=Mr(n,20):o&&k!=Mr(n,20)&&vr("mismatched zip64 end of central directory record"),E==L?E=Nr(n,32):o&&E!=Nr(n,32)&&vr("mismatched zip64 end of central directory record"),m==T?m=Nr(n,40):o&&m!=Nr(n,40)&&vr("mismatched zip64 end of central directory record"),y=hr(s,k)+Nr(n,48)+D}}const N=m,I=w.offset-(R?76:0);if(y<s.size||(D=s.size-y-m-P,y=s.size-m-P),F!=x)throw new d($s);if(0>y)throw new d(Xs);let W=0,A=await Bn(s,y,m),X=Rt(A);if(m){if(4>A.length)throw new d(Xs);const t=I-m;if(y!=t&&k==x){let e=!(Mr(X,W)==V);if(e||0>t||t+4>s.size||(e=Mr(Rt(await Bn(s,t,4)),0)==V),e){const e=y;y=t,y>e&&(D+=y-e),A=await Bn(s,y,m),X=Rt(A)}}}const G=I-y;if(m==G||0>G||k!=x||(m=G,A=await Bn(s,y,m),X=Rt(A)),0>y||y>=s.size)throw new d(Xs);U=y;const K=Ur(e,t,"filenameEncoding"),J=Ur(e,t,"commentEncoding"),_=o?new l:$;let tt;for(let i=0;E>i;i++){const c=new cr(s,r,e.options);if(W+46>A.length||Mr(X,W)!=V)throw new d(Hs);lr(c,X,W+6);const l=!!c.bitFlag.languageEncodingFlag,f=W+46,w=f+c.filenameLength,h=w+c.extraFieldLength,p=Dr(X,W+4),m=!(p>>8),y=p>>8==3,b=A.subarray(f,w),z=Dr(X,W+32),S=h+z,x=A.subarray(h,S),F=l,R=l,k=Mr(X,W+38),M=k&O,N={readOnly:!!(1&M),hidden:!!(2&M),system:!!(4&M),directory:!!(16&M),archive:!!(32&M)},T=Mr(X,W+42),I=Ur(e,t,"decodeText")||Kn,C=F?nr:K||sr,Z=R?nr:J||sr;let j=I(b,C);j===$&&(j=Kn(b,C));let P=I(x,Z);P===$&&(P=Kn(x,Z)),n.assign(c,{index:i,versionMadeBy:p,msDosCompatible:m,compressedSize:0,uncompressedSize:0,At:z,offset:T,diskNumberStart:Dr(X,W+34),internalFileAttributes:Dr(X,W+36),externalFileAttributes:k,msdosAttributesRaw:M,msdosAttributes:N,rawFilename:b,filenameUTF8:F,commentUTF8:R,rawExtraField:A.subarray(w,h),rawComment:x,filename:j,comment:P}),ur(c,c,X,W+6),c.offset+=D,U=a.min(hr(s,c.diskNumberStart)+c.offset,U),o&&(_.has(c.filename)&&(tt=!0),_.add(c.filename));const q=c.externalFileAttributes>>16&L;c.unixMode===$&&16877&q&&(c.unixMode=q);const G=!!(c.unixMode&H),et=!!(c.unixMode&B),nt=!!(512&c.unixMode),st=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&q),rt=c.unixMode!==$&&(61440&c.unixMode)==Y,it=(61440&q)==Y;n.assign(c,{setuid:G,setgid:et,sticky:nt,unixExternalUpper:q,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:st,directory:rt||it||m&&N.directory||c.filename.endsWith(Q)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const at=new Ms(c);at.getData=(t,n)=>c.getData(t,at,e.Ct,n),at.arrayBuffer=async t=>{const n=new v,[s]=await g.all([new u(n.readable).arrayBuffer(),c.getData(n,at,e.Ct,t)]);return s},W=S;const{onprogress:ot}=t;if(ot)try{await ot(i+1,E,new Ms(c))}catch{}yield at}o&&W!=N&&vr("trailing central directory data"),tt&&vr("duplicate filename"),o&&(D||E&&U>0)&&vr("prepended data");const et=Ur(e,t,"extractPrependedData"),nt=Ur(e,t,"extractAppendedData");return et&&(e.prependedData=U>0?await Bn(s,0,U):st),e.comment=z?await Bn(s,b+P,z):st,nt&&(e.appendedData=S<s.size?await Bn(s,S,s.size-S):st),!0}async getEntries(t={}){const e=[];for await(const n of this.getEntriesGenerator(t))e.push(n);return e}async close(){}}class or{constructor(t={}){const{readable:e,writable:n}=new v,s=new ar(e,t).getEntriesGenerator();this.readable=new U({async pull(t){const{done:e,value:n}=await s.next();if(e)return t.close();const r={...n,readable:(()=>{const{readable:t,writable:e}=new v;if(n.getData)return(async()=>{try{await n.getData(e)}catch(t){try{await e.abort(t)}catch{}}})(),t})()};delete r.getData,t.enqueue(r)}}),this.writable=n}}class cr{constructor(t,e,s){n.assign(this,{reader:t,config:e,options:s})}async getData(t,e,n,s={}){const r=this,{reader:i,index:a,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:u,compressionMethod:f,config:w,bitFlag:h,signature:p,rawLastModDate:m,uncompressedSize:y,compressedSize:g}=r,{dataDescriptor:b}=h,z=e.localDirectory={},S=hr(i,c)+o,x=await Bn(i,S,K),F=Rt(x);let v=Ur(r,s,Ns),U=Ur(r,s,Ts);const k=Ur(r,s,Ls);if(v=v&&v.length&&v,U=U&&U.length&&U,l&&99!=l.originalCompressionMethod)throw new d(_s);if(0!=f&&8!=f&&9!=f&&!k)throw new d(_s);if(x.length<K||Mr(F,0)!=I)throw new d(Bs);lr(z,F,4);const{extraFieldLength:E,filenameLength:D}=z,M=pr(Ur(r,s,js),Ur(r,s,Is))==Ps;let N=st;if(M&&(D||E)){const t=await Bn(i,S+K,D+E);N=t.subarray(0,D),z.rawExtraField=t.subarray(D)}else z.rawExtraField=E?await Bn(i,S+K+D,E):st;ur(r,z,F,4,!0),M&&((t,e,n)=>{const{rawFilename:s}=t;(n.length!=s.length||n.some((t,e)=>t!=s[e]))&&vr("mismatched local file header (filename)"),(2057&e.rawBitFlag)!=(2057&t.rawBitFlag)&&vr("mismatched local file header (general purpose bit flag)"),e.compressionMethod!=t.compressionMethod&&vr("mismatched local file header (compression method)"),e.bitFlag.dataDescriptor||!(e.signature||e.compressedSize||e.uncompressedSize)||e.signature==t.signature&&e.compressedSize==t.compressedSize&&e.uncompressedSize==t.uncompressedSize||vr("mismatched local file header (signature or sizes)")})(r,z,N);const{lastAccessDate:T,creationDate:L}=z;T&&(e.lastAccessDate=T),L&&(e.creationDate=L);const C=r.encrypted&&z.encrypted&&!k,V=C&&!l;if(k||(e.zipCrypto=V),C){if(!V&&l.strength===$)throw new d(Js);if(!v&&!U)throw new d(Ks)}const A=S+K+D+E,Z=g,j=i.createReadable({offset:A,size:Z}),P=Ur(r,s,Os),q=Ur(r,s,"checkPasswordOnly");let X=Ur(r,s,"checkOverlappingEntry");const G=Ur(r,s,"checkOverlappingEntryOnly");G&&(X=!0);const{onstart:Y,onprogress:H,onend:B}=s,Q=9==f;let J=Ur(r,s,Ws);Q&&(J=!1);const _={options:{codecType:De,password:v,rawPassword:U,zipCrypto:V,encryptionStrength:l&&l.strength,signed:Ur(r,s,"checkSignature")&&!k,passwordVerification:V&&(b?m>>>8&O:p>>>24&O),outputSize:k?g:y,signature:p,compressed:0!=f&&!k,encrypted:C,useWebWorkers:Ur(r,s,Cs),useCompressionStream:J,transferStreams:Ur(r,s,Vs),deflate64:Q,checkPasswordOnly:q},config:w,ut:{signal:P,size:Z,onstart:Y,onprogress:H,onend:B}};let tt;X&&await(async({reader:t,Zt:e,index:n,offset:s,signature:r,compressedSize:i,uncompressedSize:a,jt:o,dataDescriptor:c,extraFieldZip64:l,Ct:u})=>{let f=0;if(c&&(f=l?20:12),f){const n=await Bn(t,o+i,f+4);if(n.length==f+4&&Mr(Rt(n),0)==W){const t=Mr(Rt(n),4);let s,o;l?(s=Nr(Rt(n),8),o=Nr(Rt(n),16)):(s=Mr(Rt(n),8),o=Mr(Rt(n),12)),(e.encrypted&&!e.zipCrypto||t==r)&&s==i&&o==a&&(f+=4)}}const w={start:s,end:o+i+f,Zt:e};for(const[t,e]of u)if(t!=n&&w.start<e.end&&e.start<w.end){const t=new d(tr);throw t.Pt=e.Zt,t}u.set(n,w)})({reader:i,Zt:e,index:a,offset:S,signature:p,compressedSize:g,uncompressedSize:y,jt:A,dataDescriptor:b||z.bitFlag.dataDescriptor,extraFieldZip64:u||z.extraFieldZip64,Ct:n});try{if(!G){q&&(t=new R),t=new Yn(t),await Hn(t,k?g:y),({writable:tt}=t);const{outputSize:e}=await tn({readable:j,writable:tt},_);if(t.size+=e,e!=(k?g:y))throw new d(ge)}}catch(e){if(e.outputSize!==$&&(t.size+=e.outputSize),!q||e.message!=Ot)throw e}finally{Ur(r,s,As)||!tt||tt.locked||await tt.getWriter().close()}return q||G?$:t.getData?t.getData():tt}}function lr(t,e,s){const r=t.rawBitFlag=Dr(e,s+2),i=!(1&~r),a=Mr(e,s+6);n.assign(t,{encrypted:i,version:Dr(e,s),bitFlag:{level:(6&r)>>1,dataDescriptor:!(8&~r),languageEncodingFlag:(r&G)==G},rawLastModDate:a,lastModDate:Rr(a),filenameLength:Dr(e,s+22),extraFieldLength:Dr(e,s+24)})}function ur(t,e,s,r,i){const{rawExtraField:a}=e,l=e.extraField=new c,u=Rt(a);let f=0;try{for(;f<a.length;){const t=Dr(u,f),e=Dr(u,f+2);l.set(t,{type:t,data:a.slice(f+4,f+4+e)}),f+=4+e}}catch{}const w=Dr(s,r+4);n.assign(e,{signature:Mr(s,r+10),compressedSize:Mr(s,r+14),uncompressedSize:Mr(s,r+18)});const h=l.get(1);h&&(((t,e)=>{e.zip64=!0;const n=Rt(t.data),s=rr.filter(([t,n])=>e[t]==n),r=s.reduce((t,[,e])=>t+ir[e].bytes,0);if(t.data.length<r)throw new d(Qs);for(let r=0,i=0;r<s.length;r++){const[a,o]=s[r],c=ir[o];e[a]=t[a]=c.It(n,i),i+=c.bytes}})(h,e),e.extraFieldZip64=h);const p=l.get(28789);p&&(fr(p,Jn,_n,e,t),e.extraFieldUnicodePath=p);const m=l.get(25461);m&&(fr(m,$n,ts,e,t),e.extraFieldUnicodeComment=m);const y=l.get(39169);y&&y.data.length>=7?(((t,e,s)=>{const r=Rt(t.data),i=Er(r,4);n.assign(t,{qt:Er(r,0),vendorId:Er(r,2),strength:i,originalCompressionMethod:s,compressionMethod:Dr(r,5)}),e.compressionMethod=t.compressionMethod})(y,e,w),e.extraFieldAES=y):e.compressionMethod=w;const g=l.get(10);g&&(((t,e)=>{const s=Rt(t.data);let r,i=4;try{for(;i<t.data.length&&!r;){const e=Dr(s,i),n=Dr(s,i+2);1==e&&(r=t.data.slice(i+4,i+4+n)),i+=4+n}}catch{}try{if(r&&24==r.length){const s=Rt(r),i=s.getBigUint64(0,!0),a=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);n.assign(t,{rawLastModDate:i,rawLastAccessDate:a,rawCreationDate:o});const c={lastModDate:kr(i),lastAccessDate:kr(a),creationDate:kr(o)};n.assign(t,c),n.assign(e,c)}}catch{}})(g,e),e.extraFieldNTFS=g);const b=l.get(30805);if(b)dr(b,e,!1),e.extraFieldUnix=b;else{const t=l.get(30837);t&&(dr(t,e,!0),e.extraFieldInfoZip=t)}const z=l.get(X);z&&(((t,e,n)=>{if(!t.data.length)return;const s=Rt(t.data),r=Er(s,0),i=[],a=[];n?(1&~r||(i.push(is),a.push(as)),2&~r||(i.push(os),a.push("rawLastAccessDate")),4&~r||(i.push(cs),a.push(ls))):5>t.data.length||(i.push(is),a.push(as));let c=1;i.forEach((n,r)=>{if(t.data.length>=c+4){const i=Mr(s,c);e[n]=t[n]=new o(1e3*(0|i));const l=a[r];t[l]=i}c+=4})})(z,e,i),e.extraFieldExtendedTimestamp=z);const S=l.get(6534);S&&(e.extraFieldUSDZ=S)}function fr(t,e,s,r,i){if(5>t.data.length)return void(t.valid=!1);const a=Rt(t.data),o=new St;o.append(i[s]);const c=Rt(new w(4));c.setUint32(0,o.get(),!0);const l=Mr(a,1);n.assign(t,{version:Er(a,0),[e]:Kn(t.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&l==Mr(c,0)}),t.valid&&(r[e]=t[e],r[e+"UTF8"]=!0)}function dr(t,e,s){try{const r=Rt(t.data);let i,a;if(s){let e=0;const s=Er(r,e++),o=Er(r,e++);i=wr(t.data.subarray(e,e+o)),e+=o;const c=Er(r,e++);a=wr(t.data.subarray(e,e+c)),n.assign(t,{version:s,uid:i,gid:a})}else 4>t.data.length||(i=Dr(r,0),a=Dr(r,2),n.assign(t,{uid:i,gid:a}));i!==$&&(e.uid=i),a!==$&&(e.gid=a)}catch{}}function wr(t){const e=new w(4);return e.set(t,0),new m(e.buffer,e.byteOffset,4).getUint32(0,!0)}function hr(t,e){return t.Ot?t.Ot(e):0}function pr(t,e){return t===$?e?Ps:"balanced":t}const mr=64,yr=0,gr=1,br=2;async function*zr(t,e){const n=t.size-e,s=await Bn(t,n,e),r=Rt(s);for(let t=s.length-P;t>=0;t--)Mr(r,t)==A&&(yield[r,n,s,t,n+t])}function Sr(t,e,n){return{offset:n,buffer:t.slice(e,e+P).buffer}}async function xr(t,e,n,s,r,i,a){const o=Dr(e,s+10),c=Mr(e,s+12),l=Mr(e,s+16);if(o==L||c==T||l==T)return await Fr(t,e,n,r-q,i,a)==j?br:yr;if(!o&&!c)return gr;const u=Dr(e,s+6);for(const s of[r-c,hr(t,u)+l])if(await Fr(t,e,n,s,i,a)==V)return br;return yr}async function Fr(t,e,n,s,r,i){return 0>s||s+4>r?$:n>s?i.count>0?(i.count--,Mr(Rt(await Bn(t,s,4)),0)):$:Mr(e,s-n)}function vr(t){const e=new d(er);throw e.reason=t,e}function Ur(t,e,n){return e[n]===$?t.options[n]:e[n]}function Rr(t){const e=(4294901760&t)>>16,n=t&L;try{return new o(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}catch{}}function kr(t){return new o(r(t/i(1e4)-i(116444736e5)))}function Er(t,e){return t.getUint8(e)}function Dr(t,e){return t.getUint16(e,!0)}function Mr(t,e){return t.getUint32(e,!0)}function Nr(t,e){return r(t.getBigUint64(e,!0))}var Tr=n.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:er,ERR_BAD_FORMAT:Xs,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Hs,ERR_ENCRYPTED:Ks,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Ys,ERR_EOCDR_NOT_FOUND:Gs,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Qs,ERR_INVALID_COMPRESSED_DATA:be,ERR_INVALID_PASSWORD:Tt,ERR_INVALID_SIGNATURE:Lt,ERR_INVALID_UNCOMPRESSED_SIZE:ge,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Bs,ERR_OVERLAPPING_ENTRY:tr,ERR_SPLIT_ZIP_FILE:$s,ERR_UNSUPPORTED_COMPRESSION:_s,ERR_UNSUPPORTED_ENCRYPTION:Js,ZipReader:ar,ZipReaderStream:or});const Lr="File already exists",Or="Zip file comment exceeds 64KB",Ir="File entry comment exceeds 64KB",Cr="File entry name exceeds 64KB",Wr="Version exceeds 65535",Vr="The strength must equal 1, 2, or 3",Ar="Extra field type exceeds 65535",Zr="Extra field data exceeds 64KB",jr=-2147483648,Pr=2147483647,qr="Zip64 is not supported (set the 'zip64' option to 'true')",Xr="Undefined uncompressed size",Gr="Undefined reader",Yr="Zip file not empty",Hr=new w([7,0,2,0,65,69,3,0,0]),Br="infozip",Qr="unix";let Kr=0;const Jr=[];class _r{constructor(t,e={}){t=new Yn(t);const{availableSize:s=tt,maxSize:r=tt}=t,i=s>0&&s!==tt&&r>0&&r!==tt;n.assign(this,{writer:t,Xt:i,options:e,config:ct(),files:new c,Gt:new l,offset:e[Zs]===$?t.size||t.writable.size||0:e[Zs],Yt:e[Zs]===$?0:e[Zs]-(t.size||t.writable.size||0),Ht:new l,Bt:0,Qt:$})}async prependZip(t){if(this.Gt.size)throw new d(Yr);t=new Gn(t),await Hn(t);const{ZipReader:e}=await g.resolve().then(()=>Tr),s=new e(t.readable),r=await s.getEntries();await s.close(),await Hn(this.writer),await t.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=t.size,this.Gt=new l(r.map(t=>t.filename)),this.files=new c(r.map(t=>{const{version:e,rawLastModDate:s,lastAccessDate:r,creationDate:i,rawFilename:a,bitFlag:o,encrypted:c,uncompressedSize:l,compressedSize:u,zip64:f}=t;let{compressionMethod:d,Kt:w,Jt:h,_t:p,$t:m,te:y,rawExtraField:g}=t;const{level:b,languageEncodingFlag:z,dataDescriptor:S}=o;w=w||st,h=h||st,p=p||st,m=m||st,y=y||st,g=g||st,t.extraFieldAES&&(d=99);const x=gi(w,h,p,m,y,g),F=f&&l>=T,v=f&&u>=T,U=-7&zi(b,z,S,c,d)|b<<1,{ee:R,ne:k}=bi({version:e,bitFlag:U,compressionMethod:d,uncompressedSize:l,compressedSize:u,rawLastModDate:s,rawFilename:a,se:v,re:F,extraFieldLength:x}),{signature:E}=t;return E!==$&&pi(k,10,E),n.assign(t,{re:F,se:v,ie:f&&t.offset>=T,diskNumberStart:0,ae:!1,Kt:w,Jt:h,_t:p,$t:m,te:y,rawExtraField:g,extendedTimestamp:p.length>0||m.length>0,oe:1+(r?2:0)+(i?4:0),ee:R,ne:k}),[t.filename,t]}))}async add(t="",e,s={}){const r=this;s=n.assign({},s);const{Ht:a,config:c}=r;let l,u;Kr<c.maxWorkers?Kr++:await new g(t=>Jr.push(t));try{if(t=t.trim(),di(r,s,zs)&&!t.endsWith(Q)&&(t+=Q),r.Gt.has(t))throw new d(Lr);return r.Gt.add(t),u=!0,l=(async(t,e,s,r)=>{const a=((t,e,n)=>{e=e.trim();let s=di(t,n,hs),r=di(t,n,gs,s?20:768);const i=di(t,n,Ss),a=di(t,n,"uid"),o=di(t,n,"gid");let c=di(t,n,Us),l=di(t,n,"unixExtraFieldType"),u=di(t,n,Rs),f=di(t,n,ks),w=di(t,n,Es);if(a!==$&&(0>a||a>T))throw new d("Invalid uid (must be integer 0..2^32-1)");if(o!==$&&(0>o||o>T))throw new d("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>L))throw new d("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==Br&&l!==Qr)throw new d("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===Qr&&(a!==$&&a>L||o!==$&&o>L))throw new d("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||a===$&&o===$||(l=Br);let h=di(t,n,ds),p=di(t,n,ws);const m=h!==$||p!==$;if(a!==$||o!==$||c!==$||l?(s=!1,r=r&L|768):m&&(s=!0,r&=O),h!==$&&(0>h||h>O))throw new d("Invalid msdosAttributesRaw (must be integer 0..255)");if(p&&"object"!=typeof p)throw new d("Invalid msdosAttributes (must be an object with boolean flags)");if(r>L)throw new d(Wr);let y=di(t,n,fs,0);!n[zs]&&e.endsWith(Q)&&(n[zs]=!0);const g=di(t,n,zs);let b;return g?(e.endsWith(Q)||(e+=Q),0===y&&(y=16,s||(y|=16877<<16))):s||0!==y||(y=i?493<<16:27525120),s||(b=y>>16&L,c=c===$?b:c&L,u?c|=H:u=!!(c&H),f?c|=B:f=!!(c&B),w?c|=512:w=!!(512&c),g&&(c|=Y),y=(c&L)<<16|y&O),({msdosAttributesRaw:h,msdosAttributes:p}=((t,e)=>{if(t!==$)t&=O;else if(e!==$){const{readOnly:n,hidden:s,system:r,directory:i,archive:a}=e;let o=0;n&&(o|=1),s&&(o|=2),r&&(o|=4),i&&(o|=16),a&&(o|=32),t=o&O}return e===$&&(e={readOnly:!!(1&t),hidden:!!(2&t),system:!!(4&t),directory:!!(16&t),archive:!!(32&t)}),{msdosAttributesRaw:t,msdosAttributes:e}})(h,p)),m&&(y=y&T|h&O),{name:e,ce:{versionMadeBy:r,msDosCompatible:s,externalFileAttributes:y,unixExternalUpper:b,uid:a,gid:o,unixMode:c,unixExtraFieldType:l,setuid:u,setgid:f,sticky:w,msdosAttributesRaw:h,msdosAttributes:p}}})(t,e,r);({name:e}=a);const c=((t,e,n)=>{const s=di(t,n,"encodeText",Ft);let r=s(e);if(r===$&&(r=Ft(e)),gi(r)>L)throw new d(Cr);const i=n[$n]||"";let a=s(i);if(a===$&&(a=Ft(i)),gi(a)>L)throw new d(Ir);const c=di(t,n,ys,20);if(c>L)throw new d(Wr);const l=di(t,n,is,new o),u=di(t,n,os),f=di(t,n,cs),h=di(t,n,us,0),p=di(t,n,Ls);let m,y;p||(m=di(t,n,Ns),y=di(t,n,Ts));const g=di(t,n,"encryptionStrength",3),b=di(t,n,bs),z=di(t,n,"extendedTimestamp",!0),S=di(t,n,"keepOrder",!0),x=di(t,n,Cs),F=di(t,n,Vs),v=di(t,n,"bufferedWrite"),U=di(t,n,"createTempStream"),R=di(t,n,"dataDescriptorSignature",!0),k=di(t,n,Os),E=di(t,n,"useUnicodeFileNames",!0),D=di(t,n,xs);if(!p&&D!==$&&0!==D&&8!==D)throw new d("Compression method not supported");let M=di(t,n,"level"),N=di(t,n,Ws),T=di(t,n,"dataDescriptor");v&&T===$&&(T=!1),(T===$||b)&&(T=!0),M!==$&&6!=M&&(N=!1),N||t.config.CompressionStream!==$||t.config.CompressionStreamZlib!==$||(M=0);const O=di(t,n,ps);if(!b&&(m!==$||y!==$)&&(1>g||g>3))throw new d(Vr);let I=st;const C=n[vs];if(C){let t=0,e=0;C.forEach(e=>t+=4+gi(e)),I=new w(t);const n=Rt(I);C.forEach((t,s)=>{if(s>L)throw new d(Ar);if(gi(t)>L)throw new d(Zr);hi(n,e,s),hi(n,e+2,gi(t)),yi(I,t,e+4),e+=4+gi(t)})}return{comment:i,ce:{rawFilename:r,rawComment:a,version:c,lastModDate:l,lastAccessDate:u,creationDate:f,internalFileAttributes:h,passThrough:p,password:m,rawPassword:y,encryptionStrength:g,zipCrypto:b,extendedTimestamp:z,keepOrder:S,useWebWorkers:x,transferStreams:F,bufferedWrite:v,createTempStream:U,dataDescriptorSignature:R,signal:k,useUnicodeFileNames:E,compressionMethod:D,level:M,useCompressionStream:N,dataDescriptor:T,zip64:O,rawExtraField:I}}})(t,e,r),{comment:l}=c,u=r[vs];let f;t.files.set(e,$);try{const o=await(async(t,e,{ce:n},s)=>{const{passThrough:r,zipCrypto:i,password:a,rawPassword:o,encryptionStrength:c}=n;let{dataDescriptor:l,zip64:u,level:f,compressionMethod:w}=n,h=0,p=0;if(r){if(!e)throw new d(Gr);if(p=s[es],p===$)throw new d(Xr)}const m=!0===u,y=di(t,s,ms),g=!!e&&(!!(a&&gi(a)||o&&gi(o))||r&&y);e||(f=0,w=0);const b=g?i?12:16+4*c:0;e&&(e=new Gn(e),await Hn(e),r?(s.uncompressedSize=p,h=wi(p)+b):e.size===$?(l=!0,(u||u===$)&&(u=!0,p=h=4294967296)):(s.uncompressedSize=p=e.size,h=wi(p)+b));const z=m||p>=T,S=m||h>=T;if(z||S){if(!1===u)throw new d(qr);u=!0}return u=u||!1,{reader:e,ce:{dataDescriptor:l,zip64:u,re:z,se:S,uncompressedSize:p,level:f,compressionMethod:w,encrypted:g}}})(t,s,c,r);({reader:s}=o);const l=ri(t.writer),u=si(t.writer),h=(t=>{const{rawFilename:e,lastModDate:n,lastAccessDate:s,creationDate:r,level:i,zip64:a,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:l,directory:u,rawExtraField:f,encryptionStrength:w,extendedTimestamp:h,passThrough:p,encrypted:m,re:y,se:g,uncompressedSize:b}=t;let{version:z,compressionMethod:S}=t;const x=!u&&(S===$?i===$||i>0:0!==S);let F;const v=p||!x,U=a&&(t.bufferedWrite||!l||!y&&!g||v),R=U||a&&l&&(y||g);if(a&&(y||g)){const t=20,e=ni(t);if(e.uint16(1),e.uint16(t-4),F=e.array,U&&(e.le(b),v)){const t=m?o?12:16+4*w:0;e.le(p?0:b+t)}}else F=st;let k,E,D,M,N;if(m&&!o){const t=ni(gi(Hr)+2);t.uint16(39169),t.bytes(Hr),k=t.array,k[8]=w}else k=st;if(h){const t=li(n);if(ui(t)){const e=9+(s?4:0)+(r?4:0),n=ni(e);M=1+(s?2:0)+(r?4:0),n.uint16(X),n.uint16(e-4),n.uint8(M),n.uint32(t),s&&n.uint32(fi(li(s))),r&&n.uint32(fi(li(r))),D=n.array}else D=st;try{const t=ci(n),e=ni(36);e.uint16(10),e.uint16(32),e.ue(4),e.uint16(1),e.uint16(24),e.le(t),e.le(ci(s)||t),e.le(ci(r)||t),E=e.array}catch{E=st}}else E=D=st;try{const{uid:e,gid:n,unixExtraFieldType:s}=t;if(s!=Br||e===$&&n===$)if(s!=Qr||e===$&&n===$)N=st;else{const t=ni(8);t.uint16(30805),t.uint16(4),t.uint16((e===$?0:e)&L),t.uint16((n===$?0:n)&L),N=t.array}else{const t=ei(e),s=ei(n),r=3+t.length+s.length,i=ni(4+r);i.uint16(30837),i.uint16(r),i.uint8(1),i.uint8(t.length),i.bytes(t),i.uint8(s.length),i.bytes(s),N=i.array}}catch{N=st}S===$&&(S=x?8:0),a&&(z=z>45?z:45),m&&!o&&(z=z>51?z:51,k[9]=S,S=99);const T=R?gi(F):0,O=T+gi(k,D,E,N,f);if(O>L)throw new d(Zr);const{ee:C,ne:W,rawLastModDate:V}=bi({version:z,bitFlag:zi(i,c,l,m,S),compressionMethod:S,uncompressedSize:b,lastModDate:_>n?_:n>J?J:n,rawFilename:e,se:g,re:y,extraFieldLength:O}),A=ni(K+gi(e)+O),Z=A.array,j=Rt(Z);return A.uint32(I),A.bytes(C),A.bytes(e),R&&A.bytes(F),A.bytes(k),A.bytes(D),A.bytes(E),A.bytes(N),A.bytes(f),l&&(g||pi(j,18,0),y||pi(j,22,0)),{fe:Z,de:j,ee:C,ne:W,lastModDate:n,rawLastModDate:V,encrypted:m,compressed:x,version:z,compressionMethod:S,oe:M,Kt:st,we:T,_t:D,$t:E,te:N,Jt:k,extraFieldLength:O}})(r=n.assign({},r,a.ce,c.ce,o.ce,{internalFileAttribute:c.ce.internalFileAttributes,externalFileAttribute:a.ce.externalFileAttributes,signature:r[Fs],offset:t.offset-l,diskNumberStart:u})),p=(({zip64:t,dataDescriptor:e,dataDescriptorSignature:n})=>{let s,r=st,i=0,a=t?20:12;return n&&(a+=4),e&&(r=new w(a),s=Rt(r),n&&(i=4,pi(s,0,W))),{he:r,pe:s,me:i}})(r),m=gi(h.fe,p.he);f=await(async(t,e,s,r,a)=>{const{files:o,writer:c}=t,{keepOrder:l,dataDescriptor:u,signal:f}=a,{ye:h}=r,p=t.options.usdz,m=t.Qt;let y,b,z,S,x,F,U,k={},E=0;o.set(e,k),t.Qt=k;try{let b;l&&(b=m&&m.lock,k.lock=new g(t=>z=t)),a.bufferedWrite||!l||t.ge||t.Bt||!u?(y=!0,t.Bt++,U=a.createTempStream?await a.createTempStream():new v($,$,{highWaterMark:tt}),U.size=0,await Hn(c)):(U=c,await D()),await Hn(U);const N=ri(c);if(t.Xt){delete t.Xt;const e=new w(4);pi(Rt(e),0,C),await oi(c,e),t.offset+=4}p&&!y&&ti(r,t.offset-N);const{fe:L}=h;y||(await b,await M());const I=si(c),W=ai(t,c);if(k.diskNumberStart=I,y||(x=!0,F=c.size,await oi(U,L)),k=await(async(t,e,{diskNumberStart:s,lock:r},a,o,c)=>{const{ye:l,be:u,ze:f}=a,{ee:w,ne:h,lastModDate:p,rawLastModDate:m,encrypted:y,compressed:g,version:b,compressionMethod:z,Kt:S,we:x,_t:F,oe:v,$t:U,te:R,Jt:k}=l,{he:E}=u,{rawFilename:D,lastAccessDate:M,creationDate:N,password:L,rawPassword:I,level:C,zip64:W,re:V,se:A,zipCrypto:Z,dataDescriptor:j,directory:P,executable:q,versionMadeBy:X,rawComment:G,rawExtraField:Y,useWebWorkers:H,transferStreams:B,onstart:Q,onprogress:K,onend:J,signal:_,encryptionStrength:tt,extendedTimestamp:et,msDosCompatible:nt,internalFileAttributes:st,externalFileAttributes:rt,uid:it,gid:at,unixMode:ot,setuid:ct,setgid:lt,sticky:ut,unixExternalUpper:ft,msdosAttributesRaw:dt,msdosAttributes:wt,useCompressionStream:ht,passThrough:pt}=c,mt={lock:r,versionMadeBy:X,zip64:W,directory:!!P,executable:!!q,filenameUTF8:!0,rawFilename:D,commentUTF8:!0,rawComment:G,Kt:S,we:x,_t:F,$t:U,te:R,Jt:k,rawExtraField:Y,extendedTimestamp:et,msDosCompatible:nt,internalFileAttributes:st,externalFileAttributes:rt,diskNumberStart:s,uid:it,gid:at,unixMode:ot,setuid:ct,setgid:lt,sticky:ut,unixExternalUpper:ft,msdosAttributesRaw:dt,msdosAttributes:wt};let{signature:yt,uncompressedSize:gt}=c,bt=0;pt||(gt=0);const{writable:zt}=e;if(t){const n=t.createReadable?t.createReadable():t.readable,s=t.size,r={options:{codecType:Ee,level:C,rawPassword:I,password:L,encryptionStrength:tt,zipCrypto:y&&Z,passwordVerification:y&&Z&&m>>8&O,signed:!pt,compressed:g&&!pt,encrypted:y&&!pt,useWebWorkers:H,useCompressionStream:ht,transferStreams:B},config:o,ut:{signal:_,size:s,onstart:Q,onprogress:K,onend:J}};try{const t=await tn({readable:n,writable:zt},r);if(bt=t.outputSize,e.size+=bt,pt||(gt=t.inputSize,yt=t.signature),!A&&bt>=T||!V&>>=T)throw new d(qr)}catch(t){throw t.outputSize!==$&&(e.size+=t.outputSize),t}}return(({signature:t,compressedSize:e,uncompressedSize:n,ye:s,be:r},{zip64:a,zipCrypto:o,dataDescriptor:c})=>{const{ne:l,encrypted:u}=s,{pe:f,me:d}=r;u&&!o||t===$||(pi(l,10,t),c&&pi(f,d,t)),a?c&&(mi(f,d+4,i(e)),mi(f,d+12,i(n))):(pi(l,14,e),pi(l,18,n),c&&(pi(f,d+4,e),pi(f,d+8,n)))})({signature:yt,compressedSize:bt,uncompressedSize:gt,ye:l,be:u},c),j&&await oi(e,E),n.assign(mt,{uncompressedSize:gt,compressedSize:bt,lastModDate:p,rawLastModDate:m,creationDate:N,lastAccessDate:M,encrypted:y,zipCrypto:Z,size:f+bt,compressionMethod:z,version:b,ee:w,ne:h,signature:yt,oe:v,re:V,se:A}),mt})(s,U,k,r,t.config,a),y||(x=!1),o.set(e,k),k.filename=e,y){if(await g.all([U.writable.getWriter().close(),b]),await D(),S=!0,F=c.size,await M(),k.diskNumberStart=si(c),k.offset=ai(t,c),p){const e=r.ze;ti(r,t.offset-ri(c)),k.size+=r.ze-e}(({rawFilename:t,encrypted:e,zip64:n,we:s,signature:r,compressedSize:a,uncompressedSize:o,re:c,se:l},u,{dataDescriptor:f})=>{if(f||(e||pi(u,14,r),l||pi(u,18,a),c||pi(u,22,o)),n&&s){const e=K+gi(t)+4;mi(u,e,i(o)),mi(u,e+8,i(a))}})(k,h.de,a),await oi(c,h.fe),await(async(t,e,n)=>{const s=e.writable.getWriter();try{await t.pipeTo(new R({async write(t){var e;await s.ready,await s.write(t),e=gi(t),E+=e}}),{preventClose:!0,preventAbort:!0,signal:n})}finally{s.releaseLock()}})(U.readable,c,f),c.size+=U.size,S=!1}else k.diskNumberStart=I,k.offset=W;return t.offset+=k.size,k}catch(n){if(S||x){if(t.hasCorruptedEntries=!0,n)try{n.corruptedEntry=!0}catch{}t.offset+=c.size-F,y&&(t.offset+=E)}throw o.delete(e),n}finally{if(y&&t.Bt--,z&&z(),b&&b(),y&&U&&U.dispose)try{await U.dispose()}catch{}}async function D(){t.ge=!0;const{Se:e}=t;t.Se=new g(e=>b=()=>{t.ge=!1,e()}),await e}async function M(){ii(c,gi(h.fe))&&await c.closeDisk()}})(t,e,s,{ye:h,be:p,ze:m},r)}catch(n){throw t.files.delete(e),n}return n.assign(f,{name:e,comment:l,extraField:u}),new Ms(f)})(r,t,e,s),a.add(l),await l}catch(e){throw u&&r.Gt.delete(t),e}finally{a.delete(l);const t=Jr.shift();t?t():Kr--}}remove(t){const{Gt:e,files:n}=this;if("string"==typeof t&&(t=n.get(t)),t&&t.filename!==$){const{filename:s}=t;if(e.has(s)&&n.has(s))return e.delete(s),n.delete(s),!0}return!1}async close(t=st,n={}){const{Ht:s,writer:r}=this,{writable:a}=r;if(gi(t)>L)throw new d(Or);for(;s.size;)await g.allSettled(e.from(s));return await(async(t,n,s)=>{const r=(t=>{let e=0;for(const[,n]of t){const{rawFilename:t,Jt:s,rawComment:r,$t:i,te:a,rawExtraField:o,extendedTimestamp:c,oe:l,lastModDate:u,re:f,se:w,uncompressedSize:h,compressedSize:p}=n,m=n.offset>=T,y=n.diskNumberStart>=L;let g,b;if(m||y||f||w){const t=4+(f?8:0)+(w?8:0)+(m?8:0)+(y?4:0),e=ni(t);e.uint16(1),e.uint16(t-4),f&&e.le(h),w&&e.le(p),m&&e.le(n.offset),y&&e.uint32(n.diskNumberStart),g=e.array}else g=st;n.Kt=g,n.ie=m,n.ae=y;const z=li(u);if(c&&ui(z)){const t=ni(9);t.uint16(X),t.uint16(5),t.uint8(l),t.uint32(z),b=t.array}else b=st;n._t=b;const S=gi(g,s,i,a,b,o);if(S>L)throw new d(Zr);e+=46+gi(t,r)+S}return e})(t.files),a=await(async(t,n,s)=>{const{files:r,writer:i}=t,a=new w(n);await Hn(i);let o=0,c=0,l=si(i),u=ri(i);for(const[t,n]of e.from(r.values()).entries()){const{offset:e,rawFilename:f,Kt:d,Jt:w,_t:h,$t:p,te:m,rawExtraField:y,rawComment:g,versionMadeBy:b,ee:z,ne:S,re:x,se:F,ae:v,ie:U,internalFileAttributes:R,externalFileAttributes:k,diskNumberStart:E,uncompressedSize:D,compressedSize:M}=n,N=gi(d,w,h,p,m,y),O=46+gi(f,g)+N;ii(i,o+O-c)&&(await oi(i,a.slice(c,o)),c=o,await i.closeDisk()),0==t&&(l=si(i),u=ri(i)),x||pi(S,18,D),F||pi(S,14,M),(U||v)&&45>n.version&&hi(S,0,45);const I=ni(O);if(I.uint32(V),I.uint16(b),I.bytes(z.subarray(0,24)),I.uint16(N),I.uint16(gi(g)),I.uint16(v?L:E),I.uint16(R),I.uint32(k),I.uint32(U?T:e),I.bytes(f),I.bytes(d),I.bytes(w),I.bytes(h),I.bytes(p),I.bytes(m),I.bytes(y),I.bytes(g),yi(a,I.array,o),o+=O,s.onprogress)try{await s.onprogress(t+1,r.size,new Ms(n))}catch{}}return await oi(i,c?a.slice(c):a),{diskNumber:l,diskOffset:u}})(t,r,s);await(async(t,e,n,s)=>{const{writer:r}=t,{xe:a}=s;let{Fe:o}=s,c=t.files.size,l=a.diskNumber,u=ai(t,a),f=si(r);ii(r,P)&&f++;let w=di(t,n,ps);if(!(T>u&&T>o&&L>c&&L>f)){if(!1===w)throw new d(qr);w=!0}const h=gi(e);if(h>L)throw new d(Or);const p=ni(w?98:P);ii(r,gi(p.array)+h)&&await r.closeDisk(),f=si(r),w&&(p.uint32(Z),p.le(44),p.uint16(45),p.uint16(45),p.uint32(f),p.uint32(l),p.le(c),p.le(c),p.le(o),p.le(u),p.uint32(j),p.uint32(f),p.le(i(ai(t,r))+i(o)),p.uint32(f+1),di(t,n,"supportZip64SplitFile",!0)&&(f=L,l=L),c=L,u=T,o=T),p.uint32(A),p.uint16(f),p.uint16(l),p.uint16(c),p.uint16(c),p.uint32(o),p.uint32(u),p.uint16(h),await oi(r,p.array),h&&await oi(r,e)})(t,n,s,{xe:a,Fe:r})})(this,t,n),di(this,n,As)||await a.getWriter().close(),r.getData?r.getData():a}}function $r(t,e,n){t.Ht.add(e),e.catch(t=>{try{n(t)}catch{}})}function ti(t,e){const{ye:n}=t;let{fe:s,extraFieldLength:r}=n,i=64-(e+gi(s))%64;4>i&&(i+=64);const a=new w(i),o=Rt(a);hi(o,0,6534),hi(o,2,i-4);const c=s;n.fe=s=new w(gi(c)+i),yi(s,c),yi(s,a,gi(c));const l=Rt(s);hi(l,28,r+i),n.de=l,t.ze+=i}function ei(t){if(t===$)return st;{const e=new w(4);Rt(e).setUint32(0,t,!0);let n=4;for(;n>1&&0===e[n-1];)n--;return e.subarray(0,n)}}function ni(t){const e=new w(t),n=Rt(e);let s=0;return{array:e,uint8:t=>{((t,e,n)=>{t.setUint8(e,n)})(n,s,t),s+=1},uint16:t=>{hi(n,s,t),s+=2},uint32:t=>{pi(n,s,t),s+=4},le:t=>{mi(n,s,i(t)),s+=8},bytes:t=>{yi(e,t,s),s+=gi(t)},ue:t=>s+=t}}function si(t){const{diskNumber:e=0}=t;return e}function ri(t){const{diskOffset:e=0}=t;return e}function ii(t,e){const{availableSize:n=tt}=t;return e>n}function ai(t,{diskNumber:e=0,diskOffset:n=0}){return t.offset-n-(e?t.Yt:0)}async function oi(t,e){const{writable:n}=t,s=n.getWriter();try{await s.ready,t.size+=gi(e),await s.write(e)}finally{s.releaseLock()}}function ci(t){if(t)return(i(t.getTime())+i(116444736e5))*i(1e4)}function li(t){return a.floor(t.getTime()/1e3)}function ui(t){return t>=jr&&Pr>=t}function fi(t){return a.min(Pr,a.max(jr,t))}function di(t,e,n,s){const r=e[n]===$?t.options[n]:e[n];return r===$?s:r}function wi(t){return t+5*(a.floor(t/16383)+1)}function hi(t,e,n){t.setUint16(e,n,!0)}function pi(t,e,n){t.setUint32(e,n,!0)}function mi(t,e,n){t.setBigUint64(e,n,!0)}function yi(t,e,n){t.set(e,n)}function gi(...t){let e=0;return t.forEach(t=>t&&(e+=t.length)),e}function bi({version:t,bitFlag:e,compressionMethod:n,uncompressedSize:s,compressedSize:r,lastModDate:i,rawLastModDate:a,rawFilename:o,se:c,re:l,extraFieldLength:u}){const f=ni(26),d=f.array,w=Rt(d);if(f.uint16(t),f.uint16(e),f.uint16(n),a===$){const t=new p(1),e=Rt(t);hi(e,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),hi(e,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),a=t[0]}return f.uint32(a),f.ue(4),c||r!==$?f.uint32(c?T:r):f.ue(4),l||s!==$?f.uint32(l?T:s):f.ue(4),f.uint16(gi(o)),f.uint16(u),{ee:d,ne:w,rawLastModDate:a}}function zi(t,e,n,s,r){let i=0;return e&&(i|=G),n&&(i|=8),8!=r&&9!=r||(0>t||t>3||(i|=6),t>3&&5>=t&&(i|=4),9==t&&(i|=2)),s&&(i|=1),i}const Si=1048576,xi=".zip.js-temp",Fi=1048576,vi=1048576,Ui=".zip.js-temp";try{ft({baseURI:void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:N&&"SCRIPT"===N.tagName.toUpperCase()&&N.src||new f("zip.min.js",S.baseURI).href})}catch{}const Ri=[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],ki=[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],Ei=[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],Di=[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],Mi=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Ni=new w(288);Ni.fill(8,0,144),Ni.fill(9,144,256),Ni.fill(7,256,280),Ni.fill(8,280,288);const Ti=new w(30).fill(5);function Li(t){const e=new h(16);for(const n of t)e[n]++;e[0]=0;const n=new h(17);for(let t=1;15>=t;t++)n[t+1]=n[t]+e[t];const s=new h(t.length);for(let e=0;e<t.length;e++)t[e]&&(s[n[t[e]]++]=e);return{ve:e,symbols:s}}const Oi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let Ii,Ci,Wi,Vi;function Ai(t,e,n={}){const s="number"==typeof n.level?n.level:-1,r="number"==typeof n.outBuffer?n.outBuffer:65536,i="number"==typeof n.inBufferSize?n.inBufferSize:65536;return new v({start(){try{let n;if(this.Ue=Ci(r),this.in=Ci(i),this.inBufferSize=i,!this.Ue||!this.in)throw new d("allocation failed");if(this.Re=new w(r),t?(this.ke=Ii.deflate_process,this.Ee=Ii.deflate_last_consumed,this.De=Ii.deflate_end,this.Me=Ii.deflate_new(),n="gzip"===e?Ii.deflate_init_gzip(this.Me,s):"deflate-raw"===e?Ii.deflate_init_raw(this.Me,s):Ii.deflate_init(this.Me,s)):"deflate64-raw"===e?(this.ke=Ii.inflate9_process,this.Ee=Ii.inflate9_last_consumed,this.De=Ii.inflate9_end,this.Me=Ii.inflate9_new(),n=Ii.inflate9_init_raw(this.Me)):(this.ke=Ii.inflate_process,this.Ee=Ii.inflate_last_consumed,this.De=Ii.inflate_end,this.Me=Ii.inflate_new(),n="deflate-raw"===e?Ii.inflate_init_raw(this.Me):"gzip"===e?Ii.inflate_init_gzip(this.Me):Ii.inflate_init(this.Me)),0!==n)throw new d("init failed:"+n)}catch(t){throw o(this),t}},transform(e,n){try{const s=e,i=new w(Vi.buffer),o=this.ke,c=this.Ee,l=this.Ue,u=this.Re;let f=0;for(;f<s.length;){const e=a.min(s.length-f,32768);if((!this.in||this.inBufferSize<e)&&(this.in&&Wi&&(Wi(this.in),this.in=0),this.in=Ci(e),this.inBufferSize=e,!this.in))throw new d("allocation failed");i.set(s.subarray(f,f+e),this.in);const w=o(this.Me,this.in,e,l,r,0),h=16777215&w;if(h&&(u.set(i.subarray(l,l+h),0),n.enqueue(u.slice(0,h))),!t){const t=w>>24&255,e=128&t?t-256:t;if(0>e)throw new d("process error:"+e)}const p=c(this.Me);if(0===p)break;f+=p}}catch(t){o(this),n.error(t)}},flush(e){try{const n=new w(Vi.buffer),s=this.ke,i=this.Ue,a=this.Re;for(;;){const o=s(this.Me,0,0,i,r,4),c=16777215&o,l=o>>24&255;if(!t){const t=128&l?l-256:l;if(0>t)throw new d("process error:"+t)}if(c&&(a.set(n.subarray(i,i+c),0),e.enqueue(a.slice(0,c))),1===l||0===c)break}}catch(t){e.error(t)}finally{const t=o(this);0!==t&&e.error(new d("end error:"+t))}},cancel(){o(this)}});function o(t){let e=0;return t.Me&&t.De&&(e=t.De(t.Me)),t.Me=0,t.in&&Wi&&Wi(t.in),t.in=0,t.Ue&&Wi&&Wi(t.Ue),t.Ue=0,e}}class Zi{constructor(t="deflate",e){return Ai(!0,t,e)}}class ji{constructor(t="deflate",e){return Ai(!1,t,e)}}Zi.St=!0,ji.St=!0;let Pi,qi=!1;(t=>{let e;t({wasmURI:()=>(e||(e="data:application/wasm;base64,"+(t=>{let e="";const n=t.length;let s=0;for(;n>s+2;s+=3){const n=t[s]<<16|t[s+1]<<8|t[s+2];e+=Oi[n>>18&63]+Oi[n>>12&63]+Oi[n>>6&63]+Oi[63&n]}const r=n-s;if(1===r){const n=t[s]<<16;e+=Oi[n>>18&63]+Oi[n>>12&63]+"=="}else if(2===r){const n=t[s]<<16|t[s+1]<<8;e+=Oi[n>>18&63]+Oi[n>>12&63]+Oi[n>>6&63]+"="}return e})((t=>{let e=0,n=0,s=0,r=new w(1024),i=0,a=0;for(;!a;){a=c(1);const t=c(2);if(0==t)l();else if(1==t)u(Li(Ni),Li(Ti));else{if(2!=t)throw d("invalid deflate block type");u(...f())}}return r.subarray(0,i);function o(){if(e>=t.length)throw d("unexpected end of deflate data");return t[e++]}function c(t){for(;t>s;)n|=o()<<s,s+=8;const e=n&(1<<t)-1;return n>>>=t,s-=t,e}function l(){n=0,s=0;const t=o()|o()<<8;e+=2,p(i+t);for(let e=0;t>e;e++)r[i++]=o()}function u(t,e){let n=h(t);for(;256!=n;){if(256>n)p(i+1),r[i++]=n;else{const t=n-257,s=Ri[t]+c(ki[t]),a=h(e),o=Ei[a]+c(Di[a]);p(i+s);const l=i-o;for(let t=0;s>t;t++)r[i++]=r[l+t]}n=h(t)}}function f(){const t=c(5)+257,e=c(5)+1,n=c(4)+4,s=new w(19);for(let t=0;n>t;t++)s[Mi[t]]=c(3);const r=Li(s),i=new w(t+e);let a=0;for(;a<i.length;){const t=h(r);if(16>t)i[a++]=t;else if(16==t){const t=i[a-1];let e=c(2)+3;for(;e--;)i[a++]=t}else a+=17==t?c(3)+3:c(7)+11}return[Li(i.subarray(0,t)),Li(i.subarray(t))]}function h(t){const{ve:e,symbols:n}=t;let s=0,r=0,i=0;for(let t=1;15>=t;t++){s|=c(1);const a=e[t];if(a>s-r)return n[i+(s-r)];i+=a,r=r+a<<1,s<<=1}throw d("invalid huffman code")}function p(t){if(r.length<t){let e=2*r.length;for(;t>e;)e*=2;const n=new w(e);n.set(r.subarray(0,i)),r=n}}})((t=>{const e=(t=(t+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,n=[];for(let s=0;e>s;s+=4){const e=Oi.indexOf(t[s])<<18|Oi.indexOf(t[s+1])<<12|(63&Oi.indexOf(t[s+2]))<<6|63&Oi.indexOf(t[s+3]);n.push(e>>16&255),"="!==t[s+2]&&n.push(e>>8&255),"="!==t[s+3]&&n.push(255&e)}return new w(n)})("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")))),e)})})(ft),(({Ne:t})=>{Ae=t})({Ne:t=>{if(!Pi){let{wasmURI:e}=t;typeof e==nt&&(e=e()),Pi=(async(t,{baseURI:e})=>{if(!qi){let n,s;try{try{s=new f(t,e)}catch{}const r=await fetch(s);n=await r.arrayBuffer()}catch(e){if(!t.startsWith("data:application/wasm;base64,"))throw e;n=(t=>{const e=t.split(",")[1],n=atob(e),s=n.length,r=new w(s);for(let t=0;s>t;++t)r[t]=n.charCodeAt(t);return r.buffer})(t)}(t=>{if(Ii=t,({malloc:Ci,free:Wi,memory:Vi}=Ii),"function"!=typeof Ci||"function"!=typeof Wi||!Vi)throw Ii=Ci=Wi=Vi=null,new d("Invalid WASM module")})((await WebAssembly.instantiate(n)).instance.exports),qi=!0}})(e,t)}return Pi}}),ft({CompressionStreamZlib:Zi,DecompressionStreamZlib:ji}),(t=>{const e='(t=>{"function"==typeof define&&define.amd?define(t):t()})(function(){"use strict";const{Array:t,Object:e,Number:n,Math:s,Error:r,Uint8Array:o,Uint16Array:i,Uint32Array:c,Int32Array:a,Map:f,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:p,TransformStream:d,ReadableStream:y,WritableStream:m,CompressionStream:g,DecompressionStream:v}=self,b=void 0,S="undefined",k="function",z=new o,C=[[],[],[],[],[],[],[],[]];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)e=1&e?e>>>1^3988292384:e>>>1;C[0][t]=e}for(let t=0;256>t;t++)for(let e=1;8>e;e++){const n=C[e-1][t];C[e][t]=n>>>8^C[0][255&n]}const[A,I,x,P,R,U,M,_]=C;class B{constructor(t){this.o=t||-1}append(t){let e=0|this.o;const n=0|t.length;let s=0;if(n>=8&&t.buffer){const r=new l(t.buffer,t.byteOffset,n),o=n-8;for(;o>=s;s+=8){const t=e^r.getInt32(s,!0),n=r.getInt32(s+4,!0);e=_[255&t]^M[t>>>8&255]^U[t>>>16&255]^R[t>>>24&255]^P[255&n]^x[n>>>8&255]^I[n>>>16&255]^A[n>>>24&255]}}for(;n>s;s++)e=e>>>8^A[255&(e^t[s])];this.o=e}get(){return~this.o}}class D extends d{constructor(){let t;const e=new B;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new o(4);new l(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function V(t,e){const n=new o(t.length+e.length);return n.set(t),n.set(e,t.length),n}const W={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],s=W.l(n);return 32===s?t.concat(e):W.h(e,s,0|n,t.slice(0,t.length-1))},m(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+W.l(n)},v(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,s.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=W.S(e,t[n-1]&2147483648>>e-1,1)),t},S:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,l:t=>s.round(t/1099511627776)||32,h(t,e,n,s){for(void 0===s&&(s=[]);e>=32;e-=32)s.push(n),n=0;if(0===e)return s.concat(t);for(let r=0;r<t.length;r++)s.push(n|t[r]>>>e),n=t[r]<<32-e;const r=t.length?t[t.length-1]:0,o=W.l(r);return s.push(W.S(e+o&31,e+o>32?n:s.pop(),1)),s}},K={bytes:{C(t){const e=W.m(t)/8,n=new o(e);let s;for(let r=0;e>r;r++)3&r||(s=t[r/4]),n[r]=s>>>24,s<<=8;return n},A(t){const e=[];let n,s=0;for(n=0;n<t.length;n++)s=s<<8|t[n],3&~n||(e.push(s),s=0);return 3&n&&e.push(W.S(8*(3&n),s)),e}}},E=class{constructor(t){const e=this;e.blockSize=512,e.I=[1732584193,4023233417,2562383102,271733878,3285377520],e.P=[1518500249,1859775393,2400959708,3395469782],t?(e.R=t.R.slice(0),e.U=t.U.slice(0),e.M=t.M):e.reset()}reset(){const t=this;return t.R=t.I.slice(0),t.U=[],t.M=0,t}update(t){const e=this;"string"==typeof t&&(t=K._.A(t));const n=e.U=W.concat(e.U,t),s=e.M,o=e.M=s+W.m(t);if(o>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const i=new c(n);let a=0;for(let t=e.blockSize+s-(e.blockSize+s&e.blockSize-1);o>=t;t+=e.blockSize)e.B(i.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),e}D(){const t=this;let e=t.U;const n=t.R;e=W.concat(e,[W.S(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(s.floor(t.M/4294967296)),e.push(0|t.M);e.length;)t.B(e.splice(0,16));return t.reset(),n}V(t,e,n,s){return t>19?t>39?t>59?t>79?void 0:e^n^s:e&n|e&s|n&s:e^n^s:e&n|~e&s}W(t,e){return e<<t|e>>>32-t}B(e){const n=this,r=n.R,o=t(80);for(let t=0;16>t;t++)o[t]=e[t];let i=r[0],c=r[1],a=r[2],f=r[3],l=r[4];for(let t=0;79>=t;t++){16>t||(o[t]=n.W(1,o[t-3]^o[t-8]^o[t-14]^o[t-16]));const e=n.W(5,i)+n.V(t,c,a,f)+l+o[t]+n.P[s.floor(t/20)]|0;l=f,f=a,a=n.W(30,c),c=i,i=e}r[0]=r[0]+i|0,r[1]=r[1]+c|0,r[2]=r[2]+a|0,r[3]=r[3]+f|0,r[4]=r[4]+l|0}},L={importKey:t=>new L.K(K.bytes.A(t)),L(t,e,n,s){if(n=n||1e4,0>s||0>n)throw new r("invalid params to pbkdf2");const o=1+(s>>5)<<2;let i,c,a,f,u;const w=new ArrayBuffer(o),h=new l(w);let p=0;const d=W;for(e=K.bytes.A(e),u=1;(o||1)>p;u++){for(i=c=t.encrypt(d.concat(e,[u])),a=1;n>a;a++)for(c=t.encrypt(c),f=0;f<c.length;f++)i[f]^=c[f];for(a=0;(o||1)>p&&a<i.length;a++)h.setInt32(p,i[a]),p+=4}return w.slice(0,s/8)},K:class{constructor(t){const e=this,n=e.O=E,s=[[],[]];e.T=[new n,new n];const r=e.T[0].blockSize/32;t.length>r&&(t=(new n).update(t).D());for(let e=0;r>e;e++)s[0][e]=909522486^t[e],s[1][e]=1549556828^t[e];e.T[0].update(s[0]),e.T[1].update(s[1]),e.j=new n(e.T[0])}reset(){const t=this;t.j=new t.O(t.T[0]),t.H=!1}update(t){this.H=!0,this.j.update(t)}digest(){const t=this,e=t.j.D(),n=new t.O(t.T[1]).update(e).D();return t.reset(),n}encrypt(t){if(this.H)throw new r("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},O=typeof h!=S&&typeof h.getRandomValues==k,T="Invalid password",j="Invalid signature",H="zipjs-abort-check-password";function Z(t){if(O)return h.getRandomValues(t);throw new r("Crypto API not supported")}const F=16,N={name:"PBKDF2"},q=e.assign({hash:{name:"HMAC"}},N),G=e.assign({iterations:1e3,hash:{name:"SHA-1"}},N),J=["deriveBits"],Q=[8,12,16],X=[16,24,32],Y=10,$=[0,0,0,0],tt=typeof h!=S,et=tt&&h.subtle,nt=tt&&typeof et!=S,st=K.bytes,rt=class{constructor(t){const e=this;e.Z=[[[],[],[],[],[]],[[],[],[],[],[]]],e.Z[0][0][0]||e.F();const n=e.Z[0][4],s=e.Z[1],o=t.length;let i,c,a,f=1;if(4!==o&&6!==o&&8!==o)throw new r("invalid aes key size");for(e.P=[c=t.slice(0),a=[]],i=o;4*o+28>i;i++){let t=c[i-1];(i%o===0||8===o&&i%o===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],i%o===0&&(t=t<<8^t>>>24^f<<24,f=f<<1^283*(f>>7))),c[i]=c[i-o]^t}for(let t=0;i;t++,i--){const e=c[3&t?i:i-4];a[t]=4>=i||4>t?e:s[0][n[e>>>24]]^s[1][n[e>>16&255]]^s[2][n[e>>8&255]]^s[3][n[255&e]]}}encrypt(t){return this.N(t,0)}decrypt(t){return this.N(t,1)}F(){const t=this.Z[0],e=this.Z[1],n=t[4],s=e[4],r=[],o=[];let i,c,a,f;for(let t=0;256>t;t++)o[(r[t]=t<<1^283*(t>>7))^t]=t;for(let l=i=0;!n[l];l^=c||1,i=o[i]||1){let o=i^i<<1^i<<2^i<<3^i<<4;o=o>>8^255&o^99,n[l]=o,s[o]=l,f=r[a=r[c=r[l]]];let u=16843009*f^65537*a^257*c^16843008*l,w=257*r[o]^16843008*o;for(let n=0;4>n;n++)t[n][l]=w=w<<24^w>>>8,e[n][o]=u=u<<24^u>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}N(t,e){if(4!==t.length)throw new r("invalid aes block size");const n=this.P[e],s=n.length/4-2,o=[0,0,0,0],i=this.Z[e],c=i[0],a=i[1],f=i[2],l=i[3],u=i[4];let w,h,p,d=t[0]^n[0],y=t[e?3:1]^n[1],m=t[2]^n[2],g=t[e?1:3]^n[3],v=4;for(let t=0;s>t;t++)w=c[d>>>24]^a[y>>16&255]^f[m>>8&255]^l[255&g]^n[v],h=c[y>>>24]^a[m>>16&255]^f[g>>8&255]^l[255&d]^n[v+1],p=c[m>>>24]^a[g>>16&255]^f[d>>8&255]^l[255&y]^n[v+2],g=c[g>>>24]^a[d>>16&255]^f[y>>8&255]^l[255&m]^n[v+3],v+=4,d=w,y=h,m=p;for(let t=0;4>t;t++)o[e?3&-t:t]=u[d>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&g]^n[v++],w=d,d=y,y=m,m=g,g=w;return o}},ot=class{constructor(t,e){this.G=t,this.J=e,this.X=e}reset(){this.X=this.J}update(t){return this.Y(this.G,t,this.X)}$(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,s=255&t;255===e?(e=0,255===n?(n=0,255===s?s=0:++s):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=s}return t}et(t){0===(t[0]=this.$(t[0]))&&(t[1]=this.$(t[1]))}Y(t,e,n){let s;if(!(s=e.length))return[];const r=W.m(e);for(let r=0;s>r;r+=4){this.et(n);const s=t.encrypt(n);e[r]^=s[0],e[r+1]^=s[1],e[r+2]^=s[2],e[r+3]^=s[3]}return W.v(e,r)}},it=L.K;let ct=tt&&nt&&typeof et.importKey==k,at=tt&&nt&&typeof et.deriveBits==k;class ft extends d{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:s}){super({start(){ut(this,t,e,n)},async transform(t,e){const n=this,{password:i,strength:c,nt:a,ready:f}=n;i?(await(async(t,e,n,s)=>{const o=await ht(t,e,n,dt(s,0,Q[e])),i=dt(s,Q[e]);if(o[0]!=i[0]||o[1]!=i[1])throw new r(T)})(n,c,i,dt(t,0,Q[c]+2)),t=dt(t,Q[c]+2),s?e.error(new r(H)):a()):await f;const l=new o(t.length-Y-(t.length-Y)%F);e.enqueue(wt(n,t,l,0,Y,!0))},async flush(t){const{st:e,ot:n,pending:s,ready:o}=this;if(n&&e){await o;const i=dt(s,0,s.length-Y),c=dt(s,s.length-Y);let a=z;if(i.length){const t=mt(st,i);n.update(t);const s=e.update(t);a=yt(st,s)}const f=dt(yt(st,n.digest()),0,Y);let l=s.length<Y?1:0;for(let t=0;Y>t;t++)l|=f[t]^c[t];if(l)throw new r(j);t.enqueue(a)}}})}}class lt extends d{constructor({password:t,rawPassword:e,encryptionStrength:n}){let s;super({start(){ut(this,t,e,n)},async transform(t,e){const n=this,{password:s,strength:r,nt:i,ready:c}=n;let a=z;s?(a=await(async(t,e,n)=>{const s=Z(new o(Q[e]));return V(s,await ht(t,e,n,s))})(n,r,s),i()):await c;const f=new o(a.length+t.length-t.length%F);f.set(a,0),e.enqueue(wt(n,t,f,a.length,0))},async flush(t){const{st:e,ot:n,pending:r,ready:o}=this;if(n&&e){await o;let i=z;if(r.length){const t=e.update(mt(st,r));n.update(t),i=yt(st,t)}s.signature=yt(st,n.digest()).slice(0,Y),t.enqueue(V(i,s.signature))}}}),s=this}}function ut(t,n,s,r){e.assign(t,{ready:new u(e=>t.nt=e),password:pt(n,s),strength:r-1,pending:z})}function wt(t,e,n,s,r,i){const{st:c,ot:a,pending:f}=t;f.length&&(e=V(f,e));const l=e.length-r;let u;for(n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new o(e)).set(n,0)}return t})(n,s+(l-l%F)),u=0;l-F>=u;u+=F){const t=mt(st,dt(e,u,u+F));i&&a.update(t);const r=c.update(t);i||a.update(r),n.set(yt(st,r),u+s)}return t.pending=dt(e,u),n}async function ht(n,s,r,i){n.password=null;const c=await(async(t,e,n,s,r)=>{if(!ct)return L.importKey(e);try{return await et.importKey("raw",e,n,!1,r)}catch{return ct=!1,L.importKey(e)}})(0,r,q,0,J),a=await(async(t,e,n)=>{if(!at)return L.L(e,t.salt,G.iterations,n);try{return await et.deriveBits(t,e,n)}catch{return at=!1,L.L(e,t.salt,G.iterations,n)}})(e.assign({salt:i},G),c,8*(2*X[s]+2)),f=new o(a),l=mt(st,dt(f,0,X[s])),u=mt(st,dt(f,X[s],2*X[s])),w=dt(f,2*X[s]);return e.assign(n,{keys:{key:l,it:u,passwordVerification:w},st:new ot(new rt(l),t.from($)),ot:new it(u)}),w}function pt(t,e){return e===b?(t=>{if(typeof w==S){const e=new o((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new w).encode(t)})(t):e}function dt(t,e,n){return t.subarray(e,n)}function yt(t,e){return t.C(e)}function mt(t,e){return t.A(e)}class gt extends d{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:s}){super({start(){bt(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=St(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e.at(-1)^n.passwordVerification))throw new r(T);t=t.subarray(12)}s?e.error(new r(H)):e.enqueue(St(n,t))}})}}class vt extends d{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){bt(this,t,e,n)},transform(t,e){const n=this;let s,r;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=Z(new o(12));e[11]=n.passwordVerification,s=new o(t.length+e.length),s.set(kt(n,e),0),r=12}else s=new o(t.length),r=0;s.set(kt(n,t),r),e.enqueue(s)}})}}function bt(t,n,s,r){e.assign(t,{password:n,rawPassword:s,passwordVerification:r}),((t,n,s)=>{const r=[305419896,591751049,878082192];if(e.assign(t,{keys:r,ct:new B(r[0]),ft:new B(r[2])}),s)for(let e=0;e<s.length;e++)zt(t,s[e]);else for(let e=0;e<n.length;e++)zt(t,n.charCodeAt(e))})(t,n,s)}function St(t,e){const n=new o(e.length);for(let s=0;s<e.length;s++)n[s]=Ct(t)^e[s],zt(t,n[s]);return n}function kt(t,e){const n=new o(e.length);for(let s=0;s<e.length;s++)n[s]=Ct(t)^e[s],zt(t,e[s]);return n}function zt(t,e){let[,n]=t.keys;t.ct.append([e]);const r=~t.ct.get();n=It(s.imul(It(n+At(r)),134775813)+1),t.ft.append([n>>>24]);const o=~t.ft.get();t.keys=[r,n,o]}function Ct(t){const e=2|t.keys[2];return At(s.imul(e,1^e)>>>8)}function At(t){return 255&t}function It(t){return 4294967295&t}class xt extends d{constructor(t,{chunkSize:e,CompressionStreamZlib:n,CompressionStream:s}){super({});const{compressed:r,encrypted:o,useCompressionStream:i,zipCrypto:c,signed:a,level:f,deflate64:u}=t,w=this;let h,p,d,y=super.readable;const m=a&&r&&!u&&(!o||c)&&!(!i||!s);o&&!c||!a||m||(h=new D,y=_t(y,h)),r&&(m?(d=new Pt,y=Bt(y,new s("gzip")),y=_t(y,d)):y=Mt(y,i,{level:f,chunkSize:e},s,n,s)),o&&(c?y=_t(y,new vt(t)):(p=new lt(t),y=_t(y,p))),Ut(w,y,()=>{let t;o&&!c&&(t=p.signature),o&&!c||!a||(t=m?d.signature:new l(h.value.buffer).getUint32(0)),w.signature=t})}}class Pt extends d{constructor(){let t,e=10,n=new o(0);super({transform(t,r){if(e){const n=s.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const o=n.length+t.length;if(8>=o)return void(n=V(n,t));const i=o-8,c=s.min(i,n.length);r.enqueue(V(n.subarray(0,c),t.subarray(0,i-c))),n=V(n.subarray(c),t.subarray(i-c))},flush(){const e=new l((s=n).buffer,s.byteOffset,s.byteLength);var s;t.signature=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class Rt extends d{constructor(t,{chunkSize:e,DecompressionStreamZlib:n,DecompressionStream:s}){super({});const{zipCrypto:o,encrypted:i,signed:c,signature:a,compressed:f,useCompressionStream:u,deflate64:w}=t;let h,p,d=super.readable;i&&(o?d=_t(d,new gt(t)):(p=new ft(t),d=_t(d,p))),f&&(d=Mt(d,u,{chunkSize:e,deflate64:w},s,n,s),d=(t=>{const e=t.getReader();return new y({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new r("Invalid compressed data");throw e.cause=t,e}const{value:s,done:o}=n;o?t.close():t.enqueue(s)},cancel:t=>e.cancel(t)})})(d)),i&&!o||!c||(h=new D,d=_t(d,h)),Ut(this,d,()=>{if((!i||o)&&c){const t=new l(h.value.buffer);if(a!=t.getUint32(0,!1))throw new r(j)}})}}function Ut(t,n,s){n=_t(n,new d({flush:s})),e.defineProperty(t,"readable",{get:()=>n})}function Mt(t,e,n,s,r,o){const i=e&&s?s:r||o,c=n.deflate64?"deflate64-raw":"deflate-raw";let a;try{a=new i(c,n)}catch(t){if(!e)throw t;if(r)a=new r(c,n);else{if(!o)throw t;a=new o(c,n)}}return Bt(t,a)}function _t(t,e){return t.pipeThrough(e)}function Bt(t,e){const n=e.writable.getWriter(),s=t.getReader();return(async()=>{try{for(;;){await n.ready;const t=await s.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await(async(t,e)=>{try{await t.abort(e)}catch{}})(n,t),await(async(t,e)=>{try{await t.cancel(e)}catch{}})(s,t)}})(),e.readable}const Dt="data",Vt="close";class Wt extends d{constructor(t,n){super({});const s=this,{codecType:o}=t;let i;o.startsWith("deflate")?i=xt:o.startsWith("inflate")&&(i=Rt),s.outputSize=0;let c=0;const a=new i(t,n),f=super.readable,l=new d({transform(t,e){t&&t.length&&(c+=t.length,e.enqueue(t))},flush(){e.assign(s,{inputSize:c})}}),u=new d({transform(e,n){if(e&&e.length&&(n.enqueue(e),s.outputSize+=e.length,t.outputSize!==b&&s.outputSize>t.outputSize))throw new r("Invalid uncompressed size")},flush(){const{signature:t}=a;e.assign(s,{signature:t,inputSize:c})}});e.defineProperty(s,"readable",{get:()=>f.pipeThrough(l).pipeThrough(a).pipeThrough(u)})}}class Kt extends d{constructor(t){const e=[];let n=0;function s(){const s=new o(t);let r=0;for(;t>r;){const n=e[0],o=t-r;n.length>o?(s.set(n.subarray(0,o),r),e[0]=n.subarray(o),r+=o):(s.set(n,r),r+=n.length,e.shift())}return n-=t,s}1>t&&(t=65536),super({transform(r,o){for(e.push(r),n+=r.length;n>t;)o.enqueue(s())},flush(t){n&&t.enqueue(((t,e)=>{const n=new o(e);let s=0;for(const e of t)n.set(e,s),s+=e.length;return n})(e,n))}})}}let Et=2;try{typeof navigator!=S&&navigator.hardwareConcurrency&&(Et=navigator.hardwareConcurrency)}catch{}const Lt=new f,Ot=new f;let Tt,jt,Ht,Zt,Ft,Nt=0;async function qt(t){let e,r;try{const{options:o,config:i}=t;if(!o.useCompressionStream)try{await self.initModule(t.config)}catch{o.useCompressionStream=!0}i.CompressionStream=self.CompressionStream,i.DecompressionStream=self.DecompressionStream;const c={highWaterMark:1},a=t.readable||new y({async pull(t){const e=new u(t=>Lt.set(Nt,t));Gt({type:"pull",messageId:Nt}),Nt=(Nt+1)%n.MAX_SAFE_INTEGER;const{value:s,done:r}=await e;t.enqueue(s),r&&t.close()}},c);r=t.writable||new m({async write(t){let e;const s=new u(t=>e=t);Ot.set(Nt,e),Gt({type:Dt,value:t,messageId:Nt}),Nt=(Nt+1)%n.MAX_SAFE_INTEGER,await s}},c),e=new Wt(o,i),Tt=new AbortController;const{signal:f}=Tt;await a.pipeThrough(e).pipeThrough(new Kt((t=>s.max(t.chunkSize,64))(i))).pipeTo(r,{signal:f,preventClose:!0,preventAbort:!0}),await r.getWriter().close();const{signature:l,inputSize:w,outputSize:h}=e;Gt({type:Vt,result:{signature:l,inputSize:w,outputSize:h}})}catch(t){if(t.outputSize=e?e.outputSize:0,r&&!r.locked)try{await r.getWriter().close()}catch{}Jt(t)}}function Gt(t){let{value:e}=t;if(e)if(e.length)try{t.value=(n=e,n.byteOffset||n.byteLength!=n.buffer.byteLength?new o(n):n).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var n}function Jt(t=new r("Unknown error")){const{message:e,stack:n,code:s,name:o,outputSize:i}=t;p({error:{message:e,stack:n,code:s,name:o,outputSize:i}})}function Qt(t,e,n={}){const i="number"==typeof n.level?n.level:-1,c="number"==typeof n.outBuffer?n.outBuffer:65536,a="number"==typeof n.inBufferSize?n.inBufferSize:65536;return new d({start(){try{let n;if(this.lt=Ht(c),this.in=Ht(a),this.inBufferSize=a,!this.lt||!this.in)throw new r("allocation failed");if(this.ut=new o(c),t?(this.wt=jt.deflate_process,this.ht=jt.deflate_last_consumed,this.yt=jt.deflate_end,this.gt=jt.deflate_new(),n="gzip"===e?jt.deflate_init_gzip(this.gt,i):"deflate-raw"===e?jt.deflate_init_raw(this.gt,i):jt.deflate_init(this.gt,i)):"deflate64-raw"===e?(this.wt=jt.inflate9_process,this.ht=jt.inflate9_last_consumed,this.yt=jt.inflate9_end,this.gt=jt.inflate9_new(),n=jt.inflate9_init_raw(this.gt)):(this.wt=jt.inflate_process,this.ht=jt.inflate_last_consumed,this.yt=jt.inflate_end,this.gt=jt.inflate_new(),n="deflate-raw"===e?jt.inflate_init_raw(this.gt):"gzip"===e?jt.inflate_init_gzip(this.gt):jt.inflate_init(this.gt)),0!==n)throw new r("init failed:"+n)}catch(t){throw f(this),t}},transform(e,n){try{const i=e,a=new o(Ft.buffer),f=this.wt,l=this.ht,u=this.lt,w=this.ut;let h=0;for(;h<i.length;){const e=s.min(i.length-h,32768);if((!this.in||this.inBufferSize<e)&&(this.in&&Zt&&(Zt(this.in),this.in=0),this.in=Ht(e),this.inBufferSize=e,!this.in))throw new r("allocation failed");a.set(i.subarray(h,h+e),this.in);const o=f(this.gt,this.in,e,u,c,0),p=16777215&o;if(p&&(w.set(a.subarray(u,u+p),0),n.enqueue(w.slice(0,p))),!t){const t=o>>24&255,e=128&t?t-256:t;if(0>e)throw new r("process error:"+e)}const d=l(this.gt);if(0===d)break;h+=d}}catch(t){f(this),n.error(t)}},flush(e){try{const n=new o(Ft.buffer),s=this.wt,i=this.lt,a=this.ut;for(;;){const o=s(this.gt,0,0,i,c,4),f=16777215&o,l=o>>24&255;if(!t){const t=128&l?l-256:l;if(0>t)throw new r("process error:"+t)}if(f&&(a.set(n.subarray(i,i+f),0),e.enqueue(a.slice(0,f))),1===l||0===f)break}}catch(t){e.error(t)}finally{const t=f(this);0!==t&&e.error(new r("end error:"+t))}},cancel(){f(this)}});function f(t){let e=0;return t.gt&&t.yt&&(e=t.yt(t.gt)),t.gt=0,t.in&&Zt&&Zt(t.in),t.in=0,t.lt&&Zt&&Zt(t.lt),t.lt=0,e}}addEventListener("message",({data:t})=>{const{type:e,messageId:n,value:s,done:r}=t;try{if("start"==e&&qt(t),e==Dt){const t=Lt.get(n);Lt.delete(n),t({value:s||new o,done:r})}if("ack"==e){const t=Ot.get(n);Ot.delete(n),t()}e==Vt&&Tt.abort()}catch(t){Jt(t)}});class Xt{constructor(t="deflate",e){return Qt(!0,t,e)}}class Yt{constructor(t="deflate",e){return Qt(!1,t,e)}}Xt.vt=!0,Yt.vt=!0;let $t=!1;self.initModule=async t=>{try{const e=await(async(t,{baseURI:e})=>{if(!$t){let n,s;try{try{s=new URL(t,e)}catch{}const r=await fetch(s);n=await r.arrayBuffer()}catch(e){if(!t.startsWith("data:application/wasm;base64,"))throw e;n=(t=>{const e=t.split(",")[1],n=atob(e),s=n.length,r=new o(s);for(let t=0;s>t;++t)r[t]=n.charCodeAt(t);return r.buffer})(t)}(t=>{if(jt=t,({malloc:Ht,free:Zt,memory:Ft}=jt),"function"!=typeof Ht||"function"!=typeof Zt||!Ft)throw jt=Ht=Zt=Ft=null,new r("Invalid WASM module")})((await WebAssembly.instantiate(n)).instance.exports),$t=!0}})(t.wasmURI,t);return t.CompressionStreamZlib=Xt,t.DecompressionStreamZlib=Yt,e}catch{}}});\n';t({workerURI:t=>{const n="text/javascript";if(t){const t=new y([e],{type:n});return f.createObjectURL(t)}return"data:"+n+","+encodeURIComponent(e)}})})(ft),t.BlobReader=Fn,t.BlobWriter=vn,t.Data64URIReader=class extends bn{constructor(t){super();let e=t.length;for(;"="==t.charAt(e-1);)e--;const s=t.indexOf(",")+1;n.assign(this,{dataURI:t,Te:s,size:a.floor(.75*(e-s))})}readUint8Array(t,e){const{Te:n,dataURI:s}=this,r=new w(e),i=4*a.floor(t/3),o=atob(s.substring(i+n,4*a.ceil((t+e)/3)+n)),c=t-3*a.floor(i/4);let l=0;for(let t=c;c+e>t&&t<o.length;t++)r[t-c]=o.charCodeAt(t),l++;return l<r.length?r.subarray(0,l):r}},t.Data64URIWriter=class extends zn{constructor(t){super(),n.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){const e=this;let n,r=e.pending;const i=e.pending.length;for(e.pending="",n=0;n<3*a.floor((i+t.length)/3)-i;n++)r+=s.fromCharCode(t[n]);for(;n<t.length;n++)e.pending+=s.fromCharCode(t[n]);r.length>2?e.data+=F(r):e.pending=r+e.pending}getData(){return this.data+F(this.pending)}},t.ERR_AMBIGUOUS_ARCHIVE=er,t.ERR_BAD_FORMAT=Xs,t.ERR_CENTRAL_DIRECTORY_NOT_FOUND=Hs,t.ERR_DUPLICATED_NAME=Lr,t.ERR_ENCRYPTED=Ks,t.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=Ys,t.ERR_EOCDR_NOT_FOUND=Gs,t.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=Qs,t.ERR_HTTP_RANGE=cn,t.ERR_HTTP_RESOURCE_CHANGED=ln,t.ERR_INVALID_COMMENT=Or,t.ERR_INVALID_COMPRESSED_DATA=be,t.ERR_INVALID_ENCRYPTION_STRENGTH=Vr,t.ERR_INVALID_ENTRY_COMMENT=Ir,t.ERR_INVALID_ENTRY_NAME=Cr,t.ERR_INVALID_EXTRAFIELD_DATA=Zr,t.ERR_INVALID_EXTRAFIELD_TYPE=Ar,t.ERR_INVALID_PASSWORD=Tt,t.ERR_INVALID_SIGNATURE=Lt,t.ERR_INVALID_UNCOMPRESSED_SIZE=ge,t.ERR_INVALID_VERSION=Wr,t.ERR_ITERATOR_COMPLETED_TOO_SOON=un,t.ERR_LOCAL_FILE_HEADER_NOT_FOUND=Bs,t.ERR_OVERLAPPING_ENTRY=tr,t.ERR_SPLIT_ZIP_FILE=$s,t.ERR_UNDEFINED_READER=Gr,t.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Xr,t.ERR_UNSUPPORTED_COMPRESSION=_s,t.ERR_UNSUPPORTED_ENCRYPTION=Js,t.ERR_UNSUPPORTED_FORMAT=qr,t.ERR_WRITER_NOT_INITIALIZED=fn,t.ERR_ZIP_NOT_EMPTY=Yr,t.HttpRangeReader=class extends Pn{constructor(t,e={}){super(t,n.assign({},e,{useRangeHeader:!0}))}},t.HttpReader=Pn,t.Reader=bn,t.SplitDataReader=qn,t.SplitDataWriter=Xn,t.TextReader=class extends Fn{constructor(t){super(new y([t],{type:"text/plain"}))}},t.TextWriter=class extends vn{constructor(t){super(t),n.assign(this,{encoding:t,Le:!t||"utf-8"==t.toLowerCase()})}async getData(){const{encoding:t,Le:e}=this,s=await super.getData();if(s.text&&e)return s.text();{const e=new FileReader;return new g((r,i)=>{n.assign(e,{onload:({target:t})=>r(t.result),onerror:()=>i(e.error)}),e.readAsText(s,t)})}}},t.Uint8ArrayReader=class extends bn{constructor(t){super(),t=new w(t.buffer,t.byteOffset,t.byteLength),n.assign(this,{array:t,size:t.length})}readUint8Array(t,e){return this.array.slice(t,t+e)}},t.Uint8ArrayWriter=class extends zn{constructor(t){super(),this.defaultBufferSize=t||262144}init(t=0){n.assign(this,{offset:0,array:new w(t>0?t:this.defaultBufferSize)}),super.init()}writeUint8Array(t){const e=this,n=e.offset+t.length;if(n>e.array.length){let t=e.array.length?2*e.array.length:e.defaultBufferSize;for(;n>t;)t*=2;const s=e.array;e.array=new w(t),e.array.set(s)}e.array.set(t,e.offset),e.offset+=t.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},t.Writer=zn,t.ZipReader=ar,t.ZipReaderStream=or,t.ZipWriter=_r,t.ZipWriterStream=class{constructor(t={}){const{readable:e,writable:n}=new v;this.readable=e,this.zipWriter=new _r(n,t),this.Ht=new l}transform(t){const e=this.zipWriter;let n;const{readable:s,writable:r}=new v({start(t){n=t},flush:()=>{(async()=>{try{await e.close()}catch(t){try{await e.writer.writable.abort(t)}catch{}}})()}});return $r(this,this.zipWriter.add(t,s),t=>n.error(t)),{readable:this.readable,writable:r}}writable(t){let e;const{readable:n,writable:s}=new v({start(t){e=t}});return $r(this,this.zipWriter.add(t,n),t=>e.error(t)),s}async close(t,n={}){return await g.all(e.from(this.Ht)),this.zipWriter.close(t,n)}},t.configure=ut,t.createBlobTempStream=(t={})=>{const{thresholdBytes:e=Fi}=t;return()=>{const t=[];let n,s,r,i=0,a=!1;const o=new R({async write(r){a?await n.write(r):(t.push(r),i+=r.length,i>e&&await(async()=>{const e=new v;s=new u(e.readable).blob(),n=e.writable.getWriter(),a=!0;for(const e of t)await n.write(e);t.length=0})())},async close(){n&&(await n.close(),n=null)}});let c=0;return{writable:o,readable:new U({async pull(e){if(a){if(!r){const t=await s;r=t.stream().getReader()}const{value:t,done:n}=await r.read();n?e.close():e.enqueue(t)}else c<t.length?e.enqueue(t[c++]):e.close()},async cancel(t){r&&await r.cancel(t)}},{highWaterMark:0}),dispose:async()=>{if(n){try{await n.abort()}catch{}n=null}s&&(s.catch(()=>{}),s=null),t.length=0}}}},t.createOPFSTempStream=(t={})=>{const{thresholdBytes:e=Si,directoryName:n=xi,getDirectory:s=()=>D.storage.getDirectory()}=t;let r;function i(){return r||(r=g.resolve(s()).then(t=>t.getDirectoryHandle(n,{create:!0}))),r}return()=>{const t=[];let n,s,r,a,o=0,c=!1;const l=new R({async write(a){c?await r.write(a):(t.push(a),o+=a.length,o>e&&await(async()=>{const e=await i();n=x.randomUUID(),s=await e.getFileHandle(n,{create:!0}),r=(await s.createWritable()).getWriter(),c=!0;for(const e of t)await r.write(e);t.length=0})())},async close(){r&&(await r.close(),r=null)}});let u=0;return{writable:l,readable:new U({async pull(e){if(c){if(!a){const t=await s.getFile();a=t.stream().getReader()}const{value:t,done:n}=await a.read();n?e.close():e.enqueue(t)}else u<t.length?e.enqueue(t[u++]):e.close()},async cancel(t){a&&await a.cancel(t)}},{highWaterMark:0}),dispose:async()=>{if(r){try{await r.close()}catch{}r=null}if(n){try{const t=await i();await t.removeEntry(n)}catch{}s=n=null}t.length=0}}}},t.createSyncAccessHandleTempStream=(t={})=>{const{thresholdBytes:e=vi,directoryName:n=Ui,getDirectory:s}=t;if(!(s||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new d("createSyncAccessHandle is only available in dedicated workers");const r=s||(()=>D.storage.getDirectory());let i;function o(){return i||(i=g.resolve(r()).then(t=>t.getDirectoryHandle(n,{create:!0}))),i}return()=>{const t=[];let n,s,r=0,i=!1,c=0,l=0;const u=new R({async write(a){i?(s.write(a,{at:c}),c+=a.length):(t.push(a),r+=a.length,r>e&&await(async()=>{const e=await o();n=x.randomUUID();const r=await e.getFileHandle(n,{create:!0});s=await r.createSyncAccessHandle(),i=!0;for(const e of t)s.write(e,{at:c}),c+=e.length;t.length=0})())},close(){s&&s.flush()}});let f=0;return{writable:u,readable:new U({pull(e){if(i){const t=c-l;if(0>=t)return void e.close();const n=new w(a.min(524288,t)),r=s.read(n,{at:l});r?(l+=r,e.enqueue(n.subarray(0,r))):e.close()}else f<t.length?e.enqueue(t[f++]):e.close()}},{highWaterMark:0}),dispose:async()=>{if(s){try{s.close()}catch{}s=null}if(n){try{const t=await o();await t.removeEntry(n)}catch{}n=null}t.length=0}}}},t.getMimeType=()=>"application/octet-stream",t.resetConfiguration=()=>{for(const t of at)delete ot[t];n.assign(ot,it)},t.terminateWorkers=()=>{Pi=null,(async()=>{await g.allSettled(Qe.map(t=>(an(t),t.terminate())))})(),qi=!1}});
|
|
1
|
+
((t,e)=>{"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).zip={})})(this,function(t){"use strict";const{Array:e,Object:n,String:s,Number:r,BigInt:i,Math:a,Date:o,Map:c,Set:l,Response:u,URL:f,Error:d,Uint8Array:w,Uint16Array:h,Uint32Array:p,DataView:m,Blob:y,Promise:g,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:F,TransformStream:v,ReadableStream:U,WritableStream:R,CompressionStream:k,DecompressionStream:E,navigator:D,Worker:M}="undefined"!=typeof globalThis?globalThis:this||self;var N=void 0!==S?S.currentScript:null;const T=4294967295,L=65535,O=255,I=67324752,C=134695760,W=C,V=33639248,A=101010256,Z=101075792,j=117853008,P=22,q=20,X=21589,G=2048,Y=16384,H=2048,B=1024,Q="/",K=30,J=new o(2107,11,31),_=new o(1980,0,1),$=void 0,tt=1/0,et="undefined",nt="function",st=new w;let rt=2;try{typeof D!=et&&D.hardwareConcurrency&&(rt=D.hardwareConcurrency)}catch{}const it={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:rt,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof k!=et&&k,DecompressionStream:typeof E!=et&&E},at=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","useCompressionStream","useWebWorkers","transferStreams","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],ot={...it};function ct(){return ot}function lt(t){return a.max(t.chunkSize,64)}function ut(t){for(const e of at){const n=t[e];n!==$&&(ot[e]=n)}}function ft(t){for(const e of at){const n=t[e];n!==$&&(it[e]=n)}ut(t)}const dt=[[],[],[],[],[],[],[],[]];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)e=1&e?e>>>1^3988292384:e>>>1;dt[0][t]=e}for(let t=0;256>t;t++)for(let e=1;8>e;e++){const n=dt[e-1][t];dt[e][t]=n>>>8^dt[0][255&n]}const[wt,ht,pt,mt,yt,gt,bt,zt]=dt;class St{constructor(t){this.o=t||-1}append(t){let e=0|this.o;const n=0|t.length;let s=0;if(n>=8&&t.buffer){const r=new m(t.buffer,t.byteOffset,n),i=n-8;for(;i>=s;s+=8){const t=e^r.getInt32(s,!0),n=r.getInt32(s+4,!0);e=zt[255&t]^bt[t>>>8&255]^gt[t>>>16&255]^yt[t>>>24&255]^mt[255&n]^pt[n>>>8&255]^ht[n>>>16&255]^wt[n>>>24&255]}}for(;n>s;s++)e=e>>>8^wt[255&(e^t[s])];this.o=e}get(){return~this.o}}class xt extends v{constructor(){let t;const e=new St;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new w(4);new m(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function Ft(t){if(typeof b==et){const e=new w((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new b).encode(t)}function vt(t,e){const n=new w(t.length+e.length);return n.set(t),n.set(e,t.length),n}function Ut(t){return t.byteOffset||t.byteLength!=t.buffer.byteLength?new w(t):t}function Rt(t){return new m(t.buffer,t.byteOffset,t.byteLength)}const kt={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],s=kt.l(n);return 32===s?t.concat(e):kt.h(e,s,0|n,t.slice(0,t.length-1))},m(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+kt.l(n)},S(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,a.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=kt.F(e,t[n-1]&2147483648>>e-1,1)),t},F:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,l:t=>a.round(t/1099511627776)||32,h(t,e,n,s){for(void 0===s&&(s=[]);e>=32;e-=32)s.push(n),n=0;if(0===e)return s.concat(t);for(let r=0;r<t.length;r++)s.push(n|t[r]>>>e),n=t[r]<<32-e;const r=t.length?t[t.length-1]:0,i=kt.l(r);return s.push(kt.F(e+i&31,e+i>32?n:s.pop(),1)),s}},Et={bytes:{v(t){const e=kt.m(t)/8,n=new w(e);let s;for(let r=0;e>r;r++)3&r||(s=t[r/4]),n[r]=s>>>24,s<<=8;return n},U(t){const e=[];let n,s=0;for(n=0;n<t.length;n++)s=s<<8|t[n],3&~n||(e.push(s),s=0);return 3&n&&e.push(kt.F(8*(3&n),s)),e}}},Dt=class{constructor(t){const e=this;e.blockSize=512,e.R=[1732584193,4023233417,2562383102,271733878,3285377520],e.D=[1518500249,1859775393,2400959708,3395469782],t?(e.M=t.M.slice(0),e.N=t.N.slice(0),e.T=t.T):e.reset()}reset(){const t=this;return t.M=t.R.slice(0),t.N=[],t.T=0,t}update(t){const e=this;"string"==typeof t&&(t=Et.L.U(t));const n=e.N=kt.concat(e.N,t),s=e.T,r=e.T=s+kt.m(t);if(r>9007199254740991)throw new d("Cannot hash more than 2^53 - 1 bits");const i=new p(n);let a=0;for(let t=e.blockSize+s-(e.blockSize+s&e.blockSize-1);r>=t;t+=e.blockSize)e.O(i.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),e}I(){const t=this;let e=t.N;const n=t.M;e=kt.concat(e,[kt.F(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(a.floor(t.T/4294967296)),e.push(0|t.T);e.length;)t.O(e.splice(0,16));return t.reset(),n}C(t,e,n,s){return t>19?t>39?t>59?t>79?void 0:e^n^s:e&n|e&s|n&s:e^n^s:e&n|~e&s}W(t,e){return e<<t|e>>>32-t}O(t){const n=this,s=n.M,r=e(80);for(let e=0;16>e;e++)r[e]=t[e];let i=s[0],o=s[1],c=s[2],l=s[3],u=s[4];for(let t=0;79>=t;t++){16>t||(r[t]=n.W(1,r[t-3]^r[t-8]^r[t-14]^r[t-16]));const e=n.W(5,i)+n.C(t,o,c,l)+u+r[t]+n.D[a.floor(t/20)]|0;u=l,l=c,c=n.W(30,o),o=i,i=e}s[0]=s[0]+i|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+u|0}},Mt={importKey:t=>new Mt.V(Et.bytes.U(t)),A(t,e,n,s){if(n=n||1e4,0>s||0>n)throw new d("invalid params to pbkdf2");const r=1+(s>>5)<<2;let i,a,o,c,l;const u=new ArrayBuffer(r),f=new m(u);let w=0;const h=kt;for(e=Et.bytes.U(e),l=1;(r||1)>w;l++){for(i=a=t.encrypt(h.concat(e,[l])),o=1;n>o;o++)for(a=t.encrypt(a),c=0;c<a.length;c++)i[c]^=a[c];for(o=0;(r||1)>w&&o<i.length;o++)f.setInt32(w,i[o]),w+=4}return u.slice(0,s/8)},V:class{constructor(t){const e=this,n=e.Z=Dt,s=[[],[]];e.j=[new n,new n];const r=e.j[0].blockSize/32;t.length>r&&(t=(new n).update(t).I());for(let e=0;r>e;e++)s[0][e]=909522486^t[e],s[1][e]=1549556828^t[e];e.j[0].update(s[0]),e.j[1].update(s[1]),e.P=new n(e.j[0])}reset(){const t=this;t.P=new t.Z(t.j[0]),t.X=!1}update(t){this.X=!0,this.P.update(t)}digest(){const t=this,e=t.P.I(),n=new t.Z(t.j[1]).update(e).I();return t.reset(),n}encrypt(t){if(this.X)throw new d("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},Nt=typeof x!=et&&typeof x.getRandomValues==nt,Tt="Invalid password",Lt="Invalid signature",Ot="zipjs-abort-check-password";function It(t){if(Nt)return x.getRandomValues(t);throw new d("Crypto API not supported")}const Ct=16,Wt={name:"PBKDF2"},Vt=n.assign({hash:{name:"HMAC"}},Wt),At=n.assign({iterations:1e3,hash:{name:"SHA-1"}},Wt),Zt=["deriveBits"],jt=[8,12,16],Pt=[16,24,32],qt=10,Xt=[0,0,0,0],Gt=typeof x!=et,Yt=Gt&&x.subtle,Ht=Gt&&typeof Yt!=et,Bt=Et.bytes,Qt=class{constructor(t){const e=this;e.G=[[[],[],[],[],[]],[[],[],[],[],[]]],e.G[0][0][0]||e.Y();const n=e.G[0][4],s=e.G[1],r=t.length;let i,a,o,c=1;if(4!==r&&6!==r&&8!==r)throw new d("invalid aes key size");for(e.D=[a=t.slice(0),o=[]],i=r;4*r+28>i;i++){let t=a[i-1];(i%r===0||8===r&&i%r===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],i%r===0&&(t=t<<8^t>>>24^c<<24,c=c<<1^283*(c>>7))),a[i]=a[i-r]^t}for(let t=0;i;t++,i--){const e=a[3&t?i:i-4];o[t]=4>=i||4>t?e:s[0][n[e>>>24]]^s[1][n[e>>16&255]]^s[2][n[e>>8&255]]^s[3][n[255&e]]}}encrypt(t){return this.H(t,0)}decrypt(t){return this.H(t,1)}Y(){const t=this.G[0],e=this.G[1],n=t[4],s=e[4],r=[],i=[];let a,o,c,l;for(let t=0;256>t;t++)i[(r[t]=t<<1^283*(t>>7))^t]=t;for(let u=a=0;!n[u];u^=o||1,a=i[a]||1){let i=a^a<<1^a<<2^a<<3^a<<4;i=i>>8^255&i^99,n[u]=i,s[i]=u,l=r[c=r[o=r[u]]];let f=16843009*l^65537*c^257*o^16843008*u,d=257*r[i]^16843008*i;for(let n=0;4>n;n++)t[n][u]=d=d<<24^d>>>8,e[n][i]=f=f<<24^f>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}H(t,e){if(4!==t.length)throw new d("invalid aes block size");const n=this.D[e],s=n.length/4-2,r=[0,0,0,0],i=this.G[e],a=i[0],o=i[1],c=i[2],l=i[3],u=i[4];let f,w,h,p=t[0]^n[0],m=t[e?3:1]^n[1],y=t[2]^n[2],g=t[e?1:3]^n[3],b=4;for(let t=0;s>t;t++)f=a[p>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&g]^n[b],w=a[m>>>24]^o[y>>16&255]^c[g>>8&255]^l[255&p]^n[b+1],h=a[y>>>24]^o[g>>16&255]^c[p>>8&255]^l[255&m]^n[b+2],g=a[g>>>24]^o[p>>16&255]^c[m>>8&255]^l[255&y]^n[b+3],b+=4,p=f,m=w,y=h;for(let t=0;4>t;t++)r[e?3&-t:t]=u[p>>>24]<<24^u[m>>16&255]<<16^u[y>>8&255]<<8^u[255&g]^n[b++],f=p,p=m,m=y,y=g,g=f;return r}},Kt=class{constructor(t,e){this.B=t,this.K=e,this.J=e}reset(){this.J=this.K}update(t){return this._(this.B,t,this.J)}$(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,s=255&t;255===e?(e=0,255===n?(n=0,255===s?s=0:++s):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=s}return t}et(t){0===(t[0]=this.$(t[0]))&&(t[1]=this.$(t[1]))}_(t,e,n){let s;if(!(s=e.length))return[];const r=kt.m(e);for(let r=0;s>r;r+=4){this.et(n);const s=t.encrypt(n);e[r]^=s[0],e[r+1]^=s[1],e[r+2]^=s[2],e[r+3]^=s[3]}return kt.S(e,r)}},Jt=Mt.V;let _t=Gt&&Ht&&typeof Yt.importKey==nt,$t=Gt&&Ht&&typeof Yt.deriveBits==nt;class te extends v{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:s}){super({start(){ne(this,t,e,n)},async transform(t,e){const n=this,{password:r,strength:i,nt:a,ready:o}=n;r?(await(async(t,e,n,s)=>{const r=await re(t,e,n,ae(s,0,jt[e])),i=ae(s,jt[e]);if(r[0]!=i[0]||r[1]!=i[1])throw new d(Tt)})(n,i,r,ae(t,0,jt[i]+2)),t=ae(t,jt[i]+2),s?e.error(new d(Ot)):a()):await o;const c=new w(t.length-qt-(t.length-qt)%Ct);e.enqueue(se(n,t,c,0,qt,!0))},async flush(t){const{st:e,it:n,pending:s,ready:r}=this;if(n&&e){await r;const i=ae(s,0,s.length-qt),a=ae(s,s.length-qt);let o=st;if(i.length){const t=ce(Bt,i);n.update(t);const s=e.update(t);o=oe(Bt,s)}const c=ae(oe(Bt,n.digest()),0,qt);let l=s.length<qt?1:0;for(let t=0;qt>t;t++)l|=c[t]^a[t];if(l)throw new d(Lt);t.enqueue(o)}}})}}class ee extends v{constructor({password:t,rawPassword:e,encryptionStrength:n}){let s;super({start(){ne(this,t,e,n)},async transform(t,e){const n=this,{password:s,strength:r,nt:i,ready:a}=n;let o=st;s?(o=await(async(t,e,n)=>{const s=It(new w(jt[e]));return vt(s,await re(t,e,n,s))})(n,r,s),i()):await a;const c=new w(o.length+t.length-t.length%Ct);c.set(o,0),e.enqueue(se(n,t,c,o.length,0))},async flush(t){const{st:e,it:n,pending:r,ready:i}=this;if(n&&e){await i;let a=st;if(r.length){const t=e.update(ce(Bt,r));n.update(t),a=oe(Bt,t)}s.signature=oe(Bt,n.digest()).slice(0,qt),t.enqueue(vt(a,s.signature))}}}),s=this}}function ne(t,e,s,r){n.assign(t,{ready:new g(e=>t.nt=e),password:ie(e,s),strength:r-1,pending:st})}function se(t,e,n,s,r,i){const{st:a,it:o,pending:c}=t;c.length&&(e=vt(c,e));const l=e.length-r;let u;for(n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new w(e)).set(n,0)}return t})(n,s+(l-l%Ct)),u=0;l-Ct>=u;u+=Ct){const t=ce(Bt,ae(e,u,u+Ct));i&&o.update(t);const r=a.update(t);i||o.update(r),n.set(oe(Bt,r),u+s)}return t.pending=ae(e,u),n}async function re(t,s,r,i){t.password=null;const a=await(async(t,e,n,s,r)=>{if(!_t)return Mt.importKey(e);try{return await Yt.importKey("raw",e,n,!1,r)}catch{return _t=!1,Mt.importKey(e)}})(0,r,Vt,0,Zt),o=await(async(t,e,n)=>{if(!$t)return Mt.A(e,t.salt,At.iterations,n);try{return await Yt.deriveBits(t,e,n)}catch{return $t=!1,Mt.A(e,t.salt,At.iterations,n)}})(n.assign({salt:i},At),a,8*(2*Pt[s]+2)),c=new w(o),l=ce(Bt,ae(c,0,Pt[s])),u=ce(Bt,ae(c,Pt[s],2*Pt[s])),f=ae(c,2*Pt[s]);return n.assign(t,{keys:{key:l,ot:u,passwordVerification:f},st:new Kt(new Qt(l),e.from(Xt)),it:new Jt(u)}),f}function ie(t,e){return e===$?Ft(t):e}function ae(t,e,n){return t.subarray(e,n)}function oe(t,e){return t.v(e)}function ce(t,e){return t.U(e)}class le extends v{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:s}){super({start(){fe(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=de(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e.at(-1)^n.passwordVerification))throw new d(Tt);t=t.subarray(12)}s?e.error(new d(Ot)):e.enqueue(de(n,t))}})}}class ue extends v{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){fe(this,t,e,n)},transform(t,e){const n=this;let s,r;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=It(new w(12));e[11]=n.passwordVerification,s=new w(t.length+e.length),s.set(we(n,e),0),r=12}else s=new w(t.length),r=0;s.set(we(n,t),r),e.enqueue(s)}})}}function fe(t,e,s,r){n.assign(t,{password:e,rawPassword:s,passwordVerification:r}),((t,e,s)=>{const r=[305419896,591751049,878082192];if(n.assign(t,{keys:r,ct:new St(r[0]),lt:new St(r[2])}),s)for(let e=0;e<s.length;e++)he(t,s[e]);else for(let n=0;n<e.length;n++)he(t,e.charCodeAt(n))})(t,e,s)}function de(t,e){const n=new w(e.length);for(let s=0;s<e.length;s++)n[s]=pe(t)^e[s],he(t,n[s]);return n}function we(t,e){const n=new w(e.length);for(let s=0;s<e.length;s++)n[s]=pe(t)^e[s],he(t,e[s]);return n}function he(t,e){let[,n]=t.keys;t.ct.append([e]);const s=~t.ct.get();n=ye(a.imul(ye(n+me(s)),134775813)+1),t.lt.append([n>>>24]);const r=~t.lt.get();t.keys=[s,n,r]}function pe(t){const e=2|t.keys[2];return me(a.imul(e,1^e)>>>8)}function me(t){return 255&t}function ye(t){return 4294967295&t}const ge="Invalid uncompressed size",be="Invalid compressed data";class ze extends v{constructor(t,{chunkSize:e,CompressionStreamZlib:n,CompressionStream:s}){super({});const{compressed:r,encrypted:i,useCompressionStream:a,zipCrypto:o,signed:c,level:l,deflate64:u}=t,f=this;let d,w,h,p=super.readable;const y=c&&r&&!u&&(!i||o)&&!(!a||!s);i&&!o||!c||y||(d=new xt,p=Ue(p,d)),r&&(y?(h=new Se,p=Re(p,new s("gzip")),p=Ue(p,h)):p=ve(p,a,{level:l,chunkSize:e},s,n,s)),i&&(o?p=Ue(p,new ue(t)):(w=new ee(t),p=Ue(p,w))),Fe(f,p,()=>{let t;i&&!o&&(t=w.signature),i&&!o||!c||(t=y?h.signature:new m(d.value.buffer).getUint32(0)),f.signature=t})}}class Se extends v{constructor(){let t,e=10,n=new w(0);super({transform(t,s){if(e){const n=a.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const r=n.length+t.length;if(8>=r)return void(n=vt(n,t));const i=r-8,o=a.min(i,n.length);s.enqueue(vt(n.subarray(0,o),t.subarray(0,i-o))),n=vt(n.subarray(o),t.subarray(i-o))},flush(){const e=Rt(n);t.signature=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class xe extends v{constructor(t,{chunkSize:e,DecompressionStreamZlib:n,DecompressionStream:s}){super({});const{zipCrypto:r,encrypted:i,signed:a,signature:o,compressed:c,useCompressionStream:l,deflate64:u}=t;let f,w,h=super.readable;i&&(r?h=Ue(h,new le(t)):(w=new te(t),h=Ue(h,w))),c&&(h=ve(h,l,{chunkSize:e,deflate64:u},s,n,s),h=(t=>{const e=t.getReader();return new U({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new d(be);throw e.cause=t,e}const{value:s,done:r}=n;r?t.close():t.enqueue(s)},cancel:t=>e.cancel(t)})})(h)),i&&!r||!a||(f=new xt,h=Ue(h,f)),Fe(this,h,()=>{if((!i||r)&&a){const t=new m(f.value.buffer);if(o!=t.getUint32(0,!1))throw new d(Lt)}})}}function Fe(t,e,s){e=Ue(e,new v({flush:s})),n.defineProperty(t,"readable",{get:()=>e})}function ve(t,e,n,s,r,i){const a=e&&s?s:r||i,o=n.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new a(o,n)}catch(t){if(!e)throw t;if(r)c=new r(o,n);else{if(!i)throw t;c=new i(o,n)}}return Re(t,c)}function Ue(t,e){return t.pipeThrough(e)}function Re(t,e){const n=e.writable.getWriter(),s=t.getReader();return(async()=>{try{for(;;){await n.ready;const t=await s.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await(async(t,e)=>{try{await t.abort(e)}catch{}})(n,t),await(async(t,e)=>{try{await t.cancel(e)}catch{}})(s,t)}})(),e.readable}const ke="data",Ee="deflate",De="inflate";class Me extends v{constructor(t,e){super({});const s=this,{codecType:r}=t;let i;r.startsWith(Ee)?i=ze:r.startsWith(De)&&(i=xe),s.outputSize=0;let a=0;const o=new i(t,e),c=super.readable,l=new v({transform(t,e){t&&t.length&&(a+=t.length,e.enqueue(t))},flush(){n.assign(s,{inputSize:a})}}),u=new v({transform(e,n){if(e&&e.length&&(n.enqueue(e),s.outputSize+=e.length,t.outputSize!==$&&s.outputSize>t.outputSize))throw new d(ge)},flush(){const{signature:t}=o;n.assign(s,{signature:t,inputSize:a})}});n.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(u)})}}class Ne extends v{constructor(t){const e=[];let n=0;function s(){const s=new w(t);let r=0;for(;t>r;){const n=e[0],i=t-r;n.length>i?(s.set(n.subarray(0,i),r),e[0]=n.subarray(i),r+=i):(s.set(n,r),r+=n.length,e.shift())}return n-=t,s}r.isFinite(t)&&t>=1||(t=65536),super({transform(r,i){for(e.push(r),n+=r.length;n>t;)i.enqueue(s())},flush(t){n&&t.enqueue(((t,e)=>{const n=new w(e);let s=0;for(const e of t)n.set(e,s),s+=e.length;return n})(e,n))}})}}const Te={type:"module"},Le="error";let Oe,Ie,Ce,We,Ve=!0;try{Ve=typeof structuredClone==nt&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}let Ae=()=>{};class Ze{constructor(t,{readable:e,writable:s},{options:r,config:i,ut:a,useWebWorkers:o,transferStreams:c,workerURI:l},u){const{signal:f}=a;return n.assign(t,{ft:!0,wt:(t.wt||0)+1,readable:e.pipeThrough(new Ne(lt(i))).pipeThrough(new je(a),{signal:f}),writable:s,options:n.assign({},r),workerURI:l,transferStreams:c,terminate:()=>new g(e=>{const{ht:n,ft:s}=t;n?(s?t.yt=e:(n.terminate(),e()),t.gt=null):e()}),bt(){if(t.ft){const{yt:e}=t;e&&(t.yt=null,t.zt=!0,t.ht.terminate(),e()),t.ft=!1,u(t)}}}),Oe===$&&(Oe=typeof M!=et),(o&&Oe?Xe:qe)(t,i)}}class je extends v{constructor({onstart:t,onprogress:e,size:n,onend:s}){let r=0;super({async start(){t&&await Pe(t,n)},async transform(t,s){r+=t.length,e&&await Pe(e,r,n),s.enqueue(t)},async flush(){s&&await Pe(s,r)}})}}async function Pe(t,...e){try{await t(...e)}catch{}}function qe(t,e){return{run:()=>(async({options:t,readable:e,writable:n,bt:s},r)=>{let i;try{if(!t.useCompressionStream)try{await Ae(r)}catch{const e=t.codecType.startsWith(Ee)?r.CompressionStreamZlib:r.DecompressionStreamZlib;e&&!e.St||(t.useCompressionStream=!0)}i=new Me(t,r),await e.pipeThrough(i).pipeThrough(new Ne(lt(r))).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:a,outputSize:o}=i;return{signature:s,inputSize:a,outputSize:o}}catch(t){throw i&&(t.outputSize=i.outputSize),t}finally{s()}})(t,e)}}function Xe(t,e){const{baseURI:s,chunkSize:r}=e;let{wasmURI:i}=e;if(!t.gt){let a;typeof i==nt&&(i=i());try{a=Ye(t.workerURI,s,t)}catch{return Oe=!1,qe(t,e)}n.assign(t,{ht:a,zt:!1,gt:{run:()=>(async(t,e)=>{let s,r;const i=new g((t,e)=>{s=t,r=e});n.assign(t,{reader:null,writer:null,xt:s,Ft:r,result:i});const{readable:a,options:o}=t,{writable:c,closed:l,vt:u}=(t=>{const e=new AbortController,{writable:n,readable:s}=new v,r=s.pipeTo(t,{preventClose:!0,preventAbort:!0,signal:e.signal});return r.catch(()=>{}),{writable:n,closed:r,vt:()=>e.abort()}})(t.writable);let f;try{f=Be({type:"start",options:o,config:e,readable:a,writable:c},t)}catch(e){u();try{await l}catch{}throw t.bt(),e}f||n.assign(t,{reader:a.getReader(),writer:c.getWriter()});try{const t=await i;return await d(),await l,t}catch(t){await d(),u();try{await l}catch{}throw t}async function d(){if(!f&&!c.locked)try{await c.getWriter().close()}catch{}}})(t,{chunkSize:r,wasmURI:i,baseURI:s})}})}return t.gt}function Ge(t){const{ht:e}=t;if(e)try{e.terminate()}catch{}t.gt=null}function Ye(t,e,s,r,i=!0){let a,o,c;if(Ce===$||Ie!==t){const n=typeof t==nt;o=n?t(i):t;const l=o.startsWith("data:"),u=o.startsWith("blob:");if(l||u){r===$&&(r=!1),r&&(c=Te);try{a=new M(o,c)}catch(i){if(u)try{f.revokeObjectURL(o)}catch{}if(n&&u)return Ye(t,e,s,r,!1);if(r)throw i;return Ye(t,e,s,!0,!1)}}else{r===$&&(r=!0),r&&(c=Te);try{o=new f(o,e)}catch{}try{a=new M(o,c)}catch(n){if(r)throw n;return Ye(t,e,s,!1,i)}}Ie=t,Ce=o,We=c}else a=new M(Ce,We);return a.addEventListener("message",t=>(async({data:t},e)=>{const{type:s,value:r,messageId:i,result:a,error:o}=t,{reader:c,writer:l,xt:u,Ft:f,bt:h,wt:p}=e,m=()=>e.wt!=p;try{if(o){const{message:t,stack:e,code:s,name:r,outputSize:i}=o,a=new d(t);n.assign(a,{stack:e,code:s,name:r,outputSize:i}),y(a)}else{if("pull"==s){const{value:t,done:n}=await c.read();m()||Be({type:ke,value:t,done:n,messageId:i},e)}s==ke&&(await l.ready,await l.write(new w(r)),m()||Be({type:"ack",messageId:i},e)),"close"==s&&y(null,a)}}catch(o){m()||(Ge(e),y(o))}function y(t,e){m()||(t?f(t):u(e),l&&l.releaseLock(),h())}})(t,s)),a.addEventListener(Le,t=>He(t,s)),a.addEventListener("messageerror",t=>He(t,s)),a}function He(t,e){t.preventDefault&&t.preventDefault();const{Ft:n,writer:s,bt:r}=e;Ge(e),n&&(n(t.error||new d(t.message||Le)),s&&s.releaseLock(),r())}function Be(t,{ht:e,writer:n,transferStreams:s}){try{const{value:n,readable:r,writable:i}=t,a=[];if(n&&(t.value=Ut(n),a.push(t.value.buffer)),s&&Ve?(r&&a.push(r),i&&a.push(i)):t.readable=t.writable=null,a.length)try{return e.postMessage(t,a),!0}catch{Ve=!1,t.readable=t.writable=null,e.postMessage(t)}else e.postMessage(t)}catch(t){throw n&&n.releaseLock(),t}}let Qe=[];const Ke=[];let Je,_e,$e=0;async function tn(t,e){const{options:n,config:s}=e,{transferStreams:i,useWebWorkers:a,useCompressionStream:o,compressed:c,signed:l,encrypted:u}=n,{workerURI:f,maxWorkers:d}=s;e.transferStreams=i||i===$&&s.transferStreams;const w=!c&&!l&&!u;return e.useWebWorkers=!w&&(a||a===$&&s.useWebWorkers),e.workerURI=e.useWebWorkers&&f?f:$,n.useCompressionStream=o||o===$&&s.useCompressionStream,(await(async()=>{const n=Qe.find(t=>!t.ft);if(n)return an(n),new Ze(n,t,e,h);if(Qe.length<d){const n={Ut:$e};return $e++,Qe.push(n),new Ze(n,t,e,h)}return new g(n=>{Ke.push({resolve:n,stream:t,Rt:e}),_e=s.workerStarvationTimeout,en()})})()).run();function h(t){if(nn(),Ke.length){const[{resolve:e,stream:n,Rt:s}]=Ke.splice(0,1);e(new Ze(t,n,s,h)),en()}else t.ht?(an(t),((t,e)=>{const{config:n}=e,{terminateWorkerTimeout:s}=n;r.isFinite(s)&&s>=0&&(t.zt?t.zt=!1:t.kt=setTimeout(async()=>{Qe=Qe.filter(e=>e!=t);try{await t.terminate()}catch{}},s))})(t,e)):Qe=Qe.filter(e=>e!=t)}}function en(){!Je&&Ke.length&&r.isFinite(_e)&&_e>=0&&(Je=setTimeout(sn,_e))}function nn(){Je&&(clearTimeout(Je),Je=null)}function sn(){if(Je=null,Ke.length){const[{resolve:t,stream:e,Rt:s}]=Ke.splice(0,1),r=n.assign({},s,{useWebWorkers:!1,workerURI:$});t(new Ze({},e,r,rn)),en()}}function rn(){nn(),en()}function an(t){const{kt:e}=t;e&&(clearTimeout(e),t.kt=null)}const on="HTTP error ",cn="HTTP Range not supported",ln="HTTP resource changed",un="Writer iterator completed too soon",fn="Writer not initialized",dn="Content-Range",wn="Range",hn="GET",pn="bytes",mn=16777216,yn="writable",gn=Symbol();class bn{constructor(){this.size=0}init(){this.initialized=!0}}class zn extends bn{get readable(){return this.createReadable()}createReadable({offset:t=0,size:e,chunkSize:n=lt(ct())}={}){const s=this;let r=0;return new U({async pull(i){const o=e===$?n:a.min(n,e-r),c=await Qn(s,t+r,o);i.enqueue(c),r+n>e||e===$&&!c.length&&o?i.close():r+=n}})}}class Sn extends bn{constructor(){super();const t=this,e=new R({write(e){if(!t.initialized)throw new d(fn);return t.writeUint8Array(Ut(e))}});n.defineProperty(t,yn,{get:()=>e})}writeUint8Array(){}}let xn,Fn;class vn extends zn{constructor(t){super(),n.assign(this,{blob:t,size:t.size}),Fn||(Fn=(async()=>{try{const t=new y([new w(3)]).slice(1,2).stream().getReader();let e=0,n=await t.read();for(;!n.done;)e+=n.value.length,n=await t.read();xn=1==e}catch{xn=!1}})())}createReadable(t){const{blob:e,size:n}=this,{offset:s=0,size:r=n-s}=t||{};return s||n>r?xn?e.slice(s,s+r).stream():super.createReadable(t):e.stream()}async readUint8Array(t,e){const n=this,s=t+e,r=t||s<n.size?n.blob.slice(t,s):n.blob;let i=await r.arrayBuffer();return i.byteLength>e&&(i=i.slice(t,s)),new w(i)}}class Un extends bn{constructor(t){super();const e=this,s=new v,r=[];t&&r.push(["Content-Type",t]),n.defineProperty(e,yn,{get:()=>s.writable}),e.blob=new u(s.readable,{headers:r}).blob(),e.blob.catch(()=>{})}getData(){return this.blob}}class Rn extends zn{constructor(t,e){super(),En(this,t,e)}async init(){await Dn(this,jn,Wn),super.init()}createReadable(t){const e=this,{useRangeHeader:n,forceRangeRequests:s,size:i}=e;if((n||s)&&i!==$){const{offset:n=0,size:s=i-n}=t||{};if(s>0&&i>n)return((t,e,n)=>{let s,i=e,o=0,c=n;return new U({start:()=>l(),async pull(t){s||await l();const{value:e,done:n}=await s.read();if(n)throw new d(cn);const r=e.length>o?e.subarray(0,o):e;o-=r.length,c-=r.length,r.length&&t.enqueue(r),o||(await(async()=>{const t=s;s=$,await t.cancel()})(),c||t.close())},cancel:t=>s&&s.cancel(t)});async function l(){const e=a.min(t.maximumRangeSize,c),n=await jn(hn,t,In(t,i,e));if(206!=n.status)throw new d(cn);const l=n.headers.get(dn);if(l){const t=r(l.trim().split(/[\s-]+/)[1]);if(!r.isNaN(t)&&t!=i)throw new d(cn)}On(t,n),Ln(t,n),i+=e,o=e,s=n.body.getReader()}})(e,n,a.min(s,i-n))}return super.createReadable(t)}readUint8Array(t,e){return Mn(this,t,e,jn,Wn)}}class kn extends zn{constructor(t,e){super(),En(this,t,e)}async init(){await Dn(this,Pn,Vn),super.init()}readUint8Array(t,e){return Mn(this,t,e,Pn,Vn)}}function En(t,e,s){const{preventHeadRequest:r,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:l=mn,fetch:u}=s;delete(s=n.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.checkResourceChanges,delete s.maximumRangeSize,delete s.useXHR,delete s.fetch,n.assign(t,{url:e,options:s,preventHeadRequest:r,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c,maximumRangeSize:l,fetch:u})}async function Dn(t,e,n){const{url:s,preventHeadRequest:r,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=t;if((t=>{const{baseURI:e}=ct(),{protocol:n}=new f(t,e);return"http:"==n||"https:"==n})(s)&&(i||a)&&(void 0===r||r)){const s=await e(hn,t,In(t,o?-22:void 0)),r=s.headers.get("Accept-Ranges");if(!(a||r&&r.toLowerCase()==pn))throw new d(cn);{if(o){const e=new w(await s.arrayBuffer());206==s.status&&e.length==P&&(t.Et=e)}Ln(t,s);const r=Nn(s);r===$?await Zn(t,e,n):t.size=r}}else await Zn(t,e,n)}async function Mn(t,e,n,s,i){const{useRangeHeader:a,forceRangeRequests:o,Et:c,size:l,options:u}=t;if(a||o){if(c&&e==l-P&&n==P)return c;if(l>e&&0!==n){e+n>l&&(n=l-e);const i=await s(hn,t,In(t,e,n));if(206!=i.status)throw new d(cn);const a=i.headers.get(dn);if(a){const t=r(a.trim().split(/[\s-]+/)[1]);if(!r.isNaN(t)&&t!=e)throw new d(cn)}On(t,i),Ln(t,i);const o=new w(await i.arrayBuffer());if(o.length!=n)throw new d(cn);return o}return st}{const{data:s}=t;return s||await i(t,u),t.data.subarray(e,e+n)}}function Nn(t){const e=t.headers.get(dn);if(e){const t=e.trim().split(/\s*\/\s*/)[1];if(t&&"*"!=t){const e=r(t);if(!r.isNaN(e))return e}}}function Tn({headers:t}){return{Dt:t.get("Etag")||$,lastModified:t.get("Last-Modified")||$}}function Ln(t,e){const{checkResourceChanges:n,Mt:s}=t;n&&!s&&206==e.status&&(t.Mt=Tn(e))}function On(t,e){const{checkResourceChanges:s,Mt:r,size:i}=t;if(s){const t=Nn(e);if(t!==$&&i!==$&&t!=i)throw new d(ln);if(r){const t=Tn(e);if(n.entries(r).some(([e,n])=>n!==$&&t[e]!==$&&n!=t[e]))throw new d(ln)}}}function In(t,e=0,s=1){return n.assign({},Cn(t),{[wn]:pn+"="+(0>e?e:e+"-"+(e+s-1))})}function Cn({options:t}){const{headers:e}=t;if(e)return Symbol.iterator in e?n.fromEntries(e):e}async function Wn(t){await An(t,jn)}async function Vn(t){await An(t,Pn)}async function An(t,e){const n=await e(hn,t,Cn(t));t.data=new w(await n.arrayBuffer()),t.size=t.data.length}async function Zn(t,e,n){if(t.preventHeadRequest)await n(t,t.options);else{const s=await e("HEAD",t,Cn(t)),i=s.headers.get("Content-Length");i&&!s.headers.get("Content-Encoding")?t.size=r(i):await n(t,t.options)}}async function jn(t,{fetch:e=fetch,options:s,url:r},i){const a=await e(r,n.assign({},s,{method:t,headers:i}));if(400>a.status)return a;throw 416==a.status?new d(cn):new d(on+(a.statusText||a.status))}function Pn(t,{url:e},s){return new g((r,i)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const t=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const n=e.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,t=>t.toUpperCase()),t.push(n)}),r({status:a.status,arrayBuffer:()=>a.response,headers:new c(t)})}else i(416==a.status?new d(cn):new d(on+(a.statusText||a.status)))},!1),a.addEventListener("error",t=>i(t.detail?t.detail.error:new d("Network error")),!1),a.open(t,e),s)for(const t of n.entries(s))a.setRequestHeader(t[0],t[1]);a.responseType="arraybuffer",a.send()})}class qn extends zn{constructor(t,e={}){super(),n.assign(this,{url:t,reader:e.useXHR&&!e.fetch?new kn(t,e):new Rn(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(t){return this.reader.createReadable(t)}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class Xn extends zn{constructor(t){super(),this.Nt=t}async init(){const t=this,{Nt:e}=t;t.Tt=0,await g.all(e.map(t=>Bn(t))),t.Lt=e.map(e=>{const n=t.size;return t.size+=e.size,n}),super.init()}Ot(t){const{Lt:e,size:n}=this,s=e.at(t);return s===$?n:s}async readUint8Array(t,e){const n=this,{Nt:s}=this;let r,i=0,o=t;for(;s[i]&&o>=s[i].size;)o-=s[i].size,i++;const c=s[i];if(c){const s=c.size;if(o+e>s){const i=s-o;r=vt(await Qn(c,o,i),await n.readUint8Array(t+i,e-i))}else r=await Qn(c,o,e)}else r=st;return n.Tt=a.max(i,n.Tt),r}}class Gn extends bn{constructor(t,e=4294967295){super();const s=this;let r,i,a;n.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const o=new R({async write(e){if(e===gn)return void(a&&await l());const{availableSize:n}=s;if(a)e.length<n?await c(e):(await c(e.subarray(0,n)),await l(),e.length>n&&await this.write(e.subarray(n)));else{const{value:n,done:o}=await t.next();if(o&&!n)throw new d(un);r=n,r.size=0,r.maxSize&&(s.maxSize=r.maxSize),s.availableSize=s.maxSize,await Bn(r),i=n.writable,a=i.getWriter(),await this.write(e)}},async close(){a&&(await a.ready,await u())},async abort(t){a&&await a.abort(t)}});async function c(t){const e=t.length;e&&(await a.ready,await a.write(t),r.size+=e,s.availableSize-=e)}async function l(){await u(),s.diskOffset+=r.size,s.diskNumber++,a=null,s.availableSize=s.maxSize}async function u(){await a.close()}n.defineProperty(s,yn,{get:()=>o})}async closeDisk(){const t=this.writable.getWriter();try{await t.ready,await t.write(gn)}finally{t.releaseLock()}}}class Yn{constructor(t){return e.isArray(t)&&(t=new Xn(t)),t instanceof U&&(t={readable:t}),t}}class Hn{constructor(t){return t.writable===$&&typeof t.next==nt&&(t=new Gn(t)),t instanceof R&&(t={writable:t}),t.size===$&&(t.size=0),t}}async function Bn(t,e){if(!t.init||t.initialized)return g.resolve();await t.init(e)}function Qn(t,e,n){return t.readUint8Array(e,n)}const Kn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Jn(t,e){return e&&"cp437"==e.trim().toLowerCase()?(t=>{{let e="";for(let n=0;n<t.length;n++)e+=Kn[t[n]];return e}})(t):new z(e,{ignoreBOM:!0}).decode(t)}const _n="filename",$n="rawFilename",ts="comment",es="rawComment",ns="uncompressedSize",ss="compressedSize",rs="offset",is="diskNumberStart",as="lastModDate",os="rawLastModDate",cs="lastAccessDate",ls="creationDate",us="rawCreationDate",fs="internalFileAttributes",ds="externalFileAttributes",ws="msdosAttributesRaw",hs="msdosAttributes",ps="msDosCompatible",ms="zip64",ys="encrypted",gs="version",bs="versionMadeBy",zs="zipCrypto",Ss="directory",xs="executable",Fs="compressionMethod",vs="signature",Us="extraField",Rs="unixMode",ks="setuid",Es="setgid",Ds="sticky",Ms=[_n,$n,ns,ss,as,os,ts,es,cs,ls,us,rs,is,fs,ds,ws,hs,ps,ms,ys,gs,bs,zs,Ss,xs,Fs,vs,Us,"extraFieldUnix","extraFieldInfoZip","uid","gid",Rs,ks,Es,Ds,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Ns{constructor(t){Ms.forEach(e=>this[e]=t[e])}}const Ts="password",Ls="rawPassword",Os="passThrough",Is="signal",Cs="checkAmbiguity",Ws="useWebWorkers",Vs="useCompressionStream",As="transferStreams",Zs="preventClose",js="offset",Ps="strictness",qs="strict",Xs="tolerant",Gs="File format is not recognized",Ys="End of central directory not found",Hs="End of Zip64 central directory locator not found",Bs="Central directory header not found",Qs="Local file header not found",Ks="Zip64 extra field not found",Js="File contains encrypted entry",_s="Encryption method not supported",$s="Compression method not supported",tr="Split zip file",er="Overlapping entry found",nr="Ambiguous archive",sr="utf-8",rr="cp437",ir=[[ns,T],[ss,T],[rs,T],[is,L]],ar={[L]:{It:Nr,bytes:4},[T]:{It:Tr,bytes:8}};class or{constructor(t,e={}){n.assign(this,{reader:new Yn(t),options:e,config:ct(),Ct:new c})}async*getEntriesGenerator(t={}){const e=this;let{reader:s}=e;const{config:r}=e;if(await Bn(s),s.size!==$&&s.readUint8Array||(s=new vn(await new u(s.readable).blob()),await Bn(s)),s.size<P)throw new d(Gs);const i=mr(Rr(e,t,Ps),Rr(e,t,Cs)),o=i==qs,c=i!=Xs,f=((t,e)=>t!==$?t:e==qs?0:e==Xs?1/0:L)(Rr(e,t,"maxAppendedDataSize"),i),{Wt:w,Vt:h}=await(async(t,e,n)=>{const{size:s}=t,r=a.min(s,65557),i={count:yr};let o,c,l=0;for await(const[n,a,u,f,d]of Sr(t,r)){const r=Mr(n,f+20);if(d+P+r==s){const r=await Fr(t,n,a,f,d,s,i);if(r==zr){if(o||(o=xr(u,f,d)),l++,!e||l>1)break}else r!=br||c||(c=xr(u,f,d))}}return o||(o=c),o||(o=await(async(t,e,n)=>{const{size:s}=t,r=a.min(s,e==1/0?s:65557+e);let i,o;for await(const[e,a,c,l,u]of Sr(t,r)){const r=xr(c,l,u);i||(i=r);const f=await Fr(t,e,a,l,u,s,n);if(f==zr)return r;f!=br||o||(o=r)}return o||i})(t,n,i)),{Wt:o,Vt:l}})(s,c,f);if(!w)throw Nr(Rt(await Qn(s,0,4)))==C?new d(tr):new d(Ys);c&&h>1&&Ur("multiple end of central directory records");const p=Rt(w);let m=Nr(p,12),y=Nr(p,16);const b=w.offset,z=Mr(p,20),S=b+P+z;s.size-S>f&&Ur("appended data");let x=Mr(p,4);const F=s.Tt||0;let U,R,k=Mr(p,6),E=Mr(p,10),D=0;const M=y==T||m==T||E==L||k==L;if(y!=T&&k!=L&&(y+=pr(s,k)),M){const t=w.offset<q?st:await Qn(s,w.offset-q,q),e=Rt(t);if(t.length==q&&Nr(e,0)==j){y=pr(s,Nr(e,4))+Tr(e,8);let t=await Qn(s,y,56),n=Rt(t);const r=w.offset-q-56;if((56>t.length||Nr(n,0)!=Z)&&y!=r&&r>=0){const e=y;y=r,y>e&&(D=y-e),t=await Qn(s,y,56),n=Rt(t)}if(56>t.length||Nr(n,0)!=Z)throw new d(Hs);R=!0,x==L?x=Nr(n,16):o&&x!=Nr(n,16)&&Ur("mismatched zip64 end of central directory record"),k==L?k=Nr(n,20):o&&k!=Nr(n,20)&&Ur("mismatched zip64 end of central directory record"),E==L?E=Tr(n,32):o&&E!=Tr(n,32)&&Ur("mismatched zip64 end of central directory record"),m==T?m=Tr(n,40):o&&m!=Tr(n,40)&&Ur("mismatched zip64 end of central directory record"),y=pr(s,k)+Tr(n,48)+D}}const N=m,I=w.offset-(R?76:0);if(y<s.size||(D=s.size-y-m-P,y=s.size-m-P),F!=x)throw new d(tr);if(0>y)throw new d(Gs);let W=0,A=await Qn(s,y,m),X=Rt(A);if(m){if(4>A.length)throw new d(Gs);const t=I-m;if(y!=t&&k==x){let e=!(Nr(X,W)==V);if(e||0>t||t+4>s.size||(e=Nr(Rt(await Qn(s,t,4)),0)==V),e){const e=y;y=t,y>e&&(D+=y-e),A=await Qn(s,y,m),X=Rt(A)}}}const G=I-y;if(m==G||0>G||k!=x||(m=G,A=await Qn(s,y,m),X=Rt(A)),0>y||y>=s.size)throw new d(Gs);U=y;const K=Rr(e,t,"filenameEncoding"),J=Rr(e,t,"commentEncoding"),_=o?new l:$;let tt;for(let i=0;E>i;i++){const c=new lr(s,r,e.options);if(W+46>A.length||Nr(X,W)!=V)throw new d(Bs);ur(c,X,W+6);const l=!!c.bitFlag.languageEncodingFlag,f=W+46,w=f+c.filenameLength,h=w+c.extraFieldLength,p=Mr(X,W+4),m=!(p>>8),y=p>>8==3,b=A.subarray(f,w),z=Mr(X,W+32),S=h+z,x=A.subarray(h,S),F=l,R=l,k=Nr(X,W+38),M=k&O,N={readOnly:!!(1&M),hidden:!!(2&M),system:!!(4&M),directory:!!(16&M),archive:!!(32&M)},T=Nr(X,W+42),I=Rr(e,t,"decodeText")||Jn,C=F?sr:K||rr,Z=R?sr:J||rr;let j=I(b,C);j===$&&(j=Jn(b,C));let P=I(x,Z);P===$&&(P=Jn(x,Z)),n.assign(c,{index:i,versionMadeBy:p,msDosCompatible:m,compressedSize:0,uncompressedSize:0,At:z,offset:T,diskNumberStart:Mr(X,W+34),internalFileAttributes:Mr(X,W+36),externalFileAttributes:k,msdosAttributesRaw:M,msdosAttributes:N,rawFilename:b,filenameUTF8:F,commentUTF8:R,rawExtraField:A.subarray(w,h),rawComment:x,filename:j,comment:P}),fr(c,c,X,W+6),c.offset+=D,U=a.min(pr(s,c.diskNumberStart)+c.offset,U),o&&(_.has(c.filename)&&(tt=!0),_.add(c.filename));const q=c.externalFileAttributes>>16&L;c.unixMode===$&&16877&q&&(c.unixMode=q);const G=!!(c.unixMode&H),et=!!(c.unixMode&B),nt=!!(512&c.unixMode),st=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&q),rt=c.unixMode!==$&&(61440&c.unixMode)==Y,it=(61440&q)==Y;n.assign(c,{setuid:G,setgid:et,sticky:nt,unixExternalUpper:q,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:st,directory:rt||it||m&&N.directory||c.filename.endsWith(Q)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const at=new Ns(c);at.getData=(t,n)=>c.getData(t,at,e.Ct,n),at.arrayBuffer=async t=>{const n=new v,[s]=await g.all([new u(n.readable).arrayBuffer(),c.getData(n,at,e.Ct,t)]);return s},W=S;const{onprogress:ot}=t;if(ot)try{await ot(i+1,E,new Ns(c))}catch{}yield at}o&&W!=N&&Ur("trailing central directory data"),tt&&Ur("duplicate filename"),o&&(D||E&&U>0)&&Ur("prepended data");const et=Rr(e,t,"extractPrependedData"),nt=Rr(e,t,"extractAppendedData");return et&&(e.prependedData=U>0?await Qn(s,0,U):st),e.comment=z?await Qn(s,b+P,z):st,nt&&(e.appendedData=S<s.size?await Qn(s,S,s.size-S):st),!0}async getEntries(t={}){const e=[];for await(const n of this.getEntriesGenerator(t))e.push(n);return e}async close(){}}class cr{constructor(t={}){const{readable:e,writable:n}=new v,s=new or(e,t).getEntriesGenerator();this.readable=new U({async pull(t){const{done:e,value:n}=await s.next();if(e)return t.close();const r={...n,readable:(()=>{const{readable:t,writable:e}=new v;if(n.getData)return(async()=>{try{await n.getData(e)}catch(t){try{await e.abort(t)}catch{}}})(),t})()};delete r.getData,t.enqueue(r)}}),this.writable=n}}class lr{constructor(t,e,s){n.assign(this,{reader:t,config:e,options:s})}async getData(t,e,n,s={}){const r=this,{reader:i,index:a,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:u,compressionMethod:f,config:w,bitFlag:h,signature:p,rawLastModDate:m,uncompressedSize:y,compressedSize:g}=r,{dataDescriptor:b}=h,z=e.localDirectory={},S=pr(i,c)+o,x=await Qn(i,S,K),F=Rt(x);let v=Rr(r,s,Ts),U=Rr(r,s,Ls);const k=Rr(r,s,Os);if(v=v&&v.length&&v,U=U&&U.length&&U,l&&99!=l.originalCompressionMethod)throw new d($s);if(0!=f&&8!=f&&9!=f&&!k)throw new d($s);if(x.length<K||Nr(F,0)!=I)throw new d(Qs);ur(z,F,4);const{extraFieldLength:E,filenameLength:D}=z,M=mr(Rr(r,s,Ps),Rr(r,s,Cs))==qs;let N=st;if(M&&(D||E)){const t=await Qn(i,S+K,D+E);N=t.subarray(0,D),z.rawExtraField=t.subarray(D)}else z.rawExtraField=E?await Qn(i,S+K+D,E):st;fr(r,z,F,4,!0),M&&((t,e,n)=>{const{rawFilename:s}=t;(n.length!=s.length||n.some((t,e)=>t!=s[e]))&&Ur("mismatched local file header (filename)"),(2057&e.rawBitFlag)!=(2057&t.rawBitFlag)&&Ur("mismatched local file header (general purpose bit flag)"),e.compressionMethod!=t.compressionMethod&&Ur("mismatched local file header (compression method)"),e.bitFlag.dataDescriptor||!(e.signature||e.compressedSize||e.uncompressedSize)||e.signature==t.signature&&e.compressedSize==t.compressedSize&&e.uncompressedSize==t.uncompressedSize||Ur("mismatched local file header (signature or sizes)")})(r,z,N);const{lastAccessDate:T,creationDate:L}=z;T&&(e.lastAccessDate=T),L&&(e.creationDate=L);const C=r.encrypted&&z.encrypted&&!k,V=C&&!l;if(k||(e.zipCrypto=V),C){if(!V&&l.strength===$)throw new d(_s);if(!v&&!U)throw new d(Js)}const A=S+K+D+E,Z=g,j=i.createReadable({offset:A,size:Z}),P=Rr(r,s,Is),q=Rr(r,s,"checkPasswordOnly");let X=Rr(r,s,"checkOverlappingEntry");const G=Rr(r,s,"checkOverlappingEntryOnly");G&&(X=!0);const{onstart:Y,onprogress:H,onend:B}=s,Q=9==f;let J=Rr(r,s,Vs);Q&&(J=!1);const _={options:{codecType:De,password:v,rawPassword:U,zipCrypto:V,encryptionStrength:l&&l.strength,signed:Rr(r,s,"checkSignature")&&!k,passwordVerification:V&&(b?m>>>8&O:p>>>24&O),outputSize:k?g:y,signature:p,compressed:0!=f&&!k,encrypted:C,useWebWorkers:Rr(r,s,Ws),useCompressionStream:J,transferStreams:Rr(r,s,As),deflate64:Q,checkPasswordOnly:q},config:w,ut:{signal:P,size:Z,onstart:Y,onprogress:H,onend:B}};let tt;X&&await(async({reader:t,Zt:e,index:n,offset:s,signature:r,compressedSize:i,uncompressedSize:a,jt:o,dataDescriptor:c,extraFieldZip64:l,Ct:u})=>{let f=0;if(c&&(f=l?20:12),f){const n=await Qn(t,o+i,f+4);if(n.length==f+4&&Nr(Rt(n),0)==W){const t=Nr(Rt(n),4);let s,o;l?(s=Tr(Rt(n),8),o=Tr(Rt(n),16)):(s=Nr(Rt(n),8),o=Nr(Rt(n),12)),(e.encrypted&&!e.zipCrypto||t==r)&&s==i&&o==a&&(f+=4)}}const w={start:s,end:o+i+f,Zt:e};for(const[t,e]of u)if(t!=n&&w.start<e.end&&e.start<w.end){const t=new d(er);throw t.Pt=e.Zt,t}u.set(n,w)})({reader:i,Zt:e,index:a,offset:S,signature:p,compressedSize:g,uncompressedSize:y,jt:A,dataDescriptor:b||z.bitFlag.dataDescriptor,extraFieldZip64:u||z.extraFieldZip64,Ct:n});try{if(!G){q&&(t=new R),t=new Hn(t),await Bn(t,k?g:y),({writable:tt}=t);const{outputSize:e}=await tn({readable:j,writable:tt},_);if(t.size+=e,e!=(k?g:y))throw new d(ge)}}catch(e){if(e.outputSize!==$&&(t.size+=e.outputSize),!q||e.message!=Ot)throw e}finally{Rr(r,s,Zs)||!tt||tt.locked||await tt.getWriter().close()}return q||G?$:t.getData?t.getData():tt}}function ur(t,e,s){const r=t.rawBitFlag=Mr(e,s+2),i=!(1&~r),a=Nr(e,s+6);n.assign(t,{encrypted:i,version:Mr(e,s),bitFlag:{level:(6&r)>>1,dataDescriptor:!(8&~r),languageEncodingFlag:(r&G)==G},rawLastModDate:a,lastModDate:kr(a),filenameLength:Mr(e,s+22),extraFieldLength:Mr(e,s+24)})}function fr(t,e,s,r,i){const{rawExtraField:a}=e,l=e.extraField=new c,u=Rt(a);let f=0;try{for(;f<a.length;){const t=Mr(u,f),e=Mr(u,f+2);l.set(t,{type:t,data:a.slice(f+4,f+4+e)}),f+=4+e}}catch{}const w=Mr(s,r+4);n.assign(e,{signature:Nr(s,r+10),compressedSize:Nr(s,r+14),uncompressedSize:Nr(s,r+18)});const h=l.get(1);h&&(((t,e)=>{e.zip64=!0;const n=Rt(t.data),s=ir.filter(([t,n])=>e[t]==n),r=s.reduce((t,[,e])=>t+ar[e].bytes,0);if(t.data.length<r)throw new d(Ks);for(let r=0,i=0;r<s.length;r++){const[a,o]=s[r],c=ar[o];e[a]=t[a]=c.It(n,i),i+=c.bytes}})(h,e),e.extraFieldZip64=h);const p=l.get(28789);p&&(dr(p,_n,$n,e,t),e.extraFieldUnicodePath=p);const m=l.get(25461);m&&(dr(m,ts,es,e,t),e.extraFieldUnicodeComment=m);const y=l.get(39169);y&&y.data.length>=7?(((t,e,s)=>{const r=Rt(t.data),i=Dr(r,4);n.assign(t,{qt:Dr(r,0),vendorId:Dr(r,2),strength:i,originalCompressionMethod:s,compressionMethod:Mr(r,5)}),e.compressionMethod=t.compressionMethod})(y,e,w),e.extraFieldAES=y):e.compressionMethod=w;const g=l.get(10);g&&(((t,e)=>{const s=Rt(t.data);let r,i=4;try{for(;i<t.data.length&&!r;){const e=Mr(s,i),n=Mr(s,i+2);1==e&&(r=t.data.slice(i+4,i+4+n)),i+=4+n}}catch{}try{if(r&&24==r.length){const s=Rt(r),i=s.getBigUint64(0,!0),a=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);n.assign(t,{rawLastModDate:i,rawLastAccessDate:a,rawCreationDate:o});const c={lastModDate:Er(i),lastAccessDate:Er(a),creationDate:Er(o)};n.assign(t,c),n.assign(e,c)}}catch{}})(g,e),e.extraFieldNTFS=g);const b=l.get(30805);if(b)wr(b,e,!1),e.extraFieldUnix=b;else{const t=l.get(30837);t&&(wr(t,e,!0),e.extraFieldInfoZip=t)}const z=l.get(X);z&&(((t,e,n)=>{if(!t.data.length)return;const s=Rt(t.data),r=Dr(s,0),i=[],a=[];n?(1&~r||(i.push(as),a.push(os)),2&~r||(i.push(cs),a.push("rawLastAccessDate")),4&~r||(i.push(ls),a.push(us))):5>t.data.length||(i.push(as),a.push(os));let c=1;i.forEach((n,r)=>{if(t.data.length>=c+4){const i=Nr(s,c);e[n]=t[n]=new o(1e3*(0|i));const l=a[r];t[l]=i}c+=4})})(z,e,i),e.extraFieldExtendedTimestamp=z);const S=l.get(6534);S&&(e.extraFieldUSDZ=S)}function dr(t,e,s,r,i){if(5>t.data.length)return void(t.valid=!1);const a=Rt(t.data),o=new St;o.append(i[s]);const c=Rt(new w(4));c.setUint32(0,o.get(),!0);const l=Nr(a,1);n.assign(t,{version:Dr(a,0),[e]:Jn(t.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&l==Nr(c,0)}),t.valid&&(r[e]=t[e],r[e+"UTF8"]=!0)}function wr(t,e,s){try{const r=Rt(t.data);let i,a;if(s){let e=0;const s=Dr(r,e++),o=Dr(r,e++);i=hr(t.data.subarray(e,e+o)),e+=o;const c=Dr(r,e++);a=hr(t.data.subarray(e,e+c)),n.assign(t,{version:s,uid:i,gid:a})}else 4>t.data.length||(i=Mr(r,0),a=Mr(r,2),n.assign(t,{uid:i,gid:a}));i!==$&&(e.uid=i),a!==$&&(e.gid=a)}catch{}}function hr(t){const e=new w(4);return e.set(t,0),new m(e.buffer,e.byteOffset,4).getUint32(0,!0)}function pr(t,e){return t.Ot?t.Ot(e):0}function mr(t,e){return t===$?e?qs:"balanced":t}const yr=64,gr=0,br=1,zr=2;async function*Sr(t,e){const n=t.size-e,s=await Qn(t,n,e),r=Rt(s);for(let t=s.length-P;t>=0;t--)Nr(r,t)==A&&(yield[r,n,s,t,n+t])}function xr(t,e,n){return{offset:n,buffer:t.slice(e,e+P).buffer}}async function Fr(t,e,n,s,r,i,a){const o=Mr(e,s+10),c=Nr(e,s+12),l=Nr(e,s+16);if(o==L||c==T||l==T)return await vr(t,e,n,r-q,i,a)==j?zr:gr;if(!o&&!c)return br;const u=Mr(e,s+6);for(const s of[r-c,pr(t,u)+l])if(await vr(t,e,n,s,i,a)==V)return zr;return gr}async function vr(t,e,n,s,r,i){return 0>s||s+4>r?$:n>s?i.count>0?(i.count--,Nr(Rt(await Qn(t,s,4)),0)):$:Nr(e,s-n)}function Ur(t){const e=new d(nr);throw e.reason=t,e}function Rr(t,e,n){return e[n]===$?t.options[n]:e[n]}function kr(t){const e=(4294901760&t)>>16,n=t&L;try{return new o(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}catch{}}function Er(t){return new o(r(t/i(1e4)-i(116444736e5)))}function Dr(t,e){return t.getUint8(e)}function Mr(t,e){return t.getUint16(e,!0)}function Nr(t,e){return t.getUint32(e,!0)}function Tr(t,e){return r(t.getBigUint64(e,!0))}var Lr=n.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:nr,ERR_BAD_FORMAT:Gs,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Bs,ERR_ENCRYPTED:Js,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Hs,ERR_EOCDR_NOT_FOUND:Ys,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Ks,ERR_INVALID_COMPRESSED_DATA:be,ERR_INVALID_PASSWORD:Tt,ERR_INVALID_SIGNATURE:Lt,ERR_INVALID_UNCOMPRESSED_SIZE:ge,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Qs,ERR_OVERLAPPING_ENTRY:er,ERR_SPLIT_ZIP_FILE:tr,ERR_UNSUPPORTED_COMPRESSION:$s,ERR_UNSUPPORTED_ENCRYPTION:_s,ZipReader:or,ZipReaderStream:cr});const Or="File already exists",Ir="Zip file comment exceeds 64KB",Cr="File entry comment exceeds 64KB",Wr="File entry name exceeds 64KB",Vr="Version exceeds 65535",Ar="The strength must equal 1, 2, or 3",Zr="Extra field type exceeds 65535",jr="Extra field data exceeds 64KB",Pr=-2147483648,qr=2147483647,Xr="Zip64 is not supported (set the 'zip64' option to 'true')",Gr="Undefined uncompressed size",Yr="Undefined reader",Hr="Zip file not empty",Br=new w([7,0,2,0,65,69,3,0,0]),Qr="infozip",Kr="unix";let Jr=0;const _r=[];class $r{constructor(t,e={}){t=new Hn(t);const{availableSize:s=tt,maxSize:r=tt}=t,i=s>0&&s!==tt&&r>0&&r!==tt;n.assign(this,{writer:t,Xt:i,options:e,config:ct(),files:new c,Gt:new l,offset:e[js]===$?t.size||t.writable.size||0:e[js],Yt:e[js]===$?0:e[js]-(t.size||t.writable.size||0),Ht:new l,Bt:0,Qt:$})}async prependZip(t){if(this.Gt.size)throw new d(Hr);t=new Yn(t),await Bn(t);const{ZipReader:e}=await g.resolve().then(()=>Lr),s=new e(t.readable),r=await s.getEntries();await s.close(),await Bn(this.writer),await t.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=t.size,this.Gt=new l(r.map(t=>t.filename)),this.files=new c(r.map(t=>{const{version:e,rawLastModDate:s,lastAccessDate:r,creationDate:i,rawFilename:a,bitFlag:o,encrypted:c,uncompressedSize:l,compressedSize:u,zip64:f}=t;let{compressionMethod:d,Kt:w,Jt:h,_t:p,$t:m,te:y,rawExtraField:g}=t;const{level:b,languageEncodingFlag:z,dataDescriptor:S}=o;w=w||st,h=h||st,p=p||st,m=m||st,y=y||st,g=g||st,t.extraFieldAES&&(d=99);const x=bi(w,h,p,m,y,g),F=f&&l>=T,v=f&&u>=T,U=-7&Si(b,z,S,c,d)|b<<1,{ee:R,ne:k}=zi({version:e,bitFlag:U,compressionMethod:d,uncompressedSize:l,compressedSize:u,rawLastModDate:s,rawFilename:a,se:v,re:F,extraFieldLength:x}),{signature:E}=t;return E!==$&&mi(k,10,E),n.assign(t,{re:F,se:v,ie:f&&t.offset>=T,diskNumberStart:0,ae:!1,Kt:w,Jt:h,_t:p,$t:m,te:y,rawExtraField:g,extendedTimestamp:p.length>0||m.length>0,oe:1+(r?2:0)+(i?4:0),ee:R,ne:k}),[t.filename,t]}))}async add(t="",e,s={}){const r=this;s=n.assign({},s);const{Ht:a,config:c}=r;let l,u;Jr<c.maxWorkers?Jr++:await new g(t=>_r.push(t));try{if(t=t.trim(),wi(r,s,Ss)&&!t.endsWith(Q)&&(t+=Q),r.Gt.has(t))throw new d(Or);return r.Gt.add(t),u=!0,l=(async(t,e,s,r)=>{const a=((t,e,n)=>{e=e.trim();let s=wi(t,n,ps),r=wi(t,n,bs,s?20:768);const i=wi(t,n,xs),a=wi(t,n,"uid"),o=wi(t,n,"gid");let c=wi(t,n,Rs),l=wi(t,n,"unixExtraFieldType"),u=wi(t,n,ks),f=wi(t,n,Es),w=wi(t,n,Ds);if(a!==$&&(0>a||a>T))throw new d("Invalid uid (must be integer 0..2^32-1)");if(o!==$&&(0>o||o>T))throw new d("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>L))throw new d("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==Qr&&l!==Kr)throw new d("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===Kr&&(a!==$&&a>L||o!==$&&o>L))throw new d("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||a===$&&o===$||(l=Qr);let h=wi(t,n,ws),p=wi(t,n,hs);const m=h!==$||p!==$;if(a!==$||o!==$||c!==$||l?(s=!1,r=r&L|768):m&&(s=!0,r&=O),h!==$&&(0>h||h>O))throw new d("Invalid msdosAttributesRaw (must be integer 0..255)");if(p&&"object"!=typeof p)throw new d("Invalid msdosAttributes (must be an object with boolean flags)");if(r>L)throw new d(Vr);let y=wi(t,n,ds,0);!n[Ss]&&e.endsWith(Q)&&(n[Ss]=!0);const g=wi(t,n,Ss);let b;return g?(e.endsWith(Q)||(e+=Q),0===y&&(y=16,s||(y|=16877<<16))):s||0!==y||(y=i?493<<16:27525120),s||(b=y>>16&L,c=c===$?b:c&L,u?c|=H:u=!!(c&H),f?c|=B:f=!!(c&B),w?c|=512:w=!!(512&c),g&&(c|=Y),y=(c&L)<<16|y&O),({msdosAttributesRaw:h,msdosAttributes:p}=((t,e)=>{if(t!==$)t&=O;else if(e!==$){const{readOnly:n,hidden:s,system:r,directory:i,archive:a}=e;let o=0;n&&(o|=1),s&&(o|=2),r&&(o|=4),i&&(o|=16),a&&(o|=32),t=o&O}return e===$&&(e={readOnly:!!(1&t),hidden:!!(2&t),system:!!(4&t),directory:!!(16&t),archive:!!(32&t)}),{msdosAttributesRaw:t,msdosAttributes:e}})(h,p)),m&&(y=y&T|h&O),{name:e,ce:{versionMadeBy:r,msDosCompatible:s,externalFileAttributes:y,unixExternalUpper:b,uid:a,gid:o,unixMode:c,unixExtraFieldType:l,setuid:u,setgid:f,sticky:w,msdosAttributesRaw:h,msdosAttributes:p}}})(t,e,r);({name:e}=a);const c=((t,e,n)=>{const s=wi(t,n,"encodeText",Ft);let r=s(e);if(r===$&&(r=Ft(e)),bi(r)>L)throw new d(Wr);const i=n[ts]||"";let a=s(i);if(a===$&&(a=Ft(i)),bi(a)>L)throw new d(Cr);const c=wi(t,n,gs,20);if(c>L)throw new d(Vr);const l=wi(t,n,as,new o),u=wi(t,n,cs),f=wi(t,n,ls),h=wi(t,n,fs,0),p=wi(t,n,Os);let m,y;p||(m=wi(t,n,Ts),y=wi(t,n,Ls));const g=wi(t,n,"encryptionStrength",3),b=wi(t,n,zs),z=wi(t,n,"extendedTimestamp",!0),S=wi(t,n,"keepOrder",!0),x=wi(t,n,Ws),F=wi(t,n,As),v=wi(t,n,"bufferedWrite"),U=wi(t,n,"createTempStream"),R=wi(t,n,"dataDescriptorSignature",!0),k=wi(t,n,Is),E=wi(t,n,"useUnicodeFileNames",!0),D=wi(t,n,Fs);if(!p&&D!==$&&0!==D&&8!==D)throw new d("Compression method not supported");let M=wi(t,n,"level"),N=wi(t,n,Vs),T=wi(t,n,"dataDescriptor");v&&T===$&&(T=!1),(T===$||b)&&(T=!0),M!==$&&6!=M&&(N=!1),N||t.config.CompressionStream!==$||t.config.CompressionStreamZlib!==$||(M=0);const O=wi(t,n,ms);if(!b&&(m!==$||y!==$)&&(1>g||g>3))throw new d(Ar);let I=st;const C=n[Us];if(C){let t=0,e=0;C.forEach(e=>t+=4+bi(e)),I=new w(t);const n=Rt(I);C.forEach((t,s)=>{if(s>L)throw new d(Zr);if(bi(t)>L)throw new d(jr);pi(n,e,s),pi(n,e+2,bi(t)),gi(I,t,e+4),e+=4+bi(t)})}return{comment:i,ce:{rawFilename:r,rawComment:a,version:c,lastModDate:l,lastAccessDate:u,creationDate:f,internalFileAttributes:h,passThrough:p,password:m,rawPassword:y,encryptionStrength:g,zipCrypto:b,extendedTimestamp:z,keepOrder:S,useWebWorkers:x,transferStreams:F,bufferedWrite:v,createTempStream:U,dataDescriptorSignature:R,signal:k,useUnicodeFileNames:E,compressionMethod:D,level:M,useCompressionStream:N,dataDescriptor:T,zip64:O,rawExtraField:I}}})(t,e,r),{comment:l}=c,u=r[Us];let f;t.files.set(e,$);try{const o=await(async(t,e,{ce:n},s)=>{const{passThrough:r,zipCrypto:i,password:a,rawPassword:o,encryptionStrength:c}=n;let{dataDescriptor:l,zip64:u,level:f,compressionMethod:w}=n,h=0,p=0;if(r){if(!e)throw new d(Yr);if(p=s[ns],p===$)throw new d(Gr)}const m=!0===u,y=wi(t,s,ys),g=!!e&&(!!(a&&bi(a)||o&&bi(o))||r&&y);e||(f=0,w=0);const b=g?i?12:16+4*c:0;e&&(e=new Yn(e),await Bn(e),r?(s.uncompressedSize=p,h=hi(p)+b):e.size===$?(l=!0,(u||u===$)&&(u=!0,p=h=4294967296)):(s.uncompressedSize=p=e.size,h=hi(p)+b));const z=m||p>=T,S=m||h>=T;if(z||S){if(!1===u)throw new d(Xr);u=!0}return u=u||!1,{reader:e,ce:{dataDescriptor:l,zip64:u,re:z,se:S,uncompressedSize:p,level:f,compressionMethod:w,encrypted:g}}})(t,s,c,r);({reader:s}=o);const l=ii(t.writer),u=ri(t.writer),h=(t=>{const{rawFilename:e,lastModDate:n,lastAccessDate:s,creationDate:r,level:i,zip64:a,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:l,directory:u,rawExtraField:f,encryptionStrength:w,extendedTimestamp:h,passThrough:p,encrypted:m,re:y,se:g,uncompressedSize:b}=t;let{version:z,compressionMethod:S}=t;const x=!u&&(S===$?i===$||i>0:0!==S);let F;const v=p||!x,U=a&&(t.bufferedWrite||!l||!y&&!g||v),R=U||a&&l&&(y||g);if(a&&(y||g)){const t=20,e=si(t);if(e.uint16(1),e.uint16(t-4),F=e.array,U&&(e.le(b),v)){const t=m?o?12:16+4*w:0;e.le(p?0:b+t)}}else F=st;let k,E,D,M,N;if(m&&!o){const t=si(bi(Br)+2);t.uint16(39169),t.bytes(Br),k=t.array,k[8]=w}else k=st;if(h){const t=ui(n);if(fi(t)){const e=9+(s?4:0)+(r?4:0),n=si(e);M=1+(s?2:0)+(r?4:0),n.uint16(X),n.uint16(e-4),n.uint8(M),n.uint32(t),s&&n.uint32(di(ui(s))),r&&n.uint32(di(ui(r))),D=n.array}else D=st;try{const t=li(n),e=si(36);e.uint16(10),e.uint16(32),e.ue(4),e.uint16(1),e.uint16(24),e.le(t),e.le(li(s)||t),e.le(li(r)||t),E=e.array}catch{E=st}}else E=D=st;try{const{uid:e,gid:n,unixExtraFieldType:s}=t;if(s!=Qr||e===$&&n===$)if(s!=Kr||e===$&&n===$)N=st;else{const t=si(8);t.uint16(30805),t.uint16(4),t.uint16((e===$?0:e)&L),t.uint16((n===$?0:n)&L),N=t.array}else{const t=ni(e),s=ni(n),r=3+t.length+s.length,i=si(4+r);i.uint16(30837),i.uint16(r),i.uint8(1),i.uint8(t.length),i.bytes(t),i.uint8(s.length),i.bytes(s),N=i.array}}catch{N=st}S===$&&(S=x?8:0),a&&(z=z>45?z:45),m&&!o&&(z=z>51?z:51,k[9]=S,S=99);const T=R?bi(F):0,O=T+bi(k,D,E,N,f);if(O>L)throw new d(jr);const{ee:C,ne:W,rawLastModDate:V}=zi({version:z,bitFlag:Si(i,c,l,m,S),compressionMethod:S,uncompressedSize:b,lastModDate:_>n?_:n>J?J:n,rawFilename:e,se:g,re:y,extraFieldLength:O}),A=si(K+bi(e)+O),Z=A.array,j=Rt(Z);return A.uint32(I),A.bytes(C),A.bytes(e),R&&A.bytes(F),A.bytes(k),A.bytes(D),A.bytes(E),A.bytes(N),A.bytes(f),l&&(g||mi(j,18,0),y||mi(j,22,0)),{fe:Z,de:j,ee:C,ne:W,lastModDate:n,rawLastModDate:V,encrypted:m,compressed:x,version:z,compressionMethod:S,oe:M,Kt:st,we:T,_t:D,$t:E,te:N,Jt:k,extraFieldLength:O}})(r=n.assign({},r,a.ce,c.ce,o.ce,{internalFileAttribute:c.ce.internalFileAttributes,externalFileAttribute:a.ce.externalFileAttributes,signature:r[vs],offset:t.offset-l,diskNumberStart:u})),p=(({zip64:t,dataDescriptor:e,dataDescriptorSignature:n})=>{let s,r=st,i=0,a=t?20:12;return n&&(a+=4),e&&(r=new w(a),s=Rt(r),n&&(i=4,mi(s,0,W))),{he:r,pe:s,me:i}})(r),m=bi(h.fe,p.he);f=await(async(t,e,s,r,a)=>{const{files:o,writer:c}=t,{keepOrder:l,dataDescriptor:u,signal:f}=a,{ye:h}=r,p=t.options.usdz,m=t.Qt;let y,b,z,S,x,F,U,k={},E=0;o.set(e,k),t.Qt=k;try{let b;l&&(b=m&&m.lock,k.lock=new g(t=>z=t)),a.bufferedWrite||!l||t.ge||t.Bt||!u?(y=!0,t.Bt++,U=a.createTempStream?await a.createTempStream():new v($,$,{highWaterMark:tt}),U.size=0,await Bn(c)):(U=c,await D()),await Bn(U);const N=ii(c);if(t.Xt){delete t.Xt;const e=new w(4);mi(Rt(e),0,C),await ci(c,e),t.offset+=4}p&&!y&&ei(r,t.offset-N);const{fe:L}=h;y||(await b,await M());const I=ri(c),W=oi(t,c);if(k.diskNumberStart=I,y||(x=!0,F=c.size,await ci(U,L)),k=await(async(t,e,{diskNumberStart:s,lock:r},a,o,c)=>{const{ye:l,be:u,ze:f}=a,{ee:w,ne:h,lastModDate:p,rawLastModDate:m,encrypted:y,compressed:g,version:b,compressionMethod:z,Kt:S,we:x,_t:F,oe:v,$t:U,te:R,Jt:k}=l,{he:E}=u,{rawFilename:D,lastAccessDate:M,creationDate:N,password:L,rawPassword:I,level:C,zip64:W,re:V,se:A,zipCrypto:Z,dataDescriptor:j,directory:P,executable:q,versionMadeBy:X,rawComment:G,rawExtraField:Y,useWebWorkers:H,transferStreams:B,onstart:Q,onprogress:K,onend:J,signal:_,encryptionStrength:tt,extendedTimestamp:et,msDosCompatible:nt,internalFileAttributes:st,externalFileAttributes:rt,uid:it,gid:at,unixMode:ot,setuid:ct,setgid:lt,sticky:ut,unixExternalUpper:ft,msdosAttributesRaw:dt,msdosAttributes:wt,useCompressionStream:ht,passThrough:pt}=c,mt={lock:r,versionMadeBy:X,zip64:W,directory:!!P,executable:!!q,filenameUTF8:!0,rawFilename:D,commentUTF8:!0,rawComment:G,Kt:S,we:x,_t:F,$t:U,te:R,Jt:k,rawExtraField:Y,extendedTimestamp:et,msDosCompatible:nt,internalFileAttributes:st,externalFileAttributes:rt,diskNumberStart:s,uid:it,gid:at,unixMode:ot,setuid:ct,setgid:lt,sticky:ut,unixExternalUpper:ft,msdosAttributesRaw:dt,msdosAttributes:wt};let{signature:yt,uncompressedSize:gt}=c,bt=0;pt||(gt=0);const{writable:zt}=e;if(t){const n=t.createReadable?t.createReadable():t.readable,s=t.size,r={options:{codecType:Ee,level:C,rawPassword:I,password:L,encryptionStrength:tt,zipCrypto:y&&Z,passwordVerification:y&&Z&&m>>8&O,signed:!pt,compressed:g&&!pt,encrypted:y&&!pt,useWebWorkers:H,useCompressionStream:ht,transferStreams:B},config:o,ut:{signal:_,size:s,onstart:Q,onprogress:K,onend:J}};try{const t=await tn({readable:n,writable:zt},r);if(bt=t.outputSize,e.size+=bt,pt||(gt=t.inputSize,yt=t.signature),!A&&bt>=T||!V&>>=T)throw new d(Xr)}catch(t){throw t.outputSize!==$&&(e.size+=t.outputSize),t}}return(({signature:t,compressedSize:e,uncompressedSize:n,ye:s,be:r},{zip64:a,zipCrypto:o,dataDescriptor:c})=>{const{ne:l,encrypted:u}=s,{pe:f,me:d}=r;u&&!o||t===$||(mi(l,10,t),c&&mi(f,d,t)),a?c&&(yi(f,d+4,i(e)),yi(f,d+12,i(n))):(mi(l,14,e),mi(l,18,n),c&&(mi(f,d+4,e),mi(f,d+8,n)))})({signature:yt,compressedSize:bt,uncompressedSize:gt,ye:l,be:u},c),j&&await ci(e,E),n.assign(mt,{uncompressedSize:gt,compressedSize:bt,lastModDate:p,rawLastModDate:m,creationDate:N,lastAccessDate:M,encrypted:y,zipCrypto:Z,size:f+bt,compressionMethod:z,version:b,ee:w,ne:h,signature:yt,oe:v,re:V,se:A}),mt})(s,U,k,r,t.config,a),y||(x=!1),o.set(e,k),k.filename=e,y){if(await g.all([U.writable.getWriter().close(),b]),await D(),S=!0,F=c.size,await M(),k.diskNumberStart=ri(c),k.offset=oi(t,c),p){const e=r.ze;ei(r,t.offset-ii(c)),k.size+=r.ze-e}(({rawFilename:t,encrypted:e,zip64:n,we:s,signature:r,compressedSize:a,uncompressedSize:o,re:c,se:l},u,{dataDescriptor:f})=>{if(f||(e||mi(u,14,r),l||mi(u,18,a),c||mi(u,22,o)),n&&s){const e=K+bi(t)+4;yi(u,e,i(o)),yi(u,e+8,i(a))}})(k,h.de,a),await ci(c,h.fe),await(async(t,e,n)=>{const s=e.writable.getWriter();try{await t.pipeTo(new R({async write(t){var e;await s.ready,await s.write(t),e=bi(t),E+=e}}),{preventClose:!0,preventAbort:!0,signal:n})}finally{s.releaseLock()}})(U.readable,c,f),c.size+=U.size,S=!1}else k.diskNumberStart=I,k.offset=W;return t.offset+=k.size,k}catch(n){if(S||x){if(t.hasCorruptedEntries=!0,n)try{n.corruptedEntry=!0}catch{}t.offset+=c.size-F,y&&(t.offset+=E)}throw o.delete(e),n}finally{if(y&&t.Bt--,z&&z(),b&&b(),y&&U&&U.dispose)try{await U.dispose()}catch{}}async function D(){t.ge=!0;const{Se:e}=t;t.Se=new g(e=>b=()=>{t.ge=!1,e()}),await e}async function M(){ai(c,bi(h.fe))&&await c.closeDisk()}})(t,e,s,{ye:h,be:p,ze:m},r)}catch(n){throw t.files.delete(e),n}return n.assign(f,{name:e,comment:l,extraField:u}),new Ns(f)})(r,t,e,s),a.add(l),await l}catch(e){throw u&&r.Gt.delete(t),e}finally{a.delete(l);const t=_r.shift();t?t():Jr--}}remove(t){const{Gt:e,files:n}=this;if("string"==typeof t&&(t=n.get(t)),t&&t.filename!==$){const{filename:s}=t;if(e.has(s)&&n.has(s))return e.delete(s),n.delete(s),!0}return!1}async close(t=st,n={}){const{Ht:s,writer:r}=this,{writable:a}=r;if(bi(t)>L)throw new d(Ir);for(;s.size;)await g.allSettled(e.from(s));return await(async(t,n,s)=>{const r=(t=>{let e=0;for(const[,n]of t){const{rawFilename:t,Jt:s,rawComment:r,$t:i,te:a,rawExtraField:o,extendedTimestamp:c,oe:l,lastModDate:u,re:f,se:w,uncompressedSize:h,compressedSize:p}=n,m=n.offset>=T,y=n.diskNumberStart>=L;let g,b;if(m||y||f||w){const t=4+(f?8:0)+(w?8:0)+(m?8:0)+(y?4:0),e=si(t);e.uint16(1),e.uint16(t-4),f&&e.le(h),w&&e.le(p),m&&e.le(n.offset),y&&e.uint32(n.diskNumberStart),g=e.array}else g=st;n.Kt=g,n.ie=m,n.ae=y;const z=ui(u);if(c&&fi(z)){const t=si(9);t.uint16(X),t.uint16(5),t.uint8(l),t.uint32(z),b=t.array}else b=st;n._t=b;const S=bi(g,s,i,a,b,o);if(S>L)throw new d(jr);e+=46+bi(t,r)+S}return e})(t.files),a=await(async(t,n,s)=>{const{files:r,writer:i}=t,a=new w(n);await Bn(i);let o=0,c=0,l=ri(i),u=ii(i);for(const[t,n]of e.from(r.values()).entries()){const{offset:e,rawFilename:f,Kt:d,Jt:w,_t:h,$t:p,te:m,rawExtraField:y,rawComment:g,versionMadeBy:b,ee:z,ne:S,re:x,se:F,ae:v,ie:U,internalFileAttributes:R,externalFileAttributes:k,diskNumberStart:E,uncompressedSize:D,compressedSize:M}=n,N=bi(d,w,h,p,m,y),O=46+bi(f,g)+N;ai(i,o+O-c)&&(await ci(i,a.slice(c,o)),c=o,await i.closeDisk()),0==t&&(l=ri(i),u=ii(i)),x||mi(S,18,D),F||mi(S,14,M),(U||v)&&45>n.version&&pi(S,0,45);const I=si(O);if(I.uint32(V),I.uint16(b),I.bytes(z.subarray(0,24)),I.uint16(N),I.uint16(bi(g)),I.uint16(v?L:E),I.uint16(R),I.uint32(k),I.uint32(U?T:e),I.bytes(f),I.bytes(d),I.bytes(w),I.bytes(h),I.bytes(p),I.bytes(m),I.bytes(y),I.bytes(g),gi(a,I.array,o),o+=O,s.onprogress)try{await s.onprogress(t+1,r.size,new Ns(n))}catch{}}return await ci(i,c?a.slice(c):a),{diskNumber:l,diskOffset:u}})(t,r,s);await(async(t,e,n,s)=>{const{writer:r}=t,{xe:a}=s;let{Fe:o}=s,c=t.files.size,l=a.diskNumber,u=oi(t,a),f=ri(r);ai(r,P)&&f++;let w=wi(t,n,ms);if(!(T>u&&T>o&&L>c&&L>f)){if(!1===w)throw new d(Xr);w=!0}const h=bi(e);if(h>L)throw new d(Ir);const p=si(w?98:P);ai(r,bi(p.array)+h)&&await r.closeDisk(),f=ri(r),w&&(p.uint32(Z),p.le(44),p.uint16(45),p.uint16(45),p.uint32(f),p.uint32(l),p.le(c),p.le(c),p.le(o),p.le(u),p.uint32(j),p.uint32(f),p.le(i(oi(t,r))+i(o)),p.uint32(f+1),wi(t,n,"supportZip64SplitFile",!0)&&(f=L,l=L),c=L,u=T,o=T),p.uint32(A),p.uint16(f),p.uint16(l),p.uint16(c),p.uint16(c),p.uint32(o),p.uint32(u),p.uint16(h),await ci(r,p.array),h&&await ci(r,e)})(t,n,s,{xe:a,Fe:r})})(this,t,n),wi(this,n,Zs)||await a.getWriter().close(),r.getData?r.getData():a}}function ti(t,e,n){t.Ht.add(e),e.catch(t=>{try{n(t)}catch{}})}function ei(t,e){const{ye:n}=t;let{fe:s,extraFieldLength:r}=n,i=64-(e+bi(s))%64;4>i&&(i+=64);const a=new w(i),o=Rt(a);pi(o,0,6534),pi(o,2,i-4);const c=s;n.fe=s=new w(bi(c)+i),gi(s,c),gi(s,a,bi(c));const l=Rt(s);pi(l,28,r+i),n.de=l,t.ze+=i}function ni(t){if(t===$)return st;{const e=new w(4);Rt(e).setUint32(0,t,!0);let n=4;for(;n>1&&0===e[n-1];)n--;return e.subarray(0,n)}}function si(t){const e=new w(t),n=Rt(e);let s=0;return{array:e,uint8:t=>{((t,e,n)=>{t.setUint8(e,n)})(n,s,t),s+=1},uint16:t=>{pi(n,s,t),s+=2},uint32:t=>{mi(n,s,t),s+=4},le:t=>{yi(n,s,i(t)),s+=8},bytes:t=>{gi(e,t,s),s+=bi(t)},ue:t=>s+=t}}function ri(t){const{diskNumber:e=0}=t;return e}function ii(t){const{diskOffset:e=0}=t;return e}function ai(t,e){const{availableSize:n=tt}=t;return e>n}function oi(t,{diskNumber:e=0,diskOffset:n=0}){return t.offset-n-(e?t.Yt:0)}async function ci(t,e){const{writable:n}=t,s=n.getWriter();try{await s.ready,t.size+=bi(e),await s.write(e)}finally{s.releaseLock()}}function li(t){if(t)return(i(t.getTime())+i(116444736e5))*i(1e4)}function ui(t){return a.floor(t.getTime()/1e3)}function fi(t){return t>=Pr&&qr>=t}function di(t){return a.min(qr,a.max(Pr,t))}function wi(t,e,n,s){const r=e[n]===$?t.options[n]:e[n];return r===$?s:r}function hi(t){return t+5*(a.floor(t/16383)+1)}function pi(t,e,n){t.setUint16(e,n,!0)}function mi(t,e,n){t.setUint32(e,n,!0)}function yi(t,e,n){t.setBigUint64(e,n,!0)}function gi(t,e,n){t.set(e,n)}function bi(...t){let e=0;return t.forEach(t=>t&&(e+=t.length)),e}function zi({version:t,bitFlag:e,compressionMethod:n,uncompressedSize:s,compressedSize:r,lastModDate:i,rawLastModDate:a,rawFilename:o,se:c,re:l,extraFieldLength:u}){const f=si(26),d=f.array,w=Rt(d);if(f.uint16(t),f.uint16(e),f.uint16(n),a===$){const t=new p(1),e=Rt(t);pi(e,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),pi(e,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),a=t[0]}return f.uint32(a),f.ue(4),c||r!==$?f.uint32(c?T:r):f.ue(4),l||s!==$?f.uint32(l?T:s):f.ue(4),f.uint16(bi(o)),f.uint16(u),{ee:d,ne:w,rawLastModDate:a}}function Si(t,e,n,s,r){let i=0;return e&&(i|=G),n&&(i|=8),8!=r&&9!=r||(0>t||t>3||(i|=6),t>3&&5>=t&&(i|=4),9==t&&(i|=2)),s&&(i|=1),i}const xi=1048576,Fi=".zip.js-temp",vi=1048576,Ui=1048576,Ri=".zip.js-temp";try{ft({baseURI:void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:N&&"SCRIPT"===N.tagName.toUpperCase()&&N.src||new f("zip.min.js",S.baseURI).href})}catch{}const ki=[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],Ei=[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],Di=[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],Mi=[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],Ni=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Ti=new w(288);Ti.fill(8,0,144),Ti.fill(9,144,256),Ti.fill(7,256,280),Ti.fill(8,280,288);const Li=new w(30).fill(5);function Oi(t){const e=new h(16);for(const n of t)e[n]++;e[0]=0;const n=new h(17);for(let t=1;15>=t;t++)n[t+1]=n[t]+e[t];const s=new h(t.length);for(let e=0;e<t.length;e++)t[e]&&(s[n[t[e]]++]=e);return{ve:e,symbols:s}}const Ii="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let Ci,Wi,Vi,Ai;function Zi(t,e,n={}){const s="number"==typeof n.level?n.level:-1,r="number"==typeof n.outBuffer?n.outBuffer:65536,i="number"==typeof n.inBufferSize?n.inBufferSize:65536;return new v({start(){try{let n;if(this.Ue=Wi(r),this.in=Wi(i),this.inBufferSize=i,!this.Ue||!this.in)throw new d("allocation failed");if(this.Re=new w(r),t?(this.ke=Ci.deflate_process,this.Ee=Ci.deflate_last_consumed,this.De=Ci.deflate_end,this.Me=Ci.deflate_new(),n="gzip"===e?Ci.deflate_init_gzip(this.Me,s):"deflate-raw"===e?Ci.deflate_init_raw(this.Me,s):Ci.deflate_init(this.Me,s)):"deflate64-raw"===e?(this.ke=Ci.inflate9_process,this.Ee=Ci.inflate9_last_consumed,this.De=Ci.inflate9_end,this.Me=Ci.inflate9_new(),n=Ci.inflate9_init_raw(this.Me)):(this.ke=Ci.inflate_process,this.Ee=Ci.inflate_last_consumed,this.De=Ci.inflate_end,this.Me=Ci.inflate_new(),n="deflate-raw"===e?Ci.inflate_init_raw(this.Me):"gzip"===e?Ci.inflate_init_gzip(this.Me):Ci.inflate_init(this.Me)),0!==n)throw new d("init failed:"+n)}catch(t){throw o(this),t}},transform(e,n){try{const s=e,i=new w(Ai.buffer),o=this.ke,c=this.Ee,l=this.Ue,u=this.Re;let f=0;for(;f<s.length;){const e=a.min(s.length-f,32768);if((!this.in||this.inBufferSize<e)&&(this.in&&Vi&&(Vi(this.in),this.in=0),this.in=Wi(e),this.inBufferSize=e,!this.in))throw new d("allocation failed");i.set(s.subarray(f,f+e),this.in);const w=o(this.Me,this.in,e,l,r,0),h=16777215&w;if(h&&(u.set(i.subarray(l,l+h),0),n.enqueue(u.slice(0,h))),!t){const t=w>>24&255,e=128&t?t-256:t;if(0>e)throw new d("process error:"+e)}const p=c(this.Me);if(0===p)break;f+=p}}catch(t){o(this),n.error(t)}},flush(e){try{const n=new w(Ai.buffer),s=this.ke,i=this.Ue,a=this.Re;for(;;){const o=s(this.Me,0,0,i,r,4),c=16777215&o,l=o>>24&255;if(!t){const t=128&l?l-256:l;if(0>t)throw new d("process error:"+t)}if(c&&(a.set(n.subarray(i,i+c),0),e.enqueue(a.slice(0,c))),1===l||0===c)break}}catch(t){e.error(t)}finally{const t=o(this);0!==t&&e.error(new d("end error:"+t))}},cancel(){o(this)}});function o(t){let e=0;return t.Me&&t.De&&(e=t.De(t.Me)),t.Me=0,t.in&&Vi&&Vi(t.in),t.in=0,t.Ue&&Vi&&Vi(t.Ue),t.Ue=0,e}}class ji{constructor(t="deflate",e){return Zi(!0,t,e)}}class Pi{constructor(t="deflate",e){return Zi(!1,t,e)}}ji.St=!0,Pi.St=!0;let qi,Xi=!1;(t=>{let e;t({wasmURI:()=>(e||(e="data:application/wasm;base64,"+(t=>{let e="";const n=t.length;let s=0;for(;n>s+2;s+=3){const n=t[s]<<16|t[s+1]<<8|t[s+2];e+=Ii[n>>18&63]+Ii[n>>12&63]+Ii[n>>6&63]+Ii[63&n]}const r=n-s;if(1===r){const n=t[s]<<16;e+=Ii[n>>18&63]+Ii[n>>12&63]+"=="}else if(2===r){const n=t[s]<<16|t[s+1]<<8;e+=Ii[n>>18&63]+Ii[n>>12&63]+Ii[n>>6&63]+"="}return e})((t=>{let e=0,n=0,s=0,r=new w(1024),i=0,a=0;for(;!a;){a=c(1);const t=c(2);if(0==t)l();else if(1==t)u(Oi(Ti),Oi(Li));else{if(2!=t)throw d("invalid deflate block type");u(...f())}}return r.subarray(0,i);function o(){if(e>=t.length)throw d("unexpected end of deflate data");return t[e++]}function c(t){for(;t>s;)n|=o()<<s,s+=8;const e=n&(1<<t)-1;return n>>>=t,s-=t,e}function l(){n=0,s=0;const t=o()|o()<<8;e+=2,p(i+t);for(let e=0;t>e;e++)r[i++]=o()}function u(t,e){let n=h(t);for(;256!=n;){if(256>n)p(i+1),r[i++]=n;else{const t=n-257,s=ki[t]+c(Ei[t]),a=h(e),o=Di[a]+c(Mi[a]);p(i+s);const l=i-o;for(let t=0;s>t;t++)r[i++]=r[l+t]}n=h(t)}}function f(){const t=c(5)+257,e=c(5)+1,n=c(4)+4,s=new w(19);for(let t=0;n>t;t++)s[Ni[t]]=c(3);const r=Oi(s),i=new w(t+e);let a=0;for(;a<i.length;){const t=h(r);if(16>t)i[a++]=t;else if(16==t){const t=i[a-1];let e=c(2)+3;for(;e--;)i[a++]=t}else a+=17==t?c(3)+3:c(7)+11}return[Oi(i.subarray(0,t)),Oi(i.subarray(t))]}function h(t){const{ve:e,symbols:n}=t;let s=0,r=0,i=0;for(let t=1;15>=t;t++){s|=c(1);const a=e[t];if(a>s-r)return n[i+(s-r)];i+=a,r=r+a<<1,s<<=1}throw d("invalid huffman code")}function p(t){if(r.length<t){let e=2*r.length;for(;t>e;)e*=2;const n=new w(e);n.set(r.subarray(0,i)),r=n}}})((t=>{const e=(t=(t+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,n=[];for(let s=0;e>s;s+=4){const e=Ii.indexOf(t[s])<<18|Ii.indexOf(t[s+1])<<12|(63&Ii.indexOf(t[s+2]))<<6|63&Ii.indexOf(t[s+3]);n.push(e>>16&255),"="!==t[s+2]&&n.push(e>>8&255),"="!==t[s+3]&&n.push(255&e)}return new w(n)})("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")))),e)})})(ft),(({Ne:t})=>{Ae=t})({Ne:t=>{if(!qi){let{wasmURI:e}=t;typeof e==nt&&(e=e()),qi=(async(t,{baseURI:e})=>{if(!Xi){let n,s;try{try{s=new f(t,e)}catch{}const r=await fetch(s);n=await r.arrayBuffer()}catch(e){if(!t.startsWith("data:application/wasm;base64,"))throw e;n=(t=>{const e=t.split(",")[1],n=atob(e),s=n.length,r=new w(s);for(let t=0;s>t;++t)r[t]=n.charCodeAt(t);return r.buffer})(t)}(t=>{if(Ci=t,({malloc:Wi,free:Vi,memory:Ai}=Ci),"function"!=typeof Wi||"function"!=typeof Vi||!Ai)throw Ci=Wi=Vi=Ai=null,new d("Invalid WASM module")})((await WebAssembly.instantiate(n)).instance.exports),Xi=!0}})(e,t)}return qi}}),ft({CompressionStreamZlib:ji,DecompressionStreamZlib:Pi}),(t=>{const e='(t=>{"function"==typeof define&&define.amd?define(t):t()})(function(){"use strict";const{Array:t,Object:e,Number:n,Math:s,Error:r,Uint8Array:o,Uint16Array:i,Uint32Array:c,Int32Array:a,Map:f,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:p,TransformStream:d,ReadableStream:y,WritableStream:m,CompressionStream:g,DecompressionStream:v}=self,b=void 0,S="undefined",k="function",z=new o,C=[[],[],[],[],[],[],[],[]];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)e=1&e?e>>>1^3988292384:e>>>1;C[0][t]=e}for(let t=0;256>t;t++)for(let e=1;8>e;e++){const n=C[e-1][t];C[e][t]=n>>>8^C[0][255&n]}const[A,I,x,P,R,U,M,_]=C;class B{constructor(t){this.o=t||-1}append(t){let e=0|this.o;const n=0|t.length;let s=0;if(n>=8&&t.buffer){const r=new l(t.buffer,t.byteOffset,n),o=n-8;for(;o>=s;s+=8){const t=e^r.getInt32(s,!0),n=r.getInt32(s+4,!0);e=_[255&t]^M[t>>>8&255]^U[t>>>16&255]^R[t>>>24&255]^P[255&n]^x[n>>>8&255]^I[n>>>16&255]^A[n>>>24&255]}}for(;n>s;s++)e=e>>>8^A[255&(e^t[s])];this.o=e}get(){return~this.o}}class D extends d{constructor(){let t;const e=new B;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new o(4);new l(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function V(t,e){const n=new o(t.length+e.length);return n.set(t),n.set(e,t.length),n}const W={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],s=W.l(n);return 32===s?t.concat(e):W.h(e,s,0|n,t.slice(0,t.length-1))},m(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+W.l(n)},v(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,s.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=W.S(e,t[n-1]&2147483648>>e-1,1)),t},S:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,l:t=>s.round(t/1099511627776)||32,h(t,e,n,s){for(void 0===s&&(s=[]);e>=32;e-=32)s.push(n),n=0;if(0===e)return s.concat(t);for(let r=0;r<t.length;r++)s.push(n|t[r]>>>e),n=t[r]<<32-e;const r=t.length?t[t.length-1]:0,o=W.l(r);return s.push(W.S(e+o&31,e+o>32?n:s.pop(),1)),s}},K={bytes:{C(t){const e=W.m(t)/8,n=new o(e);let s;for(let r=0;e>r;r++)3&r||(s=t[r/4]),n[r]=s>>>24,s<<=8;return n},A(t){const e=[];let n,s=0;for(n=0;n<t.length;n++)s=s<<8|t[n],3&~n||(e.push(s),s=0);return 3&n&&e.push(W.S(8*(3&n),s)),e}}},E=class{constructor(t){const e=this;e.blockSize=512,e.I=[1732584193,4023233417,2562383102,271733878,3285377520],e.P=[1518500249,1859775393,2400959708,3395469782],t?(e.R=t.R.slice(0),e.U=t.U.slice(0),e.M=t.M):e.reset()}reset(){const t=this;return t.R=t.I.slice(0),t.U=[],t.M=0,t}update(t){const e=this;"string"==typeof t&&(t=K._.A(t));const n=e.U=W.concat(e.U,t),s=e.M,o=e.M=s+W.m(t);if(o>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const i=new c(n);let a=0;for(let t=e.blockSize+s-(e.blockSize+s&e.blockSize-1);o>=t;t+=e.blockSize)e.B(i.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),e}D(){const t=this;let e=t.U;const n=t.R;e=W.concat(e,[W.S(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(s.floor(t.M/4294967296)),e.push(0|t.M);e.length;)t.B(e.splice(0,16));return t.reset(),n}V(t,e,n,s){return t>19?t>39?t>59?t>79?void 0:e^n^s:e&n|e&s|n&s:e^n^s:e&n|~e&s}W(t,e){return e<<t|e>>>32-t}B(e){const n=this,r=n.R,o=t(80);for(let t=0;16>t;t++)o[t]=e[t];let i=r[0],c=r[1],a=r[2],f=r[3],l=r[4];for(let t=0;79>=t;t++){16>t||(o[t]=n.W(1,o[t-3]^o[t-8]^o[t-14]^o[t-16]));const e=n.W(5,i)+n.V(t,c,a,f)+l+o[t]+n.P[s.floor(t/20)]|0;l=f,f=a,a=n.W(30,c),c=i,i=e}r[0]=r[0]+i|0,r[1]=r[1]+c|0,r[2]=r[2]+a|0,r[3]=r[3]+f|0,r[4]=r[4]+l|0}},L={importKey:t=>new L.K(K.bytes.A(t)),L(t,e,n,s){if(n=n||1e4,0>s||0>n)throw new r("invalid params to pbkdf2");const o=1+(s>>5)<<2;let i,c,a,f,u;const w=new ArrayBuffer(o),h=new l(w);let p=0;const d=W;for(e=K.bytes.A(e),u=1;(o||1)>p;u++){for(i=c=t.encrypt(d.concat(e,[u])),a=1;n>a;a++)for(c=t.encrypt(c),f=0;f<c.length;f++)i[f]^=c[f];for(a=0;(o||1)>p&&a<i.length;a++)h.setInt32(p,i[a]),p+=4}return w.slice(0,s/8)},K:class{constructor(t){const e=this,n=e.O=E,s=[[],[]];e.T=[new n,new n];const r=e.T[0].blockSize/32;t.length>r&&(t=(new n).update(t).D());for(let e=0;r>e;e++)s[0][e]=909522486^t[e],s[1][e]=1549556828^t[e];e.T[0].update(s[0]),e.T[1].update(s[1]),e.j=new n(e.T[0])}reset(){const t=this;t.j=new t.O(t.T[0]),t.H=!1}update(t){this.H=!0,this.j.update(t)}digest(){const t=this,e=t.j.D(),n=new t.O(t.T[1]).update(e).D();return t.reset(),n}encrypt(t){if(this.H)throw new r("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},O=typeof h!=S&&typeof h.getRandomValues==k,T="Invalid password",j="Invalid signature",H="zipjs-abort-check-password";function Z(t){if(O)return h.getRandomValues(t);throw new r("Crypto API not supported")}const F=16,N={name:"PBKDF2"},q=e.assign({hash:{name:"HMAC"}},N),G=e.assign({iterations:1e3,hash:{name:"SHA-1"}},N),J=["deriveBits"],Q=[8,12,16],X=[16,24,32],Y=10,$=[0,0,0,0],tt=typeof h!=S,et=tt&&h.subtle,nt=tt&&typeof et!=S,st=K.bytes,rt=class{constructor(t){const e=this;e.Z=[[[],[],[],[],[]],[[],[],[],[],[]]],e.Z[0][0][0]||e.F();const n=e.Z[0][4],s=e.Z[1],o=t.length;let i,c,a,f=1;if(4!==o&&6!==o&&8!==o)throw new r("invalid aes key size");for(e.P=[c=t.slice(0),a=[]],i=o;4*o+28>i;i++){let t=c[i-1];(i%o===0||8===o&&i%o===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],i%o===0&&(t=t<<8^t>>>24^f<<24,f=f<<1^283*(f>>7))),c[i]=c[i-o]^t}for(let t=0;i;t++,i--){const e=c[3&t?i:i-4];a[t]=4>=i||4>t?e:s[0][n[e>>>24]]^s[1][n[e>>16&255]]^s[2][n[e>>8&255]]^s[3][n[255&e]]}}encrypt(t){return this.N(t,0)}decrypt(t){return this.N(t,1)}F(){const t=this.Z[0],e=this.Z[1],n=t[4],s=e[4],r=[],o=[];let i,c,a,f;for(let t=0;256>t;t++)o[(r[t]=t<<1^283*(t>>7))^t]=t;for(let l=i=0;!n[l];l^=c||1,i=o[i]||1){let o=i^i<<1^i<<2^i<<3^i<<4;o=o>>8^255&o^99,n[l]=o,s[o]=l,f=r[a=r[c=r[l]]];let u=16843009*f^65537*a^257*c^16843008*l,w=257*r[o]^16843008*o;for(let n=0;4>n;n++)t[n][l]=w=w<<24^w>>>8,e[n][o]=u=u<<24^u>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}N(t,e){if(4!==t.length)throw new r("invalid aes block size");const n=this.P[e],s=n.length/4-2,o=[0,0,0,0],i=this.Z[e],c=i[0],a=i[1],f=i[2],l=i[3],u=i[4];let w,h,p,d=t[0]^n[0],y=t[e?3:1]^n[1],m=t[2]^n[2],g=t[e?1:3]^n[3],v=4;for(let t=0;s>t;t++)w=c[d>>>24]^a[y>>16&255]^f[m>>8&255]^l[255&g]^n[v],h=c[y>>>24]^a[m>>16&255]^f[g>>8&255]^l[255&d]^n[v+1],p=c[m>>>24]^a[g>>16&255]^f[d>>8&255]^l[255&y]^n[v+2],g=c[g>>>24]^a[d>>16&255]^f[y>>8&255]^l[255&m]^n[v+3],v+=4,d=w,y=h,m=p;for(let t=0;4>t;t++)o[e?3&-t:t]=u[d>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&g]^n[v++],w=d,d=y,y=m,m=g,g=w;return o}},ot=class{constructor(t,e){this.G=t,this.J=e,this.X=e}reset(){this.X=this.J}update(t){return this.Y(this.G,t,this.X)}$(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,s=255&t;255===e?(e=0,255===n?(n=0,255===s?s=0:++s):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=s}return t}et(t){0===(t[0]=this.$(t[0]))&&(t[1]=this.$(t[1]))}Y(t,e,n){let s;if(!(s=e.length))return[];const r=W.m(e);for(let r=0;s>r;r+=4){this.et(n);const s=t.encrypt(n);e[r]^=s[0],e[r+1]^=s[1],e[r+2]^=s[2],e[r+3]^=s[3]}return W.v(e,r)}},it=L.K;let ct=tt&&nt&&typeof et.importKey==k,at=tt&&nt&&typeof et.deriveBits==k;class ft extends d{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:s}){super({start(){ut(this,t,e,n)},async transform(t,e){const n=this,{password:i,strength:c,nt:a,ready:f}=n;i?(await(async(t,e,n,s)=>{const o=await ht(t,e,n,dt(s,0,Q[e])),i=dt(s,Q[e]);if(o[0]!=i[0]||o[1]!=i[1])throw new r(T)})(n,c,i,dt(t,0,Q[c]+2)),t=dt(t,Q[c]+2),s?e.error(new r(H)):a()):await f;const l=new o(t.length-Y-(t.length-Y)%F);e.enqueue(wt(n,t,l,0,Y,!0))},async flush(t){const{st:e,ot:n,pending:s,ready:o}=this;if(n&&e){await o;const i=dt(s,0,s.length-Y),c=dt(s,s.length-Y);let a=z;if(i.length){const t=mt(st,i);n.update(t);const s=e.update(t);a=yt(st,s)}const f=dt(yt(st,n.digest()),0,Y);let l=s.length<Y?1:0;for(let t=0;Y>t;t++)l|=f[t]^c[t];if(l)throw new r(j);t.enqueue(a)}}})}}class lt extends d{constructor({password:t,rawPassword:e,encryptionStrength:n}){let s;super({start(){ut(this,t,e,n)},async transform(t,e){const n=this,{password:s,strength:r,nt:i,ready:c}=n;let a=z;s?(a=await(async(t,e,n)=>{const s=Z(new o(Q[e]));return V(s,await ht(t,e,n,s))})(n,r,s),i()):await c;const f=new o(a.length+t.length-t.length%F);f.set(a,0),e.enqueue(wt(n,t,f,a.length,0))},async flush(t){const{st:e,ot:n,pending:r,ready:o}=this;if(n&&e){await o;let i=z;if(r.length){const t=e.update(mt(st,r));n.update(t),i=yt(st,t)}s.signature=yt(st,n.digest()).slice(0,Y),t.enqueue(V(i,s.signature))}}}),s=this}}function ut(t,n,s,r){e.assign(t,{ready:new u(e=>t.nt=e),password:pt(n,s),strength:r-1,pending:z})}function wt(t,e,n,s,r,i){const{st:c,ot:a,pending:f}=t;f.length&&(e=V(f,e));const l=e.length-r;let u;for(n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new o(e)).set(n,0)}return t})(n,s+(l-l%F)),u=0;l-F>=u;u+=F){const t=mt(st,dt(e,u,u+F));i&&a.update(t);const r=c.update(t);i||a.update(r),n.set(yt(st,r),u+s)}return t.pending=dt(e,u),n}async function ht(n,s,r,i){n.password=null;const c=await(async(t,e,n,s,r)=>{if(!ct)return L.importKey(e);try{return await et.importKey("raw",e,n,!1,r)}catch{return ct=!1,L.importKey(e)}})(0,r,q,0,J),a=await(async(t,e,n)=>{if(!at)return L.L(e,t.salt,G.iterations,n);try{return await et.deriveBits(t,e,n)}catch{return at=!1,L.L(e,t.salt,G.iterations,n)}})(e.assign({salt:i},G),c,8*(2*X[s]+2)),f=new o(a),l=mt(st,dt(f,0,X[s])),u=mt(st,dt(f,X[s],2*X[s])),w=dt(f,2*X[s]);return e.assign(n,{keys:{key:l,it:u,passwordVerification:w},st:new ot(new rt(l),t.from($)),ot:new it(u)}),w}function pt(t,e){return e===b?(t=>{if(typeof w==S){const e=new o((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new w).encode(t)})(t):e}function dt(t,e,n){return t.subarray(e,n)}function yt(t,e){return t.C(e)}function mt(t,e){return t.A(e)}class gt extends d{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:s}){super({start(){bt(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=St(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e.at(-1)^n.passwordVerification))throw new r(T);t=t.subarray(12)}s?e.error(new r(H)):e.enqueue(St(n,t))}})}}class vt extends d{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){bt(this,t,e,n)},transform(t,e){const n=this;let s,r;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=Z(new o(12));e[11]=n.passwordVerification,s=new o(t.length+e.length),s.set(kt(n,e),0),r=12}else s=new o(t.length),r=0;s.set(kt(n,t),r),e.enqueue(s)}})}}function bt(t,n,s,r){e.assign(t,{password:n,rawPassword:s,passwordVerification:r}),((t,n,s)=>{const r=[305419896,591751049,878082192];if(e.assign(t,{keys:r,ct:new B(r[0]),ft:new B(r[2])}),s)for(let e=0;e<s.length;e++)zt(t,s[e]);else for(let e=0;e<n.length;e++)zt(t,n.charCodeAt(e))})(t,n,s)}function St(t,e){const n=new o(e.length);for(let s=0;s<e.length;s++)n[s]=Ct(t)^e[s],zt(t,n[s]);return n}function kt(t,e){const n=new o(e.length);for(let s=0;s<e.length;s++)n[s]=Ct(t)^e[s],zt(t,e[s]);return n}function zt(t,e){let[,n]=t.keys;t.ct.append([e]);const r=~t.ct.get();n=It(s.imul(It(n+At(r)),134775813)+1),t.ft.append([n>>>24]);const o=~t.ft.get();t.keys=[r,n,o]}function Ct(t){const e=2|t.keys[2];return At(s.imul(e,1^e)>>>8)}function At(t){return 255&t}function It(t){return 4294967295&t}class xt extends d{constructor(t,{chunkSize:e,CompressionStreamZlib:n,CompressionStream:s}){super({});const{compressed:r,encrypted:o,useCompressionStream:i,zipCrypto:c,signed:a,level:f,deflate64:u}=t,w=this;let h,p,d,y=super.readable;const m=a&&r&&!u&&(!o||c)&&!(!i||!s);o&&!c||!a||m||(h=new D,y=_t(y,h)),r&&(m?(d=new Pt,y=Bt(y,new s("gzip")),y=_t(y,d)):y=Mt(y,i,{level:f,chunkSize:e},s,n,s)),o&&(c?y=_t(y,new vt(t)):(p=new lt(t),y=_t(y,p))),Ut(w,y,()=>{let t;o&&!c&&(t=p.signature),o&&!c||!a||(t=m?d.signature:new l(h.value.buffer).getUint32(0)),w.signature=t})}}class Pt extends d{constructor(){let t,e=10,n=new o(0);super({transform(t,r){if(e){const n=s.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const o=n.length+t.length;if(8>=o)return void(n=V(n,t));const i=o-8,c=s.min(i,n.length);r.enqueue(V(n.subarray(0,c),t.subarray(0,i-c))),n=V(n.subarray(c),t.subarray(i-c))},flush(){const e=new l((s=n).buffer,s.byteOffset,s.byteLength);var s;t.signature=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class Rt extends d{constructor(t,{chunkSize:e,DecompressionStreamZlib:n,DecompressionStream:s}){super({});const{zipCrypto:o,encrypted:i,signed:c,signature:a,compressed:f,useCompressionStream:u,deflate64:w}=t;let h,p,d=super.readable;i&&(o?d=_t(d,new gt(t)):(p=new ft(t),d=_t(d,p))),f&&(d=Mt(d,u,{chunkSize:e,deflate64:w},s,n,s),d=(t=>{const e=t.getReader();return new y({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new r("Invalid compressed data");throw e.cause=t,e}const{value:s,done:o}=n;o?t.close():t.enqueue(s)},cancel:t=>e.cancel(t)})})(d)),i&&!o||!c||(h=new D,d=_t(d,h)),Ut(this,d,()=>{if((!i||o)&&c){const t=new l(h.value.buffer);if(a!=t.getUint32(0,!1))throw new r(j)}})}}function Ut(t,n,s){n=_t(n,new d({flush:s})),e.defineProperty(t,"readable",{get:()=>n})}function Mt(t,e,n,s,r,o){const i=e&&s?s:r||o,c=n.deflate64?"deflate64-raw":"deflate-raw";let a;try{a=new i(c,n)}catch(t){if(!e)throw t;if(r)a=new r(c,n);else{if(!o)throw t;a=new o(c,n)}}return Bt(t,a)}function _t(t,e){return t.pipeThrough(e)}function Bt(t,e){const n=e.writable.getWriter(),s=t.getReader();return(async()=>{try{for(;;){await n.ready;const t=await s.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await(async(t,e)=>{try{await t.abort(e)}catch{}})(n,t),await(async(t,e)=>{try{await t.cancel(e)}catch{}})(s,t)}})(),e.readable}const Dt="data",Vt="close";class Wt extends d{constructor(t,n){super({});const s=this,{codecType:o}=t;let i;o.startsWith("deflate")?i=xt:o.startsWith("inflate")&&(i=Rt),s.outputSize=0;let c=0;const a=new i(t,n),f=super.readable,l=new d({transform(t,e){t&&t.length&&(c+=t.length,e.enqueue(t))},flush(){e.assign(s,{inputSize:c})}}),u=new d({transform(e,n){if(e&&e.length&&(n.enqueue(e),s.outputSize+=e.length,t.outputSize!==b&&s.outputSize>t.outputSize))throw new r("Invalid uncompressed size")},flush(){const{signature:t}=a;e.assign(s,{signature:t,inputSize:c})}});e.defineProperty(s,"readable",{get:()=>f.pipeThrough(l).pipeThrough(a).pipeThrough(u)})}}class Kt extends d{constructor(t){const e=[];let s=0;function r(){const n=new o(t);let r=0;for(;t>r;){const s=e[0],o=t-r;s.length>o?(n.set(s.subarray(0,o),r),e[0]=s.subarray(o),r+=o):(n.set(s,r),r+=s.length,e.shift())}return s-=t,n}n.isFinite(t)&&t>=1||(t=65536),super({transform(n,o){for(e.push(n),s+=n.length;s>t;)o.enqueue(r())},flush(t){s&&t.enqueue(((t,e)=>{const n=new o(e);let s=0;for(const e of t)n.set(e,s),s+=e.length;return n})(e,s))}})}}let Et=2;try{typeof navigator!=S&&navigator.hardwareConcurrency&&(Et=navigator.hardwareConcurrency)}catch{}const Lt=new f,Ot=new f;let Tt,jt,Ht,Zt,Ft,Nt=0;async function qt(t){let e,r;try{const{options:o,config:i}=t;if(!o.useCompressionStream)try{await self.initModule(t.config)}catch{o.useCompressionStream=!0}i.CompressionStream=self.CompressionStream,i.DecompressionStream=self.DecompressionStream;const c={highWaterMark:1},a=t.readable||new y({async pull(t){const e=new u(t=>Lt.set(Nt,t));Gt({type:"pull",messageId:Nt}),Nt=(Nt+1)%n.MAX_SAFE_INTEGER;const{value:s,done:r}=await e;t.enqueue(s),r&&t.close()}},c);r=t.writable||new m({async write(t){let e;const s=new u(t=>e=t);Ot.set(Nt,e),Gt({type:Dt,value:t,messageId:Nt}),Nt=(Nt+1)%n.MAX_SAFE_INTEGER,await s}},c),e=new Wt(o,i),Tt=new AbortController;const{signal:f}=Tt;await a.pipeThrough(e).pipeThrough(new Kt((t=>s.max(t.chunkSize,64))(i))).pipeTo(r,{signal:f,preventClose:!0,preventAbort:!0}),await r.getWriter().close();const{signature:l,inputSize:w,outputSize:h}=e;Gt({type:Vt,result:{signature:l,inputSize:w,outputSize:h}})}catch(t){if(t.outputSize=e?e.outputSize:0,r&&!r.locked)try{await r.getWriter().close()}catch{}Jt(t)}}function Gt(t){let{value:e}=t;if(e)if(e.length)try{t.value=(n=e,n.byteOffset||n.byteLength!=n.buffer.byteLength?new o(n):n).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var n}function Jt(t=new r("Unknown error")){const{message:e,stack:n,code:s,name:o,outputSize:i}=t;p({error:{message:e,stack:n,code:s,name:o,outputSize:i}})}function Qt(t,e,n={}){const i="number"==typeof n.level?n.level:-1,c="number"==typeof n.outBuffer?n.outBuffer:65536,a="number"==typeof n.inBufferSize?n.inBufferSize:65536;return new d({start(){try{let n;if(this.lt=Ht(c),this.in=Ht(a),this.inBufferSize=a,!this.lt||!this.in)throw new r("allocation failed");if(this.ut=new o(c),t?(this.wt=jt.deflate_process,this.ht=jt.deflate_last_consumed,this.yt=jt.deflate_end,this.gt=jt.deflate_new(),n="gzip"===e?jt.deflate_init_gzip(this.gt,i):"deflate-raw"===e?jt.deflate_init_raw(this.gt,i):jt.deflate_init(this.gt,i)):"deflate64-raw"===e?(this.wt=jt.inflate9_process,this.ht=jt.inflate9_last_consumed,this.yt=jt.inflate9_end,this.gt=jt.inflate9_new(),n=jt.inflate9_init_raw(this.gt)):(this.wt=jt.inflate_process,this.ht=jt.inflate_last_consumed,this.yt=jt.inflate_end,this.gt=jt.inflate_new(),n="deflate-raw"===e?jt.inflate_init_raw(this.gt):"gzip"===e?jt.inflate_init_gzip(this.gt):jt.inflate_init(this.gt)),0!==n)throw new r("init failed:"+n)}catch(t){throw f(this),t}},transform(e,n){try{const i=e,a=new o(Ft.buffer),f=this.wt,l=this.ht,u=this.lt,w=this.ut;let h=0;for(;h<i.length;){const e=s.min(i.length-h,32768);if((!this.in||this.inBufferSize<e)&&(this.in&&Zt&&(Zt(this.in),this.in=0),this.in=Ht(e),this.inBufferSize=e,!this.in))throw new r("allocation failed");a.set(i.subarray(h,h+e),this.in);const o=f(this.gt,this.in,e,u,c,0),p=16777215&o;if(p&&(w.set(a.subarray(u,u+p),0),n.enqueue(w.slice(0,p))),!t){const t=o>>24&255,e=128&t?t-256:t;if(0>e)throw new r("process error:"+e)}const d=l(this.gt);if(0===d)break;h+=d}}catch(t){f(this),n.error(t)}},flush(e){try{const n=new o(Ft.buffer),s=this.wt,i=this.lt,a=this.ut;for(;;){const o=s(this.gt,0,0,i,c,4),f=16777215&o,l=o>>24&255;if(!t){const t=128&l?l-256:l;if(0>t)throw new r("process error:"+t)}if(f&&(a.set(n.subarray(i,i+f),0),e.enqueue(a.slice(0,f))),1===l||0===f)break}}catch(t){e.error(t)}finally{const t=f(this);0!==t&&e.error(new r("end error:"+t))}},cancel(){f(this)}});function f(t){let e=0;return t.gt&&t.yt&&(e=t.yt(t.gt)),t.gt=0,t.in&&Zt&&Zt(t.in),t.in=0,t.lt&&Zt&&Zt(t.lt),t.lt=0,e}}addEventListener("message",({data:t})=>{const{type:e,messageId:n,value:s,done:r}=t;try{if("start"==e&&qt(t),e==Dt){const t=Lt.get(n);Lt.delete(n),t({value:s||new o,done:r})}if("ack"==e){const t=Ot.get(n);Ot.delete(n),t()}e==Vt&&Tt.abort()}catch(t){Jt(t)}});class Xt{constructor(t="deflate",e){return Qt(!0,t,e)}}class Yt{constructor(t="deflate",e){return Qt(!1,t,e)}}Xt.vt=!0,Yt.vt=!0;let $t=!1;self.initModule=async t=>{try{const e=await(async(t,{baseURI:e})=>{if(!$t){let n,s;try{try{s=new URL(t,e)}catch{}const r=await fetch(s);n=await r.arrayBuffer()}catch(e){if(!t.startsWith("data:application/wasm;base64,"))throw e;n=(t=>{const e=t.split(",")[1],n=atob(e),s=n.length,r=new o(s);for(let t=0;s>t;++t)r[t]=n.charCodeAt(t);return r.buffer})(t)}(t=>{if(jt=t,({malloc:Ht,free:Zt,memory:Ft}=jt),"function"!=typeof Ht||"function"!=typeof Zt||!Ft)throw jt=Ht=Zt=Ft=null,new r("Invalid WASM module")})((await WebAssembly.instantiate(n)).instance.exports),$t=!0}})(t.wasmURI,t);return t.CompressionStreamZlib=Xt,t.DecompressionStreamZlib=Yt,e}catch{}}});\n';t({workerURI:t=>{const n="text/javascript";if(t){const t=new y([e],{type:n});return f.createObjectURL(t)}return"data:"+n+","+encodeURIComponent(e)}})})(ft),t.BlobReader=vn,t.BlobWriter=Un,t.Data64URIReader=class extends zn{constructor(t){super();let e=t.length;for(;"="==t.charAt(e-1);)e--;const s=t.indexOf(",")+1;n.assign(this,{dataURI:t,Te:s,size:a.floor(.75*(e-s))})}readUint8Array(t,e){const{Te:n,dataURI:s}=this,r=new w(e),i=4*a.floor(t/3),o=atob(s.substring(i+n,4*a.ceil((t+e)/3)+n)),c=t-3*a.floor(i/4);let l=0;for(let t=c;c+e>t&&t<o.length;t++)r[t-c]=o.charCodeAt(t),l++;return l<r.length?r.subarray(0,l):r}},t.Data64URIWriter=class extends Sn{constructor(t){super(),n.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){const e=this;let n,r=e.pending;const i=e.pending.length;for(e.pending="",n=0;n<3*a.floor((i+t.length)/3)-i;n++)r+=s.fromCharCode(t[n]);for(;n<t.length;n++)e.pending+=s.fromCharCode(t[n]);r.length>2?e.data+=F(r):e.pending=r+e.pending}getData(){return this.data+F(this.pending)}},t.ERR_AMBIGUOUS_ARCHIVE=nr,t.ERR_BAD_FORMAT=Gs,t.ERR_CENTRAL_DIRECTORY_NOT_FOUND=Bs,t.ERR_DUPLICATED_NAME=Or,t.ERR_ENCRYPTED=Js,t.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=Hs,t.ERR_EOCDR_NOT_FOUND=Ys,t.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=Ks,t.ERR_HTTP_RANGE=cn,t.ERR_HTTP_RESOURCE_CHANGED=ln,t.ERR_INVALID_COMMENT=Ir,t.ERR_INVALID_COMPRESSED_DATA=be,t.ERR_INVALID_ENCRYPTION_STRENGTH=Ar,t.ERR_INVALID_ENTRY_COMMENT=Cr,t.ERR_INVALID_ENTRY_NAME=Wr,t.ERR_INVALID_EXTRAFIELD_DATA=jr,t.ERR_INVALID_EXTRAFIELD_TYPE=Zr,t.ERR_INVALID_PASSWORD=Tt,t.ERR_INVALID_SIGNATURE=Lt,t.ERR_INVALID_UNCOMPRESSED_SIZE=ge,t.ERR_INVALID_VERSION=Vr,t.ERR_ITERATOR_COMPLETED_TOO_SOON=un,t.ERR_LOCAL_FILE_HEADER_NOT_FOUND=Qs,t.ERR_OVERLAPPING_ENTRY=er,t.ERR_SPLIT_ZIP_FILE=tr,t.ERR_UNDEFINED_READER=Yr,t.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Gr,t.ERR_UNSUPPORTED_COMPRESSION=$s,t.ERR_UNSUPPORTED_ENCRYPTION=_s,t.ERR_UNSUPPORTED_FORMAT=Xr,t.ERR_WRITER_NOT_INITIALIZED=fn,t.ERR_ZIP_NOT_EMPTY=Hr,t.HttpRangeReader=class extends qn{constructor(t,e={}){super(t,n.assign({},e,{useRangeHeader:!0}))}},t.HttpReader=qn,t.Reader=zn,t.SplitDataReader=Xn,t.SplitDataWriter=Gn,t.TextReader=class extends vn{constructor(t){super(new y([t],{type:"text/plain"}))}},t.TextWriter=class extends Un{constructor(t){super(t),n.assign(this,{encoding:t,Le:!t||"utf-8"==t.toLowerCase()})}async getData(){const{encoding:t,Le:e}=this,s=await super.getData();if(s.text&&e)return s.text();{const e=new FileReader;return new g((r,i)=>{n.assign(e,{onload:({target:t})=>r(t.result),onerror:()=>i(e.error)}),e.readAsText(s,t)})}}},t.Uint8ArrayReader=class extends zn{constructor(t){super(),t=new w(t.buffer,t.byteOffset,t.byteLength),n.assign(this,{array:t,size:t.length})}readUint8Array(t,e){return this.array.slice(t,t+e)}},t.Uint8ArrayWriter=class extends Sn{constructor(t){super(),this.defaultBufferSize=t||262144}init(t=0){n.assign(this,{offset:0,array:new w(t>0?t:this.defaultBufferSize)}),super.init()}writeUint8Array(t){const e=this,n=e.offset+t.length;if(n>e.array.length){let t=e.array.length?2*e.array.length:e.defaultBufferSize;for(;n>t;)t*=2;const s=e.array;e.array=new w(t),e.array.set(s)}e.array.set(t,e.offset),e.offset+=t.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},t.Writer=Sn,t.ZipReader=or,t.ZipReaderStream=cr,t.ZipWriter=$r,t.ZipWriterStream=class{constructor(t={}){const{readable:e,writable:n}=new v;this.readable=e,this.zipWriter=new $r(n,t),this.Ht=new l}transform(t){const e=this.zipWriter;let n;const{readable:s,writable:r}=new v({start(t){n=t},flush:()=>{(async()=>{try{await e.close()}catch(t){try{await e.writer.writable.abort(t)}catch{}}})()}});return ti(this,this.zipWriter.add(t,s),t=>n.error(t)),{readable:this.readable,writable:r}}writable(t){let e;const{readable:n,writable:s}=new v({start(t){e=t}});return ti(this,this.zipWriter.add(t,n),t=>e.error(t)),s}async close(t,n={}){return await g.all(e.from(this.Ht)),this.zipWriter.close(t,n)}},t.configure=ut,t.createBlobTempStream=(t={})=>{const{thresholdBytes:e=vi}=t;return()=>{const t=[];let n,s,r,i=0,a=!1;const o=new R({async write(r){a?await n.write(r):(t.push(r),i+=r.length,i>e&&await(async()=>{const e=new v;s=new u(e.readable).blob(),n=e.writable.getWriter(),a=!0;for(const e of t)await n.write(e);t.length=0})())},async close(){n&&(await n.close(),n=null)}});let c=0;return{writable:o,readable:new U({async pull(e){if(a){if(!r){const t=await s;r=t.stream().getReader()}const{value:t,done:n}=await r.read();n?e.close():e.enqueue(t)}else c<t.length?e.enqueue(t[c++]):e.close()},async cancel(t){r&&await r.cancel(t)}},{highWaterMark:0}),dispose:async()=>{if(n){try{await n.abort()}catch{}n=null}s&&(s.catch(()=>{}),s=null),t.length=0}}}},t.createOPFSTempStream=(t={})=>{const{thresholdBytes:e=xi,directoryName:n=Fi,getDirectory:s=()=>D.storage.getDirectory()}=t;let r;function i(){return r||(r=g.resolve(s()).then(t=>t.getDirectoryHandle(n,{create:!0}))),r}return()=>{const t=[];let n,s,r,a,o=0,c=!1;const l=new R({async write(a){c?await r.write(a):(t.push(a),o+=a.length,o>e&&await(async()=>{const e=await i();n=x.randomUUID(),s=await e.getFileHandle(n,{create:!0}),r=(await s.createWritable()).getWriter(),c=!0;for(const e of t)await r.write(e);t.length=0})())},async close(){r&&(await r.close(),r=null)}});let u=0;return{writable:l,readable:new U({async pull(e){if(c){if(!a){const t=await s.getFile();a=t.stream().getReader()}const{value:t,done:n}=await a.read();n?e.close():e.enqueue(t)}else u<t.length?e.enqueue(t[u++]):e.close()},async cancel(t){a&&await a.cancel(t)}},{highWaterMark:0}),dispose:async()=>{if(r){try{await r.close()}catch{}r=null}if(n){try{const t=await i();await t.removeEntry(n)}catch{}s=n=null}t.length=0}}}},t.createSyncAccessHandleTempStream=(t={})=>{const{thresholdBytes:e=Ui,directoryName:n=Ri,getDirectory:s}=t;if(!(s||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new d("createSyncAccessHandle is only available in dedicated workers");const r=s||(()=>D.storage.getDirectory());let i;function o(){return i||(i=g.resolve(r()).then(t=>t.getDirectoryHandle(n,{create:!0}))),i}return()=>{const t=[];let n,s,r=0,i=!1,c=0,l=0;const u=new R({async write(a){i?(s.write(a,{at:c}),c+=a.length):(t.push(a),r+=a.length,r>e&&await(async()=>{const e=await o();n=x.randomUUID();const r=await e.getFileHandle(n,{create:!0});s=await r.createSyncAccessHandle(),i=!0;for(const e of t)s.write(e,{at:c}),c+=e.length;t.length=0})())},close(){s&&s.flush()}});let f=0;return{writable:u,readable:new U({pull(e){if(i){const t=c-l;if(0>=t)return void e.close();const n=new w(a.min(524288,t)),r=s.read(n,{at:l});r?(l+=r,e.enqueue(n.subarray(0,r))):e.close()}else f<t.length?e.enqueue(t[f++]):e.close()}},{highWaterMark:0}),dispose:async()=>{if(s){try{s.close()}catch{}s=null}if(n){try{const t=await o();await t.removeEntry(n)}catch{}n=null}t.length=0}}}},t.getMimeType=()=>"application/octet-stream",t.resetConfiguration=()=>{for(const t of at)delete ot[t];n.assign(ot,it)},t.terminateWorkers=()=>{qi=null,(async()=>{await g.allSettled(Qe.map(t=>(an(t),t.terminate())))})(),Xi=!1}});
|