@zip.js/zip.js 2.8.45 → 2.8.46

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.
Files changed (45) hide show
  1. package/README.md +28 -2
  2. package/deno.json +13 -3
  3. package/dist/zip-core-external.js +61 -26
  4. package/dist/zip-core-external.min.js +1 -1
  5. package/dist/zip-core.js +59 -24
  6. package/dist/zip-core.min.js +1 -1
  7. package/dist/zip-fs-core-external.js +61 -26
  8. package/dist/zip-fs-core-external.min.js +1 -1
  9. package/dist/zip-fs-core.js +38 -22
  10. package/dist/zip-fs-core.min.js +1 -1
  11. package/dist/zip-fs-external.js +61 -26
  12. package/dist/zip-fs-external.min.js +1 -1
  13. package/dist/zip-fs-native.js +63 -28
  14. package/dist/zip-fs-native.min.js +1 -1
  15. package/dist/zip-fs.js +63 -28
  16. package/dist/zip-fs.min.js +1 -1
  17. package/dist/zip-legacy.js +61 -26
  18. package/dist/zip-legacy.min.js +1 -1
  19. package/dist/zip-native.js +63 -28
  20. package/dist/zip-native.min.js +1 -1
  21. package/dist/zip-web-worker-native.js +1 -1
  22. package/dist/zip-web-worker.js +1 -1
  23. package/dist/zip.js +63 -28
  24. package/dist/zip.min.js +1 -1
  25. package/index-native.cjs +63 -28
  26. package/index-native.min.js +1 -1
  27. package/index.cjs +63 -28
  28. package/index.d.cts +91 -1
  29. package/index.d.ts +91 -1
  30. package/index.min.js +1 -1
  31. package/lib/core/codec-pool.js +3 -2
  32. package/lib/core/codec-worker.js +28 -12
  33. package/lib/core/configuration.js +20 -2
  34. package/lib/core/streams/zip-entry-stream.js +8 -8
  35. package/lib/core/web-worker-base.js +27 -0
  36. package/lib/core/web-worker-inline-native.js +1 -1
  37. package/lib/core/web-worker-inline-wasm.js +1 -1
  38. package/lib/core/web-worker-native.js +7 -9
  39. package/lib/core/web-worker-wasm.js +9 -12
  40. package/lib/{core/web-worker-inline-template.js → zip-core-custom.js} +13 -20
  41. package/lib/zip-module-native.js +3 -3
  42. package/lib/zip-module-wasm-base.js +3 -3
  43. package/package.json +20 -2
  44. package/lib/core/web-worker-inline-template-native.js +0 -48
  45. package/lib/core/zlib-streams-inline-template.js +0 -45
@@ -2815,7 +2815,7 @@
2815
2815
 
