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