@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-legacy.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:n,String:r,Number:s,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:w,Error:u,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:b,TextEncoder:g,TextDecoder:z,document:x,crypto:F,btoa:S,TransformStream:v,ReadableStream:D,WritableStream:R,CompressionStream:T,DecompressionStream:E,navigator:C,Worker:U}="undefined"!=typeof globalThis?globalThis:this||self;var k=void 0!==x?x.currentScript:null;const A=4294967295,M=65535,Z=255,P=67324752,K=134695760,j=K,O=33639248,N=101010256,I=101075792,L=117853008,V=22,H=20,B=21589,W=2048,Y=16384,G=2048,X=1024,q="/",Q=30,J=new o(2107,11,31),_=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",ne="function",re=new f;let se=2;try{typeof C!=te&&C.hardwareConcurrency&&(se=C.hardwareConcurrency)}catch{}const ae={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof T!=te&&T,DecompressionStream:typeof E!=te&&E},ie=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","useCompressionStream","useWebWorkers","transferStreams","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],oe={...ae};function ce(){return oe}function le(e){return i.max(e.chunkSize,64)}function de(e){for(const t of ie){const n=e[t];n!==$&&(oe[t]=n)}}function we(e){for(const t of ie){const n=e[t];n!==$&&(ae[t]=n)}de(e)}const ue=[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],fe=[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],pe=[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],he=[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],me=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ye=new f(288);ye.fill(8,0,144),ye.fill(9,144,256),ye.fill(7,256,280),ye.fill(8,280,288);const be=new f(30).fill(5);function ge(e){const t=new p(16);for(const n of e)t[n]++;t[0]=0;const n=new p(17);for(let e=1;15>=e;e++)n[e+1]=n[e]+t[e];const r=new p(e.length);for(let t=0;t<e.length;t++)e[t]&&(r[n[e[t]]++]=t);return{o:t,symbols:r}}const ze="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",xe=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;xe[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const n=xe[t-1][e];xe[t][e]=n>>>8^xe[0][255&n]}const[Fe,Se,ve,De,Re,Te,Ee,Ce]=xe;class Ue{constructor(e){this.l=e||-1}append(e){let t=0|this.l;const n=0|e.length;let r=0;if(n>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,n),a=n-8;for(;a>=r;r+=8){const e=t^s.getInt32(r,!0),n=s.getInt32(r+4,!0);t=Ce[255&e]^Ee[e>>>8&255]^Te[e>>>16&255]^Re[e>>>24&255]^De[255&n]^ve[n>>>8&255]^Se[n>>>16&255]^Fe[n>>>24&255]}}for(;n>r;r++)t=t>>>8^Fe[255&(t^e[r])];this.l=t}get(){return~this.l}}class ke extends v{constructor(){let e;const t=new Ue;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new f(4);new m(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function Ae(e){if(typeof g==te){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new g).encode(e)}function Me(e,t){const n=new f(e.length+t.length);return n.set(e),n.set(t,e.length),n}function Ze(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function Pe(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const Ke={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=Ke.h(n);return 32===r?e.concat(t):Ke.m(t,r,0|n,e.slice(0,e.length-1))},F(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+Ke.h(n)},S(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=Ke.v(t,e[n-1]&2147483648>>t-1,1)),e},v:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,h:e=>i.round(e/1099511627776)||32,m(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=Ke.h(s);return r.push(Ke.v(t+a&31,t+a>32?n:r.pop(),1)),r}},je={bytes:{D(e){const t=Ke.F(e)/8,n=new f(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},R(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3&~n||(t.push(r),r=0);return 3&n&&t.push(Ke.v(8*(3&n),r)),t}}},Oe=class{constructor(e){const t=this;t.blockSize=512,t.T=[1732584193,4023233417,2562383102,271733878,3285377520],t.C=[1518500249,1859775393,2400959708,3395469782],e?(t.U=e.U.slice(0),t.A=e.A.slice(0),t.M=e.M):t.reset()}reset(){const e=this;return e.U=e.T.slice(0),e.A=[],e.M=0,e}update(e){const t=this;"string"==typeof e&&(e=je.Z.R(e));const n=t.A=Ke.concat(t.A,e),r=t.M,s=t.M=r+Ke.F(e);if(s>9007199254740991)throw new u("Cannot hash more than 2^53 - 1 bits");const a=new h(n);let i=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);s>=e;e+=t.blockSize)t.P(a.subarray(16*i,16*(i+1))),i+=1;return n.splice(0,16*i),t}K(){const e=this;let t=e.A;const n=e.U;t=Ke.concat(t,[Ke.v(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e.M/4294967296)),t.push(0|e.M);t.length;)e.P(t.splice(0,16));return e.reset(),n}j(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}O(e,t){return t<<e|t>>>32-e}P(e){const n=this,r=n.U,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=r[0],o=r[1],c=r[2],l=r[3],d=r[4];for(let e=0;79>=e;e++){16>e||(s[e]=n.O(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=n.O(5,a)+n.j(e,o,c,l)+d+s[e]+n.C[i.floor(e/20)]|0;d=l,l=c,c=n.O(30,o),o=a,a=t}r[0]=r[0]+a|0,r[1]=r[1]+o|0,r[2]=r[2]+c|0,r[3]=r[3]+l|0,r[4]=r[4]+d|0}},Ne={importKey:e=>new Ne.N(je.bytes.R(e)),I(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new u("invalid params to pbkdf2");const s=1+(r>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(s),w=new m(d);let f=0;const p=Ke;for(t=je.bytes.R(t),l=1;(s||1)>f;l++){for(a=i=e.encrypt(p.concat(t,[l])),o=1;n>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(s||1)>f&&o<a.length;o++)w.setInt32(f,a[o]),f+=4}return d.slice(0,r/8)},N:class{constructor(e){const t=this,n=t.L=Oe,r=[[],[]];t.V=[new n,new n];const s=t.V[0].blockSize/32;e.length>s&&(e=(new n).update(e).K());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.V[0].update(r[0]),t.V[1].update(r[1]),t.H=new n(t.V[0])}reset(){const e=this;e.H=new e.L(e.V[0]),e.B=!1}update(e){this.B=!0,this.H.update(e)}digest(){const e=this,t=e.H.K(),n=new e.L(e.V[1]).update(t).K();return e.reset(),n}encrypt(e){if(this.B)throw new u("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},Ie=typeof F!=te&&typeof F.getRandomValues==ne,Le="Invalid password",Ve="Invalid signature",He="zipjs-abort-check-password";function Be(e){if(Ie)return F.getRandomValues(e);throw new u("Crypto API not supported")}const We=16,Ye={name:"PBKDF2"},Ge=n.assign({hash:{name:"HMAC"}},Ye),Xe=n.assign({iterations:1e3,hash:{name:"SHA-1"}},Ye),qe=["deriveBits"],Qe=[8,12,16],Je=[16,24,32],_e=10,$e=[0,0,0,0],et=typeof F!=te,tt=et&&F.subtle,nt=et&&typeof tt!=te,rt=je.bytes,st=class{constructor(e){const t=this;t.W=[[[],[],[],[],[]],[[],[],[],[],[]]],t.W[0][0][0]||t.Y();const n=t.W[0][4],r=t.W[1],s=e.length;let a,i,o,c=1;if(4!==s&&6!==s&&8!==s)throw new u("invalid aes key size");for(t.C=[i=e.slice(0),o=[]],a=s;4*s+28>a;a++){let e=i[a-1];(a%s===0||8===s&&a%s===4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],a%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-s]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.G(e,0)}decrypt(e){return this.G(e,1)}Y(){const e=this.W[0],t=this.W[1],n=e[4],r=t[4],s=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!n[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[d]=a,r[a]=d,l=s[c=s[o=s[d]]];let w=16843009*l^65537*c^257*o^16843008*d,u=257*s[a]^16843008*a;for(let n=0;4>n;n++)e[n][d]=u=u<<24^u>>>8,t[n][a]=w=w<<24^w>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}G(e,t){if(4!==e.length)throw new u("invalid aes block size");const n=this.C[t],r=n.length/4-2,s=[0,0,0,0],a=this.W[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let w,f,p,h=e[0]^n[0],m=e[t?3:1]^n[1],y=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=i[h>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&b]^n[g],f=i[m>>>24]^o[y>>16&255]^c[b>>8&255]^l[255&h]^n[g+1],p=i[y>>>24]^o[b>>16&255]^c[h>>8&255]^l[255&m]^n[g+2],b=i[b>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&y]^n[g+3],g+=4,h=w,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[y>>8&255]<<8^d[255&b]^n[g++],w=h,h=m,m=y,y=b,b=w;return s}},at=class{constructor(e,t){this.X=e,this.J=t,this._=t}reset(){this._=this.J}update(e){return this.$(this.X,e,this._)}ee(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}te(e){0===(e[0]=this.ee(e[0]))&&(e[1]=this.ee(e[1]))}$(e,t,n){let r;if(!(r=t.length))return[];const s=Ke.F(t);for(let s=0;r>s;s+=4){this.te(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return Ke.S(t,s)}},it=Ne.N;let ot=et&&nt&&typeof tt.importKey==ne,ct=et&&nt&&typeof tt.deriveBits==ne;class lt extends v{constructor({password:e,rawPassword:t,encryptionStrength:n,checkPasswordOnly:r}){super({start(){wt(this,e,t,n)},async transform(e,t){const n=this,{password:s,strength:a,ne:i,ready:o}=n;s?(await(async(e,t,n,r)=>{const s=await ft(e,t,n,ht(r,0,Qe[t])),a=ht(r,Qe[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new u(Le)})(n,a,s,ht(e,0,Qe[a]+2)),e=ht(e,Qe[a]+2),r?t.error(new u(He)):i()):await o;const c=new f(e.length-_e-(e.length-_e)%We);t.enqueue(ut(n,e,c,0,_e,!0))},async flush(e){const{re:t,se:n,pending:r,ready:s}=this;if(n&&t){await s;const a=ht(r,0,r.length-_e),i=ht(r,r.length-_e);let o=re;if(a.length){const e=yt(rt,a);n.update(e);const r=t.update(e);o=mt(rt,r)}const c=ht(mt(rt,n.digest()),0,_e);let l=r.length<_e?1:0;for(let e=0;_e>e;e++)l|=c[e]^i[e];if(l)throw new u(Ve);e.enqueue(o)}}})}}class dt extends v{constructor({password:e,rawPassword:t,encryptionStrength:n}){let r;super({start(){wt(this,e,t,n)},async transform(e,t){const n=this,{password:r,strength:s,ne:a,ready:i}=n;let o=re;r?(o=await(async(e,t,n)=>{const r=Be(new f(Qe[t]));return Me(r,await ft(e,t,n,r))})(n,s,r),a()):await i;const c=new f(o.length+e.length-e.length%We);c.set(o,0),t.enqueue(ut(n,e,c,o.length,0))},async flush(e){const{re:t,se:n,pending:s,ready:a}=this;if(n&&t){await a;let i=re;if(s.length){const e=t.update(yt(rt,s));n.update(e),i=mt(rt,e)}r.signature=mt(rt,n.digest()).slice(0,_e),e.enqueue(Me(i,r.signature))}}}),r=this}}function wt(e,t,r,s){n.assign(e,{ready:new b(t=>e.ne=t),password:pt(t,r),strength:s-1,pending:re})}function ut(e,t,n,r,s,a){const{re:i,se:o,pending:c}=e;c.length&&(t=Me(c,t));const l=t.length-s;let d;for(n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new f(t)).set(n,0)}return e})(n,r+(l-l%We)),d=0;l-We>=d;d+=We){const e=yt(rt,ht(t,d,d+We));a&&o.update(e);const s=i.update(e);a||o.update(s),n.set(mt(rt,s),d+r)}return e.pending=ht(t,d),n}async function ft(e,r,s,a){e.password=null;const i=await(async(e,t,n,r,s)=>{if(!ot)return Ne.importKey(t);try{return await tt.importKey("raw",t,n,!1,s)}catch{return ot=!1,Ne.importKey(t)}})(0,s,Ge,0,qe),o=await(async(e,t,n)=>{if(!ct)return Ne.I(t,e.salt,Xe.iterations,n);try{return await tt.deriveBits(e,t,n)}catch{return ct=!1,Ne.I(t,e.salt,Xe.iterations,n)}})(n.assign({salt:a},Xe),i,8*(2*Je[r]+2)),c=new f(o),l=yt(rt,ht(c,0,Je[r])),d=yt(rt,ht(c,Je[r],2*Je[r])),w=ht(c,2*Je[r]);return n.assign(e,{keys:{key:l,ae:d,passwordVerification:w},re:new at(new st(l),t.from($e)),se:new it(d)}),w}function pt(e,t){return t===$?Ae(e):t}function ht(e,t,n){return e.subarray(t,n)}function mt(e,t){return e.D(t)}function yt(e,t){return e.R(t)}class bt extends v{constructor({password:e,rawPassword:t,passwordVerification:n,checkPasswordOnly:r}){super({start(){zt(this,e,t,n)},transform(e,t){const n=this;if(n.password||n.rawPassword){const t=xt(n,e.subarray(0,12));if(n.password=n.rawPassword=null,0!=(t.at(-1)^n.passwordVerification))throw new u(Le);e=e.subarray(12)}r?t.error(new u(He)):t.enqueue(xt(n,e))}})}}class gt extends v{constructor({password:e,rawPassword:t,passwordVerification:n}){super({start(){zt(this,e,t,n)},transform(e,t){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const t=Be(new f(12));t[11]=n.passwordVerification,r=new f(e.length+t.length),r.set(Ft(n,t),0),s=12}else r=new f(e.length),s=0;r.set(Ft(n,e),s),t.enqueue(r)}})}}function zt(e,t,r,s){n.assign(e,{password:t,rawPassword:r,passwordVerification:s}),((e,t,r)=>{const s=[305419896,591751049,878082192];if(n.assign(e,{keys:s,ie:new Ue(s[0]),oe:new Ue(s[2])}),r)for(let t=0;t<r.length;t++)St(e,r[t]);else for(let n=0;n<t.length;n++)St(e,t.charCodeAt(n))})(e,t,r)}function xt(e,t){const n=new f(t.length);for(let r=0;r<t.length;r++)n[r]=vt(e)^t[r],St(e,n[r]);return n}function Ft(e,t){const n=new f(t.length);for(let r=0;r<t.length;r++)n[r]=vt(e)^t[r],St(e,t[r]);return n}function St(e,t){let[,n]=e.keys;e.ie.append([t]);const r=~e.ie.get();n=Rt(i.imul(Rt(n+Dt(r)),134775813)+1),e.oe.append([n>>>24]);const s=~e.oe.get();e.keys=[r,n,s]}function vt(e){const t=2|e.keys[2];return Dt(i.imul(t,1^t)>>>8)}function Dt(e){return 255&e}function Rt(e){return 4294967295&e}const Tt="Invalid uncompressed size",Et="Invalid compressed data";class Ct extends v{constructor(e,{chunkSize:t,CompressionStreamZlib:n,CompressionStream:r}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l,deflate64:d}=e,w=this;let u,f,p,h=super.readable;const y=c&&s&&!d&&(!a||o)&&!(!i||!r);a&&!o||!c||y||(u=new ke,h=Zt(h,u)),s&&(y?(p=new Ut,h=Pt(h,new r("gzip")),h=Zt(h,p)):h=Mt(h,i,{level:l,chunkSize:t},r,n,r)),a&&(o?h=Zt(h,new gt(e)):(f=new dt(e),h=Zt(h,f))),At(w,h,()=>{let e;a&&!o&&(e=f.signature),a&&!o||!c||(e=y?p.signature:new m(u.value.buffer).getUint32(0)),w.signature=e})}}class Ut extends v{constructor(){let e,t=10,n=new f(0);super({transform(e,r){if(t){const n=i.min(t,e.length);if(t-=n,!(e=e.subarray(n)).length)return}const s=n.length+e.length;if(8>=s)return void(n=Me(n,e));const a=s-8,o=i.min(a,n.length);r.enqueue(Me(n.subarray(0,o),e.subarray(0,a-o))),n=Me(n.subarray(o),e.subarray(a-o))},flush(){const t=Pe(n);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class kt extends v{constructor(e,{chunkSize:t,DecompressionStreamZlib:n,DecompressionStream:r}){super({});const{zipCrypto:s,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let w,f,p=super.readable;a&&(s?p=Zt(p,new bt(e)):(f=new lt(e),p=Zt(p,f))),c&&(p=Mt(p,l,{chunkSize:t,deflate64:d},r,n,r),p=(e=>{const t=e.getReader();return new D({async pull(e){let n;try{n=await t.read()}catch(e){if(e&&e.message)throw e;const t=new u(Et);throw t.cause=e,t}const{value:r,done:s}=n;s?e.close():e.enqueue(r)},cancel:e=>t.cancel(e)})})(p)),a&&!s||!i||(w=new ke,p=Zt(p,w)),At(this,p,()=>{if((!a||s)&&i){const e=new m(w.value.buffer);if(o!=e.getUint32(0,!1))throw new u(Ve)}})}}function At(e,t,r){t=Zt(t,new v({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function Mt(e,t,n,r,s,a){const i=t&&r?r:s||a,o=n.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new i(o,n)}catch(e){if(!t)throw e;if(s)c=new s(o,n);else{if(!a)throw e;c=new a(o,n)}}return Pt(e,c)}function Zt(e,t){return e.pipeThrough(t)}function Pt(e,t){const n=t.writable.getWriter(),r=e.getReader();return(async()=>{try{for(;;){await n.ready;const e=await r.read();if(e.done){await n.close();break}await n.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(n,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(r,e)}})(),t.readable}const Kt="data",jt="deflate",Ot="inflate";class Nt extends v{constructor(e,t){super({});const r=this,{codecType:s}=e;let a;s.startsWith(jt)?a=Ct:s.startsWith(Ot)&&(a=kt),r.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new v({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){n.assign(r,{inputSize:i})}}),d=new v({transform(t,n){if(t&&t.length&&(n.enqueue(t),r.outputSize+=t.length,e.outputSize!==$&&r.outputSize>e.outputSize))throw new u(Tt)},flush(){const{signature:e}=o;n.assign(r,{signature:e,inputSize:i})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class It extends v{constructor(e){const t=[];let n=0;function r(){const r=new f(e);let s=0;for(;e>s;){const n=t[0],a=e-s;n.length>a?(r.set(n.subarray(0,a),s),t[0]=n.subarray(a),s+=a):(r.set(n,s),s+=n.length,t.shift())}return n-=e,r}1>e&&(e=65536),super({transform(s,a){for(t.push(s),n+=s.length;n>e;)a.enqueue(r())},flush(e){n&&e.enqueue(((e,t)=>{const n=new f(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n})(t,n))}})}}const Lt={type:"module"},Vt="error";let Ht,Bt,Wt,Yt,Gt=!0;try{Gt=typeof structuredClone==ne&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class Xt{constructor(e,{readable:t,writable:r},{options:s,config:a,ce:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:w}=i;return n.assign(e,{le:!0,de:(e.de||0)+1,readable:t.pipeThrough(new It(le(a))).pipeThrough(new qt(i),{signal:w}),writable:r,options:n.assign({},s),workerURI:l,transferStreams:c,terminate:()=>new b(t=>{const{we:n,le:r}=e;n?(r?e.ue=t:(n.terminate(),t()),e.fe=null):t()}),pe(){if(e.le){const{ue:t}=e;t&&(e.ue=null,e.he=!0,e.we.terminate(),t()),e.le=!1,d(e)}}}),Ht===$&&(Ht=typeof U!=te),(o&&Ht?_t:Jt)(e,a)}}class qt extends v{constructor({onstart:e,onprogress:t,size:n,onend:r}){let s=0;super({async start(){e&&await Qt(e,n)},async transform(e,r){s+=e.length,t&&await Qt(t,s,n),r.enqueue(e)},async flush(){r&&await Qt(r,s)}})}}async function Qt(e,...t){try{await e(...t)}catch{}}function Jt(e,t){return{run:()=>(async({options:e,readable:t,writable:n,pe:r},s)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{const t=e.codecType.startsWith(jt)?s.CompressionStreamZlib:s.DecompressionStreamZlib;t&&!t.me||(e.useCompressionStream=!0)}a=new Nt(e,s),await t.pipeThrough(a).pipeThrough(new It(le(s))).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:r,inputSize:i,outputSize:o}=a;return{signature:r,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{r()}})(e,t)}}function _t(e,t){const{baseURI:r,chunkSize:s}=t;let{wasmURI:a}=t;if(!e.fe){let i;typeof a==ne&&(a=a());try{i=en(e.workerURI,r,e)}catch{return Ht=!1,Jt(e,t)}n.assign(e,{we:i,he:!1,fe:{run:()=>(async(e,t)=>{let r,s;const a=new b((e,t)=>{r=e,s=t});n.assign(e,{reader:null,writer:null,ye:r,be:s,result:a});const{readable:i,options:o}=e,{writable:c,closed:l,ge:d}=(e=>{const t=new AbortController,{writable:n,readable:r}=new v,s=r.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:n,closed:s,ge:()=>t.abort()}})(e.writable);let w;try{w=nn({type:"start",options:o,config:t,readable:i,writable:c},e)}catch(t){d();try{await l}catch{}throw e.pe(),t}w||n.assign(e,{reader:i.getReader(),writer:c.getWriter()});try{const e=await a;return await u(),await l,e}catch(e){await u(),d();try{await l}catch{}throw e}async function u(){if(!w&&!c.locked)try{await c.getWriter().close()}catch{}}})(e,{chunkSize:s,wasmURI:a,baseURI:r})}})}return e.fe}function $t(e){const{we:t}=e;if(t)try{t.terminate()}catch{}e.fe=null}function en(e,t,r,s,a=!0){let i,o,c;if(Wt===$||Bt!==e){const n=typeof e==ne;o=n?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){s===$&&(s=!1),s&&(c=Lt);try{i=new U(o,c)}catch(a){if(d)try{w.revokeObjectURL(o)}catch{}if(n&&d)return en(e,t,r,s,!1);if(s)throw a;return en(e,t,r,!0,!1)}}else{s===$&&(s=!0),s&&(c=Lt);try{o=new w(o,t)}catch{}try{i=new U(o,c)}catch(n){if(s)throw n;return en(e,t,r,!1,a)}}Bt=e,Wt=o,Yt=c}else i=new U(Wt,Yt);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:r,value:s,messageId:a,result:i,error:o}=e,{reader:c,writer:l,ye:d,be:w,pe:p,de:h}=t,m=()=>t.de!=h;try{if(o){const{message:e,stack:t,code:r,name:s,outputSize:a}=o,i=new u(e);n.assign(i,{stack:t,code:r,name:s,outputSize:a}),y(i)}else{if("pull"==r){const{value:e,done:n}=await c.read();m()||nn({type:Kt,value:e,done:n,messageId:a},t)}r==Kt&&(await l.ready,await l.write(new f(s)),m()||nn({type:"ack",messageId:a},t)),"close"==r&&y(null,i)}}catch(o){m()||($t(t),y(o))}function y(e,t){m()||(e?w(e):d(t),l&&l.releaseLock(),p())}})(e,r)),i.addEventListener(Vt,e=>tn(e,r)),i.addEventListener("messageerror",e=>tn(e,r)),i}function tn(e,t){e.preventDefault&&e.preventDefault();const{be:n,writer:r,pe:s}=t;$t(t),n&&(n(e.error||new u(e.message||Vt)),r&&r.releaseLock(),s())}function nn(e,{we:t,writer:n,transferStreams:r}){try{const{value:n,readable:s,writable:a}=e,i=[];if(n&&(e.value=Ze(n),i.push(e.value.buffer)),r&&Gt?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{Gt=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw n&&n.releaseLock(),e}}let rn=[];const sn=[];let an,on,cn=0;async function ln(e,t){const{options:n,config:r}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=n,{workerURI:w,maxWorkers:u}=r;t.transferStreams=a||a===$&&r.transferStreams;const f=!c&&!l&&!d;return t.useWebWorkers=!f&&(i||i===$&&r.useWebWorkers),t.workerURI=t.useWebWorkers&&w?w:$,n.useCompressionStream=o||o===$&&r.useCompressionStream,(await(async()=>{const n=rn.find(e=>!e.le);if(n)return pn(n),new Xt(n,e,t,p);if(rn.length<u){const n={ze:cn};return cn++,rn.push(n),new Xt(n,e,t,p)}return new b(n=>{sn.push({resolve:n,stream:e,xe:t}),on=r.workerStarvationTimeout,dn()})})()).run();function p(e){if(wn(),sn.length){const[{resolve:t,stream:n,xe:r}]=sn.splice(0,1);t(new Xt(e,n,r,p)),dn()}else e.we?(pn(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;s.isFinite(r)&&r>=0&&(e.he?e.he=!1:e.Fe=setTimeout(async()=>{rn=rn.filter(t=>t!=e);try{await e.terminate()}catch{}},r))})(e,t)):rn=rn.filter(t=>t!=e)}}function dn(){!an&&sn.length&&s.isFinite(on)&&on>=0&&(an=setTimeout(un,on))}function wn(){an&&(clearTimeout(an),an=null)}function un(){if(an=null,sn.length){const[{resolve:e,stream:t,xe:r}]=sn.splice(0,1),s=n.assign({},r,{useWebWorkers:!1,workerURI:$});e(new Xt({},t,s,fn)),dn()}}function fn(){wn(),dn()}function pn(e){const{Fe:t}=e;t&&(clearTimeout(t),e.Fe=null)}const hn="HTTP error ",mn="HTTP Range not supported",yn="HTTP resource changed",bn="Writer iterator completed too soon",gn="Writer not initialized",zn="Content-Range",xn="Range",Fn="GET",Sn="bytes",vn="writable",Dn=Symbol();class Rn{constructor(){this.size=0}init(){this.initialized=!0}}class Tn extends Rn{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:n=le(ce())}={}){const r=this;let s=0;return new D({async pull(a){const o=t===$?n:i.min(n,t-s),c=await nr(r,e+s,o);a.enqueue(c),s+n>t||t===$&&!c.length&&o?a.close():s+=n}})}}class En extends Rn{constructor(){super();const e=this,t=new R({write(t){if(!e.initialized)throw new u(gn);return e.writeUint8Array(Ze(t))}});n.defineProperty(e,vn,{get:()=>t})}writeUint8Array(){}}let Cn,Un;class kn extends Tn{constructor(e){super(),n.assign(this,{blob:e,size:e.size}),Un||(Un=(async()=>{try{const e=new y([new f(3)]).slice(1,2).stream().getReader();let t=0,n=await e.read();for(;!n.done;)t+=n.value.length,n=await e.read();Cn=1==t}catch{Cn=!1}})())}createReadable(e){const{blob:t,size:n}=this,{offset:r=0,size:s=n-r}=e||{};return r||n>s?Cn?t.slice(r,r+s).stream():super.createReadable(e):t.stream()}async readUint8Array(e,t){const n=this,r=e+t,s=e||r<n.size?n.blob.slice(e,r):n.blob;let a=await s.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,r)),new f(a)}}class An extends Rn{constructor(e){super();const t=this,r=new v,s=[];e&&s.push(["Content-Type",e]),n.defineProperty(t,vn,{get:()=>r.writable}),t.blob=new d(r.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class Mn extends Tn{constructor(e,t){super(),Pn(this,e,t)}async init(){await Kn(this,Xn,Bn),super.init()}createReadable(e){const t=this,{useRangeHeader:n,forceRangeRequests:r,size:a}=t;if((n||r)&&a!==$){const{offset:n=0,size:r=a-n}=e||{};if(r>0&&a>n)return((e,t,n)=>{let r,a=n;return new D({async start(){const a=await Xn(Fn,e,Vn(e,t,n));if(206!=a.status)throw new u(mn);const i=a.headers.get(zn);if(i){const e=s(i.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new u(mn)}Ln(e,a),In(e,a),r=a.body.getReader()},async pull(e){const{value:t,done:n}=await r.read();if(n){if(a)throw new u(mn);e.close()}else{const n=t.length>a?t.subarray(0,a):t;a-=n.length,n.length&&e.enqueue(n),a||(e.close(),await r.cancel())}},cancel:e=>r&&r.cancel(e)})})(t,n,i.min(r,a-n))}return super.createReadable(e)}readUint8Array(e,t){return jn(this,e,t,Xn,Bn)}}class Zn extends Tn{constructor(e,t){super(),Pn(this,e,t)}async init(){await Kn(this,qn,Wn),super.init()}readUint8Array(e,t){return jn(this,e,t,qn,Wn)}}function Pn(e,t,r){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c=!0,fetch:l}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.useXHR,delete r.fetch,n.assign(e,{url:t,options:r,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c,fetch:l})}async function Kn(e,t,n){const{url:r,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ce(),{protocol:n}=new w(e,t);return"http:"==n||"https:"==n})(r)&&(a||i)&&(void 0===s||s)){const r=await t(Fn,e,Vn(e,o?-22:void 0)),s=r.headers.get("Accept-Ranges");if(!(i||s&&s.toLowerCase()==Sn))throw new u(mn);{if(o){const t=new f(await r.arrayBuffer());206==r.status&&t.length==V&&(e.Se=t)}In(e,r);const s=On(r);s===$?await Gn(e,t,n):e.size=s}}else await Gn(e,t,n)}async function jn(e,t,n,r,a){const{useRangeHeader:i,forceRangeRequests:o,Se:c,size:l,options:d}=e;if(i||o){if(c&&t==l-V&&n==V)return c;if(l>t&&0!==n){t+n>l&&(n=l-t);const a=await r(Fn,e,Vn(e,t,n));if(206!=a.status)throw new u(mn);const i=a.headers.get(zn);if(i){const e=s(i.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new u(mn)}Ln(e,a),In(e,a);const o=new f(await a.arrayBuffer());if(o.length!=n)throw new u(mn);return o}return re}{const{data:r}=e;return r||await a(e,d),e.data.subarray(t,t+n)}}function On(e){const t=e.headers.get(zn);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function Nn({headers:e}){return{ve:e.get("Etag")||$,lastModified:e.get("Last-Modified")||$}}function In(e,t){const{checkResourceChanges:n,De:r}=e;n&&!r&&206==t.status&&(e.De=Nn(t))}function Ln(e,t){const{checkResourceChanges:r,De:s,size:a}=e;if(r){const e=On(t);if(e!==$&&a!==$&&e!=a)throw new u(yn);if(s){const e=Nn(t);if(n.entries(s).some(([t,n])=>n!==$&&e[t]!==$&&n!=e[t]))throw new u(yn)}}}function Vn(e,t=0,r=1){return n.assign({},Hn(e),{[xn]:Sn+"="+(0>t?t:t+"-"+(t+r-1))})}function Hn({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?n.fromEntries(t):t}async function Bn(e){await Yn(e,Xn)}async function Wn(e){await Yn(e,qn)}async function Yn(e,t){const n=await t(Fn,e,Hn(e));e.data=new f(await n.arrayBuffer()),e.size=e.data.length}async function Gn(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=await t("HEAD",e,Hn(e)),a=r.headers.get("Content-Length");a&&!r.headers.get("Content-Encoding")?e.size=s(a):await n(e,e.options)}}async function Xn(e,{fetch:t=fetch,options:r,url:s},a){const i=await t(s,n.assign({},r,{method:e,headers:a}));if(400>i.status)return i;throw 416==i.status?new u(mn):new u(hn+(i.statusText||i.status))}function qn(e,{url:t},r){return new b((s,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const n=t.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(n)}),s({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new u(mn):new u(hn+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new u("Network error")),!1),i.open(e,t),r)for(const e of n.entries(r))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class Qn extends Tn{constructor(e,t={}){super(),n.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Zn(e,t):new Mn(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Jn extends Tn{constructor(e){super(),this.Re=e}async init(){const e=this,{Re:t}=e;e.Te=0,await b.all(t.map(e=>tr(e))),e.Ee=t.map(t=>{const n=e.size;return e.size+=t.size,n}),super.init()}Ce(e){const{Ee:t,size:n}=this,r=t.at(e);return r===$?n:r}async readUint8Array(e,t){const n=this,{Re:r}=this;let s,a=0,o=e;for(;r[a]&&o>=r[a].size;)o-=r[a].size,a++;const c=r[a];if(c){const r=c.size;if(o+t>r){const a=r-o;s=Me(await nr(c,o,a),await n.readUint8Array(e+a,t-a))}else s=await nr(c,o,t)}else s=re;return n.Te=i.max(a,n.Te),s}}class _n extends Rn{constructor(e,t=4294967295){super();const r=this;let s,a,i;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new R({async write(t){if(t===Dn)return void(i&&await l());const{availableSize:n}=r;if(i)t.length<n?await c(t):(await c(t.subarray(0,n)),await l(),t.length>n&&await this.write(t.subarray(n)));else{const{value:n,done:o}=await e.next();if(o&&!n)throw new u(bn);s=n,s.size=0,s.maxSize&&(r.maxSize=s.maxSize),r.availableSize=r.maxSize,await tr(s),a=n.writable,i=a.getWriter(),await this.write(t)}},async close(){i&&(await i.ready,await d())},async abort(e){i&&await i.abort(e)}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),s.size+=t,r.availableSize-=t)}async function l(){await d(),r.diskOffset+=s.size,r.diskNumber++,i=null,r.availableSize=r.maxSize}async function d(){await i.close()}n.defineProperty(r,vn,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(Dn)}finally{e.releaseLock()}}}class $n{constructor(e){return t.isArray(e)&&(e=new Jn(e)),e instanceof D&&(e={readable:e}),e}}class er{constructor(e){return e.writable===$&&typeof e.next==ne&&(e=new _n(e)),e instanceof R&&(e={writable:e}),e.size===$&&(e.size=0),e}}async function tr(e,t){if(!e.init||e.initialized)return b.resolve();await e.init(t)}function nr(e,t,n){return e.readUint8Array(t,n)}const rr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function sr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let n=0;n<e.length;n++)t+=rr[e[n]];return t}})(e):new z(t,{ignoreBOM:!0}).decode(e)}const ar="filename",ir="rawFilename",or="comment",cr="rawComment",lr="uncompressedSize",dr="compressedSize",wr="offset",ur="diskNumberStart",fr="lastModDate",pr="rawLastModDate",hr="lastAccessDate",mr="creationDate",yr="rawCreationDate",br="internalFileAttributes",gr="externalFileAttributes",zr="msdosAttributesRaw",xr="msdosAttributes",Fr="msDosCompatible",Sr="zip64",vr="encrypted",Dr="version",Rr="versionMadeBy",Tr="zipCrypto",Er="directory",Cr="executable",Ur="compressionMethod",kr="signature",Ar="extraField",Mr="unixMode",Zr="setuid",Pr="setgid",Kr="sticky",jr=[ar,ir,lr,dr,fr,pr,or,cr,hr,mr,yr,wr,ur,br,gr,zr,xr,Fr,Sr,vr,Dr,Rr,Tr,Er,Cr,Ur,kr,Ar,"extraFieldUnix","extraFieldInfoZip","uid","gid",Mr,Zr,Pr,Kr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Or{constructor(e){jr.forEach(t=>this[t]=e[t])}}const Nr="password",Ir="rawPassword",Lr="passThrough",Vr="signal",Hr="checkAmbiguity",Br="useWebWorkers",Wr="useCompressionStream",Yr="transferStreams",Gr="preventClose",Xr="offset",qr="strictness",Qr="strict",Jr="tolerant",_r="File format is not recognized",$r="End of central directory not found",es="End of Zip64 central directory locator not found",ts="Central directory header not found",ns="Local file header not found",rs="Zip64 extra field not found",ss="File contains encrypted entry",as="Encryption method not supported",is="Compression method not supported",os="Split zip file",cs="Overlapping entry found",ls="Ambiguous archive",ds="utf-8",ws="cp437",us=[[lr,A],[dr,A],[wr,A],[ur,M]],fs={[M]:{Ue:Os,bytes:4},[A]:{Ue:Ns,bytes:8}};class ps{constructor(e,t={}){n.assign(this,{reader:new $n(e),options:t,config:ce(),ke:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;const{config:s}=t;if(await tr(r),r.size!==$&&r.readUint8Array||(r=new kn(await new d(r.readable).blob()),await tr(r)),r.size<V)throw new u(_r);const a=Ss(Ms(t,e,qr),Ms(t,e,Hr)),o=a==Qr,c=a!=Jr,w=((e,t)=>e!==$?e:t==Qr?0:t==Jr?1/0:M)(Ms(t,e,"maxAppendedDataSize"),a),{Ae:f,Me:p}=await(async(e,t,n)=>{const{size:r}=e,s=i.min(r,65557),a={count:vs};let o,c,l=0;for await(const[n,i,d,w,u]of Es(e,s)){const s=js(n,w+20);if(u+V+s==r){const s=await Us(e,n,i,w,u,r,a);if(s==Ts){if(o||(o=Cs(d,w,u)),l++,!t||l>1)break}else s!=Rs||c||(c=Cs(d,w,u))}}return o||(o=c),o||(o=await(async(e,t,n)=>{const{size:r}=e,s=i.min(r,t==1/0?r:65557+t);let a,o;for await(const[t,i,c,l,d]of Es(e,s)){const s=Cs(c,l,d);a||(a=s);const w=await Us(e,t,i,l,d,r,n);if(w==Ts)return s;w!=Rs||o||(o=s)}return o||a})(e,n,a)),{Ae:o,Me:l}})(r,c,w);if(!f)throw Os(Pe(await nr(r,0,4)))==K?new u(os):new u($r);c&&p>1&&As("multiple end of central directory records");const h=Pe(f);let m=Os(h,12),y=Os(h,16);const g=f.offset,z=js(h,20),x=g+V+z;r.size-x>w&&As("appended data");let F=js(h,4);const S=r.Te||0;let D,R,T=js(h,6),E=js(h,10),C=0;const U=y==A||m==A||E==M||T==M;if(y!=A&&T!=M&&(y+=Fs(r,T)),U){const e=f.offset<H?re:await nr(r,f.offset-H,H),t=Pe(e);if(e.length==H&&Os(t,0)==L){y=Fs(r,Os(t,4))+Ns(t,8);let e=await nr(r,y,56),n=Pe(e);const s=f.offset-H-56;if((56>e.length||Os(n,0)!=I)&&y!=s&&s>=0){const t=y;y=s,y>t&&(C=y-t),e=await nr(r,y,56),n=Pe(e)}if(56>e.length||Os(n,0)!=I)throw new u(es);R=!0,F==M?F=Os(n,16):o&&F!=Os(n,16)&&As("mismatched zip64 end of central directory record"),T==M?T=Os(n,20):o&&T!=Os(n,20)&&As("mismatched zip64 end of central directory record"),E==M?E=Ns(n,32):o&&E!=Ns(n,32)&&As("mismatched zip64 end of central directory record"),m==A?m=Ns(n,40):o&&m!=Ns(n,40)&&As("mismatched zip64 end of central directory record"),y=Fs(r,T)+Ns(n,48)+C}}const k=m,P=f.offset-(R?76:0);if(y<r.size||(C=r.size-y-m-V,y=r.size-m-V),S!=F)throw new u(os);if(0>y)throw new u(_r);let j=0,N=await nr(r,y,m),B=Pe(N);if(m){if(4>N.length)throw new u(_r);const e=P-m;if(y!=e&&T==F){let t=!(Os(B,j)==O);if(t||0>e||e+4>r.size||(t=Os(Pe(await nr(r,e,4)),0)==O),t){const t=y;y=e,y>t&&(C+=y-t),N=await nr(r,y,m),B=Pe(N)}}}const W=P-y;if(m==W||0>W||T!=F||(m=W,N=await nr(r,y,m),B=Pe(N)),0>y||y>=r.size)throw new u(_r);D=y;const Q=Ms(t,e,"filenameEncoding"),J=Ms(t,e,"commentEncoding"),_=o?new l:$;let ee;for(let a=0;E>a;a++){const c=new ms(r,s,t.options);if(j+46>N.length||Os(B,j)!=O)throw new u(ts);ys(c,B,j+6);const l=!!c.bitFlag.languageEncodingFlag,w=j+46,f=w+c.filenameLength,p=f+c.extraFieldLength,h=js(B,j+4),m=!(h>>8),y=h>>8==3,g=N.subarray(w,f),z=js(B,j+32),x=p+z,F=N.subarray(p,x),S=l,R=l,T=Os(B,j+38),U=T&Z,k={readOnly:!!(1&U),hidden:!!(2&U),system:!!(4&U),directory:!!(16&U),archive:!!(32&U)},A=Os(B,j+42),P=Ms(t,e,"decodeText")||sr,K=S?ds:Q||ws,I=R?ds:J||ws;let L=P(g,K);L===$&&(L=sr(g,K));let V=P(F,I);V===$&&(V=sr(F,I)),n.assign(c,{index:a,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Ze:z,offset:A,diskNumberStart:js(B,j+34),internalFileAttributes:js(B,j+36),externalFileAttributes:T,msdosAttributesRaw:U,msdosAttributes:k,rawFilename:g,filenameUTF8:S,commentUTF8:R,rawExtraField:N.subarray(f,p),rawComment:F,filename:L,comment:V}),bs(c,c,B,j+6),c.offset+=C,D=i.min(Fs(r,c.diskNumberStart)+c.offset,D),o&&(_.has(c.filename)&&(ee=!0),_.add(c.filename));const H=c.externalFileAttributes>>16&M;c.unixMode===$&&16877&H&&(c.unixMode=H);const W=!!(c.unixMode&G),te=!!(c.unixMode&X),ne=!!(512&c.unixMode),re=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&H),se=c.unixMode!==$&&(61440&c.unixMode)==Y,ae=(61440&H)==Y;n.assign(c,{setuid:W,setgid:te,sticky:ne,unixExternalUpper:H,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:re,directory:se||ae||m&&k.directory||c.filename.endsWith(q)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const ie=new Or(c);ie.getData=(e,n)=>c.getData(e,ie,t.ke,n),ie.arrayBuffer=async e=>{const n=new v,[r]=await b.all([new d(n.readable).arrayBuffer(),c.getData(n,ie,t.ke,e)]);return r},j=x;const{onprogress:oe}=e;if(oe)try{await oe(a+1,E,new Or(c))}catch{}yield ie}o&&j!=k&&As("trailing central directory data"),ee&&As("duplicate filename"),o&&(C||E&&D>0)&&As("prepended data");const te=Ms(t,e,"extractPrependedData"),ne=Ms(t,e,"extractAppendedData");return te&&(t.prependedData=D>0?await nr(r,0,D):re),t.comment=z?await nr(r,g+V,z):re,ne&&(t.appendedData=x<r.size?await nr(r,x,r.size-x):re),!0}async getEntries(e={}){const t=[];for await(const n of this.getEntriesGenerator(e))t.push(n);return t}async close(){}}class hs{constructor(e={}){const{readable:t,writable:n}=new v,r=new ps(t,e).getEntriesGenerator();this.readable=new D({async pull(e){const{done:t,value:n}=await r.next();if(t)return e.close();const s={...n,readable:(()=>{const{readable:e,writable:t}=new v;if(n.getData)return(async()=>{try{await n.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete s.getData,e.enqueue(s)}}),this.writable=n}}class ms{constructor(e,t,r){n.assign(this,{reader:e,config:t,options:r})}async getData(e,t,n,r={}){const s=this,{reader:a,index:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:w,config:f,bitFlag:p,signature:h,rawLastModDate:m,uncompressedSize:y,compressedSize:b}=s,{dataDescriptor:g}=p,z=t.localDirectory={},x=Fs(a,c)+o,F=await nr(a,x,Q),S=Pe(F);let v=Ms(s,r,Nr),D=Ms(s,r,Ir);const T=Ms(s,r,Lr);if(v=v&&v.length&&v,D=D&&D.length&&D,l&&99!=l.originalCompressionMethod)throw new u(is);if(0!=w&&8!=w&&9!=w&&!T)throw new u(is);if(F.length<Q||Os(S,0)!=P)throw new u(ns);ys(z,S,4);const{extraFieldLength:E,filenameLength:C}=z,U=Ss(Ms(s,r,qr),Ms(s,r,Hr))==Qr;let k=re;if(U&&(C||E)){const e=await nr(a,x+Q,C+E);k=e.subarray(0,C),z.rawExtraField=e.subarray(C)}else z.rawExtraField=E?await nr(a,x+Q+C,E):re;bs(s,z,S,4,!0),U&&((e,t,n)=>{const{rawFilename:r}=e;(n.length!=r.length||n.some((e,t)=>e!=r[t]))&&As("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&As("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&As("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||As("mismatched local file header (signature or sizes)")})(s,z,k);const{lastAccessDate:A,creationDate:M}=z;A&&(t.lastAccessDate=A),M&&(t.creationDate=M);const K=s.encrypted&&z.encrypted&&!T,O=K&&!l;if(T||(t.zipCrypto=O),K){if(!O&&l.strength===$)throw new u(as);if(!v&&!D)throw new u(ss)}const N=x+Q+C+E,I=b,L=a.createReadable({offset:N,size:I}),V=Ms(s,r,Vr),H=Ms(s,r,"checkPasswordOnly");let B=Ms(s,r,"checkOverlappingEntry");const W=Ms(s,r,"checkOverlappingEntryOnly");W&&(B=!0);const{onstart:Y,onprogress:G,onend:X}=r,q=9==w;let J=Ms(s,r,Wr);q&&(J=!1);const _={options:{codecType:Ot,password:v,rawPassword:D,zipCrypto:O,encryptionStrength:l&&l.strength,signed:Ms(s,r,"checkSignature")&&!T,passwordVerification:O&&(g?m>>>8&Z:h>>>24&Z),outputSize:T?b:y,signature:h,compressed:0!=w&&!T,encrypted:K,useWebWorkers:Ms(s,r,Br),useCompressionStream:J,transferStreams:Ms(s,r,Yr),deflate64:q,checkPasswordOnly:H},config:f,ce:{signal:V,size:I,onstart:Y,onprogress:G,onend:X}};let ee;B&&await(async({reader:e,Pe:t,index:n,offset:r,signature:s,compressedSize:a,uncompressedSize:i,Ke:o,dataDescriptor:c,extraFieldZip64:l,ke:d})=>{let w=0;if(c&&(w=l?20:12),w){const n=await nr(e,o+a,w+4);if(n.length==w+4&&Os(Pe(n),0)==j){const e=Os(Pe(n),4);let r,o;l?(r=Ns(Pe(n),8),o=Ns(Pe(n),16)):(r=Os(Pe(n),8),o=Os(Pe(n),12)),(t.encrypted&&!t.zipCrypto||e==s)&&r==a&&o==i&&(w+=4)}}const f={start:r,end:o+a+w,Pe:t};for(const[e,t]of d)if(e!=n&&f.start<t.end&&t.start<f.end){const e=new u(cs);throw e.je=t.Pe,e}d.set(n,f)})({reader:a,Pe:t,index:i,offset:x,signature:h,compressedSize:b,uncompressedSize:y,Ke:N,dataDescriptor:g||z.bitFlag.dataDescriptor,extraFieldZip64:d||z.extraFieldZip64,ke:n});try{if(!W){H&&(e=new R),e=new er(e),await tr(e,T?b:y),({writable:ee}=e);const{outputSize:t}=await ln({readable:L,writable:ee},_);if(e.size+=t,t!=(T?b:y))throw new u(Tt)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!H||t.message!=He)throw t}finally{Ms(s,r,Gr)||!ee||ee.locked||await ee.getWriter().close()}return H||W?$:e.getData?e.getData():ee}}function ys(e,t,r){const s=e.rawBitFlag=js(t,r+2),a=!(1&~s),i=Os(t,r+6);n.assign(e,{encrypted:a,version:js(t,r),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&W)==W},rawLastModDate:i,lastModDate:Zs(i),filenameLength:js(t,r+22),extraFieldLength:js(t,r+24)})}function bs(e,t,r,s,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=Pe(i);let w=0;try{for(;w<i.length;){const e=js(d,w),t=js(d,w+2);l.set(e,{type:e,data:i.slice(w+4,w+4+t)}),w+=4+t}}catch{}const f=js(r,s+4);n.assign(t,{signature:Os(r,s+10),compressedSize:Os(r,s+14),uncompressedSize:Os(r,s+18)});const p=l.get(1);p&&(((e,t)=>{t.zip64=!0;const n=Pe(e.data),r=us.filter(([e,n])=>t[e]==n),s=r.reduce((e,[,t])=>e+fs[t].bytes,0);if(e.data.length<s)throw new u(rs);for(let s=0,a=0;s<r.length;s++){const[i,o]=r[s],c=fs[o];t[i]=e[i]=c.Ue(n,a),a+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=l.get(28789);h&&(gs(h,ar,ir,t,e),t.extraFieldUnicodePath=h);const m=l.get(25461);m&&(gs(m,or,cr,t,e),t.extraFieldUnicodeComment=m);const y=l.get(39169);y&&y.data.length>=7?(((e,t,r)=>{const s=Pe(e.data),a=Ks(s,4);n.assign(e,{Oe:Ks(s,0),vendorId:Ks(s,2),strength:a,originalCompressionMethod:r,compressionMethod:js(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const b=l.get(10);b&&(((e,t)=>{const r=Pe(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=js(r,a),n=js(r,a+2);1==t&&(s=e.data.slice(a+4,a+4+n)),a+=4+n}}catch{}try{if(s&&24==s.length){const r=Pe(s),a=r.getBigUint64(0,!0),i=r.getBigUint64(8,!0),o=r.getBigUint64(16,!0);n.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:Ps(a),lastAccessDate:Ps(i),creationDate:Ps(o)};n.assign(e,c),n.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const g=l.get(30805);if(g)zs(g,t,!1),t.extraFieldUnix=g;else{const e=l.get(30837);e&&(zs(e,t,!0),t.extraFieldInfoZip=e)}const z=l.get(B);z&&(((e,t,n)=>{if(!e.data.length)return;const r=Pe(e.data),s=Ks(r,0),a=[],i=[];n?(1&~s||(a.push(fr),i.push(pr)),2&~s||(a.push(hr),i.push("rawLastAccessDate")),4&~s||(a.push(mr),i.push(yr))):5>e.data.length||(a.push(fr),i.push(pr));let c=1;a.forEach((n,s)=>{if(e.data.length>=c+4){const a=Os(r,c);t[n]=e[n]=new o(1e3*(0|a));const l=i[s];e[l]=a}c+=4})})(z,t,a),t.extraFieldExtendedTimestamp=z);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function gs(e,t,r,s,a){if(5>e.data.length)return void(e.valid=!1);const i=Pe(e.data),o=new Ue;o.append(a[r]);const c=Pe(new f(4));c.setUint32(0,o.get(),!0);const l=Os(i,1);n.assign(e,{version:Ks(i,0),[t]:sr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==Os(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function zs(e,t,r){try{const s=Pe(e.data);let a,i;if(r){let t=0;const r=Ks(s,t++),o=Ks(s,t++);a=xs(e.data.subarray(t,t+o)),t+=o;const c=Ks(s,t++);i=xs(e.data.subarray(t,t+c)),n.assign(e,{version:r,uid:a,gid:i})}else 4>e.data.length||(a=js(s,0),i=js(s,2),n.assign(e,{uid:a,gid:i}));a!==$&&(t.uid=a),i!==$&&(t.gid=i)}catch{}}function xs(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Fs(e,t){return e.Ce?e.Ce(t):0}function Ss(e,t){return e===$?t?Qr:"balanced":e}const vs=64,Ds=0,Rs=1,Ts=2;async function*Es(e,t){const n=e.size-t,r=await nr(e,n,t),s=Pe(r);for(let e=r.length-V;e>=0;e--)Os(s,e)==N&&(yield[s,n,r,e,n+e])}function Cs(e,t,n){return{offset:n,buffer:e.slice(t,t+V).buffer}}async function Us(e,t,n,r,s,a,i){const o=js(t,r+10),c=Os(t,r+12),l=Os(t,r+16);if(o==M||c==A||l==A)return await ks(e,t,n,s-H,a,i)==L?Ts:Ds;if(!o&&!c)return Rs;const d=js(t,r+6);for(const r of[s-c,Fs(e,d)+l])if(await ks(e,t,n,r,a,i)==O)return Ts;return Ds}async function ks(e,t,n,r,s,a){return 0>r||r+4>s?$:n>r?a.count>0?(a.count--,Os(Pe(await nr(e,r,4)),0)):$:Os(t,r-n)}function As(e){const t=new u(ls);throw t.reason=e,t}function Ms(e,t,n){return t[n]===$?e.options[n]:t[n]}function Zs(e){const t=(4294901760&e)>>16,n=e&M;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}catch{}}function Ps(e){return new o(s(e/a(1e4)-a(116444736e5)))}function Ks(e,t){return e.getUint8(t)}function js(e,t){return e.getUint16(t,!0)}function Os(e,t){return e.getUint32(t,!0)}function Ns(e,t){return s(e.getBigUint64(t,!0))}var Is=n.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:ls,ERR_BAD_FORMAT:_r,ERR_CENTRAL_DIRECTORY_NOT_FOUND:ts,ERR_ENCRYPTED:ss,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:es,ERR_EOCDR_NOT_FOUND:$r,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:rs,ERR_INVALID_COMPRESSED_DATA:Et,ERR_INVALID_PASSWORD:Le,ERR_INVALID_SIGNATURE:Ve,ERR_INVALID_UNCOMPRESSED_SIZE:Tt,ERR_LOCAL_FILE_HEADER_NOT_FOUND:ns,ERR_OVERLAPPING_ENTRY:cs,ERR_SPLIT_ZIP_FILE:os,ERR_UNSUPPORTED_COMPRESSION:is,ERR_UNSUPPORTED_ENCRYPTION:as,ZipReader:ps,ZipReaderStream:hs});const Ls="File already exists",Vs="Zip file comment exceeds 64KB",Hs="File entry comment exceeds 64KB",Bs="File entry name exceeds 64KB",Ws="Version exceeds 65535",Ys="The strength must equal 1, 2, or 3",Gs="Extra field type exceeds 65535",Xs="Extra field data exceeds 64KB",qs=-2147483648,Qs=2147483647,Js="Zip64 is not supported (set the 'zip64' option to 'true')",_s="Undefined uncompressed size",$s="Undefined reader",ea="Zip file not empty",ta=new f([7,0,2,0,65,69,3,0,0]),na="infozip",ra="unix";let sa=0;const aa=[];class ia{constructor(e,t={}){e=new er(e);const{availableSize:r=ee,maxSize:s=ee}=e,a=r>0&&r!==ee&&s>0&&s!==ee;n.assign(this,{writer:e,Ne:a,options:t,config:ce(),files:new c,Ie:new l,offset:t[Xr]===$?e.size||e.writable.size||0:t[Xr],Le:t[Xr]===$?0:t[Xr]-(e.size||e.writable.size||0),Ve:new l,He:0,Be:$})}async prependZip(e){if(this.Ie.size)throw new u(ea);e=new $n(e),await tr(e);const{ZipReader:t}=await b.resolve().then(()=>Is),r=new t(e.readable),s=await r.getEntries();await r.close(),await tr(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Ie=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:r,lastAccessDate:s,creationDate:a,rawFilename:i,bitFlag:o,encrypted:c,uncompressedSize:l,compressedSize:d,zip64:w}=e;let{compressionMethod:u,We:f,Ye:p,Ge:h,Xe:m,qe:y,rawExtraField:b}=e;const{level:g,languageEncodingFlag:z,dataDescriptor:x}=o;f=f||re,p=p||re,h=h||re,m=m||re,y=y||re,b=b||re,e.extraFieldAES&&(u=99);const F=Ra(f,p,h,m,y,b),S=w&&l>=A,v=w&&d>=A,D=-7&Ea(g,z,x,c,u)|g<<1,{Qe:R,Je:T}=Ta({version:t,bitFlag:D,compressionMethod:u,uncompressedSize:l,compressedSize:d,rawLastModDate:r,rawFilename:i,_e:v,$e:S,extraFieldLength:F}),{signature:E}=e;return E!==$&&Sa(T,10,E),n.assign(e,{$e:S,_e:v,et:w&&e.offset>=A,diskNumberStart:0,nt:!1,We:f,Ye:p,Ge:h,Xe:m,qe:y,rawExtraField:b,extendedTimestamp:h.length>0||m.length>0,st:1+(s?2:0)+(a?4:0),Qe:R,Je:T}),[e.filename,e]}))}async add(e="",t,r={}){const s=this;r=n.assign({},r);const{Ve:i,config:c}=s;let l,d;sa<c.maxWorkers?sa++:await new b(e=>aa.push(e));try{if(e=e.trim(),za(s,r,Er)&&!e.endsWith(q)&&(e+=q),s.Ie.has(e))throw new u(Ls);return s.Ie.add(e),d=!0,l=(async(e,t,r,s)=>{const i=((e,t,n)=>{t=t.trim();let r=za(e,n,Fr),s=za(e,n,Rr,r?20:768);const a=za(e,n,Cr),i=za(e,n,"uid"),o=za(e,n,"gid");let c=za(e,n,Mr),l=za(e,n,"unixExtraFieldType"),d=za(e,n,Zr),w=za(e,n,Pr),f=za(e,n,Kr);if(i!==$&&(0>i||i>A))throw new u("Invalid uid (must be integer 0..2^32-1)");if(o!==$&&(0>o||o>A))throw new u("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>M))throw new u("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==na&&l!==ra)throw new u("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===ra&&(i!==$&&i>M||o!==$&&o>M))throw new u("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||i===$&&o===$||(l=na);let p=za(e,n,zr),h=za(e,n,xr);const m=p!==$||h!==$;if(i!==$||o!==$||c!==$||l?(r=!1,s=s&M|768):m&&(r=!0,s&=Z),p!==$&&(0>p||p>Z))throw new u("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new u("Invalid msdosAttributes (must be an object with boolean flags)");if(s>M)throw new u(Ws);let y=za(e,n,gr,0);!n[Er]&&t.endsWith(q)&&(n[Er]=!0);const b=za(e,n,Er);let g;return b?(t.endsWith(q)||(t+=q),0===y&&(y=16,r||(y|=16877<<16))):r||0!==y||(y=a?493<<16:27525120),r||(g=y>>16&M,c=c===$?g:c&M,d?c|=G:d=!!(c&G),w?c|=X:w=!!(c&X),f?c|=512:f=!!(512&c),b&&(c|=Y),y=(c&M)<<16|y&Z),({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==$)e&=Z;else if(t!==$){const{readOnly:n,hidden:r,system:s,directory:a,archive:i}=t;let o=0;n&&(o|=1),r&&(o|=2),s&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&Z}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(y=y&A|p&Z),{name:t,it:{versionMadeBy:s,msDosCompatible:r,externalFileAttributes:y,unixExternalUpper:g,uid:i,gid:o,unixMode:c,unixExtraFieldType:l,setuid:d,setgid:w,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=i);const c=((e,t,n)=>{const r=za(e,n,"encodeText",Ae);let s=r(t);if(s===$&&(s=Ae(t)),Ra(s)>M)throw new u(Bs);const a=n[or]||"";let i=r(a);if(i===$&&(i=Ae(a)),Ra(i)>M)throw new u(Hs);const c=za(e,n,Dr,20);if(c>M)throw new u(Ws);const l=za(e,n,fr,new o),d=za(e,n,hr),w=za(e,n,mr),p=za(e,n,br,0),h=za(e,n,Lr);let m,y;h||(m=za(e,n,Nr),y=za(e,n,Ir));const b=za(e,n,"encryptionStrength",3),g=za(e,n,Tr),z=za(e,n,"extendedTimestamp",!0),x=za(e,n,"keepOrder",!0),F=za(e,n,Br),S=za(e,n,Yr),v=za(e,n,"bufferedWrite"),D=za(e,n,"createTempStream"),R=za(e,n,"dataDescriptorSignature",!0),T=za(e,n,Vr),E=za(e,n,"useUnicodeFileNames",!0),C=za(e,n,Ur);if(!h&&C!==$&&0!==C&&8!==C)throw new u("Compression method not supported");let U=za(e,n,"level"),k=za(e,n,Wr),A=za(e,n,"dataDescriptor");v&&A===$&&(A=!1),(A===$||g)&&(A=!0),U!==$&&6!=U&&(k=!1),k||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(U=0);const Z=za(e,n,Sr);if(!g&&(m!==$||y!==$)&&(1>b||b>3))throw new u(Ys);let P=re;const K=n[Ar];if(K){let e=0,t=0;K.forEach(t=>e+=4+Ra(t)),P=new f(e);const n=Pe(P);K.forEach((e,r)=>{if(r>M)throw new u(Gs);if(Ra(e)>M)throw new u(Xs);Fa(n,t,r),Fa(n,t+2,Ra(e)),Da(P,e,t+4),t+=4+Ra(e)})}return{comment:a,it:{rawFilename:s,rawComment:i,version:c,lastModDate:l,lastAccessDate:d,creationDate:w,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:b,zipCrypto:g,extendedTimestamp:z,keepOrder:x,useWebWorkers:F,transferStreams:S,bufferedWrite:v,createTempStream:D,dataDescriptorSignature:R,signal:T,useUnicodeFileNames:E,compressionMethod:C,level:U,useCompressionStream:k,dataDescriptor:A,zip64:Z,rawExtraField:P}}})(e,t,s),{comment:l}=c,d=s[Ar];let w;e.files.set(t,$);try{const o=await(async(e,t,{it:n},r)=>{const{passThrough:s,zipCrypto:a,password:i,rawPassword:o,encryptionStrength:c}=n;let{dataDescriptor:l,zip64:d,level:w,compressionMethod:f}=n,p=0,h=0;if(s){if(!t)throw new u($s);if(h=r[lr],h===$)throw new u(_s)}const m=!0===d,y=za(e,r,vr),b=!!t&&(!!(i&&Ra(i)||o&&Ra(o))||s&&y);t||(w=0,f=0);const g=b?a?12:16+4*c:0;t&&(t=new $n(t),await tr(t),s?(r.uncompressedSize=h,p=xa(h)+g):t.size===$?(l=!0,(d||d===$)&&(d=!0,h=p=4294967296)):(r.uncompressedSize=h=t.size,p=xa(h)+g));const z=m||h>=A,x=m||p>=A;if(z||x){if(!1===d)throw new u(Js);d=!0}return d=d||!1,{reader:t,it:{dataDescriptor:l,zip64:d,$e:z,_e:x,uncompressedSize:h,level:w,compressionMethod:f,encrypted:b}}})(e,r,c,s);({reader:r}=o);const l=ua(e.writer),d=wa(e.writer),p=(e=>{const{rawFilename:t,lastModDate:n,lastAccessDate:r,creationDate:s,level:a,zip64:i,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:l,directory:d,rawExtraField:w,encryptionStrength:f,extendedTimestamp:p,passThrough:h,encrypted:m,$e:y,_e:b,uncompressedSize:g}=e;let{version:z,compressionMethod:x}=e;const F=!d&&(x===$?a===$||a>0:0!==x);let S;const v=h||!F,D=i&&(e.bufferedWrite||!l||!y&&!b||v),R=D||i&&l&&(y||b);if(i&&(y||b)){const e=20,t=da(e);if(t.uint16(1),t.uint16(e-4),S=t.array,D&&(t.ot(g),v)){const e=m?o?12:16+4*f:0;t.ot(h?0:g+e)}}else S=re;let T,E,C,U,k;if(m&&!o){const e=da(Ra(ta)+2);e.uint16(39169),e.bytes(ta),T=e.array,T[8]=f}else T=re;if(p){const e=ya(n);if(ba(e)){const t=9+(r?4:0)+(s?4:0),n=da(t);U=1+(r?2:0)+(s?4:0),n.uint16(B),n.uint16(t-4),n.uint8(U),n.uint32(e),r&&n.uint32(ga(ya(r))),s&&n.uint32(ga(ya(s))),C=n.array}else C=re;try{const e=ma(n),t=da(36);t.uint16(10),t.uint16(32),t.ct(4),t.uint16(1),t.uint16(24),t.ot(e),t.ot(ma(r)||e),t.ot(ma(s)||e),E=t.array}catch{E=re}}else E=C=re;try{const{uid:t,gid:n,unixExtraFieldType:r}=e;if(r!=na||t===$&&n===$)if(r!=ra||t===$&&n===$)k=re;else{const e=da(8);e.uint16(30805),e.uint16(4),e.uint16((t===$?0:t)&M),e.uint16((n===$?0:n)&M),k=e.array}else{const e=la(t),r=la(n),s=3+e.length+r.length,a=da(4+s);a.uint16(30837),a.uint16(s),a.uint8(1),a.uint8(e.length),a.bytes(e),a.uint8(r.length),a.bytes(r),k=a.array}}catch{k=re}x===$&&(x=F?8:0),i&&(z=z>45?z:45),m&&!o&&(z=z>51?z:51,T[9]=x,x=99);const A=R?Ra(S):0,Z=A+Ra(T,C,E,k,w);if(Z>M)throw new u(Xs);const{Qe:K,Je:j,rawLastModDate:O}=Ta({version:z,bitFlag:Ea(a,c,l,m,x),compressionMethod:x,uncompressedSize:g,lastModDate:_>n?_:n>J?J:n,rawFilename:t,_e:b,$e:y,extraFieldLength:Z}),N=da(Q+Ra(t)+Z),I=N.array,L=Pe(I);return N.uint32(P),N.bytes(K),N.bytes(t),R&&N.bytes(S),N.bytes(T),N.bytes(C),N.bytes(E),N.bytes(k),N.bytes(w),l&&(b||Sa(L,18,0),y||Sa(L,22,0)),{lt:I,wt:L,Qe:K,Je:j,lastModDate:n,rawLastModDate:O,encrypted:m,compressed:F,version:z,compressionMethod:x,st:U,We:re,ut:A,Ge:C,Xe:E,qe:k,Ye:T,extraFieldLength:Z}})(s=n.assign({},s,i.it,c.it,o.it,{internalFileAttribute:c.it.internalFileAttributes,externalFileAttribute:i.it.externalFileAttributes,signature:s[kr],offset:e.offset-l,diskNumberStart:d})),h=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:n})=>{let r,s=re,a=0,i=e?20:12;return n&&(i+=4),t&&(s=new f(i),r=Pe(s),n&&(a=4,Sa(r,0,j))),{ft:s,ht:r,yt:a}})(s),m=Ra(p.lt,h.ft);w=await(async(e,t,r,s,i)=>{const{files:o,writer:c}=e,{keepOrder:l,dataDescriptor:d,signal:w}=i,{bt:p}=s,h=e.options.usdz,m=e.Be;let y,g,z,x,F,S,D,T={},E=0;o.set(t,T),e.Be=T;try{let g;l&&(g=m&&m.lock,T.lock=new b(e=>z=e)),i.bufferedWrite||!l||e.gt||e.He||!d?(y=!0,e.He++,D=i.createTempStream?await i.createTempStream():new v($,$,{highWaterMark:ee}),D.size=0,await tr(c)):(D=c,await C()),await tr(D);const k=ua(c);if(e.Ne){delete e.Ne;const t=new f(4);Sa(Pe(t),0,K),await ha(c,t),e.offset+=4}h&&!y&&ca(s,e.offset-k);const{lt:M}=p;y||(await g,await U());const P=wa(c),j=pa(e,c);if(T.diskNumberStart=P,y||(F=!0,S=c.size,await ha(D,M)),T=await(async(e,t,{diskNumberStart:r,lock:s},i,o,c)=>{const{bt:l,zt:d,xt:w}=i,{Qe:f,Je:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:b,version:g,compressionMethod:z,We:x,ut:F,Ge:S,st:v,Xe:D,qe:R,Ye:T}=l,{ft:E}=d,{rawFilename:C,lastAccessDate:U,creationDate:k,password:M,rawPassword:P,level:K,zip64:j,$e:O,_e:N,zipCrypto:I,dataDescriptor:L,directory:V,executable:H,versionMadeBy:B,rawComment:W,rawExtraField:Y,useWebWorkers:G,transferStreams:X,onstart:q,onprogress:Q,onend:J,signal:_,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:ne,internalFileAttributes:re,externalFileAttributes:se,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:we,msdosAttributesRaw:ue,msdosAttributes:fe,useCompressionStream:pe,passThrough:he}=c,me={lock:s,versionMadeBy:B,zip64:j,directory:!!V,executable:!!H,filenameUTF8:!0,rawFilename:C,commentUTF8:!0,rawComment:W,We:x,ut:F,Ge:S,Xe:D,qe:R,Ye:T,rawExtraField:Y,extendedTimestamp:te,msDosCompatible:ne,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:r,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:we,msdosAttributesRaw:ue,msdosAttributes:fe};let{signature:ye,uncompressedSize:be}=c,ge=0;he||(be=0);const{writable:ze}=t;if(e){const n=e.createReadable?e.createReadable():e.readable,r=e.size,s={options:{codecType:jt,level:K,rawPassword:P,password:M,encryptionStrength:ee,zipCrypto:y&&I,passwordVerification:y&&I&&m>>8&Z,signed:!he,compressed:b&&!he,encrypted:y&&!he,useWebWorkers:G,useCompressionStream:pe,transferStreams:X},config:o,ce:{signal:_,size:r,onstart:q,onprogress:Q,onend:J}};try{const e=await ln({readable:n,writable:ze},s);if(ge=e.outputSize,t.size+=ge,he||(be=e.inputSize,ye=e.signature),!N&&ge>=A||!O&&be>=A)throw new u(Js)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:n,bt:r,zt:s},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{Je:l,encrypted:d}=r,{ht:w,yt:u}=s;d&&!o||e===$||(Sa(l,10,e),c&&Sa(w,u,e)),i?c&&(va(w,u+4,a(t)),va(w,u+12,a(n))):(Sa(l,14,t),Sa(l,18,n),c&&(Sa(w,u+4,t),Sa(w,u+8,n)))})({signature:ye,compressedSize:ge,uncompressedSize:be,bt:l,zt:d},c),L&&await ha(t,E),n.assign(me,{uncompressedSize:be,compressedSize:ge,lastModDate:h,rawLastModDate:m,creationDate:k,lastAccessDate:U,encrypted:y,zipCrypto:I,size:w+ge,compressionMethod:z,version:g,Qe:f,Je:p,signature:ye,st:v,$e:O,_e:N}),me})(r,D,T,s,e.config,i),y||(F=!1),o.set(t,T),T.filename=t,y){if(await b.all([D.writable.getWriter().close(),g]),await C(),x=!0,S=c.size,await U(),T.diskNumberStart=wa(c),T.offset=pa(e,c),h){const t=s.xt;ca(s,e.offset-ua(c)),T.size+=s.xt-t}(({rawFilename:e,encrypted:t,zip64:n,ut:r,signature:s,compressedSize:i,uncompressedSize:o,$e:c,_e:l},d,{dataDescriptor:w})=>{if(w||(t||Sa(d,14,s),l||Sa(d,18,i),c||Sa(d,22,o)),n&&r){const t=Q+Ra(e)+4;va(d,t,a(o)),va(d,t+8,a(i))}})(T,p.wt,i),await ha(c,p.lt),await(async(e,t,n)=>{const r=t.writable.getWriter();try{await e.pipeTo(new R({async write(e){var t;await r.ready,await r.write(e),t=Ra(e),E+=t}}),{preventClose:!0,preventAbort:!0,signal:n})}finally{r.releaseLock()}})(D.readable,c,w),c.size+=D.size,x=!1}else T.diskNumberStart=P,T.offset=j;return e.offset+=T.size,T}catch(n){if(x||F){if(e.hasCorruptedEntries=!0,n)try{n.corruptedEntry=!0}catch{}e.offset+=c.size-S,y&&(e.offset+=E)}throw o.delete(t),n}finally{if(y&&e.He--,z&&z(),g&&g(),y&&D&&D.dispose)try{await D.dispose()}catch{}}async function C(){e.gt=!0;const{Ft:t}=e;e.Ft=new b(t=>g=()=>{e.gt=!1,t()}),await t}async function U(){fa(c,Ra(p.lt))&&await c.closeDisk()}})(e,t,r,{bt:p,zt:h,xt:m},s)}catch(n){throw e.files.delete(t),n}return n.assign(w,{name:t,comment:l,extraField:d}),new Or(w)})(s,e,t,r),i.add(l),await l}catch(t){throw d&&s.Ie.delete(e),t}finally{i.delete(l);const e=aa.shift();e?e():sa--}}remove(e){const{Ie:t,files:n}=this;if("string"==typeof e&&(e=n.get(e)),e&&e.filename!==$){const{filename:r}=e;if(t.has(r)&&n.has(r))return t.delete(r),n.delete(r),!0}return!1}async close(e=re,n={}){const{Ve:r,writer:s}=this,{writable:i}=s;if(Ra(e)>M)throw new u(Vs);for(;r.size;)await b.allSettled(t.from(r));return await(async(e,n,r)=>{const s=(e=>{let t=0;for(const[,n]of e){const{rawFilename:e,Ye:r,rawComment:s,Xe:a,qe:i,rawExtraField:o,extendedTimestamp:c,st:l,lastModDate:d,$e:w,_e:f,uncompressedSize:p,compressedSize:h}=n,m=n.offset>=A,y=n.diskNumberStart>=M;let b,g;if(m||y||w||f){const e=4+(w?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=da(e);t.uint16(1),t.uint16(e-4),w&&t.ot(p),f&&t.ot(h),m&&t.ot(n.offset),y&&t.uint32(n.diskNumberStart),b=t.array}else b=re;n.We=b,n.et=m,n.nt=y;const z=ya(d);if(c&&ba(z)){const e=da(9);e.uint16(B),e.uint16(5),e.uint8(l),e.uint32(z),g=e.array}else g=re;n.Ge=g;const x=Ra(b,r,a,i,g,o);if(x>M)throw new u(Xs);t+=46+Ra(e,s)+x}return t})(e.files),i=await(async(e,n,r)=>{const{files:s,writer:a}=e,i=new f(n);await tr(a);let o=0,c=0,l=wa(a),d=ua(a);for(const[e,n]of t.from(s.values()).entries()){const{offset:t,rawFilename:w,We:u,Ye:f,Ge:p,Xe:h,qe:m,rawExtraField:y,rawComment:b,versionMadeBy:g,Qe:z,Je:x,$e:F,_e:S,nt:v,et:D,internalFileAttributes:R,externalFileAttributes:T,diskNumberStart:E,uncompressedSize:C,compressedSize:U}=n,k=Ra(u,f,p,h,m,y),Z=46+Ra(w,b)+k;fa(a,o+Z-c)&&(await ha(a,i.slice(c,o)),c=o,await a.closeDisk()),0==e&&(l=wa(a),d=ua(a)),F||Sa(x,18,C),S||Sa(x,14,U),(D||v)&&45>n.version&&Fa(x,0,45);const P=da(Z);if(P.uint32(O),P.uint16(g),P.bytes(z.subarray(0,24)),P.uint16(k),P.uint16(Ra(b)),P.uint16(v?M:E),P.uint16(R),P.uint32(T),P.uint32(D?A:t),P.bytes(w),P.bytes(u),P.bytes(f),P.bytes(p),P.bytes(h),P.bytes(m),P.bytes(y),P.bytes(b),Da(i,P.array,o),o+=Z,r.onprogress)try{await r.onprogress(e+1,s.size,new Or(n))}catch{}}return await ha(a,c?i.slice(c):i),{diskNumber:l,diskOffset:d}})(e,s,r);await(async(e,t,n,r)=>{const{writer:s}=e,{St:i}=r;let{vt:o}=r,c=e.files.size,l=i.diskNumber,d=pa(e,i),w=wa(s);fa(s,V)&&w++;let f=za(e,n,Sr);if(!(A>d&&A>o&&M>c&&M>w)){if(!1===f)throw new u(Js);f=!0}const p=Ra(t);if(p>M)throw new u(Vs);const h=da(f?98:V);fa(s,Ra(h.array)+p)&&await s.closeDisk(),w=wa(s),f&&(h.uint32(I),h.ot(44),h.uint16(45),h.uint16(45),h.uint32(w),h.uint32(l),h.ot(c),h.ot(c),h.ot(o),h.ot(d),h.uint32(L),h.uint32(w),h.ot(a(pa(e,s))+a(o)),h.uint32(w+1),za(e,n,"supportZip64SplitFile",!0)&&(w=M,l=M),c=M,d=A,o=A),h.uint32(N),h.uint16(w),h.uint16(l),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(d),h.uint16(p),await ha(s,h.array),p&&await ha(s,t)})(e,n,r,{St:i,vt:s})})(this,e,n),za(this,n,Gr)||await i.getWriter().close(),s.getData?s.getData():i}}function oa(e,t,n){e.Ve.add(t),t.catch(e=>{try{n(e)}catch{}})}function ca(e,t){const{bt:n}=e;let{lt:r,extraFieldLength:s}=n,a=64-(t+Ra(r))%64;4>a&&(a+=64);const i=new f(a),o=Pe(i);Fa(o,0,6534),Fa(o,2,a-4);const c=r;n.lt=r=new f(Ra(c)+a),Da(r,c),Da(r,i,Ra(c));const l=Pe(r);Fa(l,28,s+a),n.wt=l,e.xt+=a}function la(e){if(e===$)return re;{const t=new f(4);Pe(t).setUint32(0,e,!0);let n=4;for(;n>1&&0===t[n-1];)n--;return t.subarray(0,n)}}function da(e){const t=new f(e),n=Pe(t);let r=0;return{array:t,uint8:e=>{((e,t,n)=>{e.setUint8(t,n)})(n,r,e),r+=1},uint16:e=>{Fa(n,r,e),r+=2},uint32:e=>{Sa(n,r,e),r+=4},ot:e=>{va(n,r,a(e)),r+=8},bytes:e=>{Da(t,e,r),r+=Ra(e)},ct:e=>r+=e}}function wa(e){const{diskNumber:t=0}=e;return t}function ua(e){const{diskOffset:t=0}=e;return t}function fa(e,t){const{availableSize:n=ee}=e;return t>n}function pa(e,{diskNumber:t=0,diskOffset:n=0}){return e.offset-n-(t?e.Le:0)}async function ha(e,t){const{writable:n}=e,r=n.getWriter();try{await r.ready,e.size+=Ra(t),await r.write(t)}finally{r.releaseLock()}}function ma(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function ya(e){return i.floor(e.getTime()/1e3)}function ba(e){return e>=qs&&Qs>=e}function ga(e){return i.min(Qs,i.max(qs,e))}function za(e,t,n,r){const s=t[n]===$?e.options[n]:t[n];return s===$?r:s}function xa(e){return e+5*(i.floor(e/16383)+1)}function Fa(e,t,n){e.setUint16(t,n,!0)}function Sa(e,t,n){e.setUint32(t,n,!0)}function va(e,t,n){e.setBigUint64(t,n,!0)}function Da(e,t,n){e.set(t,n)}function Ra(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Ta({version:e,bitFlag:t,compressionMethod:n,uncompressedSize:r,compressedSize:s,lastModDate:a,rawLastModDate:i,rawFilename:o,_e:c,$e:l,extraFieldLength:d}){const w=da(26),u=w.array,f=Pe(u);if(w.uint16(e),w.uint16(t),w.uint16(n),i===$){const e=new h(1),t=Pe(e);Fa(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Fa(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),i=e[0]}return w.uint32(i),w.ct(4),c||s!==$?w.uint32(c?A:s):w.ct(4),l||r!==$?w.uint32(l?A:r):w.ct(4),w.uint16(Ra(o)),w.uint16(d),{Qe:u,Je:f,rawLastModDate:i}}function Ea(e,t,n,r,s){let a=0;return t&&(a|=W),n&&(a|=8),8!=s&&9!=s||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),r&&(a|=1),a}const Ca=1048576,Ua=".zip.js-temp",ka=1048576,Aa=1048576,Ma=".zip.js-temp";try{we({baseURI:void 0===x&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===x?location.href:k&&"SCRIPT"===k.tagName.toUpperCase()&&k.src||new w("zip-legacy.min.js",x.baseURI).href})}catch{}we({workerURI:e=>{const t="text/javascript",n=(e=>{let t=0,n=0,r=0,s=new f(1024),a=0,i=0;for(;!i;){i=c(1);const e=c(2);if(0==e)l();else if(1==e)d(ge(ye),ge(be));else{if(2!=e)throw u("invalid deflate block type");d(...w())}}return s.subarray(0,a);function o(){if(t>=e.length)throw u("unexpected end of deflate data");return e[t++]}function c(e){for(;e>r;)n|=o()<<r,r+=8;const t=n&(1<<e)-1;return n>>>=e,r-=e,t}function l(){n=0,r=0;const e=o()|o()<<8;t+=2,h(a+e);for(let t=0;e>t;t++)s[a++]=o()}function d(e,t){let n=p(e);for(;256!=n;){if(256>n)h(a+1),s[a++]=n;else{const e=n-257,r=ue[e]+c(fe[e]),i=p(t),o=pe[i]+c(he[i]);h(a+r);const l=a-o;for(let e=0;r>e;e++)s[a++]=s[l+e]}n=p(e)}}function w(){const e=c(5)+257,t=c(5)+1,n=c(4)+4,r=new f(19);for(let e=0;n>e;e++)r[me[e]]=c(3);const s=ge(r),a=new f(e+t);let i=0;for(;i<a.length;){const e=p(s);if(16>e)a[i++]=e;else if(16==e){const e=a[i-1];let t=c(2)+3;for(;t--;)a[i++]=e}else i+=17==e?c(3)+3:c(7)+11}return[ge(a.subarray(0,e)),ge(a.subarray(e))]}function p(e){const{o:t,symbols:n}=e;let r=0,s=0,a=0;for(let e=1;15>=e;e++){r|=c(1);const i=t[e];if(i>r-s)return n[a+(r-s)];a+=i,s=s+i<<1,r<<=1}throw u("invalid huffman code")}function h(e){if(s.length<e){let t=2*s.length;for(;e>t;)t*=2;const n=new f(t);n.set(s.subarray(0,a)),s=n}}})((e=>{const t=(e=(e+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,n=[];for(let r=0;t>r;r+=4){const t=ze.indexOf(e[r])<<18|ze.indexOf(e[r+1])<<12|(63&ze.indexOf(e[r+2]))<<6|63&ze.indexOf(e[r+3]);n.push(t>>16&255),"="!==e[r+2]&&n.push(t>>8&255),"="!==e[r+3]&&n.push(255&t)}return new f(n)})("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"));if(e){const e=new y([n],{type:t});return w.createObjectURL(e)}return"data:"+t+";base64,"+(e=>{let t="";const n=e.length;let r=0;for(;n>r+2;r+=3){const n=e[r]<<16|e[r+1]<<8|e[r+2];t+=ze[n>>18&63]+ze[n>>12&63]+ze[n>>6&63]+ze[63&n]}const s=n-r;if(1===s){const n=e[r]<<16;t+=ze[n>>18&63]+ze[n>>12&63]+"=="}else if(2===s){const n=e[r]<<16|e[r+1]<<8;t+=ze[n>>18&63]+ze[n>>12&63]+ze[n>>6&63]+"="}return t})(n)}}),e.BlobReader=kn,e.BlobWriter=An,e.Data64URIReader=class extends Tn{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const r=e.indexOf(",")+1;n.assign(this,{dataURI:e,Dt:r,size:i.floor(.75*(t-r))})}readUint8Array(e,t){const{Dt:n,dataURI:r}=this,s=new f(t),a=4*i.floor(e/3),o=atob(r.substring(a+n,4*i.ceil((e+t)/3)+n)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),l++;return l<s.length?s.subarray(0,l):s}},e.Data64URIWriter=class extends En{constructor(e){super(),n.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let n,s=t.pending;const a=t.pending.length;for(t.pending="",n=0;n<3*i.floor((a+e.length)/3)-a;n++)s+=r.fromCharCode(e[n]);for(;n<e.length;n++)t.pending+=r.fromCharCode(e[n]);s.length>2?t.data+=S(s):t.pending=s+t.pending}getData(){return this.data+S(this.pending)}},e.ERR_AMBIGUOUS_ARCHIVE=ls,e.ERR_BAD_FORMAT=_r,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=ts,e.ERR_DUPLICATED_NAME=Ls,e.ERR_ENCRYPTED=ss,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=es,e.ERR_EOCDR_NOT_FOUND=$r,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=rs,e.ERR_HTTP_RANGE=mn,e.ERR_HTTP_RESOURCE_CHANGED=yn,e.ERR_INVALID_COMMENT=Vs,e.ERR_INVALID_COMPRESSED_DATA=Et,e.ERR_INVALID_ENCRYPTION_STRENGTH=Ys,e.ERR_INVALID_ENTRY_COMMENT=Hs,e.ERR_INVALID_ENTRY_NAME=Bs,e.ERR_INVALID_EXTRAFIELD_DATA=Xs,e.ERR_INVALID_EXTRAFIELD_TYPE=Gs,e.ERR_INVALID_PASSWORD=Le,e.ERR_INVALID_SIGNATURE=Ve,e.ERR_INVALID_UNCOMPRESSED_SIZE=Tt,e.ERR_INVALID_VERSION=Ws,e.ERR_ITERATOR_COMPLETED_TOO_SOON=bn,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ns,e.ERR_OVERLAPPING_ENTRY=cs,e.ERR_SPLIT_ZIP_FILE=os,e.ERR_UNDEFINED_READER=$s,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=_s,e.ERR_UNSUPPORTED_COMPRESSION=is,e.ERR_UNSUPPORTED_ENCRYPTION=as,e.ERR_UNSUPPORTED_FORMAT=Js,e.ERR_WRITER_NOT_INITIALIZED=gn,e.ERR_ZIP_NOT_EMPTY=ea,e.HttpRangeReader=class extends Qn{constructor(e,t={}){super(e,n.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=Qn,e.Reader=Tn,e.SplitDataReader=Jn,e.SplitDataWriter=_n,e.TextReader=class extends kn{constructor(e){super(new y([e],{type:"text/plain"}))}},e.TextWriter=class extends An{constructor(e){super(e),n.assign(this,{encoding:e,Rt:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,Rt:t}=this,r=await super.getData();if(r.text&&t)return r.text();{const t=new FileReader;return new b((s,a)=>{n.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>a(t.error)}),t.readAsText(r,e)})}}},e.Uint8ArrayReader=class extends Tn{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),n.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends En{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){n.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,n=t.offset+e.length;if(n>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;n>e;)e*=2;const r=t.array;t.array=new f(e),t.array.set(r)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=En,e.ZipReader=ps,e.ZipReaderStream=hs,e.ZipWriter=ia,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:n}=new v;this.readable=t,this.zipWriter=new ia(n,e),this.Ve=new l}transform(e){const t=this.zipWriter;let n;const{readable:r,writable:s}=new v({start(e){n=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return oa(this,this.zipWriter.add(e,r),e=>n.error(e)),{readable:this.readable,writable:s}}writable(e){let t;const{readable:n,writable:r}=new v({start(e){t=e}});return oa(this,this.zipWriter.add(e,n),e=>t.error(e)),r}async close(e,n={}){return await b.all(t.from(this.Ve)),this.zipWriter.close(e,n)}},e.configure=de,e.createBlobTempStream=(e={})=>{const{thresholdBytes:t=ka}=e;return()=>{const e=[];let n,r,s,a=0,i=!1;const o=new R({async write(s){i?await n.write(s):(e.push(s),a+=s.length,a>t&&await(async()=>{const t=new v;r=new d(t.readable).blob(),n=t.writable.getWriter(),i=!0;for(const t of e)await n.write(t);e.length=0})())},async close(){n&&(await n.close(),n=null)}});let c=0;return{writable:o,readable:new D({async pull(t){if(i){if(!s){const e=await r;s=e.stream().getReader()}const{value:e,done:n}=await s.read();n?t.close():t.enqueue(e)}else c<e.length?t.enqueue(e[c++]):t.close()},async cancel(e){s&&await s.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(n){try{await n.abort()}catch{}n=null}r&&(r.catch(()=>{}),r=null),e.length=0}}}},e.createOPFSTempStream=(e={})=>{const{thresholdBytes:t=Ca,directoryName:n=Ua,getDirectory:r=()=>C.storage.getDirectory()}=e;let s;function a(){return s||(s=b.resolve(r()).then(e=>e.getDirectoryHandle(n,{create:!0}))),s}return()=>{const e=[];let n,r,s,i,o=0,c=!1;const l=new R({async write(i){c?await s.write(i):(e.push(i),o+=i.length,o>t&&await(async()=>{const t=await a();n=F.randomUUID(),r=await t.getFileHandle(n,{create:!0}),s=(await r.createWritable()).getWriter(),c=!0;for(const t of e)await s.write(t);e.length=0})())},async close(){s&&(await s.close(),s=null)}});let d=0;return{writable:l,readable:new D({async pull(t){if(c){if(!i){const e=await r.getFile();i=e.stream().getReader()}const{value:e,done:n}=await i.read();n?t.close():t.enqueue(e)}else d<e.length?t.enqueue(e[d++]):t.close()},async cancel(e){i&&await i.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(s){try{await s.close()}catch{}s=null}if(n){try{const e=await a();await e.removeEntry(n)}catch{}r=n=null}e.length=0}}}},e.createSyncAccessHandleTempStream=(e={})=>{const{thresholdBytes:t=Aa,directoryName:n=Ma,getDirectory:r}=e;if(!(r||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new u("createSyncAccessHandle is only available in dedicated workers");const s=r||(()=>C.storage.getDirectory());let a;function o(){return a||(a=b.resolve(s()).then(e=>e.getDirectoryHandle(n,{create:!0}))),a}return()=>{const e=[];let n,r,s=0,a=!1,c=0,l=0;const d=new R({async write(i){a?(r.write(i,{at:c}),c+=i.length):(e.push(i),s+=i.length,s>t&&await(async()=>{const t=await o();n=F.randomUUID();const s=await t.getFileHandle(n,{create:!0});r=await s.createSyncAccessHandle(),a=!0;for(const t of e)r.write(t,{at:c}),c+=t.length;e.length=0})())},close(){r&&r.flush()}});let w=0;return{writable:d,readable:new D({pull(t){if(a){const e=c-l;if(0>=e)return void t.close();const n=new f(i.min(524288,e)),s=r.read(n,{at:l});s?(l+=s,t.enqueue(n.subarray(0,s))):t.close()}else w<e.length?t.enqueue(e[w++]):t.close()}},{highWaterMark:0}),dispose:async()=>{if(r){try{r.close()}catch{}r=null}if(n){try{const e=await o();await e.removeEntry(n)}catch{}n=null}e.length=0}}}},e.getMimeType=()=>"application/octet-stream",e.resetConfiguration=()=>{for(const e of ie)delete oe[e];n.assign(oe,ae)},e.terminateWorkers=async()=>{await b.allSettled(rn.map(e=>(pn(e),e.terminate())))}});
|
|
1
|
+
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:n,String:r,Number:s,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:w,Error:u,Uint8Array:f,Uint16Array:p,Uint32Array:m,DataView:h,Blob:y,Promise:b,TextEncoder:x,TextDecoder:g,document:S,crypto:z,btoa:F,TransformStream:D,ReadableStream:v,WritableStream:E,CompressionStream:R,DecompressionStream:T,navigator:C,Worker:U}="undefined"!=typeof globalThis?globalThis:this||self;var P=void 0!==S?S.currentScript:null;const M=4294967295,I=65535,O=255,k=67324752,L=134695760,Z=L,A=33639248,Y=101010256,j=101075792,V=117853008,N=22,X=20,B=21589,K=2048,H=16384,J=2048,W=1024,G="/",q=30,Q=new o(2107,11,31),_=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",ne="function",re=new f;let se=2;try{typeof C!=te&&C.hardwareConcurrency&&(se=C.hardwareConcurrency)}catch{}const ae={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof R!=te&&R,DecompressionStream:typeof T!=te&&T},ie=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","useCompressionStream","useWebWorkers","transferStreams","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],oe={...ae};function ce(){return oe}function le(e){return i.max(e.chunkSize,64)}function de(e){for(const t of ie){const n=e[t];n!==$&&(oe[t]=n)}}function we(e){for(const t of ie){const n=e[t];n!==$&&(ae[t]=n)}de(e)}const ue=[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],fe=[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],pe=[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],me=[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],he=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ye=new f(288);ye.fill(8,0,144),ye.fill(9,144,256),ye.fill(7,256,280),ye.fill(8,280,288);const be=new f(30).fill(5);function xe(e){const t=new p(16);for(const n of e)t[n]++;t[0]=0;const n=new p(17);for(let e=1;15>=e;e++)n[e+1]=n[e]+t[e];const r=new p(e.length);for(let t=0;t<e.length;t++)e[t]&&(r[n[e[t]]++]=t);return{o:t,symbols:r}}const ge="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Se=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;Se[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const n=Se[t-1][e];Se[t][e]=n>>>8^Se[0][255&n]}const[ze,Fe,De,ve,Ee,Re,Te,Ce]=Se;class Ue{constructor(e){this.l=e||-1}append(e){let t=0|this.l;const n=0|e.length;let r=0;if(n>=8&&e.buffer){const s=new h(e.buffer,e.byteOffset,n),a=n-8;for(;a>=r;r+=8){const e=t^s.getInt32(r,!0),n=s.getInt32(r+4,!0);t=Ce[255&e]^Te[e>>>8&255]^Re[e>>>16&255]^Ee[e>>>24&255]^ve[255&n]^De[n>>>8&255]^Fe[n>>>16&255]^ze[n>>>24&255]}}for(;n>r;r++)t=t>>>8^ze[255&(t^e[r])];this.l=t}get(){return~this.l}}class Pe extends D{constructor(){let e;const t=new Ue;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new f(4);new h(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function Me(e){if(typeof x==te){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new x).encode(e)}function Ie(e,t){const n=new f(e.length+t.length);return n.set(e),n.set(t,e.length),n}function Oe(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function ke(e){return new h(e.buffer,e.byteOffset,e.byteLength)}const Le={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=Le.m(n);return 32===r?e.concat(t):Le.h(t,r,0|n,e.slice(0,e.length-1))},S(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+Le.m(n)},F(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=Le.D(t,e[n-1]&2147483648>>t-1,1)),e},D:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,m:e=>i.round(e/1099511627776)||32,h(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=Le.m(s);return r.push(Le.D(t+a&31,t+a>32?n:r.pop(),1)),r}},Ze={bytes:{v(e){const t=Le.S(e)/8,n=new f(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},R(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3&~n||(t.push(r),r=0);return 3&n&&t.push(Le.D(8*(3&n),r)),t}}},Ae=class{constructor(e){const t=this;t.blockSize=512,t.T=[1732584193,4023233417,2562383102,271733878,3285377520],t.C=[1518500249,1859775393,2400959708,3395469782],e?(t.U=e.U.slice(0),t.P=e.P.slice(0),t.M=e.M):t.reset()}reset(){const e=this;return e.U=e.T.slice(0),e.P=[],e.M=0,e}update(e){const t=this;"string"==typeof e&&(e=Ze.I.R(e));const n=t.P=Le.concat(t.P,e),r=t.M,s=t.M=r+Le.S(e);if(s>9007199254740991)throw new u("Cannot hash more than 2^53 - 1 bits");const a=new m(n);let i=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);s>=e;e+=t.blockSize)t.O(a.subarray(16*i,16*(i+1))),i+=1;return n.splice(0,16*i),t}L(){const e=this;let t=e.P;const n=e.U;t=Le.concat(t,[Le.D(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e.M/4294967296)),t.push(0|e.M);t.length;)e.O(t.splice(0,16));return e.reset(),n}Z(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}A(e,t){return t<<e|t>>>32-e}O(e){const n=this,r=n.U,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=r[0],o=r[1],c=r[2],l=r[3],d=r[4];for(let e=0;79>=e;e++){16>e||(s[e]=n.A(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=n.A(5,a)+n.Z(e,o,c,l)+d+s[e]+n.C[i.floor(e/20)]|0;d=l,l=c,c=n.A(30,o),o=a,a=t}r[0]=r[0]+a|0,r[1]=r[1]+o|0,r[2]=r[2]+c|0,r[3]=r[3]+l|0,r[4]=r[4]+d|0}},Ye={importKey:e=>new Ye.Y(Ze.bytes.R(e)),j(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new u("invalid params to pbkdf2");const s=1+(r>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(s),w=new h(d);let f=0;const p=Le;for(t=Ze.bytes.R(t),l=1;(s||1)>f;l++){for(a=i=e.encrypt(p.concat(t,[l])),o=1;n>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(s||1)>f&&o<a.length;o++)w.setInt32(f,a[o]),f+=4}return d.slice(0,r/8)},Y:class{constructor(e){const t=this,n=t.V=Ae,r=[[],[]];t.N=[new n,new n];const s=t.N[0].blockSize/32;e.length>s&&(e=(new n).update(e).L());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.N[0].update(r[0]),t.N[1].update(r[1]),t.X=new n(t.N[0])}reset(){const e=this;e.X=new e.V(e.N[0]),e.B=!1}update(e){this.B=!0,this.X.update(e)}digest(){const e=this,t=e.X.L(),n=new e.V(e.N[1]).update(t).L();return e.reset(),n}encrypt(e){if(this.B)throw new u("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},je=typeof z!=te&&typeof z.getRandomValues==ne,Ve="Invalid password",Ne="Invalid signature",Xe="zipjs-abort-check-password";function Be(e){if(je)return z.getRandomValues(e);throw new u("Crypto API not supported")}const Ke=16,He={name:"PBKDF2"},Je=n.assign({hash:{name:"HMAC"}},He),We=n.assign({iterations:1e3,hash:{name:"SHA-1"}},He),Ge=["deriveBits"],qe=[8,12,16],Qe=[16,24,32],_e=10,$e=[0,0,0,0],et=typeof z!=te,tt=et&&z.subtle,nt=et&&typeof tt!=te,rt=Ze.bytes,st=class{constructor(e){const t=this;t.K=[[[],[],[],[],[]],[[],[],[],[],[]]],t.K[0][0][0]||t.H();const n=t.K[0][4],r=t.K[1],s=e.length;let a,i,o,c=1;if(4!==s&&6!==s&&8!==s)throw new u("invalid aes key size");for(t.C=[i=e.slice(0),o=[]],a=s;4*s+28>a;a++){let e=i[a-1];(a%s===0||8===s&&a%s===4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],a%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-s]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.J(e,0)}decrypt(e){return this.J(e,1)}H(){const e=this.K[0],t=this.K[1],n=e[4],r=t[4],s=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!n[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[d]=a,r[a]=d,l=s[c=s[o=s[d]]];let w=16843009*l^65537*c^257*o^16843008*d,u=257*s[a]^16843008*a;for(let n=0;4>n;n++)e[n][d]=u=u<<24^u>>>8,t[n][a]=w=w<<24^w>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}J(e,t){if(4!==e.length)throw new u("invalid aes block size");const n=this.C[t],r=n.length/4-2,s=[0,0,0,0],a=this.K[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let w,f,p,m=e[0]^n[0],h=e[t?3:1]^n[1],y=e[2]^n[2],b=e[t?1:3]^n[3],x=4;for(let e=0;r>e;e++)w=i[m>>>24]^o[h>>16&255]^c[y>>8&255]^l[255&b]^n[x],f=i[h>>>24]^o[y>>16&255]^c[b>>8&255]^l[255&m]^n[x+1],p=i[y>>>24]^o[b>>16&255]^c[m>>8&255]^l[255&h]^n[x+2],b=i[b>>>24]^o[m>>16&255]^c[h>>8&255]^l[255&y]^n[x+3],x+=4,m=w,h=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=d[m>>>24]<<24^d[h>>16&255]<<16^d[y>>8&255]<<8^d[255&b]^n[x++],w=m,m=h,h=y,y=b,b=w;return s}},at=class{constructor(e,t){this.W=e,this.G=t,this._=t}reset(){this._=this.G}update(e){return this.$(this.W,e,this._)}ee(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}te(e){0===(e[0]=this.ee(e[0]))&&(e[1]=this.ee(e[1]))}$(e,t,n){let r;if(!(r=t.length))return[];const s=Le.S(t);for(let s=0;r>s;s+=4){this.te(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return Le.F(t,s)}},it=Ye.Y;let ot=et&&nt&&typeof tt.importKey==ne,ct=et&&nt&&typeof tt.deriveBits==ne;class lt extends D{constructor({password:e,rawPassword:t,encryptionStrength:n,checkPasswordOnly:r}){super({start(){wt(this,e,t,n)},async transform(e,t){const n=this,{password:s,strength:a,ne:i,ready:o}=n;s?(await(async(e,t,n,r)=>{const s=await ft(e,t,n,mt(r,0,qe[t])),a=mt(r,qe[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new u(Ve)})(n,a,s,mt(e,0,qe[a]+2)),e=mt(e,qe[a]+2),r?t.error(new u(Xe)):i()):await o;const c=new f(e.length-_e-(e.length-_e)%Ke);t.enqueue(ut(n,e,c,0,_e,!0))},async flush(e){const{re:t,se:n,pending:r,ready:s}=this;if(n&&t){await s;const a=mt(r,0,r.length-_e),i=mt(r,r.length-_e);let o=re;if(a.length){const e=yt(rt,a);n.update(e);const r=t.update(e);o=ht(rt,r)}const c=mt(ht(rt,n.digest()),0,_e);let l=r.length<_e?1:0;for(let e=0;_e>e;e++)l|=c[e]^i[e];if(l)throw new u(Ne);e.enqueue(o)}}})}}class dt extends D{constructor({password:e,rawPassword:t,encryptionStrength:n}){let r;super({start(){wt(this,e,t,n)},async transform(e,t){const n=this,{password:r,strength:s,ne:a,ready:i}=n;let o=re;r?(o=await(async(e,t,n)=>{const r=Be(new f(qe[t]));return Ie(r,await ft(e,t,n,r))})(n,s,r),a()):await i;const c=new f(o.length+e.length-e.length%Ke);c.set(o,0),t.enqueue(ut(n,e,c,o.length,0))},async flush(e){const{re:t,se:n,pending:s,ready:a}=this;if(n&&t){await a;let i=re;if(s.length){const e=t.update(yt(rt,s));n.update(e),i=ht(rt,e)}r.signature=ht(rt,n.digest()).slice(0,_e),e.enqueue(Ie(i,r.signature))}}}),r=this}}function wt(e,t,r,s){n.assign(e,{ready:new b(t=>e.ne=t),password:pt(t,r),strength:s-1,pending:re})}function ut(e,t,n,r,s,a){const{re:i,se:o,pending:c}=e;c.length&&(t=Ie(c,t));const l=t.length-s;let d;for(n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new f(t)).set(n,0)}return e})(n,r+(l-l%Ke)),d=0;l-Ke>=d;d+=Ke){const e=yt(rt,mt(t,d,d+Ke));a&&o.update(e);const s=i.update(e);a||o.update(s),n.set(ht(rt,s),d+r)}return e.pending=mt(t,d),n}async function ft(e,r,s,a){e.password=null;const i=await(async(e,t,n,r,s)=>{if(!ot)return Ye.importKey(t);try{return await tt.importKey("raw",t,n,!1,s)}catch{return ot=!1,Ye.importKey(t)}})(0,s,Je,0,Ge),o=await(async(e,t,n)=>{if(!ct)return Ye.j(t,e.salt,We.iterations,n);try{return await tt.deriveBits(e,t,n)}catch{return ct=!1,Ye.j(t,e.salt,We.iterations,n)}})(n.assign({salt:a},We),i,8*(2*Qe[r]+2)),c=new f(o),l=yt(rt,mt(c,0,Qe[r])),d=yt(rt,mt(c,Qe[r],2*Qe[r])),w=mt(c,2*Qe[r]);return n.assign(e,{keys:{key:l,ae:d,passwordVerification:w},re:new at(new st(l),t.from($e)),se:new it(d)}),w}function pt(e,t){return t===$?Me(e):t}function mt(e,t,n){return e.subarray(t,n)}function ht(e,t){return e.v(t)}function yt(e,t){return e.R(t)}class bt extends D{constructor({password:e,rawPassword:t,passwordVerification:n,checkPasswordOnly:r}){super({start(){gt(this,e,t,n)},transform(e,t){const n=this;if(n.password||n.rawPassword){const t=St(n,e.subarray(0,12));if(n.password=n.rawPassword=null,0!=(t.at(-1)^n.passwordVerification))throw new u(Ve);e=e.subarray(12)}r?t.error(new u(Xe)):t.enqueue(St(n,e))}})}}class xt extends D{constructor({password:e,rawPassword:t,passwordVerification:n}){super({start(){gt(this,e,t,n)},transform(e,t){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const t=Be(new f(12));t[11]=n.passwordVerification,r=new f(e.length+t.length),r.set(zt(n,t),0),s=12}else r=new f(e.length),s=0;r.set(zt(n,e),s),t.enqueue(r)}})}}function gt(e,t,r,s){n.assign(e,{password:t,rawPassword:r,passwordVerification:s}),((e,t,r)=>{const s=[305419896,591751049,878082192];if(n.assign(e,{keys:s,ie:new Ue(s[0]),oe:new Ue(s[2])}),r)for(let t=0;t<r.length;t++)Ft(e,r[t]);else for(let n=0;n<t.length;n++)Ft(e,t.charCodeAt(n))})(e,t,r)}function St(e,t){const n=new f(t.length);for(let r=0;r<t.length;r++)n[r]=Dt(e)^t[r],Ft(e,n[r]);return n}function zt(e,t){const n=new f(t.length);for(let r=0;r<t.length;r++)n[r]=Dt(e)^t[r],Ft(e,t[r]);return n}function Ft(e,t){let[,n]=e.keys;e.ie.append([t]);const r=~e.ie.get();n=Et(i.imul(Et(n+vt(r)),134775813)+1),e.oe.append([n>>>24]);const s=~e.oe.get();e.keys=[r,n,s]}function Dt(e){const t=2|e.keys[2];return vt(i.imul(t,1^t)>>>8)}function vt(e){return 255&e}function Et(e){return 4294967295&e}const Rt="Invalid uncompressed size",Tt="Invalid compressed data";class Ct extends D{constructor(e,{chunkSize:t,CompressionStreamZlib:n,CompressionStream:r}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l,deflate64:d}=e,w=this;let u,f,p,m=super.readable;const y=c&&s&&!d&&(!a||o)&&!(!i||!r);a&&!o||!c||y||(u=new Pe,m=Ot(m,u)),s&&(y?(p=new Ut,m=kt(m,new r("gzip")),m=Ot(m,p)):m=It(m,i,{level:l,chunkSize:t},r,n,r)),a&&(o?m=Ot(m,new xt(e)):(f=new dt(e),m=Ot(m,f))),Mt(w,m,()=>{let e;a&&!o&&(e=f.signature),a&&!o||!c||(e=y?p.signature:new h(u.value.buffer).getUint32(0)),w.signature=e})}}class Ut extends D{constructor(){let e,t=10,n=new f(0);super({transform(e,r){if(t){const n=i.min(t,e.length);if(t-=n,!(e=e.subarray(n)).length)return}const s=n.length+e.length;if(8>=s)return void(n=Ie(n,e));const a=s-8,o=i.min(a,n.length);r.enqueue(Ie(n.subarray(0,o),e.subarray(0,a-o))),n=Ie(n.subarray(o),e.subarray(a-o))},flush(){const t=ke(n);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class Pt extends D{constructor(e,{chunkSize:t,DecompressionStreamZlib:n,DecompressionStream:r}){super({});const{zipCrypto:s,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let w,f,p=super.readable;a&&(s?p=Ot(p,new bt(e)):(f=new lt(e),p=Ot(p,f))),c&&(p=It(p,l,{chunkSize:t,deflate64:d},r,n,r),p=(e=>{const t=e.getReader();return new v({async pull(e){let n;try{n=await t.read()}catch(e){if(e&&e.message)throw e;const t=new u(Tt);throw t.cause=e,t}const{value:r,done:s}=n;s?e.close():e.enqueue(r)},cancel:e=>t.cancel(e)})})(p)),a&&!s||!i||(w=new Pe,p=Ot(p,w)),Mt(this,p,()=>{if((!a||s)&&i){const e=new h(w.value.buffer);if(o!=e.getUint32(0,!1))throw new u(Ne)}})}}function Mt(e,t,r){t=Ot(t,new D({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function It(e,t,n,r,s,a){const i=t&&r?r:s||a,o=n.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new i(o,n)}catch(e){if(!t)throw e;if(s)c=new s(o,n);else{if(!a)throw e;c=new a(o,n)}}return kt(e,c)}function Ot(e,t){return e.pipeThrough(t)}function kt(e,t){const n=t.writable.getWriter(),r=e.getReader();return(async()=>{try{for(;;){await n.ready;const e=await r.read();if(e.done){await n.close();break}await n.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(n,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(r,e)}})(),t.readable}const Lt="data",Zt="deflate",At="inflate";class Yt extends D{constructor(e,t){super({});const r=this,{codecType:s}=e;let a;s.startsWith(Zt)?a=Ct:s.startsWith(At)&&(a=Pt),r.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new D({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){n.assign(r,{inputSize:i})}}),d=new D({transform(t,n){if(t&&t.length&&(n.enqueue(t),r.outputSize+=t.length,e.outputSize!==$&&r.outputSize>e.outputSize))throw new u(Rt)},flush(){const{signature:e}=o;n.assign(r,{signature:e,inputSize:i})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class jt extends D{constructor(e){const t=[];let n=0;function r(){const r=new f(e);let s=0;for(;e>s;){const n=t[0],a=e-s;n.length>a?(r.set(n.subarray(0,a),s),t[0]=n.subarray(a),s+=a):(r.set(n,s),s+=n.length,t.shift())}return n-=e,r}s.isFinite(e)&&e>=1||(e=65536),super({transform(s,a){for(t.push(s),n+=s.length;n>e;)a.enqueue(r())},flush(e){n&&e.enqueue(((e,t)=>{const n=new f(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n})(t,n))}})}}const Vt={type:"module"},Nt="error";let Xt,Bt,Kt,Ht,Jt=!0;try{Jt=typeof structuredClone==ne&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class Wt{constructor(e,{readable:t,writable:r},{options:s,config:a,ce:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:w}=i;return n.assign(e,{le:!0,de:(e.de||0)+1,readable:t.pipeThrough(new jt(le(a))).pipeThrough(new Gt(i),{signal:w}),writable:r,options:n.assign({},s),workerURI:l,transferStreams:c,terminate:()=>new b(t=>{const{we:n,le:r}=e;n?(r?e.ue=t:(n.terminate(),t()),e.fe=null):t()}),pe(){if(e.le){const{ue:t}=e;t&&(e.ue=null,e.me=!0,e.we.terminate(),t()),e.le=!1,d(e)}}}),Xt===$&&(Xt=typeof U!=te),(o&&Xt?_t:Qt)(e,a)}}class Gt extends D{constructor({onstart:e,onprogress:t,size:n,onend:r}){let s=0;super({async start(){e&&await qt(e,n)},async transform(e,r){s+=e.length,t&&await qt(t,s,n),r.enqueue(e)},async flush(){r&&await qt(r,s)}})}}async function qt(e,...t){try{await e(...t)}catch{}}function Qt(e,t){return{run:()=>(async({options:e,readable:t,writable:n,pe:r},s)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{const t=e.codecType.startsWith(Zt)?s.CompressionStreamZlib:s.DecompressionStreamZlib;t&&!t.he||(e.useCompressionStream=!0)}a=new Yt(e,s),await t.pipeThrough(a).pipeThrough(new jt(le(s))).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:r,inputSize:i,outputSize:o}=a;return{signature:r,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{r()}})(e,t)}}function _t(e,t){const{baseURI:r,chunkSize:s}=t;let{wasmURI:a}=t;if(!e.fe){let i;typeof a==ne&&(a=a());try{i=en(e.workerURI,r,e)}catch{return Xt=!1,Qt(e,t)}n.assign(e,{we:i,me:!1,fe:{run:()=>(async(e,t)=>{let r,s;const a=new b((e,t)=>{r=e,s=t});n.assign(e,{reader:null,writer:null,ye:r,be:s,result:a});const{readable:i,options:o}=e,{writable:c,closed:l,xe:d}=(e=>{const t=new AbortController,{writable:n,readable:r}=new D,s=r.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:n,closed:s,xe:()=>t.abort()}})(e.writable);let w;try{w=nn({type:"start",options:o,config:t,readable:i,writable:c},e)}catch(t){d();try{await l}catch{}throw e.pe(),t}w||n.assign(e,{reader:i.getReader(),writer:c.getWriter()});try{const e=await a;return await u(),await l,e}catch(e){await u(),d();try{await l}catch{}throw e}async function u(){if(!w&&!c.locked)try{await c.getWriter().close()}catch{}}})(e,{chunkSize:s,wasmURI:a,baseURI:r})}})}return e.fe}function $t(e){const{we:t}=e;if(t)try{t.terminate()}catch{}e.fe=null}function en(e,t,r,s,a=!0){let i,o,c;if(Kt===$||Bt!==e){const n=typeof e==ne;o=n?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){s===$&&(s=!1),s&&(c=Vt);try{i=new U(o,c)}catch(a){if(d)try{w.revokeObjectURL(o)}catch{}if(n&&d)return en(e,t,r,s,!1);if(s)throw a;return en(e,t,r,!0,!1)}}else{s===$&&(s=!0),s&&(c=Vt);try{o=new w(o,t)}catch{}try{i=new U(o,c)}catch(n){if(s)throw n;return en(e,t,r,!1,a)}}Bt=e,Kt=o,Ht=c}else i=new U(Kt,Ht);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:r,value:s,messageId:a,result:i,error:o}=e,{reader:c,writer:l,ye:d,be:w,pe:p,de:m}=t,h=()=>t.de!=m;try{if(o){const{message:e,stack:t,code:r,name:s,outputSize:a}=o,i=new u(e);n.assign(i,{stack:t,code:r,name:s,outputSize:a}),y(i)}else{if("pull"==r){const{value:e,done:n}=await c.read();h()||nn({type:Lt,value:e,done:n,messageId:a},t)}r==Lt&&(await l.ready,await l.write(new f(s)),h()||nn({type:"ack",messageId:a},t)),"close"==r&&y(null,i)}}catch(o){h()||($t(t),y(o))}function y(e,t){h()||(e?w(e):d(t),l&&l.releaseLock(),p())}})(e,r)),i.addEventListener(Nt,e=>tn(e,r)),i.addEventListener("messageerror",e=>tn(e,r)),i}function tn(e,t){e.preventDefault&&e.preventDefault();const{be:n,writer:r,pe:s}=t;$t(t),n&&(n(e.error||new u(e.message||Nt)),r&&r.releaseLock(),s())}function nn(e,{we:t,writer:n,transferStreams:r}){try{const{value:n,readable:s,writable:a}=e,i=[];if(n&&(e.value=Oe(n),i.push(e.value.buffer)),r&&Jt?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{Jt=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw n&&n.releaseLock(),e}}let rn=[];const sn=[];let an,on,cn=0;async function ln(e,t){const{options:n,config:r}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=n,{workerURI:w,maxWorkers:u}=r;t.transferStreams=a||a===$&&r.transferStreams;const f=!c&&!l&&!d;return t.useWebWorkers=!f&&(i||i===$&&r.useWebWorkers),t.workerURI=t.useWebWorkers&&w?w:$,n.useCompressionStream=o||o===$&&r.useCompressionStream,(await(async()=>{const n=rn.find(e=>!e.le);if(n)return pn(n),new Wt(n,e,t,p);if(rn.length<u){const n={ge:cn};return cn++,rn.push(n),new Wt(n,e,t,p)}return new b(n=>{sn.push({resolve:n,stream:e,Se:t}),on=r.workerStarvationTimeout,dn()})})()).run();function p(e){if(wn(),sn.length){const[{resolve:t,stream:n,Se:r}]=sn.splice(0,1);t(new Wt(e,n,r,p)),dn()}else e.we?(pn(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;s.isFinite(r)&&r>=0&&(e.me?e.me=!1:e.ze=setTimeout(async()=>{rn=rn.filter(t=>t!=e);try{await e.terminate()}catch{}},r))})(e,t)):rn=rn.filter(t=>t!=e)}}function dn(){!an&&sn.length&&s.isFinite(on)&&on>=0&&(an=setTimeout(un,on))}function wn(){an&&(clearTimeout(an),an=null)}function un(){if(an=null,sn.length){const[{resolve:e,stream:t,Se:r}]=sn.splice(0,1),s=n.assign({},r,{useWebWorkers:!1,workerURI:$});e(new Wt({},t,s,fn)),dn()}}function fn(){wn(),dn()}function pn(e){const{ze:t}=e;t&&(clearTimeout(t),e.ze=null)}const mn="HTTP error ",hn="HTTP Range not supported",yn="HTTP resource changed",bn="Writer iterator completed too soon",xn="Writer not initialized",gn="Content-Range",Sn="Range",zn="GET",Fn="bytes",Dn=16777216,vn="writable",En=Symbol();class Rn{constructor(){this.size=0}init(){this.initialized=!0}}class Tn extends Rn{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:n=le(ce())}={}){const r=this;let s=0;return new v({async pull(a){const o=t===$?n:i.min(n,t-s),c=await rr(r,e+s,o);a.enqueue(c),s+n>t||t===$&&!c.length&&o?a.close():s+=n}})}}class Cn extends Rn{constructor(){super();const e=this,t=new E({write(t){if(!e.initialized)throw new u(xn);return e.writeUint8Array(Oe(t))}});n.defineProperty(e,vn,{get:()=>t})}writeUint8Array(){}}let Un,Pn;class Mn extends Tn{constructor(e){super(),n.assign(this,{blob:e,size:e.size}),Pn||(Pn=(async()=>{try{const e=new y([new f(3)]).slice(1,2).stream().getReader();let t=0,n=await e.read();for(;!n.done;)t+=n.value.length,n=await e.read();Un=1==t}catch{Un=!1}})())}createReadable(e){const{blob:t,size:n}=this,{offset:r=0,size:s=n-r}=e||{};return r||n>s?Un?t.slice(r,r+s).stream():super.createReadable(e):t.stream()}async readUint8Array(e,t){const n=this,r=e+t,s=e||r<n.size?n.blob.slice(e,r):n.blob;let a=await s.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,r)),new f(a)}}class In extends Rn{constructor(e){super();const t=this,r=new D,s=[];e&&s.push(["Content-Type",e]),n.defineProperty(t,vn,{get:()=>r.writable}),t.blob=new d(r.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class On extends Tn{constructor(e,t){super(),Ln(this,e,t)}async init(){await Zn(this,Gn,Kn),super.init()}createReadable(e){const t=this,{useRangeHeader:n,forceRangeRequests:r,size:a}=t;if((n||r)&&a!==$){const{offset:n=0,size:r=a-n}=e||{};if(r>0&&a>n)return((e,t,n)=>{let r,a=t,o=0,c=n;return new v({start:()=>l(),async pull(e){r||await l();const{value:t,done:n}=await r.read();if(n)throw new u(hn);const s=t.length>o?t.subarray(0,o):t;o-=s.length,c-=s.length,s.length&&e.enqueue(s),o||(await(async()=>{const e=r;r=$,await e.cancel()})(),c||e.close())},cancel:e=>r&&r.cancel(e)});async function l(){const t=i.min(e.maximumRangeSize,c),n=await Gn(zn,e,Xn(e,a,t));if(206!=n.status)throw new u(hn);const l=n.headers.get(gn);if(l){const e=s(l.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=a)throw new u(hn)}Nn(e,n),Vn(e,n),a+=t,o=t,r=n.body.getReader()}})(t,n,i.min(r,a-n))}return super.createReadable(e)}readUint8Array(e,t){return An(this,e,t,Gn,Kn)}}class kn extends Tn{constructor(e,t){super(),Ln(this,e,t)}async init(){await Zn(this,qn,Hn),super.init()}readUint8Array(e,t){return An(this,e,t,qn,Hn)}}function Ln(e,t,r){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:l=Dn,fetch:d}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,n.assign(e,{url:t,options:r,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c,maximumRangeSize:l,fetch:d})}async function Zn(e,t,n){const{url:r,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ce(),{protocol:n}=new w(e,t);return"http:"==n||"https:"==n})(r)&&(a||i)&&(void 0===s||s)){const r=await t(zn,e,Xn(e,o?-22:void 0)),s=r.headers.get("Accept-Ranges");if(!(i||s&&s.toLowerCase()==Fn))throw new u(hn);{if(o){const t=new f(await r.arrayBuffer());206==r.status&&t.length==N&&(e.Fe=t)}Vn(e,r);const s=Yn(r);s===$?await Wn(e,t,n):e.size=s}}else await Wn(e,t,n)}async function An(e,t,n,r,a){const{useRangeHeader:i,forceRangeRequests:o,Fe:c,size:l,options:d}=e;if(i||o){if(c&&t==l-N&&n==N)return c;if(l>t&&0!==n){t+n>l&&(n=l-t);const a=await r(zn,e,Xn(e,t,n));if(206!=a.status)throw new u(hn);const i=a.headers.get(gn);if(i){const e=s(i.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new u(hn)}Nn(e,a),Vn(e,a);const o=new f(await a.arrayBuffer());if(o.length!=n)throw new u(hn);return o}return re}{const{data:r}=e;return r||await a(e,d),e.data.subarray(t,t+n)}}function Yn(e){const t=e.headers.get(gn);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function jn({headers:e}){return{De:e.get("Etag")||$,lastModified:e.get("Last-Modified")||$}}function Vn(e,t){const{checkResourceChanges:n,ve:r}=e;n&&!r&&206==t.status&&(e.ve=jn(t))}function Nn(e,t){const{checkResourceChanges:r,ve:s,size:a}=e;if(r){const e=Yn(t);if(e!==$&&a!==$&&e!=a)throw new u(yn);if(s){const e=jn(t);if(n.entries(s).some(([t,n])=>n!==$&&e[t]!==$&&n!=e[t]))throw new u(yn)}}}function Xn(e,t=0,r=1){return n.assign({},Bn(e),{[Sn]:Fn+"="+(0>t?t:t+"-"+(t+r-1))})}function Bn({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?n.fromEntries(t):t}async function Kn(e){await Jn(e,Gn)}async function Hn(e){await Jn(e,qn)}async function Jn(e,t){const n=await t(zn,e,Bn(e));e.data=new f(await n.arrayBuffer()),e.size=e.data.length}async function Wn(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=await t("HEAD",e,Bn(e)),a=r.headers.get("Content-Length");a&&!r.headers.get("Content-Encoding")?e.size=s(a):await n(e,e.options)}}async function Gn(e,{fetch:t=fetch,options:r,url:s},a){const i=await t(s,n.assign({},r,{method:e,headers:a}));if(400>i.status)return i;throw 416==i.status?new u(hn):new u(mn+(i.statusText||i.status))}function qn(e,{url:t},r){return new b((s,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const n=t.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(n)}),s({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new u(hn):new u(mn+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new u("Network error")),!1),i.open(e,t),r)for(const e of n.entries(r))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class Qn extends Tn{constructor(e,t={}){super(),n.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new kn(e,t):new On(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class _n extends Tn{constructor(e){super(),this.Ee=e}async init(){const e=this,{Ee:t}=e;e.Re=0,await b.all(t.map(e=>nr(e))),e.Te=t.map(t=>{const n=e.size;return e.size+=t.size,n}),super.init()}Ce(e){const{Te:t,size:n}=this,r=t.at(e);return r===$?n:r}async readUint8Array(e,t){const n=this,{Ee:r}=this;let s,a=0,o=e;for(;r[a]&&o>=r[a].size;)o-=r[a].size,a++;const c=r[a];if(c){const r=c.size;if(o+t>r){const a=r-o;s=Ie(await rr(c,o,a),await n.readUint8Array(e+a,t-a))}else s=await rr(c,o,t)}else s=re;return n.Re=i.max(a,n.Re),s}}class $n extends Rn{constructor(e,t=4294967295){super();const r=this;let s,a,i;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new E({async write(t){if(t===En)return void(i&&await l());const{availableSize:n}=r;if(i)t.length<n?await c(t):(await c(t.subarray(0,n)),await l(),t.length>n&&await this.write(t.subarray(n)));else{const{value:n,done:o}=await e.next();if(o&&!n)throw new u(bn);s=n,s.size=0,s.maxSize&&(r.maxSize=s.maxSize),r.availableSize=r.maxSize,await nr(s),a=n.writable,i=a.getWriter(),await this.write(t)}},async close(){i&&(await i.ready,await d())},async abort(e){i&&await i.abort(e)}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),s.size+=t,r.availableSize-=t)}async function l(){await d(),r.diskOffset+=s.size,r.diskNumber++,i=null,r.availableSize=r.maxSize}async function d(){await i.close()}n.defineProperty(r,vn,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(En)}finally{e.releaseLock()}}}class er{constructor(e){return t.isArray(e)&&(e=new _n(e)),e instanceof v&&(e={readable:e}),e}}class tr{constructor(e){return e.writable===$&&typeof e.next==ne&&(e=new $n(e)),e instanceof E&&(e={writable:e}),e.size===$&&(e.size=0),e}}async function nr(e,t){if(!e.init||e.initialized)return b.resolve();await e.init(t)}function rr(e,t,n){return e.readUint8Array(t,n)}const sr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function ar(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let n=0;n<e.length;n++)t+=sr[e[n]];return t}})(e):new g(t,{ignoreBOM:!0}).decode(e)}const ir="filename",or="rawFilename",cr="comment",lr="rawComment",dr="uncompressedSize",wr="compressedSize",ur="offset",fr="diskNumberStart",pr="lastModDate",mr="rawLastModDate",hr="lastAccessDate",yr="creationDate",br="rawCreationDate",xr="internalFileAttributes",gr="externalFileAttributes",Sr="msdosAttributesRaw",zr="msdosAttributes",Fr="msDosCompatible",Dr="zip64",vr="encrypted",Er="version",Rr="versionMadeBy",Tr="zipCrypto",Cr="directory",Ur="executable",Pr="compressionMethod",Mr="signature",Ir="extraField",Or="unixMode",kr="setuid",Lr="setgid",Zr="sticky",Ar=[ir,or,dr,wr,pr,mr,cr,lr,hr,yr,br,ur,fr,xr,gr,Sr,zr,Fr,Dr,vr,Er,Rr,Tr,Cr,Ur,Pr,Mr,Ir,"extraFieldUnix","extraFieldInfoZip","uid","gid",Or,kr,Lr,Zr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Yr{constructor(e){Ar.forEach(t=>this[t]=e[t])}}const jr="password",Vr="rawPassword",Nr="passThrough",Xr="signal",Br="checkAmbiguity",Kr="useWebWorkers",Hr="useCompressionStream",Jr="transferStreams",Wr="preventClose",Gr="offset",qr="strictness",Qr="strict",_r="tolerant",$r="File format is not recognized",es="End of central directory not found",ts="End of Zip64 central directory locator not found",ns="Central directory header not found",rs="Local file header not found",ss="Zip64 extra field not found",as="File contains encrypted entry",is="Encryption method not supported",os="Compression method not supported",cs="Split zip file",ls="Overlapping entry found",ds="Ambiguous archive",ws="utf-8",us="cp437",fs=[[dr,M],[wr,M],[ur,M],[fr,I]],ps={[I]:{Ue:Ys,bytes:4},[M]:{Ue:js,bytes:8}};class ms{constructor(e,t={}){n.assign(this,{reader:new er(e),options:t,config:ce(),Pe:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;const{config:s}=t;if(await nr(r),r.size!==$&&r.readUint8Array||(r=new Mn(await new d(r.readable).blob()),await nr(r)),r.size<N)throw new u($r);const a=Ds(Os(t,e,qr),Os(t,e,Br)),o=a==Qr,c=a!=_r,w=((e,t)=>e!==$?e:t==Qr?0:t==_r?1/0:I)(Os(t,e,"maxAppendedDataSize"),a),{Me:f,Ie:p}=await(async(e,t,n)=>{const{size:r}=e,s=i.min(r,65557),a={count:vs};let o,c,l=0;for await(const[n,i,d,w,u]of Cs(e,s)){const s=As(n,w+20);if(u+N+s==r){const s=await Ps(e,n,i,w,u,r,a);if(s==Ts){if(o||(o=Us(d,w,u)),l++,!t||l>1)break}else s!=Rs||c||(c=Us(d,w,u))}}return o||(o=c),o||(o=await(async(e,t,n)=>{const{size:r}=e,s=i.min(r,t==1/0?r:65557+t);let a,o;for await(const[t,i,c,l,d]of Cs(e,s)){const s=Us(c,l,d);a||(a=s);const w=await Ps(e,t,i,l,d,r,n);if(w==Ts)return s;w!=Rs||o||(o=s)}return o||a})(e,n,a)),{Me:o,Ie:l}})(r,c,w);if(!f)throw Ys(ke(await rr(r,0,4)))==L?new u(cs):new u(es);c&&p>1&&Is("multiple end of central directory records");const m=ke(f);let h=Ys(m,12),y=Ys(m,16);const x=f.offset,g=As(m,20),S=x+N+g;r.size-S>w&&Is("appended data");let z=As(m,4);const F=r.Re||0;let v,E,R=As(m,6),T=As(m,10),C=0;const U=y==M||h==M||T==I||R==I;if(y!=M&&R!=I&&(y+=Fs(r,R)),U){const e=f.offset<X?re:await rr(r,f.offset-X,X),t=ke(e);if(e.length==X&&Ys(t,0)==V){y=Fs(r,Ys(t,4))+js(t,8);let e=await rr(r,y,56),n=ke(e);const s=f.offset-X-56;if((56>e.length||Ys(n,0)!=j)&&y!=s&&s>=0){const t=y;y=s,y>t&&(C=y-t),e=await rr(r,y,56),n=ke(e)}if(56>e.length||Ys(n,0)!=j)throw new u(ts);E=!0,z==I?z=Ys(n,16):o&&z!=Ys(n,16)&&Is("mismatched zip64 end of central directory record"),R==I?R=Ys(n,20):o&&R!=Ys(n,20)&&Is("mismatched zip64 end of central directory record"),T==I?T=js(n,32):o&&T!=js(n,32)&&Is("mismatched zip64 end of central directory record"),h==M?h=js(n,40):o&&h!=js(n,40)&&Is("mismatched zip64 end of central directory record"),y=Fs(r,R)+js(n,48)+C}}const P=h,k=f.offset-(E?76:0);if(y<r.size||(C=r.size-y-h-N,y=r.size-h-N),F!=z)throw new u(cs);if(0>y)throw new u($r);let Z=0,Y=await rr(r,y,h),B=ke(Y);if(h){if(4>Y.length)throw new u($r);const e=k-h;if(y!=e&&R==z){let t=!(Ys(B,Z)==A);if(t||0>e||e+4>r.size||(t=Ys(ke(await rr(r,e,4)),0)==A),t){const t=y;y=e,y>t&&(C+=y-t),Y=await rr(r,y,h),B=ke(Y)}}}const K=k-y;if(h==K||0>K||R!=z||(h=K,Y=await rr(r,y,h),B=ke(Y)),0>y||y>=r.size)throw new u($r);v=y;const q=Os(t,e,"filenameEncoding"),Q=Os(t,e,"commentEncoding"),_=o?new l:$;let ee;for(let a=0;T>a;a++){const c=new ys(r,s,t.options);if(Z+46>Y.length||Ys(B,Z)!=A)throw new u(ns);bs(c,B,Z+6);const l=!!c.bitFlag.languageEncodingFlag,w=Z+46,f=w+c.filenameLength,p=f+c.extraFieldLength,m=As(B,Z+4),h=!(m>>8),y=m>>8==3,x=Y.subarray(w,f),g=As(B,Z+32),S=p+g,z=Y.subarray(p,S),F=l,E=l,R=Ys(B,Z+38),U=R&O,P={readOnly:!!(1&U),hidden:!!(2&U),system:!!(4&U),directory:!!(16&U),archive:!!(32&U)},M=Ys(B,Z+42),k=Os(t,e,"decodeText")||ar,L=F?ws:q||us,j=E?ws:Q||us;let V=k(x,L);V===$&&(V=ar(x,L));let N=k(z,j);N===$&&(N=ar(z,j)),n.assign(c,{index:a,versionMadeBy:m,msDosCompatible:h,compressedSize:0,uncompressedSize:0,Oe:g,offset:M,diskNumberStart:As(B,Z+34),internalFileAttributes:As(B,Z+36),externalFileAttributes:R,msdosAttributesRaw:U,msdosAttributes:P,rawFilename:x,filenameUTF8:F,commentUTF8:E,rawExtraField:Y.subarray(f,p),rawComment:z,filename:V,comment:N}),xs(c,c,B,Z+6),c.offset+=C,v=i.min(Fs(r,c.diskNumberStart)+c.offset,v),o&&(_.has(c.filename)&&(ee=!0),_.add(c.filename));const X=c.externalFileAttributes>>16&I;c.unixMode===$&&16877&X&&(c.unixMode=X);const K=!!(c.unixMode&J),te=!!(c.unixMode&W),ne=!!(512&c.unixMode),re=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&X),se=c.unixMode!==$&&(61440&c.unixMode)==H,ae=(61440&X)==H;n.assign(c,{setuid:K,setgid:te,sticky:ne,unixExternalUpper:X,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:re,directory:se||ae||h&&P.directory||c.filename.endsWith(G)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const ie=new Yr(c);ie.getData=(e,n)=>c.getData(e,ie,t.Pe,n),ie.arrayBuffer=async e=>{const n=new D,[r]=await b.all([new d(n.readable).arrayBuffer(),c.getData(n,ie,t.Pe,e)]);return r},Z=S;const{onprogress:oe}=e;if(oe)try{await oe(a+1,T,new Yr(c))}catch{}yield ie}o&&Z!=P&&Is("trailing central directory data"),ee&&Is("duplicate filename"),o&&(C||T&&v>0)&&Is("prepended data");const te=Os(t,e,"extractPrependedData"),ne=Os(t,e,"extractAppendedData");return te&&(t.prependedData=v>0?await rr(r,0,v):re),t.comment=g?await rr(r,x+N,g):re,ne&&(t.appendedData=S<r.size?await rr(r,S,r.size-S):re),!0}async getEntries(e={}){const t=[];for await(const n of this.getEntriesGenerator(e))t.push(n);return t}async close(){}}class hs{constructor(e={}){const{readable:t,writable:n}=new D,r=new ms(t,e).getEntriesGenerator();this.readable=new v({async pull(e){const{done:t,value:n}=await r.next();if(t)return e.close();const s={...n,readable:(()=>{const{readable:e,writable:t}=new D;if(n.getData)return(async()=>{try{await n.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete s.getData,e.enqueue(s)}}),this.writable=n}}class ys{constructor(e,t,r){n.assign(this,{reader:e,config:t,options:r})}async getData(e,t,n,r={}){const s=this,{reader:a,index:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:w,config:f,bitFlag:p,signature:m,rawLastModDate:h,uncompressedSize:y,compressedSize:b}=s,{dataDescriptor:x}=p,g=t.localDirectory={},S=Fs(a,c)+o,z=await rr(a,S,q),F=ke(z);let D=Os(s,r,jr),v=Os(s,r,Vr);const R=Os(s,r,Nr);if(D=D&&D.length&&D,v=v&&v.length&&v,l&&99!=l.originalCompressionMethod)throw new u(os);if(0!=w&&8!=w&&9!=w&&!R)throw new u(os);if(z.length<q||Ys(F,0)!=k)throw new u(rs);bs(g,F,4);const{extraFieldLength:T,filenameLength:C}=g,U=Ds(Os(s,r,qr),Os(s,r,Br))==Qr;let P=re;if(U&&(C||T)){const e=await rr(a,S+q,C+T);P=e.subarray(0,C),g.rawExtraField=e.subarray(C)}else g.rawExtraField=T?await rr(a,S+q+C,T):re;xs(s,g,F,4,!0),U&&((e,t,n)=>{const{rawFilename:r}=e;(n.length!=r.length||n.some((e,t)=>e!=r[t]))&&Is("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&Is("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&Is("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||Is("mismatched local file header (signature or sizes)")})(s,g,P);const{lastAccessDate:M,creationDate:I}=g;M&&(t.lastAccessDate=M),I&&(t.creationDate=I);const L=s.encrypted&&g.encrypted&&!R,A=L&&!l;if(R||(t.zipCrypto=A),L){if(!A&&l.strength===$)throw new u(is);if(!D&&!v)throw new u(as)}const Y=S+q+C+T,j=b,V=a.createReadable({offset:Y,size:j}),N=Os(s,r,Xr),X=Os(s,r,"checkPasswordOnly");let B=Os(s,r,"checkOverlappingEntry");const K=Os(s,r,"checkOverlappingEntryOnly");K&&(B=!0);const{onstart:H,onprogress:J,onend:W}=r,G=9==w;let Q=Os(s,r,Hr);G&&(Q=!1);const _={options:{codecType:At,password:D,rawPassword:v,zipCrypto:A,encryptionStrength:l&&l.strength,signed:Os(s,r,"checkSignature")&&!R,passwordVerification:A&&(x?h>>>8&O:m>>>24&O),outputSize:R?b:y,signature:m,compressed:0!=w&&!R,encrypted:L,useWebWorkers:Os(s,r,Kr),useCompressionStream:Q,transferStreams:Os(s,r,Jr),deflate64:G,checkPasswordOnly:X},config:f,ce:{signal:N,size:j,onstart:H,onprogress:J,onend:W}};let ee;B&&await(async({reader:e,ke:t,index:n,offset:r,signature:s,compressedSize:a,uncompressedSize:i,Le:o,dataDescriptor:c,extraFieldZip64:l,Pe:d})=>{let w=0;if(c&&(w=l?20:12),w){const n=await rr(e,o+a,w+4);if(n.length==w+4&&Ys(ke(n),0)==Z){const e=Ys(ke(n),4);let r,o;l?(r=js(ke(n),8),o=js(ke(n),16)):(r=Ys(ke(n),8),o=Ys(ke(n),12)),(t.encrypted&&!t.zipCrypto||e==s)&&r==a&&o==i&&(w+=4)}}const f={start:r,end:o+a+w,ke:t};for(const[e,t]of d)if(e!=n&&f.start<t.end&&t.start<f.end){const e=new u(ls);throw e.Ze=t.ke,e}d.set(n,f)})({reader:a,ke:t,index:i,offset:S,signature:m,compressedSize:b,uncompressedSize:y,Le:Y,dataDescriptor:x||g.bitFlag.dataDescriptor,extraFieldZip64:d||g.extraFieldZip64,Pe:n});try{if(!K){X&&(e=new E),e=new tr(e),await nr(e,R?b:y),({writable:ee}=e);const{outputSize:t}=await ln({readable:V,writable:ee},_);if(e.size+=t,t!=(R?b:y))throw new u(Rt)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!X||t.message!=Xe)throw t}finally{Os(s,r,Wr)||!ee||ee.locked||await ee.getWriter().close()}return X||K?$:e.getData?e.getData():ee}}function bs(e,t,r){const s=e.rawBitFlag=As(t,r+2),a=!(1&~s),i=Ys(t,r+6);n.assign(e,{encrypted:a,version:As(t,r),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&K)==K},rawLastModDate:i,lastModDate:ks(i),filenameLength:As(t,r+22),extraFieldLength:As(t,r+24)})}function xs(e,t,r,s,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=ke(i);let w=0;try{for(;w<i.length;){const e=As(d,w),t=As(d,w+2);l.set(e,{type:e,data:i.slice(w+4,w+4+t)}),w+=4+t}}catch{}const f=As(r,s+4);n.assign(t,{signature:Ys(r,s+10),compressedSize:Ys(r,s+14),uncompressedSize:Ys(r,s+18)});const p=l.get(1);p&&(((e,t)=>{t.zip64=!0;const n=ke(e.data),r=fs.filter(([e,n])=>t[e]==n),s=r.reduce((e,[,t])=>e+ps[t].bytes,0);if(e.data.length<s)throw new u(ss);for(let s=0,a=0;s<r.length;s++){const[i,o]=r[s],c=ps[o];t[i]=e[i]=c.Ue(n,a),a+=c.bytes}})(p,t),t.extraFieldZip64=p);const m=l.get(28789);m&&(gs(m,ir,or,t,e),t.extraFieldUnicodePath=m);const h=l.get(25461);h&&(gs(h,cr,lr,t,e),t.extraFieldUnicodeComment=h);const y=l.get(39169);y&&y.data.length>=7?(((e,t,r)=>{const s=ke(e.data),a=Zs(s,4);n.assign(e,{Ae:Zs(s,0),vendorId:Zs(s,2),strength:a,originalCompressionMethod:r,compressionMethod:As(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const b=l.get(10);b&&(((e,t)=>{const r=ke(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=As(r,a),n=As(r,a+2);1==t&&(s=e.data.slice(a+4,a+4+n)),a+=4+n}}catch{}try{if(s&&24==s.length){const r=ke(s),a=r.getBigUint64(0,!0),i=r.getBigUint64(8,!0),o=r.getBigUint64(16,!0);n.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:Ls(a),lastAccessDate:Ls(i),creationDate:Ls(o)};n.assign(e,c),n.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const x=l.get(30805);if(x)Ss(x,t,!1),t.extraFieldUnix=x;else{const e=l.get(30837);e&&(Ss(e,t,!0),t.extraFieldInfoZip=e)}const g=l.get(B);g&&(((e,t,n)=>{if(!e.data.length)return;const r=ke(e.data),s=Zs(r,0),a=[],i=[];n?(1&~s||(a.push(pr),i.push(mr)),2&~s||(a.push(hr),i.push("rawLastAccessDate")),4&~s||(a.push(yr),i.push(br))):5>e.data.length||(a.push(pr),i.push(mr));let c=1;a.forEach((n,s)=>{if(e.data.length>=c+4){const a=Ys(r,c);t[n]=e[n]=new o(1e3*(0|a));const l=i[s];e[l]=a}c+=4})})(g,t,a),t.extraFieldExtendedTimestamp=g);const S=l.get(6534);S&&(t.extraFieldUSDZ=S)}function gs(e,t,r,s,a){if(5>e.data.length)return void(e.valid=!1);const i=ke(e.data),o=new Ue;o.append(a[r]);const c=ke(new f(4));c.setUint32(0,o.get(),!0);const l=Ys(i,1);n.assign(e,{version:Zs(i,0),[t]:ar(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==Ys(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function Ss(e,t,r){try{const s=ke(e.data);let a,i;if(r){let t=0;const r=Zs(s,t++),o=Zs(s,t++);a=zs(e.data.subarray(t,t+o)),t+=o;const c=Zs(s,t++);i=zs(e.data.subarray(t,t+c)),n.assign(e,{version:r,uid:a,gid:i})}else 4>e.data.length||(a=As(s,0),i=As(s,2),n.assign(e,{uid:a,gid:i}));a!==$&&(t.uid=a),i!==$&&(t.gid=i)}catch{}}function zs(e){const t=new f(4);return t.set(e,0),new h(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Fs(e,t){return e.Ce?e.Ce(t):0}function Ds(e,t){return e===$?t?Qr:"balanced":e}const vs=64,Es=0,Rs=1,Ts=2;async function*Cs(e,t){const n=e.size-t,r=await rr(e,n,t),s=ke(r);for(let e=r.length-N;e>=0;e--)Ys(s,e)==Y&&(yield[s,n,r,e,n+e])}function Us(e,t,n){return{offset:n,buffer:e.slice(t,t+N).buffer}}async function Ps(e,t,n,r,s,a,i){const o=As(t,r+10),c=Ys(t,r+12),l=Ys(t,r+16);if(o==I||c==M||l==M)return await Ms(e,t,n,s-X,a,i)==V?Ts:Es;if(!o&&!c)return Rs;const d=As(t,r+6);for(const r of[s-c,Fs(e,d)+l])if(await Ms(e,t,n,r,a,i)==A)return Ts;return Es}async function Ms(e,t,n,r,s,a){return 0>r||r+4>s?$:n>r?a.count>0?(a.count--,Ys(ke(await rr(e,r,4)),0)):$:Ys(t,r-n)}function Is(e){const t=new u(ds);throw t.reason=e,t}function Os(e,t,n){return t[n]===$?e.options[n]:t[n]}function ks(e){const t=(4294901760&e)>>16,n=e&I;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}catch{}}function Ls(e){return new o(s(e/a(1e4)-a(116444736e5)))}function Zs(e,t){return e.getUint8(t)}function As(e,t){return e.getUint16(t,!0)}function Ys(e,t){return e.getUint32(t,!0)}function js(e,t){return s(e.getBigUint64(t,!0))}var Vs=n.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:ds,ERR_BAD_FORMAT:$r,ERR_CENTRAL_DIRECTORY_NOT_FOUND:ns,ERR_ENCRYPTED:as,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:ts,ERR_EOCDR_NOT_FOUND:es,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:ss,ERR_INVALID_COMPRESSED_DATA:Tt,ERR_INVALID_PASSWORD:Ve,ERR_INVALID_SIGNATURE:Ne,ERR_INVALID_UNCOMPRESSED_SIZE:Rt,ERR_LOCAL_FILE_HEADER_NOT_FOUND:rs,ERR_OVERLAPPING_ENTRY:ls,ERR_SPLIT_ZIP_FILE:cs,ERR_UNSUPPORTED_COMPRESSION:os,ERR_UNSUPPORTED_ENCRYPTION:is,ZipReader:ms,ZipReaderStream:hs});const Ns="File already exists",Xs="Zip file comment exceeds 64KB",Bs="File entry comment exceeds 64KB",Ks="File entry name exceeds 64KB",Hs="Version exceeds 65535",Js="The strength must equal 1, 2, or 3",Ws="Extra field type exceeds 65535",Gs="Extra field data exceeds 64KB",qs=-2147483648,Qs=2147483647,_s="Zip64 is not supported (set the 'zip64' option to 'true')",$s="Undefined uncompressed size",ea="Undefined reader",ta="Zip file not empty",na=new f([7,0,2,0,65,69,3,0,0]),ra="infozip",sa="unix";let aa=0;const ia=[];class oa{constructor(e,t={}){e=new tr(e);const{availableSize:r=ee,maxSize:s=ee}=e,a=r>0&&r!==ee&&s>0&&s!==ee;n.assign(this,{writer:e,Ye:a,options:t,config:ce(),files:new c,je:new l,offset:t[Gr]===$?e.size||e.writable.size||0:t[Gr],Ve:t[Gr]===$?0:t[Gr]-(e.size||e.writable.size||0),Ne:new l,Xe:0,Be:$})}async prependZip(e){if(this.je.size)throw new u(ta);e=new er(e),await nr(e);const{ZipReader:t}=await b.resolve().then(()=>Vs),r=new t(e.readable),s=await r.getEntries();await r.close(),await nr(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.je=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:r,lastAccessDate:s,creationDate:a,rawFilename:i,bitFlag:o,encrypted:c,uncompressedSize:l,compressedSize:d,zip64:w}=e;let{compressionMethod:u,Ke:f,He:p,Je:m,We:h,Ge:y,rawExtraField:b}=e;const{level:x,languageEncodingFlag:g,dataDescriptor:S}=o;f=f||re,p=p||re,m=m||re,h=h||re,y=y||re,b=b||re,e.extraFieldAES&&(u=99);const z=Ra(f,p,m,h,y,b),F=w&&l>=M,D=w&&d>=M,v=-7&Ca(x,g,S,c,u)|x<<1,{qe:E,Qe:R}=Ta({version:t,bitFlag:v,compressionMethod:u,uncompressedSize:l,compressedSize:d,rawLastModDate:r,rawFilename:i,_e:D,$e:F,extraFieldLength:z}),{signature:T}=e;return T!==$&&Da(R,10,T),n.assign(e,{$e:F,_e:D,et:w&&e.offset>=M,diskNumberStart:0,nt:!1,Ke:f,He:p,Je:m,We:h,Ge:y,rawExtraField:b,extendedTimestamp:m.length>0||h.length>0,st:1+(s?2:0)+(a?4:0),qe:E,Qe:R}),[e.filename,e]}))}async add(e="",t,r={}){const s=this;r=n.assign({},r);const{Ne:i,config:c}=s;let l,d;aa<c.maxWorkers?aa++:await new b(e=>ia.push(e));try{if(e=e.trim(),Sa(s,r,Cr)&&!e.endsWith(G)&&(e+=G),s.je.has(e))throw new u(Ns);return s.je.add(e),d=!0,l=(async(e,t,r,s)=>{const i=((e,t,n)=>{t=t.trim();let r=Sa(e,n,Fr),s=Sa(e,n,Rr,r?20:768);const a=Sa(e,n,Ur),i=Sa(e,n,"uid"),o=Sa(e,n,"gid");let c=Sa(e,n,Or),l=Sa(e,n,"unixExtraFieldType"),d=Sa(e,n,kr),w=Sa(e,n,Lr),f=Sa(e,n,Zr);if(i!==$&&(0>i||i>M))throw new u("Invalid uid (must be integer 0..2^32-1)");if(o!==$&&(0>o||o>M))throw new u("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>I))throw new u("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==ra&&l!==sa)throw new u("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===sa&&(i!==$&&i>I||o!==$&&o>I))throw new u("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||i===$&&o===$||(l=ra);let p=Sa(e,n,Sr),m=Sa(e,n,zr);const h=p!==$||m!==$;if(i!==$||o!==$||c!==$||l?(r=!1,s=s&I|768):h&&(r=!0,s&=O),p!==$&&(0>p||p>O))throw new u("Invalid msdosAttributesRaw (must be integer 0..255)");if(m&&"object"!=typeof m)throw new u("Invalid msdosAttributes (must be an object with boolean flags)");if(s>I)throw new u(Hs);let y=Sa(e,n,gr,0);!n[Cr]&&t.endsWith(G)&&(n[Cr]=!0);const b=Sa(e,n,Cr);let x;return b?(t.endsWith(G)||(t+=G),0===y&&(y=16,r||(y|=16877<<16))):r||0!==y||(y=a?493<<16:27525120),r||(x=y>>16&I,c=c===$?x:c&I,d?c|=J:d=!!(c&J),w?c|=W:w=!!(c&W),f?c|=512:f=!!(512&c),b&&(c|=H),y=(c&I)<<16|y&O),({msdosAttributesRaw:p,msdosAttributes:m}=((e,t)=>{if(e!==$)e&=O;else if(t!==$){const{readOnly:n,hidden:r,system:s,directory:a,archive:i}=t;let o=0;n&&(o|=1),r&&(o|=2),s&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&O}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,m)),h&&(y=y&M|p&O),{name:t,it:{versionMadeBy:s,msDosCompatible:r,externalFileAttributes:y,unixExternalUpper:x,uid:i,gid:o,unixMode:c,unixExtraFieldType:l,setuid:d,setgid:w,sticky:f,msdosAttributesRaw:p,msdosAttributes:m}}})(e,t,s);({name:t}=i);const c=((e,t,n)=>{const r=Sa(e,n,"encodeText",Me);let s=r(t);if(s===$&&(s=Me(t)),Ra(s)>I)throw new u(Ks);const a=n[cr]||"";let i=r(a);if(i===$&&(i=Me(a)),Ra(i)>I)throw new u(Bs);const c=Sa(e,n,Er,20);if(c>I)throw new u(Hs);const l=Sa(e,n,pr,new o),d=Sa(e,n,hr),w=Sa(e,n,yr),p=Sa(e,n,xr,0),m=Sa(e,n,Nr);let h,y;m||(h=Sa(e,n,jr),y=Sa(e,n,Vr));const b=Sa(e,n,"encryptionStrength",3),x=Sa(e,n,Tr),g=Sa(e,n,"extendedTimestamp",!0),S=Sa(e,n,"keepOrder",!0),z=Sa(e,n,Kr),F=Sa(e,n,Jr),D=Sa(e,n,"bufferedWrite"),v=Sa(e,n,"createTempStream"),E=Sa(e,n,"dataDescriptorSignature",!0),R=Sa(e,n,Xr),T=Sa(e,n,"useUnicodeFileNames",!0),C=Sa(e,n,Pr);if(!m&&C!==$&&0!==C&&8!==C)throw new u("Compression method not supported");let U=Sa(e,n,"level"),P=Sa(e,n,Hr),M=Sa(e,n,"dataDescriptor");D&&M===$&&(M=!1),(M===$||x)&&(M=!0),U!==$&&6!=U&&(P=!1),P||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(U=0);const O=Sa(e,n,Dr);if(!x&&(h!==$||y!==$)&&(1>b||b>3))throw new u(Js);let k=re;const L=n[Ir];if(L){let e=0,t=0;L.forEach(t=>e+=4+Ra(t)),k=new f(e);const n=ke(k);L.forEach((e,r)=>{if(r>I)throw new u(Ws);if(Ra(e)>I)throw new u(Gs);Fa(n,t,r),Fa(n,t+2,Ra(e)),Ea(k,e,t+4),t+=4+Ra(e)})}return{comment:a,it:{rawFilename:s,rawComment:i,version:c,lastModDate:l,lastAccessDate:d,creationDate:w,internalFileAttributes:p,passThrough:m,password:h,rawPassword:y,encryptionStrength:b,zipCrypto:x,extendedTimestamp:g,keepOrder:S,useWebWorkers:z,transferStreams:F,bufferedWrite:D,createTempStream:v,dataDescriptorSignature:E,signal:R,useUnicodeFileNames:T,compressionMethod:C,level:U,useCompressionStream:P,dataDescriptor:M,zip64:O,rawExtraField:k}}})(e,t,s),{comment:l}=c,d=s[Ir];let w;e.files.set(t,$);try{const o=await(async(e,t,{it:n},r)=>{const{passThrough:s,zipCrypto:a,password:i,rawPassword:o,encryptionStrength:c}=n;let{dataDescriptor:l,zip64:d,level:w,compressionMethod:f}=n,p=0,m=0;if(s){if(!t)throw new u(ea);if(m=r[dr],m===$)throw new u($s)}const h=!0===d,y=Sa(e,r,vr),b=!!t&&(!!(i&&Ra(i)||o&&Ra(o))||s&&y);t||(w=0,f=0);const x=b?a?12:16+4*c:0;t&&(t=new er(t),await nr(t),s?(r.uncompressedSize=m,p=za(m)+x):t.size===$?(l=!0,(d||d===$)&&(d=!0,m=p=4294967296)):(r.uncompressedSize=m=t.size,p=za(m)+x));const g=h||m>=M,S=h||p>=M;if(g||S){if(!1===d)throw new u(_s);d=!0}return d=d||!1,{reader:t,it:{dataDescriptor:l,zip64:d,$e:g,_e:S,uncompressedSize:m,level:w,compressionMethod:f,encrypted:b}}})(e,r,c,s);({reader:r}=o);const l=fa(e.writer),d=ua(e.writer),p=(e=>{const{rawFilename:t,lastModDate:n,lastAccessDate:r,creationDate:s,level:a,zip64:i,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:l,directory:d,rawExtraField:w,encryptionStrength:f,extendedTimestamp:p,passThrough:m,encrypted:h,$e:y,_e:b,uncompressedSize:x}=e;let{version:g,compressionMethod:S}=e;const z=!d&&(S===$?a===$||a>0:0!==S);let F;const D=m||!z,v=i&&(e.bufferedWrite||!l||!y&&!b||D),E=v||i&&l&&(y||b);if(i&&(y||b)){const e=20,t=wa(e);if(t.uint16(1),t.uint16(e-4),F=t.array,v&&(t.ot(x),D)){const e=h?o?12:16+4*f:0;t.ot(m?0:x+e)}}else F=re;let R,T,C,U,P;if(h&&!o){const e=wa(Ra(na)+2);e.uint16(39169),e.bytes(na),R=e.array,R[8]=f}else R=re;if(p){const e=ba(n);if(xa(e)){const t=9+(r?4:0)+(s?4:0),n=wa(t);U=1+(r?2:0)+(s?4:0),n.uint16(B),n.uint16(t-4),n.uint8(U),n.uint32(e),r&&n.uint32(ga(ba(r))),s&&n.uint32(ga(ba(s))),C=n.array}else C=re;try{const e=ya(n),t=wa(36);t.uint16(10),t.uint16(32),t.ct(4),t.uint16(1),t.uint16(24),t.ot(e),t.ot(ya(r)||e),t.ot(ya(s)||e),T=t.array}catch{T=re}}else T=C=re;try{const{uid:t,gid:n,unixExtraFieldType:r}=e;if(r!=ra||t===$&&n===$)if(r!=sa||t===$&&n===$)P=re;else{const e=wa(8);e.uint16(30805),e.uint16(4),e.uint16((t===$?0:t)&I),e.uint16((n===$?0:n)&I),P=e.array}else{const e=da(t),r=da(n),s=3+e.length+r.length,a=wa(4+s);a.uint16(30837),a.uint16(s),a.uint8(1),a.uint8(e.length),a.bytes(e),a.uint8(r.length),a.bytes(r),P=a.array}}catch{P=re}S===$&&(S=z?8:0),i&&(g=g>45?g:45),h&&!o&&(g=g>51?g:51,R[9]=S,S=99);const M=E?Ra(F):0,O=M+Ra(R,C,T,P,w);if(O>I)throw new u(Gs);const{qe:L,Qe:Z,rawLastModDate:A}=Ta({version:g,bitFlag:Ca(a,c,l,h,S),compressionMethod:S,uncompressedSize:x,lastModDate:_>n?_:n>Q?Q:n,rawFilename:t,_e:b,$e:y,extraFieldLength:O}),Y=wa(q+Ra(t)+O),j=Y.array,V=ke(j);return Y.uint32(k),Y.bytes(L),Y.bytes(t),E&&Y.bytes(F),Y.bytes(R),Y.bytes(C),Y.bytes(T),Y.bytes(P),Y.bytes(w),l&&(b||Da(V,18,0),y||Da(V,22,0)),{lt:j,wt:V,qe:L,Qe:Z,lastModDate:n,rawLastModDate:A,encrypted:h,compressed:z,version:g,compressionMethod:S,st:U,Ke:re,ut:M,Je:C,We:T,Ge:P,He:R,extraFieldLength:O}})(s=n.assign({},s,i.it,c.it,o.it,{internalFileAttribute:c.it.internalFileAttributes,externalFileAttribute:i.it.externalFileAttributes,signature:s[Mr],offset:e.offset-l,diskNumberStart:d})),m=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:n})=>{let r,s=re,a=0,i=e?20:12;return n&&(i+=4),t&&(s=new f(i),r=ke(s),n&&(a=4,Da(r,0,Z))),{ft:s,ht:r,yt:a}})(s),h=Ra(p.lt,m.ft);w=await(async(e,t,r,s,i)=>{const{files:o,writer:c}=e,{keepOrder:l,dataDescriptor:d,signal:w}=i,{bt:p}=s,m=e.options.usdz,h=e.Be;let y,x,g,S,z,F,v,R={},T=0;o.set(t,R),e.Be=R;try{let x;l&&(x=h&&h.lock,R.lock=new b(e=>g=e)),i.bufferedWrite||!l||e.xt||e.Xe||!d?(y=!0,e.Xe++,v=i.createTempStream?await i.createTempStream():new D($,$,{highWaterMark:ee}),v.size=0,await nr(c)):(v=c,await C()),await nr(v);const P=fa(c);if(e.Ye){delete e.Ye;const t=new f(4);Da(ke(t),0,L),await ha(c,t),e.offset+=4}m&&!y&&la(s,e.offset-P);const{lt:I}=p;y||(await x,await U());const k=ua(c),Z=ma(e,c);if(R.diskNumberStart=k,y||(z=!0,F=c.size,await ha(v,I)),R=await(async(e,t,{diskNumberStart:r,lock:s},i,o,c)=>{const{bt:l,gt:d,St:w}=i,{qe:f,Qe:p,lastModDate:m,rawLastModDate:h,encrypted:y,compressed:b,version:x,compressionMethod:g,Ke:S,ut:z,Je:F,st:D,We:v,Ge:E,He:R}=l,{ft:T}=d,{rawFilename:C,lastAccessDate:U,creationDate:P,password:I,rawPassword:k,level:L,zip64:Z,$e:A,_e:Y,zipCrypto:j,dataDescriptor:V,directory:N,executable:X,versionMadeBy:B,rawComment:K,rawExtraField:H,useWebWorkers:J,transferStreams:W,onstart:G,onprogress:q,onend:Q,signal:_,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:ne,internalFileAttributes:re,externalFileAttributes:se,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:we,msdosAttributesRaw:ue,msdosAttributes:fe,useCompressionStream:pe,passThrough:me}=c,he={lock:s,versionMadeBy:B,zip64:Z,directory:!!N,executable:!!X,filenameUTF8:!0,rawFilename:C,commentUTF8:!0,rawComment:K,Ke:S,ut:z,Je:F,We:v,Ge:E,He:R,rawExtraField:H,extendedTimestamp:te,msDosCompatible:ne,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:r,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:we,msdosAttributesRaw:ue,msdosAttributes:fe};let{signature:ye,uncompressedSize:be}=c,xe=0;me||(be=0);const{writable:ge}=t;if(e){const n=e.createReadable?e.createReadable():e.readable,r=e.size,s={options:{codecType:Zt,level:L,rawPassword:k,password:I,encryptionStrength:ee,zipCrypto:y&&j,passwordVerification:y&&j&&h>>8&O,signed:!me,compressed:b&&!me,encrypted:y&&!me,useWebWorkers:J,useCompressionStream:pe,transferStreams:W},config:o,ce:{signal:_,size:r,onstart:G,onprogress:q,onend:Q}};try{const e=await ln({readable:n,writable:ge},s);if(xe=e.outputSize,t.size+=xe,me||(be=e.inputSize,ye=e.signature),!Y&&xe>=M||!A&&be>=M)throw new u(_s)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:n,bt:r,gt:s},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{Qe:l,encrypted:d}=r,{ht:w,yt:u}=s;d&&!o||e===$||(Da(l,10,e),c&&Da(w,u,e)),i?c&&(va(w,u+4,a(t)),va(w,u+12,a(n))):(Da(l,14,t),Da(l,18,n),c&&(Da(w,u+4,t),Da(w,u+8,n)))})({signature:ye,compressedSize:xe,uncompressedSize:be,bt:l,gt:d},c),V&&await ha(t,T),n.assign(he,{uncompressedSize:be,compressedSize:xe,lastModDate:m,rawLastModDate:h,creationDate:P,lastAccessDate:U,encrypted:y,zipCrypto:j,size:w+xe,compressionMethod:g,version:x,qe:f,Qe:p,signature:ye,st:D,$e:A,_e:Y}),he})(r,v,R,s,e.config,i),y||(z=!1),o.set(t,R),R.filename=t,y){if(await b.all([v.writable.getWriter().close(),x]),await C(),S=!0,F=c.size,await U(),R.diskNumberStart=ua(c),R.offset=ma(e,c),m){const t=s.St;la(s,e.offset-fa(c)),R.size+=s.St-t}(({rawFilename:e,encrypted:t,zip64:n,ut:r,signature:s,compressedSize:i,uncompressedSize:o,$e:c,_e:l},d,{dataDescriptor:w})=>{if(w||(t||Da(d,14,s),l||Da(d,18,i),c||Da(d,22,o)),n&&r){const t=q+Ra(e)+4;va(d,t,a(o)),va(d,t+8,a(i))}})(R,p.wt,i),await ha(c,p.lt),await(async(e,t,n)=>{const r=t.writable.getWriter();try{await e.pipeTo(new E({async write(e){var t;await r.ready,await r.write(e),t=Ra(e),T+=t}}),{preventClose:!0,preventAbort:!0,signal:n})}finally{r.releaseLock()}})(v.readable,c,w),c.size+=v.size,S=!1}else R.diskNumberStart=k,R.offset=Z;return e.offset+=R.size,R}catch(n){if(S||z){if(e.hasCorruptedEntries=!0,n)try{n.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=T)}throw o.delete(t),n}finally{if(y&&e.Xe--,g&&g(),x&&x(),y&&v&&v.dispose)try{await v.dispose()}catch{}}async function C(){e.xt=!0;const{zt:t}=e;e.zt=new b(t=>x=()=>{e.xt=!1,t()}),await t}async function U(){pa(c,Ra(p.lt))&&await c.closeDisk()}})(e,t,r,{bt:p,gt:m,St:h},s)}catch(n){throw e.files.delete(t),n}return n.assign(w,{name:t,comment:l,extraField:d}),new Yr(w)})(s,e,t,r),i.add(l),await l}catch(t){throw d&&s.je.delete(e),t}finally{i.delete(l);const e=ia.shift();e?e():aa--}}remove(e){const{je:t,files:n}=this;if("string"==typeof e&&(e=n.get(e)),e&&e.filename!==$){const{filename:r}=e;if(t.has(r)&&n.has(r))return t.delete(r),n.delete(r),!0}return!1}async close(e=re,n={}){const{Ne:r,writer:s}=this,{writable:i}=s;if(Ra(e)>I)throw new u(Xs);for(;r.size;)await b.allSettled(t.from(r));return await(async(e,n,r)=>{const s=(e=>{let t=0;for(const[,n]of e){const{rawFilename:e,He:r,rawComment:s,We:a,Ge:i,rawExtraField:o,extendedTimestamp:c,st:l,lastModDate:d,$e:w,_e:f,uncompressedSize:p,compressedSize:m}=n,h=n.offset>=M,y=n.diskNumberStart>=I;let b,x;if(h||y||w||f){const e=4+(w?8:0)+(f?8:0)+(h?8:0)+(y?4:0),t=wa(e);t.uint16(1),t.uint16(e-4),w&&t.ot(p),f&&t.ot(m),h&&t.ot(n.offset),y&&t.uint32(n.diskNumberStart),b=t.array}else b=re;n.Ke=b,n.et=h,n.nt=y;const g=ba(d);if(c&&xa(g)){const e=wa(9);e.uint16(B),e.uint16(5),e.uint8(l),e.uint32(g),x=e.array}else x=re;n.Je=x;const S=Ra(b,r,a,i,x,o);if(S>I)throw new u(Gs);t+=46+Ra(e,s)+S}return t})(e.files),i=await(async(e,n,r)=>{const{files:s,writer:a}=e,i=new f(n);await nr(a);let o=0,c=0,l=ua(a),d=fa(a);for(const[e,n]of t.from(s.values()).entries()){const{offset:t,rawFilename:w,Ke:u,He:f,Je:p,We:m,Ge:h,rawExtraField:y,rawComment:b,versionMadeBy:x,qe:g,Qe:S,$e:z,_e:F,nt:D,et:v,internalFileAttributes:E,externalFileAttributes:R,diskNumberStart:T,uncompressedSize:C,compressedSize:U}=n,P=Ra(u,f,p,m,h,y),O=46+Ra(w,b)+P;pa(a,o+O-c)&&(await ha(a,i.slice(c,o)),c=o,await a.closeDisk()),0==e&&(l=ua(a),d=fa(a)),z||Da(S,18,C),F||Da(S,14,U),(v||D)&&45>n.version&&Fa(S,0,45);const k=wa(O);if(k.uint32(A),k.uint16(x),k.bytes(g.subarray(0,24)),k.uint16(P),k.uint16(Ra(b)),k.uint16(D?I:T),k.uint16(E),k.uint32(R),k.uint32(v?M:t),k.bytes(w),k.bytes(u),k.bytes(f),k.bytes(p),k.bytes(m),k.bytes(h),k.bytes(y),k.bytes(b),Ea(i,k.array,o),o+=O,r.onprogress)try{await r.onprogress(e+1,s.size,new Yr(n))}catch{}}return await ha(a,c?i.slice(c):i),{diskNumber:l,diskOffset:d}})(e,s,r);await(async(e,t,n,r)=>{const{writer:s}=e,{Ft:i}=r;let{Dt:o}=r,c=e.files.size,l=i.diskNumber,d=ma(e,i),w=ua(s);pa(s,N)&&w++;let f=Sa(e,n,Dr);if(!(M>d&&M>o&&I>c&&I>w)){if(!1===f)throw new u(_s);f=!0}const p=Ra(t);if(p>I)throw new u(Xs);const m=wa(f?98:N);pa(s,Ra(m.array)+p)&&await s.closeDisk(),w=ua(s),f&&(m.uint32(j),m.ot(44),m.uint16(45),m.uint16(45),m.uint32(w),m.uint32(l),m.ot(c),m.ot(c),m.ot(o),m.ot(d),m.uint32(V),m.uint32(w),m.ot(a(ma(e,s))+a(o)),m.uint32(w+1),Sa(e,n,"supportZip64SplitFile",!0)&&(w=I,l=I),c=I,d=M,o=M),m.uint32(Y),m.uint16(w),m.uint16(l),m.uint16(c),m.uint16(c),m.uint32(o),m.uint32(d),m.uint16(p),await ha(s,m.array),p&&await ha(s,t)})(e,n,r,{Ft:i,Dt:s})})(this,e,n),Sa(this,n,Wr)||await i.getWriter().close(),s.getData?s.getData():i}}function ca(e,t,n){e.Ne.add(t),t.catch(e=>{try{n(e)}catch{}})}function la(e,t){const{bt:n}=e;let{lt:r,extraFieldLength:s}=n,a=64-(t+Ra(r))%64;4>a&&(a+=64);const i=new f(a),o=ke(i);Fa(o,0,6534),Fa(o,2,a-4);const c=r;n.lt=r=new f(Ra(c)+a),Ea(r,c),Ea(r,i,Ra(c));const l=ke(r);Fa(l,28,s+a),n.wt=l,e.St+=a}function da(e){if(e===$)return re;{const t=new f(4);ke(t).setUint32(0,e,!0);let n=4;for(;n>1&&0===t[n-1];)n--;return t.subarray(0,n)}}function wa(e){const t=new f(e),n=ke(t);let r=0;return{array:t,uint8:e=>{((e,t,n)=>{e.setUint8(t,n)})(n,r,e),r+=1},uint16:e=>{Fa(n,r,e),r+=2},uint32:e=>{Da(n,r,e),r+=4},ot:e=>{va(n,r,a(e)),r+=8},bytes:e=>{Ea(t,e,r),r+=Ra(e)},ct:e=>r+=e}}function ua(e){const{diskNumber:t=0}=e;return t}function fa(e){const{diskOffset:t=0}=e;return t}function pa(e,t){const{availableSize:n=ee}=e;return t>n}function ma(e,{diskNumber:t=0,diskOffset:n=0}){return e.offset-n-(t?e.Ve:0)}async function ha(e,t){const{writable:n}=e,r=n.getWriter();try{await r.ready,e.size+=Ra(t),await r.write(t)}finally{r.releaseLock()}}function ya(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function ba(e){return i.floor(e.getTime()/1e3)}function xa(e){return e>=qs&&Qs>=e}function ga(e){return i.min(Qs,i.max(qs,e))}function Sa(e,t,n,r){const s=t[n]===$?e.options[n]:t[n];return s===$?r:s}function za(e){return e+5*(i.floor(e/16383)+1)}function Fa(e,t,n){e.setUint16(t,n,!0)}function Da(e,t,n){e.setUint32(t,n,!0)}function va(e,t,n){e.setBigUint64(t,n,!0)}function Ea(e,t,n){e.set(t,n)}function Ra(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Ta({version:e,bitFlag:t,compressionMethod:n,uncompressedSize:r,compressedSize:s,lastModDate:a,rawLastModDate:i,rawFilename:o,_e:c,$e:l,extraFieldLength:d}){const w=wa(26),u=w.array,f=ke(u);if(w.uint16(e),w.uint16(t),w.uint16(n),i===$){const e=new m(1),t=ke(e);Fa(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Fa(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),i=e[0]}return w.uint32(i),w.ct(4),c||s!==$?w.uint32(c?M:s):w.ct(4),l||r!==$?w.uint32(l?M:r):w.ct(4),w.uint16(Ra(o)),w.uint16(d),{qe:u,Qe:f,rawLastModDate:i}}function Ca(e,t,n,r,s){let a=0;return t&&(a|=K),n&&(a|=8),8!=s&&9!=s||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),r&&(a|=1),a}const Ua=1048576,Pa=".zip.js-temp",Ma=1048576,Ia=1048576,Oa=".zip.js-temp";try{we({baseURI:void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:P&&"SCRIPT"===P.tagName.toUpperCase()&&P.src||new w("zip-legacy.min.js",S.baseURI).href})}catch{}we({workerURI:e=>{const t="text/javascript",n=(e=>{let t=0,n=0,r=0,s=new f(1024),a=0,i=0;for(;!i;){i=c(1);const e=c(2);if(0==e)l();else if(1==e)d(xe(ye),xe(be));else{if(2!=e)throw u("invalid deflate block type");d(...w())}}return s.subarray(0,a);function o(){if(t>=e.length)throw u("unexpected end of deflate data");return e[t++]}function c(e){for(;e>r;)n|=o()<<r,r+=8;const t=n&(1<<e)-1;return n>>>=e,r-=e,t}function l(){n=0,r=0;const e=o()|o()<<8;t+=2,m(a+e);for(let t=0;e>t;t++)s[a++]=o()}function d(e,t){let n=p(e);for(;256!=n;){if(256>n)m(a+1),s[a++]=n;else{const e=n-257,r=ue[e]+c(fe[e]),i=p(t),o=pe[i]+c(me[i]);m(a+r);const l=a-o;for(let e=0;r>e;e++)s[a++]=s[l+e]}n=p(e)}}function w(){const e=c(5)+257,t=c(5)+1,n=c(4)+4,r=new f(19);for(let e=0;n>e;e++)r[he[e]]=c(3);const s=xe(r),a=new f(e+t);let i=0;for(;i<a.length;){const e=p(s);if(16>e)a[i++]=e;else if(16==e){const e=a[i-1];let t=c(2)+3;for(;t--;)a[i++]=e}else i+=17==e?c(3)+3:c(7)+11}return[xe(a.subarray(0,e)),xe(a.subarray(e))]}function p(e){const{o:t,symbols:n}=e;let r=0,s=0,a=0;for(let e=1;15>=e;e++){r|=c(1);const i=t[e];if(i>r-s)return n[a+(r-s)];a+=i,s=s+i<<1,r<<=1}throw u("invalid huffman code")}function m(e){if(s.length<e){let t=2*s.length;for(;e>t;)t*=2;const n=new f(t);n.set(s.subarray(0,a)),s=n}}})((e=>{const t=(e=(e+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,n=[];for(let r=0;t>r;r+=4){const t=ge.indexOf(e[r])<<18|ge.indexOf(e[r+1])<<12|(63&ge.indexOf(e[r+2]))<<6|63&ge.indexOf(e[r+3]);n.push(t>>16&255),"="!==e[r+2]&&n.push(t>>8&255),"="!==e[r+3]&&n.push(255&t)}return new f(n)})("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"));if(e){const e=new y([n],{type:t});return w.createObjectURL(e)}return"data:"+t+";base64,"+(e=>{let t="";const n=e.length;let r=0;for(;n>r+2;r+=3){const n=e[r]<<16|e[r+1]<<8|e[r+2];t+=ge[n>>18&63]+ge[n>>12&63]+ge[n>>6&63]+ge[63&n]}const s=n-r;if(1===s){const n=e[r]<<16;t+=ge[n>>18&63]+ge[n>>12&63]+"=="}else if(2===s){const n=e[r]<<16|e[r+1]<<8;t+=ge[n>>18&63]+ge[n>>12&63]+ge[n>>6&63]+"="}return t})(n)}}),e.BlobReader=Mn,e.BlobWriter=In,e.Data64URIReader=class extends Tn{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const r=e.indexOf(",")+1;n.assign(this,{dataURI:e,vt:r,size:i.floor(.75*(t-r))})}readUint8Array(e,t){const{vt:n,dataURI:r}=this,s=new f(t),a=4*i.floor(e/3),o=atob(r.substring(a+n,4*i.ceil((e+t)/3)+n)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),l++;return l<s.length?s.subarray(0,l):s}},e.Data64URIWriter=class extends Cn{constructor(e){super(),n.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let n,s=t.pending;const a=t.pending.length;for(t.pending="",n=0;n<3*i.floor((a+e.length)/3)-a;n++)s+=r.fromCharCode(e[n]);for(;n<e.length;n++)t.pending+=r.fromCharCode(e[n]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}},e.ERR_AMBIGUOUS_ARCHIVE=ds,e.ERR_BAD_FORMAT=$r,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=ns,e.ERR_DUPLICATED_NAME=Ns,e.ERR_ENCRYPTED=as,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=ts,e.ERR_EOCDR_NOT_FOUND=es,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=ss,e.ERR_HTTP_RANGE=hn,e.ERR_HTTP_RESOURCE_CHANGED=yn,e.ERR_INVALID_COMMENT=Xs,e.ERR_INVALID_COMPRESSED_DATA=Tt,e.ERR_INVALID_ENCRYPTION_STRENGTH=Js,e.ERR_INVALID_ENTRY_COMMENT=Bs,e.ERR_INVALID_ENTRY_NAME=Ks,e.ERR_INVALID_EXTRAFIELD_DATA=Gs,e.ERR_INVALID_EXTRAFIELD_TYPE=Ws,e.ERR_INVALID_PASSWORD=Ve,e.ERR_INVALID_SIGNATURE=Ne,e.ERR_INVALID_UNCOMPRESSED_SIZE=Rt,e.ERR_INVALID_VERSION=Hs,e.ERR_ITERATOR_COMPLETED_TOO_SOON=bn,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=rs,e.ERR_OVERLAPPING_ENTRY=ls,e.ERR_SPLIT_ZIP_FILE=cs,e.ERR_UNDEFINED_READER=ea,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=$s,e.ERR_UNSUPPORTED_COMPRESSION=os,e.ERR_UNSUPPORTED_ENCRYPTION=is,e.ERR_UNSUPPORTED_FORMAT=_s,e.ERR_WRITER_NOT_INITIALIZED=xn,e.ERR_ZIP_NOT_EMPTY=ta,e.HttpRangeReader=class extends Qn{constructor(e,t={}){super(e,n.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=Qn,e.Reader=Tn,e.SplitDataReader=_n,e.SplitDataWriter=$n,e.TextReader=class extends Mn{constructor(e){super(new y([e],{type:"text/plain"}))}},e.TextWriter=class extends In{constructor(e){super(e),n.assign(this,{encoding:e,Et:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,Et:t}=this,r=await super.getData();if(r.text&&t)return r.text();{const t=new FileReader;return new b((s,a)=>{n.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>a(t.error)}),t.readAsText(r,e)})}}},e.Uint8ArrayReader=class extends Tn{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),n.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends Cn{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){n.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,n=t.offset+e.length;if(n>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;n>e;)e*=2;const r=t.array;t.array=new f(e),t.array.set(r)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=Cn,e.ZipReader=ms,e.ZipReaderStream=hs,e.ZipWriter=oa,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:n}=new D;this.readable=t,this.zipWriter=new oa(n,e),this.Ne=new l}transform(e){const t=this.zipWriter;let n;const{readable:r,writable:s}=new D({start(e){n=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return ca(this,this.zipWriter.add(e,r),e=>n.error(e)),{readable:this.readable,writable:s}}writable(e){let t;const{readable:n,writable:r}=new D({start(e){t=e}});return ca(this,this.zipWriter.add(e,n),e=>t.error(e)),r}async close(e,n={}){return await b.all(t.from(this.Ne)),this.zipWriter.close(e,n)}},e.configure=de,e.createBlobTempStream=(e={})=>{const{thresholdBytes:t=Ma}=e;return()=>{const e=[];let n,r,s,a=0,i=!1;const o=new E({async write(s){i?await n.write(s):(e.push(s),a+=s.length,a>t&&await(async()=>{const t=new D;r=new d(t.readable).blob(),n=t.writable.getWriter(),i=!0;for(const t of e)await n.write(t);e.length=0})())},async close(){n&&(await n.close(),n=null)}});let c=0;return{writable:o,readable:new v({async pull(t){if(i){if(!s){const e=await r;s=e.stream().getReader()}const{value:e,done:n}=await s.read();n?t.close():t.enqueue(e)}else c<e.length?t.enqueue(e[c++]):t.close()},async cancel(e){s&&await s.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(n){try{await n.abort()}catch{}n=null}r&&(r.catch(()=>{}),r=null),e.length=0}}}},e.createOPFSTempStream=(e={})=>{const{thresholdBytes:t=Ua,directoryName:n=Pa,getDirectory:r=()=>C.storage.getDirectory()}=e;let s;function a(){return s||(s=b.resolve(r()).then(e=>e.getDirectoryHandle(n,{create:!0}))),s}return()=>{const e=[];let n,r,s,i,o=0,c=!1;const l=new E({async write(i){c?await s.write(i):(e.push(i),o+=i.length,o>t&&await(async()=>{const t=await a();n=z.randomUUID(),r=await t.getFileHandle(n,{create:!0}),s=(await r.createWritable()).getWriter(),c=!0;for(const t of e)await s.write(t);e.length=0})())},async close(){s&&(await s.close(),s=null)}});let d=0;return{writable:l,readable:new v({async pull(t){if(c){if(!i){const e=await r.getFile();i=e.stream().getReader()}const{value:e,done:n}=await i.read();n?t.close():t.enqueue(e)}else d<e.length?t.enqueue(e[d++]):t.close()},async cancel(e){i&&await i.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(s){try{await s.close()}catch{}s=null}if(n){try{const e=await a();await e.removeEntry(n)}catch{}r=n=null}e.length=0}}}},e.createSyncAccessHandleTempStream=(e={})=>{const{thresholdBytes:t=Ia,directoryName:n=Oa,getDirectory:r}=e;if(!(r||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new u("createSyncAccessHandle is only available in dedicated workers");const s=r||(()=>C.storage.getDirectory());let a;function o(){return a||(a=b.resolve(s()).then(e=>e.getDirectoryHandle(n,{create:!0}))),a}return()=>{const e=[];let n,r,s=0,a=!1,c=0,l=0;const d=new E({async write(i){a?(r.write(i,{at:c}),c+=i.length):(e.push(i),s+=i.length,s>t&&await(async()=>{const t=await o();n=z.randomUUID();const s=await t.getFileHandle(n,{create:!0});r=await s.createSyncAccessHandle(),a=!0;for(const t of e)r.write(t,{at:c}),c+=t.length;e.length=0})())},close(){r&&r.flush()}});let w=0;return{writable:d,readable:new v({pull(t){if(a){const e=c-l;if(0>=e)return void t.close();const n=new f(i.min(524288,e)),s=r.read(n,{at:l});s?(l+=s,t.enqueue(n.subarray(0,s))):t.close()}else w<e.length?t.enqueue(e[w++]):t.close()}},{highWaterMark:0}),dispose:async()=>{if(r){try{r.close()}catch{}r=null}if(n){try{const e=await o();await e.removeEntry(n)}catch{}n=null}e.length=0}}}},e.getMimeType=()=>"application/octet-stream",e.resetConfiguration=()=>{for(const e of ie)delete oe[e];n.assign(oe,ae)},e.terminateWorkers=async()=>{await b.allSettled(rn.map(e=>(pn(e),e.terminate())))}});
|