@zip.js/zip.js 2.8.16 → 2.8.18

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zip-js/zip-js",
3
- "version": "2.8.16",
3
+ "version": "2.8.18",
4
4
  "exports": {
5
5
  ".": "./index.js"
6
6
  },
package/dist/zip-core.js CHANGED
@@ -1962,7 +1962,10 @@
1962
1962
  */
1963
1963
 
1964
1964
 
1965
- let WEB_WORKERS_SUPPORTED;
1965
+ const MODULE_WORKER_OPTIONS = { type: "module" };
1966
+
1967
+ let webWorkerSupported, webWorkerURI, webWorkerOptions;
1968
+ let transferStreamsSupported = true;
1966
1969
  let initModule = () => { };
1967
1970
 
1968
1971
  class CodecWorker {
@@ -2006,11 +2009,11 @@
2006
2009
  onTaskFinished(workerData);
2007
2010
  }
2008
2011
  });
2009
- if (WEB_WORKERS_SUPPORTED === UNDEFINED_VALUE) {
2012
+ if (webWorkerSupported === UNDEFINED_VALUE) {
2010
2013
  // deno-lint-ignore valid-typeof
2011
- WEB_WORKERS_SUPPORTED = typeof Worker != UNDEFINED_TYPE;
2014
+ webWorkerSupported = typeof Worker != UNDEFINED_TYPE;
2012
2015
  }
2013
- return (useWebWorkers && WEB_WORKERS_SUPPORTED ? createWebWorkerInterface : createWorkerInterface)(workerData, config);
2016
+ return (useWebWorkers && webWorkerSupported ? createWebWorkerInterface : createWorkerInterface)(workerData, config);
2014
2017
  }
2015
2018
  }
2016
2019
 
@@ -2067,7 +2070,7 @@
2067
2070
  try {
2068
2071
  worker = getWebWorker(workerData.workerURI, baseURI, workerData);
2069
2072
  } catch {
2070
- WEB_WORKERS_SUPPORTED = false;
2073
+ webWorkerSupported = false;
2071
2074
  return createWorkerInterface(workerData, config);
2072
2075
  }
