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