@zip.js/zip.js 2.8.11 → 2.8.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -19,8 +19,15 @@ See here for more info: https://gildas-lormeau.github.io/zip.js/
19
19
  ## Hello world
20
20
 
21
21
  ```js
22
- import { BlobReader, BlobWriter, TextReader, TextWriter, ZipReader, ZipWriter } from "jsr:@zip-js/zip-js";
23
- // for NPM: import { BlobReader, BlobWriter, TextReader, TextWriter, ZipReader, ZipWriter } from "@zip-js/zip-js";
22
+ import {
23
+ BlobReader,
24
+ BlobWriter,
25
+ TextReader,
26
+ TextWriter,
27
+ ZipReader,
28
+ ZipWriter
29
+ } from "@zip-js/zip-js";
30
+ // Prefix "@zip-js/zip-js" with "jsr:" for Deno
24
31
 
25
32
  // ----
26
33
  // Write the zip file
@@ -65,13 +72,17 @@ await zipReader.close();
65
72
  console.log(helloWorldText);
66
73
  ```
67
74
 
68
- Run the code on JSFiddle: https://jsfiddle.net/tdjxLcu9/
75
+ Run the code on JSFiddle: https://jsfiddle.net/tm9fhvab/
69
76
 
70
77
  ## Hello world with Streams
71
78
 
72
79
  ```js
73
- import { BlobReader, ZipReader, ZipWriter } from "jsr:@zip-js/zip-js";
74
- // for NPM: import { BlobReader, ZipReader, ZipWriter } from "@zip-js/zip-js";
80
+ import {
81
+ BlobReader,
82
+ ZipReader,
83
+ ZipWriter
84
+ } from "@zip-js/zip-js";
85
+ // Prefix "@zip-js/zip-js" with "jsr:" for Deno
75
86
 
76
87
  // ----
77
88
  // Write the zip file
@@ -123,7 +134,7 @@ const helloWorldText = await helloWorldTextPromise;
123
134
  console.log(helloWorldText);
124
135
  ```
125
136
 
126
- Run the code on JSFiddle: https://jsfiddle.net/exnyq1ft/
137
+ Run the code on JSFiddle: https://jsfiddle.net/aw3d6f4o/
127
138
 
128
139
  ## Adding concurrently multiple entries in a zip file
129
140
 
@@ -133,7 +144,8 @@ import {
133
144
  HttpReader,
134
145
  TextReader,
135
146
  ZipWriter,
136
- } from "jsr:@zip-js/zip-js";
147
+ } from "@zip-js/zip-js";
148
+ // Prefix "@zip-js/zip-js" with "jsr:" for Deno
137
149
 
138
150
  const README_URL = "https://unpkg.com/@zip.js/zip.js/README.md";
139
151
  getZipFileBlob()
package/deno.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zip-js/zip-js",
3
- "version": "2.8.8",
3
+ "version": "2.8.14",
4
4
  "exports": {
5
5
  ".": "./index.js"
6
6
  },
package/dist/zip-core.js CHANGED
@@ -5189,15 +5189,19 @@
5189
5189
  let { version, compressionMethod } = options;
5190
5190
  const compressed = !directory && (level > 0 || (level === UNDEFINED_VALUE && compressionMethod !== 0));
5191
5191
  let rawExtraFieldZip64;
5192
+ let rawLocalExtraFieldZip64;
5192
5193
  const uncompressedFile = passThrough || !compressed;
5193
5194
  const zip64ExtraFieldComplete = zip64 && (options.bufferedWrite || ((!zip64UncompressedSize && !zip64CompressedSize) || uncompressedFile));