2073
2076
  Object.assign(workerData, {
@@ -2169,28 +2172,69 @@
2169
2172
  return { writable, closed };
2170
2173
  }
2171
2174
 
2172
- let transferStreamsSupported = true;
2173
-
2174
- function getWebWorker(url, baseURI, workerData) {
2175
- const workerOptions = { type: "module" };
2176
- let scriptUrl, worker;
2177
- // deno-lint-ignore valid-typeof
2178
- if (typeof url == FUNCTION_TYPE) {
2179
- url = url();
2180
- }
2181
- if (url.startsWith("data:") || url.startsWith("blob:")) {
2182
- try {
2183
- worker = new Worker(url);
2184
- } catch {
2185
- worker = new Worker(url, workerOptions);
2175
+ function getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {
2176
+ let worker, resolvedURI, resolvedOptions;
2177
+ if (webWorkerURI === UNDEFINED_VALUE) {
2178
+ // deno-lint-ignore valid-typeof
2179
+ const isFunctionURI = typeof url == FUNCTION_TYPE;
2180
+ if (isFunctionURI) {
2181
+ resolvedURI = url(useBlobURI);
2182
+ } else {
2183
+ resolvedURI = url;
2186
2184
  }
2187
- } else {
2188
- try {
2189
- scriptUrl = new URL(url, baseURI);
2190
- } catch {
2191
- scriptUrl = url;
2185
+ const isDataURI = resolvedURI.startsWith("data:");
2186
+ const isBlobURI = resolvedURI.startsWith("blob:");
2187
+ if (isDataURI || isBlobURI) {
2188
+ if (isModuleType === UNDEFINED_VALUE) {
2189
+ isModuleType = false;
2190
+ }
2191
+ if (isModuleType) {
2192
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2193
+ }
2194
+ try {
2195
+ worker = new Worker(resolvedURI, resolvedOptions);
2196
+ } catch (error) {
2197
+ if (isBlobURI) {
2198
+ try {
2199
+ URL.revokeObjectURL(resolvedURI);
2200
+ } catch {
2201
+ // ignored
2202
+ }
2203
+ }
2204
+ if (isFunctionURI && isBlobURI) {
2205
+ return getWebWorker(url, baseURI, workerData, isModuleType, false);
2206
+ } else if (!isModuleType) {
2207
+ return getWebWorker(url, baseURI, workerData, true, false);
2208
+ } else {
2209
+ throw error;
2210
+ }
2211
+ }
2212
+ } else {
2213
+ if (isModuleType === UNDEFINED_VALUE) {
2214
+ isModuleType = true;
2215
+ }
2216
+ if (isModuleType) {
2217
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2218
+ }
2219
+ try {
2220
+ resolvedURI = new URL(resolvedURI, baseURI);
2221
+ } catch {
2222
+ // ignored
2223
+ }
2224
+ try {
2225
+ worker = new Worker(resolvedURI, resolvedOptions);
2226
+ } catch (error) {
2227
+ if (!isModuleType) {
2228
+ return getWebWorker(url, baseURI, workerData, false, useBlobURI);
2229
+ } else {
2230
+ throw error;
2231
+ }
2232
+ }
2192
2233
  }
2193
- worker = new Worker(scriptUrl, workerOptions);
2234
+ webWorkerURI = resolvedURI;
2235
+ webWorkerOptions = resolvedOptions;
2236
+ } else {
2237
+ worker = new Worker(webWorkerURI, webWorkerOptions);
2194
2238
  }
2195
2239
  worker.addEventListener(MESSAGE_EVENT_TYPE, event => onMessage(event, workerData));
2196
2240
  return worker;
@@ -4855,7 +4899,6 @@
4855
4899
  let writingBufferedEntryData;
4856
4900
  let writingEntryData;
4857
4901
  let fileWriter;
4858
- let blobPromise;
4859
4902
  files.set(name, fileEntry);
4860
4903
  try {
4861
4904
  let lockPreviousFileEntry;
@@ -4864,7 +4907,7 @@
4864
4907
  requestLockCurrentFileEntry();
4865
4908
  }
4866
4909
  if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
4867
- fileWriter = new TransformStream();
4910
+ fileWriter = new TransformStream(undefined, undefined, { highWaterMark: Infinity });
4868
4911
  fileWriter.size = 0;
4869
4912
  bufferedWrite = true;
4870
4913
  zipWriter.bufferedWrites++;
@@ -4895,20 +4938,20 @@
4895
4938
  await skipDiskIfNeeded(writable);
4896
4939
  }
4897
4940
  const { diskNumber } = writer;
4898
- writingEntryData = true;
4899
4941
  fileEntry.diskNumberStart = diskNumber;
4900
- if (bufferedWrite) {
4901
- blobPromise = new Response(fileWriter.readable).blob();
4902
- } else {
4942
+ if (!bufferedWrite) {
4943
+ writingEntryData = true;
4903
4944
  await writeData(fileWriter, localHeaderArray);
4904
4945
  }
4905
4946
  fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
4906
4947
  const { zip64 } = fileEntry;
4907
- writingEntryData = false;
4948
+ if (!bufferedWrite) {
4949
+ writingEntryData = false;
4950
+ }
4908
4951
  files.set(name, fileEntry);
4909
4952
  fileEntry.filename = name;
4910
4953
  if (bufferedWrite) {
4911
- const [blob] = await Promise.all([blobPromise, fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4954
+ await Promise.all([fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4912
4955
  await requestLockWriter();
4913
4956
  writingBufferedEntryData = true;
4914
4957
  fileEntry.diskNumberStart = writer.diskNumber;
@@ -4919,7 +4962,7 @@
4919
4962
  updateLocalHeader(fileEntry, localHeaderView, options);
4920
4963
  await skipDiskIfNeeded(writable);
4921
4964
  await writeData(writer, localHeaderArray);
4922
- await blob.stream().pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4965
+ await fileWriter.readable.pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4923
4966
  writer.size += fileWriter.size;
4924
4967
  writingBufferedEntryData = false;
4925
4968
  } else {
@@ -4934,7 +4977,7 @@
4934
4977
  zipWriter.offset += fileEntry.size;
4935
4978
  return fileEntry;
4936
4979
  } catch (error) {
4937
- if ((bufferedWrite && writingBufferedEntryData) || (!bufferedWrite && writingEntryData)) {
4980
+ if (writingBufferedEntryData || writingEntryData) {
4938
4981
  zipWriter.hasCorruptedEntries = true;
4939
4982
  if (error) {
4940
4983
  try {
@@ -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:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:p,Uint8Array:f,Uint16Array:w,Uint32Array:h,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:E,TransformStream:F,ReadableStream:R,WritableStream:k,CompressionStream:D,DecompressionStream:_,navigator:A,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var U=void 0!==S?S.currentScript:null;const v=4294967295,C=65535,I=255,N=67324752,W=134695760,M=W,O=33639248,L=101010256,P=101075792,Z=117853008,H=22,V=21589,B=2048,q=16384,K=2048,Y=1024,j=512,G="/",X=30,J=new o(2107,11,31),Q=new o(1980,0,1),$=void 0,ee="undefined",te="function";let re=2;try{typeof A!=ee&&A.hardwareConcurrency&&(re=A.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:re,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof D!=ee&&D,DecompressionStream:typeof _!=ee&&_},ne=r.assign({},se);function ae(){return ne}function ie(e){return i.max(e.chunkSize,64)}function oe(e){const{baseURI:t,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:n,useCompressionStream:a,useWebWorkers:i,CompressionStream:o,DecompressionStream:c,CompressionStreamZlib:l,DecompressionStreamZlib:d,workerURI:u,wasmURI:p}=e;ce("baseURI",t),ce("wasmURI",p),ce("workerURI",u),ce("chunkSize",r),ce("maxWorkers",s),ce("terminateWorkerTimeout",n),ce("useCompressionStream",a),ce("useWebWorkers",i),ce("CompressionStream",o),ce("DecompressionStream",c),ce("CompressionStreamZlib",l),ce("DecompressionStreamZlib",d)}function ce(e,t){t!==$&&(ne[e]=t)}const le=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;le[e]=t}class de{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^le[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class ue extends F{constructor(){let e;const t=new de;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 pe(e){if(typeof b==ee){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)}const fe={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=fe.getPartial(r);return 32===s?e.concat(t):fe._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+fe.getPartial(r)},clamp(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]=fe.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let n=0;n<e.length;n++)s.push(r|e[n]>>>t),r=e[n]<<32-t;const n=e.length?e[e.length-1]:0,a=fe.getPartial(n);return s.push(fe.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},we={bytes:{fromBits(e){const t=fe.bitLength(e)/8,r=new f(t);let s;for(let n=0;t>n;n++)3&n||(s=e[n/4]),r[n]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push(fe.partial(8*(3&r),s)),t}}},he=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=we.utf8String.toBits(e));const r=t._buffer=fe.concat(t._buffer,e),s=t._length,n=t._length=s+fe.bitLength(e);if(n>9007199254740991)throw new p("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);n>=e;e+=t.blockSize)t._block(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=fe.concat(t,[fe.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,n=t(80);for(let t=0;16>t;t++)n[t]=e[t];let a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(n[e]=r._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const t=r._S(5,a)+r._f(e,o,c,l)+d+n[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=a,a=t}s[0]=s[0]+a|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},me={getRandomValues(e){const t=new h(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(i.random()>.5?1:-1))};for(let s,n=0;n<e.length;n+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[n/4]=4294967296*e()|0}return e}},ge={importKey:e=>new ge.hmacSha1(we.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new p("invalid params to pbkdf2");const n=1+(s>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(n),u=new m(d);let f=0;const w=fe;for(t=we.bytes.toBits(t),l=1;(n||1)>f;l++){for(a=i=e.encrypt(w.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;(n||1)>f&&o<a.length;o++)u.setInt32(f,a[o]),f+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=he,s=[[],[]];t._baseHash=[new r,new r];const n=t._baseHash[0].blockSize/32;e.length>n&&(e=(new r).update(e).finalize());for(let t=0;n>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new r(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new p("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},ye=typeof x!=ee&&typeof x.getRandomValues==te,be="Invalid password",ze="Invalid signature",Se="zipjs-abort-check-password";function xe(e){return ye?x.getRandomValues(e):me.getRandomValues(e)}const Ee=16,Fe={name:"PBKDF2"},Re=r.assign({hash:{name:"HMAC"}},Fe),ke=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Fe),De=["deriveBits"],_e=[8,12,16],Ae=[16,24,32],Te=10,Ue=[0,0,0,0],ve=typeof x!=ee,Ce=ve&&x.subtle,Ie=ve&&typeof Ce!=ee,Ne=we.bytes,We=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],s=t._tables[1],n=e.length;let a,i,o,c=1;if(4!==n&&6!==n&&8!==n)throw new p("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],a=n;4*n+28>a;a++){let e=i[a-1];(a%n===0||8===n&&a%n===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%n===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-n]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:s[0][r[t>>>24]]^s[1][r[t>>16&255]]^s[2][r[t>>8&255]]^s[3][r[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],r=e[4],s=t[4],n=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(n[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,s[a]=d,l=n[c=n[o=n[d]]];let u=16843009*l^65537*c^257*o^16843008*d,p=257*n[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=p=p<<24^p>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}_crypt(e,t){if(4!==e.length)throw new p("invalid aes block size");const r=this._key[t],s=r.length/4-2,n=[0,0,0,0],a=this._tables[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let u,f,w,h=e[0]^r[0],m=e[t?3:1]^r[1],g=e[2]^r[2],y=e[t?1:3]^r[3],b=4;for(let e=0;s>e;e++)u=i[h>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],f=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&h]^r[b+1],w=i[g>>>24]^o[y>>16&255]^c[h>>8&255]^l[255&m]^r[b+2],y=i[y>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&g]^r[b+3],b+=4,h=u,m=f,g=w;for(let e=0;4>e;e++)n[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[g>>8&255]<<8^d[255&y]^r[b++],u=h,h=m,m=g,g=y,y=u;return n}},Me=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,s=255&e;255===t?(t=0,255===r?(r=0,255===s?s=0:++s):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let s;if(!(s=t.length))return[];const n=fe.bitLength(t);for(let n=0;s>n;n+=4){this.incCounter(r);const s=e.encrypt(r);t[n]^=s[0],t[n+1]^=s[1],t[n+2]^=s[2],t[n+3]^=s[3]}return fe.clamp(t,n)}},Oe=ge.hmacSha1;let Le=ve&&Ie&&typeof Ce.importKey==te,Pe=ve&&Ie&&typeof Ce.deriveBits==te;class Ze extends F{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:qe(e,t),signed:s,strength:n-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const n=await Be(e,t,r,Ye(s,0,_e[t])),a=Ye(s,_e[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new p(be)})(r,n,s,Ye(e,0,_e[n]+2)),e=Ye(e,_e[n]+2),a?t.error(new p(Se)):i()):await o;const c=new f(e.length-Te-(e.length-Te)%Ee);t.enqueue(Ve(r,e,c,0,Te,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=Ye(n,0,n.length-Te),o=Ye(n,n.length-Te);let c=new f;if(i.length){const e=Ge(Ne,i);s.update(e);const t=r.update(e);c=je(Ne,t)}if(t){const e=Ye(je(Ne,s.digest()),0,Te);for(let t=0;Te>t;t++)if(e[t]!=o[t])throw new p(ze)}e.enqueue(c)}}})}}class He extends F{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:qe(e,t),strength:s-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:a,ready:i}=r;let o=new f;s?(o=await(async(e,t,r)=>{const s=xe(new f(_e[t]));return Ke(s,await Be(e,t,r,s))})(r,n,s),a()):await i;const c=new f(o.length+e.length-e.length%Ee);c.set(o,0),t.enqueue(Ve(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:a}=this;if(r&&t){await a;let i=new f;if(s.length){const e=t.update(Ge(Ne,s));r.update(e),i=je(Ne,e)}n.signature=je(Ne,r.digest()).slice(0,Te),e.enqueue(Ke(i,n.signature))}}}),n=this}}function Ve(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=Ke(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,l-l%Ee)),d=0;l-Ee>=d;d+=Ee){const e=Ge(Ne,Ye(t,d,d+Ee));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(je(Ne,n),d+s)}return e.pending=Ye(t,d),r}async function Be(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!Le)return ge.importKey(t);try{return await Ce.importKey("raw",t,r,!1,n)}catch{return Le=!1,ge.importKey(t)}})(0,n,Re,0,De),o=await(async(e,t,r)=>{if(!Pe)return ge.pbkdf2(t,e.salt,ke.iterations,r);try{return await Ce.deriveBits(e,t,r)}catch{return Pe=!1,ge.pbkdf2(t,e.salt,ke.iterations,r)}})(r.assign({salt:a},ke),i,8*(2*Ae[s]+2)),c=new f(o),l=Ge(Ne,Ye(c,0,Ae[s])),d=Ge(Ne,Ye(c,Ae[s],2*Ae[s])),u=Ye(c,2*Ae[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new Me(new We(l),t.from(Ue)),hmac:new Oe(d)}),u}function qe(e,t){return t===$?pe(e):t}function Ke(e,t){let r=e;return e.length+t.length&&(r=new f(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function Ye(e,t,r){return e.subarray(t,r)}function je(e,t){return e.fromBits(t)}function Ge(e,t){return e.toBits(t)}class Xe extends F{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),et(this,e)},transform(e,t){const r=this;if(r.password){const t=Qe(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new p(be);e=e.subarray(12)}s?t.error(new p(Se)):t.enqueue(Qe(r,e))}})}}class Je extends F{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),et(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=xe(new f(12));t[11]=r.passwordVerification,s=new f(e.length+t.length),s.set($e(r,t),0),n=12}else s=new f(e.length),n=0;s.set($e(r,e),n),t.enqueue(s)}})}}function Qe(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=rt(e)^t[s],tt(e,r[s]);return r}function $e(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=rt(e)^t[s],tt(e,t[s]);return r}function et(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new de(s[0]),crcKey2:new de(s[2])});for(let r=0;r<t.length;r++)tt(e,t.charCodeAt(r))}function tt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=nt(i.imul(nt(s+st(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function rt(e){const t=2|e.keys[2];return st(i.imul(t,1^t)>>>8)}function st(e){return 255&e}function nt(e){return 4294967295&e}const at="Invalid uncompressed size";class it extends F{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:n,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,p,f=super.readable;a&&!o||!c||(u=new ue,f=dt(f,u)),n&&(f=lt(f,i,{level:l,chunkSize:t},s,r,s)),a&&(o?f=dt(f,new Je(e)):(p=new He(e),f=dt(f,p))),ct(d,f,()=>{let e;a&&!o&&(e=p.signature),a&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class ot extends F{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:n,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,f,w=super.readable;a&&(n?w=dt(w,new Xe(e)):(f=new Ze(e),w=dt(w,f))),c&&(w=lt(w,l,{chunkSize:t,deflate64:d},s,r,s)),a&&!n||!i||(u=new ue,w=dt(w,u)),ct(this,w,()=>{if((!a||n)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new p(ze)}})}}function ct(e,t,s){t=dt(t,new F({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function lt(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=dt(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=dt(e,new n(o,r));else{if(!a)throw s;e=dt(e,new a(o,r))}}return e}function dt(e,t){return e.pipeThrough(t)}const ut="data",pt="close",ft="deflate",wt="inflate";class ht extends F{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(ft)?a=it:n.startsWith(wt)&&(a=ot),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new F({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new F({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==$&&s.outputSize>e.outputSize))throw new p(at)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class mt extends F{constructor(e){let t;super({transform:function r(s,n){if(t){const e=new f(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(n.enqueue(s.slice(0,e)),r(s.slice(e),n)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}let gt;class yt{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new mt(a.chunkSize)).pipeThrough(new bt(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),gt===$&&(gt=typeof T!=ee),(o&&gt?xt:St)(e,a)}}class bt extends F{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await zt(e,r)},async transform(e,s){n+=e.length,t&&await zt(t,n,r),s.enqueue(e)},async flush(){s&&await zt(s,n)}})}}async function zt(e,...t){try{await e(...t)}catch{}}function St(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},n)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{e.useCompressionStream=!0}a=new ht(e,n),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=a;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{s()}})(e,t)}}function xt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==te&&(a=a());try{i=((e,t,s)=>{const n={type:"module"};let a,i;if(typeof e==te&&(e=e()),e.startsWith("data:")||e.startsWith("blob:"))try{i=new T(e)}catch{i=new T(e,n)}else{try{a=new u(e,t)}catch{a=e}i=new T(a,n)}return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:w}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new p(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),h(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();Ft({type:ut,value:e,done:r,messageId:a},t)}s==ut&&(await l.ready,await l.write(new f(n)),Ft({type:"ack",messageId:a},t)),s==pt&&h(null,i)}}catch(o){Ft({type:pt,messageId:a},t),h(o)}function h(e,t){e?u(e):d(t),l&&l.releaseLock(),w()}})(e,s)),i})(e.workerURI,s,e)}catch{return gt=!1,St(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{let t;const r=new y(e=>t=e);return{writable:new k({async write(t){const r=e.getWriter();await r.ready,await r.write(t),r.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:r}})(e.writable),d=Ft({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}let Et=!0;function Ft(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&Et?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{Et=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let Rt=[];const kt=[];let Dt=0;async function _t(e,t){const{options:r,config:s}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:p}=s;t.transferStreams=a||a===$;const f=!(c||l||d||t.transferStreams);return t.useWebWorkers=!f&&(i||i===$&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:$,r.useCompressionStream=o||o===$&&s.useCompressionStream,(await(async()=>{const r=Rt.find(e=>!e.busy);if(r)return At(r),new yt(r,e,t,w);if(Rt.length<p){const r={indexWorker:Dt};return Dt++,Rt.push(r),new yt(r,e,t,w)}return new y(r=>kt.push({resolve:r,stream:e,workerOptions:t}))})()).run();function w(e){if(kt.length){const[{resolve:t,stream:r,workerOptions:s}]=kt.splice(0,1);t(new yt(e,r,s,w))}else e.worker?(At(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Rt=Rt.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):Rt=Rt.filter(t=>t!=e)}}function At(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Tt="HTTP error ",Ut="HTTP Range not supported",vt="Range",Ct="GET",It="bytes",Nt=65536,Wt="writable";class Mt{constructor(){this.size=0}init(){this.initialized=!0}}class Ot extends Mt{get readable(){const e=this,{chunkSize:t=Nt}=e,r=new R({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===$?t:i.min(t,a-c),d=await or(e,n+c,l,o);s.enqueue(d),c+t>a||a===$&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class Lt extends Mt{constructor(){super();const e=this,t=new k({write(t){if(!e.initialized)throw new p("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,Wt,{get:()=>t})}writeUint8Array(){}}class Pt extends Ot{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,n=e||s<r.size?r.blob.slice(e,s):r.blob;let a=await n.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,s)),new f(a)}}class Zt extends Mt{constructor(e){super();const t=new F,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,Wt,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class Ht extends Ot{constructor(e,t){super(),Bt(this,e,t)}async init(){await qt(this,$t,Gt),super.init()}readUint8Array(e,t){return Kt(this,e,t,$t,Gt)}}class Vt extends Ot{constructor(e,t){super(),Bt(this,e,t)}async init(){await qt(this,er,Xt),super.init()}readUint8Array(e,t){return Kt(this,e,t,er,Xt)}}function Bt(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o})}async function qt(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ae(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(Ct,e,Yt(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==It))throw new p(Ut);{let a;c&&(e.eocdCache=new f(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=n(t))}}a===$?await Qt(e,t,r):e.size=a}}else await Qt(e,t,r)}async function Kt(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(Ct,e,Yt(e,t,r));if(206!=n.status)throw new p(Ut);return new f(await n.arrayBuffer())}return new f}{const{data:s}=e;return s||await n(e,l),new f(e.data.subarray(t,t+r))}}function Yt(e,t=0,s=1){return r.assign({},jt(e),{[vt]:It+"="+(0>t?t:t+"-"+(t+s-1))})}function jt({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Gt(e){await Jt(e,$t)}async function Xt(e){await Jt(e,er)}async function Jt(e,t){const r=await t(Ct,e,jt(e));e.data=new f(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function Qt(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,jt(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function $t(e,{options:t,url:s},n){const a=await fetch(s,r.assign({},t,{method:e,headers:n}));if(400>a.status)return a;throw 416==a.status?new p(Ut):new p(Tt+(a.statusText||a.status))}function er(e,{url:t},s){return new y((n,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)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new p(Ut):new p(Tt+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new p("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class tr extends Ot{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new Vt(e,t):new Ht(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class rr extends Ot{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new f(t);const o=await or(l,c,i);a.set(o,0);const d=await s.readUint8Array(e+i,t-i,r);a.set(d,i),o.length+d.length<t&&(a=a.subarray(0,o.length+d.length))}else a=await or(l,c,t)}else a=new f;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class sr extends Mt{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new k({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new p("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await ir(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,Wt,{get:()=>o})}}class nr{constructor(e){return t.isArray(e)&&(e=new rr(e)),e instanceof R&&(e={readable:e}),e}}class ar{constructor(e){return e.writable===$&&typeof e.next==te&&(e=new sr(e)),e instanceof k&&(e={writable:e}),e.size===$&&(e.size=0),e instanceof sr||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}}async function ir(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function or(e,t,r,s){return e.readUint8Array(t,r,s)}const cr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function lr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=cr[e[r]];return t}})(e):new z(t).decode(e)}const dr="filename",ur="rawFilename",pr="comment",fr="rawComment",wr="uncompressedSize",hr="compressedSize",mr="offset",gr="diskNumberStart",yr="lastModDate",br="rawLastModDate",zr="lastAccessDate",Sr="creationDate",xr="rawCreationDate",Er="internalFileAttributes",Fr="externalFileAttributes",Rr="msdosAttributesRaw",kr="msdosAttributes",Dr="msDosCompatible",_r="zip64",Ar="encrypted",Tr="version",Ur="versionMadeBy",vr="zipCrypto",Cr="directory",Ir="executable",Nr="compressionMethod",Wr="signature",Mr="extraField",Or="unixMode",Lr="setuid",Pr="setgid",Zr="sticky",Hr=[dr,ur,wr,hr,yr,br,pr,fr,zr,Sr,xr,mr,gr,Er,Fr,Rr,kr,Dr,_r,Ar,Tr,Ur,vr,Cr,Ir,Nr,Wr,Mr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Or,Lr,Pr,Zr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Vr{constructor(e){Hr.forEach(t=>this[t]=e[t])}}const Br="password",qr="rawPassword",Kr="passThrough",Yr="signal",jr="useWebWorkers",Gr="useCompressionStream",Xr="preventClose",Jr="supportZip64SplitFile",Qr="offset",$r="usdz",es="File format is not recognized",ts="End of central directory not found",rs="End of Zip64 central directory locator not found",ss="Central directory header not found",ns="Local file header not found",as="Zip64 extra field not found",is="File contains encrypted entry",os="Encryption method not supported",cs="Compression method not supported",ls="Split zip file",ds="Overlapping entry found",us="utf-8",ps="cp437",fs=[[wr,v],[hr,v],[mr,v],[gr,C]],ws={[C]:{getValue:Ds,bytes:4},[v]:{getValue:_s,bytes:8}};class hs{constructor(e,t={}){r.assign(this,{reader:new nr(e),options:t,config:ae(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await ir(s),s.size!==$&&s.readUint8Array||(s=new Pt(await new d(s.readable).blob()),await ir(s)),s.size<H)throw new p(es);s.chunkSize=ie(n);const a=await(async(e,t,r)=>{const s=new f(4);var n;return n=t,As(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await or(e,n,t);for(let e=a.length-22;e>=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:n+e,buffer:a.slice(e,e+22).buffer}}})(s,L,s.size);if(!a)throw Ds(As(await or(s,0,4)))==W?new p(ls):new p(ts);const o=As(a);let c=Ds(o,12),l=Ds(o,16);const u=a.offset,w=ks(o,20),h=u+H+w;let m=ks(o,4);const g=s.lastDiskNumber||0;let b=ks(o,6),z=ks(o,8),S=0,x=0;if(l==v||c==v||z==C||b==C){const e=As(await or(s,a.offset-20,20));if(Ds(e,0)==Z){l=_s(e,8);let t=await or(s,l,56,-1),r=As(t);const n=a.offset-20-56;if(Ds(r,0)!=P&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await or(s,l,56,-1),r=As(t)}if(Ds(r,0)!=P)throw new p(rs);m==C&&(m=Ds(r,16)),b==C&&(b=Ds(r,20)),z==C&&(z=_s(r,32)),c==v&&(c=_s(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new p(ls);if(0>l)throw new p(es);let E=0,R=await or(s,l,c,b),k=As(R);if(c){const e=a.offset-c;if(Ds(k,E)!=O&&l!=e){const t=l;l=e,l>t&&(S+=l-t),R=await or(s,l,c,b),k=As(R)}}const D=a.offset-l-(s.lastDiskOffset||0);if(c==D||0>D||(c=D,R=await or(s,l,c,b),k=As(R)),0>l||l>=s.size)throw new p(es);const _=xs(t,e,"filenameEncoding"),A=xs(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new ms(s,n,t.options);if(Ds(k,E)!=O)throw new p(ss);gs(o,k,E+6);const c=!!o.bitFlag.languageEncodingFlag,l=E+46,u=l+o.filenameLength,f=u+o.extraFieldLength,w=ks(k,E+4),h=!(w>>8),m=w>>8==3,g=R.subarray(l,u),b=ks(k,E+32),D=f+b,T=R.subarray(f,D),U=c,v=c,N=Ds(k,E+38),W=N&I,M={readOnly:!!(1&W),hidden:!!(2&W),system:!!(4&W),directory:!!(16&W),archive:!!(32&W)},L=Ds(k,E+42)+S,P=xs(t,e,"decodeText")||lr,Z=U?us:_||ps,H=v?us:A||ps;let V=P(g,Z);V===$&&(V=lr(g,Z));let B=P(T,H);B===$&&(B=lr(T,H)),r.assign(o,{versionMadeBy:w,msDosCompatible:h,compressedSize:0,uncompressedSize:0,commentLength:b,offset:L,diskNumberStart:ks(k,E+34),internalFileAttributes:ks(k,E+36),externalFileAttributes:N,msdosAttributesRaw:W,msdosAttributes:M,rawFilename:g,filenameUTF8:U,commentUTF8:v,rawExtraField:R.subarray(u,f),rawComment:T,filename:V,comment:B}),x=i.max(L,x),ys(o,o,k,E+6);const X=o.externalFileAttributes>>16&C;o.unixMode===$&&16877&X&&(o.unixMode=X);const J=!!(o.unixMode&K),Q=!!(o.unixMode&Y),ee=!!(o.unixMode&j),te=o.unixMode!==$?!!(73&o.unixMode):m&&!!(73&X),re=o.unixMode!==$&&(61440&o.unixMode)==q,se=(61440&X)==q;r.assign(o,{setuid:J,setgid:Q,sticky:ee,unixExternalUpper:X,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:te,directory:re||se||h&&M.directory||V.endsWith(G)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ne=new Vr(o);ne.getData=(e,r)=>o.getData(e,ne,t.readRanges,r),ne.arrayBuffer=async e=>{const r=new F,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ne,t.readRanges,e)]);return s},E=D;const{onprogress:ae}=e;if(ae)try{await ae(a+1,z,new Vr(o))}catch{}yield ne}const T=xs(t,e,"extractPrependedData"),U=xs(t,e,"extractAppendedData");return T&&(t.prependedData=x>0?await or(s,0,x):new f),t.comment=w?await or(s,u+H,w):new f,U&&(t.appendedData=h<s.size?await or(s,h,s.size-h):new f),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class ms{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,n={}){const a=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:w,bitFlag:h,signature:m,rawLastModDate:g,uncompressedSize:y,compressedSize:b}=a,{dataDescriptor:z}=h,S=t.localDirectory={},x=As(await or(i,o,X,c));let E=xs(a,n,Br),F=xs(a,n,qr);const R=xs(a,n,Kr);if(E=E&&E.length&&E,F=F&&F.length&&F,l&&99!=l.originalCompressionMethod)throw new p(cs);if(0!=u&&8!=u&&9!=u&&!R)throw new p(cs);if(Ds(x,0)!=N)throw new p(ns);gs(S,x,4);const{extraFieldLength:D,filenameLength:_,lastAccessDate:A,creationDate:T}=S;S.rawExtraField=D?await or(i,o+X+_,D,c):new f,ys(a,S,x,4,!0),r.assign(t,{lastAccessDate:A,creationDate:T});const U=a.encrypted&&S.encrypted&&!R,v=U&&!l;if(R||(t.zipCrypto=v),U){if(!v&&l.strength===$)throw new p(os);if(!E&&!F)throw new p(is)}const C=o+X+_+D,W=b,O=i.readable;r.assign(O,{diskNumberStart:c,offset:C,size:W});const L=xs(a,n,Yr),P=xs(a,n,"checkPasswordOnly");let Z=xs(a,n,"checkOverlappingEntry");const H=xs(a,n,"checkOverlappingEntryOnly");H&&(Z=!0);const{onstart:V,onprogress:B,onend:q}=n,K=9==u;let Y=xs(a,n,Gr);K&&(Y=!1);const j={options:{codecType:wt,password:E,rawPassword:F,zipCrypto:v,encryptionStrength:l&&l.strength,signed:xs(a,n,"checkSignature")&&!R,passwordVerification:v&&(z?g>>>8&I:m>>>24&I),outputSize:R?b:y,signature:m,compressed:0!=u&&!R,encrypted:a.encrypted&&!R,useWebWorkers:xs(a,n,jr),useCompressionStream:Y,transferStreams:xs(a,n,"transferStreams"),deflate64:K,checkPasswordOnly:P},config:w,streamOptions:{signal:L,size:W,onstart:V,onprogress:B,onend:q}};let G;Z&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:n,compressedSize:a,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let f=0;if(c&&(f=l?20:12),f){const r=await or(e,o+a,f+4,s);if(Ds(As(r),0)==M){const e=Ds(As(r),4);let s,o;l?(s=_s(As(r),8),o=_s(As(r),16)):(s=Ds(As(r),8),o=Ds(As(r),12)),(t.encrypted&&!t.zipCrypto||e==n)&&s==a&&o==i&&(f+=4)}}const w={start:u+r,end:u+o+a+f,fileEntry:t};for(const e of d)if(e.fileEntry!=t&&w.start>=e.start&&w.start<e.end){const t=new p(ds);throw t.overlappingEntry=e.fileEntry,t}d.push(w)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:C,dataDescriptor:z||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,readRanges:s});try{if(!H){P&&(e=new k),e=new ar(e),await ir(e,R?b:y),({writable:G}=e);const{outputSize:t}=await _t({readable:O,writable:G},j);if(e.size+=t,t!=(R?b:y))throw new p(at)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!P||t.message!=Se)throw t}finally{xs(a,n,Xr)||!G||G.locked||await G.getWriter().close()}return P||H?$:e.getData?e.getData():G}}function gs(e,t,s){const n=e.rawBitFlag=ks(t,s+2),a=!(1&~n),i=Ds(t,s+6);r.assign(e,{encrypted:a,version:ks(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&B)==B},rawLastModDate:i,lastModDate:Es(i),filenameLength:ks(t,s+22),extraFieldLength:ks(t,s+24)})}function ys(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=As(new f(i));let u=0;try{for(;u<i.length;){const e=ks(d,u),t=ks(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const w=ks(s,n+4);r.assign(t,{signature:Ds(s,n+10),compressedSize:Ds(s,n+14),uncompressedSize:Ds(s,n+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=As(e.data),s=fs.filter(([e,r])=>t[e]==r);for(let n=0,a=0;n<s.length;n++){const[i,o]=s[n];if(t[i]==o){const s=ws[o];t[i]=e[i]=s.getValue(r,a),a+=s.bytes}else if(e[i])throw new p(as)}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(bs(m,dr,ur,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(bs(g,pr,fr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=As(e.data),a=Rs(n,4);r.assign(e,{vendorVersion:Rs(n,0),vendorId:Rs(n,2),strength:a,originalCompressionMethod:s,compressionMethod:ks(n,5)}),t.compressionMethod=e.compressionMethod})(y,t,w),t.extraFieldAES=y):t.compressionMethod=w;const b=l.get(10);b&&(((e,t)=>{const s=As(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=ks(s,a),r=ks(s,a+2);1==t&&(n=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(n&&24==n.length){const s=As(n),a=s.getBigUint64(0,!0),i=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:Fs(a),lastAccessDate:Fs(i),creationDate:Fs(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(30805);if(z)zs(z,t,!1),t.extraFieldUnix=z;else{const e=l.get(30837);e&&(zs(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(V);S&&(((e,t,r)=>{const s=As(e.data),n=Rs(s,0),a=[],i=[];r?(1&~n||(a.push(yr),i.push(br)),2&~n||(a.push(zr),i.push("rawLastAccessDate")),4&~n||(a.push(Sr),i.push(xr))):5>e.data.length||(a.push(yr),i.push(br));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=Ds(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(S,t,a),t.extraFieldExtendedTimestamp=S);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function bs(e,t,s,n,a){const i=As(e.data),o=new de;o.append(a[s]);const c=As(new f(4));c.setUint32(0,o.get(),!0);const l=Ds(i,1);r.assign(e,{version:Rs(i,0),[t]:lr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==Ds(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function zs(e,t,s){try{const n=As(new f(e.data));let a=0;const i=Rs(n,a++),o=Rs(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=Ss(c),d=Rs(n,a++),u=e.data.subarray(a,a+d);a+=d;const p=Ss(u);let w=$;if(!s&&a+2<=e.data.length){const t=e.data;w=new m(t.buffer,t.byteOffset+a,2).getUint16(0,!0)}r.assign(e,{version:i,uid:l,gid:p,unixMode:w}),l!==$&&(t.uid=l),p!==$&&(t.gid=p),w!==$&&(t.unixMode=w)}catch{}}function Ss(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function xs(e,t,r){return t[r]===$?e.options[r]:t[r]}function Es(e){const t=(4294901760&e)>>16,r=e&C;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 Fs(e){return new o(n(e/a(1e4)-a(116444736e5)))}function Rs(e,t){return e.getUint8(t)}function ks(e,t){return e.getUint16(t,!0)}function Ds(e,t){return e.getUint32(t,!0)}function _s(e,t){return n(e.getBigUint64(t,!0))}function As(e){return new m(e.buffer)}const Ts="File already exists",Us="Zip file comment exceeds 64KB",vs="File entry comment exceeds 64KB",Cs="File entry name exceeds 64KB",Is="Version exceeds 65535",Ns="The strength must equal 1, 2, or 3",Ws="Extra field type exceeds 65535",Ms="Extra field data exceeds 64KB",Os="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Ls="Undefined uncompressed size",Ps="Zip file not empty",Zs=new f([7,0,2,0,65,69,3,0,0]),Hs="infozip",Vs="unix";let Bs=0;const qs=[];class Ks{constructor(e,t={}){const s=(e=new ar(e)).availableSize!==$&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==$&&e.maxSize>0&&e.maxSize!==1/0;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ae(),files:new c,filenames:new l,offset:t[Qr]===$?e.size||e.writable.size||0:t[Qr],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new p(Ps);e=new nr(e);const t=new hs(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:n,lastAccessDate:a,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:p,diskNumber:w,zip64:h}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S}=e;const{level:x,languageEncodingFlag:E,dataDescriptor:F}=c;m=m||new f,g=g||new f,y=y||new f,b=b||new f,z=e.rawExtraFieldUnix||new f,S=S||new f;const R=an(m,g,y,b,z,S),k=h&&d>v,D=h&&u>v,{headerArray:_,headerView:A}=on({version:t,bitFlag:cn(x,E,F,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:D,zip64UncompressedSize:k,extraFieldLength:R});return r.assign(e,{zip64UncompressedSize:k,zip64CompressedSize:D,zip64Offset:h&&this.offset-p>v,zip64DiskNumberStart:h&&w>C,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(a?2:0)+(i?4:0),headerArray:_,headerView:A}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:u}=c;let h;Bs<u.maxWorkers?Bs++:await new y(e=>qs.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new p(Ts);return c.filenames.add(e),h=(async(e,s,n,c)=>{s=s.trim();let l=Js(e,c,Dr),u=Js(e,c,Ur,l?20:768);const h=Js(e,c,Ir),g=Js(e,c,"uid"),b=Js(e,c,"gid");let z=Js(e,c,Or);const S=Js(e,c,"unixExtraFieldType");let x=Js(e,c,Lr),E=Js(e,c,Pr),R=Js(e,c,Zr);if(g!==$&&(0>g||g>v))throw new p("Invalid uid (must be integer 0..2^32-1)");if(b!==$&&(0>b||b>v))throw new p("Invalid gid (must be integer 0..2^32-1)");if(z!==$&&(0>z||z>C))throw new p("Invalid UNIX mode (must be integer 0..65535)");if(S!==$&&S!==Hs&&S!==Vs)throw new p("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let k=Js(e,c,Rr),D=Js(e,c,kr);const _=k!==$||D!==$;if(g!==$||b!==$||z!==$||S?(l=!1,u=u&C|768):_&&(l=!0,u&=I),k!==$&&(0>k||k>I))throw new p("Invalid msdosAttributesRaw (must be integer 0..255)");if(D&&"object"!=typeof D)throw new p("Invalid msdosAttributes (must be an object with boolean flags)");if(u>C)throw new p(Is);let A=Js(e,c,Fr,0);!c[Cr]&&s.endsWith(G)&&(c[Cr]=!0);const T=Js(e,c,Cr);let U;T?(s.endsWith(G)||(s+=G),0===A&&(A=16,l||(A|=16877<<16))):l||0!==A||(A=h?493<<16:27525120),l||(U=A>>16&C,z=z===$?U:z&C,x?z|=K:x=!!(z&K),E?z|=Y:E=!!(z&Y),R?z|=j:R=!!(z&j),T&&(z|=q),A=(z&C)<<16|A&I),({msdosAttributesRaw:k,msdosAttributes:D}=((e,t)=>{if(e!==$)e&=I;else if(t!==$){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&I}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(k,D)),_&&(A=A&v|k&I);const O=Js(e,c,"encodeText",pe);let L=O(s);if(L===$&&(L=pe(s)),an(L)>C)throw new p(Cs);const P=c[pr]||"";let Z=O(P);if(Z===$&&(Z=pe(P)),an(Z)>C)throw new p(vs);const H=Js(e,c,Tr,20);if(H>C)throw new p(Is);const B=Js(e,c,yr,new o),ee=Js(e,c,zr),te=Js(e,c,Sr),re=Js(e,c,Er,0),se=Js(e,c,Kr);let ne,ae;se||(ne=Js(e,c,Br),ae=Js(e,c,qr));const oe=Js(e,c,"encryptionStrength",3),ce=Js(e,c,vr),le=Js(e,c,"extendedTimestamp",!0),de=Js(e,c,"keepOrder",!0),ue=Js(e,c,jr),fe=Js(e,c,"bufferedWrite"),we=Js(e,c,"dataDescriptorSignature",!1),he=Js(e,c,Yr),me=Js(e,c,"useUnicodeFileNames",!0),ge=Js(e,c,Nr);let ye=Js(e,c,"level"),be=Js(e,c,Gr),ze=Js(e,c,"dataDescriptor");fe&&ze===$&&(ze=!1),(ze===$||ce)&&(ze=!0),ye!==$&&6!=ye&&(be=!1),be||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(ye=0);let Se=Js(e,c,_r);if(!ce&&(ne!==$||ae!==$)&&(1>oe||oe>3))throw new p(Ns);let xe=new f;const Ee=c[Mr];if(Ee){let e=0,t=0;Ee.forEach(t=>e+=4+an(t)),xe=new f(e),Ee.forEach((e,r)=>{if(r>C)throw new p(Ws);if(an(e)>C)throw new p(Ms);sn(xe,new w([r]),t),sn(xe,new w([an(e)]),t+2),sn(xe,e,t+4),t+=4+an(e)})}let Fe=0,Re=0,ke=0;if(se&&(ke=c[wr],ke===$))throw new p(Ls);const De=!0===Se;n&&(n=new nr(n),await ir(n),se?(c.uncompressedSize=ke,Fe=Qs(ke)):n.size===$?(ze=!0,(Se||Se===$)&&(Se=!0,ke=Fe=4294967296)):(c.uncompressedSize=ke=n.size,Fe=Qs(ke)));const{diskOffset:_e,diskNumber:Ae,maxSize:Te}=e.writer,Ue=De||ke>v,ve=De||Fe>v,Ce=De||e.offset+e.pendingEntriesSize-_e>v,Ie=Js(e,c,Jr,!0)&&De||Ae+i.ceil(e.pendingEntriesSize/Te)>C;if(Ce||Ue||ve||Ie){if(!1===Se||!de)throw new p(Os);Se=!0}Se=Se||!1;const Ne=Js(e,c,Ar),We=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:n,level:o,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:p,rawExtraField:w,encryptionStrength:h,extendedTimestamp:g,passThrough:y,encrypted:b,zip64UncompressedSize:z,zip64CompressedSize:S,zip64Offset:x,zip64DiskNumberStart:E,uncompressedSize:F,offset:R,diskNumberStart:k}=e;let{version:D,compressionMethod:_}=e;const A=!p&&(o>0||o===$&&0!==_);let T,U;const v=y||!A,I=c&&(e.bufferedWrite||!z&&!S||v);if(c){let e=4,t=4;z&&(e+=8,t+=8),S&&(e+=8,t+=8),x&&(e+=8),E&&(e+=4),T=new f(e);const r=nn(T);U=new f(t);const s=nn(U);if(en(r,0,1),en(r,2,an(T)-4),en(s,0,1),en(s,2,an(U)-4),I){const e=nn(T),t=nn(U);let r=4,s=4;z&&(rn(e,r,a(F)),r+=8,rn(t,s,a(F)),s+=8),S&&v&&(rn(e,r,a(F)),r+=8,rn(t,s,a(F)),s+=8),x&&(rn(e,r,a(R)),r+=8),E&&(tn(e,r,k),r+=4),4==s&&(U=new f)}}else T=new f,U=new f;let W,M,O,L,P;if(b&&!l){W=new f(an(Zs)+2);const e=nn(W);en(e,0,39169),sn(W,Zs,2),$s(e,8,h)}else W=new f;if(g){O=new f(9+(s?4:0)+(n?4:0));const e=nn(O);en(e,0,V),en(e,2,an(O)-4),L=1+(s?2:0)+(n?4:0),$s(e,4,L);let t=5;tn(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(tn(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&tn(e,t,i.floor(n.getTime()/1e3));try{M=new f(36);const e=nn(M),t=Xs(r);en(e,0,10),en(e,2,32),en(e,8,1),en(e,10,24),rn(e,12,t),rn(e,20,Xs(s)||t),rn(e,28,Xs(n)||t)}catch{M=new f}}else M=O=new f;try{const{uid:t,gid:r,unixMode:s,setuid:n,setgid:a,sticky:i,unixExtraFieldType:o}=e;if(!o||t===$&&r===$&&s===$)P=new f;else{const e=Ys(t),c=Ys(r);let l=new f;if(o==Vs&&s!==$){let e=s&C;n&&(e|=K),a&&(e|=Y),i&&(e|=j),l=new f(2),new m(l.buffer).setUint16(0,e,!0)}const d=3+e.length+c.length+l.length;P=new f(4+d);const u=nn(P);en(u,0,o==Hs?30837:30805),en(u,2,d),$s(u,4,1),$s(u,5,e.length);let p=6;sn(P,e,p),p+=e.length,$s(u,p,c.length),p++,sn(P,c,p),p+=c.length,sn(P,l,p)}}catch{P=new f}_===$&&(_=A?8:0),c&&(D=D>45?D:45),b&&!l&&(D=D>51?D:51,W[9]=_,_=99);const Z=I?an(U):0,H=Z+an(W,O,M,P,w),{headerArray:B,headerView:q,rawLastModDate:G}=on({version:D,bitFlag:cn(o,d,u,b,_),compressionMethod:_,uncompressedSize:F,lastModDate:Q>r?Q:r>J?J:r,rawFilename:t,zip64CompressedSize:S,zip64UncompressedSize:z,extraFieldLength:H});let ee=X;const te=new f(ee+an(t)+H),re=nn(te);return tn(re,0,N),sn(te,B,4),sn(te,t,ee),ee+=an(t),I&&sn(te,U,ee),ee+=Z,sn(te,W,ee),ee+=an(W),sn(te,O,ee),ee+=an(O),sn(te,M,ee),ee+=an(M),sn(te,P,ee),ee+=an(P),sn(te,w,ee),u&&(tn(re,18,0),tn(re,22,0)),{localHeaderArray:te,localHeaderView:re,headerArray:B,headerView:q,lastModDate:r,rawLastModDate:G,encrypted:b,compressed:A,version:D,compressionMethod:_,extraFieldExtendedTimestampFlag:L,rawExtraFieldZip64:T,localExtraFieldZip64Length:Z,rawExtraFieldExtendedTimestamp:O,rawExtraFieldNTFS:M,rawExtraFieldUnix:P,rawExtraFieldAES:W,extraFieldLength:H}})(c=r.assign({},c,{rawFilename:L,rawComment:Z,version:H,versionMadeBy:u,lastModDate:B,lastAccessDate:ee,creationDate:te,rawExtraField:xe,zip64:Se,zip64UncompressedSize:Ue,zip64CompressedSize:ve,zip64Offset:Ce,zip64DiskNumberStart:Ie,password:ne,rawPassword:ae,level:ye,useWebWorkers:ue,encryptionStrength:oe,extendedTimestamp:le,zipCrypto:ce,bufferedWrite:fe,keepOrder:de,useUnicodeFileNames:me,dataDescriptor:ze,dataDescriptorSignature:we,signal:he,msDosCompatible:l,internalFileAttribute:re,internalFileAttributes:re,externalFileAttribute:A,externalFileAttributes:A,useCompressionStream:be,passThrough:se,encrypted:!!(ne&&an(ne)||ae&&an(ae))||se&&Ne,signature:c[Wr],compressionMethod:ge,uncompressedSize:ke,offset:e.offset-_e,diskNumberStart:Ae,uid:g,gid:b,setuid:x,setgid:E,sticky:R,unixMode:z,msdosAttributesRaw:k,msdosAttributes:D,unixExternalUpper:U})),Me=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let s,n=new f,a=0,i=e?20:12;return r&&(i+=4),t&&(n=new f(i),s=nn(n),r&&(a=4,tn(s,0,M))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Oe=an(We.localHeaderArray,Me.dataDescriptorArray);let Le;Re=Oe+Fe,e.options[$r]&&(Re+=Re+64),e.pendingEntriesSize+=Re;try{Le=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:u,dataDescriptor:w,signal:h}=o,{headerInfo:m}=i,g=e.options[$r],b=t.from(c.values()).pop();let z,S,x,E,R,k,D,_={};c.set(s,_);try{let t;u&&(t=b&&b.lock,_.lock=new y(e=>x=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&u)&&w||g?(k=l,await A()):(k=new F,k.size=0,z=!0,e.bufferedWrites++,await ir(l)),await ir(k);const{writable:S,diskOffset:U}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new f(4);tn(nn(t),0,W),await Gs(l,t),e.offset+=4}g&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=nn(s),i=64-(t+an(s))%64;4>i&&(i+=64);const o=new f(i),c=nn(o);en(c,0,6534),en(c,2,i-2);const l=s;r.localHeaderArray=s=new f(an(l)+i),sn(s,l),sn(s,o,an(l)),a=nn(s),en(a,28,n+i),e.metadataSize+=i})(i,e.offset-U);const{localHeaderView:C,localHeaderArray:N}=m;z||(await t,await T(S));const{diskNumber:M}=l;R=!0,_.diskNumberStart=M,z?D=new d(k.readable).blob():await Gs(k,N),_=await(async(e,t,{diskNumberStart:s,lock:n},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:p,headerView:f,lastModDate:w,rawLastModDate:h,encrypted:m,compressed:g,version:y,compressionMethod:b,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:E,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k}=l,{dataDescriptorArray:D}=d,{rawFilename:_,lastAccessDate:A,creationDate:T,password:U,rawPassword:v,level:C,zip64:N,zip64UncompressedSize:W,zip64CompressedSize:M,zip64Offset:O,zip64DiskNumberStart:L,zipCrypto:P,dataDescriptor:Z,directory:H,executable:V,versionMadeBy:B,rawComment:q,rawExtraField:K,useWebWorkers:Y,onstart:j,onprogress:G,onend:X,signal:J,encryptionStrength:Q,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:pe,msdosAttributes:fe,useCompressionStream:we,passThrough:he}=c,me={lock:n,versionMadeBy:B,zip64:N,directory:!!H,executable:!!V,filenameUTF8:!0,rawFilename:_,commentUTF8:!0,rawComment:q,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k,rawExtraField:K,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:s,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:pe,msdosAttributes:fe};let{signature:ge,uncompressedSize:ye}=c,be=0;he||(ye=0);const{writable:ze}=t;if(e){e.chunkSize=ie(o);const r=e.readable,s=e.size,n={options:{codecType:ft,level:C,rawPassword:v,password:U,encryptionStrength:Q,zipCrypto:m&&P,passwordVerification:m&&P&&h>>8&I,signed:!he,compressed:g&&!he,encrypted:m&&!he,useWebWorkers:Y,useCompressionStream:we,transferStreams:!1},config:o,streamOptions:{signal:J,size:s,onstart:j,onprogress:G,onend:X}};try{const e=await _t({readable:r,writable:ze},n);be=e.outputSize,t.size+=be,he||(ye=e.inputSize,ge=e.signature)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:n},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:p}=n;d&&!o||e===$||(tn(l,10,e),c&&tn(u,p,e)),i?c&&(rn(u,p+4,a(t)),rn(u,p+12,a(r))):(tn(l,14,t),tn(l,18,r),c&&(tn(u,p+4,t),tn(u,p+8,r)))})({signature:ge,compressedSize:be,uncompressedSize:ye,headerInfo:l,dataDescriptorInfo:d},c),Z&&await Gs(t,D),r.assign(me,{uncompressedSize:ye,compressedSize:be,lastModDate:w,rawLastModDate:h,creationDate:T,lastAccessDate:A,encrypted:m,zipCrypto:P,size:u+be,compressionMethod:b,version:y,headerArray:p,headerView:f,signature:ge,extraFieldExtendedTimestampFlag:E,zip64UncompressedSize:W,zip64CompressedSize:M,zip64Offset:O,zip64DiskNumberStart:L}),me})(n,k,_,i,e.config,o);const{zip64:O}=_;if(R=!1,c.set(s,_),_.filename=s,z){const[r]=await y.all([D,k.writable.getWriter().close(),t]);await A(),E=!0,_.diskNumberStart=l.diskNumber,_.offset=e.offset-l.diskOffset,O&&js(_),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||tn(d,14,n),l||tn(d,18,i),c||tn(d,22,o)),r&&s){let t=X+an(e)+4;c&&(rn(d,t,a(o)),t+=8),l&&(rn(d,t,a(i)),t+=8)}})(_,C,o),await T(S),await Gs(l,N),await r.stream().pipeTo(S,{preventClose:!0,preventAbort:!0,signal:h}),l.size+=k.size,E=!1}else _.offset=e.offset-U,O&&js(_);if(_.offset>v&&!O)throw new p(Os);return e.offset+=_.size,_}catch(t){if(z&&E||!z&&R){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}z?e.offset+=k.size:e.offset=k.size}throw c.delete(s),t}finally{z&&e.bufferedWrites--,x&&x(),S&&S()}async function A(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>S=()=>{e.writerLocked=!1,t()}),await t}async function T(e){an(m.localHeaderArray)>l.availableSize&&(l.availableSize=0,await Gs(e,new f))}})(e,s,n,{headerInfo:We,dataDescriptorInfo:Me,metadataSize:Oe},c)}finally{e.pendingEntriesSize-=Re}return r.assign(Le,{name:s,comment:P,extraField:Ee}),new Vr(Le)})(c,e,s,n),l.add(h),await h}catch(t){throw c.filenames.delete(e),t}finally{l.delete(h);const e=qs.shift();e?e():Bs--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new f,r={}){const{pendingAddFileCalls:s,writer:n}=this,{writable:o}=n;for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const{files:n,writer:o}=e,{diskOffset:c}=o;let{diskNumber:l}=o,d=0,u=0,w=e.offset-c,h=n.size;for(const[,e]of n){const{rawFilename:t,rawExtraFieldZip64:r,rawExtraFieldAES:s,rawComment:n,rawExtraFieldNTFS:a,rawExtraFieldUnix:o,rawExtraField:c,extendedTimestamp:l,extraFieldExtendedTimestampFlag:d,lastModDate:p}=e;let w;if(l){w=new f(9);const e=nn(w);en(e,0,V),en(e,2,5),$s(e,4,d),tn(e,5,i.floor(p.getTime()/1e3))}else w=new f;e.rawExtraFieldExtendedTimestamp=w,u+=46+an(t,n,r,s,a,o,w,c)}const m=new f(u),g=nn(m);await ir(o);let y=0;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:a,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraFieldUnix:p,rawExtraField:f,rawComment:w,versionMadeBy:h,headerArray:b,headerView:z,zip64:S,zip64UncompressedSize:x,zip64CompressedSize:E,zip64DiskNumberStart:F,zip64Offset:R,internalFileAttributes:k,externalFileAttributes:D,diskNumberStart:_,uncompressedSize:A,compressedSize:T}=r,U=an(i,c,l,u,p,f);tn(g,d,O),en(g,d+4,h),x||tn(z,18,A),E||tn(z,14,T),sn(m,b,d+6);let I=d+X;if(en(g,I,U),I+=2,en(g,I,an(w)),I+=2,en(g,I,S&&F?C:_),I+=2,en(g,I,k),I+=2,D&&tn(g,I,D),I+=4,tn(g,I,S&&R?v:t),I+=4,sn(m,a,I),I+=an(a),sn(m,i,I),I+=an(i),sn(m,c,I),I+=an(c),sn(m,l,I),I+=an(l),sn(m,u,I),I+=an(u),sn(m,p,I),I+=an(p),sn(m,f,I),I+=an(f),sn(m,w,I),I+=an(w),d-y>o.availableSize&&(o.availableSize=0,await Gs(o,m.slice(y,d)),y=d),d=I,s.onprogress)try{await s.onprogress(e+1,n.size,new Vr(r))}catch{}}await Gs(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=Js(e,s,_r);if(w>v||u>v||h>C||b>C){if(!1===S)throw new p(Os);S=!0}const x=new f(S?98:H),E=nn(x);d=0,S&&(tn(E,0,P),rn(E,4,a(44)),en(E,12,45),en(E,14,45),tn(E,16,b),tn(E,20,l),rn(E,24,a(h)),rn(E,32,a(h)),rn(E,40,a(u)),rn(E,48,a(w)),tn(E,56,Z),rn(E,64,a(w)+a(u)),tn(E,72,b+1),Js(e,s,Jr,!0)&&(b=C,l=C),h=C,w=v,u=v,d+=76),tn(E,d,L),en(E,d+4,b),en(E,d+6,l),en(E,d+8,h),en(E,d+10,h),tn(E,d+12,u),tn(E,d+16,w);const F=an(r);if(F){if(F>C)throw new p(Us);en(E,d+20,F)}await Gs(o,x),F&&await Gs(o,r)})(this,e,r),Js(this,r,Xr)||await o.getWriter().close(),n.getData?n.getData():o}}function Ys(e){if(e===$)return new f;{const t=new f(4);nn(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function js({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=nn(l);let u=4;n&&(rn(d,u,a(t)),u+=8),i&&(rn(d,u,a(e)),u+=8),o&&(rn(d,u,a(r)),u+=8),c&&tn(d,u,s)}async function Gs(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=an(t),await s.write(t)}finally{s.releaseLock()}}function Xs(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Js(e,t,r,s){const n=t[r]===$?e.options[r]:t[r];return n===$?s:n}function Qs(e){return e+5*(i.floor(e/16383)+1)}function $s(e,t,r){e.setUint8(t,r)}function en(e,t,r){e.setUint16(t,r,!0)}function tn(e,t,r){e.setUint32(t,r,!0)}function rn(e,t,r){e.setBigUint64(t,r,!0)}function sn(e,t,r){e.set(t,r)}function nn(e){return new m(e.buffer)}function an(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function on({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new f(26),u=nn(d);en(u,0,e),en(u,2,t),en(u,4,r);const p=new h(1),w=nn(p);en(w,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),en(w,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=p[0];return tn(u,6,m),(o||n!==$)&&tn(u,14,o?v:n),(c||s!==$)&&tn(u,18,c?v:s),en(u,22,an(i)),en(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function cn(e,t,r,s,n){let a=0;return t&&(a|=B),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}try{oe({baseURI:void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:U&&"SCRIPT"===U.tagName.toUpperCase()&&U.src||new u("zip-core.min.js",S.baseURI).href})}catch{}e.BlobReader=Pt,e.BlobWriter=Zt,e.Data64URIReader=class extends Ot{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,n=new f(t),a=4*i.floor(e/3),o=atob(s.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++)n[e-c]=o.charCodeAt(e),l++;return l<n.length?n.subarray(0,l):n}},e.Data64URIWriter=class extends Lt{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length&&(n.length>2?t.data+=E(n):t.pending+=n)}getData(){return this.data+E(this.pending)}},e.ERR_BAD_FORMAT=es,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=ss,e.ERR_DUPLICATED_NAME=Ts,e.ERR_ENCRYPTED=is,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=rs,e.ERR_EOCDR_NOT_FOUND=ts,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=as,e.ERR_HTTP_RANGE=Ut,e.ERR_INVALID_COMMENT=Us,e.ERR_INVALID_ENCRYPTION_STRENGTH=Ns,e.ERR_INVALID_ENTRY_COMMENT=vs,e.ERR_INVALID_ENTRY_NAME=Cs,e.ERR_INVALID_EXTRAFIELD_DATA=Ms,e.ERR_INVALID_EXTRAFIELD_TYPE=Ws,e.ERR_INVALID_PASSWORD=be,e.ERR_INVALID_SIGNATURE=ze,e.ERR_INVALID_UNCOMPRESSED_SIZE=at,e.ERR_INVALID_VERSION=Is,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ns,e.ERR_OVERLAPPING_ENTRY=ds,e.ERR_SPLIT_ZIP_FILE=ls,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Ls,e.ERR_UNSUPPORTED_COMPRESSION=cs,e.ERR_UNSUPPORTED_ENCRYPTION=os,e.ERR_UNSUPPORTED_FORMAT=Os,e.ERR_ZIP_NOT_EMPTY=Ps,e.HttpRangeReader=class extends tr{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=tr,e.Reader=Ot,e.SplitDataReader=rr,e.SplitDataWriter=sr,e.TextReader=class extends Pt{constructor(e){super(new g([e],{type:"text/plain"}))}},e.TextWriter=class extends Zt{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((n,a)=>{r.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>a(t.error)}),t.readAsText(s,e)})}}},e.Uint8ArrayReader=class extends Ot{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 Lt{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 s=t.array;t.array=new f(e),t.array.set(s)}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=Lt,e.ZipReader=hs,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new F,s=new hs(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const n={...r,readable:(()=>{const{readable:e,writable:t}=new F;if(r.getData)return r.getData(t),e})()};delete n.getData,e.enqueue(n)}}),this.writable=r}},e.ZipWriter=Ks,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new F;this.readable=t,this.zipWriter=new Ks(r,e)}transform(e){const{readable:t,writable:r}=new F({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:r}}writable(e){const{readable:t,writable:r}=new F;return this.zipWriter.add(e,t),r}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=oe,e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await y.allSettled(Rt.map(e=>(At(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:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:f,Uint8Array:p,Uint16Array:w,Uint32Array:h,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:E,TransformStream:F,ReadableStream:R,WritableStream:k,CompressionStream:D,DecompressionStream:_,navigator:A,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var v=void 0!==S?S.currentScript:null;const U=4294967295,C=65535,I=255,N=67324752,W=134695760,M=W,O=33639248,L=101010256,P=101075792,Z=117853008,H=22,V=21589,B=2048,q=16384,K=2048,j=1024,Y=512,G="/",X=30,J=new o(2107,11,31),Q=new o(1980,0,1),$=void 0,ee="undefined",te="function";let re=2;try{typeof A!=ee&&A.hardwareConcurrency&&(re=A.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:re,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof D!=ee&&D,DecompressionStream:typeof _!=ee&&_},ne=r.assign({},se);function ae(){return ne}function ie(e){return i.max(e.chunkSize,64)}function oe(e){const{baseURI:t,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:n,useCompressionStream:a,useWebWorkers:i,CompressionStream:o,DecompressionStream:c,CompressionStreamZlib:l,DecompressionStreamZlib:d,workerURI:u,wasmURI:f}=e;ce("baseURI",t),ce("wasmURI",f),ce("workerURI",u),ce("chunkSize",r),ce("maxWorkers",s),ce("terminateWorkerTimeout",n),ce("useCompressionStream",a),ce("useWebWorkers",i),ce("CompressionStream",o),ce("DecompressionStream",c),ce("CompressionStreamZlib",l),ce("DecompressionStreamZlib",d)}function ce(e,t){t!==$&&(ne[e]=t)}const le=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;le[e]=t}class de{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^le[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class ue extends F{constructor(){let e;const t=new de;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new p(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function fe(e){if(typeof b==ee){const t=new p((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)}const pe={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=pe.getPartial(r);return 32===s?e.concat(t):pe._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+pe.getPartial(r)},clamp(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]=pe.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let n=0;n<e.length;n++)s.push(r|e[n]>>>t),r=e[n]<<32-t;const n=e.length?e[e.length-1]:0,a=pe.getPartial(n);return s.push(pe.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},we={bytes:{fromBits(e){const t=pe.bitLength(e)/8,r=new p(t);let s;for(let n=0;t>n;n++)3&n||(s=e[n/4]),r[n]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push(pe.partial(8*(3&r),s)),t}}},he=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=we.utf8String.toBits(e));const r=t._buffer=pe.concat(t._buffer,e),s=t._length,n=t._length=s+pe.bitLength(e);if(n>9007199254740991)throw new f("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);n>=e;e+=t.blockSize)t._block(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=pe.concat(t,[pe.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,n=t(80);for(let t=0;16>t;t++)n[t]=e[t];let a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(n[e]=r._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const t=r._S(5,a)+r._f(e,o,c,l)+d+n[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=a,a=t}s[0]=s[0]+a|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},me={getRandomValues(e){const t=new h(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(i.random()>.5?1:-1))};for(let s,n=0;n<e.length;n+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[n/4]=4294967296*e()|0}return e}},ge={importKey:e=>new ge.hmacSha1(we.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new f("invalid params to pbkdf2");const n=1+(s>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(n),u=new m(d);let p=0;const w=pe;for(t=we.bytes.toBits(t),l=1;(n||1)>p;l++){for(a=i=e.encrypt(w.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;(n||1)>p&&o<a.length;o++)u.setInt32(p,a[o]),p+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=he,s=[[],[]];t._baseHash=[new r,new r];const n=t._baseHash[0].blockSize/32;e.length>n&&(e=(new r).update(e).finalize());for(let t=0;n>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new r(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new f("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},ye=typeof x!=ee&&typeof x.getRandomValues==te,be="Invalid password",ze="Invalid signature",Se="zipjs-abort-check-password";function xe(e){return ye?x.getRandomValues(e):me.getRandomValues(e)}const Ee=16,Fe={name:"PBKDF2"},Re=r.assign({hash:{name:"HMAC"}},Fe),ke=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Fe),De=["deriveBits"],_e=[8,12,16],Ae=[16,24,32],Te=10,ve=[0,0,0,0],Ue=typeof x!=ee,Ce=Ue&&x.subtle,Ie=Ue&&typeof Ce!=ee,Ne=we.bytes,We=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],s=t._tables[1],n=e.length;let a,i,o,c=1;if(4!==n&&6!==n&&8!==n)throw new f("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],a=n;4*n+28>a;a++){let e=i[a-1];(a%n===0||8===n&&a%n===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%n===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-n]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:s[0][r[t>>>24]]^s[1][r[t>>16&255]]^s[2][r[t>>8&255]]^s[3][r[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],r=e[4],s=t[4],n=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(n[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,s[a]=d,l=n[c=n[o=n[d]]];let u=16843009*l^65537*c^257*o^16843008*d,f=257*n[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=f=f<<24^f>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}_crypt(e,t){if(4!==e.length)throw new f("invalid aes block size");const r=this._key[t],s=r.length/4-2,n=[0,0,0,0],a=this._tables[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let u,p,w,h=e[0]^r[0],m=e[t?3:1]^r[1],g=e[2]^r[2],y=e[t?1:3]^r[3],b=4;for(let e=0;s>e;e++)u=i[h>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],p=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&h]^r[b+1],w=i[g>>>24]^o[y>>16&255]^c[h>>8&255]^l[255&m]^r[b+2],y=i[y>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&g]^r[b+3],b+=4,h=u,m=p,g=w;for(let e=0;4>e;e++)n[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[g>>8&255]<<8^d[255&y]^r[b++],u=h,h=m,m=g,g=y,y=u;return n}},Me=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,s=255&e;255===t?(t=0,255===r?(r=0,255===s?s=0:++s):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let s;if(!(s=t.length))return[];const n=pe.bitLength(t);for(let n=0;s>n;n+=4){this.incCounter(r);const s=e.encrypt(r);t[n]^=s[0],t[n+1]^=s[1],t[n+2]^=s[2],t[n+3]^=s[3]}return pe.clamp(t,n)}},Oe=ge.hmacSha1;let Le=Ue&&Ie&&typeof Ce.importKey==te,Pe=Ue&&Ie&&typeof Ce.deriveBits==te;class Ze extends F{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:qe(e,t),signed:s,strength:n-1,pending:new p})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const n=await Be(e,t,r,je(s,0,_e[t])),a=je(s,_e[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new f(be)})(r,n,s,je(e,0,_e[n]+2)),e=je(e,_e[n]+2),a?t.error(new f(Se)):i()):await o;const c=new p(e.length-Te-(e.length-Te)%Ee);t.enqueue(Ve(r,e,c,0,Te,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=je(n,0,n.length-Te),o=je(n,n.length-Te);let c=new p;if(i.length){const e=Ge(Ne,i);s.update(e);const t=r.update(e);c=Ye(Ne,t)}if(t){const e=je(Ye(Ne,s.digest()),0,Te);for(let t=0;Te>t;t++)if(e[t]!=o[t])throw new f(ze)}e.enqueue(c)}}})}}class He extends F{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:qe(e,t),strength:s-1,pending:new p})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:a,ready:i}=r;let o=new p;s?(o=await(async(e,t,r)=>{const s=xe(new p(_e[t]));return Ke(s,await Be(e,t,r,s))})(r,n,s),a()):await i;const c=new p(o.length+e.length-e.length%Ee);c.set(o,0),t.enqueue(Ve(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:a}=this;if(r&&t){await a;let i=new p;if(s.length){const e=t.update(Ge(Ne,s));r.update(e),i=Ye(Ne,e)}n.signature=Ye(Ne,r.digest()).slice(0,Te),e.enqueue(Ke(i,n.signature))}}}),n=this}}function Ve(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=Ke(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new p(t)).set(r,0)}return e})(r,l-l%Ee)),d=0;l-Ee>=d;d+=Ee){const e=Ge(Ne,je(t,d,d+Ee));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(Ye(Ne,n),d+s)}return e.pending=je(t,d),r}async function Be(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!Le)return ge.importKey(t);try{return await Ce.importKey("raw",t,r,!1,n)}catch{return Le=!1,ge.importKey(t)}})(0,n,Re,0,De),o=await(async(e,t,r)=>{if(!Pe)return ge.pbkdf2(t,e.salt,ke.iterations,r);try{return await Ce.deriveBits(e,t,r)}catch{return Pe=!1,ge.pbkdf2(t,e.salt,ke.iterations,r)}})(r.assign({salt:a},ke),i,8*(2*Ae[s]+2)),c=new p(o),l=Ge(Ne,je(c,0,Ae[s])),d=Ge(Ne,je(c,Ae[s],2*Ae[s])),u=je(c,2*Ae[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new Me(new We(l),t.from(ve)),hmac:new Oe(d)}),u}function qe(e,t){return t===$?fe(e):t}function Ke(e,t){let r=e;return e.length+t.length&&(r=new p(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function je(e,t,r){return e.subarray(t,r)}function Ye(e,t){return e.fromBits(t)}function Ge(e,t){return e.toBits(t)}class Xe extends F{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),et(this,e)},transform(e,t){const r=this;if(r.password){const t=Qe(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new f(be);e=e.subarray(12)}s?t.error(new f(Se)):t.enqueue(Qe(r,e))}})}}class Je extends F{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),et(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=xe(new p(12));t[11]=r.passwordVerification,s=new p(e.length+t.length),s.set($e(r,t),0),n=12}else s=new p(e.length),n=0;s.set($e(r,e),n),t.enqueue(s)}})}}function Qe(e,t){const r=new p(t.length);for(let s=0;s<t.length;s++)r[s]=rt(e)^t[s],tt(e,r[s]);return r}function $e(e,t){const r=new p(t.length);for(let s=0;s<t.length;s++)r[s]=rt(e)^t[s],tt(e,t[s]);return r}function et(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new de(s[0]),crcKey2:new de(s[2])});for(let r=0;r<t.length;r++)tt(e,t.charCodeAt(r))}function tt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=nt(i.imul(nt(s+st(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function rt(e){const t=2|e.keys[2];return st(i.imul(t,1^t)>>>8)}function st(e){return 255&e}function nt(e){return 4294967295&e}const at="Invalid uncompressed size";class it extends F{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:n,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,f,p=super.readable;a&&!o||!c||(u=new ue,p=dt(p,u)),n&&(p=lt(p,i,{level:l,chunkSize:t},s,r,s)),a&&(o?p=dt(p,new Je(e)):(f=new He(e),p=dt(p,f))),ct(d,p,()=>{let e;a&&!o&&(e=f.signature),a&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class ot extends F{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:n,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,p,w=super.readable;a&&(n?w=dt(w,new Xe(e)):(p=new Ze(e),w=dt(w,p))),c&&(w=lt(w,l,{chunkSize:t,deflate64:d},s,r,s)),a&&!n||!i||(u=new ue,w=dt(w,u)),ct(this,w,()=>{if((!a||n)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new f(ze)}})}}function ct(e,t,s){t=dt(t,new F({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function lt(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=dt(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=dt(e,new n(o,r));else{if(!a)throw s;e=dt(e,new a(o,r))}}return e}function dt(e,t){return e.pipeThrough(t)}const ut="data",ft="close",pt="deflate",wt="inflate";class ht extends F{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(pt)?a=it:n.startsWith(wt)&&(a=ot),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new F({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new F({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==$&&s.outputSize>e.outputSize))throw new f(at)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class mt extends F{constructor(e){let t;super({transform:function r(s,n){if(t){const e=new p(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(n.enqueue(s.slice(0,e)),r(s.slice(e),n)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}const gt={type:"module"};let yt,bt,zt,St=!0;class xt{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new mt(a.chunkSize)).pipeThrough(new Et(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),yt===$&&(yt=typeof T!=ee),(o&&yt?kt:Rt)(e,a)}}class Et extends F{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await Ft(e,r)},async transform(e,s){n+=e.length,t&&await Ft(t,n,r),s.enqueue(e)},async flush(){s&&await Ft(s,n)}})}}async function Ft(e,...t){try{await e(...t)}catch{}}function Rt(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},n)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{e.useCompressionStream=!0}a=new ht(e,n),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=a;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{s()}})(e,t)}}function kt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==te&&(a=a());try{i=Dt(e.workerURI,s,e)}catch{return yt=!1,Rt(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{let t;const r=new y(e=>t=e);return{writable:new k({async write(t){const r=e.getWriter();await r.ready,await r.write(t),r.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:r}})(e.writable),d=_t({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}function Dt(e,t,s,n,a=!0){let i,o,c;if(bt===$){const r=typeof e==te;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){n===$&&(n=!1),n&&(c=gt);try{i=new T(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return Dt(e,t,s,n,!1);if(n)throw a;return Dt(e,t,s,!0,!1)}}else{n===$&&(n=!0),n&&(c=gt);try{o=new u(o,t)}catch{}try{i=new T(o,c)}catch(r){if(n)throw r;return Dt(e,t,s,!1,a)}}bt=o,zt=c}else i=new T(bt,zt);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:w}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new f(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),h(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();_t({type:ut,value:e,done:r,messageId:a},t)}s==ut&&(await l.ready,await l.write(new p(n)),_t({type:"ack",messageId:a},t)),s==ft&&h(null,i)}}catch(o){_t({type:ft,messageId:a},t),h(o)}function h(e,t){e?u(e):d(t),l&&l.releaseLock(),w()}})(e,s)),i}function _t(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&St?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{St=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let At=[];const Tt=[];let vt=0;async function Ut(e,t){const{options:r,config:s}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:f}=s;t.transferStreams=a||a===$;const p=!(c||l||d||t.transferStreams);return t.useWebWorkers=!p&&(i||i===$&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:$,r.useCompressionStream=o||o===$&&s.useCompressionStream,(await(async()=>{const r=At.find(e=>!e.busy);if(r)return Ct(r),new xt(r,e,t,w);if(At.length<f){const r={indexWorker:vt};return vt++,At.push(r),new xt(r,e,t,w)}return new y(r=>Tt.push({resolve:r,stream:e,workerOptions:t}))})()).run();function w(e){if(Tt.length){const[{resolve:t,stream:r,workerOptions:s}]=Tt.splice(0,1);t(new xt(e,r,s,w))}else e.worker?(Ct(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{At=At.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):At=At.filter(t=>t!=e)}}function Ct(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const It="HTTP error ",Nt="HTTP Range not supported",Wt="Range",Mt="GET",Ot="bytes",Lt=65536,Pt="writable";class Zt{constructor(){this.size=0}init(){this.initialized=!0}}class Ht extends Zt{get readable(){const e=this,{chunkSize:t=Lt}=e,r=new R({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===$?t:i.min(t,a-c),d=await ur(e,n+c,l,o);s.enqueue(d),c+t>a||a===$&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class Vt extends Zt{constructor(){super();const e=this,t=new k({write(t){if(!e.initialized)throw new f("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,Pt,{get:()=>t})}writeUint8Array(){}}class Bt extends Ht{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,n=e||s<r.size?r.blob.slice(e,s):r.blob;let a=await n.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,s)),new p(a)}}class qt extends Zt{constructor(e){super();const t=new F,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,Pt,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class Kt extends Ht{constructor(e,t){super(),Yt(this,e,t)}async init(){await Gt(this,sr,$t),super.init()}readUint8Array(e,t){return Xt(this,e,t,sr,$t)}}class jt extends Ht{constructor(e,t){super(),Yt(this,e,t)}async init(){await Gt(this,nr,er),super.init()}readUint8Array(e,t){return Xt(this,e,t,nr,er)}}function Yt(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o})}async function Gt(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ae(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(Mt,e,Jt(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==Ot))throw new f(Nt);{let a;c&&(e.eocdCache=new p(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=n(t))}}a===$?await rr(e,t,r):e.size=a}}else await rr(e,t,r)}async function Xt(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(Mt,e,Jt(e,t,r));if(206!=n.status)throw new f(Nt);return new p(await n.arrayBuffer())}return new p}{const{data:s}=e;return s||await n(e,l),new p(e.data.subarray(t,t+r))}}function Jt(e,t=0,s=1){return r.assign({},Qt(e),{[Wt]:Ot+"="+(0>t?t:t+"-"+(t+s-1))})}function Qt({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function $t(e){await tr(e,sr)}async function er(e){await tr(e,nr)}async function tr(e,t){const r=await t(Mt,e,Qt(e));e.data=new p(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function rr(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,Qt(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function sr(e,{options:t,url:s},n){const a=await fetch(s,r.assign({},t,{method:e,headers:n}));if(400>a.status)return a;throw 416==a.status?new f(Nt):new f(It+(a.statusText||a.status))}function nr(e,{url:t},s){return new y((n,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)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new f(Nt):new f(It+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new f("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class ar extends Ht{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new jt(e,t):new Kt(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class ir extends Ht{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new p(t);const o=await ur(l,c,i);a.set(o,0);const d=await s.readUint8Array(e+i,t-i,r);a.set(d,i),o.length+d.length<t&&(a=a.subarray(0,o.length+d.length))}else a=await ur(l,c,t)}else a=new p;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class or extends Zt{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new k({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new f("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await dr(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,Pt,{get:()=>o})}}class cr{constructor(e){return t.isArray(e)&&(e=new ir(e)),e instanceof R&&(e={readable:e}),e}}class lr{constructor(e){return e.writable===$&&typeof e.next==te&&(e=new or(e)),e instanceof k&&(e={writable:e}),e.size===$&&(e.size=0),e instanceof or||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}}async function dr(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function ur(e,t,r,s){return e.readUint8Array(t,r,s)}const fr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function pr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=fr[e[r]];return t}})(e):new z(t).decode(e)}const wr="filename",hr="rawFilename",mr="comment",gr="rawComment",yr="uncompressedSize",br="compressedSize",zr="offset",Sr="diskNumberStart",xr="lastModDate",Er="rawLastModDate",Fr="lastAccessDate",Rr="creationDate",kr="rawCreationDate",Dr="internalFileAttributes",_r="externalFileAttributes",Ar="msdosAttributesRaw",Tr="msdosAttributes",vr="msDosCompatible",Ur="zip64",Cr="encrypted",Ir="version",Nr="versionMadeBy",Wr="zipCrypto",Mr="directory",Or="executable",Lr="compressionMethod",Pr="signature",Zr="extraField",Hr="unixMode",Vr="setuid",Br="setgid",qr="sticky",Kr=[wr,hr,yr,br,xr,Er,mr,gr,Fr,Rr,kr,zr,Sr,Dr,_r,Ar,Tr,vr,Ur,Cr,Ir,Nr,Wr,Mr,Or,Lr,Pr,Zr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Hr,Vr,Br,qr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class jr{constructor(e){Kr.forEach(t=>this[t]=e[t])}}const Yr="password",Gr="rawPassword",Xr="passThrough",Jr="signal",Qr="useWebWorkers",$r="useCompressionStream",es="preventClose",ts="supportZip64SplitFile",rs="offset",ss="usdz",ns="File format is not recognized",as="End of central directory not found",is="End of Zip64 central directory locator not found",os="Central directory header not found",cs="Local file header not found",ls="Zip64 extra field not found",ds="File contains encrypted entry",us="Encryption method not supported",fs="Compression method not supported",ps="Split zip file",ws="Overlapping entry found",hs="utf-8",ms="cp437",gs=[[yr,U],[br,U],[zr,U],[Sr,C]],ys={[C]:{getValue:vs,bytes:4},[U]:{getValue:Us,bytes:8}};class bs{constructor(e,t={}){r.assign(this,{reader:new cr(e),options:t,config:ae(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await dr(s),s.size!==$&&s.readUint8Array||(s=new Bt(await new d(s.readable).blob()),await dr(s)),s.size<H)throw new f(ns);s.chunkSize=ie(n);const a=await(async(e,t,r)=>{const s=new p(4);var n;return n=t,Cs(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await ur(e,n,t);for(let e=a.length-22;e>=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:n+e,buffer:a.slice(e,e+22).buffer}}})(s,L,s.size);if(!a)throw vs(Cs(await ur(s,0,4)))==W?new f(ps):new f(as);const o=Cs(a);let c=vs(o,12),l=vs(o,16);const u=a.offset,w=Ts(o,20),h=u+H+w;let m=Ts(o,4);const g=s.lastDiskNumber||0;let b=Ts(o,6),z=Ts(o,8),S=0,x=0;if(l==U||c==U||z==C||b==C){const e=Cs(await ur(s,a.offset-20,20));if(vs(e,0)==Z){l=Us(e,8);let t=await ur(s,l,56,-1),r=Cs(t);const n=a.offset-20-56;if(vs(r,0)!=P&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await ur(s,l,56,-1),r=Cs(t)}if(vs(r,0)!=P)throw new f(is);m==C&&(m=vs(r,16)),b==C&&(b=vs(r,20)),z==C&&(z=Us(r,32)),c==U&&(c=Us(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new f(ps);if(0>l)throw new f(ns);let E=0,R=await ur(s,l,c,b),k=Cs(R);if(c){const e=a.offset-c;if(vs(k,E)!=O&&l!=e){const t=l;l=e,l>t&&(S+=l-t),R=await ur(s,l,c,b),k=Cs(R)}}const D=a.offset-l-(s.lastDiskOffset||0);if(c==D||0>D||(c=D,R=await ur(s,l,c,b),k=Cs(R)),0>l||l>=s.size)throw new f(ns);const _=ks(t,e,"filenameEncoding"),A=ks(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new zs(s,n,t.options);if(vs(k,E)!=O)throw new f(os);Ss(o,k,E+6);const c=!!o.bitFlag.languageEncodingFlag,l=E+46,u=l+o.filenameLength,p=u+o.extraFieldLength,w=Ts(k,E+4),h=!(w>>8),m=w>>8==3,g=R.subarray(l,u),b=Ts(k,E+32),D=p+b,T=R.subarray(p,D),v=c,U=c,N=vs(k,E+38),W=N&I,M={readOnly:!!(1&W),hidden:!!(2&W),system:!!(4&W),directory:!!(16&W),archive:!!(32&W)},L=vs(k,E+42)+S,P=ks(t,e,"decodeText")||pr,Z=v?hs:_||ms,H=U?hs:A||ms;let V=P(g,Z);V===$&&(V=pr(g,Z));let B=P(T,H);B===$&&(B=pr(T,H)),r.assign(o,{versionMadeBy:w,msDosCompatible:h,compressedSize:0,uncompressedSize:0,commentLength:b,offset:L,diskNumberStart:Ts(k,E+34),internalFileAttributes:Ts(k,E+36),externalFileAttributes:N,msdosAttributesRaw:W,msdosAttributes:M,rawFilename:g,filenameUTF8:v,commentUTF8:U,rawExtraField:R.subarray(u,p),rawComment:T,filename:V,comment:B}),x=i.max(L,x),xs(o,o,k,E+6);const X=o.externalFileAttributes>>16&C;o.unixMode===$&&16877&X&&(o.unixMode=X);const J=!!(o.unixMode&K),Q=!!(o.unixMode&j),ee=!!(o.unixMode&Y),te=o.unixMode!==$?!!(73&o.unixMode):m&&!!(73&X),re=o.unixMode!==$&&(61440&o.unixMode)==q,se=(61440&X)==q;r.assign(o,{setuid:J,setgid:Q,sticky:ee,unixExternalUpper:X,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:te,directory:re||se||h&&M.directory||V.endsWith(G)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ne=new jr(o);ne.getData=(e,r)=>o.getData(e,ne,t.readRanges,r),ne.arrayBuffer=async e=>{const r=new F,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ne,t.readRanges,e)]);return s},E=D;const{onprogress:ae}=e;if(ae)try{await ae(a+1,z,new jr(o))}catch{}yield ne}const T=ks(t,e,"extractPrependedData"),v=ks(t,e,"extractAppendedData");return T&&(t.prependedData=x>0?await ur(s,0,x):new p),t.comment=w?await ur(s,u+H,w):new p,v&&(t.appendedData=h<s.size?await ur(s,h,s.size-h):new p),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class zs{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,n={}){const a=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:w,bitFlag:h,signature:m,rawLastModDate:g,uncompressedSize:y,compressedSize:b}=a,{dataDescriptor:z}=h,S=t.localDirectory={},x=Cs(await ur(i,o,X,c));let E=ks(a,n,Yr),F=ks(a,n,Gr);const R=ks(a,n,Xr);if(E=E&&E.length&&E,F=F&&F.length&&F,l&&99!=l.originalCompressionMethod)throw new f(fs);if(0!=u&&8!=u&&9!=u&&!R)throw new f(fs);if(vs(x,0)!=N)throw new f(cs);Ss(S,x,4);const{extraFieldLength:D,filenameLength:_,lastAccessDate:A,creationDate:T}=S;S.rawExtraField=D?await ur(i,o+X+_,D,c):new p,xs(a,S,x,4,!0),r.assign(t,{lastAccessDate:A,creationDate:T});const v=a.encrypted&&S.encrypted&&!R,U=v&&!l;if(R||(t.zipCrypto=U),v){if(!U&&l.strength===$)throw new f(us);if(!E&&!F)throw new f(ds)}const C=o+X+_+D,W=b,O=i.readable;r.assign(O,{diskNumberStart:c,offset:C,size:W});const L=ks(a,n,Jr),P=ks(a,n,"checkPasswordOnly");let Z=ks(a,n,"checkOverlappingEntry");const H=ks(a,n,"checkOverlappingEntryOnly");H&&(Z=!0);const{onstart:V,onprogress:B,onend:q}=n,K=9==u;let j=ks(a,n,$r);K&&(j=!1);const Y={options:{codecType:wt,password:E,rawPassword:F,zipCrypto:U,encryptionStrength:l&&l.strength,signed:ks(a,n,"checkSignature")&&!R,passwordVerification:U&&(z?g>>>8&I:m>>>24&I),outputSize:R?b:y,signature:m,compressed:0!=u&&!R,encrypted:a.encrypted&&!R,useWebWorkers:ks(a,n,Qr),useCompressionStream:j,transferStreams:ks(a,n,"transferStreams"),deflate64:K,checkPasswordOnly:P},config:w,streamOptions:{signal:L,size:W,onstart:V,onprogress:B,onend:q}};let G;Z&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:n,compressedSize:a,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let p=0;if(c&&(p=l?20:12),p){const r=await ur(e,o+a,p+4,s);if(vs(Cs(r),0)==M){const e=vs(Cs(r),4);let s,o;l?(s=Us(Cs(r),8),o=Us(Cs(r),16)):(s=vs(Cs(r),8),o=vs(Cs(r),12)),(t.encrypted&&!t.zipCrypto||e==n)&&s==a&&o==i&&(p+=4)}}const w={start:u+r,end:u+o+a+p,fileEntry:t};for(const e of d)if(e.fileEntry!=t&&w.start>=e.start&&w.start<e.end){const t=new f(ws);throw t.overlappingEntry=e.fileEntry,t}d.push(w)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:C,dataDescriptor:z||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,readRanges:s});try{if(!H){P&&(e=new k),e=new lr(e),await dr(e,R?b:y),({writable:G}=e);const{outputSize:t}=await Ut({readable:O,writable:G},Y);if(e.size+=t,t!=(R?b:y))throw new f(at)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!P||t.message!=Se)throw t}finally{ks(a,n,es)||!G||G.locked||await G.getWriter().close()}return P||H?$:e.getData?e.getData():G}}function Ss(e,t,s){const n=e.rawBitFlag=Ts(t,s+2),a=!(1&~n),i=vs(t,s+6);r.assign(e,{encrypted:a,version:Ts(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&B)==B},rawLastModDate:i,lastModDate:Ds(i),filenameLength:Ts(t,s+22),extraFieldLength:Ts(t,s+24)})}function xs(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=Cs(new p(i));let u=0;try{for(;u<i.length;){const e=Ts(d,u),t=Ts(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const w=Ts(s,n+4);r.assign(t,{signature:vs(s,n+10),compressedSize:vs(s,n+14),uncompressedSize:vs(s,n+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=Cs(e.data),s=gs.filter(([e,r])=>t[e]==r);for(let n=0,a=0;n<s.length;n++){const[i,o]=s[n];if(t[i]==o){const s=ys[o];t[i]=e[i]=s.getValue(r,a),a+=s.bytes}else if(e[i])throw new f(ls)}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(Es(m,wr,hr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(Es(g,mr,gr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=Cs(e.data),a=As(n,4);r.assign(e,{vendorVersion:As(n,0),vendorId:As(n,2),strength:a,originalCompressionMethod:s,compressionMethod:Ts(n,5)}),t.compressionMethod=e.compressionMethod})(y,t,w),t.extraFieldAES=y):t.compressionMethod=w;const b=l.get(10);b&&(((e,t)=>{const s=Cs(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=Ts(s,a),r=Ts(s,a+2);1==t&&(n=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(n&&24==n.length){const s=Cs(n),a=s.getBigUint64(0,!0),i=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:_s(a),lastAccessDate:_s(i),creationDate:_s(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(30805);if(z)Fs(z,t,!1),t.extraFieldUnix=z;else{const e=l.get(30837);e&&(Fs(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(V);S&&(((e,t,r)=>{const s=Cs(e.data),n=As(s,0),a=[],i=[];r?(1&~n||(a.push(xr),i.push(Er)),2&~n||(a.push(Fr),i.push("rawLastAccessDate")),4&~n||(a.push(Rr),i.push(kr))):5>e.data.length||(a.push(xr),i.push(Er));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=vs(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(S,t,a),t.extraFieldExtendedTimestamp=S);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function Es(e,t,s,n,a){const i=Cs(e.data),o=new de;o.append(a[s]);const c=Cs(new p(4));c.setUint32(0,o.get(),!0);const l=vs(i,1);r.assign(e,{version:As(i,0),[t]:pr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==vs(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function Fs(e,t,s){try{const n=Cs(new p(e.data));let a=0;const i=As(n,a++),o=As(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=Rs(c),d=As(n,a++),u=e.data.subarray(a,a+d);a+=d;const f=Rs(u);let w=$;if(!s&&a+2<=e.data.length){const t=e.data;w=new m(t.buffer,t.byteOffset+a,2).getUint16(0,!0)}r.assign(e,{version:i,uid:l,gid:f,unixMode:w}),l!==$&&(t.uid=l),f!==$&&(t.gid=f),w!==$&&(t.unixMode=w)}catch{}}function Rs(e){const t=new p(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function ks(e,t,r){return t[r]===$?e.options[r]:t[r]}function Ds(e){const t=(4294901760&e)>>16,r=e&C;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 _s(e){return new o(n(e/a(1e4)-a(116444736e5)))}function As(e,t){return e.getUint8(t)}function Ts(e,t){return e.getUint16(t,!0)}function vs(e,t){return e.getUint32(t,!0)}function Us(e,t){return n(e.getBigUint64(t,!0))}function Cs(e){return new m(e.buffer)}const Is="File already exists",Ns="Zip file comment exceeds 64KB",Ws="File entry comment exceeds 64KB",Ms="File entry name exceeds 64KB",Os="Version exceeds 65535",Ls="The strength must equal 1, 2, or 3",Ps="Extra field type exceeds 65535",Zs="Extra field data exceeds 64KB",Hs="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Vs="Undefined uncompressed size",Bs="Zip file not empty",qs=new p([7,0,2,0,65,69,3,0,0]),Ks="infozip",js="unix";let Ys=0;const Gs=[];class Xs{constructor(e,t={}){const s=(e=new lr(e)).availableSize!==$&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==$&&e.maxSize>0&&e.maxSize!==1/0;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ae(),files:new c,filenames:new l,offset:t[rs]===$?e.size||e.writable.size||0:t[rs],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new f(Bs);e=new cr(e);const t=new bs(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:n,lastAccessDate:a,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:f,diskNumber:w,zip64:h}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S}=e;const{level:x,languageEncodingFlag:E,dataDescriptor:F}=c;m=m||new p,g=g||new p,y=y||new p,b=b||new p,z=e.rawExtraFieldUnix||new p,S=S||new p;const R=dn(m,g,y,b,z,S),k=h&&d>U,D=h&&u>U,{headerArray:_,headerView:A}=un({version:t,bitFlag:fn(x,E,F,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:D,zip64UncompressedSize:k,extraFieldLength:R});return r.assign(e,{zip64UncompressedSize:k,zip64CompressedSize:D,zip64Offset:h&&this.offset-f>U,zip64DiskNumberStart:h&&w>C,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(a?2:0)+(i?4:0),headerArray:_,headerView:A}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:d}=c;let u;Ys<d.maxWorkers?Ys++:await new y(e=>Gs.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new f(Is);return c.filenames.add(e),u=(async(e,s,n,c)=>{s=s.trim();let l=tn(e,c,vr),d=tn(e,c,Nr,l?20:768);const u=tn(e,c,Or),h=tn(e,c,"uid"),g=tn(e,c,"gid");let b=tn(e,c,Hr);const z=tn(e,c,"unixExtraFieldType");let S=tn(e,c,Vr),x=tn(e,c,Br),E=tn(e,c,qr);if(h!==$&&(0>h||h>U))throw new f("Invalid uid (must be integer 0..2^32-1)");if(g!==$&&(0>g||g>U))throw new f("Invalid gid (must be integer 0..2^32-1)");if(b!==$&&(0>b||b>C))throw new f("Invalid UNIX mode (must be integer 0..65535)");if(z!==$&&z!==Ks&&z!==js)throw new f("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let R=tn(e,c,Ar),k=tn(e,c,Tr);const D=R!==$||k!==$;if(h!==$||g!==$||b!==$||z?(l=!1,d=d&C|768):D&&(l=!0,d&=I),R!==$&&(0>R||R>I))throw new f("Invalid msdosAttributesRaw (must be integer 0..255)");if(k&&"object"!=typeof k)throw new f("Invalid msdosAttributes (must be an object with boolean flags)");if(d>C)throw new f(Os);let _=tn(e,c,_r,0);!c[Mr]&&s.endsWith(G)&&(c[Mr]=!0);const A=tn(e,c,Mr);let T;A?(s.endsWith(G)||(s+=G),0===_&&(_=16,l||(_|=16877<<16))):l||0!==_||(_=u?493<<16:27525120),l||(T=_>>16&C,b=b===$?T:b&C,S?b|=K:S=!!(b&K),x?b|=j:x=!!(b&j),E?b|=Y:E=!!(b&Y),A&&(b|=q),_=(b&C)<<16|_&I),({msdosAttributesRaw:R,msdosAttributes:k}=((e,t)=>{if(e!==$)e&=I;else if(t!==$){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&I}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(R,k)),D&&(_=_&U|R&I);const v=tn(e,c,"encodeText",fe);let O=v(s);if(O===$&&(O=fe(s)),dn(O)>C)throw new f(Ms);const L=c[mr]||"";let P=v(L);if(P===$&&(P=fe(L)),dn(P)>C)throw new f(Ws);const Z=tn(e,c,Ir,20);if(Z>C)throw new f(Os);const H=tn(e,c,xr,new o),B=tn(e,c,Fr),ee=tn(e,c,Rr),te=tn(e,c,Dr,0),re=tn(e,c,Xr);let se,ne;re||(se=tn(e,c,Yr),ne=tn(e,c,Gr));const ae=tn(e,c,"encryptionStrength",3),oe=tn(e,c,Wr),ce=tn(e,c,"extendedTimestamp",!0),le=tn(e,c,"keepOrder",!0),de=tn(e,c,Qr),ue=tn(e,c,"bufferedWrite"),pe=tn(e,c,"dataDescriptorSignature",!1),we=tn(e,c,Jr),he=tn(e,c,"useUnicodeFileNames",!0),me=tn(e,c,Lr);let ge=tn(e,c,"level"),ye=tn(e,c,$r),be=tn(e,c,"dataDescriptor");ue&&be===$&&(be=!1),(be===$||oe)&&(be=!0),ge!==$&&6!=ge&&(ye=!1),ye||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(ge=0);let ze=tn(e,c,Ur);if(!oe&&(se!==$||ne!==$)&&(1>ae||ae>3))throw new f(Ls);let Se=new p;const xe=c[Zr];if(xe){let e=0,t=0;xe.forEach(t=>e+=4+dn(t)),Se=new p(e),xe.forEach((e,r)=>{if(r>C)throw new f(Ps);if(dn(e)>C)throw new f(Zs);cn(Se,new w([r]),t),cn(Se,new w([dn(e)]),t+2),cn(Se,e,t+4),t+=4+dn(e)})}let Ee=0,Fe=0,Re=0;if(re&&(Re=c[yr],Re===$))throw new f(Vs);const ke=!0===ze;n&&(n=new cr(n),await dr(n),re?(c.uncompressedSize=Re,Ee=rn(Re)):n.size===$?(be=!0,(ze||ze===$)&&(ze=!0,Re=Ee=4294967296)):(c.uncompressedSize=Re=n.size,Ee=rn(Re)));const{diskOffset:De,diskNumber:_e,maxSize:Ae}=e.writer,Te=ke||Re>U,ve=ke||Ee>U,Ue=ke||e.offset+e.pendingEntriesSize-De>U,Ce=tn(e,c,ts,!0)&&ke||_e+i.ceil(e.pendingEntriesSize/Ae)>C;if(Ue||Te||ve||Ce){if(!1===ze||!le)throw new f(Hs);ze=!0}ze=ze||!1;const Ie=tn(e,c,Cr),Ne=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:n,level:o,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:f,rawExtraField:w,encryptionStrength:h,extendedTimestamp:g,passThrough:y,encrypted:b,zip64UncompressedSize:z,zip64CompressedSize:S,zip64Offset:x,zip64DiskNumberStart:E,uncompressedSize:F,offset:R,diskNumberStart:k}=e;let{version:D,compressionMethod:_}=e;const A=!f&&(o>0||o===$&&0!==_);let T,v;const U=y||!A,I=c&&(e.bufferedWrite||!z&&!S||U);if(c){let e=4,t=4;z&&(e+=8,t+=8),S&&(e+=8,t+=8),x&&(e+=8),E&&(e+=4),T=new p(e);const r=ln(T);v=new p(t);const s=ln(v);if(nn(r,0,1),nn(r,2,dn(T)-4),nn(s,0,1),nn(s,2,dn(v)-4),I){const e=ln(T),t=ln(v);let r=4,s=4;z&&(on(e,r,a(F)),r+=8,on(t,s,a(F)),s+=8),S&&U&&(on(e,r,a(F)),r+=8,on(t,s,a(F)),s+=8),x&&(on(e,r,a(R)),r+=8),E&&(an(e,r,k),r+=4),4==s&&(v=new p)}}else T=new p,v=new p;let W,M,O,L,P;if(b&&!l){W=new p(dn(qs)+2);const e=ln(W);nn(e,0,39169),cn(W,qs,2),sn(e,8,h)}else W=new p;if(g){O=new p(9+(s?4:0)+(n?4:0));const e=ln(O);nn(e,0,V),nn(e,2,dn(O)-4),L=1+(s?2:0)+(n?4:0),sn(e,4,L);let t=5;an(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(an(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&an(e,t,i.floor(n.getTime()/1e3));try{M=new p(36);const e=ln(M),t=en(r);nn(e,0,10),nn(e,2,32),nn(e,8,1),nn(e,10,24),on(e,12,t),on(e,20,en(s)||t),on(e,28,en(n)||t)}catch{M=new p}}else M=O=new p;try{const{uid:t,gid:r,unixMode:s,setuid:n,setgid:a,sticky:i,unixExtraFieldType:o}=e;if(!o||t===$&&r===$&&s===$)P=new p;else{const e=Js(t),c=Js(r);let l=new p;if(o==js&&s!==$){let e=s&C;n&&(e|=K),a&&(e|=j),i&&(e|=Y),l=new p(2),new m(l.buffer).setUint16(0,e,!0)}const d=3+e.length+c.length+l.length;P=new p(4+d);const u=ln(P);nn(u,0,o==Ks?30837:30805),nn(u,2,d),sn(u,4,1),sn(u,5,e.length);let f=6;cn(P,e,f),f+=e.length,sn(u,f,c.length),f++,cn(P,c,f),f+=c.length,cn(P,l,f)}}catch{P=new p}_===$&&(_=A?8:0),c&&(D=D>45?D:45),b&&!l&&(D=D>51?D:51,W[9]=_,_=99);const Z=I?dn(v):0,H=Z+dn(W,O,M,P,w),{headerArray:B,headerView:q,rawLastModDate:G}=un({version:D,bitFlag:fn(o,d,u,b,_),compressionMethod:_,uncompressedSize:F,lastModDate:Q>r?Q:r>J?J:r,rawFilename:t,zip64CompressedSize:S,zip64UncompressedSize:z,extraFieldLength:H});let ee=X;const te=new p(ee+dn(t)+H),re=ln(te);return an(re,0,N),cn(te,B,4),cn(te,t,ee),ee+=dn(t),I&&cn(te,v,ee),ee+=Z,cn(te,W,ee),ee+=dn(W),cn(te,O,ee),ee+=dn(O),cn(te,M,ee),ee+=dn(M),cn(te,P,ee),ee+=dn(P),cn(te,w,ee),u&&(an(re,18,0),an(re,22,0)),{localHeaderArray:te,localHeaderView:re,headerArray:B,headerView:q,lastModDate:r,rawLastModDate:G,encrypted:b,compressed:A,version:D,compressionMethod:_,extraFieldExtendedTimestampFlag:L,rawExtraFieldZip64:T,localExtraFieldZip64Length:Z,rawExtraFieldExtendedTimestamp:O,rawExtraFieldNTFS:M,rawExtraFieldUnix:P,rawExtraFieldAES:W,extraFieldLength:H}})(c=r.assign({},c,{rawFilename:O,rawComment:P,version:Z,versionMadeBy:d,lastModDate:H,lastAccessDate:B,creationDate:ee,rawExtraField:Se,zip64:ze,zip64UncompressedSize:Te,zip64CompressedSize:ve,zip64Offset:Ue,zip64DiskNumberStart:Ce,password:se,rawPassword:ne,level:ge,useWebWorkers:de,encryptionStrength:ae,extendedTimestamp:ce,zipCrypto:oe,bufferedWrite:ue,keepOrder:le,useUnicodeFileNames:he,dataDescriptor:be,dataDescriptorSignature:pe,signal:we,msDosCompatible:l,internalFileAttribute:te,internalFileAttributes:te,externalFileAttribute:_,externalFileAttributes:_,useCompressionStream:ye,passThrough:re,encrypted:!!(se&&dn(se)||ne&&dn(ne))||re&&Ie,signature:c[Pr],compressionMethod:me,uncompressedSize:Re,offset:e.offset-De,diskNumberStart:_e,uid:h,gid:g,setuid:S,setgid:x,sticky:E,unixMode:b,msdosAttributesRaw:R,msdosAttributes:k,unixExternalUpper:T})),We=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let s,n=new p,a=0,i=e?20:12;return r&&(i+=4),t&&(n=new p(i),s=ln(n),r&&(a=4,an(s,0,M))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Me=dn(Ne.localHeaderArray,We.dataDescriptorArray);let Oe;Fe=Me+Ee,e.options[ss]&&(Fe+=Fe+64),e.pendingEntriesSize+=Fe;try{Oe=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:d,dataDescriptor:u,signal:w}=o,{headerInfo:h}=i,m=e.options[ss],g=t.from(c.values()).pop();let b,z,S,x,E,R,k={};c.set(s,k);try{let t;d&&(t=g&&g.lock,k.lock=new y(e=>S=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&d)&&u||m?(R=l,await D()):(R=new F(void 0,void 0,{highWaterMark:1/0}),R.size=0,b=!0,e.bufferedWrites++,await dr(l)),await dr(R);const{writable:z,diskOffset:A}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new p(4);an(ln(t),0,W),await $s(l,t),e.offset+=4}m&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=ln(s),i=64-(t+dn(s))%64;4>i&&(i+=64);const o=new p(i),c=ln(o);nn(c,0,6534),nn(c,2,i-2);const l=s;r.localHeaderArray=s=new p(dn(l)+i),cn(s,l),cn(s,o,dn(l)),a=ln(s),nn(a,28,n+i),e.metadataSize+=i})(i,e.offset-A);const{localHeaderView:T,localHeaderArray:v}=h;b||(await t,await _(z));const{diskNumber:C}=l;k.diskNumberStart=C,b||(E=!0,await $s(R,v)),k=await(async(e,t,{diskNumberStart:s,lock:n},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:f,headerView:p,lastModDate:w,rawLastModDate:h,encrypted:m,compressed:g,version:y,compressionMethod:b,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:E,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k}=l,{dataDescriptorArray:D}=d,{rawFilename:_,lastAccessDate:A,creationDate:T,password:v,rawPassword:U,level:C,zip64:N,zip64UncompressedSize:W,zip64CompressedSize:M,zip64Offset:O,zip64DiskNumberStart:L,zipCrypto:P,dataDescriptor:Z,directory:H,executable:V,versionMadeBy:B,rawComment:q,rawExtraField:K,useWebWorkers:j,onstart:Y,onprogress:G,onend:X,signal:J,encryptionStrength:Q,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:fe,msdosAttributes:pe,useCompressionStream:we,passThrough:he}=c,me={lock:n,versionMadeBy:B,zip64:N,directory:!!H,executable:!!V,filenameUTF8:!0,rawFilename:_,commentUTF8:!0,rawComment:q,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k,rawExtraField:K,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:s,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:fe,msdosAttributes:pe};let{signature:ge,uncompressedSize:ye}=c,be=0;he||(ye=0);const{writable:ze}=t;if(e){e.chunkSize=ie(o);const r=e.readable,s=e.size,n={options:{codecType:pt,level:C,rawPassword:U,password:v,encryptionStrength:Q,zipCrypto:m&&P,passwordVerification:m&&P&&h>>8&I,signed:!he,compressed:g&&!he,encrypted:m&&!he,useWebWorkers:j,useCompressionStream:we,transferStreams:!1},config:o,streamOptions:{signal:J,size:s,onstart:Y,onprogress:G,onend:X}};try{const e=await Ut({readable:r,writable:ze},n);be=e.outputSize,t.size+=be,he||(ye=e.inputSize,ge=e.signature)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:n},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:f}=n;d&&!o||e===$||(an(l,10,e),c&&an(u,f,e)),i?c&&(on(u,f+4,a(t)),on(u,f+12,a(r))):(an(l,14,t),an(l,18,r),c&&(an(u,f+4,t),an(u,f+8,r)))})({signature:ge,compressedSize:be,uncompressedSize:ye,headerInfo:l,dataDescriptorInfo:d},c),Z&&await $s(t,D),r.assign(me,{uncompressedSize:ye,compressedSize:be,lastModDate:w,rawLastModDate:h,creationDate:T,lastAccessDate:A,encrypted:m,zipCrypto:P,size:u+be,compressionMethod:b,version:y,headerArray:f,headerView:p,signature:ge,extraFieldExtendedTimestampFlag:E,zip64UncompressedSize:W,zip64CompressedSize:M,zip64Offset:O,zip64DiskNumberStart:L}),me})(n,R,k,i,e.config,o);const{zip64:N}=k;if(b||(E=!1),c.set(s,k),k.filename=s,b?(await y.all([R.writable.getWriter().close(),t]),await D(),x=!0,k.diskNumberStart=l.diskNumber,k.offset=e.offset-l.diskOffset,N&&Qs(k),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||an(d,14,n),l||an(d,18,i),c||an(d,22,o)),r&&s){let t=X+dn(e)+4;c&&(on(d,t,a(o)),t+=8),l&&(on(d,t,a(i)),t+=8)}})(k,T,o),await _(z),await $s(l,v),await R.readable.pipeTo(z,{preventClose:!0,preventAbort:!0,signal:w}),l.size+=R.size,x=!1):(k.offset=e.offset-A,N&&Qs(k)),k.offset>U&&!N)throw new f(Hs);return e.offset+=k.size,k}catch(t){if(x||E){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}b?e.offset+=R.size:e.offset=R.size}throw c.delete(s),t}finally{b&&e.bufferedWrites--,S&&S(),z&&z()}async function D(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>z=()=>{e.writerLocked=!1,t()}),await t}async function _(e){dn(h.localHeaderArray)>l.availableSize&&(l.availableSize=0,await $s(e,new p))}})(e,s,n,{headerInfo:Ne,dataDescriptorInfo:We,metadataSize:Me},c)}finally{e.pendingEntriesSize-=Fe}return r.assign(Oe,{name:s,comment:L,extraField:xe}),new jr(Oe)})(c,e,s,n),l.add(u),await u}catch(t){throw c.filenames.delete(e),t}finally{l.delete(u);const e=Gs.shift();e?e():Ys--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new p,r={}){const{pendingAddFileCalls:s,writer:n}=this,{writable:o}=n;for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const{files:n,writer:o}=e,{diskOffset:c}=o;let{diskNumber:l}=o,d=0,u=0,w=e.offset-c,h=n.size;for(const[,e]of n){const{rawFilename:t,rawExtraFieldZip64:r,rawExtraFieldAES:s,rawComment:n,rawExtraFieldNTFS:a,rawExtraFieldUnix:o,rawExtraField:c,extendedTimestamp:l,extraFieldExtendedTimestampFlag:d,lastModDate:f}=e;let w;if(l){w=new p(9);const e=ln(w);nn(e,0,V),nn(e,2,5),sn(e,4,d),an(e,5,i.floor(f.getTime()/1e3))}else w=new p;e.rawExtraFieldExtendedTimestamp=w,u+=46+dn(t,n,r,s,a,o,w,c)}const m=new p(u),g=ln(m);await dr(o);let y=0;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:a,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraFieldUnix:f,rawExtraField:p,rawComment:w,versionMadeBy:h,headerArray:b,headerView:z,zip64:S,zip64UncompressedSize:x,zip64CompressedSize:E,zip64DiskNumberStart:F,zip64Offset:R,internalFileAttributes:k,externalFileAttributes:D,diskNumberStart:_,uncompressedSize:A,compressedSize:T}=r,v=dn(i,c,l,u,f,p);an(g,d,O),nn(g,d+4,h),x||an(z,18,A),E||an(z,14,T),cn(m,b,d+6);let I=d+X;if(nn(g,I,v),I+=2,nn(g,I,dn(w)),I+=2,nn(g,I,S&&F?C:_),I+=2,nn(g,I,k),I+=2,D&&an(g,I,D),I+=4,an(g,I,S&&R?U:t),I+=4,cn(m,a,I),I+=dn(a),cn(m,i,I),I+=dn(i),cn(m,c,I),I+=dn(c),cn(m,l,I),I+=dn(l),cn(m,u,I),I+=dn(u),cn(m,f,I),I+=dn(f),cn(m,p,I),I+=dn(p),cn(m,w,I),I+=dn(w),d-y>o.availableSize&&(o.availableSize=0,await $s(o,m.slice(y,d)),y=d),d=I,s.onprogress)try{await s.onprogress(e+1,n.size,new jr(r))}catch{}}await $s(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=tn(e,s,Ur);if(w>U||u>U||h>C||b>C){if(!1===S)throw new f(Hs);S=!0}const x=new p(S?98:H),E=ln(x);d=0,S&&(an(E,0,P),on(E,4,a(44)),nn(E,12,45),nn(E,14,45),an(E,16,b),an(E,20,l),on(E,24,a(h)),on(E,32,a(h)),on(E,40,a(u)),on(E,48,a(w)),an(E,56,Z),on(E,64,a(w)+a(u)),an(E,72,b+1),tn(e,s,ts,!0)&&(b=C,l=C),h=C,w=U,u=U,d+=76),an(E,d,L),nn(E,d+4,b),nn(E,d+6,l),nn(E,d+8,h),nn(E,d+10,h),an(E,d+12,u),an(E,d+16,w);const F=dn(r);if(F){if(F>C)throw new f(Ns);nn(E,d+20,F)}await $s(o,x),F&&await $s(o,r)})(this,e,r),tn(this,r,es)||await o.getWriter().close(),n.getData?n.getData():o}}function Js(e){if(e===$)return new p;{const t=new p(4);ln(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Qs({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=ln(l);let u=4;n&&(on(d,u,a(t)),u+=8),i&&(on(d,u,a(e)),u+=8),o&&(on(d,u,a(r)),u+=8),c&&an(d,u,s)}async function $s(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=dn(t),await s.write(t)}finally{s.releaseLock()}}function en(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function tn(e,t,r,s){const n=t[r]===$?e.options[r]:t[r];return n===$?s:n}function rn(e){return e+5*(i.floor(e/16383)+1)}function sn(e,t,r){e.setUint8(t,r)}function nn(e,t,r){e.setUint16(t,r,!0)}function an(e,t,r){e.setUint32(t,r,!0)}function on(e,t,r){e.setBigUint64(t,r,!0)}function cn(e,t,r){e.set(t,r)}function ln(e){return new m(e.buffer)}function dn(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function un({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new p(26),u=ln(d);nn(u,0,e),nn(u,2,t),nn(u,4,r);const f=new h(1),w=ln(f);nn(w,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),nn(w,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=f[0];return an(u,6,m),(o||n!==$)&&an(u,14,o?U:n),(c||s!==$)&&an(u,18,c?U:s),nn(u,22,dn(i)),nn(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function fn(e,t,r,s,n){let a=0;return t&&(a|=B),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}try{oe({baseURI:void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:v&&"SCRIPT"===v.tagName.toUpperCase()&&v.src||new u("zip-core.min.js",S.baseURI).href})}catch{}e.BlobReader=Bt,e.BlobWriter=qt,e.Data64URIReader=class extends Ht{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,n=new p(t),a=4*i.floor(e/3),o=atob(s.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++)n[e-c]=o.charCodeAt(e),l++;return l<n.length?n.subarray(0,l):n}},e.Data64URIWriter=class extends Vt{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length&&(n.length>2?t.data+=E(n):t.pending+=n)}getData(){return this.data+E(this.pending)}},e.ERR_BAD_FORMAT=ns,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=os,e.ERR_DUPLICATED_NAME=Is,e.ERR_ENCRYPTED=ds,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=is,e.ERR_EOCDR_NOT_FOUND=as,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=ls,e.ERR_HTTP_RANGE=Nt,e.ERR_INVALID_COMMENT=Ns,e.ERR_INVALID_ENCRYPTION_STRENGTH=Ls,e.ERR_INVALID_ENTRY_COMMENT=Ws,e.ERR_INVALID_ENTRY_NAME=Ms,e.ERR_INVALID_EXTRAFIELD_DATA=Zs,e.ERR_INVALID_EXTRAFIELD_TYPE=Ps,e.ERR_INVALID_PASSWORD=be,e.ERR_INVALID_SIGNATURE=ze,e.ERR_INVALID_UNCOMPRESSED_SIZE=at,e.ERR_INVALID_VERSION=Os,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=cs,e.ERR_OVERLAPPING_ENTRY=ws,e.ERR_SPLIT_ZIP_FILE=ps,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Vs,e.ERR_UNSUPPORTED_COMPRESSION=fs,e.ERR_UNSUPPORTED_ENCRYPTION=us,e.ERR_UNSUPPORTED_FORMAT=Hs,e.ERR_ZIP_NOT_EMPTY=Bs,e.HttpRangeReader=class extends ar{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=ar,e.Reader=Ht,e.SplitDataReader=ir,e.SplitDataWriter=or,e.TextReader=class extends Bt{constructor(e){super(new g([e],{type:"text/plain"}))}},e.TextWriter=class extends qt{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((n,a)=>{r.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>a(t.error)}),t.readAsText(s,e)})}}},e.Uint8ArrayReader=class extends Ht{constructor(e){super(),e=new p(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 Vt{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new p(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 s=t.array;t.array=new p(e),t.array.set(s)}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=Vt,e.ZipReader=bs,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new F,s=new bs(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const n={...r,readable:(()=>{const{readable:e,writable:t}=new F;if(r.getData)return r.getData(t),e})()};delete n.getData,e.enqueue(n)}}),this.writable=r}},e.ZipWriter=Xs,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new F;this.readable=t,this.zipWriter=new Xs(r,e)}transform(e){const{readable:t,writable:r}=new F({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:r}}writable(e){const{readable:t,writable:r}=new F;return this.zipWriter.add(e,t),r}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=oe,e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await y.allSettled(At.map(e=>(Ct(e),e.terminate())))}});