2816
2816
  class DeflateStream extends TransformStream {
2817
2817
 
2818
- constructor(options, { chunkSize, CompressionStreamZlib, CompressionStream }) {
2818
+ constructor(options, { chunkSize, CompressionStreamFallback, CompressionStream }) {
2819
2819
  super({});
2820
2820
  const { compressed, encrypted, useCompressionStream, zipCrypto, computeCrc32, level, deflate64, format, compressionMethod } = options;
2821
2821
  const stream = this;
@@ -2837,7 +2837,7 @@
2837
2837
  readable = pipeThrough(readable, gzipCrc32Stream);
2838
2838
  } else {
2839
2839
  try {
2840
- readable = pipeThroughCompressionStream(readable, useCompressionStream, { level, chunkSize }, CompressionStream, CompressionStreamZlib);
2840
+ readable = pipeThroughCompressionStream(readable, useCompressionStream, { level, chunkSize }, CompressionStream, CompressionStreamFallback);
2841
2841
  } catch (error) {
2842
2842
  let gzipStream;
2843
2843
  try {
@@ -2979,7 +2979,7 @@
2979
2979
 
2980
2980
  class InflateStream extends TransformStream {
2981
2981
 
2982
- constructor(options, { chunkSize, DecompressionStreamZlib, DecompressionStream }) {
2982
+ constructor(options, { chunkSize, DecompressionStreamFallback, DecompressionStream }) {
2983
2983
  super({});
2984
2984
  const { zipCrypto, encrypted, checkCrc32, crc32, compressed, useCompressionStream, deflate64, format, compressionMethod, rawBitFlag, outputSize } = options;
2985
2985
  let crc32Stream, decryptionStream;
@@ -2998,7 +2998,7 @@
2998
2998
  readable = pipeThroughBackpressured(readable, createCodecStream(codecStreams.DecompressionStream, format, { chunkSize, compressionMethod, rawBitFlag, uncompressedSize: outputSize }));
2999
2999
  } else {
3000
3000
  try {
3001
- readable = pipeThroughCompressionStream(readable, useCompressionStream, { chunkSize, deflate64 }, DecompressionStream, DecompressionStreamZlib);
3001
+ readable = pipeThroughCompressionStream(readable, useCompressionStream, { chunkSize, deflate64 }, DecompressionStream, DecompressionStreamFallback);
3002
3002
  } catch (error) {
3003
3003
  if (deflate64 || outputSize === UNDEFINED_VALUE) {
3004
3004
  throw error;
@@ -3077,17 +3077,17 @@
3077
3077
  return new CodecStreamClass(format, options);
3078
3078
  }
3079
3079
 
3080
- function pipeThroughCompressionStream(readable, useCompressionStream, options, CompressionStreamNative, CompressionStreamZlib) {
3080
+ function pipeThroughCompressionStream(readable, useCompressionStream, options, CompressionStreamNative, CompressionStreamFallback) {
3081
3081
  const Stream = useCompressionStream && CompressionStreamNative ?
3082
3082
  CompressionStreamNative :
3083
- CompressionStreamZlib || CompressionStreamNative;
3083
+ CompressionStreamFallback || CompressionStreamNative;
3084
3084
  const format = options.deflate64 ? FORMAT_DEFLATE64_RAW : FORMAT_DEFLATE_RAW;
3085
3085
  let codecStream;
3086
3086
  try {
3087
3087
  codecStream = new Stream(format, options);
3088
3088
  } catch (error) {
3089
- if (useCompressionStream && CompressionStreamZlib && Stream != CompressionStreamZlib) {
3090
- codecStream = new CompressionStreamZlib(format, options);
3089
+ if (useCompressionStream && CompressionStreamFallback && Stream != CompressionStreamFallback) {
3090
+ codecStream = new CompressionStreamFallback(format, options);
3091
3091
  } else {
3092
3092
  throw error;
3093
3093
  }
@@ -3350,7 +3350,7 @@
3350
3350
  const MESSAGE_ERROR_EVENT_TYPE = "messageerror";
3351
3351
  const ERR_WORKER_STARTUP_TIMEOUT = "Worker startup timeout";
3352
3352
 
3353
- let webWorkerSupported, webWorkerSource, webWorkerURI, webWorkerOptions;
3353
+ let webWorkerSupported, webWorkerSource, webWorkerURI, webWorkerOptions, createWorkerFailed;
3354
3354
  let transferStreamsSupported = true;
3355
3355
  try {
3356
3356
  transferStreamsSupported = typeof structuredClone == FUNCTION_TYPE && structuredClone(new DOMException("", "AbortError")).code !== UNDEFINED_VALUE;
@@ -3360,14 +3360,14 @@
3360
3360
  let initModule = () => { };
3361
3361
 
3362
3362
  async function supportsDeflate(config) {
3363
- const { CompressionStream: NativeStream, CompressionStreamZlib: ZlibStream } = config;
3364
- if (ZlibStream && !ZlibStream.requiresModule) {
3363
+ const { CompressionStream: NativeStream, CompressionStreamFallback: FallbackStream } = config;
3364
+ if (FallbackStream && !FallbackStream.requiresModule) {
3365
3365
  return true;
3366
3366
  }
3367
3367
  if (supportsDeflateRaw(NativeStream) || supportsGzip(NativeStream)) {
3368
3368
  return true;
3369
3369
  }
3370
- if (ZlibStream) {
3370
+ if (FallbackStream) {
3371
3371
  try {
3372
3372
  await initModule(config);
3373
3373
  return true;
@@ -3380,8 +3380,11 @@
3380
3380
 
3381
3381
  class CodecWorker {
3382
3382
 
3383
- constructor(workerData, { readable, writable }, { options, config, streamOptions, useWebWorkers, transferStreams, workerURI }, onTaskFinished) {
3383
+ constructor(workerData, { readable, writable }, { options, config, streamOptions, useWebWorkers, transferStreams, workerURI, createWorker }, onTaskFinished) {
3384
3384
  const { signal } = streamOptions;
3385
+ if (createWorkerFailed) {
3386
+ createWorker = UNDEFINED_VALUE;
3387
+ }
3385
3388
  Object.assign(workerData, {
3386
3389
  busy: true,
3387
3390
  generation: (workerData.generation || 0) + 1,
@@ -3391,6 +3394,7 @@
3391
3394
  writable,
3392
3395
  options: Object.assign({}, options),
3393
3396
  workerURI,
3397
+ createWorker,
3394
3398
  transferStreams,
3395
3399
  terminate() {
3396
3400
  return new Promise(resolve => {
@@ -3426,7 +3430,7 @@
3426
3430
  // deno-lint-ignore valid-typeof
3427
3431
  webWorkerSupported = typeof Worker != UNDEFINED_TYPE;
3428
3432
  }
3429
- return (useWebWorkers && webWorkerSupported ? createWebWorkerInterface : createWorkerInterface)(workerData, config);
3433
+ return (useWebWorkers && ((webWorkerSupported && workerURI) || createWorker) ? createWebWorkerInterface : createWorkerInterface)(workerData, config);
3430
3434
  }
3431
3435
  }
3432
3436
 
@@ -3483,7 +3487,11 @@
3483
3487
  try {
3484
3488
  worker = getWebWorker(workerData.workerURI, baseURI, workerData);
3485
3489
  } catch {
3486
- webWorkerSupported = false;
3490
+ if (workerData.createWorker) {
3491
+ createWorkerFailed = true;
3492
+ } else {
3493
+ webWorkerSupported = false;
3494
+ }
3487
3495
  return createWorkerInterface(workerData, config);
3488
3496
  }
3489
3497
  Object.assign(workerData, {
@@ -3496,7 +3504,11 @@
3496
3504
  return await runWebWorker(workerData, { chunkSize, wasmURI, baseURI, workerStartupTimeout });
3497
3505
  } catch (error) {
3498
3506
  if (error && error.workerStartupFailed) {
3499
- webWorkerSupported = false;
3507
+ if (workerData.createWorker) {
3508
+ createWorkerFailed = true;
3509
+ } else {
3510
+ webWorkerSupported = false;
3511
+ }
3500
3512
  const { reader } = workerData;
3501
3513
  if (reader) {
3502
3514
  reader.releaseLock();
@@ -3519,17 +3531,17 @@
3519
3531
  try {
3520
3532
  if (options.compressed && !options.format) {
3521
3533
  const deflate = options.codecType.startsWith(CODEC_DEFLATE);
3522
- const ZlibStream = deflate ? config.CompressionStreamZlib : config.DecompressionStreamZlib;
3534
+ const FallbackStream = deflate ? config.CompressionStreamFallback : config.DecompressionStreamFallback;
3523
3535
  const NativeStream = deflate ? config.CompressionStream : config.DecompressionStream;
3524
3536
  if (!options.useCompressionStream) {
3525
3537
  try {
3526
3538
  await initModule(config);
3527
3539
  } catch {
3528
- if (!ZlibStream || ZlibStream.requiresModule) {
3540
+ if (!FallbackStream || FallbackStream.requiresModule) {
3529
3541
  options.useCompressionStream = true;
3530
3542
  }
3531
3543
  }
3532
- } else if (ZlibStream && ZlibStream.requiresModule && !supportsDeflateRaw(NativeStream)) {
3544
+ } else if (FallbackStream && FallbackStream.requiresModule && !supportsDeflateRaw(NativeStream)) {
3533
3545
  try {
3534
3546
  await initModule(config);
3535
3547
  } catch {
@@ -3654,8 +3666,11 @@
3654
3666
  }
3655
3667
 
3656
3668
  function getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {
3669
+ const { createWorker } = workerData;
3657
3670
  let worker, resolvedURI, resolvedOptions;
3658
- if (webWorkerURI === UNDEFINED_VALUE || webWorkerSource !== url) {
3671
+ if (createWorker) {
3672
+ worker = createWorker();
3673
+ } else if (webWorkerURI === UNDEFINED_VALUE || webWorkerSource !== url) {
3659
3674
  // deno-lint-ignore valid-typeof
3660
3675
  const isFunctionURI = typeof url == FUNCTION_TYPE;
3661
3676
  if (isFunctionURI) {
@@ -3910,7 +3925,7 @@
3910
3925
  async function runWorker(stream, workerOptions) {
3911
3926
  const { options, config } = workerOptions;
3912
3927
  const { transferStreams, useWebWorkers, useCompressionStream, compressed, checkCrc32, computeCrc32, encrypted, format, codecURI } = options;
3913
- const { workerURI, maxWorkers } = config;
3928
+ const { workerURI, createWorker, maxWorkers } = config;
3914
3929
  if (format) {
3915
3930
  if (codecURI) {
3916
3931
  options.codecURI = resolveCodecURI(codecURI, config.baseURI);
@@ -3922,6 +3937,7 @@
3922
3937
  const workerSupported = format === UNDEFINED_VALUE || Boolean(options.codecURI);
3923
3938
  workerOptions.useWebWorkers = !streamCopy && workerSupported && (useWebWorkers || (useWebWorkers === UNDEFINED_VALUE && config.useWebWorkers));
3924
3939
  workerOptions.workerURI = workerOptions.useWebWorkers && workerURI ? workerURI : UNDEFINED_VALUE;
3940
+ workerOptions.createWorker = workerOptions.useWebWorkers && createWorker ? createWorker : UNDEFINED_VALUE;
3925
3941
  options.useCompressionStream = useCompressionStream || (useCompressionStream === UNDEFINED_VALUE && config.useCompressionStream);
3926
3942
  return (await getWorker()).run();
3927
3943
 
@@ -3985,7 +4001,7 @@
3985
4001
  starvationTimeout = null;
3986
4002
  if (pendingRequests.length) {
3987
4003
  const [{ resolve, stream, workerOptions }] = pendingRequests.splice(0, 1);
3988
- const inlineWorkerOptions = Object.assign({}, workerOptions, { useWebWorkers: false, workerURI: UNDEFINED_VALUE });
4004
+ const inlineWorkerOptions = Object.assign({}, workerOptions, { useWebWorkers: false, workerURI: UNDEFINED_VALUE, createWorker: UNDEFINED_VALUE });
3989
4005
  resolve(new CodecWorker({}, stream, inlineWorkerOptions, onInlineTaskFinished));
3990
4006
  armStarvationTimeout();
3991
4007
  }
@@ -1 +1 @@
1
- ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:n,Number:s,BigInt:i,Math:a,Date:o,Map:c,Set:d,Response:l,URL:u,Error:w,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:x,TextDecoder:S,document:b,crypto:z,btoa:F,TransformStream:R,ReadableStream:E,WritableStream:D,CompressionStream:A,DecompressionStream:T,navigator:k,Worker:C}="undefined"!=typeof globalThis?globalThis:this||self,v=4294967295,U=65535,I=255,O=67324752,M=134695760,N=M,_=33639248,P=101010256,L=101075792,W=117853008,Z=22,B=20,V=39169,H=21589,j=6534,q=30837,K=30805,Y=2048,G=16384,X=2048,J=1024,Q="/",$=30,ee=new o(2107,11,31,23,59,58),te=new o(1980,0,1),re=void 0,ne=1/0,se="undefined",ie="function",ae=new f;let oe=2;try{typeof k!=se&&k.hardwareConcurrency&&(oe=k.hardwareConcurrency)}catch{}const ce={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:oe,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof A!=se&&A,DecompressionStream:typeof T!=se&&T};function de(){return ce}function le(e){return a.max(e.chunkSize,64)}function ue(e,t){const r=new f(e.length+t.length);return r.set(e),r.set(t,e.length),r}function we(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function fe(e){return new m(e.buffer,e.byteOffset,e.byteLength)}function pe(e){if(e instanceof E)return e;const t=e.getReader();return new E({async pull(e){const{value:r,done:n}=await t.read();n?e.close():e.enqueue(r)},cancel:e=>t.cancel(e)})}function he(e){if(e instanceof D)return e;const t=e.getWriter();return new D({write:e=>t.write(e),close:()=>t.close(),abort:e=>t.abort(e)})}const me="HTTP error ",ye="HTTP Range not supported",ge="HTTP resource changed",xe="Content-Range",Se="Range",be="GET",ze="bytes",Fe=16777216,Re="writable",Ee=Symbol();class De{constructor(){this.size=0}init(){this.initialized=!0}}class Ae extends De{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:r=le(de())}={}){const n=this;let s=0;return new E({async pull(i){const o=t===re?r:a.min(r,t-s),c=await ct(n,e+s,o);i.enqueue(c),s+r>t||t===re&&!c.length&&o?i.close():s+=r}})}}class Te extends De{constructor(){super();const e=this,t=new D({write(t){if(!e.initialized)throw new w("Writer not initialized");return e.writeUint8Array(we(t))}});r.defineProperty(e,Re,{get:()=>t})}writeUint8Array(){}}class ke extends Ae{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,o:n,size:a.floor(.75*(t-n))})}readUint8Array(e,t){const{o:r,dataURI:n}=this,s=new f(t),i=4*a.floor(e/3),o=atob(n.substring(i+r,4*a.ceil((e+t)/3)+r)),c=e-3*a.floor(i/4);let d=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),d++;return d<s.length?s.subarray(0,d):s}}class Ce extends Te{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,s=t.pending;const i=t.pending.length;for(t.pending="",r=0;r<3*a.floor((i+e.length)/3)-i;r++)s+=n.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=n.fromCharCode(e[r]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}}let ve,Ue;class Ie extends Ae{constructor(e){super(),r.assign(this,{blob:e,size:e.size}),Ue||(Ue=(async()=>{try{const e=new y([new f(3)]).slice(1,2).stream().getReader();let t=0,r=await e.read();for(;!r.done;)t+=r.value.length,r=await e.read();ve=1==t}catch{ve=!1}})())}createReadable(e){const{blob:t,size:r}=this,{offset:n=0,size:s=r-n}=e||{};return n||r>s?ve?pe(t.slice(n,n+s).stream()):super.createReadable(e):pe(t.stream())}async readUint8Array(e,t){const r=this,n=e+t,s=e||n<r.size?r.blob.slice(e,n):r.blob;let i=await s.arrayBuffer();return i.byteLength>t&&(i=i.slice(e,n)),new f(i)}}class Oe extends De{constructor(e){super();const t=this,n=new R;if(r.defineProperty(t,Re,{get:()=>n.writable}),typeof y.prototype.stream!=ie||new y([]).stream()instanceof E){const r=[];e&&r.push(["Content-Type",e]),t.blob=new l(n.readable,{headers:r}).blob()}else{const r=[];t.blob=n.readable.pipeTo(new D({write(e){r.push(e)}})).then(()=>new y(r,{type:e}))}t.blob.catch(()=>{})}getData(){return this.blob}}class Me extends Ie{constructor(e){super(new y([e],{type:"text/plain"}))}}class Ne extends Oe{constructor(e){super(e),r.assign(this,{encoding:e,l:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,l:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new g((s,i)=>{r.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>i(t.error)}),t.readAsText(n,e)})}}}class _e extends Ae{constructor(e,t){super(),Le(this,e,t)}async init(){await We(this,Qe,Ye),super.init()}createReadable(e){const t=this,{useRangeHeader:r,forceRangeRequests:n,size:i}=t;if((r||n)&&i!==re){const{offset:r=0,size:n=i-r}=e||{};if(n>0&&i>r)return((e,t,r)=>{let n,i=t,o=0,c=r;return new E({start:()=>d(),async pull(e){n||await d();const{value:t,done:r}=await n.read();if(r)throw new w(ye);const s=t.length>o?t.subarray(0,o):t;o-=s.length,c-=s.length,s.length&&e.enqueue(s),o||(await(async()=>{const e=n;n=re,await e.cancel()})(),c||e.close())},cancel:e=>n&&n.cancel(e)});async function d(){const t=a.min(e.maximumRangeSize,c),r=await Qe(be,e,qe(e,i,t));if(206!=r.status)throw new w(ye);const d=r.headers.get(xe);if(d){const e=s(d.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=i)throw new w(ye)}je(e,r),He(e,r),i+=t,o=t,n=r.body.getReader()}})(t,r,a.min(n,i-r))}return super.createReadable(e)}readUint8Array(e,t){return Ze(this,e,t,Qe,Ye)}}class Pe extends Ae{constructor(e,t){super(),Le(this,e,t)}async init(){await We(this,$e,Ge),super.init()}readUint8Array(e,t){return Ze(this,e,t,$e,Ge)}}function Le(e,t,n){const{preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:d=Fe,fetch:l}=n;delete(n=r.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.checkResourceChanges,delete n.maximumRangeSize,delete n.useXHR,delete n.fetch,r.assign(e,{url:t,options:n,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c,maximumRangeSize:d,fetch:l})}async function We(e,t,r){const{url:n,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=de(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(n)&&(i||a)&&(void 0===s||s)){const n=await t(be,e,qe(e,o?-22:void 0)),s=n.headers.get("Accept-Ranges");if(!(a||s&&s.toLowerCase()==ze))throw new w(ye);{if(o){const t=new f(await n.arrayBuffer());206==n.status&&t.length==Z&&(e.h=t)}He(e,n);const s=Be(n);s===re?await Je(e,t,r):e.size=s}}else await Je(e,t,r)}async function Ze(e,t,r,n,i){const{useRangeHeader:a,forceRangeRequests:o,h:c,size:d,options:l}=e;if(a||o){if(c&&t==d-Z&&r==Z)return c;if(d>t&&0!==r){t+r>d&&(r=d-t);const i=await n(be,e,qe(e,t,r));if(206!=i.status)throw new w(ye);const a=i.headers.get(xe);if(a){const e=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(ye)}je(e,i),He(e,i);const o=new f(await i.arrayBuffer());if(o.length!=r)throw new w(ye);return o}return ae}{const{data:n}=e;return n||await i(e,l),e.data.subarray(t,t+r)}}function Be(e){const t=e.headers.get(xe);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function Ve({headers:e}){return{m:e.get("Etag")||re,lastModified:e.get("Last-Modified")||re}}function He(e,t){const{checkResourceChanges:r,S:n}=e;r&&!n&&206==t.status&&(e.S=Ve(t))}function je(e,t){const{checkResourceChanges:n,S:s,size:i}=e;if(n){const e=Be(t);if(e!==re&&i!==re&&e!=i)throw new w(ge);if(s){const e=Ve(t);if(r.entries(s).some(([t,r])=>r!==re&&e[t]!==re&&r!=e[t]))throw new w(ge)}}}function qe(e,t=0,n=1){return r.assign({},Ke(e),{[Se]:ze+"="+(0>t?t:t+"-"+(t+n-1))})}function Ke({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Ye(e){await Xe(e,Qe)}async function Ge(e){await Xe(e,$e)}async function Xe(e,t){const r=await t(be,e,Ke(e));e.data=new f(await r.arrayBuffer()),e.size=e.data.length}async function Je(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,Ke(e)),i=n.headers.get("Content-Length");i&&!n.headers.get("Content-Encoding")?e.size=s(i):await r(e,e.options)}}async function Qe(e,{fetch:t=fetch,options:n,url:s},i){const a=await t(s,r.assign({},n,{method:e,headers:i}));if(400>a.status)return a;throw 416==a.status?new w(ye):new w(me+(a.statusText||a.status))}function $e(e,{url:t},n){return new g((s,i)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const e=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),s({status:a.status,arrayBuffer:()=>a.response,headers:new c(e)})}else i(416==a.status?new w(ye):new w(me+(a.statusText||a.status)))},!1),a.addEventListener("error",e=>i(e.detail?e.detail.error:new w("Network error")),!1),a.open(e,t),n)for(const e of r.entries(n))a.setRequestHeader(e[0],e[1]);a.responseType="arraybuffer",a.send()})}class et extends Ae{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Pe(e,t):new _e(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class tt extends Ae{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)}}class rt extends Te{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const n=t.array;t.array=new f(e),t.array.set(n)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}}class nt extends Ae{constructor(e){super(),this.F=e}async init(){const e=this,{F:t}=e;e.R=0,await g.all(t.map(e=>ot(e))),e.D=t.map(t=>{const r=e.size;return e.size+=t.size,r}),super.init()}A(e){const{D:t,size:r}=this,n=t[e];return n===re?r:n}async readUint8Array(e,t){const r=this,{F:n}=this;let s,i=0,o=e;for(;n[i]&&o>=n[i].size;)o-=n[i].size,i++;const c=n[i];if(c){const n=c.size;if(o+t>n){const i=n-o;s=ue(await ct(c,o,i),await r.readUint8Array(e+i,t-i))}else s=await ct(c,o,t)}else s=ae;return r.R=a.max(i,r.R),s}}class st extends De{constructor(e,t=4294967295){super();const n=this;let s,i,a;r.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new D({async write(t){if(t===Ee)return void(a&&await d());const{availableSize:r}=n;if(a)t.length<r?await c(t):(await c(t.subarray(0,r)),await d(),t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new w("Writer iterator completed too soon");s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await ot(s),i=r.writable,a=i.getWriter(),await this.write(t)}},async close(){a&&(await a.ready,await l())},async abort(e){a&&await a.abort(e)}});async function c(e){const t=e.length;t&&(await a.ready,await a.write(e),s.size+=t,n.availableSize-=t)}async function d(){await l(),n.diskOffset+=s.size,n.diskNumber++,a=null,n.availableSize=n.maxSize}async function l(){await a.close()}r.defineProperty(n,Re,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(Ee)}finally{e.releaseLock()}}}class it{constructor(e){return t.isArray(e)&&(e=new nt(e)),(e instanceof E||typeof e.getReader==ie)&&(e={readable:pe(e)}),e}}class at{constructor(e){return e.writable===re&&typeof e.next==ie&&(e=new st(e)),(e instanceof D||typeof e.getWriter==ie)&&(e={writable:he(e)}),e.size===re&&(e.size=0),e}}async function ot(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function ct(e,t,r){return e.readUint8Array(t,r)}const dt=new c,lt=new c;function ut(e){return dt.get(e)}function wt(e){return lt.get(e)}const ft=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;ft[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=ft[t-1][e];ft[t][e]=r>>>8^ft[0][255&r]}const[pt,ht,mt,yt,gt,xt,St,bt]=ft;class zt{constructor(e){this.T=e||-1}append(e){let t=0|this.T;const r=0|e.length;let n=0;if(r>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,r),i=r-8;for(;i>=n;n+=8){const e=t^s.getInt32(n,!0),r=s.getInt32(n+4,!0);t=bt[255&e]^St[e>>>8&255]^xt[e>>>16&255]^gt[e>>>24&255]^yt[255&r]^mt[r>>>8&255]^ht[r>>>16&255]^pt[r>>>24&255]}}for(;r>n;n++)t=t>>>8^pt[255&(t^e[n])];this.T=t}get(){return~this.T}}class Ft extends R{constructor(){let e;const t=new zt;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 Rt(e){if(typeof x==se){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 x).encode(e)}const Et={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=Et.C(r);return 32===n?e.concat(t):Et.v(t,n,0|r,e.slice(0,e.length-1))},U(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+Et.C(r)},I(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,a.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=Et.O(t,e[r-1]&2147483648>>t-1,1)),e},O:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,C:e=>a.round(e/1099511627776)||32,v(e,t,r,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(r),r=0;if(0===t)return n.concat(e);for(let s=0;s<e.length;s++)n.push(r|e[s]>>>t),r=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=Et.C(s);return n.push(Et.O(t+i&31,t+i>32?r:n.pop(),1)),n}},Dt={bytes:{M(e){const t=Et.U(e)/8,r=new f(t);let n;for(let s=0;t>s;s++)3&s||(n=e[s/4]),r[s]=n>>>24,n<<=8;return r},N(e){const t=[];let r,n=0;for(r=0;r<e.length;r++)n=n<<8|e[r],3&~r||(t.push(n),n=0);return 3&r&&t.push(Et.O(8*(3&r),n)),t}}},At=class{constructor(e){const t=this;t.blockSize=512,t._=[1732584193,4023233417,2562383102,271733878,3285377520],t.P=[1518500249,1859775393,2400959708,3395469782],e?(t.L=e.L.slice(0),t.W=e.W.slice(0),t.Z=e.Z):t.reset()}reset(){const e=this;return e.L=e._.slice(0),e.W=[],e.Z=0,e}update(e){const t=this;"string"==typeof e&&(e=Dt.B.N(e));const r=t.W=Et.concat(t.W,e),n=t.Z,s=t.Z=n+Et.U(e);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const i=new h(r);let a=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);s>=e;e+=t.blockSize)t.V(i.subarray(16*a,16*(a+1))),a+=1;return r.splice(0,16*a),t}H(){const e=this;let t=e.W;const r=e.L;t=Et.concat(t,[Et.O(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(a.floor(e.Z/4294967296)),t.push(0|e.Z);t.length;)e.V(t.splice(0,16));return e.reset(),r}j(e,t,r,n){return e>19?e>39?e>59?e>79?void 0:t^r^n:t&r|t&n|r&n:t^r^n:t&r|~t&n}K(e,t){return t<<e|t>>>32-e}V(e){const r=this,n=r.L,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let i=n[0],o=n[1],c=n[2],d=n[3],l=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r.K(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r.K(5,i)+r.j(e,o,c,d)+l+s[e]+r.P[a.floor(e/20)]|0;l=d,d=c,c=r.K(30,o),o=i,i=t}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+c|0,n[3]=n[3]+d|0,n[4]=n[4]+l|0}},Tt={importKey:e=>new Tt.Y(Dt.bytes.N(e)),G(e,t,r,n){if(r=r||1e4,0>n||0>r)throw new w("invalid params to pbkdf2");const s=1+(n>>5)<<2;let i,a,o,c,d;const l=new ArrayBuffer(s),u=new m(l);let f=0;const p=Et;for(t=Dt.bytes.N(t),d=1;(s||1)>f;d++){for(i=a=e.encrypt(p.concat(t,[d])),o=1;r>o;o++)for(a=e.encrypt(a),c=0;c<a.length;c++)i[c]^=a[c];for(o=0;(s||1)>f&&o<i.length;o++)u.setInt32(f,i[o]),f+=4}return l.slice(0,n/8)},Y:class{constructor(e){const t=this,r=t.X=At,n=[[],[]];t.J=[new r,new r];const s=t.J[0].blockSize/32;e.length>s&&(e=(new r).update(e).H());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.J[0].update(n[0]),t.J[1].update(n[1]),t.$=new r(t.J[0])}reset(){const e=this;e.$=new e.X(e.J[0]),e.ee=!1}update(e){this.ee=!0,this.$.update(e)}digest(){const e=this,t=e.$.H(),r=new e.X(e.J[1]).update(t).H();return e.reset(),r}encrypt(e){if(this.ee)throw new w("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},kt=typeof z!=se&&typeof z.getRandomValues==ie,Ct="Invalid password",vt="Invalid signature",Ut=vt,It="zipjs-abort-check-password";function Ot(e){if(kt)return z.getRandomValues(e);throw new w("Crypto API not supported")}const Mt=16,Nt={name:"PBKDF2"},_t=r.assign({hash:{name:"HMAC"}},Nt),Pt=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Nt),Lt=["deriveBits"],Wt=[8,12,16],Zt=[16,24,32],Bt=10,Vt=[0,0,0,0],Ht=typeof z!=se,jt=Ht&&z.subtle,qt=Ht&&typeof jt!=se,Kt=Dt.bytes,Yt=class{constructor(e){const t=this;t.te=[[[],[],[],[],[]],[[],[],[],[],[]]],t.te[0][0][0]||t.re();const r=t.te[0][4],n=t.te[1],s=e.length;let i,a,o,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(t.P=[a=e.slice(0),o=[]],i=s;4*s+28>i;i++){let e=a[i-1];(i%s===0||8===s&&i%s===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],i%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),a[i]=a[i-s]^e}for(let e=0;i;e++,i--){const t=a[3&e?i:i-4];o[e]=4>=i||4>e?t:n[0][r[t>>>24]]^n[1][r[t>>16&255]]^n[2][r[t>>8&255]]^n[3][r[255&t]]}}encrypt(e){return this.ne(e,0)}decrypt(e){return this.ne(e,1)}re(){const e=this.te[0],t=this.te[1],r=e[4],n=t[4],s=[],i=[];let a,o,c,d;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=a=0;!r[l];l^=o||1,a=i[a]||1){let i=a^a<<1^a<<2^a<<3^a<<4;i=i>>8^255&i^99,r[l]=i,n[i]=l,d=s[c=s[o=s[l]]];let u=16843009*d^65537*c^257*o^16843008*l,w=257*s[i]^16843008*i;for(let r=0;4>r;r++)e[r][l]=w=w<<24^w>>>8,t[r][i]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}ne(e,t){if(4!==e.length)throw new w("invalid aes block size");const r=this.P[t],n=r.length/4-2,s=[0,0,0,0],i=this.te[t],a=i[0],o=i[1],c=i[2],d=i[3],l=i[4];let u,f,p,h=e[0]^r[0],m=e[t?3:1]^r[1],y=e[2]^r[2],g=e[t?1:3]^r[3],x=4;for(let e=0;n>e;e++)u=a[h>>>24]^o[m>>16&255]^c[y>>8&255]^d[255&g]^r[x],f=a[m>>>24]^o[y>>16&255]^c[g>>8&255]^d[255&h]^r[x+1],p=a[y>>>24]^o[g>>16&255]^c[h>>8&255]^d[255&m]^r[x+2],g=a[g>>>24]^o[h>>16&255]^c[m>>8&255]^d[255&y]^r[x+3],x+=4,h=u,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=l[h>>>24]<<24^l[m>>16&255]<<16^l[y>>8&255]<<8^l[255&g]^r[x++],u=h,h=m,m=y,y=g,g=u;return s}},Gt=class{constructor(e,t){this.se=e,this.ie=t,this.ae=t}reset(){this.ae=this.ie}update(e){return this.oe(this.se,e,this.ae)}ce(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}return e}de(e){0===(e[0]=this.ce(e[0]))&&(e[1]=this.ce(e[1]))}oe(e,t,r){let n;if(!(n=t.length))return[];const s=Et.U(t);for(let s=0;n>s;s+=4){this.de(r);const n=e.encrypt(r);t[s]^=n[0],t[s+1]^=n[1],t[s+2]^=n[2],t[s+3]^=n[3]}return Et.I(t,s)}},Xt=Tt.Y;let Jt=Ht&&qt&&typeof jt.importKey==ie,Qt=Ht&&qt&&typeof jt.deriveBits==ie;class $t extends R{constructor({password:e,rawPassword:t,encryptionStrength:r,checkPasswordOnly:n,checkAuthenticationCode:s=!0}){super({start(){tr(this,e,t,r)},async transform(e,t){const r=this,{password:s,strength:i,le:a,ready:o}=r;s?(await(async(e,t,r,n)=>{const s=await nr(e,t,r,ir(n,0,Wt[t])),i=ir(n,Wt[t]);if(s[0]!=i[0]||s[1]!=i[1])throw new w(Ct)})(r,i,s,ir(e,0,Wt[i]+2)),e=ir(e,Wt[i]+2),n?t.error(new w(It)):a()):await o;const c=new f(e.length-Bt-(e.length-Bt)%Mt);t.enqueue(rr(r,e,c,0,Bt,!0))},async flush(e){const{ue:t,we:r,pending:n,ready:i}=this;if(r&&t){await i;const a=ir(n,0,n.length-Bt),o=ir(n,n.length-Bt);let c=ae;if(a.length){const e=or(Kt,a);r.update(e);const n=t.update(e);c=ar(Kt,n)}const d=ir(ar(Kt,r.digest()),0,Bt);let l=n.length<Bt?1:0;for(let e=0;Bt>e;e++)l|=d[e]^o[e];if(l&&s)throw new w(Ut);e.enqueue(c)}}})}}class er extends R{constructor({password:e,rawPassword:t,encryptionStrength:r}){super({start(){tr(this,e,t,r)},async transform(e,t){const r=this,{password:n,strength:s,le:i,ready:a}=r;let o=ae;n?(o=await(async(e,t,r)=>{const n=Ot(new f(Wt[t]));return ue(n,await nr(e,t,r,n))})(r,s,n),i()):await a;const c=new f(o.length+e.length-e.length%Mt);c.set(o,0),t.enqueue(rr(r,e,c,o.length,0))},async flush(e){const{ue:t,we:r,pending:n,ready:s}=this;if(r&&t){await s;let i=ae;if(n.length){const e=t.update(or(Kt,n));r.update(e),i=ar(Kt,e)}const a=ar(Kt,r.digest()).slice(0,Bt);e.enqueue(ue(i,a))}}})}}function tr(e,t,n,s){r.assign(e,{ready:new g(t=>e.le=t),password:sr(t,n),strength:s-1,pending:ae})}function rr(e,t,r,n,s,i){const{ue:a,we:o,pending:c}=e;c.length&&(t=ue(c,t));const d=t.length-s;let l;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,n+(d-d%Mt)),l=0;d-Mt>=l;l+=Mt){const e=or(Kt,ir(t,l,l+Mt));i&&o.update(e);const s=a.update(e);i||o.update(s),r.set(ar(Kt,s),l+n)}return e.pending=ir(t,l),r}async function nr(e,n,s,i){e.password=null;const a=await(async(e,t,r,n,s)=>{if(!Jt)return Tt.importKey(t);try{return await jt.importKey("raw",t,r,!1,s)}catch{return Jt=!1,Tt.importKey(t)}})(0,s,_t,0,Lt),o=await(async(e,t,r)=>{if(!Qt)return Tt.G(t,e.salt,Pt.iterations,r);try{return await jt.deriveBits(e,t,r)}catch{return Qt=!1,Tt.G(t,e.salt,Pt.iterations,r)}})(r.assign({salt:i},Pt),a,8*(2*Zt[n]+2)),c=new f(o),d=or(Kt,ir(c,0,Zt[n])),l=or(Kt,ir(c,Zt[n],2*Zt[n])),u=ir(c,2*Zt[n]);return r.assign(e,{keys:{key:d,fe:l,passwordVerification:u},ue:new Gt(new Yt(d),t.from(Vt)),we:new Xt(l)}),u}function sr(e,t){return t===re?Rt(e):t}function ir(e,t,r){return e.subarray(t,r)}function ar(e,t){return e.M(t)}function or(e,t){return e.N(t)}class cr extends R{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){lr(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=ur(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t[11]^r.passwordVerification))throw new w(Ct);e=e.subarray(12)}n?t.error(new w(It)):t.enqueue(ur(r,e))}})}}class dr extends R{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){lr(this,e,t,r)},transform(e,t){const r=this;let n,s;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const t=Ot(new f(12));t[11]=r.passwordVerification,n=new f(e.length+t.length),n.set(wr(r,t),0),s=12}else n=new f(e.length),s=0;n.set(wr(r,e),s),t.enqueue(n)}})}}function lr(e,t,n,s){r.assign(e,{password:t,rawPassword:n,passwordVerification:s}),((e,t,n)=>{const s=[305419896,591751049,878082192];if(r.assign(e,{keys:s,pe:new zt(s[0]),he:new zt(s[2])}),n)for(let t=0;t<n.length;t++)fr(e,n[t]);else for(let r=0;r<t.length;r++)fr(e,t.charCodeAt(r))})(e,t,n)}function ur(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=pr(e)^t[n],fr(e,r[n]);return r}function wr(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=pr(e)^t[n],fr(e,t[n]);return r}function fr(e,t){let[,r]=e.keys;e.pe.append([t]);const n=~e.pe.get();r=mr(a.imul(mr(r+hr(n)),134775813)+1),e.he.append([r>>>24]);const s=~e.he.get();e.keys=[n,r,s]}function pr(e){const t=2|e.keys[2];return hr(a.imul(t,1^t)>>>8)}function hr(e){return 255&e}function mr(e){return 4294967295&e}const yr="Invalid uncompressed size",gr="Invalid compressed data",xr=vt,Sr="deflate-raw",br="gzip",zr=[31,139,8];class Fr extends R{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:i,useCompressionStream:a,zipCrypto:o,computeCrc32:c,level:d,deflate64:l,format:u,compressionMethod:w}=e,f=this;let p,h,y,g=super.readable;const x=u&&wt(u),S=c&&s&&!l&&!x&&(!i||o)&&!(!a||!n);if(i&&!o||!c||S||(p=new Ft,g=Ur(g,p)),s)if(x)g=Ir(g,Cr(x.CompressionStream,u,{level:d,chunkSize:t,compressionMethod:w}));else if(S)y=new Rr,g=Ir(g,new n(br)),g=Ur(g,y);else try{g=vr(g,a,{level:d,chunkSize:t},n,r)}catch(e){let t;try{t=new n(br)}catch{throw e}g=Ir(g,t),g=Ur(g,new Rr)}i&&(o?g=Ur(g,new dr(e)):(h=new er(e),g=Ur(g,h))),kr(f,g,()=>{i&&!o||!c||(f.crc32=S?y.crc32:new m(p.value.buffer).getUint32(0))})}}class Rr extends R{constructor(){let e,t=10,r=new f(0);super({transform(e,n){if(t){const r=a.min(t,e.length);if(t-=r,!(e=e.subarray(r)).length)return}const s=r.length+e.length;if(8>=s)return void(r=ue(r,e));const i=s-8,o=a.min(i,r.length);n.enqueue(ue(r.subarray(0,o),e.subarray(0,i-o))),r=ue(r.subarray(o),e.subarray(i-o))},flush(){const t=fe(r);e.crc32=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class Er extends R{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:i,checkCrc32:a,crc32:o,compressed:c,useCompressionStream:d,deflate64:l,format:u,compressionMethod:p,rawBitFlag:h,outputSize:y}=e;let x,S,b=super.readable;if(i&&(s?b=Ur(b,new cr(e)):(S=new $t(e),b=Ur(b,S))),c){const e=u&&wt(u);if(e)b=Ir(b,Cr(e.DecompressionStream,u,{chunkSize:t,compressionMethod:p,rawBitFlag:h,uncompressedSize:y}));else try{b=vr(b,d,{chunkSize:t,deflate64:l},n,r)}catch(e){if(l||y===re)throw e;let t;try{t=new n(br)}catch{throw e}b=((e,t,r)=>{const n=new zt;let s,i,a,o=0,c=!1;const d=new g((e,t)=>{i=e,a=t});d.catch(()=>{}),r||i();const l=new R({start(e){const t=new f(10);t.set(zr),e.enqueue(t)},transform(e,t){t.enqueue(e)},async flush(e){c=!0,p();try{await d}finally{h()}const t=new f(8),s=fe(t);s.setUint32(0,n.get(),!0),s.setUint32(4,r,!0),e.enqueue(t)},cancel(e){a(e)}}),u=new R({transform(e,t){n.append(e),o+=e.length,r>o?c&&p():i(),t.enqueue(e)},cancel(e){a(e)}});return e=Ur(e,l),Ur(e=Ir(e,t),u);function p(){h(),s=setTimeout(()=>a(new w(yr)),5e3)}function h(){clearTimeout(s)}})(b,t,y)}b=(e=>{const t=e.getReader();return new E({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new w(gr);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(b)}a&&(x=new Ft,b=Ur(b,x)),kr(this,b,()=>{if(a){const e=new m(x.value.buffer);if(o!=e.getUint32(0,!1))throw new w(xr)}})}}const Dr=new c;function Ar(e,t){if(!e)return!1;let r=Dr.get(e);r||(r=new c,Dr.set(e,r));let n=r.get(t);if(n===re){try{new e(t),n=!0}catch{n=!1}r.set(t,n)}return n}function Tr(e){return Ar(e,Sr)}function kr(e,t,n){t=Ur(t,new R({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function Cr(e,t,r){if(!e)throw new w("Compression method not supported");return new e(t,r)}function vr(e,t,r,n,s){const i=t&&n?n:s||n,a=r.deflate64?"deflate64-raw":Sr;let o;try{o=new i(a,r)}catch(e){if(!t||!s||i==s)throw e;o=new s(a,r)}return Ir(e,o)}function Ur(e,t){return pe(e).pipeThrough(t)}function Ir(e,t){const r=t.writable.getWriter(),n=e.getReader();return(async()=>{try{for(;;){await r.ready;const e=await n.read();if(e.done){await r.close();break}await r.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(r,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(n,e)}})(),t.readable}const Or="data",Mr="deflate",Nr="inflate";class _r extends R{constructor(e,t){super({});const n=this,{codecType:s}=e;let i;s.startsWith(Mr)?i=Fr:s.startsWith(Nr)&&(i=Er),n.outputSize=0;let a=0;const o=new i(e,t),c=super.readable,d=new R({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:a})}}),l=new R({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==re&&n.outputSize>e.outputSize))throw new w(yr)},flush(){const{crc32:e}=o;r.assign(n,{crc32:e,inputSize:a})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(d).pipeThrough(o).pipeThrough(l)})}}class Pr extends R{constructor(e){const t=[];let r=0;function n(){const n=new f(e);let s=0;for(;e>s;){const r=t[0],i=e-s;r.length>i?(n.set(r.subarray(0,i),s),t[0]=r.subarray(i),s+=i):(n.set(r,s),s+=r.length,t.shift())}return r-=e,n}s.isFinite(e)&&e>=1||(e=65536),super({transform(s,i){for(t.push(s),r+=s.length;r>e;)i.enqueue(n())},flush(e){r&&e.enqueue(((e,t)=>{const r=new f(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r})(t,r))}})}}const Lr={type:"module"},Wr="error";let Zr,Br,Vr,Hr,jr=!0;try{jr=typeof structuredClone==ie&&structuredClone(new DOMException("","AbortError")).code!==re}catch{}class qr{constructor(e,{readable:t,writable:n},{options:s,config:i,me:a,useWebWorkers:o,transferStreams:c,workerURI:d},l){const{signal:u}=a;return r.assign(e,{ye:!0,ge:(e.ge||0)+1,readable:t.pipeThrough(new Pr(le(i))).pipeThrough(new Kr(a),{signal:u}),writable:n,options:r.assign({},s),workerURI:d,transferStreams:c,terminate:()=>new g(t=>{const{xe:r,ye:n}=e;r?(n?e.Se=t:(r.terminate(),t()),e.be=null):t()}),ze(){if(e.ye){const{Se:t}=e;t&&(e.Se=null,e.Fe=!0,e.xe.terminate(),t()),e.ye=!1,l(e)}}}),Zr===re&&(Zr=typeof C!=se),(o&&Zr?Xr:Gr)(e,i)}}class Kr extends R{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await Yr(e,r)},async transform(e,n){s+=e.length,t&&await Yr(t,s,r),n.enqueue(e)},async flush(){n&&await Yr(n,s)}})}}async function Yr(e,...t){try{await e(...t)}catch{}}function Gr(e,t){return{run:()=>Jr(e,t)}}function Xr(e,t){const{baseURI:n,chunkSize:i,workerStartupTimeout:a}=t;let{wasmURI:o}=t;if(!e.be){let c;typeof o==ie&&(o=o());try{c=$r(e.workerURI,n,e)}catch{return Zr=!1,Gr(e,t)}r.assign(e,{xe:c,Re:!1,Fe:!1,be:{run:async()=>{try{return await(async(e,t)=>{let n,i;const a=new g((e,t)=>{n=e,i=t});r.assign(e,{reader:null,writer:null,Ee:n,De:i,result:a});const{readable:o,options:c}=e,{writable:d,closed:l,Ae:u}=(e=>{const t=new AbortController,{writable:r,readable:n}=new R,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,Ae:()=>t.abort()}})(e.writable);let f;try{f=rn({type:"start",options:c,config:t,readable:o,writable:d},e)}catch(t){u();try{await l}catch{}throw e.ze(),t}f||r.assign(e,{reader:o.getReader(),writer:d.getWriter()});const{workerStartupTimeout:p}=t;e.Re||!s.isFinite(p)||0>p||(e.Te=setTimeout(()=>(e=>{if(e.Te=null,e.Re)return;const{De:t,writer:r}=e;if(Qr(e),e.xe=null,t){const e=new w("Worker startup timeout");e.ke=!0,t(e),r&&r.releaseLock()}})(e),p));try{const e=await a;return await h(),await l,e}catch(e){await h(),u();try{await l}catch{}throw e}async function h(){if(!f&&!d.locked)try{await d.getWriter().close()}catch{}}})(e,{chunkSize:i,wasmURI:o,baseURI:n,workerStartupTimeout:a})}catch(r){if(r&&r.ke){Zr=!1;const{reader:r}=e;return r&&r.releaseLock(),e.reader=null,e.writer=null,Jr(e,t)}throw r}}}})}return e.be}async function Jr({options:e,readable:t,writable:r,ze:n},s){let i;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(Mr),r=t?s.CompressionStreamZlib:s.DecompressionStreamZlib,n=t?s.CompressionStream:s.DecompressionStream;if(e.useCompressionStream){if(r&&r.Ce&&!Tr(n))try{await void 0}catch{}}else try{await void 0}catch{r&&!r.Ce||(e.useCompressionStream=!0)}}i=new _r(e,s),await t.pipeThrough(i).pipeThrough(new Pr(le(s))).pipeTo(r,{preventClose:!0,preventAbort:!0});const{crc32:n,inputSize:a,outputSize:o}=i;return{crc32:n,inputSize:a,outputSize:o}}catch(e){throw i&&(e.outputSize=i.outputSize),e}finally{n()}}function Qr(e){const{xe:t}=e;if(t)try{t.terminate()}catch{}e.be=null}function $r(e,t,n,s,i=!0){let a,o,c;if(Vr===re||Br!==e){const r=typeof e==ie;o=r?e(i):e;const d=o.startsWith("data:"),l=o.startsWith("blob:");if(d||l){s===re&&(s=!1),s&&(c=Lr);try{a=new C(o,c)}catch(i){if(l)try{u.revokeObjectURL(o)}catch{}if(r&&l)return $r(e,t,n,s,!1);if(s)throw i;return $r(e,t,n,!0,!1)}}else{s===re&&(s=!0),s&&(c=Lr);try{o=new u(o,t)}catch{}try{a=new C(o,c)}catch(r){if(s)throw r;return $r(e,t,n,!1,i)}}Br=e,Vr=o,Hr=c}else a=new C(Vr,Hr);return a.addEventListener("message",e=>{n.Re=!0,en(n),(async({data:e},t)=>{const{type:n,value:s,messageId:i,result:a,error:o}=e,{reader:c,writer:d,Ee:l,De:u,ze:p,ge:h}=t,m=()=>t.ge!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:i,cause:a}=o,c=new w(e);r.assign(c,{stack:t,code:n,name:s,outputSize:i}),a&&(c.cause=r.assign(new w(a.message),{name:a.name})),y(c)}else{if("pull"==n){const{value:e,done:r}=await c.read();m()||rn({type:Or,value:e,done:r,messageId:i},t)}n==Or&&(await d.ready,await d.write(new f(s)),m()||rn({type:"ack",messageId:i},t)),"close"==n&&y(null,a)}}catch(o){m()||(Qr(t),y(o))}function y(e,t){m()||(e?u(e):l(t),d&&d.releaseLock(),p())}})(e,n)}),a.addEventListener(Wr,e=>tn(e,n)),a.addEventListener("messageerror",e=>tn(e,n)),a}function en(e){const{Te:t}=e;t&&(clearTimeout(t),e.Te=null)}function tn(e,t){e.preventDefault&&e.preventDefault(),en(t);const{Re:n,De:s,writer:i,ze:a}=t;if(Qr(t),n||(t.xe=null),s){let t=e.error||new w(e.message||Wr);n||(t=r.assign(new w(t.message||Wr),{ke:!0})),s(t),i&&i.releaseLock(),n&&a()}}function rn(e,{xe:t,writer:r,transferStreams:n,Re:s}){try{const{value:r,readable:i,writable:a}=e,o=[];if(r&&(e.value=we(r),o.push(e.value.buffer)),n&&jr&&s?(i&&o.push(i),a&&o.push(a)):e.readable=e.writable=null,o.length)try{return t.postMessage(e,o),!0}catch{jr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let nn=[];const sn=[];let an,on,cn=0;async function dn(e,t){const{options:r,config:n}=t,{transferStreams:i,useWebWorkers:a,useCompressionStream:o,compressed:c,checkCrc32:d,computeCrc32:l,encrypted:f,format:p,codecURI:h}=r,{workerURI:m,maxWorkers:y}=n;p&&(h&&(r.codecURI=((e,t)=>{try{return new u(e,t).toString()}catch{return e}})(h,n.baseURI)),await(async(e,t)=>{!lt.has(e)&&t&&((e,t)=>{const{CompressionStream:r,DecompressionStream:n}=t;if(typeof r!=ie&&typeof n!=ie)throw new w("Invalid codec module");lt.set(e,{CompressionStream:r,DecompressionStream:n})})(e,await(import(/* webpackIgnore: true */ /* @vite-ignore */t)))})(p,r.codecURI)),t.transferStreams=i||i===re&&n.transferStreams;const x=!(c||d||l||f),S=p===re||!!r.codecURI;return t.useWebWorkers=!x&&S&&(a||a===re&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&m?m:re,r.useCompressionStream=o||o===re&&n.useCompressionStream,(await(async()=>{const r=nn.find(e=>!e.ye);if(r)return pn(r),new qr(r,e,t,b);if(nn.length<y){const r={ve:cn};return cn++,nn.push(r),new qr(r,e,t,b)}return new g(r=>{sn.push({resolve:r,stream:e,Ue:t}),on=n.workerStarvationTimeout,ln()})})()).run();function b(e){if(un(),sn.length){const[{resolve:t,stream:r,Ue:n}]=sn.splice(0,1);t(new qr(e,r,n,b)),ln()}else e.xe?(pn(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.Fe?e.Fe=!1:e.Ie=setTimeout(async()=>{nn=nn.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):nn=nn.filter(t=>t!=e)}}function ln(){!an&&sn.length&&s.isFinite(on)&&on>=0&&(an=setTimeout(wn,on))}function un(){an&&(clearTimeout(an),an=null)}function wn(){if(an=null,sn.length){const[{resolve:e,stream:t,Ue:n}]=sn.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:re});e(new qr({},t,s,fn)),ln()}}function fn(){un(),ln()}function pn(e){const{Ie:t}=e;t&&(clearTimeout(t),e.Ie=null)}const hn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function mn(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=hn[e[r]];return t}})(e):new S(t,{ignoreBOM:!0}).decode(e)}const yn="filename",gn="rawFilename",xn="comment",Sn="rawComment",bn="uncompressedSize",zn="compressedSize",Fn="offset",Rn="diskNumberStart",En="lastModDate",Dn="rawLastModDate",An="lastAccessDate",Tn="rawLastAccessDate",kn="creationDate",Cn="rawCreationDate",vn="internalFileAttributes",Un="externalFileAttributes",In="msdosAttributesRaw",On="msdosAttributes",Mn="msDosCompatible",Nn="zip64",_n="encrypted",Pn="version",Ln="versionMadeBy",Wn="zipCrypto",Zn="directory",Bn="executable",Vn="compressionMethod",Hn="signature",jn="extraField",qn="unixMode",Kn="setuid",Yn="setgid",Gn="sticky",Xn=[yn,gn,bn,zn,En,Dn,xn,Sn,An,Tn,kn,Cn,Fn,Rn,vn,Un,In,On,Mn,Nn,_n,Pn,Ln,Wn,Zn,Bn,Vn,Hn,"crc32",jn,"extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid",qn,Kn,Yn,Gn,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class Jn{constructor(e){Xn.forEach(t=>this[t]=e[t])}}const Qn="password",$n="rawPassword",es="passThrough",ts="signal",rs="checkAmbiguity",ns="useWebWorkers",ss="useCompressionStream",is="transferStreams",as="preventClose",os="offset",cs="usdz",ds="strictness",ls="strict",us="tolerant",ws="File format is not recognized",fs="End of central directory not found",ps="End of Zip64 central directory locator not found",hs="Central directory header not found",ms="Local file header not found",ys="Zip64 extra field not found",gs="File contains encrypted entry",xs="Encryption method not supported",Ss="Compression method not supported",bs="Split zip file",zs="Overlapping entry found",Fs="Ambiguous archive",Rs="Encrypted central directory is not supported",Es="utf-8",Ds="cp437",As=[[bn,v],[zn,v],[Fn,v],[Rn,U]],Ts={[U]:{Oe:ei,bytes:4},[v]:{Oe:ti,bytes:8}};class ks{constructor(e,t={}){r.assign(this,{reader:new it(e),options:t,config:de(),Me:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await ot(n),n.size!==re&&n.readUint8Array||(n=new Ie(await new l(n.readable).blob()),await ot(n)),n.size<Z)throw new w(ws);const i=Ls(Gs(t,e,ds),Gs(t,e,rs)),o=i==ls,c=i!=us,u=((e,t)=>e!==re?e:t==ls?0:t==us?1/0:U)(Gs(t,e,"maxAppendedDataSize"),i),{Ne:f,_e:p}=await(async(e,t,r)=>{const{size:n}=e,s=a.min(n,65557),i={count:Ws};let o,c,d=0;for await(const[r,a,l,u,w]of Hs(e,s)){const s=$s(r,u+20);if(w+Z+s==n){const s=await qs(e,r,a,u,w,n,i);if(s==Vs){if(o||(o=js(l,u,w)),d++,!t||d>1)break}else s!=Bs||c||(c=js(l,u,w))}}return o||(o=c),o||(o=await(async(e,t,r)=>{const{size:n}=e,s=a.min(n,t==1/0?n:65557+t);let i,o;for await(const[t,a,c,d,l]of Hs(e,s)){const s=js(c,d,l);i||(i=s);const u=await qs(e,t,a,d,l,n,r);if(u==Vs)return s;u!=Bs||o||(o=s)}return o||i})(e,r,i)),{Ne:o,_e:d}})(n,c,u);if(!f)throw ei(fe(await ct(n,0,4)))==M?new w(bs):new w(fs);c&&p>1&&Ys("multiple end of central directory records");const h=fe(f);let m=ei(h,12),y=ei(h,16);const x=f.offset,S=$s(h,20),b=x+Z+S;n.size-b>u&&Ys("appended data");let z=$s(h,4);const F=n.R||0;let E,D,A,T=$s(h,6),k=$s(h,10),C=0;const O=y==v||m==v||k==U||T==U;if(y!=v&&T!=U&&(y+=Ps(n,T)),O){const e=f.offset<B?ae:await ct(n,f.offset-B,B),t=fe(e);if(e.length==B&&ei(t,0)==W){y=Ps(n,ei(t,4))+ti(t,8);let e=await ct(n,y,56),r=fe(e);const s=f.offset-B-56;if((56>e.length||ei(r,0)!=L)&&y!=s&&s>=0){const t=y;y=s,y>t&&(C=y-t),e=await ct(n,y,56),r=fe(e)}if(56>e.length||ei(r,0)!=L)throw new w(ps);D=!0,A=ti(r,4)>44,z==U?z=ei(r,16):o&&z!=ei(r,16)&&Ys("mismatched zip64 end of central directory record"),T==U?T=ei(r,20):o&&T!=ei(r,20)&&Ys("mismatched zip64 end of central directory record"),k==U?k=ti(r,32):o&&k!=ti(r,32)&&Ys("mismatched zip64 end of central directory record"),m==v?m=ti(r,40):o&&m!=ti(r,40)&&Ys("mismatched zip64 end of central directory record"),y=Ps(n,T)+ti(r,48)+C}}const N=m,P=f.offset-(D?76:0);if(y<n.size||(C=n.size-y-m-Z,y=n.size-m-Z),F!=z)throw new w(bs);if(0>y)throw new w(ws);let V=0,H=await ct(n,y,m),j=fe(H);if(m){if(4>H.length)throw new w(ws);const e=P-m;if(y!=e&&T==z){let t=!(ei(j,V)==_);if(t||0>e||e+4>n.size||(t=ei(fe(await ct(n,e,4)),0)==_),t){const t=y;y=e,y>t&&(C+=y-t),H=await ct(n,y,m),j=fe(H)}}}const q=P-y;if(m==q||0>q||T!=z||(m=q,H=await ct(n,y,m),j=fe(H)),0>y||y>=n.size)throw new w(ws);E=y;const K=Gs(t,e,"filenameEncoding"),Y=Gs(t,e,"commentEncoding"),$=o?new d:re;let ee;for(let i=0;k>i;i++){const c=new Cs(n,s,t.options);if(V+46>H.length||ei(j,V)!=_){if(0==i&&(A||vs(j)))throw new w(Rs);throw new w(hs)}Us(c,j,V+6);const d=!!c.bitFlag.languageEncodingFlag,u=V+46,f=u+c.filenameLength,p=f+c.extraFieldLength,h=$s(j,V+4),m=!(h>>8),y=h>>8==3,x=H.subarray(u,f),S=$s(j,V+32),b=p+S,z=H.subarray(p,b),F=d,D=d,T=ei(j,V+38),v=T&I,O={readOnly:!!(1&v),hidden:!!(2&v),system:!!(4&v),directory:!!(16&v),archive:!!(32&v)},M=ei(j,V+42),N=Gs(t,e,"decodeText")||mn,P=F?Es:K||Ds,L=D?Es:Y||Ds;let W=N(x,P);W===re&&(W=mn(x,P));let Z=N(z,L);Z===re&&(Z=mn(z,L)),r.assign(c,{index:i,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Pe:S,offset:M,diskNumberStart:$s(j,V+34),internalFileAttributes:$s(j,V+36),externalFileAttributes:T,msdosAttributesRaw:v,msdosAttributes:O,rawFilename:x,filenameUTF8:F,commentUTF8:D,rawExtraField:H.subarray(f,p),rawComment:z,filename:W,comment:Z}),Is(c,c,j,V+6),c.offset+=C,E=a.min(Ps(n,c.diskNumberStart)+c.offset,E),o&&($.has(c.filename)&&(ee=!0),$.add(c.filename));const B=c.externalFileAttributes>>16&U;c.unixMode===re&&16877&B&&(c.unixMode=B);const q=!!(c.unixMode&X),te=!!(c.unixMode&J),ne=!!(512&c.unixMode),se=c.unixMode!==re?!!(73&c.unixMode):y&&!!(73&B),ie=c.unixMode!==re&&(61440&c.unixMode)==G,ae=(61440&B)==G;r.assign(c,{setuid:q,setgid:te,sticky:ne,unixExternalUpper:B,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:se,directory:ie||ae||m&&O.directory||c.filename.endsWith(Q)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const oe=new Jn(c);oe.getData=(e,r)=>c.getData(e,oe,t.Me,r),oe.arrayBuffer=async e=>{const r=new R,[n]=await g.all([new l(r.readable).arrayBuffer(),c.getData(r,oe,t.Me,e)]);return n},V=b;const{onprogress:ce}=e;if(ce)try{await ce(i+1,k,new Jn(c))}catch{}yield oe}o&&V!=N&&Ys("trailing central directory data"),ee&&Ys("duplicate filename"),o&&(C||k&&E>0)&&Ys("prepended data");const te=Gs(t,e,"extractPrependedData"),ne=Gs(t,e,"extractAppendedData");return te&&(t.prependedData=E>0?await ct(n,0,E):ae),t.comment=S?await ct(n,x+Z,S):ae,ne&&(t.appendedData=b<n.size?await ct(n,b,n.size-b):ae),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}let Cs=class{constructor(e,t,n){r.assign(this,{reader:e,config:t,options:n})}async getData(e,t,r,n={}){const s=this,{reader:i,index:a,offset:o,diskNumberStart:c,extraFieldAES:d,extraFieldZip64:l,compressionMethod:u,config:f,bitFlag:p,rawBitFlag:h,crc32:m,rawLastModDate:y,uncompressedSize:g,compressedSize:x}=s,{dataDescriptor:S}=p,b=t.localDirectory={},z=Ps(i,c)+o,F=await ct(i,z,$),R=fe(F);let E=Gs(s,n,Qn),A=Gs(s,n,$n);const T=Gs(s,n,es);if(E=E&&E.length&&E,A=A&&A.length&&A,d&&99!=d.originalCompressionMethod)throw new w(Ss);if(F.length<$||ei(R,0)!=O)throw new w(ms);Us(b,R,4);const{extraFieldLength:k,filenameLength:C}=b,v=Ls(Gs(s,n,ds),Gs(s,n,rs))==ls;let U=ae;if(v&&(C||k)){const e=await ct(i,z+$,C+k);U=e.subarray(0,C),b.rawExtraField=e.subarray(C)}else b.rawExtraField=k?await ct(i,z+$+C,k):ae;Is(s,b,R,4,!0),v&&((e,t,r)=>{const{rawFilename:n}=e;(r.length!=n.length||r.some((e,t)=>e!=n[t]))&&Ys("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&Ys("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&Ys("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.crc32||t.compressedSize||t.uncompressedSize)||t.crc32==e.crc32&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||Ys("mismatched local file header (crc32 or sizes)")})(s,b,U);const{lastAccessDate:M,creationDate:_}=b;M&&(t.lastAccessDate=M),_&&(t.creationDate=_);const P=s.encrypted&&b.encrypted&&!T,L=P&&!d;if(T||(t.zipCrypto=L),P&&!(64&~b.rawBitFlag))throw new w(xs);const W=T?re:ut(u);if(0!=u&&8!=u&&9!=u&&!W&&!T)throw new w(Ss);if(P){if(!L&&(1>d.strength||d.strength>3))throw new w(xs);if(!E&&!A)throw new w(gs)}const Z=z+$+C+k,B=x,V=pe(i.createReadable({offset:Z,size:B})),H=Gs(s,n,ts),j=Gs(s,n,"checkPasswordOnly");let q=Gs(s,n,"checkOverlappingEntry");const K=Gs(s,n,"checkOverlappingEntryOnly");K&&(q=!0);const{onstart:Y,onprogress:G,onend:X}=n,J=9==u;let Q=Gs(s,n,ss);J&&(Q=!1);const ee=Gs(s,n,"checkCrc32"),te=(ee===re?Gs(s,n,"checkSignature"):ee)&&!T&&(!P||L||d&&1==d.vendorVersion),ne={options:{codecType:Nr,password:E,rawPassword:A,zipCrypto:L,encryptionStrength:d&&d.strength,checkCrc32:te,checkAuthenticationCode:Gs(s,n,"checkAuthenticationCode"),passwordVerification:L&&(S?y>>>8&I:m>>>24&I),outputSize:T?x:g,crc32:m,compressed:0!=u&&!T,encrypted:P,useWebWorkers:Gs(s,n,ns),useCompressionStream:Q,transferStreams:Gs(s,n,is),deflate64:J,format:W?W.format:re,codecURI:W?W.codecURI:re,compressionMethod:u,rawBitFlag:h,checkPasswordOnly:j},config:f,me:{signal:H,size:B,onstart:Y,onprogress:G,onend:X}};let se;q&&await(async({reader:e,Le:t,index:r,offset:n,crc32:s,compressedSize:i,uncompressedSize:a,We:o,dataDescriptor:c,extraFieldZip64:d,Me:l})=>{let u=0;if(c&&(u=d?20:12),u){const r=await ct(e,o+i,u+4);if(r.length==u+4&&ei(fe(r),0)==N){const e=ei(fe(r),4);let n,o;d?(n=ti(fe(r),8),o=ti(fe(r),16)):(n=ei(fe(r),8),o=ei(fe(r),12)),(t.encrypted&&!t.zipCrypto||e==s)&&n==i&&o==a&&(u+=4)}}const f={start:n,end:o+i+u,Le:t};for(const[e,t]of l)if(e!=r&&f.start<t.end&&t.start<f.end){const e=new w(zs);throw e.Ze=t.Le,e}l.set(r,f)})({reader:i,Le:t,index:a,offset:z,crc32:m,compressedSize:x,uncompressedSize:g,We:Z,dataDescriptor:S||b.bitFlag.dataDescriptor,extraFieldZip64:l||b.extraFieldZip64,Me:r});try{if(!K){j&&(e=new D),e=new at(e),await ot(e,T?x:g),({writable:se}=e);const{outputSize:t}=await dn({readable:V,writable:se},ne);if(e.size+=t,t!=(T?x:g))throw new w(yr)}}catch(t){if(t.outputSize!==re&&(e.size+=t.outputSize),!j||t.message!=It)throw t}finally{Gs(s,n,as)||!se||se.locked||await se.getWriter().close()}return j||K?re:e.getData?e.getData():se}};function vs(e){const t=a.min(e.byteLength,1024)-3;for(let r=0;t>r;r++)if(134630224==ei(e,r))return!0;return!1}function Us(e,t,n){const s=e.rawBitFlag=$s(t,n+2),i=!(1&~s),a=ei(t,n+6);r.assign(e,{encrypted:i,version:$s(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&Y)==Y},rawLastModDate:a,lastModDate:Xs(a),filenameLength:$s(t,n+22),extraFieldLength:$s(t,n+24)})}function Is(e,t,n,s,i){const{rawExtraField:a}=t,d=t.extraField=new c,l=fe(a);let u=0;try{for(;u<a.length;){const e=$s(l,u),t=$s(l,u+2);d.set(e,{type:e,data:a.slice(u+4,u+4+t)}),u+=4+t}}catch{}const f=$s(n,s+4);r.assign(t,{signature:ei(n,s+10),crc32:ei(n,s+10),compressedSize:ei(n,s+14),uncompressedSize:ei(n,s+18)});const p=d.get(1);p&&(((e,t)=>{t.zip64=!0;const r=fe(e.data),n=As.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+Ts[t].bytes,0);if(e.data.length<s)throw new w(ys);for(let s=0,i=0;s<n.length;s++){const[a,o]=n[s],c=Ts[o];t[a]=e[a]=c.Oe(r,i),i+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=d.get(28789);h&&(Os(h,yn,gn,t,e),t.extraFieldUnicodePath=h);const m=d.get(25461);m&&(Os(m,xn,Sn,t,e),t.extraFieldUnicodeComment=m);const y=d.get(V);y&&y.data.length>=7?(((e,t,n)=>{const s=fe(e.data),i=Qs(s,4);r.assign(e,{vendorVersion:Qs(s,0),vendorId:Qs(s,2),strength:i,originalCompressionMethod:n,compressionMethod:$s(s,5)}),t.compressionMethod=e.compressionMethod,1!=e.vendorVersion&&(t.crc32=re)})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const g=d.get(13);g&&(Ms(g,t),t.extraFieldPkwareUnix=g);const x=d.get(22613);x&&(Ms(x,t),t.extraFieldUnixType1=x);const S=d.get(10);S&&(((e,t)=>{const n=fe(e.data);let s,i=4;try{for(;i<e.data.length&&!s;){const t=$s(n,i),r=$s(n,i+2);1==t&&(s=e.data.slice(i+4,i+4+r)),i+=4+r}}catch{}if(s&&24==s.length){const n=fe(s),i=n.getBigUint64(0,!0),a=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);r.assign(e,{rawLastModDate:i,rawLastAccessDate:a,rawCreationDate:o});const c={lastModDate:Js(i),lastAccessDate:Js(a),creationDate:Js(o)};r.assign(e,c),r.assign(t,c)}})(S,t),t.extraFieldNTFS=S);const b=d.get(K);if(b)Ns(b,t,!1),t.extraFieldUnix=b;else{const e=d.get(q);e&&(Ns(e,t,!0),t.extraFieldInfoZip=e)}const z=d.get(H);z&&(((e,t,r)=>{if(!e.data.length)return;const n=fe(e.data),s=Qs(n,0),i=[],a=[];r?(1&~s||(i.push(En),a.push(Dn)),2&~s||(i.push(An),a.push(Tn)),4&~s||(i.push(kn),a.push(Cn))):5>e.data.length||(i.push(En),a.push(Dn));let c=1;i.forEach((r,s)=>{if(e.data.length>=c+4){const i=ei(n,c);t[r]=e[r]=new o(1e3*(0|i));const d=a[s];e[d]=i}c+=4})})(z,t,i),t.extraFieldExtendedTimestamp=z);const F=d.get(j);F&&(t.extraFieldUSDZ=F)}function Os(e,t,n,s,i){if(5>e.data.length)return void(e.valid=!1);const a=fe(e.data),o=new zt;o.append(i[n]);const c=fe(new f(4));c.setUint32(0,o.get(),!0);const d=ei(a,1);r.assign(e,{version:Qs(a,0),[t]:mn(e.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&d==ei(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function Ms(e,t){if(8>e.data.length)return;const n=fe(e.data),s={lastAccessDate:new o(1e3*ei(n,0)),lastModDate:new o(1e3*ei(n,4))};12>e.data.length||(s.uid=$s(n,8),s.gid=$s(n,10)),r.assign(e,s),r.assign(t,s)}function Ns(e,t,n){try{const s=fe(e.data);let i,a;if(n){let t=0;const n=Qs(s,t++),o=Qs(s,t++);i=_s(e.data.subarray(t,t+o)),t+=o;const c=Qs(s,t++);a=_s(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:i,gid:a})}else 4>e.data.length||(i=$s(s,0),a=$s(s,2),r.assign(e,{uid:i,gid:a}));i!==re&&(t.uid=i),a!==re&&(t.gid=a)}catch{}}function _s(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Ps(e,t){return e.A?e.A(t):0}function Ls(e,t){return e===re?t?ls:"balanced":e}const Ws=64,Zs=0,Bs=1,Vs=2;async function*Hs(e,t){const r=e.size-t,n=await ct(e,r,t),s=fe(n);for(let e=n.length-Z;e>=0;e--)ei(s,e)==P&&(yield[s,r,n,e,r+e])}function js(e,t,r){return{offset:r,buffer:e.slice(t,t+Z).buffer}}async function qs(e,t,r,n,s,i,a){const o=$s(t,n+10),c=ei(t,n+12),d=ei(t,n+16);if(o==U||c==v||d==v)return await Ks(e,t,r,s-B,i,a)==W?Vs:Zs;if(!o&&!c)return Bs;const l=$s(t,n+6);for(const n of[s-c,Ps(e,l)+d])if(await Ks(e,t,r,n,i,a)==_)return Vs;return Zs}async function Ks(e,t,r,n,s,i){return 0>n||n+4>s?re:r>n?i.count>0?(i.count--,ei(fe(await ct(e,n,4)),0)):re:ei(t,n-r)}function Ys(e){const t=new w(Fs);throw t.reason=e,t}function Gs(e,t,r){return t[r]===re?e.options[r]:t[r]}function Xs(e){const t=(4294901760&e)>>16,r=e&U;return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}function Js(e){return new o(s(e/i(1e4)-i(116444736e5)))}function Qs(e,t){return e.getUint8(t)}function $s(e,t){return e.getUint16(t,!0)}function ei(e,t){return e.getUint32(t,!0)}function ti(e,t){return s(e.getBigUint64(t,!0))}var ri=r.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:Fs,ERR_BAD_FORMAT:ws,ERR_CENTRAL_DIRECTORY_NOT_FOUND:hs,ERR_ENCRYPTED:gs,ERR_ENCRYPTED_CENTRAL_DIRECTORY:Rs,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:ps,ERR_EOCDR_NOT_FOUND:fs,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:ys,ERR_INVALID_AUTHENTICATION_CODE:Ut,ERR_INVALID_COMPRESSED_DATA:gr,ERR_INVALID_CRC32:xr,ERR_INVALID_PASSWORD:Ct,ERR_INVALID_SIGNATURE:vt,ERR_INVALID_UNCOMPRESSED_SIZE:yr,ERR_LOCAL_FILE_HEADER_NOT_FOUND:ms,ERR_OVERLAPPING_ENTRY:zs,ERR_SPLIT_ZIP_FILE:bs,ERR_UNSUPPORTED_COMPRESSION:Ss,ERR_UNSUPPORTED_ENCRYPTION:xs,ZipReader:ks});const ni="Zip file comment exceeds 64KB",si="Version exceeds 65535",ii="Extra field data exceeds 64KB",ai=-2147483648,oi=2147483647,ci=i(0),di=i("0x7fffffffffffffff"),li="Zip64 is not supported (set the 'zip64' option to 'true')",ui=new f([7,0,2,0,65,69,3,0,0]),wi="infozip",fi="unix";let pi=0;const hi=[];class mi{constructor(e,t={}){e=new at(e);const{availableSize:n=ne,maxSize:s=ne}=e,i=n>0&&n!==ne&&s>0&&s!==ne;r.assign(this,{writer:e,Be:i,options:t,config:de(),files:new c,Ve:new d,offset:t[os]===re?e.size||e.writable.size||0:t[os],He:t[os]===re?0:t[os]-(e.size||e.writable.size||0),je:new d,qe:0,Ke:re})}async prependZip(e){if(this.Ve.size)throw new w("Zip file not empty");e=new it(e),await ot(e);const{ZipReader:t}=await g.resolve().then(()=>ri),n=new t(e.readable),s=await n.getEntries();await n.close(),await ot(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Ve=new d(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:n,lastAccessDate:s,creationDate:i,rawFilename:a,bitFlag:o,encrypted:c,uncompressedSize:d,compressedSize:l,zip64:u}=e;let{compressionMethod:w,Ye:f,Ge:p,Xe:h,Je:m,Qe:y,rawExtraField:g}=e;const{level:x,languageEncodingFlag:S,dataDescriptor:b}=o;f=f||ae,p=p||ae,h=h||ae,m=m||ae,y=y||ae,g=g||ae,e.extraFieldAES&&(w=99);const z=Ni(f,p,h,m,y,g),F=u&&d>=v,R=u&&l>=v,E=-7&Pi(x,S,b,c,w)|x<<1,{$e:D,et:A}=_i({version:t,bitFlag:E,compressionMethod:w,uncompressedSize:d,compressedSize:l,rawLastModDate:n,rawFilename:a,nt:R,st:F,extraFieldLength:z}),{crc32:T}=e;return T!==re&&Ii(A,10,T),r.assign(e,{st:F,nt:R,it:u&&e.offset>=v,diskNumberStart:0,ot:!1,Ye:f,Ge:p,Xe:h,Je:m,Qe:y,rawExtraField:g,extendedTimestamp:h.length>0||m.length>0,ct:1+(s?2:0)+(i?4:0),$e:D,et:A}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{je:c,config:d}=s;let l,u;pi<d.maxWorkers?pi++:await new g(e=>hi.push(e));try{if(e=e.trim(),Ci(s,n,Zn)&&!e.endsWith(Q)&&(e+=Q),s.Ve.has(e))throw new w("File already exists");return s.Ve.add(e),u=!0,l=(async(e,t,n,s)=>{const c=((e,t,r)=>{t=t.trim();let n=Ci(e,r,Mn),s=Ci(e,r,Ln,n?20:768);const i=Ci(e,r,Bn),a=Ci(e,r,"uid"),o=Ci(e,r,"gid");let c=Ci(e,r,qn),d=Ci(e,r,"unixExtraFieldType"),l=Ci(e,r,Kn),u=Ci(e,r,Yn),f=Ci(e,r,Gn);if(a!==re&&(0>a||a>v))throw new w("Invalid uid (must be integer 0..2^32-1)");if(o!==re&&(0>o||o>v))throw new w("Invalid gid (must be integer 0..2^32-1)");if(c!==re&&(0>c||c>U))throw new w("Invalid UNIX mode (must be integer 0..65535)");if(d!==re&&d!==wi&&d!==fi)throw new w("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(d===fi&&(a!==re&&a>U||o!==re&&o>U))throw new w("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");d!==re||a===re&&o===re||(d=wi);let p=Ci(e,r,In),h=Ci(e,r,On);const m=p!==re||h!==re;if(a!==re||o!==re||c!==re||d?(n=!1,s=s&U|768):m&&(n=!0,s&=I),p!==re&&(0>p||p>I))throw new w("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new w("Invalid msdosAttributes (must be an object with boolean flags)");if(s>U)throw new w(si);let y=Ci(e,r,Un);const g=y!==re;g||(y=0),!r[Zn]&&t.endsWith(Q)&&(r[Zn]=!0);const x=Ci(e,r,Zn);let S;if(x?(t.endsWith(Q)||(t+=Q),g||(y=16,n||(y|=16877<<16))):n||g||(y=i?493<<16:27525120),!n){const e=c!==re||!!(l||u||f);S=y>>16&U,c=c===re?S:c&U,l?c|=X:l=!!(c&X),u?c|=J:u=!!(c&J),f?c|=512:f=!!(512&c),g&&!e||(x&&(c|=G),y=(c&U)<<16|y&U)}return({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==re)e&=I;else if(t!==re){const{readOnly:r,hidden:n,system:s,directory:i,archive:a}=t;let o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),i&&(o|=16),a&&(o|=32),e=o&I}return t===re&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(y=y&v|p&I),{name:t,lt:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:S,uid:a,gid:o,unixMode:c,unixExtraFieldType:d,setuid:l,setgid:u,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=c);const d=((e,t,r)=>{const n=Ci(e,r,"encodeText",Rt);let s=n(t);if(s===re&&(s=Rt(t)),Ni(s)>U)throw new w("File entry name exceeds 64KB");const i=r[xn]||"";let a=n(i);if(a===re&&(a=Rt(i)),Ni(a)>U)throw new w("File entry comment exceeds 64KB");const c=Ci(e,r,Pn,20);if(c>U)throw new w(si);const d=Ci(e,r,En,new o),l=Ci(e,r,An),u=Ci(e,r,kn),f=Ci(e,r,vn,0),p=Ci(e,r,es);let h,m;p||(h=Ci(e,r,Qn),m=Ci(e,r,$n));const y=Ci(e,r,"encryptionStrength",3),g=Ci(e,r,Wn),x=Ci(e,r,"extendedTimestamp",!0),S=Ci(e,r,"ntfsTimestamp"),b=Ci(e,r,"keepOrder",!0),z=Ci(e,r,ns),F=Ci(e,r,is),R=Ci(e,r,"bufferedWrite"),E=Ci(e,r,"createTempStream"),D=Ci(e,r,"dataDescriptorSignature",!0),A=Ci(e,r,ts),T=Ci(e,r,"useUnicodeFileNames",!0),k=Ci(e,r,Vn),C=p||k===re?re:ut(k);if(!p&&k!==re&&0!==k&&8!==k&&!C)throw new w("Compression method not supported");let v=Ci(e,r,"level");if(e.options[cs]){if(h!==re||m!==re)throw new w("Encryption is not supported in USDZ files");v===re&&k===re&&(v=0)}let I=Ci(e,r,ss),O=Ci(e,r,"dataDescriptor");R&&O===re&&(O=!1),(O===re||g)&&(O=!0),v!==re&&6!=v&&(I=!1);const M=Ci(e,r,Nn);if(!g&&(h!==re||m!==re)&&(1>y||y>3))throw new w("The strength must equal 1, 2, or 3");const N=yi(r[jn]),_=yi(r.localExtraField);return{comment:i,lt:{rawFilename:s,rawComment:a,version:c,lastModDate:d,lastAccessDate:l,creationDate:u,internalFileAttributes:f,passThrough:p,password:h,rawPassword:m,encryptionStrength:y,zipCrypto:g,extendedTimestamp:x,ntfsTimestamp:S,keepOrder:b,useWebWorkers:z,transferStreams:F,bufferedWrite:R,createTempStream:E,dataDescriptorSignature:D,signal:A,useUnicodeFileNames:T,compressionMethod:k,format:C?C.format:re,codecURI:C?C.codecURI:re,ut:C?C.versionNeeded:re,level:v,useCompressionStream:I,dataDescriptor:O,zip64:M,rawExtraField:N,wt:_}}})(e,t,s),{comment:l}=d,u=s[jn];let p;e.files.set(t,re);try{const{lt:l}=d;0==l.level||l.compressionMethod!==re||l.passThrough||await(async e=>{const{CompressionStream:t,CompressionStreamZlib:r}=e;if(r&&!r.Ce)return!0;if(Tr(t)||Ar(t,br))return!0;if(r)try{return await void 0,!0}catch{return!1}return!1})(e.config)||(l.level=0);const u=await(async(e,t,{lt:r},n)=>{const{passThrough:s,zipCrypto:i,password:a,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:d,zip64:l,level:u,compressionMethod:f}=r,p=0,h=0;if(s){if(!t)throw new w("Undefined reader");if(h=n[bn],h===re)throw new w("Undefined uncompressed size")}const m=!0===l,y=Ci(e,n,_n),g=!!t&&(!!(a&&Ni(a)||o&&Ni(o))||s&&y);t||(u=0,f=0);const x=g?i?12:16+4*c:0;t&&(t=new it(t),await ot(t),s?(n.uncompressedSize=h,p=vi(h)+x):t.size===re?(d=!0,(l||l===re)&&(l=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=vi(h)+x));const S=m||h>=v,b=m||p>=v;if(S||b){if(!1===l)throw new w(li);l=!0}return l=l||!1,{reader:t,lt:{dataDescriptor:d,zip64:l,st:S,nt:b,uncompressedSize:h,level:u,compressionMethod:f,encrypted:g}}})(e,n,d,s);({reader:n}=u);const h=zi(e.writer),m=bi(e.writer),y=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:i,zip64:c,zipCrypto:d,useUnicodeFileNames:l,dataDescriptor:u,directory:f,rawExtraField:p,wt:h,encryptionStrength:m,extendedTimestamp:y,ntfsTimestamp:g,passThrough:x,encrypted:S,st:b,nt:z,uncompressedSize:F,crc32:R}=e;let{version:E,compressionMethod:D}=e;const A=!f&&(D===re?i===re||i>0:0!==D);let T;const k=x||!A,C=c&&(e.bufferedWrite||!u||!b&&!z||k),v=C||c&&u&&(b||z);if(c&&(b||z)){const e=20,t=Si(e);if(t.uint16(1),t.uint16(e-4),T=t.array,C&&(t.ft(F),k)){const e=S?d?12:16+4*m:0;t.ft(x?0:F+e)}}else T=ae;let I,M,N,_,P;if(S&&!d){const e=Si(Ni(ui)+2);e.uint16(V),e.bytes(ui),I=e.array,I[8]=m}else I=ae;if(y){const e=Ai(r),t=Ti(e);if(t){const t=9+(n?4:0)+(s?4:0),r=Si(t);_=1+(n?2:0)+(s?4:0),r.uint16(H),r.uint16(t-4),r.uint8(_),r.uint32(e),n&&r.uint32(ki(Ai(n))),s&&r.uint32(ki(Ai(s))),N=r.array}else N=ae;if(g===re?!t||n||s:g)try{const e=Di(r),t=Si(36);t.uint16(10),t.uint16(32),t.ht(4),t.uint16(1),t.uint16(24),t.ft(e),t.ft(n?Di(n):e),t.ft(s?Di(s):e),M=t.array}catch{M=ae}else M=ae}else M=N=ae;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=wi||t===re&&r===re)if(n!=fi||t===re&&r===re)P=ae;else{const e=Si(8);e.uint16(K),e.uint16(4),e.uint16((t===re?0:t)&U),e.uint16((r===re?0:r)&U),P=e.array}else{const e=xi(t),n=xi(r),s=3+e.length+n.length,i=Si(4+s);i.uint16(q),i.uint16(s),i.uint8(1),i.uint8(e.length),i.bytes(e),i.uint8(n.length),i.bytes(n),P=i.array}}catch{P=ae}D===re&&(D=A?8:0);const{ut:L}=e;A&&L!==re&&(E=E>L?E:L),c&&(E=E>45?E:45),S&&!d&&(E=E>51?E:51,x&&R!==re&&(I[4]=1),I[9]=D,D=99);const W=v?Ni(T):0,Z=W+Ni(I,N,M,P,p,h);if(Z>U)throw new w(ii);const B=new o(2e3*a.ceil(a.floor(r.getTime()/1e3)/2)),{$e:j,et:Y,rawLastModDate:G}=_i({version:E,bitFlag:Pi(i,l,u,S,D),compressionMethod:D,uncompressedSize:F,lastModDate:te>B?te:B>ee?ee:B,rawFilename:t,nt:z,st:b,extraFieldLength:Z}),X=Si($+Ni(t)+Z),J=X.array,Q=fe(J);return X.uint32(O),X.bytes(j),X.bytes(t),v&&X.bytes(T),X.bytes(I),X.bytes(N),X.bytes(M),X.bytes(P),X.bytes(p),X.bytes(h),u&&(z||Ii(Q,18,0),b||Ii(Q,22,0)),{yt:J,gt:Q,$e:j,et:Y,lastModDate:r,rawLastModDate:G,encrypted:S,compressed:A,version:E,compressionMethod:D,ct:_,Ye:ae,xt:W,Xe:N,Je:M,Qe:P,Ge:I,extraFieldLength:Z}})(s=r.assign({},s,c.lt,d.lt,u.lt,{internalFileAttribute:d.lt.internalFileAttributes,externalFileAttribute:c.lt.externalFileAttributes,signature:s[Hn],crc32:s.crc32===re?s[Hn]:s.crc32,offset:e.offset-h,diskNumberStart:m})),x=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=ae,i=0,a=e?20:12;return r&&(a+=4),t&&(s=new f(a),n=fe(s),r&&(i=4,Ii(n,0,N))),{St:s,bt:n,zt:i}})(s),S=Ni(y.yt,x.St);p=await(async(e,t,n,s,a)=>{const{files:o,writer:c}=e,{keepOrder:d,dataDescriptor:l,signal:u}=a,{Ft:p}=s,h=e.options[cs],m=e.Ke;let y,x,S,b,z,F,E,A={},T=0;o.set(t,A),e.Ke=A;try{let x;d&&(x=m&&m.lock,A.lock=new g(e=>S=e)),a.bufferedWrite||!d||e.Rt||e.qe||!l?(y=!0,e.qe++,E=a.createTempStream?await a.createTempStream():new R(re,re,{highWaterMark:ne}),E.size=0,await ot(c)):(E=c,await k()),await ot(E);const U=zi(c);if(e.Be){delete e.Be;const t=new f(4);Ii(fe(t),0,M),await Ei(c,t),e.offset+=4}h&&!y&&gi(s,e.offset-U);const{yt:O}=p;y||(await x,await C());const N=bi(c),_=Ri(e,c);if(A.diskNumberStart=N,y||(z=!0,F=c.size,await Ei(E,O)),A=await(async(e,t,{diskNumberStart:n,lock:s},a,o,c)=>{const{Ft:d,Et:l,Dt:u}=a,{$e:f,et:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:g,version:x,compressionMethod:S,Ye:b,xt:z,Xe:F,ct:R,Je:E,Qe:D,Ge:A}=d,{St:T}=l,{rawFilename:k,lastAccessDate:C,creationDate:U,password:O,rawPassword:M,level:N,zip64:_,st:P,nt:L,zipCrypto:W,dataDescriptor:Z,directory:B,executable:V,versionMadeBy:H,rawComment:j,rawExtraField:q,useWebWorkers:K,transferStreams:Y,onstart:G,onprogress:X,onend:J,signal:Q,encryptionStrength:$,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:ne,externalFileAttributes:se,uid:ie,gid:ae,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe,useCompressionStream:he,passThrough:me,format:ye,codecURI:ge}=c,xe={lock:s,versionMadeBy:H,zip64:_,directory:!!B,executable:!!V,filenameUTF8:!0,rawFilename:k,commentUTF8:!0,rawComment:j,Ye:b,xt:z,Xe:F,Je:E,Qe:D,Ge:A,rawExtraField:q,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ie,gid:ae,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe};let{crc32:Se,uncompressedSize:be}=c,ze=0;me||(be=0);const{writable:Fe}=t;if(e){const r=pe(e.createReadable?e.createReadable():e.readable),n=e.size,s={options:{codecType:Mr,level:N,rawPassword:M,password:O,encryptionStrength:$,zipCrypto:y&&W,passwordVerification:y&&W&&m>>8&I,computeCrc32:!me,compressed:g&&!me,encrypted:y&&!me,useWebWorkers:K,useCompressionStream:he,transferStreams:Y,format:ye,codecURI:ge,compressionMethod:S},config:o,me:{signal:Q,size:n,onstart:G,onprogress:X,onend:J}};try{const e=await dn({readable:r,writable:Fe},s);if(ze=e.outputSize,t.size+=ze,me||(be=e.inputSize,y&&!W||(Se=e.crc32)),!L&&ze>=v||!P&&be>=v)throw new w(li)}catch(e){throw e.outputSize!==re&&(t.size+=e.outputSize),e}}return(({crc32:e,compressedSize:t,uncompressedSize:r,Ft:n,Et:s},{zip64:a,zipCrypto:o,passThrough:c,dataDescriptor:d})=>{const{et:l,encrypted:u}=n,{bt:w,zt:f}=s;u&&!o&&!c||e===re||(Ii(l,10,e),d&&Ii(w,f,e)),a?d&&(Oi(w,f+4,i(t)),Oi(w,f+12,i(r))):(Ii(l,14,t),Ii(l,18,r),d&&(Ii(w,f+4,t),Ii(w,f+8,r)))})({crc32:Se,compressedSize:ze,uncompressedSize:be,Ft:d,Et:l},c),Z&&await Ei(t,T),r.assign(xe,{uncompressedSize:be,compressedSize:ze,lastModDate:h,rawLastModDate:m,creationDate:U,lastAccessDate:C,encrypted:y,zipCrypto:W,size:u+ze,compressionMethod:S,version:x,$e:f,et:p,signature:Se,crc32:!y||W||me?Se:re,ct:R,st:P,nt:L}),xe})(n,E,A,s,e.config,a),y||(z=!1),o.set(t,A),A.filename=t,y){if(await g.all([E.writable.getWriter().close(),x]),await k(),b=!0,F=c.size,await C(),A.diskNumberStart=bi(c),A.offset=Ri(e,c),h){const t=s.Dt;gi(s,e.offset-zi(c)),A.size+=s.Dt-t}(({rawFilename:e,encrypted:t,zip64:r,xt:n,crc32:s,compressedSize:a,uncompressedSize:o,st:c,nt:d},l,{dataDescriptor:u,passThrough:w})=>{if(u||((!t||w&&s!==re)&&Ii(l,14,s),d||Ii(l,18,a),c||Ii(l,22,o)),r&&n){const t=$+Ni(e)+4;Oi(l,t,i(o)),Oi(l,t+8,i(a))}})(A,p.gt,a),await Ei(c,p.yt),await(async(e,t,r)=>{const n=t.writable.getWriter();try{await e.pipeTo(new D({async write(e){var t;await n.ready,await n.write(e),t=Ni(e),T+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(E.readable,c,u),c.size+=E.size,b=!1}else A.diskNumberStart=N,A.offset=_;return e.offset+=A.size,A}catch(r){if(b||z){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=T)}throw o.delete(t),r}finally{if(y&&e.qe--,S&&S(),x&&x(),y&&E&&E.dispose)try{await E.dispose()}catch{}}async function k(){e.Rt=!0;const{At:t}=e;e.At=new g(t=>x=()=>{e.Rt=!1,t()}),await t}async function C(){Fi(c,Ni(p.yt))&&await c.closeDisk()}})(e,t,n,{Ft:y,Et:x,Dt:S},s)}catch(r){throw e.files.delete(t),r}return r.assign(p,{name:t,comment:l,extraField:u}),new Jn(p)})(s,e,t,n),c.add(l),await l}catch(t){throw u&&s.Ve.delete(e),t}finally{c.delete(l);const e=hi.shift();e?e():pi--}}remove(e){const{Ve:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==re){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=ae,r={}){const{je:n,writer:s}=this,{writable:a}=s;if(Ni(e)>U)throw new w(ni);for(;n.size;)await g.allSettled(t.from(n));return await(async(e,r,n)=>{const s=(e=>{let t=0;for(const[,r]of e){const{rawFilename:e,Ge:n,rawComment:s,Je:i,Qe:a,rawExtraField:o,extendedTimestamp:c,ct:d,lastModDate:l,st:u,nt:f,uncompressedSize:p,compressedSize:h}=r,m=r.offset>=v,y=r.diskNumberStart>=U;let g,x;if(m||y||u||f){const e=4+(u?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=Si(e);t.uint16(1),t.uint16(e-4),u&&t.ft(p),f&&t.ft(h),m&&t.ft(r.offset),y&&t.uint32(r.diskNumberStart),g=t.array}else g=ae;r.Ye=g,r.it=m,r.ot=y;const S=Ai(l);if(c&&Ti(S)){const e=Si(9);e.uint16(H),e.uint16(5),e.uint8(d),e.uint32(S),x=e.array}else x=ae;r.Xe=x;const b=Ni(g,n,i,a,x,o);if(b>U)throw new w(ii);t+=46+Ni(e,s)+b}return t})(e.files),a=await(async(e,r,n)=>{const{files:s,writer:i}=e,a=new f(r);await ot(i);let o=0,c=0,d=bi(i),l=zi(i);for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,Ye:w,Ge:f,Xe:p,Je:h,Qe:m,rawExtraField:y,rawComment:g,versionMadeBy:x,$e:S,et:b,st:z,nt:F,ot:R,it:E,internalFileAttributes:D,externalFileAttributes:A,diskNumberStart:T,uncompressedSize:k,compressedSize:C}=r,I=Ni(w,f,p,h,m,y),O=46+Ni(u,g)+I;Fi(i,o+O-c)&&(await Ei(i,a.slice(c,o)),c=o,await i.closeDisk()),0==e&&(d=bi(i),l=zi(i)),z||Ii(b,18,k),F||Ii(b,14,C),(E||R)&&45>r.version&&Ui(b,0,45);const M=Si(O);if(M.uint32(_),M.uint16(x),M.bytes(S.subarray(0,24)),M.uint16(I),M.uint16(Ni(g)),M.uint16(R?U:T),M.uint16(D),M.uint32(A),M.uint32(E?v:t),M.bytes(u),M.bytes(w),M.bytes(f),M.bytes(p),M.bytes(h),M.bytes(m),M.bytes(y),M.bytes(g),Mi(a,M.array,o),o+=O,n.onprogress)try{await n.onprogress(e+1,s.size,new Jn(r))}catch{}}return await Ei(i,c?a.slice(c):a),{diskNumber:d,diskOffset:l}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{Tt:a}=n;let{kt:o}=n,c=e.files.size,d=a.diskNumber,l=Ri(e,a),u=bi(s);Fi(s,Z)&&u++;let f=Ci(e,r,Nn);if(!(v>l&&v>o&&U>c&&U>u)){if(!1===f)throw new w(li);f=!0}const p=Ni(t);if(p>U)throw new w(ni);const h=Si(f?98:Z);Fi(s,Ni(h.array)+p)&&await s.closeDisk(),u=bi(s),f&&(h.uint32(L),h.ft(44),h.uint16(45),h.uint16(45),h.uint32(u),h.uint32(d),h.ft(c),h.ft(c),h.ft(o),h.ft(l),h.uint32(W),h.uint32(u),h.ft(i(Ri(e,s))+i(o)),h.uint32(u+1),Ci(e,r,"supportZip64SplitFile",!0)&&(u=U,d=U),c=U,l=v,o=v),h.uint32(P),h.uint16(u),h.uint16(d),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(l),h.uint16(p),await Ei(s,h.array),p&&await Ei(s,t)})(e,r,n,{Tt:a,kt:s})})(this,e,r),Ci(this,r,as)||await a.getWriter().close(),s.getData?s.getData():a}}function yi(e){if(!e)return ae;let t=0,r=0;e.forEach(e=>t+=4+Ni(e));const n=new f(t),s=fe(n);return e.forEach((e,t)=>{if(t>U)throw new w("Extra field type exceeds 65535");if(Ni(e)>U)throw new w(ii);Ui(s,r,t),Ui(s,r+2,Ni(e)),Mi(n,e,r+4),r+=4+Ni(e)}),n}function gi(e,t){const{Ft:r}=e;let{yt:n,extraFieldLength:s}=r,i=64-(t+Ni(n))%64;4>i&&(i+=64);const a=new f(i),o=fe(a);Ui(o,0,j),Ui(o,2,i-4);const c=n;r.yt=n=new f(Ni(c)+i),Mi(n,c),Mi(n,a,Ni(c));const d=fe(n);Ui(d,28,s+i),r.gt=d,e.Dt+=i}function xi(e){if(e===re)return ae;{const t=new f(4);fe(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Si(e){const t=new f(e),r=fe(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{Ui(r,n,e),n+=2},uint32:e=>{Ii(r,n,e),n+=4},ft:e=>{Oi(r,n,i(e)),n+=8},bytes:e=>{Mi(t,e,n),n+=Ni(e)},ht:e=>n+=e}}function bi(e){const{diskNumber:t=0}=e;return t}function zi(e){const{diskOffset:t=0}=e;return t}function Fi(e,t){const{availableSize:r=ne}=e;return t>r}function Ri(e,{diskNumber:t=0,diskOffset:r=0}){return e.offset-r-(t?e.He:0)}async function Ei(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=Ni(t),await n.write(t)}finally{n.releaseLock()}}function Di(e){if(e){const t=(i(e.getTime())+i(116444736e5))*i(1e4);return ci>t?ci:t>di?di:t}}function Ai(e){return a.floor(e.getTime()/1e3)}function Ti(e){return e>=ai&&oi>=e}function ki(e){return a.min(oi,a.max(ai,e))}function Ci(e,t,r,n){const s=t[r]===re?e.options[r]:t[r];return s===re?n:s}function vi(e){return e+5*(a.floor(e/16383)+1)}function Ui(e,t,r){e.setUint16(t,r,!0)}function Ii(e,t,r){e.setUint32(t,r,!0)}function Oi(e,t,r){e.setBigUint64(t,r,!0)}function Mi(e,t,r){e.set(t,r)}function Ni(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function _i({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:i,rawLastModDate:a,rawFilename:o,nt:c,st:d,extraFieldLength:l}){const u=Si(26),w=u.array,f=fe(w);if(u.uint16(e),u.uint16(t),u.uint16(r),a===re){const e=new h(1),t=fe(e);Ui(t,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),Ui(t,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),a=e[0]}return u.uint32(a),u.ht(4),c||s!==re?u.uint32(c?v:s):u.ht(4),d||n!==re?u.uint32(d?v:n):u.ht(4),u.uint16(Ni(o)),u.uint16(l),{$e:w,et:f,rawLastModDate:a}}function Pi(e,t,r,n,s){let i=0;return t&&(i|=Y),r&&(i|=8),8!=s&&9!=s||(0>e||e>3||(i|=6),e>3&&5>=e&&(i|=4),9==e&&(i|=2)),n&&(i|=1),i}const Li="Entry filename already exists",Wi=new d([1,V,10,H,28789,25461,j,q,K,22613,13]);class Zi{constructor(e,t,n,s){const i=this;if(e.root&&s&&s.getChildByName(t))throw new w(Li);n||(n={}),r.assign(i,{fs:e,name:t,data:n.data,options:n.options,id:e.Ct++,parent:s,children:[],uncompressedSize:n.uncompressedSize||0,passThrough:n.passThrough}),!s&&e.root||(e.entries[i.id]=i),s&&i.parent.children.push(i)}moveTo(e){this.fs.move(this,e)}getFullname(){return this.getRelativeName()}getRelativeName(e=this.fs.root){let t=this.name,r=this.parent;for(;r&&r!=e;)t=(r.name?r.name+"/":"")+t,r=r.parent;return t}isDescendantOf(e){let t=this.parent;for(;t&&t.id!=e.id;)t=t.parent;return!!t}rename(e){const t=this.parent;if(t&&t.getChildByName(e))throw new w(Li);this.name=e}}class Bi extends Zi{constructor(e,t,r,n){super(e,t,r,n);const s=this;s.Reader=r.Reader,s.Writer=r.Writer,r.getData&&(s.getData=r.getData)}clone(){return new Bi(this.fs,this.name,this)}async getData(e,t={}){const r=this;if(!e||e.constructor==r.Writer&&r.data)return r.data;{const n=r.reader=Yi(r.Reader,r.data,t),s=r.data?r.data.uncompressedSize:n.size;await g.all([ot(n),ot(e,s)]);const{readable:i}=n;return r.uncompressedSize=n.size,await i.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return!(!this.data||!this.data.encrypted)}async checkPassword(e,t={}){const n=this;if(!n.isPasswordProtected())return!0;try{return await n.data.getData(null,r.assign({},t,{password:e,checkPasswordOnly:!0})),!0}catch(e){if(e.message==Ct)return!1;throw e}}getText(e,t){return this.getData(new Ne(e),t)}getBlob(e,t){return this.getData(new Oe(e),t)}getData64URI(e,t){return this.getData(new Ce(e),t)}getUint8Array(e){return this.getData(new rt,e)}getWritable(e=new D,t){return this.getData({writable:e},t)}async getArrayBuffer(e){return we(await this.getUint8Array(e)).buffer}replaceBlob(e){r.assign(this,{data:e,Reader:Ie,Writer:Oe,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:Me,Writer:Ne,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:ke,Writer:Ce,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:tt,Writer:rt,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:qi(e),Writer:null,reader:null})}}class Vi extends Zi{constructor(e,t,r,n){super(e,t,r,n),this.directory=!0}clone(e){const t=this,r=new Vi(t.fs,t.name,t);return e&&(r.children=t.children.map(t=>{const n=t.clone(e);return n.parent=r,n})),r}addDirectory(e,t){return ea(this,e,{options:t},!0)}addText(e,t,r={}){return ea(this,e,{data:t,Reader:Me,Writer:Ne,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return ea(this,e,{data:t,Reader:Ie,Writer:Oe,options:r,uncompressedSize:t.size})}addData64URI(e,t,r={}){let n=t.length;for(;"="==t.charAt(n-1);)n--;const s=t.indexOf(",")+1;return ea(this,e,{data:t,Reader:ke,Writer:Ce,options:r,uncompressedSize:a.floor(.75*(n-s))})}addUint8Array(e,t,r={}){return ea(this,e,{data:t,Reader:tt,Writer:rt,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return ea(this,e,{data:t,Reader:class extends et{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return ea(this,e,{Reader:qi(t),options:r})}addFileSystemEntry(e,t={}){return Ji(this,e,t)}addFileSystemHandle(e,t={}){return Ji(this,e,t)}addFile(e,t={}){return(t=r.assign({},t)).lastModDate||(t.lastModDate=new o(e.lastModified)),ea(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}vt(e,t){return ea(this,e,t)}importBlob(e,t){return this.importZip(new Ie(e),t)}importData64URI(e,t){return this.importZip(new ke(e),t)}importUint8Array(e,t){return this.importZip(new tt(e),t)}importHttpContent(e,t){return this.importZip(new et(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new Oe(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new Ce(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new rt,e)}async exportWritable(e=new D,t={}){return await this.exportZip({writable:e},t),e}exportFileSystemHandle(e,n={}){return(async(e,n,s)=>{const i=ji([e],"uncompressedSize"),a=new c;return await o(e,n),n;async function o(e,t){if(s.concurrent){const r=(await g.allSettled(e.children.map(e=>d(e,t)))).find(e=>"rejected"==e.status);if(r)throw r.reason}else for(const r of e.children)await d(r,t)}async function d(e,n){try{if(e.directory){const t=await n.getDirectoryHandle(e.name,{create:!0});await o(e,t)}else{const o=await n.getFileHandle(e.name,{create:!0}),c=await o.createWritable();await e.getData({writable:c},r.assign({},s,{onprogress:async r=>{if(s.onprogress){a.set(e.id,r);try{await s.onprogress(t.from(a.values()).reduce((e,t)=>e+t,0),i)}catch{}}}}))}}catch(t){throw new w(t.message+(e?" ("+e.name+")":""),{cause:t})}}})(this,e,n)}async importZip(e,t={}){await ot(e);const n=new ks(e,t),s=[],i=await n.getEntries();for(const e of i){let n=this;try{const i=e.filename.split("/"),a=i.pop();if(i.forEach(e=>{const t=n;if(n=n.getChildByName(e),n){if(!n.directory)throw new w(Li)}else n=new Vi(this.fs,e,{data:null},t),s.push(n)}),e.directory){let t=n;if(a)if(t=n.getChildByName(a),t){if(!t.directory)throw new w(Li)}else t=new Vi(this.fs,a,{data:null},n),s.push(t);t==this||t.data||(t.data=e)}else s.push(ea(n,a,{data:e,Reader:Ki(r.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch{}throw t}}return s}async exportZip(e,n={}){const s=this;(n=r.assign({},n)).bufferedWrite===re&&(n.bufferedWrite=!0);const[i]=await g.all([Gi(s,n.readerOptions),ot(e)]),a=new mi(e,n);return await(async(e,n,s,i,a)=>{const o=n,d=new c;await async function e(n,l){async function u(l){const u=i.relativePath?l.getRelativeName(o):l.getFullname(),w=l.options||{};let f={};if(l.data instanceof Jn){const{externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:a,lastAccessDate:o,uncompressedSize:d,encrypted:u,zipCrypto:w,crc32:p,compressionMethod:h,extraFieldAES:m,internalFileAttributes:y,extraField:g,uid:x,gid:S}=l.data;f={externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:a,lastAccessDate:o,internalFileAttributes:y};const b=(e=>{if(e){const t=new c;if(e.forEach((e,r)=>{Wi.has(r)||t.set(r,e.data)}),t.size)return t}})(g);if(b&&(f.extraField=b),x===re&&S===re||r.assign(f,{uid:x,gid:S,unixExtraFieldType:i.unixExtraFieldType||"infozip"}),l.passThrough){let e,t;0===h&&(e=0),m&&(t=m.strength),f=r.assign(f,{passThrough:!0,encrypted:u,zipCrypto:w,crc32:p,uncompressedSize:d,level:e,encryptionStrength:t,compressionMethod:h})}}await n.add(u,a.get(l),r.assign({},i,f,w,{directory:l.directory,onprogress:async e=>{if(i.onprogress){d.set(u,e);try{await i.onprogress(t.from(d.values()).reduce((e,t)=>e+t),s)}catch{}}}})),await e(n,l)}await(async()=>{if(i.bufferedWrite){const e=(await g.allSettled(l.children.map(u))).find(e=>"rejected"==e.status);if(e)throw e.reason}else for(const e of l.children)await u(e)})()}(e,n)})(a,s,ji([s],"uncompressedSize"),n,i),await a.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let r=0;r<t.length;r++){const n=t[r];if(n.name==e)return n}}isPasswordProtected(){const e=this.children;for(let t=0;t<e.length;t++)if(e[t].isPasswordProtected())return!0;return!1}async checkPassword(e,t={}){const r=this.children;return!(await g.all(r.map(r=>r.checkPassword(e,t)))).includes(!1)}}const Hi={FS:class{constructor(){$i(this)}get children(){return this.root.children}remove(e){Xi(e);const t=[e];for(;t.length;){const e=t.pop();this.entries[e.id]=null;for(const r of e.children)t.push(r)}e.parent=re}move(e,t){if(e==this.root)throw new w("Root directory cannot be moved");if(!t.directory)throw new w("Target entry is not a directory");if(t.isDescendantOf(e))throw new w("Entry is a ancestor of target entry");if(e!=t){const r=t.getChildByName(e.name);if(r){if(r!=e)throw new w(Li)}else Xi(e),e.parent=t,t.children.push(e),((e,t)=>{const r=[t];for(;r.length;){const t=r.pop();e.entries[t.id]=t;for(const e of t.children)r.push(e)}})(this,e)}}find(e){const t=e.split("/");let r=this.root;for(let e=0;r&&e<t.length;e++)r=r.getChildByName(t[e]);return r||(r=this.entries.find(t=>t&&(t==this.root||t.isDescendantOf(this.root))&&t.getRelativeName()==e)),r}getById(e){return this.entries[e]}getChildByName(e){return this.root.getChildByName(e)}addDirectory(e,t){return this.root.addDirectory(e,t)}addText(e,t,r){return this.root.addText(e,t,r)}addBlob(e,t,r){return this.root.addBlob(e,t,r)}addData64URI(e,t,r){return this.root.addData64URI(e,t,r)}addUint8Array(e,t,r){return this.root.addUint8Array(e,t,r)}addHttpContent(e,t,r){return this.root.addHttpContent(e,t,r)}addReadable(e,t,r){return this.root.addReadable(e,t,r)}addFileSystemEntry(e,t){return this.root.addFileSystemEntry(e,t)}addFileSystemHandle(e,t){return this.root.addFileSystemHandle(e,t)}addFile(e,t){return this.root.addFile(e,t)}vt(e,t){return this.root.vt(e,t)}importBlob(e,t){return $i(this),this.root.importBlob(e,t)}importData64URI(e,t){return $i(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return $i(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return $i(this),this.root.importHttpContent(e,t)}importReadable(e,t){return $i(this),this.root.importReadable(e,t)}importZip(e,t){return $i(this),this.root.importZip(e,t)}exportBlob(e){return this.root.exportBlob(e)}exportData64URI(e){return this.root.exportData64URI(e)}exportUint8Array(e){return this.root.exportUint8Array(e)}exportWritable(e,t){return this.root.exportWritable(e,t)}exportFileSystemHandle(e,t){return this.root.exportFileSystemHandle(e,t)}exportZip(e,t){return this.root.exportZip(e,t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(e,t){return this.root.checkPassword(e,t)}},ZipDirectoryEntry:Vi,ZipFileEntry:Bi};function ji(e,r){let n=0;const s=t.from(e);for(;s.length;){const e=s.pop();n+=e[r]||0;for(const t of e.children)s.push(t)}return n}function qi(e){let t;return()=>{if(t)throw new w("Readable stream already consumed");return t=!0,{readable:e}}}function Ki(e){return class extends Ae{constructor(e,t={}){super(),this.entry=e,this.options=t}async init(){const t=this;t.size=t.entry.uncompressedSize;const n=await t.entry.getData(new Oe,r.assign({},e,t.options));t.data=n,t.Ut=new Ie(n),super.init()}readUint8Array(e,t){return this.Ut.readUint8Array(e,t)}}}function Yi(e,t,r){return e.prototype?new e(t,r):e(t,r)}async function Gi(e,t){const r=[],n=[e],s=new c;for(;n.length;){const e=n.pop();for(const t of e.children)t.directory?n.push(t):r.push(t)}return await g.all(r.map(async e=>{const r=e.reader=Yi(e.Reader,e.data,t);s.set(e,r);try{await ot(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch{}throw t}r.size!==re&&(e.uncompressedSize=r.size)})),s}function Xi(e){if(e.parent){const t=e.parent.children;t.forEach((r,n)=>{r.id==e.id&&t.splice(n,1)})}}function Ji(e,t,n){return async function e(t,s,i){if(s)try{if((s.isFile||s.isDirectory)&&(s=await Qi(s)),"file"==s.kind){const e=await s.getFile();i.push(t.vt(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:r.assign({},{lastModDate:new o(e.lastModified)},n),uncompressedSize:e.size}))}else if("directory"==s.kind){const r=t.addDirectory(s.name);i.push(r);for await(const t of s.values())await e(r,t,i)}}catch(e){const t=e.message+(s?" ("+s.name+")":"");throw new w(t,{cause:e})}return i}(e,t,[])}async function Qi(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new g((t,r)=>e.file(t,r))),e.isDirectory){t.kind="directory";const r=await(async e=>{const t=[];function r(e,n,s){e.readEntries(async i=>{if(i.length){for(const e of i)t.push(await Qi(e));r(e,n,s)}else n(t)},s)}return await new g((t,n)=>r(e.createReader(),t,n)),{[Symbol.iterator](){let e=0;return{next(){const r={value:t[e],done:e==t.length};return e++,r}}}}})(e);t.values=()=>r}return t}function $i(e){e.entries=[],e.Ct=0,e.root=new Vi(e)}function ea(e,t,r,n){if(e.directory)return n?new Vi(e.fs,t,r,e):new Bi(e.fs,t,r,e);throw new w("Parent entry is not a directory")}e.fs=Hi});
1
+ ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:n,Number:s,BigInt:i,Math:a,Date:o,Map:c,Set:d,Response:l,URL:u,Error:w,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:x,TextDecoder:S,document:b,crypto:z,btoa:F,TransformStream:R,ReadableStream:E,WritableStream:D,CompressionStream:A,DecompressionStream:k,navigator:T,Worker:C}="undefined"!=typeof globalThis?globalThis:this||self,v=4294967295,U=65535,I=255,O=67324752,M=134695760,N=M,_=33639248,P=101010256,L=101075792,W=117853008,B=22,Z=20,V=39169,H=21589,j=6534,q=30837,K=30805,Y=2048,G=16384,X=2048,J=1024,Q="/",$=30,ee=new o(2107,11,31,23,59,58),te=new o(1980,0,1),re=void 0,ne=1/0,se="undefined",ie="function",ae=new f;let oe=2;try{typeof T!=se&&T.hardwareConcurrency&&(oe=T.hardwareConcurrency)}catch{}const ce={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:oe,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof A!=se&&A,DecompressionStream:typeof k!=se&&k};function de(){return ce}function le(e){return a.max(e.chunkSize,64)}function ue(e,t){const r=new f(e.length+t.length);return r.set(e),r.set(t,e.length),r}function we(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function fe(e){return new m(e.buffer,e.byteOffset,e.byteLength)}function pe(e){if(e instanceof E)return e;const t=e.getReader();return new E({async pull(e){const{value:r,done:n}=await t.read();n?e.close():e.enqueue(r)},cancel:e=>t.cancel(e)})}function he(e){if(e instanceof D)return e;const t=e.getWriter();return new D({write:e=>t.write(e),close:()=>t.close(),abort:e=>t.abort(e)})}const me="HTTP error ",ye="HTTP Range not supported",ge="HTTP resource changed",xe="Content-Range",Se="Range",be="GET",ze="bytes",Fe=16777216,Re="writable",Ee=Symbol();class De{constructor(){this.size=0}init(){this.initialized=!0}}class Ae extends De{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:r=le(de())}={}){const n=this;let s=0;return new E({async pull(i){const o=t===re?r:a.min(r,t-s),c=await ct(n,e+s,o);i.enqueue(c),s+r>t||t===re&&!c.length&&o?i.close():s+=r}})}}class ke extends De{constructor(){super();const e=this,t=new D({write(t){if(!e.initialized)throw new w("Writer not initialized");return e.writeUint8Array(we(t))}});r.defineProperty(e,Re,{get:()=>t})}writeUint8Array(){}}class Te extends Ae{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,o:n,size:a.floor(.75*(t-n))})}readUint8Array(e,t){const{o:r,dataURI:n}=this,s=new f(t),i=4*a.floor(e/3),o=atob(n.substring(i+r,4*a.ceil((e+t)/3)+r)),c=e-3*a.floor(i/4);let d=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),d++;return d<s.length?s.subarray(0,d):s}}class Ce extends ke{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,s=t.pending;const i=t.pending.length;for(t.pending="",r=0;r<3*a.floor((i+e.length)/3)-i;r++)s+=n.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=n.fromCharCode(e[r]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}}let ve,Ue;class Ie extends Ae{constructor(e){super(),r.assign(this,{blob:e,size:e.size}),Ue||(Ue=(async()=>{try{const e=new y([new f(3)]).slice(1,2).stream().getReader();let t=0,r=await e.read();for(;!r.done;)t+=r.value.length,r=await e.read();ve=1==t}catch{ve=!1}})())}createReadable(e){const{blob:t,size:r}=this,{offset:n=0,size:s=r-n}=e||{};return n||r>s?ve?pe(t.slice(n,n+s).stream()):super.createReadable(e):pe(t.stream())}async readUint8Array(e,t){const r=this,n=e+t,s=e||n<r.size?r.blob.slice(e,n):r.blob;let i=await s.arrayBuffer();return i.byteLength>t&&(i=i.slice(e,n)),new f(i)}}class Oe extends De{constructor(e){super();const t=this,n=new R;if(r.defineProperty(t,Re,{get:()=>n.writable}),typeof y.prototype.stream!=ie||new y([]).stream()instanceof E){const r=[];e&&r.push(["Content-Type",e]),t.blob=new l(n.readable,{headers:r}).blob()}else{const r=[];t.blob=n.readable.pipeTo(new D({write(e){r.push(e)}})).then(()=>new y(r,{type:e}))}t.blob.catch(()=>{})}getData(){return this.blob}}class Me extends Ie{constructor(e){super(new y([e],{type:"text/plain"}))}}class Ne extends Oe{constructor(e){super(e),r.assign(this,{encoding:e,l:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,l:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new g((s,i)=>{r.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>i(t.error)}),t.readAsText(n,e)})}}}class _e extends Ae{constructor(e,t){super(),Le(this,e,t)}async init(){await We(this,Qe,Ye),super.init()}createReadable(e){const t=this,{useRangeHeader:r,forceRangeRequests:n,size:i}=t;if((r||n)&&i!==re){const{offset:r=0,size:n=i-r}=e||{};if(n>0&&i>r)return((e,t,r)=>{let n,i=t,o=0,c=r;return new E({start:()=>d(),async pull(e){n||await d();const{value:t,done:r}=await n.read();if(r)throw new w(ye);const s=t.length>o?t.subarray(0,o):t;o-=s.length,c-=s.length,s.length&&e.enqueue(s),o||(await(async()=>{const e=n;n=re,await e.cancel()})(),c||e.close())},cancel:e=>n&&n.cancel(e)});async function d(){const t=a.min(e.maximumRangeSize,c),r=await Qe(be,e,qe(e,i,t));if(206!=r.status)throw new w(ye);const d=r.headers.get(xe);if(d){const e=s(d.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=i)throw new w(ye)}je(e,r),He(e,r),i+=t,o=t,n=r.body.getReader()}})(t,r,a.min(n,i-r))}return super.createReadable(e)}readUint8Array(e,t){return Be(this,e,t,Qe,Ye)}}class Pe extends Ae{constructor(e,t){super(),Le(this,e,t)}async init(){await We(this,$e,Ge),super.init()}readUint8Array(e,t){return Be(this,e,t,$e,Ge)}}function Le(e,t,n){const{preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:d=Fe,fetch:l}=n;delete(n=r.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.checkResourceChanges,delete n.maximumRangeSize,delete n.useXHR,delete n.fetch,r.assign(e,{url:t,options:n,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c,maximumRangeSize:d,fetch:l})}async function We(e,t,r){const{url:n,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=de(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(n)&&(i||a)&&(void 0===s||s)){const n=await t(be,e,qe(e,o?-22:void 0)),s=n.headers.get("Accept-Ranges");if(!(a||s&&s.toLowerCase()==ze))throw new w(ye);{if(o){const t=new f(await n.arrayBuffer());206==n.status&&t.length==B&&(e.h=t)}He(e,n);const s=Ze(n);s===re?await Je(e,t,r):e.size=s}}else await Je(e,t,r)}async function Be(e,t,r,n,i){const{useRangeHeader:a,forceRangeRequests:o,h:c,size:d,options:l}=e;if(a||o){if(c&&t==d-B&&r==B)return c;if(d>t&&0!==r){t+r>d&&(r=d-t);const i=await n(be,e,qe(e,t,r));if(206!=i.status)throw new w(ye);const a=i.headers.get(xe);if(a){const e=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(ye)}je(e,i),He(e,i);const o=new f(await i.arrayBuffer());if(o.length!=r)throw new w(ye);return o}return ae}{const{data:n}=e;return n||await i(e,l),e.data.subarray(t,t+r)}}function Ze(e){const t=e.headers.get(xe);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function Ve({headers:e}){return{m:e.get("Etag")||re,lastModified:e.get("Last-Modified")||re}}function He(e,t){const{checkResourceChanges:r,S:n}=e;r&&!n&&206==t.status&&(e.S=Ve(t))}function je(e,t){const{checkResourceChanges:n,S:s,size:i}=e;if(n){const e=Ze(t);if(e!==re&&i!==re&&e!=i)throw new w(ge);if(s){const e=Ve(t);if(r.entries(s).some(([t,r])=>r!==re&&e[t]!==re&&r!=e[t]))throw new w(ge)}}}function qe(e,t=0,n=1){return r.assign({},Ke(e),{[Se]:ze+"="+(0>t?t:t+"-"+(t+n-1))})}function Ke({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Ye(e){await Xe(e,Qe)}async function Ge(e){await Xe(e,$e)}async function Xe(e,t){const r=await t(be,e,Ke(e));e.data=new f(await r.arrayBuffer()),e.size=e.data.length}async function Je(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,Ke(e)),i=n.headers.get("Content-Length");i&&!n.headers.get("Content-Encoding")?e.size=s(i):await r(e,e.options)}}async function Qe(e,{fetch:t=fetch,options:n,url:s},i){const a=await t(s,r.assign({},n,{method:e,headers:i}));if(400>a.status)return a;throw 416==a.status?new w(ye):new w(me+(a.statusText||a.status))}function $e(e,{url:t},n){return new g((s,i)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const e=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),s({status:a.status,arrayBuffer:()=>a.response,headers:new c(e)})}else i(416==a.status?new w(ye):new w(me+(a.statusText||a.status)))},!1),a.addEventListener("error",e=>i(e.detail?e.detail.error:new w("Network error")),!1),a.open(e,t),n)for(const e of r.entries(n))a.setRequestHeader(e[0],e[1]);a.responseType="arraybuffer",a.send()})}class et extends Ae{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Pe(e,t):new _e(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class tt extends Ae{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)}}class rt extends ke{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const n=t.array;t.array=new f(e),t.array.set(n)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}}class nt extends Ae{constructor(e){super(),this.F=e}async init(){const e=this,{F:t}=e;e.R=0,await g.all(t.map(e=>ot(e))),e.D=t.map(t=>{const r=e.size;return e.size+=t.size,r}),super.init()}A(e){const{D:t,size:r}=this,n=t[e];return n===re?r:n}async readUint8Array(e,t){const r=this,{F:n}=this;let s,i=0,o=e;for(;n[i]&&o>=n[i].size;)o-=n[i].size,i++;const c=n[i];if(c){const n=c.size;if(o+t>n){const i=n-o;s=ue(await ct(c,o,i),await r.readUint8Array(e+i,t-i))}else s=await ct(c,o,t)}else s=ae;return r.R=a.max(i,r.R),s}}class st extends De{constructor(e,t=4294967295){super();const n=this;let s,i,a;r.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new D({async write(t){if(t===Ee)return void(a&&await d());const{availableSize:r}=n;if(a)t.length<r?await c(t):(await c(t.subarray(0,r)),await d(),t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new w("Writer iterator completed too soon");s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await ot(s),i=r.writable,a=i.getWriter(),await this.write(t)}},async close(){a&&(await a.ready,await l())},async abort(e){a&&await a.abort(e)}});async function c(e){const t=e.length;t&&(await a.ready,await a.write(e),s.size+=t,n.availableSize-=t)}async function d(){await l(),n.diskOffset+=s.size,n.diskNumber++,a=null,n.availableSize=n.maxSize}async function l(){await a.close()}r.defineProperty(n,Re,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(Ee)}finally{e.releaseLock()}}}class it{constructor(e){return t.isArray(e)&&(e=new nt(e)),(e instanceof E||typeof e.getReader==ie)&&(e={readable:pe(e)}),e}}class at{constructor(e){return e.writable===re&&typeof e.next==ie&&(e=new st(e)),(e instanceof D||typeof e.getWriter==ie)&&(e={writable:he(e)}),e.size===re&&(e.size=0),e}}async function ot(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function ct(e,t,r){return e.readUint8Array(t,r)}const dt=new c,lt=new c;function ut(e){return dt.get(e)}function wt(e){return lt.get(e)}const ft=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;ft[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=ft[t-1][e];ft[t][e]=r>>>8^ft[0][255&r]}const[pt,ht,mt,yt,gt,xt,St,bt]=ft;class zt{constructor(e){this.T=e||-1}append(e){let t=0|this.T;const r=0|e.length;let n=0;if(r>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,r),i=r-8;for(;i>=n;n+=8){const e=t^s.getInt32(n,!0),r=s.getInt32(n+4,!0);t=bt[255&e]^St[e>>>8&255]^xt[e>>>16&255]^gt[e>>>24&255]^yt[255&r]^mt[r>>>8&255]^ht[r>>>16&255]^pt[r>>>24&255]}}for(;r>n;n++)t=t>>>8^pt[255&(t^e[n])];this.T=t}get(){return~this.T}}class Ft extends R{constructor(){let e;const t=new zt;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 Rt(e){if(typeof x==se){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 x).encode(e)}const Et={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=Et.C(r);return 32===n?e.concat(t):Et.v(t,n,0|r,e.slice(0,e.length-1))},U(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+Et.C(r)},I(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,a.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=Et.O(t,e[r-1]&2147483648>>t-1,1)),e},O:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,C:e=>a.round(e/1099511627776)||32,v(e,t,r,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(r),r=0;if(0===t)return n.concat(e);for(let s=0;s<e.length;s++)n.push(r|e[s]>>>t),r=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=Et.C(s);return n.push(Et.O(t+i&31,t+i>32?r:n.pop(),1)),n}},Dt={bytes:{M(e){const t=Et.U(e)/8,r=new f(t);let n;for(let s=0;t>s;s++)3&s||(n=e[s/4]),r[s]=n>>>24,n<<=8;return r},N(e){const t=[];let r,n=0;for(r=0;r<e.length;r++)n=n<<8|e[r],3&~r||(t.push(n),n=0);return 3&r&&t.push(Et.O(8*(3&r),n)),t}}},At=class{constructor(e){const t=this;t.blockSize=512,t._=[1732584193,4023233417,2562383102,271733878,3285377520],t.P=[1518500249,1859775393,2400959708,3395469782],e?(t.L=e.L.slice(0),t.W=e.W.slice(0),t.B=e.B):t.reset()}reset(){const e=this;return e.L=e._.slice(0),e.W=[],e.B=0,e}update(e){const t=this;"string"==typeof e&&(e=Dt.Z.N(e));const r=t.W=Et.concat(t.W,e),n=t.B,s=t.B=n+Et.U(e);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const i=new h(r);let a=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);s>=e;e+=t.blockSize)t.V(i.subarray(16*a,16*(a+1))),a+=1;return r.splice(0,16*a),t}H(){const e=this;let t=e.W;const r=e.L;t=Et.concat(t,[Et.O(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(a.floor(e.B/4294967296)),t.push(0|e.B);t.length;)e.V(t.splice(0,16));return e.reset(),r}j(e,t,r,n){return e>19?e>39?e>59?e>79?void 0:t^r^n:t&r|t&n|r&n:t^r^n:t&r|~t&n}K(e,t){return t<<e|t>>>32-e}V(e){const r=this,n=r.L,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let i=n[0],o=n[1],c=n[2],d=n[3],l=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r.K(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r.K(5,i)+r.j(e,o,c,d)+l+s[e]+r.P[a.floor(e/20)]|0;l=d,d=c,c=r.K(30,o),o=i,i=t}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+c|0,n[3]=n[3]+d|0,n[4]=n[4]+l|0}},kt={importKey:e=>new kt.Y(Dt.bytes.N(e)),G(e,t,r,n){if(r=r||1e4,0>n||0>r)throw new w("invalid params to pbkdf2");const s=1+(n>>5)<<2;let i,a,o,c,d;const l=new ArrayBuffer(s),u=new m(l);let f=0;const p=Et;for(t=Dt.bytes.N(t),d=1;(s||1)>f;d++){for(i=a=e.encrypt(p.concat(t,[d])),o=1;r>o;o++)for(a=e.encrypt(a),c=0;c<a.length;c++)i[c]^=a[c];for(o=0;(s||1)>f&&o<i.length;o++)u.setInt32(f,i[o]),f+=4}return l.slice(0,n/8)},Y:class{constructor(e){const t=this,r=t.X=At,n=[[],[]];t.J=[new r,new r];const s=t.J[0].blockSize/32;e.length>s&&(e=(new r).update(e).H());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.J[0].update(n[0]),t.J[1].update(n[1]),t.$=new r(t.J[0])}reset(){const e=this;e.$=new e.X(e.J[0]),e.ee=!1}update(e){this.ee=!0,this.$.update(e)}digest(){const e=this,t=e.$.H(),r=new e.X(e.J[1]).update(t).H();return e.reset(),r}encrypt(e){if(this.ee)throw new w("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},Tt=typeof z!=se&&typeof z.getRandomValues==ie,Ct="Invalid password",vt="Invalid signature",Ut=vt,It="zipjs-abort-check-password";function Ot(e){if(Tt)return z.getRandomValues(e);throw new w("Crypto API not supported")}const Mt=16,Nt={name:"PBKDF2"},_t=r.assign({hash:{name:"HMAC"}},Nt),Pt=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Nt),Lt=["deriveBits"],Wt=[8,12,16],Bt=[16,24,32],Zt=10,Vt=[0,0,0,0],Ht=typeof z!=se,jt=Ht&&z.subtle,qt=Ht&&typeof jt!=se,Kt=Dt.bytes,Yt=class{constructor(e){const t=this;t.te=[[[],[],[],[],[]],[[],[],[],[],[]]],t.te[0][0][0]||t.re();const r=t.te[0][4],n=t.te[1],s=e.length;let i,a,o,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(t.P=[a=e.slice(0),o=[]],i=s;4*s+28>i;i++){let e=a[i-1];(i%s===0||8===s&&i%s===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],i%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),a[i]=a[i-s]^e}for(let e=0;i;e++,i--){const t=a[3&e?i:i-4];o[e]=4>=i||4>e?t:n[0][r[t>>>24]]^n[1][r[t>>16&255]]^n[2][r[t>>8&255]]^n[3][r[255&t]]}}encrypt(e){return this.ne(e,0)}decrypt(e){return this.ne(e,1)}re(){const e=this.te[0],t=this.te[1],r=e[4],n=t[4],s=[],i=[];let a,o,c,d;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=a=0;!r[l];l^=o||1,a=i[a]||1){let i=a^a<<1^a<<2^a<<3^a<<4;i=i>>8^255&i^99,r[l]=i,n[i]=l,d=s[c=s[o=s[l]]];let u=16843009*d^65537*c^257*o^16843008*l,w=257*s[i]^16843008*i;for(let r=0;4>r;r++)e[r][l]=w=w<<24^w>>>8,t[r][i]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}ne(e,t){if(4!==e.length)throw new w("invalid aes block size");const r=this.P[t],n=r.length/4-2,s=[0,0,0,0],i=this.te[t],a=i[0],o=i[1],c=i[2],d=i[3],l=i[4];let u,f,p,h=e[0]^r[0],m=e[t?3:1]^r[1],y=e[2]^r[2],g=e[t?1:3]^r[3],x=4;for(let e=0;n>e;e++)u=a[h>>>24]^o[m>>16&255]^c[y>>8&255]^d[255&g]^r[x],f=a[m>>>24]^o[y>>16&255]^c[g>>8&255]^d[255&h]^r[x+1],p=a[y>>>24]^o[g>>16&255]^c[h>>8&255]^d[255&m]^r[x+2],g=a[g>>>24]^o[h>>16&255]^c[m>>8&255]^d[255&y]^r[x+3],x+=4,h=u,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=l[h>>>24]<<24^l[m>>16&255]<<16^l[y>>8&255]<<8^l[255&g]^r[x++],u=h,h=m,m=y,y=g,g=u;return s}},Gt=class{constructor(e,t){this.se=e,this.ie=t,this.ae=t}reset(){this.ae=this.ie}update(e){return this.oe(this.se,e,this.ae)}ce(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}return e}de(e){0===(e[0]=this.ce(e[0]))&&(e[1]=this.ce(e[1]))}oe(e,t,r){let n;if(!(n=t.length))return[];const s=Et.U(t);for(let s=0;n>s;s+=4){this.de(r);const n=e.encrypt(r);t[s]^=n[0],t[s+1]^=n[1],t[s+2]^=n[2],t[s+3]^=n[3]}return Et.I(t,s)}},Xt=kt.Y;let Jt=Ht&&qt&&typeof jt.importKey==ie,Qt=Ht&&qt&&typeof jt.deriveBits==ie;class $t extends R{constructor({password:e,rawPassword:t,encryptionStrength:r,checkPasswordOnly:n,checkAuthenticationCode:s=!0}){super({start(){tr(this,e,t,r)},async transform(e,t){const r=this,{password:s,strength:i,le:a,ready:o}=r;s?(await(async(e,t,r,n)=>{const s=await nr(e,t,r,ir(n,0,Wt[t])),i=ir(n,Wt[t]);if(s[0]!=i[0]||s[1]!=i[1])throw new w(Ct)})(r,i,s,ir(e,0,Wt[i]+2)),e=ir(e,Wt[i]+2),n?t.error(new w(It)):a()):await o;const c=new f(e.length-Zt-(e.length-Zt)%Mt);t.enqueue(rr(r,e,c,0,Zt,!0))},async flush(e){const{ue:t,we:r,pending:n,ready:i}=this;if(r&&t){await i;const a=ir(n,0,n.length-Zt),o=ir(n,n.length-Zt);let c=ae;if(a.length){const e=or(Kt,a);r.update(e);const n=t.update(e);c=ar(Kt,n)}const d=ir(ar(Kt,r.digest()),0,Zt);let l=n.length<Zt?1:0;for(let e=0;Zt>e;e++)l|=d[e]^o[e];if(l&&s)throw new w(Ut);e.enqueue(c)}}})}}class er extends R{constructor({password:e,rawPassword:t,encryptionStrength:r}){super({start(){tr(this,e,t,r)},async transform(e,t){const r=this,{password:n,strength:s,le:i,ready:a}=r;let o=ae;n?(o=await(async(e,t,r)=>{const n=Ot(new f(Wt[t]));return ue(n,await nr(e,t,r,n))})(r,s,n),i()):await a;const c=new f(o.length+e.length-e.length%Mt);c.set(o,0),t.enqueue(rr(r,e,c,o.length,0))},async flush(e){const{ue:t,we:r,pending:n,ready:s}=this;if(r&&t){await s;let i=ae;if(n.length){const e=t.update(or(Kt,n));r.update(e),i=ar(Kt,e)}const a=ar(Kt,r.digest()).slice(0,Zt);e.enqueue(ue(i,a))}}})}}function tr(e,t,n,s){r.assign(e,{ready:new g(t=>e.le=t),password:sr(t,n),strength:s-1,pending:ae})}function rr(e,t,r,n,s,i){const{ue:a,we:o,pending:c}=e;c.length&&(t=ue(c,t));const d=t.length-s;let l;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,n+(d-d%Mt)),l=0;d-Mt>=l;l+=Mt){const e=or(Kt,ir(t,l,l+Mt));i&&o.update(e);const s=a.update(e);i||o.update(s),r.set(ar(Kt,s),l+n)}return e.pending=ir(t,l),r}async function nr(e,n,s,i){e.password=null;const a=await(async(e,t,r,n,s)=>{if(!Jt)return kt.importKey(t);try{return await jt.importKey("raw",t,r,!1,s)}catch{return Jt=!1,kt.importKey(t)}})(0,s,_t,0,Lt),o=await(async(e,t,r)=>{if(!Qt)return kt.G(t,e.salt,Pt.iterations,r);try{return await jt.deriveBits(e,t,r)}catch{return Qt=!1,kt.G(t,e.salt,Pt.iterations,r)}})(r.assign({salt:i},Pt),a,8*(2*Bt[n]+2)),c=new f(o),d=or(Kt,ir(c,0,Bt[n])),l=or(Kt,ir(c,Bt[n],2*Bt[n])),u=ir(c,2*Bt[n]);return r.assign(e,{keys:{key:d,fe:l,passwordVerification:u},ue:new Gt(new Yt(d),t.from(Vt)),we:new Xt(l)}),u}function sr(e,t){return t===re?Rt(e):t}function ir(e,t,r){return e.subarray(t,r)}function ar(e,t){return e.M(t)}function or(e,t){return e.N(t)}class cr extends R{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){lr(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=ur(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t[11]^r.passwordVerification))throw new w(Ct);e=e.subarray(12)}n?t.error(new w(It)):t.enqueue(ur(r,e))}})}}class dr extends R{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){lr(this,e,t,r)},transform(e,t){const r=this;let n,s;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const t=Ot(new f(12));t[11]=r.passwordVerification,n=new f(e.length+t.length),n.set(wr(r,t),0),s=12}else n=new f(e.length),s=0;n.set(wr(r,e),s),t.enqueue(n)}})}}function lr(e,t,n,s){r.assign(e,{password:t,rawPassword:n,passwordVerification:s}),((e,t,n)=>{const s=[305419896,591751049,878082192];if(r.assign(e,{keys:s,pe:new zt(s[0]),he:new zt(s[2])}),n)for(let t=0;t<n.length;t++)fr(e,n[t]);else for(let r=0;r<t.length;r++)fr(e,t.charCodeAt(r))})(e,t,n)}function ur(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=pr(e)^t[n],fr(e,r[n]);return r}function wr(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=pr(e)^t[n],fr(e,t[n]);return r}function fr(e,t){let[,r]=e.keys;e.pe.append([t]);const n=~e.pe.get();r=mr(a.imul(mr(r+hr(n)),134775813)+1),e.he.append([r>>>24]);const s=~e.he.get();e.keys=[n,r,s]}function pr(e){const t=2|e.keys[2];return hr(a.imul(t,1^t)>>>8)}function hr(e){return 255&e}function mr(e){return 4294967295&e}const yr="Invalid uncompressed size",gr="Invalid compressed data",xr=vt,Sr="deflate-raw",br="gzip",zr=[31,139,8];class Fr extends R{constructor(e,{chunkSize:t,CompressionStreamFallback:r,CompressionStream:n}){super({});const{compressed:s,encrypted:i,useCompressionStream:a,zipCrypto:o,computeCrc32:c,level:d,deflate64:l,format:u,compressionMethod:w}=e,f=this;let p,h,y,g=super.readable;const x=u&&wt(u),S=c&&s&&!l&&!x&&(!i||o)&&!(!a||!n);if(i&&!o||!c||S||(p=new Ft,g=Ur(g,p)),s)if(x)g=Ir(g,Cr(x.CompressionStream,u,{level:d,chunkSize:t,compressionMethod:w}));else if(S)y=new Rr,g=Ir(g,new n(br)),g=Ur(g,y);else try{g=vr(g,a,{level:d,chunkSize:t},n,r)}catch(e){let t;try{t=new n(br)}catch{throw e}g=Ir(g,t),g=Ur(g,new Rr)}i&&(o?g=Ur(g,new dr(e)):(h=new er(e),g=Ur(g,h))),Tr(f,g,()=>{i&&!o||!c||(f.crc32=S?y.crc32:new m(p.value.buffer).getUint32(0))})}}class Rr extends R{constructor(){let e,t=10,r=new f(0);super({transform(e,n){if(t){const r=a.min(t,e.length);if(t-=r,!(e=e.subarray(r)).length)return}const s=r.length+e.length;if(8>=s)return void(r=ue(r,e));const i=s-8,o=a.min(i,r.length);n.enqueue(ue(r.subarray(0,o),e.subarray(0,i-o))),r=ue(r.subarray(o),e.subarray(i-o))},flush(){const t=fe(r);e.crc32=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class Er extends R{constructor(e,{chunkSize:t,DecompressionStreamFallback:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:i,checkCrc32:a,crc32:o,compressed:c,useCompressionStream:d,deflate64:l,format:u,compressionMethod:p,rawBitFlag:h,outputSize:y}=e;let x,S,b=super.readable;if(i&&(s?b=Ur(b,new cr(e)):(S=new $t(e),b=Ur(b,S))),c){const e=u&&wt(u);if(e)b=Ir(b,Cr(e.DecompressionStream,u,{chunkSize:t,compressionMethod:p,rawBitFlag:h,uncompressedSize:y}));else try{b=vr(b,d,{chunkSize:t,deflate64:l},n,r)}catch(e){if(l||y===re)throw e;let t;try{t=new n(br)}catch{throw e}b=((e,t,r)=>{const n=new zt;let s,i,a,o=0,c=!1;const d=new g((e,t)=>{i=e,a=t});d.catch(()=>{}),r||i();const l=new R({start(e){const t=new f(10);t.set(zr),e.enqueue(t)},transform(e,t){t.enqueue(e)},async flush(e){c=!0,p();try{await d}finally{h()}const t=new f(8),s=fe(t);s.setUint32(0,n.get(),!0),s.setUint32(4,r,!0),e.enqueue(t)},cancel(e){a(e)}}),u=new R({transform(e,t){n.append(e),o+=e.length,r>o?c&&p():i(),t.enqueue(e)},cancel(e){a(e)}});return e=Ur(e,l),Ur(e=Ir(e,t),u);function p(){h(),s=setTimeout(()=>a(new w(yr)),5e3)}function h(){clearTimeout(s)}})(b,t,y)}b=(e=>{const t=e.getReader();return new E({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new w(gr);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(b)}a&&(x=new Ft,b=Ur(b,x)),Tr(this,b,()=>{if(a){const e=new m(x.value.buffer);if(o!=e.getUint32(0,!1))throw new w(xr)}})}}const Dr=new c;function Ar(e,t){if(!e)return!1;let r=Dr.get(e);r||(r=new c,Dr.set(e,r));let n=r.get(t);if(n===re){try{new e(t),n=!0}catch{n=!1}r.set(t,n)}return n}function kr(e){return Ar(e,Sr)}function Tr(e,t,n){t=Ur(t,new R({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function Cr(e,t,r){if(!e)throw new w("Compression method not supported");return new e(t,r)}function vr(e,t,r,n,s){const i=t&&n?n:s||n,a=r.deflate64?"deflate64-raw":Sr;let o;try{o=new i(a,r)}catch(e){if(!t||!s||i==s)throw e;o=new s(a,r)}return Ir(e,o)}function Ur(e,t){return pe(e).pipeThrough(t)}function Ir(e,t){const r=t.writable.getWriter(),n=e.getReader();return(async()=>{try{for(;;){await r.ready;const e=await n.read();if(e.done){await r.close();break}await r.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(r,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(n,e)}})(),t.readable}const Or="data",Mr="deflate",Nr="inflate";class _r extends R{constructor(e,t){super({});const n=this,{codecType:s}=e;let i;s.startsWith(Mr)?i=Fr:s.startsWith(Nr)&&(i=Er),n.outputSize=0;let a=0;const o=new i(e,t),c=super.readable,d=new R({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:a})}}),l=new R({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==re&&n.outputSize>e.outputSize))throw new w(yr)},flush(){const{crc32:e}=o;r.assign(n,{crc32:e,inputSize:a})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(d).pipeThrough(o).pipeThrough(l)})}}class Pr extends R{constructor(e){const t=[];let r=0;function n(){const n=new f(e);let s=0;for(;e>s;){const r=t[0],i=e-s;r.length>i?(n.set(r.subarray(0,i),s),t[0]=r.subarray(i),s+=i):(n.set(r,s),s+=r.length,t.shift())}return r-=e,n}s.isFinite(e)&&e>=1||(e=65536),super({transform(s,i){for(t.push(s),r+=s.length;r>e;)i.enqueue(n())},flush(e){r&&e.enqueue(((e,t)=>{const r=new f(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r})(t,r))}})}}const Lr={type:"module"},Wr="error";let Br,Zr,Vr,Hr,jr,qr=!0;try{qr=typeof structuredClone==ie&&structuredClone(new DOMException("","AbortError")).code!==re}catch{}class Kr{constructor(e,{readable:t,writable:n},{options:s,config:i,me:a,useWebWorkers:o,transferStreams:c,workerURI:d,createWorker:l},u){const{signal:w}=a;return jr&&(l=re),r.assign(e,{ye:!0,ge:(e.ge||0)+1,readable:t.pipeThrough(new Pr(le(i))).pipeThrough(new Yr(a),{signal:w}),writable:n,options:r.assign({},s),workerURI:d,createWorker:l,transferStreams:c,terminate:()=>new g(t=>{const{xe:r,ye:n}=e;r?(n?e.Se=t:(r.terminate(),t()),e.be=null):t()}),ze(){if(e.ye){const{Se:t}=e;t&&(e.Se=null,e.Fe=!0,e.xe.terminate(),t()),e.ye=!1,u(e)}}}),Br===re&&(Br=typeof C!=se),(o&&(Br&&d||l)?Jr:Xr)(e,i)}}class Yr extends R{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await Gr(e,r)},async transform(e,n){s+=e.length,t&&await Gr(t,s,r),n.enqueue(e)},async flush(){n&&await Gr(n,s)}})}}async function Gr(e,...t){try{await e(...t)}catch{}}function Xr(e,t){return{run:()=>Qr(e,t)}}function Jr(e,t){const{baseURI:n,chunkSize:i,workerStartupTimeout:a}=t;let{wasmURI:o}=t;if(!e.be){let c;typeof o==ie&&(o=o());try{c=en(e.workerURI,n,e)}catch{return e.createWorker?jr=!0:Br=!1,Xr(e,t)}r.assign(e,{xe:c,Re:!1,Fe:!1,be:{run:async()=>{try{return await(async(e,t)=>{let n,i;const a=new g((e,t)=>{n=e,i=t});r.assign(e,{reader:null,writer:null,Ee:n,De:i,result:a});const{readable:o,options:c}=e,{writable:d,closed:l,Ae:u}=(e=>{const t=new AbortController,{writable:r,readable:n}=new R,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,Ae:()=>t.abort()}})(e.writable);let f;try{f=nn({type:"start",options:c,config:t,readable:o,writable:d},e)}catch(t){u();try{await l}catch{}throw e.ze(),t}f||r.assign(e,{reader:o.getReader(),writer:d.getWriter()});const{workerStartupTimeout:p}=t;e.Re||!s.isFinite(p)||0>p||(e.ke=setTimeout(()=>(e=>{if(e.ke=null,e.Re)return;const{De:t,writer:r}=e;if($r(e),e.xe=null,t){const e=new w("Worker startup timeout");e.Te=!0,t(e),r&&r.releaseLock()}})(e),p));try{const e=await a;return await h(),await l,e}catch(e){await h(),u();try{await l}catch{}throw e}async function h(){if(!f&&!d.locked)try{await d.getWriter().close()}catch{}}})(e,{chunkSize:i,wasmURI:o,baseURI:n,workerStartupTimeout:a})}catch(r){if(r&&r.Te){e.createWorker?jr=!0:Br=!1;const{reader:r}=e;return r&&r.releaseLock(),e.reader=null,e.writer=null,Qr(e,t)}throw r}}}})}return e.be}async function Qr({options:e,readable:t,writable:r,ze:n},s){let i;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(Mr),r=t?s.CompressionStreamFallback:s.DecompressionStreamFallback,n=t?s.CompressionStream:s.DecompressionStream;if(e.useCompressionStream){if(r&&r.Ce&&!kr(n))try{await void 0}catch{}}else try{await void 0}catch{r&&!r.Ce||(e.useCompressionStream=!0)}}i=new _r(e,s),await t.pipeThrough(i).pipeThrough(new Pr(le(s))).pipeTo(r,{preventClose:!0,preventAbort:!0});const{crc32:n,inputSize:a,outputSize:o}=i;return{crc32:n,inputSize:a,outputSize:o}}catch(e){throw i&&(e.outputSize=i.outputSize),e}finally{n()}}function $r(e){const{xe:t}=e;if(t)try{t.terminate()}catch{}e.be=null}function en(e,t,n,s,i=!0){const{createWorker:a}=n;let o,c,d;if(a)o=a();else if(Vr===re||Zr!==e){const r=typeof e==ie;c=r?e(i):e;const a=c.startsWith("data:"),l=c.startsWith("blob:");if(a||l){s===re&&(s=!1),s&&(d=Lr);try{o=new C(c,d)}catch(i){if(l)try{u.revokeObjectURL(c)}catch{}if(r&&l)return en(e,t,n,s,!1);if(s)throw i;return en(e,t,n,!0,!1)}}else{s===re&&(s=!0),s&&(d=Lr);try{c=new u(c,t)}catch{}try{o=new C(c,d)}catch(r){if(s)throw r;return en(e,t,n,!1,i)}}Zr=e,Vr=c,Hr=d}else o=new C(Vr,Hr);return o.addEventListener("message",e=>{n.Re=!0,tn(n),(async({data:e},t)=>{const{type:n,value:s,messageId:i,result:a,error:o}=e,{reader:c,writer:d,Ee:l,De:u,ze:p,ge:h}=t,m=()=>t.ge!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:i,cause:a}=o,c=new w(e);r.assign(c,{stack:t,code:n,name:s,outputSize:i}),a&&(c.cause=r.assign(new w(a.message),{name:a.name})),y(c)}else{if("pull"==n){const{value:e,done:r}=await c.read();m()||nn({type:Or,value:e,done:r,messageId:i},t)}n==Or&&(await d.ready,await d.write(new f(s)),m()||nn({type:"ack",messageId:i},t)),"close"==n&&y(null,a)}}catch(o){m()||($r(t),y(o))}function y(e,t){m()||(e?u(e):l(t),d&&d.releaseLock(),p())}})(e,n)}),o.addEventListener(Wr,e=>rn(e,n)),o.addEventListener("messageerror",e=>rn(e,n)),o}function tn(e){const{ke:t}=e;t&&(clearTimeout(t),e.ke=null)}function rn(e,t){e.preventDefault&&e.preventDefault(),tn(t);const{Re:n,De:s,writer:i,ze:a}=t;if($r(t),n||(t.xe=null),s){let t=e.error||new w(e.message||Wr);n||(t=r.assign(new w(t.message||Wr),{Te:!0})),s(t),i&&i.releaseLock(),n&&a()}}function nn(e,{xe:t,writer:r,transferStreams:n,Re:s}){try{const{value:r,readable:i,writable:a}=e,o=[];if(r&&(e.value=we(r),o.push(e.value.buffer)),n&&qr&&s?(i&&o.push(i),a&&o.push(a)):e.readable=e.writable=null,o.length)try{return t.postMessage(e,o),!0}catch{qr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let sn=[];const an=[];let on,cn,dn=0;async function ln(e,t){const{options:r,config:n}=t,{transferStreams:i,useWebWorkers:a,useCompressionStream:o,compressed:c,checkCrc32:d,computeCrc32:l,encrypted:f,format:p,codecURI:h}=r,{workerURI:m,createWorker:y,maxWorkers:x}=n;p&&(h&&(r.codecURI=((e,t)=>{try{return new u(e,t).toString()}catch{return e}})(h,n.baseURI)),await(async(e,t)=>{!lt.has(e)&&t&&((e,t)=>{const{CompressionStream:r,DecompressionStream:n}=t;if(typeof r!=ie&&typeof n!=ie)throw new w("Invalid codec module");lt.set(e,{CompressionStream:r,DecompressionStream:n})})(e,await(import(/* webpackIgnore: true */ /* @vite-ignore */t)))})(p,r.codecURI)),t.transferStreams=i||i===re&&n.transferStreams;const S=!(c||d||l||f),b=p===re||!!r.codecURI;return t.useWebWorkers=!S&&b&&(a||a===re&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&m?m:re,t.createWorker=t.useWebWorkers&&y?y:re,r.useCompressionStream=o||o===re&&n.useCompressionStream,(await(async()=>{const r=sn.find(e=>!e.ye);if(r)return hn(r),new Kr(r,e,t,z);if(sn.length<x){const r={ve:dn};return dn++,sn.push(r),new Kr(r,e,t,z)}return new g(r=>{an.push({resolve:r,stream:e,Ue:t}),cn=n.workerStarvationTimeout,un()})})()).run();function z(e){if(wn(),an.length){const[{resolve:t,stream:r,Ue:n}]=an.splice(0,1);t(new Kr(e,r,n,z)),un()}else e.xe?(hn(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.Fe?e.Fe=!1:e.Ie=setTimeout(async()=>{sn=sn.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):sn=sn.filter(t=>t!=e)}}function un(){!on&&an.length&&s.isFinite(cn)&&cn>=0&&(on=setTimeout(fn,cn))}function wn(){on&&(clearTimeout(on),on=null)}function fn(){if(on=null,an.length){const[{resolve:e,stream:t,Ue:n}]=an.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:re,createWorker:re});e(new Kr({},t,s,pn)),un()}}function pn(){wn(),un()}function hn(e){const{Ie:t}=e;t&&(clearTimeout(t),e.Ie=null)}const mn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function yn(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=mn[e[r]];return t}})(e):new S(t,{ignoreBOM:!0}).decode(e)}const gn="filename",xn="rawFilename",Sn="comment",bn="rawComment",zn="uncompressedSize",Fn="compressedSize",Rn="offset",En="diskNumberStart",Dn="lastModDate",An="rawLastModDate",kn="lastAccessDate",Tn="rawLastAccessDate",Cn="creationDate",vn="rawCreationDate",Un="internalFileAttributes",In="externalFileAttributes",On="msdosAttributesRaw",Mn="msdosAttributes",Nn="msDosCompatible",_n="zip64",Pn="encrypted",Ln="version",Wn="versionMadeBy",Bn="zipCrypto",Zn="directory",Vn="executable",Hn="compressionMethod",jn="signature",qn="extraField",Kn="unixMode",Yn="setuid",Gn="setgid",Xn="sticky",Jn=[gn,xn,zn,Fn,Dn,An,Sn,bn,kn,Tn,Cn,vn,Rn,En,Un,In,On,Mn,Nn,_n,Pn,Ln,Wn,Bn,Zn,Vn,Hn,jn,"crc32",qn,"extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid",Kn,Yn,Gn,Xn,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class Qn{constructor(e){Jn.forEach(t=>this[t]=e[t])}}const $n="password",es="rawPassword",ts="passThrough",rs="signal",ns="checkAmbiguity",ss="useWebWorkers",is="useCompressionStream",as="transferStreams",os="preventClose",cs="offset",ds="usdz",ls="strictness",us="strict",ws="tolerant",fs="File format is not recognized",ps="End of central directory not found",hs="End of Zip64 central directory locator not found",ms="Central directory header not found",ys="Local file header not found",gs="Zip64 extra field not found",xs="File contains encrypted entry",Ss="Encryption method not supported",bs="Compression method not supported",zs="Split zip file",Fs="Overlapping entry found",Rs="Ambiguous archive",Es="Encrypted central directory is not supported",Ds="utf-8",As="cp437",ks=[[zn,v],[Fn,v],[Rn,v],[En,U]],Ts={[U]:{Oe:ti,bytes:4},[v]:{Oe:ri,bytes:8}};class Cs{constructor(e,t={}){r.assign(this,{reader:new it(e),options:t,config:de(),Me:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await ot(n),n.size!==re&&n.readUint8Array||(n=new Ie(await new l(n.readable).blob()),await ot(n)),n.size<B)throw new w(fs);const i=Ws(Xs(t,e,ls),Xs(t,e,ns)),o=i==us,c=i!=ws,u=((e,t)=>e!==re?e:t==us?0:t==ws?1/0:U)(Xs(t,e,"maxAppendedDataSize"),i),{Ne:f,_e:p}=await(async(e,t,r)=>{const{size:n}=e,s=a.min(n,65557),i={count:Bs};let o,c,d=0;for await(const[r,a,l,u,w]of js(e,s)){const s=ei(r,u+20);if(w+B+s==n){const s=await Ks(e,r,a,u,w,n,i);if(s==Hs){if(o||(o=qs(l,u,w)),d++,!t||d>1)break}else s!=Vs||c||(c=qs(l,u,w))}}return o||(o=c),o||(o=await(async(e,t,r)=>{const{size:n}=e,s=a.min(n,t==1/0?n:65557+t);let i,o;for await(const[t,a,c,d,l]of js(e,s)){const s=qs(c,d,l);i||(i=s);const u=await Ks(e,t,a,d,l,n,r);if(u==Hs)return s;u!=Vs||o||(o=s)}return o||i})(e,r,i)),{Ne:o,_e:d}})(n,c,u);if(!f)throw ti(fe(await ct(n,0,4)))==M?new w(zs):new w(ps);c&&p>1&&Gs("multiple end of central directory records");const h=fe(f);let m=ti(h,12),y=ti(h,16);const x=f.offset,S=ei(h,20),b=x+B+S;n.size-b>u&&Gs("appended data");let z=ei(h,4);const F=n.R||0;let E,D,A,k=ei(h,6),T=ei(h,10),C=0;const O=y==v||m==v||T==U||k==U;if(y!=v&&k!=U&&(y+=Ls(n,k)),O){const e=f.offset<Z?ae:await ct(n,f.offset-Z,Z),t=fe(e);if(e.length==Z&&ti(t,0)==W){y=Ls(n,ti(t,4))+ri(t,8);let e=await ct(n,y,56),r=fe(e);const s=f.offset-Z-56;if((56>e.length||ti(r,0)!=L)&&y!=s&&s>=0){const t=y;y=s,y>t&&(C=y-t),e=await ct(n,y,56),r=fe(e)}if(56>e.length||ti(r,0)!=L)throw new w(hs);D=!0,A=ri(r,4)>44,z==U?z=ti(r,16):o&&z!=ti(r,16)&&Gs("mismatched zip64 end of central directory record"),k==U?k=ti(r,20):o&&k!=ti(r,20)&&Gs("mismatched zip64 end of central directory record"),T==U?T=ri(r,32):o&&T!=ri(r,32)&&Gs("mismatched zip64 end of central directory record"),m==v?m=ri(r,40):o&&m!=ri(r,40)&&Gs("mismatched zip64 end of central directory record"),y=Ls(n,k)+ri(r,48)+C}}const N=m,P=f.offset-(D?76:0);if(y<n.size||(C=n.size-y-m-B,y=n.size-m-B),F!=z)throw new w(zs);if(0>y)throw new w(fs);let V=0,H=await ct(n,y,m),j=fe(H);if(m){if(4>H.length)throw new w(fs);const e=P-m;if(y!=e&&k==z){let t=!(ti(j,V)==_);if(t||0>e||e+4>n.size||(t=ti(fe(await ct(n,e,4)),0)==_),t){const t=y;y=e,y>t&&(C+=y-t),H=await ct(n,y,m),j=fe(H)}}}const q=P-y;if(m==q||0>q||k!=z||(m=q,H=await ct(n,y,m),j=fe(H)),0>y||y>=n.size)throw new w(fs);E=y;const K=Xs(t,e,"filenameEncoding"),Y=Xs(t,e,"commentEncoding"),$=o?new d:re;let ee;for(let i=0;T>i;i++){const c=new vs(n,s,t.options);if(V+46>H.length||ti(j,V)!=_){if(0==i&&(A||Us(j)))throw new w(Es);throw new w(ms)}Is(c,j,V+6);const d=!!c.bitFlag.languageEncodingFlag,u=V+46,f=u+c.filenameLength,p=f+c.extraFieldLength,h=ei(j,V+4),m=!(h>>8),y=h>>8==3,x=H.subarray(u,f),S=ei(j,V+32),b=p+S,z=H.subarray(p,b),F=d,D=d,k=ti(j,V+38),v=k&I,O={readOnly:!!(1&v),hidden:!!(2&v),system:!!(4&v),directory:!!(16&v),archive:!!(32&v)},M=ti(j,V+42),N=Xs(t,e,"decodeText")||yn,P=F?Ds:K||As,L=D?Ds:Y||As;let W=N(x,P);W===re&&(W=yn(x,P));let B=N(z,L);B===re&&(B=yn(z,L)),r.assign(c,{index:i,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Pe:S,offset:M,diskNumberStart:ei(j,V+34),internalFileAttributes:ei(j,V+36),externalFileAttributes:k,msdosAttributesRaw:v,msdosAttributes:O,rawFilename:x,filenameUTF8:F,commentUTF8:D,rawExtraField:H.subarray(f,p),rawComment:z,filename:W,comment:B}),Os(c,c,j,V+6),c.offset+=C,E=a.min(Ls(n,c.diskNumberStart)+c.offset,E),o&&($.has(c.filename)&&(ee=!0),$.add(c.filename));const Z=c.externalFileAttributes>>16&U;c.unixMode===re&&16877&Z&&(c.unixMode=Z);const q=!!(c.unixMode&X),te=!!(c.unixMode&J),ne=!!(512&c.unixMode),se=c.unixMode!==re?!!(73&c.unixMode):y&&!!(73&Z),ie=c.unixMode!==re&&(61440&c.unixMode)==G,ae=(61440&Z)==G;r.assign(c,{setuid:q,setgid:te,sticky:ne,unixExternalUpper:Z,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:se,directory:ie||ae||m&&O.directory||c.filename.endsWith(Q)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const oe=new Qn(c);oe.getData=(e,r)=>c.getData(e,oe,t.Me,r),oe.arrayBuffer=async e=>{const r=new R,[n]=await g.all([new l(r.readable).arrayBuffer(),c.getData(r,oe,t.Me,e)]);return n},V=b;const{onprogress:ce}=e;if(ce)try{await ce(i+1,T,new Qn(c))}catch{}yield oe}o&&V!=N&&Gs("trailing central directory data"),ee&&Gs("duplicate filename"),o&&(C||T&&E>0)&&Gs("prepended data");const te=Xs(t,e,"extractPrependedData"),ne=Xs(t,e,"extractAppendedData");return te&&(t.prependedData=E>0?await ct(n,0,E):ae),t.comment=S?await ct(n,x+B,S):ae,ne&&(t.appendedData=b<n.size?await ct(n,b,n.size-b):ae),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}let vs=class{constructor(e,t,n){r.assign(this,{reader:e,config:t,options:n})}async getData(e,t,r,n={}){const s=this,{reader:i,index:a,offset:o,diskNumberStart:c,extraFieldAES:d,extraFieldZip64:l,compressionMethod:u,config:f,bitFlag:p,rawBitFlag:h,crc32:m,rawLastModDate:y,uncompressedSize:g,compressedSize:x}=s,{dataDescriptor:S}=p,b=t.localDirectory={},z=Ls(i,c)+o,F=await ct(i,z,$),R=fe(F);let E=Xs(s,n,$n),A=Xs(s,n,es);const k=Xs(s,n,ts);if(E=E&&E.length&&E,A=A&&A.length&&A,d&&99!=d.originalCompressionMethod)throw new w(bs);if(F.length<$||ti(R,0)!=O)throw new w(ys);Is(b,R,4);const{extraFieldLength:T,filenameLength:C}=b,v=Ws(Xs(s,n,ls),Xs(s,n,ns))==us;let U=ae;if(v&&(C||T)){const e=await ct(i,z+$,C+T);U=e.subarray(0,C),b.rawExtraField=e.subarray(C)}else b.rawExtraField=T?await ct(i,z+$+C,T):ae;Os(s,b,R,4,!0),v&&((e,t,r)=>{const{rawFilename:n}=e;(r.length!=n.length||r.some((e,t)=>e!=n[t]))&&Gs("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&Gs("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&Gs("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.crc32||t.compressedSize||t.uncompressedSize)||t.crc32==e.crc32&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||Gs("mismatched local file header (crc32 or sizes)")})(s,b,U);const{lastAccessDate:M,creationDate:_}=b;M&&(t.lastAccessDate=M),_&&(t.creationDate=_);const P=s.encrypted&&b.encrypted&&!k,L=P&&!d;if(k||(t.zipCrypto=L),P&&!(64&~b.rawBitFlag))throw new w(Ss);const W=k?re:ut(u);if(0!=u&&8!=u&&9!=u&&!W&&!k)throw new w(bs);if(P){if(!L&&(1>d.strength||d.strength>3))throw new w(Ss);if(!E&&!A)throw new w(xs)}const B=z+$+C+T,Z=x,V=pe(i.createReadable({offset:B,size:Z})),H=Xs(s,n,rs),j=Xs(s,n,"checkPasswordOnly");let q=Xs(s,n,"checkOverlappingEntry");const K=Xs(s,n,"checkOverlappingEntryOnly");K&&(q=!0);const{onstart:Y,onprogress:G,onend:X}=n,J=9==u;let Q=Xs(s,n,is);J&&(Q=!1);const ee=Xs(s,n,"checkCrc32"),te=(ee===re?Xs(s,n,"checkSignature"):ee)&&!k&&(!P||L||d&&1==d.vendorVersion),ne={options:{codecType:Nr,password:E,rawPassword:A,zipCrypto:L,encryptionStrength:d&&d.strength,checkCrc32:te,checkAuthenticationCode:Xs(s,n,"checkAuthenticationCode"),passwordVerification:L&&(S?y>>>8&I:m>>>24&I),outputSize:k?x:g,crc32:m,compressed:0!=u&&!k,encrypted:P,useWebWorkers:Xs(s,n,ss),useCompressionStream:Q,transferStreams:Xs(s,n,as),deflate64:J,format:W?W.format:re,codecURI:W?W.codecURI:re,compressionMethod:u,rawBitFlag:h,checkPasswordOnly:j},config:f,me:{signal:H,size:Z,onstart:Y,onprogress:G,onend:X}};let se;q&&await(async({reader:e,Le:t,index:r,offset:n,crc32:s,compressedSize:i,uncompressedSize:a,We:o,dataDescriptor:c,extraFieldZip64:d,Me:l})=>{let u=0;if(c&&(u=d?20:12),u){const r=await ct(e,o+i,u+4);if(r.length==u+4&&ti(fe(r),0)==N){const e=ti(fe(r),4);let n,o;d?(n=ri(fe(r),8),o=ri(fe(r),16)):(n=ti(fe(r),8),o=ti(fe(r),12)),(t.encrypted&&!t.zipCrypto||e==s)&&n==i&&o==a&&(u+=4)}}const f={start:n,end:o+i+u,Le:t};for(const[e,t]of l)if(e!=r&&f.start<t.end&&t.start<f.end){const e=new w(Fs);throw e.Be=t.Le,e}l.set(r,f)})({reader:i,Le:t,index:a,offset:z,crc32:m,compressedSize:x,uncompressedSize:g,We:B,dataDescriptor:S||b.bitFlag.dataDescriptor,extraFieldZip64:l||b.extraFieldZip64,Me:r});try{if(!K){j&&(e=new D),e=new at(e),await ot(e,k?x:g),({writable:se}=e);const{outputSize:t}=await ln({readable:V,writable:se},ne);if(e.size+=t,t!=(k?x:g))throw new w(yr)}}catch(t){if(t.outputSize!==re&&(e.size+=t.outputSize),!j||t.message!=It)throw t}finally{Xs(s,n,os)||!se||se.locked||await se.getWriter().close()}return j||K?re:e.getData?e.getData():se}};function Us(e){const t=a.min(e.byteLength,1024)-3;for(let r=0;t>r;r++)if(134630224==ti(e,r))return!0;return!1}function Is(e,t,n){const s=e.rawBitFlag=ei(t,n+2),i=!(1&~s),a=ti(t,n+6);r.assign(e,{encrypted:i,version:ei(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&Y)==Y},rawLastModDate:a,lastModDate:Js(a),filenameLength:ei(t,n+22),extraFieldLength:ei(t,n+24)})}function Os(e,t,n,s,i){const{rawExtraField:a}=t,d=t.extraField=new c,l=fe(a);let u=0;try{for(;u<a.length;){const e=ei(l,u),t=ei(l,u+2);d.set(e,{type:e,data:a.slice(u+4,u+4+t)}),u+=4+t}}catch{}const f=ei(n,s+4);r.assign(t,{signature:ti(n,s+10),crc32:ti(n,s+10),compressedSize:ti(n,s+14),uncompressedSize:ti(n,s+18)});const p=d.get(1);p&&(((e,t)=>{t.zip64=!0;const r=fe(e.data),n=ks.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+Ts[t].bytes,0);if(e.data.length<s)throw new w(gs);for(let s=0,i=0;s<n.length;s++){const[a,o]=n[s],c=Ts[o];t[a]=e[a]=c.Oe(r,i),i+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=d.get(28789);h&&(Ms(h,gn,xn,t,e),t.extraFieldUnicodePath=h);const m=d.get(25461);m&&(Ms(m,Sn,bn,t,e),t.extraFieldUnicodeComment=m);const y=d.get(V);y&&y.data.length>=7?(((e,t,n)=>{const s=fe(e.data),i=$s(s,4);r.assign(e,{vendorVersion:$s(s,0),vendorId:$s(s,2),strength:i,originalCompressionMethod:n,compressionMethod:ei(s,5)}),t.compressionMethod=e.compressionMethod,1!=e.vendorVersion&&(t.crc32=re)})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const g=d.get(13);g&&(Ns(g,t),t.extraFieldPkwareUnix=g);const x=d.get(22613);x&&(Ns(x,t),t.extraFieldUnixType1=x);const S=d.get(10);S&&(((e,t)=>{const n=fe(e.data);let s,i=4;try{for(;i<e.data.length&&!s;){const t=ei(n,i),r=ei(n,i+2);1==t&&(s=e.data.slice(i+4,i+4+r)),i+=4+r}}catch{}if(s&&24==s.length){const n=fe(s),i=n.getBigUint64(0,!0),a=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);r.assign(e,{rawLastModDate:i,rawLastAccessDate:a,rawCreationDate:o});const c={lastModDate:Qs(i),lastAccessDate:Qs(a),creationDate:Qs(o)};r.assign(e,c),r.assign(t,c)}})(S,t),t.extraFieldNTFS=S);const b=d.get(K);if(b)_s(b,t,!1),t.extraFieldUnix=b;else{const e=d.get(q);e&&(_s(e,t,!0),t.extraFieldInfoZip=e)}const z=d.get(H);z&&(((e,t,r)=>{if(!e.data.length)return;const n=fe(e.data),s=$s(n,0),i=[],a=[];r?(1&~s||(i.push(Dn),a.push(An)),2&~s||(i.push(kn),a.push(Tn)),4&~s||(i.push(Cn),a.push(vn))):5>e.data.length||(i.push(Dn),a.push(An));let c=1;i.forEach((r,s)=>{if(e.data.length>=c+4){const i=ti(n,c);t[r]=e[r]=new o(1e3*(0|i));const d=a[s];e[d]=i}c+=4})})(z,t,i),t.extraFieldExtendedTimestamp=z);const F=d.get(j);F&&(t.extraFieldUSDZ=F)}function Ms(e,t,n,s,i){if(5>e.data.length)return void(e.valid=!1);const a=fe(e.data),o=new zt;o.append(i[n]);const c=fe(new f(4));c.setUint32(0,o.get(),!0);const d=ti(a,1);r.assign(e,{version:$s(a,0),[t]:yn(e.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&d==ti(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function Ns(e,t){if(8>e.data.length)return;const n=fe(e.data),s={lastAccessDate:new o(1e3*ti(n,0)),lastModDate:new o(1e3*ti(n,4))};12>e.data.length||(s.uid=ei(n,8),s.gid=ei(n,10)),r.assign(e,s),r.assign(t,s)}function _s(e,t,n){try{const s=fe(e.data);let i,a;if(n){let t=0;const n=$s(s,t++),o=$s(s,t++);i=Ps(e.data.subarray(t,t+o)),t+=o;const c=$s(s,t++);a=Ps(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:i,gid:a})}else 4>e.data.length||(i=ei(s,0),a=ei(s,2),r.assign(e,{uid:i,gid:a}));i!==re&&(t.uid=i),a!==re&&(t.gid=a)}catch{}}function Ps(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Ls(e,t){return e.A?e.A(t):0}function Ws(e,t){return e===re?t?us:"balanced":e}const Bs=64,Zs=0,Vs=1,Hs=2;async function*js(e,t){const r=e.size-t,n=await ct(e,r,t),s=fe(n);for(let e=n.length-B;e>=0;e--)ti(s,e)==P&&(yield[s,r,n,e,r+e])}function qs(e,t,r){return{offset:r,buffer:e.slice(t,t+B).buffer}}async function Ks(e,t,r,n,s,i,a){const o=ei(t,n+10),c=ti(t,n+12),d=ti(t,n+16);if(o==U||c==v||d==v)return await Ys(e,t,r,s-Z,i,a)==W?Hs:Zs;if(!o&&!c)return Vs;const l=ei(t,n+6);for(const n of[s-c,Ls(e,l)+d])if(await Ys(e,t,r,n,i,a)==_)return Hs;return Zs}async function Ys(e,t,r,n,s,i){return 0>n||n+4>s?re:r>n?i.count>0?(i.count--,ti(fe(await ct(e,n,4)),0)):re:ti(t,n-r)}function Gs(e){const t=new w(Rs);throw t.reason=e,t}function Xs(e,t,r){return t[r]===re?e.options[r]:t[r]}function Js(e){const t=(4294901760&e)>>16,r=e&U;return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}function Qs(e){return new o(s(e/i(1e4)-i(116444736e5)))}function $s(e,t){return e.getUint8(t)}function ei(e,t){return e.getUint16(t,!0)}function ti(e,t){return e.getUint32(t,!0)}function ri(e,t){return s(e.getBigUint64(t,!0))}var ni=r.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:Rs,ERR_BAD_FORMAT:fs,ERR_CENTRAL_DIRECTORY_NOT_FOUND:ms,ERR_ENCRYPTED:xs,ERR_ENCRYPTED_CENTRAL_DIRECTORY:Es,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:hs,ERR_EOCDR_NOT_FOUND:ps,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:gs,ERR_INVALID_AUTHENTICATION_CODE:Ut,ERR_INVALID_COMPRESSED_DATA:gr,ERR_INVALID_CRC32:xr,ERR_INVALID_PASSWORD:Ct,ERR_INVALID_SIGNATURE:vt,ERR_INVALID_UNCOMPRESSED_SIZE:yr,ERR_LOCAL_FILE_HEADER_NOT_FOUND:ys,ERR_OVERLAPPING_ENTRY:Fs,ERR_SPLIT_ZIP_FILE:zs,ERR_UNSUPPORTED_COMPRESSION:bs,ERR_UNSUPPORTED_ENCRYPTION:Ss,ZipReader:Cs});const si="Zip file comment exceeds 64KB",ii="Version exceeds 65535",ai="Extra field data exceeds 64KB",oi=-2147483648,ci=2147483647,di=i(0),li=i("0x7fffffffffffffff"),ui="Zip64 is not supported (set the 'zip64' option to 'true')",wi=new f([7,0,2,0,65,69,3,0,0]),fi="infozip",pi="unix";let hi=0;const mi=[];class yi{constructor(e,t={}){e=new at(e);const{availableSize:n=ne,maxSize:s=ne}=e,i=n>0&&n!==ne&&s>0&&s!==ne;r.assign(this,{writer:e,Ze:i,options:t,config:de(),files:new c,Ve:new d,offset:t[cs]===re?e.size||e.writable.size||0:t[cs],He:t[cs]===re?0:t[cs]-(e.size||e.writable.size||0),je:new d,qe:0,Ke:re})}async prependZip(e){if(this.Ve.size)throw new w("Zip file not empty");e=new it(e),await ot(e);const{ZipReader:t}=await g.resolve().then(()=>ni),n=new t(e.readable),s=await n.getEntries();await n.close(),await ot(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Ve=new d(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:n,lastAccessDate:s,creationDate:i,rawFilename:a,bitFlag:o,encrypted:c,uncompressedSize:d,compressedSize:l,zip64:u}=e;let{compressionMethod:w,Ye:f,Ge:p,Xe:h,Je:m,Qe:y,rawExtraField:g}=e;const{level:x,languageEncodingFlag:S,dataDescriptor:b}=o;f=f||ae,p=p||ae,h=h||ae,m=m||ae,y=y||ae,g=g||ae,e.extraFieldAES&&(w=99);const z=_i(f,p,h,m,y,g),F=u&&d>=v,R=u&&l>=v,E=-7&Li(x,S,b,c,w)|x<<1,{$e:D,et:A}=Pi({version:t,bitFlag:E,compressionMethod:w,uncompressedSize:d,compressedSize:l,rawLastModDate:n,rawFilename:a,nt:R,st:F,extraFieldLength:z}),{crc32:k}=e;return k!==re&&Oi(A,10,k),r.assign(e,{st:F,nt:R,it:u&&e.offset>=v,diskNumberStart:0,ot:!1,Ye:f,Ge:p,Xe:h,Je:m,Qe:y,rawExtraField:g,extendedTimestamp:h.length>0||m.length>0,ct:1+(s?2:0)+(i?4:0),$e:D,et:A}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{je:c,config:d}=s;let l,u;hi<d.maxWorkers?hi++:await new g(e=>mi.push(e));try{if(e=e.trim(),vi(s,n,Zn)&&!e.endsWith(Q)&&(e+=Q),s.Ve.has(e))throw new w("File already exists");return s.Ve.add(e),u=!0,l=(async(e,t,n,s)=>{const c=((e,t,r)=>{t=t.trim();let n=vi(e,r,Nn),s=vi(e,r,Wn,n?20:768);const i=vi(e,r,Vn),a=vi(e,r,"uid"),o=vi(e,r,"gid");let c=vi(e,r,Kn),d=vi(e,r,"unixExtraFieldType"),l=vi(e,r,Yn),u=vi(e,r,Gn),f=vi(e,r,Xn);if(a!==re&&(0>a||a>v))throw new w("Invalid uid (must be integer 0..2^32-1)");if(o!==re&&(0>o||o>v))throw new w("Invalid gid (must be integer 0..2^32-1)");if(c!==re&&(0>c||c>U))throw new w("Invalid UNIX mode (must be integer 0..65535)");if(d!==re&&d!==fi&&d!==pi)throw new w("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(d===pi&&(a!==re&&a>U||o!==re&&o>U))throw new w("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");d!==re||a===re&&o===re||(d=fi);let p=vi(e,r,On),h=vi(e,r,Mn);const m=p!==re||h!==re;if(a!==re||o!==re||c!==re||d?(n=!1,s=s&U|768):m&&(n=!0,s&=I),p!==re&&(0>p||p>I))throw new w("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new w("Invalid msdosAttributes (must be an object with boolean flags)");if(s>U)throw new w(ii);let y=vi(e,r,In);const g=y!==re;g||(y=0),!r[Zn]&&t.endsWith(Q)&&(r[Zn]=!0);const x=vi(e,r,Zn);let S;if(x?(t.endsWith(Q)||(t+=Q),g||(y=16,n||(y|=16877<<16))):n||g||(y=i?493<<16:27525120),!n){const e=c!==re||!!(l||u||f);S=y>>16&U,c=c===re?S:c&U,l?c|=X:l=!!(c&X),u?c|=J:u=!!(c&J),f?c|=512:f=!!(512&c),g&&!e||(x&&(c|=G),y=(c&U)<<16|y&U)}return({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==re)e&=I;else if(t!==re){const{readOnly:r,hidden:n,system:s,directory:i,archive:a}=t;let o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),i&&(o|=16),a&&(o|=32),e=o&I}return t===re&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(y=y&v|p&I),{name:t,lt:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:S,uid:a,gid:o,unixMode:c,unixExtraFieldType:d,setuid:l,setgid:u,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=c);const d=((e,t,r)=>{const n=vi(e,r,"encodeText",Rt);let s=n(t);if(s===re&&(s=Rt(t)),_i(s)>U)throw new w("File entry name exceeds 64KB");const i=r[Sn]||"";let a=n(i);if(a===re&&(a=Rt(i)),_i(a)>U)throw new w("File entry comment exceeds 64KB");const c=vi(e,r,Ln,20);if(c>U)throw new w(ii);const d=vi(e,r,Dn,new o),l=vi(e,r,kn),u=vi(e,r,Cn),f=vi(e,r,Un,0),p=vi(e,r,ts);let h,m;p||(h=vi(e,r,$n),m=vi(e,r,es));const y=vi(e,r,"encryptionStrength",3),g=vi(e,r,Bn),x=vi(e,r,"extendedTimestamp",!0),S=vi(e,r,"ntfsTimestamp"),b=vi(e,r,"keepOrder",!0),z=vi(e,r,ss),F=vi(e,r,as),R=vi(e,r,"bufferedWrite"),E=vi(e,r,"createTempStream"),D=vi(e,r,"dataDescriptorSignature",!0),A=vi(e,r,rs),k=vi(e,r,"useUnicodeFileNames",!0),T=vi(e,r,Hn),C=p||T===re?re:ut(T);if(!p&&T!==re&&0!==T&&8!==T&&!C)throw new w("Compression method not supported");let v=vi(e,r,"level");if(e.options[ds]){if(h!==re||m!==re)throw new w("Encryption is not supported in USDZ files");v===re&&T===re&&(v=0)}let I=vi(e,r,is),O=vi(e,r,"dataDescriptor");R&&O===re&&(O=!1),(O===re||g)&&(O=!0),v!==re&&6!=v&&(I=!1);const M=vi(e,r,_n);if(!g&&(h!==re||m!==re)&&(1>y||y>3))throw new w("The strength must equal 1, 2, or 3");const N=gi(r[qn]),_=gi(r.localExtraField);return{comment:i,lt:{rawFilename:s,rawComment:a,version:c,lastModDate:d,lastAccessDate:l,creationDate:u,internalFileAttributes:f,passThrough:p,password:h,rawPassword:m,encryptionStrength:y,zipCrypto:g,extendedTimestamp:x,ntfsTimestamp:S,keepOrder:b,useWebWorkers:z,transferStreams:F,bufferedWrite:R,createTempStream:E,dataDescriptorSignature:D,signal:A,useUnicodeFileNames:k,compressionMethod:T,format:C?C.format:re,codecURI:C?C.codecURI:re,ut:C?C.versionNeeded:re,level:v,useCompressionStream:I,dataDescriptor:O,zip64:M,rawExtraField:N,wt:_}}})(e,t,s),{comment:l}=d,u=s[qn];let p;e.files.set(t,re);try{const{lt:l}=d;0==l.level||l.compressionMethod!==re||l.passThrough||await(async e=>{const{CompressionStream:t,CompressionStreamFallback:r}=e;if(r&&!r.Ce)return!0;if(kr(t)||Ar(t,br))return!0;if(r)try{return await void 0,!0}catch{return!1}return!1})(e.config)||(l.level=0);const u=await(async(e,t,{lt:r},n)=>{const{passThrough:s,zipCrypto:i,password:a,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:d,zip64:l,level:u,compressionMethod:f}=r,p=0,h=0;if(s){if(!t)throw new w("Undefined reader");if(h=n[zn],h===re)throw new w("Undefined uncompressed size")}const m=!0===l,y=vi(e,n,Pn),g=!!t&&(!!(a&&_i(a)||o&&_i(o))||s&&y);t||(u=0,f=0);const x=g?i?12:16+4*c:0;t&&(t=new it(t),await ot(t),s?(n.uncompressedSize=h,p=Ui(h)+x):t.size===re?(d=!0,(l||l===re)&&(l=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=Ui(h)+x));const S=m||h>=v,b=m||p>=v;if(S||b){if(!1===l)throw new w(ui);l=!0}return l=l||!1,{reader:t,lt:{dataDescriptor:d,zip64:l,st:S,nt:b,uncompressedSize:h,level:u,compressionMethod:f,encrypted:g}}})(e,n,d,s);({reader:n}=u);const h=Fi(e.writer),m=zi(e.writer),y=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:i,zip64:c,zipCrypto:d,useUnicodeFileNames:l,dataDescriptor:u,directory:f,rawExtraField:p,wt:h,encryptionStrength:m,extendedTimestamp:y,ntfsTimestamp:g,passThrough:x,encrypted:S,st:b,nt:z,uncompressedSize:F,crc32:R}=e;let{version:E,compressionMethod:D}=e;const A=!f&&(D===re?i===re||i>0:0!==D);let k;const T=x||!A,C=c&&(e.bufferedWrite||!u||!b&&!z||T),v=C||c&&u&&(b||z);if(c&&(b||z)){const e=20,t=bi(e);if(t.uint16(1),t.uint16(e-4),k=t.array,C&&(t.ft(F),T)){const e=S?d?12:16+4*m:0;t.ft(x?0:F+e)}}else k=ae;let I,M,N,_,P;if(S&&!d){const e=bi(_i(wi)+2);e.uint16(V),e.bytes(wi),I=e.array,I[8]=m}else I=ae;if(y){const e=ki(r),t=Ti(e);if(t){const t=9+(n?4:0)+(s?4:0),r=bi(t);_=1+(n?2:0)+(s?4:0),r.uint16(H),r.uint16(t-4),r.uint8(_),r.uint32(e),n&&r.uint32(Ci(ki(n))),s&&r.uint32(Ci(ki(s))),N=r.array}else N=ae;if(g===re?!t||n||s:g)try{const e=Ai(r),t=bi(36);t.uint16(10),t.uint16(32),t.ht(4),t.uint16(1),t.uint16(24),t.ft(e),t.ft(n?Ai(n):e),t.ft(s?Ai(s):e),M=t.array}catch{M=ae}else M=ae}else M=N=ae;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=fi||t===re&&r===re)if(n!=pi||t===re&&r===re)P=ae;else{const e=bi(8);e.uint16(K),e.uint16(4),e.uint16((t===re?0:t)&U),e.uint16((r===re?0:r)&U),P=e.array}else{const e=Si(t),n=Si(r),s=3+e.length+n.length,i=bi(4+s);i.uint16(q),i.uint16(s),i.uint8(1),i.uint8(e.length),i.bytes(e),i.uint8(n.length),i.bytes(n),P=i.array}}catch{P=ae}D===re&&(D=A?8:0);const{ut:L}=e;A&&L!==re&&(E=E>L?E:L),c&&(E=E>45?E:45),S&&!d&&(E=E>51?E:51,x&&R!==re&&(I[4]=1),I[9]=D,D=99);const W=v?_i(k):0,B=W+_i(I,N,M,P,p,h);if(B>U)throw new w(ai);const Z=new o(2e3*a.ceil(a.floor(r.getTime()/1e3)/2)),{$e:j,et:Y,rawLastModDate:G}=Pi({version:E,bitFlag:Li(i,l,u,S,D),compressionMethod:D,uncompressedSize:F,lastModDate:te>Z?te:Z>ee?ee:Z,rawFilename:t,nt:z,st:b,extraFieldLength:B}),X=bi($+_i(t)+B),J=X.array,Q=fe(J);return X.uint32(O),X.bytes(j),X.bytes(t),v&&X.bytes(k),X.bytes(I),X.bytes(N),X.bytes(M),X.bytes(P),X.bytes(p),X.bytes(h),u&&(z||Oi(Q,18,0),b||Oi(Q,22,0)),{yt:J,gt:Q,$e:j,et:Y,lastModDate:r,rawLastModDate:G,encrypted:S,compressed:A,version:E,compressionMethod:D,ct:_,Ye:ae,xt:W,Xe:N,Je:M,Qe:P,Ge:I,extraFieldLength:B}})(s=r.assign({},s,c.lt,d.lt,u.lt,{internalFileAttribute:d.lt.internalFileAttributes,externalFileAttribute:c.lt.externalFileAttributes,signature:s[jn],crc32:s.crc32===re?s[jn]:s.crc32,offset:e.offset-h,diskNumberStart:m})),x=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=ae,i=0,a=e?20:12;return r&&(a+=4),t&&(s=new f(a),n=fe(s),r&&(i=4,Oi(n,0,N))),{St:s,bt:n,zt:i}})(s),S=_i(y.yt,x.St);p=await(async(e,t,n,s,a)=>{const{files:o,writer:c}=e,{keepOrder:d,dataDescriptor:l,signal:u}=a,{Ft:p}=s,h=e.options[ds],m=e.Ke;let y,x,S,b,z,F,E,A={},k=0;o.set(t,A),e.Ke=A;try{let x;d&&(x=m&&m.lock,A.lock=new g(e=>S=e)),a.bufferedWrite||!d||e.Rt||e.qe||!l?(y=!0,e.qe++,E=a.createTempStream?await a.createTempStream():new R(re,re,{highWaterMark:ne}),E.size=0,await ot(c)):(E=c,await T()),await ot(E);const U=Fi(c);if(e.Ze){delete e.Ze;const t=new f(4);Oi(fe(t),0,M),await Di(c,t),e.offset+=4}h&&!y&&xi(s,e.offset-U);const{yt:O}=p;y||(await x,await C());const N=zi(c),_=Ei(e,c);if(A.diskNumberStart=N,y||(z=!0,F=c.size,await Di(E,O)),A=await(async(e,t,{diskNumberStart:n,lock:s},a,o,c)=>{const{Ft:d,Et:l,Dt:u}=a,{$e:f,et:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:g,version:x,compressionMethod:S,Ye:b,xt:z,Xe:F,ct:R,Je:E,Qe:D,Ge:A}=d,{St:k}=l,{rawFilename:T,lastAccessDate:C,creationDate:U,password:O,rawPassword:M,level:N,zip64:_,st:P,nt:L,zipCrypto:W,dataDescriptor:B,directory:Z,executable:V,versionMadeBy:H,rawComment:j,rawExtraField:q,useWebWorkers:K,transferStreams:Y,onstart:G,onprogress:X,onend:J,signal:Q,encryptionStrength:$,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:ne,externalFileAttributes:se,uid:ie,gid:ae,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe,useCompressionStream:he,passThrough:me,format:ye,codecURI:ge}=c,xe={lock:s,versionMadeBy:H,zip64:_,directory:!!Z,executable:!!V,filenameUTF8:!0,rawFilename:T,commentUTF8:!0,rawComment:j,Ye:b,xt:z,Xe:F,Je:E,Qe:D,Ge:A,rawExtraField:q,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ie,gid:ae,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe};let{crc32:Se,uncompressedSize:be}=c,ze=0;me||(be=0);const{writable:Fe}=t;if(e){const r=pe(e.createReadable?e.createReadable():e.readable),n=e.size,s={options:{codecType:Mr,level:N,rawPassword:M,password:O,encryptionStrength:$,zipCrypto:y&&W,passwordVerification:y&&W&&m>>8&I,computeCrc32:!me,compressed:g&&!me,encrypted:y&&!me,useWebWorkers:K,useCompressionStream:he,transferStreams:Y,format:ye,codecURI:ge,compressionMethod:S},config:o,me:{signal:Q,size:n,onstart:G,onprogress:X,onend:J}};try{const e=await ln({readable:r,writable:Fe},s);if(ze=e.outputSize,t.size+=ze,me||(be=e.inputSize,y&&!W||(Se=e.crc32)),!L&&ze>=v||!P&&be>=v)throw new w(ui)}catch(e){throw e.outputSize!==re&&(t.size+=e.outputSize),e}}return(({crc32:e,compressedSize:t,uncompressedSize:r,Ft:n,Et:s},{zip64:a,zipCrypto:o,passThrough:c,dataDescriptor:d})=>{const{et:l,encrypted:u}=n,{bt:w,zt:f}=s;u&&!o&&!c||e===re||(Oi(l,10,e),d&&Oi(w,f,e)),a?d&&(Mi(w,f+4,i(t)),Mi(w,f+12,i(r))):(Oi(l,14,t),Oi(l,18,r),d&&(Oi(w,f+4,t),Oi(w,f+8,r)))})({crc32:Se,compressedSize:ze,uncompressedSize:be,Ft:d,Et:l},c),B&&await Di(t,k),r.assign(xe,{uncompressedSize:be,compressedSize:ze,lastModDate:h,rawLastModDate:m,creationDate:U,lastAccessDate:C,encrypted:y,zipCrypto:W,size:u+ze,compressionMethod:S,version:x,$e:f,et:p,signature:Se,crc32:!y||W||me?Se:re,ct:R,st:P,nt:L}),xe})(n,E,A,s,e.config,a),y||(z=!1),o.set(t,A),A.filename=t,y){if(await g.all([E.writable.getWriter().close(),x]),await T(),b=!0,F=c.size,await C(),A.diskNumberStart=zi(c),A.offset=Ei(e,c),h){const t=s.Dt;xi(s,e.offset-Fi(c)),A.size+=s.Dt-t}(({rawFilename:e,encrypted:t,zip64:r,xt:n,crc32:s,compressedSize:a,uncompressedSize:o,st:c,nt:d},l,{dataDescriptor:u,passThrough:w})=>{if(u||((!t||w&&s!==re)&&Oi(l,14,s),d||Oi(l,18,a),c||Oi(l,22,o)),r&&n){const t=$+_i(e)+4;Mi(l,t,i(o)),Mi(l,t+8,i(a))}})(A,p.gt,a),await Di(c,p.yt),await(async(e,t,r)=>{const n=t.writable.getWriter();try{await e.pipeTo(new D({async write(e){var t;await n.ready,await n.write(e),t=_i(e),k+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(E.readable,c,u),c.size+=E.size,b=!1}else A.diskNumberStart=N,A.offset=_;return e.offset+=A.size,A}catch(r){if(b||z){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=k)}throw o.delete(t),r}finally{if(y&&e.qe--,S&&S(),x&&x(),y&&E&&E.dispose)try{await E.dispose()}catch{}}async function T(){e.Rt=!0;const{At:t}=e;e.At=new g(t=>x=()=>{e.Rt=!1,t()}),await t}async function C(){Ri(c,_i(p.yt))&&await c.closeDisk()}})(e,t,n,{Ft:y,Et:x,Dt:S},s)}catch(r){throw e.files.delete(t),r}return r.assign(p,{name:t,comment:l,extraField:u}),new Qn(p)})(s,e,t,n),c.add(l),await l}catch(t){throw u&&s.Ve.delete(e),t}finally{c.delete(l);const e=mi.shift();e?e():hi--}}remove(e){const{Ve:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==re){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=ae,r={}){const{je:n,writer:s}=this,{writable:a}=s;if(_i(e)>U)throw new w(si);for(;n.size;)await g.allSettled(t.from(n));return await(async(e,r,n)=>{const s=(e=>{let t=0;for(const[,r]of e){const{rawFilename:e,Ge:n,rawComment:s,Je:i,Qe:a,rawExtraField:o,extendedTimestamp:c,ct:d,lastModDate:l,st:u,nt:f,uncompressedSize:p,compressedSize:h}=r,m=r.offset>=v,y=r.diskNumberStart>=U;let g,x;if(m||y||u||f){const e=4+(u?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=bi(e);t.uint16(1),t.uint16(e-4),u&&t.ft(p),f&&t.ft(h),m&&t.ft(r.offset),y&&t.uint32(r.diskNumberStart),g=t.array}else g=ae;r.Ye=g,r.it=m,r.ot=y;const S=ki(l);if(c&&Ti(S)){const e=bi(9);e.uint16(H),e.uint16(5),e.uint8(d),e.uint32(S),x=e.array}else x=ae;r.Xe=x;const b=_i(g,n,i,a,x,o);if(b>U)throw new w(ai);t+=46+_i(e,s)+b}return t})(e.files),a=await(async(e,r,n)=>{const{files:s,writer:i}=e,a=new f(r);await ot(i);let o=0,c=0,d=zi(i),l=Fi(i);for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,Ye:w,Ge:f,Xe:p,Je:h,Qe:m,rawExtraField:y,rawComment:g,versionMadeBy:x,$e:S,et:b,st:z,nt:F,ot:R,it:E,internalFileAttributes:D,externalFileAttributes:A,diskNumberStart:k,uncompressedSize:T,compressedSize:C}=r,I=_i(w,f,p,h,m,y),O=46+_i(u,g)+I;Ri(i,o+O-c)&&(await Di(i,a.slice(c,o)),c=o,await i.closeDisk()),0==e&&(d=zi(i),l=Fi(i)),z||Oi(b,18,T),F||Oi(b,14,C),(E||R)&&45>r.version&&Ii(b,0,45);const M=bi(O);if(M.uint32(_),M.uint16(x),M.bytes(S.subarray(0,24)),M.uint16(I),M.uint16(_i(g)),M.uint16(R?U:k),M.uint16(D),M.uint32(A),M.uint32(E?v:t),M.bytes(u),M.bytes(w),M.bytes(f),M.bytes(p),M.bytes(h),M.bytes(m),M.bytes(y),M.bytes(g),Ni(a,M.array,o),o+=O,n.onprogress)try{await n.onprogress(e+1,s.size,new Qn(r))}catch{}}return await Di(i,c?a.slice(c):a),{diskNumber:d,diskOffset:l}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{kt:a}=n;let{Tt:o}=n,c=e.files.size,d=a.diskNumber,l=Ei(e,a),u=zi(s);Ri(s,B)&&u++;let f=vi(e,r,_n);if(!(v>l&&v>o&&U>c&&U>u)){if(!1===f)throw new w(ui);f=!0}const p=_i(t);if(p>U)throw new w(si);const h=bi(f?98:B);Ri(s,_i(h.array)+p)&&await s.closeDisk(),u=zi(s),f&&(h.uint32(L),h.ft(44),h.uint16(45),h.uint16(45),h.uint32(u),h.uint32(d),h.ft(c),h.ft(c),h.ft(o),h.ft(l),h.uint32(W),h.uint32(u),h.ft(i(Ei(e,s))+i(o)),h.uint32(u+1),vi(e,r,"supportZip64SplitFile",!0)&&(u=U,d=U),c=U,l=v,o=v),h.uint32(P),h.uint16(u),h.uint16(d),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(l),h.uint16(p),await Di(s,h.array),p&&await Di(s,t)})(e,r,n,{kt:a,Tt:s})})(this,e,r),vi(this,r,os)||await a.getWriter().close(),s.getData?s.getData():a}}function gi(e){if(!e)return ae;let t=0,r=0;e.forEach(e=>t+=4+_i(e));const n=new f(t),s=fe(n);return e.forEach((e,t)=>{if(t>U)throw new w("Extra field type exceeds 65535");if(_i(e)>U)throw new w(ai);Ii(s,r,t),Ii(s,r+2,_i(e)),Ni(n,e,r+4),r+=4+_i(e)}),n}function xi(e,t){const{Ft:r}=e;let{yt:n,extraFieldLength:s}=r,i=64-(t+_i(n))%64;4>i&&(i+=64);const a=new f(i),o=fe(a);Ii(o,0,j),Ii(o,2,i-4);const c=n;r.yt=n=new f(_i(c)+i),Ni(n,c),Ni(n,a,_i(c));const d=fe(n);Ii(d,28,s+i),r.gt=d,e.Dt+=i}function Si(e){if(e===re)return ae;{const t=new f(4);fe(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function bi(e){const t=new f(e),r=fe(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{Ii(r,n,e),n+=2},uint32:e=>{Oi(r,n,e),n+=4},ft:e=>{Mi(r,n,i(e)),n+=8},bytes:e=>{Ni(t,e,n),n+=_i(e)},ht:e=>n+=e}}function zi(e){const{diskNumber:t=0}=e;return t}function Fi(e){const{diskOffset:t=0}=e;return t}function Ri(e,t){const{availableSize:r=ne}=e;return t>r}function Ei(e,{diskNumber:t=0,diskOffset:r=0}){return e.offset-r-(t?e.He:0)}async function Di(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=_i(t),await n.write(t)}finally{n.releaseLock()}}function Ai(e){if(e){const t=(i(e.getTime())+i(116444736e5))*i(1e4);return di>t?di:t>li?li:t}}function ki(e){return a.floor(e.getTime()/1e3)}function Ti(e){return e>=oi&&ci>=e}function Ci(e){return a.min(ci,a.max(oi,e))}function vi(e,t,r,n){const s=t[r]===re?e.options[r]:t[r];return s===re?n:s}function Ui(e){return e+5*(a.floor(e/16383)+1)}function Ii(e,t,r){e.setUint16(t,r,!0)}function Oi(e,t,r){e.setUint32(t,r,!0)}function Mi(e,t,r){e.setBigUint64(t,r,!0)}function Ni(e,t,r){e.set(t,r)}function _i(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Pi({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:i,rawLastModDate:a,rawFilename:o,nt:c,st:d,extraFieldLength:l}){const u=bi(26),w=u.array,f=fe(w);if(u.uint16(e),u.uint16(t),u.uint16(r),a===re){const e=new h(1),t=fe(e);Ii(t,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),Ii(t,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),a=e[0]}return u.uint32(a),u.ht(4),c||s!==re?u.uint32(c?v:s):u.ht(4),d||n!==re?u.uint32(d?v:n):u.ht(4),u.uint16(_i(o)),u.uint16(l),{$e:w,et:f,rawLastModDate:a}}function Li(e,t,r,n,s){let i=0;return t&&(i|=Y),r&&(i|=8),8!=s&&9!=s||(0>e||e>3||(i|=6),e>3&&5>=e&&(i|=4),9==e&&(i|=2)),n&&(i|=1),i}const Wi="Entry filename already exists",Bi=new d([1,V,10,H,28789,25461,j,q,K,22613,13]);class Zi{constructor(e,t,n,s){const i=this;if(e.root&&s&&s.getChildByName(t))throw new w(Wi);n||(n={}),r.assign(i,{fs:e,name:t,data:n.data,options:n.options,id:e.Ct++,parent:s,children:[],uncompressedSize:n.uncompressedSize||0,passThrough:n.passThrough}),!s&&e.root||(e.entries[i.id]=i),s&&i.parent.children.push(i)}moveTo(e){this.fs.move(this,e)}getFullname(){return this.getRelativeName()}getRelativeName(e=this.fs.root){let t=this.name,r=this.parent;for(;r&&r!=e;)t=(r.name?r.name+"/":"")+t,r=r.parent;return t}isDescendantOf(e){let t=this.parent;for(;t&&t.id!=e.id;)t=t.parent;return!!t}rename(e){const t=this.parent;if(t&&t.getChildByName(e))throw new w(Wi);this.name=e}}class Vi extends Zi{constructor(e,t,r,n){super(e,t,r,n);const s=this;s.Reader=r.Reader,s.Writer=r.Writer,r.getData&&(s.getData=r.getData)}clone(){return new Vi(this.fs,this.name,this)}async getData(e,t={}){const r=this;if(!e||e.constructor==r.Writer&&r.data)return r.data;{const n=r.reader=Gi(r.Reader,r.data,t),s=r.data?r.data.uncompressedSize:n.size;await g.all([ot(n),ot(e,s)]);const{readable:i}=n;return r.uncompressedSize=n.size,await i.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return!(!this.data||!this.data.encrypted)}async checkPassword(e,t={}){const n=this;if(!n.isPasswordProtected())return!0;try{return await n.data.getData(null,r.assign({},t,{password:e,checkPasswordOnly:!0})),!0}catch(e){if(e.message==Ct)return!1;throw e}}getText(e,t){return this.getData(new Ne(e),t)}getBlob(e,t){return this.getData(new Oe(e),t)}getData64URI(e,t){return this.getData(new Ce(e),t)}getUint8Array(e){return this.getData(new rt,e)}getWritable(e=new D,t){return this.getData({writable:e},t)}async getArrayBuffer(e){return we(await this.getUint8Array(e)).buffer}replaceBlob(e){r.assign(this,{data:e,Reader:Ie,Writer:Oe,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:Me,Writer:Ne,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:Te,Writer:Ce,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:tt,Writer:rt,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:Ki(e),Writer:null,reader:null})}}class Hi extends Zi{constructor(e,t,r,n){super(e,t,r,n),this.directory=!0}clone(e){const t=this,r=new Hi(t.fs,t.name,t);return e&&(r.children=t.children.map(t=>{const n=t.clone(e);return n.parent=r,n})),r}addDirectory(e,t){return ta(this,e,{options:t},!0)}addText(e,t,r={}){return ta(this,e,{data:t,Reader:Me,Writer:Ne,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return ta(this,e,{data:t,Reader:Ie,Writer:Oe,options:r,uncompressedSize:t.size})}addData64URI(e,t,r={}){let n=t.length;for(;"="==t.charAt(n-1);)n--;const s=t.indexOf(",")+1;return ta(this,e,{data:t,Reader:Te,Writer:Ce,options:r,uncompressedSize:a.floor(.75*(n-s))})}addUint8Array(e,t,r={}){return ta(this,e,{data:t,Reader:tt,Writer:rt,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return ta(this,e,{data:t,Reader:class extends et{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return ta(this,e,{Reader:Ki(t),options:r})}addFileSystemEntry(e,t={}){return Qi(this,e,t)}addFileSystemHandle(e,t={}){return Qi(this,e,t)}addFile(e,t={}){return(t=r.assign({},t)).lastModDate||(t.lastModDate=new o(e.lastModified)),ta(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}vt(e,t){return ta(this,e,t)}importBlob(e,t){return this.importZip(new Ie(e),t)}importData64URI(e,t){return this.importZip(new Te(e),t)}importUint8Array(e,t){return this.importZip(new tt(e),t)}importHttpContent(e,t){return this.importZip(new et(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new Oe(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new Ce(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new rt,e)}async exportWritable(e=new D,t={}){return await this.exportZip({writable:e},t),e}exportFileSystemHandle(e,n={}){return(async(e,n,s)=>{const i=qi([e],"uncompressedSize"),a=new c;return await o(e,n),n;async function o(e,t){if(s.concurrent){const r=(await g.allSettled(e.children.map(e=>d(e,t)))).find(e=>"rejected"==e.status);if(r)throw r.reason}else for(const r of e.children)await d(r,t)}async function d(e,n){try{if(e.directory){const t=await n.getDirectoryHandle(e.name,{create:!0});await o(e,t)}else{const o=await n.getFileHandle(e.name,{create:!0}),c=await o.createWritable();await e.getData({writable:c},r.assign({},s,{onprogress:async r=>{if(s.onprogress){a.set(e.id,r);try{await s.onprogress(t.from(a.values()).reduce((e,t)=>e+t,0),i)}catch{}}}}))}}catch(t){throw new w(t.message+(e?" ("+e.name+")":""),{cause:t})}}})(this,e,n)}async importZip(e,t={}){await ot(e);const n=new Cs(e,t),s=[],i=await n.getEntries();for(const e of i){let n=this;try{const i=e.filename.split("/"),a=i.pop();if(i.forEach(e=>{const t=n;if(n=n.getChildByName(e),n){if(!n.directory)throw new w(Wi)}else n=new Hi(this.fs,e,{data:null},t),s.push(n)}),e.directory){let t=n;if(a)if(t=n.getChildByName(a),t){if(!t.directory)throw new w(Wi)}else t=new Hi(this.fs,a,{data:null},n),s.push(t);t==this||t.data||(t.data=e)}else s.push(ta(n,a,{data:e,Reader:Yi(r.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch{}throw t}}return s}async exportZip(e,n={}){const s=this;(n=r.assign({},n)).bufferedWrite===re&&(n.bufferedWrite=!0);const[i]=await g.all([Xi(s,n.readerOptions),ot(e)]),a=new yi(e,n);return await(async(e,n,s,i,a)=>{const o=n,d=new c;await async function e(n,l){async function u(l){const u=i.relativePath?l.getRelativeName(o):l.getFullname(),w=l.options||{};let f={};if(l.data instanceof Qn){const{externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:a,lastAccessDate:o,uncompressedSize:d,encrypted:u,zipCrypto:w,crc32:p,compressionMethod:h,extraFieldAES:m,internalFileAttributes:y,extraField:g,uid:x,gid:S}=l.data;f={externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:a,lastAccessDate:o,internalFileAttributes:y};const b=(e=>{if(e){const t=new c;if(e.forEach((e,r)=>{Bi.has(r)||t.set(r,e.data)}),t.size)return t}})(g);if(b&&(f.extraField=b),x===re&&S===re||r.assign(f,{uid:x,gid:S,unixExtraFieldType:i.unixExtraFieldType||"infozip"}),l.passThrough){let e,t;0===h&&(e=0),m&&(t=m.strength),f=r.assign(f,{passThrough:!0,encrypted:u,zipCrypto:w,crc32:p,uncompressedSize:d,level:e,encryptionStrength:t,compressionMethod:h})}}await n.add(u,a.get(l),r.assign({},i,f,w,{directory:l.directory,onprogress:async e=>{if(i.onprogress){d.set(u,e);try{await i.onprogress(t.from(d.values()).reduce((e,t)=>e+t),s)}catch{}}}})),await e(n,l)}await(async()=>{if(i.bufferedWrite){const e=(await g.allSettled(l.children.map(u))).find(e=>"rejected"==e.status);if(e)throw e.reason}else for(const e of l.children)await u(e)})()}(e,n)})(a,s,qi([s],"uncompressedSize"),n,i),await a.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let r=0;r<t.length;r++){const n=t[r];if(n.name==e)return n}}isPasswordProtected(){const e=this.children;for(let t=0;t<e.length;t++)if(e[t].isPasswordProtected())return!0;return!1}async checkPassword(e,t={}){const r=this.children;return!(await g.all(r.map(r=>r.checkPassword(e,t)))).includes(!1)}}const ji={FS:class{constructor(){ea(this)}get children(){return this.root.children}remove(e){Ji(e);const t=[e];for(;t.length;){const e=t.pop();this.entries[e.id]=null;for(const r of e.children)t.push(r)}e.parent=re}move(e,t){if(e==this.root)throw new w("Root directory cannot be moved");if(!t.directory)throw new w("Target entry is not a directory");if(t.isDescendantOf(e))throw new w("Entry is a ancestor of target entry");if(e!=t){const r=t.getChildByName(e.name);if(r){if(r!=e)throw new w(Wi)}else Ji(e),e.parent=t,t.children.push(e),((e,t)=>{const r=[t];for(;r.length;){const t=r.pop();e.entries[t.id]=t;for(const e of t.children)r.push(e)}})(this,e)}}find(e){const t=e.split("/");let r=this.root;for(let e=0;r&&e<t.length;e++)r=r.getChildByName(t[e]);return r||(r=this.entries.find(t=>t&&(t==this.root||t.isDescendantOf(this.root))&&t.getRelativeName()==e)),r}getById(e){return this.entries[e]}getChildByName(e){return this.root.getChildByName(e)}addDirectory(e,t){return this.root.addDirectory(e,t)}addText(e,t,r){return this.root.addText(e,t,r)}addBlob(e,t,r){return this.root.addBlob(e,t,r)}addData64URI(e,t,r){return this.root.addData64URI(e,t,r)}addUint8Array(e,t,r){return this.root.addUint8Array(e,t,r)}addHttpContent(e,t,r){return this.root.addHttpContent(e,t,r)}addReadable(e,t,r){return this.root.addReadable(e,t,r)}addFileSystemEntry(e,t){return this.root.addFileSystemEntry(e,t)}addFileSystemHandle(e,t){return this.root.addFileSystemHandle(e,t)}addFile(e,t){return this.root.addFile(e,t)}vt(e,t){return this.root.vt(e,t)}importBlob(e,t){return ea(this),this.root.importBlob(e,t)}importData64URI(e,t){return ea(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return ea(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return ea(this),this.root.importHttpContent(e,t)}importReadable(e,t){return ea(this),this.root.importReadable(e,t)}importZip(e,t){return ea(this),this.root.importZip(e,t)}exportBlob(e){return this.root.exportBlob(e)}exportData64URI(e){return this.root.exportData64URI(e)}exportUint8Array(e){return this.root.exportUint8Array(e)}exportWritable(e,t){return this.root.exportWritable(e,t)}exportFileSystemHandle(e,t){return this.root.exportFileSystemHandle(e,t)}exportZip(e,t){return this.root.exportZip(e,t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(e,t){return this.root.checkPassword(e,t)}},ZipDirectoryEntry:Hi,ZipFileEntry:Vi};function qi(e,r){let n=0;const s=t.from(e);for(;s.length;){const e=s.pop();n+=e[r]||0;for(const t of e.children)s.push(t)}return n}function Ki(e){let t;return()=>{if(t)throw new w("Readable stream already consumed");return t=!0,{readable:e}}}function Yi(e){return class extends Ae{constructor(e,t={}){super(),this.entry=e,this.options=t}async init(){const t=this;t.size=t.entry.uncompressedSize;const n=await t.entry.getData(new Oe,r.assign({},e,t.options));t.data=n,t.Ut=new Ie(n),super.init()}readUint8Array(e,t){return this.Ut.readUint8Array(e,t)}}}function Gi(e,t,r){return e.prototype?new e(t,r):e(t,r)}async function Xi(e,t){const r=[],n=[e],s=new c;for(;n.length;){const e=n.pop();for(const t of e.children)t.directory?n.push(t):r.push(t)}return await g.all(r.map(async e=>{const r=e.reader=Gi(e.Reader,e.data,t);s.set(e,r);try{await ot(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch{}throw t}r.size!==re&&(e.uncompressedSize=r.size)})),s}function Ji(e){if(e.parent){const t=e.parent.children;t.forEach((r,n)=>{r.id==e.id&&t.splice(n,1)})}}function Qi(e,t,n){return async function e(t,s,i){if(s)try{if((s.isFile||s.isDirectory)&&(s=await $i(s)),"file"==s.kind){const e=await s.getFile();i.push(t.vt(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:r.assign({},{lastModDate:new o(e.lastModified)},n),uncompressedSize:e.size}))}else if("directory"==s.kind){const r=t.addDirectory(s.name);i.push(r);for await(const t of s.values())await e(r,t,i)}}catch(e){const t=e.message+(s?" ("+s.name+")":"");throw new w(t,{cause:e})}return i}(e,t,[])}async function $i(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new g((t,r)=>e.file(t,r))),e.isDirectory){t.kind="directory";const r=await(async e=>{const t=[];function r(e,n,s){e.readEntries(async i=>{if(i.length){for(const e of i)t.push(await $i(e));r(e,n,s)}else n(t)},s)}return await new g((t,n)=>r(e.createReader(),t,n)),{[Symbol.iterator](){let e=0;return{next(){const r={value:t[e],done:e==t.length};return e++,r}}}}})(e);t.values=()=>r}return t}function ea(e){e.entries=[],e.Ct=0,e.root=new Hi(e)}function ta(e,t,r,n){if(e.directory)return n?new Hi(e.fs,t,r,e):new Vi(e.fs,t,r,e);throw new w("Parent entry is not a directory")}e.fs=ji});