5194
5195
  if (zip64) {
5195
5196
  let rawExtraFieldZip64Length = 4;
5197
+ let rawLocalExtraFieldZip64Length = 4;
5196
5198
  if (zip64UncompressedSize) {
5197
5199
  rawExtraFieldZip64Length += 8;
5200
+ rawLocalExtraFieldZip64Length += 8;
5198
5201
  }
5199
5202
  if (zip64CompressedSize) {
5200
5203
  rawExtraFieldZip64Length += 8;
5204
+ rawLocalExtraFieldZip64Length += 8;
5201
5205
  }
5202
5206
  if (zip64Offset) {
5203
5207
  rawExtraFieldZip64Length += 8;
@@ -5207,18 +5211,28 @@
5207
5211
  }
5208
5212
  rawExtraFieldZip64 = new Uint8Array(rawExtraFieldZip64Length);
5209
5213
  const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
5214
+ rawLocalExtraFieldZip64 = new Uint8Array(rawLocalExtraFieldZip64Length);
5215
+ const rawLocalExtraFieldZip64View = getDataView(rawLocalExtraFieldZip64);
5210
5216
  setUint16(rawExtraFieldZip64View, 0, EXTRAFIELD_TYPE_ZIP64);
5211
5217
  setUint16(rawExtraFieldZip64View, 2, getLength(rawExtraFieldZip64) - 4);
5218
+ setUint16(rawLocalExtraFieldZip64View, 0, EXTRAFIELD_TYPE_ZIP64);
5219
+ setUint16(rawLocalExtraFieldZip64View, 2, getLength(rawLocalExtraFieldZip64) - 4);
5212
5220
  if (zip64ExtraFieldComplete) {
5213
5221
  const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
5222
+ const rawLocalExtraFieldZip64View = getDataView(rawLocalExtraFieldZip64);
5214
5223
  let rawExtraFieldZip64Offset = 4;
5224
+ let rawLocalExtraFieldZip64Offset = 4;
5215
5225
  if (zip64UncompressedSize) {
5216
5226
  setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
5217
5227
  rawExtraFieldZip64Offset += 8;
5228
+ setBigUint64(rawLocalExtraFieldZip64View, rawLocalExtraFieldZip64Offset, BigInt(uncompressedSize));
5229
+ rawLocalExtraFieldZip64Offset += 8;
5218
5230
  }
5219
5231
  if (zip64CompressedSize && uncompressedFile) {
5220
5232
  setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
5221
5233
  rawExtraFieldZip64Offset += 8;
5234
+ setBigUint64(rawLocalExtraFieldZip64View, rawLocalExtraFieldZip64Offset, BigInt(uncompressedSize));
5235
+ rawLocalExtraFieldZip64Offset += 8;
5222
5236
  }
5223
5237
  if (zip64Offset) {
5224
5238
  setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(offset));
@@ -5228,9 +5242,13 @@
5228
5242
  setUint32(rawExtraFieldZip64View, rawExtraFieldZip64Offset, diskNumberStart);
5229
5243
  rawExtraFieldZip64Offset += 4;
5230
5244
  }
5245
+ if (rawLocalExtraFieldZip64Offset == 4) {
5246
+ rawLocalExtraFieldZip64 = new Uint8Array();
5247
+ }
5231
5248
  }
5232
5249
  } else {
5233
5250
  rawExtraFieldZip64 = new Uint8Array();
5251
+ rawLocalExtraFieldZip64 = new Uint8Array();
5234
5252
  }
5235
5253
  let rawExtraFieldAES;
5236
5254
  if (encrypted && !zipCrypto) {
@@ -5333,7 +5351,7 @@
5333
5351
  rawExtraFieldAES[9] = compressionMethod;
5334
5352
  compressionMethod = COMPRESSION_METHOD_AES;
5335
5353
  }
5336
- const localExtraFieldZip64Length = zip64ExtraFieldComplete ? getLength(rawExtraFieldZip64) : 0;
5354
+ const localExtraFieldZip64Length = zip64ExtraFieldComplete ? getLength(rawLocalExtraFieldZip64) : 0;
5337
5355
  const extraFieldLength = localExtraFieldZip64Length + getLength(rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraFieldUnix, rawExtraField);
5338
5356
  const {
5339
5357
  headerArray,
@@ -5358,7 +5376,7 @@
5358
5376
  arraySet(localHeaderArray, rawFilename, localHeaderOffset);
5359
5377
  localHeaderOffset += getLength(rawFilename);
5360
5378
  if (zip64ExtraFieldComplete) {
5361
- arraySet(localHeaderArray, rawExtraFieldZip64, localHeaderOffset);
5379
+ arraySet(localHeaderArray, rawLocalExtraFieldZip64, localHeaderOffset);
5362
5380
  }
5363
5381
  localHeaderOffset += localExtraFieldZip64Length;
5364
5382
  arraySet(localHeaderArray, rawExtraFieldAES, localHeaderOffset);
@@ -5531,40 +5549,29 @@
5531
5549
  signature,
5532
5550
  compressedSize,
5533
5551
  uncompressedSize,
5534
- offset,
5535
- diskNumberStart,
5536
5552
  zip64UncompressedSize,
5537
- zip64CompressedSize,
5538
- zip64Offset,
5539
- zip64DiskNumberStart
5553
+ zip64CompressedSize
5540
5554
  }, localHeaderView, { dataDescriptor }) {
5541
5555
  if (!dataDescriptor) {
5542
5556
  if (!encrypted) {
5543
5557
  setUint32(localHeaderView, HEADER_OFFSET_SIGNATURE + 4, signature);
5544
5558
  }
5545
- if (!zip64) {
5559
+ if (!zip64CompressedSize) {
5546
5560
  setUint32(localHeaderView, HEADER_OFFSET_COMPRESSED_SIZE + 4, compressedSize);
5561
+ }
5562
+ if (!zip64UncompressedSize) {
5547
5563
  setUint32(localHeaderView, HEADER_OFFSET_UNCOMPRESSED_SIZE + 4, uncompressedSize);
5548
5564
  }
5549
5565
  }
5550
- if (zip64) {
5551
- if (localExtraFieldZip64Length) {
5552
- let localHeaderOffset = HEADER_SIZE + getLength(rawFilename) + 4;
5553
- if (zip64UncompressedSize) {
5554
- setBigUint64(localHeaderView, localHeaderOffset, BigInt(uncompressedSize));
5555
- localHeaderOffset += 8;
5556
- }
5557
- if (zip64CompressedSize) {
5558
- setBigUint64(localHeaderView, localHeaderOffset, BigInt(compressedSize));
5559
- localHeaderOffset += 8;
5560
- }
5561
- if (zip64Offset) {
5562
- setBigUint64(localHeaderView, localHeaderOffset, BigInt(offset));
5563
- localHeaderOffset += 8;
5564
- }
5565
- if (zip64DiskNumberStart) {
5566
- setUint32(localHeaderView, localHeaderOffset, diskNumberStart);
5567
- }
5566
+ if (zip64 && localExtraFieldZip64Length) {
5567
+ let localHeaderOffset = HEADER_SIZE + getLength(rawFilename) + 4;
5568
+ if (zip64UncompressedSize) {
5569
+ setBigUint64(localHeaderView, localHeaderOffset, BigInt(uncompressedSize));
5570
+ localHeaderOffset += 8;
5571
+ }
5572
+ if (zip64CompressedSize) {
5573
+ setBigUint64(localHeaderView, localHeaderOffset, BigInt(compressedSize));
5574
+ localHeaderOffset += 8;
5568
5575
  }
5569
5576
  }
5570
5577
  }
@@ -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,N=255,I=67324752,O=134695760,W=O,M=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,Ne=ve&&typeof Ce!=ee,Ie=we.bytes,Oe=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}},We=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)}},Me=ge.hmacSha1;let Le=ve&&Ne&&typeof Ce.importKey==te,Pe=ve&&Ne&&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(Ie,i);s.update(e);const t=r.update(e);c=je(Ie,t)}if(t){const e=Ye(je(Ie,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(Ie,s));r.update(e),i=je(Ie,e)}n.signature=je(Ie,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(Ie,Ye(t,d,d+Ee));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(je(Ie,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(Ie,Ye(c,0,Ae[s])),d=Ge(Ie,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 We(new Oe(l),t.from(Ue)),hmac:new Me(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=typeof T!=ee;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)}}),(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",Nt="bytes",It=65536,Ot="writable";class Wt{constructor(){this.size=0}init(){this.initialized=!0}}class Mt extends Wt{get readable(){const e=this,{chunkSize:t=It}=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 Wt{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,Ot,{get:()=>t})}writeUint8Array(){}}class Pt extends Mt{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 Wt{constructor(e){super();const t=new F,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,Ot,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class Ht extends Mt{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 Mt{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()==Nt))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]:Nt+"="+(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 Mt{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 Mt{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 Wt{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,Ot,{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",Nr="executable",Ir="compressionMethod",Or="signature",Wr="extraField",Mr="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,Nr,Ir,Or,Wr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Mr,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)))==O?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)!=M&&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)!=M)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,I=Ds(k,E+38),O=I&N,W={readOnly:!!(1&O),hidden:!!(2&O),system:!!(4&O),directory:!!(16&O),archive:!!(32&O)},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:I,msdosAttributesRaw:O,msdosAttributes:W,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&&W.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)!=I)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,O=b,M=i.readable;r.assign(M,{diskNumberStart:c,offset:C,size:O});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&N:m>>>24&N),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:O,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)==W){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:M,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",Ns="Version exceeds 65535",Is="The strength must equal 1, 2, or 3",Os="Extra field type exceeds 65535",Ws="Extra field data exceeds 64KB",Ms="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,Nr),g=Js(e,c,"uid"),b=Js(e,c,"gid");let z=Js(e,c,Mr);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&=N),k!==$&&(0>k||k>N))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(Ns);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&N),({msdosAttributesRaw:k,msdosAttributes:D}=((e,t)=>{if(e!==$)e&=N;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&N}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&N);const M=Js(e,c,"encodeText",pe);let L=M(s);if(L===$&&(L=pe(s)),an(L)>C)throw new p(Cs);const P=c[pr]||"";let Z=M(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(Ns);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,Ir);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(Is);let xe=new f;const Ee=c[Wr];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(Os);if(an(e)>C)throw new p(Ws);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,Ne=Js(e,c,Jr,!0)&&De||Ae+i.ceil(e.pendingEntriesSize/Te)>C;if(Ce||Ue||ve||Ne){if(!1===Se||!de)throw new p(Ms);Se=!0}Se=Se||!1;const Ie=Js(e,c,Ar),Oe=(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;const U=y||!A,v=c&&(e.bufferedWrite||!z&&!S||U);if(c){let e=4;z&&(e+=8),S&&(e+=8),x&&(e+=8),E&&(e+=4),T=new f(e);const t=nn(T);if(en(t,0,1),en(t,2,an(T)-4),v){const e=nn(T);let t=4;z&&(rn(e,t,a(F)),t+=8),S&&U&&(rn(e,t,a(F)),t+=8),x&&(rn(e,t,a(R)),t+=8),E&&(tn(e,t,k),t+=4)}}else T=new f;let N,O,W,M,L;if(b&&!l){N=new f(an(Zs)+2);const e=nn(N);en(e,0,39169),sn(N,Zs,2),$s(e,8,h)}else N=new f;if(g){W=new f(9+(s?4:0)+(n?4:0));const e=nn(W);en(e,0,V),en(e,2,an(W)-4),M=1+(s?2:0)+(n?4:0),$s(e,4,M);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{O=new f(36);const e=nn(O),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{O=new f}}else O=W=new f;try{const{uid:t,gid:r,unixMode:s,setuid:n,setgid:a,sticky:i,unixExtraFieldType:o}=e;if(!o||t===$&&r===$&&s===$)L=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;L=new f(4+d);const u=nn(L);en(u,0,o==Hs?30837:30805),en(u,2,d),$s(u,4,1),$s(u,5,e.length);let p=6;sn(L,e,p),p+=e.length,$s(u,p,c.length),p++,sn(L,c,p),p+=c.length,sn(L,l,p)}}catch{L=new f}_===$&&(_=A?8:0),c&&(D=D>45?D:45),b&&!l&&(D=D>51?D:51,N[9]=_,_=99);const P=v?an(T):0,Z=P+an(N,W,O,L,w),{headerArray:H,headerView:B,rawLastModDate:q}=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:Z});let G=X;const ee=new f(G+an(t)+Z),te=nn(ee);return tn(te,0,I),sn(ee,H,4),sn(ee,t,G),G+=an(t),v&&sn(ee,T,G),G+=P,sn(ee,N,G),G+=an(N),sn(ee,W,G),G+=an(W),sn(ee,O,G),G+=an(O),sn(ee,L,G),G+=an(L),sn(ee,w,G),u&&(tn(te,18,0),tn(te,22,0)),{localHeaderArray:ee,localHeaderView:te,headerArray:H,headerView:B,lastModDate:r,rawLastModDate:q,encrypted:b,compressed:A,version:D,compressionMethod:_,extraFieldExtendedTimestampFlag:M,rawExtraFieldZip64:T,localExtraFieldZip64Length:P,rawExtraFieldExtendedTimestamp:W,rawExtraFieldNTFS:O,rawExtraFieldUnix:L,rawExtraFieldAES:N,extraFieldLength:Z}})(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:Ne,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&&Ie,signature:c[Or],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})),We=(({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,W))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Me=an(Oe.localHeaderArray,We.dataDescriptorArray);let Le;Re=Me+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,O),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:I}=m;z||(await t,await T(S));const{diskNumber:W}=l;R=!0,_.diskNumberStart=W,z?D=new d(k.readable).blob():await Gs(k,I),_=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:I,zip64UncompressedSize:O,zip64CompressedSize:W,zip64Offset:M,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:I,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&N,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:O,zip64CompressedSize:W,zip64Offset:M,zip64DiskNumberStart:L}),me})(n,k,_,i,e.config,o);const{zip64:M}=_;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,M&&js(_),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,offset:c,diskNumberStart:l,zip64UncompressedSize:d,zip64CompressedSize:u,zip64Offset:p,zip64DiskNumberStart:f},w,{dataDescriptor:h})=>{if(h||(t||tn(w,14,n),r||(tn(w,18,i),tn(w,22,o))),r&&s){let t=X+an(e)+4;d&&(rn(w,t,a(o)),t+=8),u&&(rn(w,t,a(i)),t+=8),p&&(rn(w,t,a(c)),t+=8),f&&tn(w,t,l)}})(_,C,o),await T(S),await Gs(l,I),await r.stream().pipeTo(S,{preventClose:!0,preventAbort:!0,signal:h}),l.size+=k.size,E=!1}else _.offset=e.offset-U,M&&js(_);if(_.offset>v&&!M)throw new p(Ms);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:Oe,dataDescriptorInfo:We,metadataSize:Me},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,M),en(g,d+4,h),x||tn(z,18,A),E||tn(z,14,T),sn(m,b,d+6);let N=d+X;if(en(g,N,U),N+=2,en(g,N,an(w)),N+=2,en(g,N,S&&F?C:_),N+=2,en(g,N,k),N+=2,D&&tn(g,N,D),N+=4,tn(g,N,S&&R?v:t),N+=4,sn(m,a,N),N+=an(a),sn(m,i,N),N+=an(i),sn(m,c,N),N+=an(c),sn(m,l,N),N+=an(l),sn(m,u,N),N+=an(u),sn(m,p,N),N+=an(p),sn(m,f,N),N+=an(f),sn(m,w,N),N+=an(w),d-y>o.availableSize&&(o.availableSize=0,await Gs(o,m.slice(y,d)),y=d),d=N,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(Ms);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 Mt{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=Is,e.ERR_INVALID_ENTRY_COMMENT=vs,e.ERR_INVALID_ENTRY_NAME=Cs,e.ERR_INVALID_EXTRAFIELD_DATA=Ws,e.ERR_INVALID_EXTRAFIELD_TYPE=Os,e.ERR_INVALID_PASSWORD=be,e.ERR_INVALID_SIGNATURE=ze,e.ERR_INVALID_UNCOMPRESSED_SIZE=at,e.ERR_INVALID_VERSION=Ns,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=Ms,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=Mt,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 Mt{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: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=typeof T!=ee;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)}}),(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())))}});