@zip.js/zip.js 2.5.11 → 2.5.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/cli-deno/mc-zip.js +157 -0
  2. package/dist/z-worker-fflate.js +1 -1
  3. package/dist/z-worker-pako.js +1 -1
  4. package/dist/z-worker.js +1 -1
  5. package/dist/zip-fs-full.js +268 -250
  6. package/dist/zip-fs-full.min.js +1 -1
  7. package/dist/zip-fs.js +252 -234
  8. package/dist/zip-fs.min.js +1 -1
  9. package/dist/zip-full.js +266 -248
  10. package/dist/zip-full.min.js +1 -1
  11. package/dist/zip-no-worker-deflate.min.js +1 -1
  12. package/dist/zip-no-worker-inflate.min.js +1 -1
  13. package/dist/zip-no-worker.min.js +1 -1
  14. package/dist/zip.js +250 -232
  15. package/dist/zip.min.js +1 -1
  16. package/index.d.ts +10 -4
  17. package/lib/core/codec-pool-worker.js +66 -44
  18. package/lib/core/codec-pool.js +19 -14
  19. package/lib/core/configuration.js +40 -28
  20. package/lib/core/io.js +42 -59
  21. package/lib/core/streams/aes-crypto-stream.js +5 -5
  22. package/lib/core/streams/codecs/deflate.js +8 -8
  23. package/lib/core/streams/codecs/inflate.js +8 -8
  24. package/lib/core/streams/codecs/sjcl.js +6 -6
  25. package/lib/core/streams/zip-entry-stream.js +3 -4
  26. package/lib/core/util/decode-text.js +1 -8
  27. package/lib/core/util/stream-codec-shim.js +3 -3
  28. package/lib/core/z-worker-core.js +17 -17
  29. package/lib/core/zip-fs-core.js +2 -2
  30. package/lib/core/zip-reader.js +27 -20
  31. package/lib/core/zip-writer.js +42 -45
  32. package/lib/z-worker-inline.js +1 -1
  33. package/package.json +1 -1
  34. package/rollup-fflate.config.dev.js +1 -1
  35. package/rollup-fflate.config.js +2 -2
  36. package/rollup.config.dev.js +1 -1
  37. package/rollup.config.js +3 -3
  38. package/tests/all/test-abort-signal-read.js +4 -2
@@ -4,7 +4,7 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.zip = {}));
5
5
  })(this, (function (exports) { 'use strict';
6
6
 
7
- const { Array, Object, String, BigInt, Math, Date, Map, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, FileReader, document, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream } = globalThis;
7
+ const { Array, Object, String, BigInt, Math, Date, Map, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, document, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator } = globalThis;
8
8
 
9
9
  /*
10
10
  Copyright (c) 2022 Gildas Lormeau. All rights reserved.
@@ -1898,7 +1898,7 @@
1898
1898
  }
1899
1899
 
1900
1900
  ZStream.prototype = {
1901
- deflateInit: function (level, bits) {
1901
+ deflateInit(level, bits) {
1902
1902
  const that = this;
1903
1903
  that.dstate = new Deflate();
1904
1904
  if (!bits)
@@ -1906,7 +1906,7 @@
1906
1906
  return that.dstate.deflateInit(that, level, bits);
1907
1907
  },
1908
1908
 
1909
- deflate: function (flush) {
1909
+ deflate(flush) {
1910
1910
  const that = this;
1911
1911
  if (!that.dstate) {
1912
1912
  return Z_STREAM_ERROR;
@@ -1914,7 +1914,7 @@
1914
1914
  return that.dstate.deflate(that, flush);
1915
1915
  },
1916
1916
 
1917
- deflateEnd: function () {
1917
+ deflateEnd() {
1918
1918
  const that = this;
1919
1919
  if (!that.dstate)
1920
1920
  return Z_STREAM_ERROR;
@@ -1923,14 +1923,14 @@
1923
1923
  return ret;
1924
1924
  },
1925
1925
 
1926
- deflateParams: function (level, strategy) {
1926
+ deflateParams(level, strategy) {
1927
1927
  const that = this;
1928
1928
  if (!that.dstate)
1929
1929
  return Z_STREAM_ERROR;
1930
1930
  return that.dstate.deflateParams(that, level, strategy);
1931
1931
  },
1932
1932
 
1933
- deflateSetDictionary: function (dictionary, dictLength) {
1933
+ deflateSetDictionary(dictionary, dictLength) {
1934
1934
  const that = this;
1935
1935
  if (!that.dstate)
1936
1936
  return Z_STREAM_ERROR;
@@ -1942,7 +1942,7 @@
1942
1942
  // this function so some applications may wish to modify it to avoid
1943
1943
  // allocating a large strm->next_in buffer and copying from it.
1944
1944
  // (See also flush_pending()).
1945
- read_buf: function (buf, start, size) {
1945
+ read_buf(buf, start, size) {
1946
1946
  const that = this;
1947
1947
  let len = that.avail_in;
1948
1948
  if (len > size)
@@ -1960,7 +1960,7 @@
1960
1960
  // through this function so some applications may wish to modify it
1961
1961
  // to avoid allocating a large strm->next_out buffer and copying into it.
1962
1962
  // (See also read_buf()).
1963
- flush_pending: function () {
1963
+ flush_pending() {
1964
1964
  const that = this;
1965
1965
  let len = that.dstate.pending;
1966
1966
 
@@ -2036,7 +2036,7 @@
2036
2036
  bufferIndex += chunk.length;
2037
2037
  });
2038
2038
  } else {
2039
- array = buffers[0] || new Uint8Array(0);
2039
+ array = buffers[0] || new Uint8Array();
2040
2040
  }
2041
2041
  return array;
2042
2042
  };
@@ -4128,7 +4128,7 @@
4128
4128
  }
4129
4129
 
4130
4130
  ZStream.prototype = {
4131
- inflateInit: function (bits) {
4131
+ inflateInit(bits) {
4132
4132
  const that = this;
4133
4133
  that.istate = new Inflate();
4134
4134
  if (!bits)
@@ -4136,14 +4136,14 @@
4136
4136
  return that.istate.inflateInit(that, bits);
4137
4137
  },
4138
4138
 
4139
- inflate: function (f) {
4139
+ inflate(f) {
4140
4140
  const that = this;
4141
4141
  if (!that.istate)
4142
4142
  return Z_STREAM_ERROR;
4143
4143
  return that.istate.inflate(that, f);
4144
4144
  },
4145
4145
 
4146
- inflateEnd: function () {
4146
+ inflateEnd() {
4147
4147
  const that = this;
4148
4148
  if (!that.istate)
4149
4149
  return Z_STREAM_ERROR;
@@ -4152,23 +4152,23 @@
4152
4152
  return ret;
4153
4153
  },
4154
4154
 
4155
- inflateSync: function () {
4155
+ inflateSync() {
4156
4156
  const that = this;
4157
4157
  if (!that.istate)
4158
4158
  return Z_STREAM_ERROR;
4159
4159
  return that.istate.inflateSync(that);
4160
4160
  },
4161
- inflateSetDictionary: function (dictionary, dictLength) {
4161
+ inflateSetDictionary(dictionary, dictLength) {
4162
4162
  const that = this;
4163
4163
  if (!that.istate)
4164
4164
  return Z_STREAM_ERROR;
4165
4165
  return that.istate.inflateSetDictionary(that, dictionary, dictLength);
4166
4166
  },
4167
- read_byte: function (start) {
4167
+ read_byte(start) {
4168
4168
  const that = this;
4169
4169
  return that.next_in[start];
4170
4170
  },
4171
- read_buf: function (start, size) {
4171
+ read_buf(start, size) {
4172
4172
  const that = this;
4173
4173
  return that.next_in.subarray(start, start + size);
4174
4174
  }
@@ -4228,7 +4228,7 @@
4228
4228
  bufferIndex += chunk.length;
4229
4229
  });
4230
4230
  } else {
4231
- array = buffers[0] || new Uint8Array(0);
4231
+ array = buffers[0] || new Uint8Array();
4232
4232
  }
4233
4233
  return array;
4234
4234
  };
@@ -4271,6 +4271,7 @@
4271
4271
  /* global navigator */
4272
4272
 
4273
4273
  const MINIMUM_CHUNK_SIZE = 64;
4274
+ const UNDEFINED_TYPE$2 = undefined;
4274
4275
  const DEFAULT_CONFIGURATION = {
4275
4276
  chunkSize: 512 * 1024,
4276
4277
  maxWorkers: (typeof navigator != "undefined" && navigator.hardwareConcurrency) || 2,
@@ -4290,48 +4291,59 @@
4290
4291
  }
4291
4292
 
4292
4293
  function configure(configuration) {
4293
- if (configuration.baseURL !== undefined) {
4294
- config.baseURL = configuration.baseURL;
4294
+ const {
4295
+ baseURL,
4296
+ chunkSize,
4297
+ maxWorkers,
4298
+ terminateWorkerTimeout,
4299
+ useCompressionStream,
4300
+ useWebWorkers,
4301
+ Deflate,
4302
+ Inflate,
4303
+ workerScripts
4304
+ } = configuration;
4305
+ if (baseURL !== UNDEFINED_TYPE$2) {
4306
+ config.baseURL = baseURL;
4295
4307
  }
4296
- if (configuration.chunkSize !== undefined) {
4297
- config.chunkSize = configuration.chunkSize;
4308
+ if (chunkSize !== UNDEFINED_TYPE$2) {
4309
+ config.chunkSize = chunkSize;
4298
4310
  }
4299
- if (configuration.maxWorkers !== undefined) {
4300
- config.maxWorkers = configuration.maxWorkers;
4311
+ if (maxWorkers !== UNDEFINED_TYPE$2) {
4312
+ config.maxWorkers = maxWorkers;
4301
4313
  }
4302
- if (configuration.terminateWorkerTimeout !== undefined) {
4303
- config.terminateWorkerTimeout = configuration.terminateWorkerTimeout;
4314
+ if (terminateWorkerTimeout !== UNDEFINED_TYPE$2) {
4315
+ config.terminateWorkerTimeout = terminateWorkerTimeout;
4304
4316
  }
4305
- if (configuration.useCompressionStream !== undefined) {
4306
- config.useCompressionStream = configuration.useCompressionStream;
4317
+ if (useCompressionStream !== UNDEFINED_TYPE$2) {
4318
+ config.useCompressionStream = useCompressionStream;
4307
4319
  }
4308
- if (configuration.useWebWorkers !== undefined) {
4309
- config.useWebWorkers = configuration.useWebWorkers;
4320
+ if (useWebWorkers !== UNDEFINED_TYPE$2) {
4321
+ config.useWebWorkers = useWebWorkers;
4310
4322
  }
4311
- if (configuration.Deflate !== undefined) {
4312
- config.Deflate = configuration.Deflate;
4323
+ if (Deflate !== UNDEFINED_TYPE$2) {
4324
+ config.Deflate = Deflate;
4313
4325
  }
4314
- if (configuration.Inflate !== undefined) {
4315
- config.Inflate = configuration.Inflate;
4326
+ if (Inflate !== UNDEFINED_TYPE$2) {
4327
+ config.Inflate = Inflate;
4316
4328
  }
4317
- if (configuration.workerScripts !== undefined) {
4318
- if (configuration.workerScripts.deflate) {
4319
- if (!Array.isArray(configuration.workerScripts.deflate)) {
4320
- throw new Error("workerScripts.deflate must be an array");
4321
- }
4329
+ if (workerScripts !== UNDEFINED_TYPE$2) {
4330
+ const { deflate, inflate } = workerScripts;
4331
+ if (deflate || inflate) {
4322
4332
  if (!config.workerScripts) {
4323
4333
  config.workerScripts = {};
4324
4334
  }
4325
- config.workerScripts.deflate = configuration.workerScripts.deflate;
4326
4335
  }
4327
- if (configuration.workerScripts.inflate) {
4328
- if (!Array.isArray(configuration.workerScripts.inflate)) {
4329
- throw new Error("workerScripts.inflate must be an array");
4336
+ if (deflate) {
4337
+ if (!Array.isArray(deflate)) {
4338
+ throw new Error("workerScripts.deflate must be an array");
4330
4339
  }
4331
- if (!config.workerScripts) {
4332
- config.workerScripts = {};
4340
+ config.workerScripts.deflate = deflate;
4341
+ }
4342
+ if (inflate) {
4343
+ if (!Array.isArray(inflate)) {
4344
+ throw new Error("workerScripts.inflate must be an array");
4333
4345
  }
4334
- config.workerScripts.inflate = configuration.workerScripts.inflate;
4346
+ config.workerScripts.inflate = inflate;
4335
4347
  }
4336
4348
  }
4337
4349
  }
@@ -5752,7 +5764,7 @@
5752
5764
  * Reset the hash state.
5753
5765
  * @return this
5754
5766
  */
5755
- reset: function () {
5767
+ reset() {
5756
5768
  const sha1 = this;
5757
5769
  sha1._h = this._init.slice(0);
5758
5770
  sha1._buffer = [];
@@ -5765,7 +5777,7 @@
5765
5777
  * @param {bitArray|String} data the data to hash.
5766
5778
  * @return this
5767
5779
  */
5768
- update: function (data) {
5780
+ update(data) {
5769
5781
  const sha1 = this;
5770
5782
  if (typeof data === "string") {
5771
5783
  data = codec.utf8String.toBits(data);
@@ -5791,7 +5803,7 @@
5791
5803
  * Complete hashing and output the hash value.
5792
5804
  * @return {bitArray} The hash value, an array of 5 big-endian words. TODO
5793
5805
  */
5794
- finalize: function () {
5806
+ finalize() {
5795
5807
  const sha1 = this;
5796
5808
  let b = sha1._buffer;
5797
5809
  const h = sha1._h;
@@ -5831,7 +5843,7 @@
5831
5843
  * The SHA-1 logical functions f(0), f(1), ..., f(79).
5832
5844
  * @private
5833
5845
  */
5834
- _f: function (t, b, c, d) {
5846
+ _f(t, b, c, d) {
5835
5847
  if (t <= 19) {
5836
5848
  return (b & c) | (~b & d);
5837
5849
  } else if (t <= 39) {
@@ -5847,7 +5859,7 @@
5847
5859
  * Circular left-shift operator.
5848
5860
  * @private
5849
5861
  */
5850
- _S: function (n, x) {
5862
+ _S(n, x) {
5851
5863
  return (x << n) | (x >>> 32 - n);
5852
5864
  },
5853
5865
 
@@ -5856,7 +5868,7 @@
5856
5868
  * @param {Uint32Array|bitArray} words one block of words.
5857
5869
  * @private
5858
5870
  */
5859
- _block: function (words) {
5871
+ _block(words) {
5860
5872
  const sha1 = this;
5861
5873
  const h = sha1._h;
5862
5874
  // When words is passed to _block, it has 16 elements. SHA1 _block
@@ -6404,7 +6416,7 @@
6404
6416
  password,
6405
6417
  signed,
6406
6418
  strength: strength - 1,
6407
- pending: new Uint8Array(0)
6419
+ pending: new Uint8Array()
6408
6420
  });
6409
6421
  },
6410
6422
  async transform(chunk, controller) {
@@ -6430,7 +6442,7 @@
6430
6442
  const pending = aesCrypto.pending;
6431
6443
  const chunkToDecrypt = subarray(pending, 0, pending.length - SIGNATURE_LENGTH);
6432
6444
  const originalSignature = subarray(pending, pending.length - SIGNATURE_LENGTH);
6433
- let decryptedChunkArray = new Uint8Array(0);
6445
+ let decryptedChunkArray = new Uint8Array();
6434
6446
  if (chunkToDecrypt.length) {
6435
6447
  const encryptedChunk = toBits(codecBytes, chunkToDecrypt);
6436
6448
  aesCrypto.hmac.update(encryptedChunk);
@@ -6463,12 +6475,12 @@
6463
6475
  ready: new Promise(resolve => this.resolveReady = resolve),
6464
6476
  password,
6465
6477
  strength: strength - 1,
6466
- pending: new Uint8Array(0)
6478
+ pending: new Uint8Array()
6467
6479
  });
6468
6480
  },
6469
6481
  async transform(chunk, controller) {
6470
6482
  const aesCrypto = this;
6471
- let preamble = new Uint8Array(0);
6483
+ let preamble = new Uint8Array();
6472
6484
  if (aesCrypto.password) {
6473
6485
  const password = aesCrypto.password;
6474
6486
  aesCrypto.password = null;
@@ -6486,7 +6498,7 @@
6486
6498
  async flush(controller) {
6487
6499
  const aesCrypto = this;
6488
6500
  await aesCrypto.ready;
6489
- let encryptedChunkArray = new Uint8Array(0);
6501
+ let encryptedChunkArray = new Uint8Array();
6490
6502
  if (aesCrypto.pending.length) {
6491
6503
  const encryptedChunk = aesCrypto.ctr.update(toBits(codecBytes, aesCrypto.pending));
6492
6504
  aesCrypto.hmac.update(encryptedChunk);
@@ -6862,8 +6874,7 @@
6862
6874
  readable = pipeCodecStream(codecConstructor, readable, chunkSize);
6863
6875
  } else {
6864
6876
  try {
6865
- const compressionStream = new CompressionStream(COMPRESSION_FORMAT);
6866
- readable = readable.pipeThrough(compressionStream);
6877
+ readable = readable.pipeThrough(new CompressionStream(COMPRESSION_FORMAT));
6867
6878
  } catch (_error) {
6868
6879
  DEFLATE_RAW_SUPPORTED = false;
6869
6880
  readable = pipeCodecStream(codecConstructor, readable, chunkSize);
@@ -6942,8 +6953,8 @@
6942
6953
  }
6943
6954
  }
6944
6955
 
6945
- function pipeCodecStream(codecConstructor, stream, chunkSize) {
6946
- return stream.pipeThrough(new CodecStream(codecConstructor, { chunkSize }));
6956
+ function pipeCodecStream(codecConstructor, readable, chunkSize) {
6957
+ return readable.pipeThrough(new CodecStream(codecConstructor, { chunkSize }));
6947
6958
  }
6948
6959
 
6949
6960
  function filterEmptyChunks(readable) {
@@ -7068,7 +7079,9 @@
7068
7079
 
7069
7080
  let classicWorkersSupported = true;
7070
7081
 
7071
- function getWorker(workerData, codecConstructor, readable, writable, options, config, streamOptions, onTaskFinished, webWorker, scripts) {
7082
+ function getWorker(workerData, stream, workerOptions, onTaskFinished) {
7083
+ const { readable, writable } = stream;
7084
+ const { options, config, streamOptions, webWorker, scripts, codecConstructor } = workerOptions;
7072
7085
  Object.assign(workerData, {
7073
7086
  busy: true,
7074
7087
  codecConstructor,
@@ -7087,36 +7100,47 @@
7087
7100
  onTaskFinished(workerData);
7088
7101
  }
7089
7102
  });
7090
- const { signal, onprogress, size } = streamOptions;
7091
- if (signal || onprogress) {
7103
+ const { signal, size, onstart, onprogress, onend } = streamOptions;
7104
+ if (signal || onstart || onprogress || onend) {
7092
7105
  let chunkOffset = 0;
7093
7106
  const transformer = {};
7107
+ if (onstart) {
7108
+ transformer.start = () => callHandler(onstart, size());
7109
+ }
7094
7110
  if (onprogress) {
7095
- transformer.transform = (chunk, controller) => {
7111
+ transformer.transform = async (chunk, controller) => {
7096
7112
  chunkOffset += chunk.length;
7097
- try {
7098
- onprogress(chunkOffset, size());
7099
- } catch (_error) {
7100
- // ignored
7101
- }
7113
+ await callHandler(onprogress, chunkOffset, size());
7102
7114
  controller.enqueue(chunk);
7103
7115
  };
7104
7116
  }
7105
- workerData.readable = readable.pipeThrough(new TransformStream(transformer), { signal });
7117
+ if (onend) {
7118
+ transformer.flush = () => callHandler(onend);
7119
+ }
7120
+ workerData.readable = readable.pipeThrough(new TransformStream(transformer, { highWaterMark: 1, size: () => config.chunkSize }), { signal });
7106
7121
  }
7107
7122
  return webWorker ? createWebWorkerInterface(workerData, config) : createWorkerInterface(workerData, config);
7108
7123
  }
7109
7124
 
7125
+ async function callHandler(handler, ...parameters) {
7126
+ try {
7127
+ await handler(...parameters);
7128
+ } catch (_error) {
7129
+ // ignored
7130
+ }
7131
+ }
7132
+
7110
7133
  function createWorkerInterface(workerData, config) {
7111
7134
  const interfaceCodec = createCodec(workerData.codecConstructor, workerData.readable, workerData.writable, workerData.options, config);
7135
+ const { onTaskFinished } = workerData;
7112
7136
  const codec = {
7113
7137
  abort() {
7114
7138
  interfaceCodec.abort();
7115
- workerData.onTaskFinished();
7139
+ onTaskFinished();
7116
7140
  },
7117
- run() {
7118
- const result = interfaceCodec.run();
7119
- workerData.onTaskFinished();
7141
+ async run() {
7142
+ const result = await interfaceCodec.run();
7143
+ onTaskFinished();
7120
7144
  return result;
7121
7145
  }
7122
7146
  };
@@ -7125,11 +7149,14 @@
7125
7149
 
7126
7150
  function createWebWorkerInterface(workerData, { baseURL, chunkSize }) {
7127
7151
  const workerOptions = { type: "module" };
7128
- workerData.reader = workerData.readable.getReader();
7129
- workerData.writer = workerData.writable.getWriter();
7130
- workerData.result = new Promise((resolve, reject) => {
7131
- workerData.resolveResult = resolve;
7132
- workerData.rejectResult = reject;
7152
+ const { readable, writable } = workerData;
7153
+ Object.assign(workerData, {
7154
+ reader: readable.getReader(),
7155
+ writer: writable.getWriter(),
7156
+ result: new Promise((resolve, reject) => {
7157
+ workerData.resolveResult = resolve;
7158
+ workerData.rejectResult = reject;
7159
+ })
7133
7160
  });
7134
7161
  if (!workerData.interface) {
7135
7162
  if (!classicWorkersSupported) {
@@ -7150,7 +7177,7 @@
7150
7177
  workerData.onTaskFinished();
7151
7178
  },
7152
7179
  run() {
7153
- const options = workerData.options;
7180
+ const { options } = workerData;
7154
7181
  const scripts = workerData.scripts.slice(1);
7155
7182
  sendMessage({ type: MESSAGE_START, scripts, options, config: { chunkSize } });
7156
7183
  return workerData.result;
@@ -7174,12 +7201,13 @@
7174
7201
  }
7175
7202
 
7176
7203
  function sendMessage(message) {
7177
- const worker = workerData.worker;
7204
+ const { worker, writer, onTaskFinished } = workerData;
7178
7205
  try {
7179
7206
  let { data } = message;
7180
7207
  if (data) {
7181
7208
  try {
7182
- if (data.length != data.buffer.byteLength) {
7209
+ const { buffer, length } = data;
7210
+ if (length != buffer.byteLength) {
7183
7211
  data = new Uint8Array(data);
7184
7212
  }
7185
7213
  message.data = data.buffer;
@@ -7191,43 +7219,48 @@
7191
7219
  worker.postMessage(message);
7192
7220
  }
7193
7221
  } catch (error) {
7194
- workerData.writer.releaseLock();
7195
- workerData.onTaskFinished();
7222
+ writer.releaseLock();
7223
+ onTaskFinished();
7196
7224
  throw error;
7197
7225
  }
7198
7226
  }
7199
7227
 
7200
7228
  async function onMessage(event) {
7201
7229
  const message = event.data;
7230
+ const { reader, writer, resolveResult, rejectResult, onTaskFinished } = workerData;
7231
+ const { type, data, messageId, result } = message;
7202
7232
  const reponseError = message.error;
7203
7233
  try {
7204
7234
  if (reponseError) {
7205
- const error = new Error(reponseError.message);
7206
- error.stack = reponseError.stack;
7207
- workerData.rejectResult(error);
7208
- workerData.writer.releaseLock();
7209
- workerData.onTaskFinished();
7235
+ const { message, stack } = reponseError;
7236
+ const error = new Error(message);
7237
+ error.stack = stack;
7238
+ close(error);
7210
7239
  } else {
7211
- if (message.type == MESSAGE_PULL) {
7212
- const { value, done } = await workerData.reader.read();
7213
- sendMessage({ type: MESSAGE_DATA, data: value, done, messageId: message.messageId });
7240
+ if (type == MESSAGE_PULL) {
7241
+ const { value, done } = await reader.read();
7242
+ sendMessage({ type: MESSAGE_DATA, data: value, done, messageId });
7214
7243
  }
7215
- if (message.type == MESSAGE_DATA) {
7216
- let { data } = message;
7217
- data = new Uint8Array(data);
7218
- await workerData.writer.ready;
7219
- await workerData.writer.write(data);
7244
+ if (type == MESSAGE_DATA) {
7245
+ await writer.ready;
7246
+ await writer.write(new Uint8Array(data));
7220
7247
  }
7221
- if (message.type == MESSAGE_CLOSE) {
7222
- workerData.resolveResult(message.result);
7223
- workerData.writer.releaseLock();
7224
- workerData.onTaskFinished();
7248
+ if (type == MESSAGE_CLOSE) {
7249
+ close(null, result);
7225
7250
  }
7226
7251
  }
7227
7252
  } catch (error) {
7228
- workerData.rejectResult(error);
7229
- workerData.writer.releaseLock();
7230
- workerData.onTaskFinished();
7253
+ close(error);
7254
+ }
7255
+
7256
+ function close(error, result) {
7257
+ if (error) {
7258
+ rejectResult(error);
7259
+ } else {
7260
+ resolveResult(result);
7261
+ }
7262
+ writer.releaseLock();
7263
+ onTaskFinished();
7231
7264
  }
7232
7265
  }
7233
7266
  }
@@ -7265,24 +7298,27 @@
7265
7298
 
7266
7299
  let indexWorker = 0;
7267
7300
 
7268
- async function runCodec(codecConstructor, readable, writable, options, config, streamOptions) {
7301
+ async function runWorker(stream, workerOptions) {
7302
+ const { options, config, streamOptions } = workerOptions;
7269
7303
  const streamCopy = !options.compressed && !options.signed && !options.encrypted;
7270
- const webWorker = !streamCopy && (options.useWebWorkers || (options.useWebWorkers === undefined && config.useWebWorkers));
7271
- const scripts = webWorker && config.workerScripts ? config.workerScripts[options.codecType] : [];
7272
- options.useCompressionStream = options.useCompressionStream === undefined ? config.useCompressionStream : options.useCompressionStream;
7304
+ const { useWebWorkers, useCompressionStream, codecType } = options;
7305
+ const { workerScripts } = config;
7306
+ workerOptions.webWorker = !streamCopy && (useWebWorkers || (useWebWorkers === undefined && config.useWebWorkers));
7307
+ workerOptions.scripts = workerOptions.webWorker && workerScripts ? workerScripts[codecType] : [];
7308
+ options.useCompressionStream = useCompressionStream === undefined ? config.useCompressionStream : useCompressionStream;
7273
7309
  let codec;
7274
7310
  if (pool.length < config.maxWorkers) {
7275
7311
  const workerData = { indexWorker };
7276
7312
  indexWorker++;
7277
7313
  pool.push(workerData);
7278
- codec = getWorker(workerData, codecConstructor, readable, writable, options, config, streamOptions, onTaskFinished, webWorker, scripts);
7314
+ codec = getWorker(workerData, stream, workerOptions, onTaskFinished);
7279
7315
  } else {
7280
7316
  const workerData = pool.find(workerData => !workerData.busy);
7281
7317
  if (workerData) {
7282
7318
  clearTerminateTimeout(workerData);
7283
- codec = getWorker(workerData, codecConstructor, readable, writable, options, config, streamOptions, onTaskFinished, webWorker, scripts);
7319
+ codec = getWorker(workerData, stream, workerOptions, onTaskFinished);
7284
7320
  } else {
7285
- codec = await new Promise(resolve => pendingRequests.push({ resolve, codecConstructor, readable, writable, options, webWorker, scripts }));
7321
+ codec = await new Promise(resolve => pendingRequests.push({ resolve, stream, workerOptions }));
7286
7322
  }
7287
7323
  }
7288
7324
  const { signal } = streamOptions;
@@ -7299,15 +7335,16 @@
7299
7335
 
7300
7336
  function onTaskFinished(workerData) {
7301
7337
  if (pendingRequests.length) {
7302
- const [{ resolve, codecConstructor, readable, writable, options, webWorker, scripts }] = pendingRequests.splice(0, 1);
7303
- resolve(getWorker(workerData, codecConstructor, readable, writable, options, config, streamOptions, onTaskFinished, webWorker, scripts));
7338
+ const [{ resolve, stream, workerOptions }] = pendingRequests.splice(0, 1);
7339
+ resolve(getWorker(workerData, stream, workerOptions, onTaskFinished));
7304
7340
  } else if (workerData.worker) {
7341
+ const { terminateWorkerTimeout } = config;
7305
7342
  clearTerminateTimeout(workerData);
7306
- if (Number.isFinite(config.terminateWorkerTimeout) && config.terminateWorkerTimeout >= 0) {
7343
+ if (Number.isFinite(terminateWorkerTimeout) && terminateWorkerTimeout >= 0) {
7307
7344
  workerData.terminateTimeout = setTimeout(() => {
7308
7345
  pool = pool.filter(data => data != workerData);
7309
7346
  workerData.terminate();
7310
- }, config.terminateWorkerTimeout);
7347
+ }, terminateWorkerTimeout);
7311
7348
  }
7312
7349
  } else {
7313
7350
  pool = pool.filter(data => data != workerData);
@@ -7316,8 +7353,9 @@
7316
7353
  }
7317
7354
 
7318
7355
  function clearTerminateTimeout(workerData) {
7319
- if (workerData.terminateTimeout) {
7320
- clearTimeout(workerData.terminateTimeout);
7356
+ const { terminateTimeout } = workerData;
7357
+ if (terminateTimeout) {
7358
+ clearTimeout(terminateTimeout);
7321
7359
  workerData.terminateTimeout = null;
7322
7360
  }
7323
7361
  }
@@ -7329,7 +7367,7 @@
7329
7367
  });
7330
7368
  }
7331
7369
 
7332
- var e=e=>{if("function"==typeof URL.createObjectURL){const t=()=>URL.createObjectURL(new Blob(['const{Array:t,Object:e,Math:n,Error:r,Uint8Array:i,Uint16Array:s,Uint32Array:o,Int32Array:f,DataView:c,TextEncoder:l,crypto:a,postMessage:u,TransformStream:w,ReadableStream:h,WritableStream:d,CompressionStream:p,DecompressionStream:b}=globalThis,y=[];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;y[t]=e}class m{constructor(t){this.t=t||-1}append(t){let e=0|this.t;for(let n=0,r=0|t.length;r>n;n++)e=e>>>8^y[255&(e^t[n])];this.t=e}get(){return~this.t}}class k extends w{constructor(){super({start(){this.i=new m},transform(t){this.i.append(t)},flush(t){const e=new i(4);new c(e.buffer).setUint32(0,this.i.get()),t.enqueue(e)}})}}const g={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=g.o(n);return 32===r?t.concat(e):g.l(e,r,0|n,t.slice(0,t.length-1))},u(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+g.o(n)},h(t,e){if(32*t.length<e)return t;const r=(t=t.slice(0,n.ceil(e/32))).length;return e&=31,r>0&&e&&(t[r-1]=g.p(e,t[r-1]&2147483648>>e-1,1)),t},p:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,o:t=>n.round(t/1099511627776)||32,l(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let i=0;i<t.length;i++)r.push(n|t[i]>>>e),n=t[i]<<32-e;const i=t.length?t[t.length-1]:0,s=g.o(i);return r.push(g.p(e+s&31,e+s>32?n:r.pop(),1)),r}},v={m:{k(t){const e=g.u(t)/8,n=new i(e);let r;for(let i=0;e>i;i++)0==(3&i)&&(r=t[i/4]),n[i]=r>>>24,r<<=8;return n},g(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3==(3&n)&&(e.push(r),r=0);return 3&n&&e.push(g.p(8*(3&n),r)),e}}},S={v:function(t){t?(this.S=t.S.slice(0),this._=t._.slice(0),this.C=t.C):this.reset()}};S.v.prototype={blockSize:512,reset:function(){const t=this;return t.S=this.A.slice(0),t._=[],t.C=0,t},update:function(t){const e=this;"string"==typeof t&&(t=v.I.g(t));const n=e._=g.concat(e._,t),i=e.C,s=e.C=i+g.u(t);if(s>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const f=new o(n);let c=0;for(let t=e.blockSize+i-(e.blockSize+i&e.blockSize-1);s>=t;t+=e.blockSize)e.V(f.subarray(16*c,16*(c+1))),c+=1;return n.splice(0,16*c),e},P:function(){const t=this;let e=t._;const r=t.S;e=g.concat(e,[g.p(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(n.floor(t.C/4294967296)),e.push(0|t.C);e.length;)t.V(e.splice(0,16));return t.reset(),r},A:[1732584193,4023233417,2562383102,271733878,3285377520],B:[1518500249,1859775393,2400959708,3395469782],D:(t,e,n,r)=>t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r,M:(t,e)=>e<<t|e>>>32-t,V:function(e){const r=this,i=r.S,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let o=i[0],f=i[1],c=i[2],l=i[3],a=i[4];for(let t=0;79>=t;t++){16>t||(s[t]=r.M(1,s[t-3]^s[t-8]^s[t-14]^s[t-16]));const e=r.M(5,o)+r.D(t,f,c,l)+a+s[t]+r.B[n.floor(t/20)]|0;a=l,l=c,c=r.M(30,f),f=o,o=e}i[0]=i[0]+o|0,i[1]=i[1]+f|0,i[2]=i[2]+c|0,i[3]=i[3]+l|0,i[4]=i[4]+a|0}};const _={getRandomValues(t){const e=new o(t.buffer),r=t=>{let e=987654321;const r=4294967295;return()=>(e=36969*(65535&e)+(e>>16)&r,(((e<<16)+(t=18e3*(65535&t)+(t>>16)&r)&r)/4294967296+.5)*(n.random()>.5?1:-1))};for(let i,s=0;s<t.length;s+=4){const t=r(4294967296*(i||n.random()));i=987654071*t(),e[s/4]=4294967296*t()|0}return t}},C={importKey:t=>new C.R(v.m.g(t)),U(t,e,n,i){if(n=n||1e4,0>i||0>n)throw new r("invalid params to pbkdf2");const s=1+(i>>5)<<2;let o,f,l,a,u;const w=new ArrayBuffer(s),h=new c(w);let d=0;const p=g;for(e=v.m.g(e),u=1;(s||1)>d;u++){for(o=f=t.encrypt(p.concat(e,[u])),l=1;n>l;l++)for(f=t.encrypt(f),a=0;a<f.length;a++)o[a]^=f[a];for(l=0;(s||1)>d&&l<o.length;l++)h.setInt32(d,o[l]),d+=4}return w.slice(0,i/8)},R:class{constructor(t){const e=this,n=e.T=S.v,r=[[],[]],i=n.prototype.blockSize/32;e.W=[new n,new n],t.length>i&&(t=n.hash(t));for(let e=0;i>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.W[0].update(r[0]),e.W[1].update(r[1]),e.j=new n(e.W[0])}reset(){const t=this;t.j=new t.T(t.W[0]),t.H=!1}update(t){this.H=!0,this.j.update(t)}digest(){const t=this,e=t.j.P(),n=new t.T(t.W[1]).update(e).P();return t.reset(),n}encrypt(t){if(this.H)throw new r("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},z={name:"PBKDF2"},x=e.assign({hash:{name:"HMAC"}},z),A=e.assign({iterations:1e3,hash:{name:"SHA-1"}},z),I=["deriveBits"],V=[8,12,16],P=[16,24,32],B=[0,0,0,0],D=void 0!==a,E=D&&void 0!==a.subtle,M=D&&"function"==typeof a.getRandomValues,R=D&&E&&"function"==typeof a.subtle.importKey,U=D&&E&&"function"==typeof a.subtle.deriveBits,T=v.m,W=class{constructor(t){const e=this;e.K=[[[],[],[],[],[]],[[],[],[],[],[]]],e.K[0][0][0]||e.L();const n=e.K[0][4],i=e.K[1],s=t.length;let o,f,c,l=1;if(4!==s&&6!==s&&8!==s)throw new r("invalid aes key size");for(e.B=[f=t.slice(0),c=[]],o=s;4*s+28>o;o++){let t=f[o-1];(o%s==0||8===s&&o%s==4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%s==0&&(t=t<<8^t>>>24^l<<24,l=l<<1^283*(l>>7))),f[o]=f[o-s]^t}for(let t=0;o;t++,o--){const e=f[3&t?o:o-4];c[t]=4>=o||4>t?e:i[0][n[e>>>24]]^i[1][n[e>>16&255]]^i[2][n[e>>8&255]]^i[3][n[255&e]]}}encrypt(t){return this.F(t,0)}decrypt(t){return this.F(t,1)}L(){const t=this.K[0],e=this.K[1],n=t[4],r=e[4],i=[],s=[];let o,f,c,l;for(let t=0;256>t;t++)s[(i[t]=t<<1^283*(t>>7))^t]=t;for(let a=o=0;!n[a];a^=f||1,o=s[o]||1){let s=o^o<<1^o<<2^o<<3^o<<4;s=s>>8^255&s^99,n[a]=s,r[s]=a,l=i[c=i[f=i[a]]];let u=16843009*l^65537*c^257*f^16843008*a,w=257*i[s]^16843008*s;for(let n=0;4>n;n++)t[n][a]=w=w<<24^w>>>8,e[n][s]=u=u<<24^u>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}F(t,e){if(4!==t.length)throw new r("invalid aes block size");const n=this.B[e],i=n.length/4-2,s=[0,0,0,0],o=this.K[e],f=o[0],c=o[1],l=o[2],a=o[3],u=o[4];let w,h,d,p=t[0]^n[0],b=t[e?3:1]^n[1],y=t[2]^n[2],m=t[e?1:3]^n[3],k=4;for(let t=0;i>t;t++)w=f[p>>>24]^c[b>>16&255]^l[y>>8&255]^a[255&m]^n[k],h=f[b>>>24]^c[y>>16&255]^l[m>>8&255]^a[255&p]^n[k+1],d=f[y>>>24]^c[m>>16&255]^l[p>>8&255]^a[255&b]^n[k+2],m=f[m>>>24]^c[p>>16&255]^l[b>>8&255]^a[255&y]^n[k+3],k+=4,p=w,b=h,y=d;for(let t=0;4>t;t++)s[e?3&-t:t]=u[p>>>24]<<24^u[b>>16&255]<<16^u[y>>8&255]<<8^u[255&m]^n[k++],w=p,p=b,b=y,y=m,m=w;return s}},j=class{constructor(t,e){this.O=t,this.q=e,this.G=e}reset(){this.G=this.q}update(t){return this.J(this.O,t,this.G)}N(t){if(255==(t>>24&255)){let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}else t+=1<<24;return t}X(t){0===(t[0]=this.N(t[0]))&&(t[1]=this.N(t[1]))}J(t,e,n){let r;if(!(r=e.length))return[];const i=g.u(e);for(let i=0;r>i;i+=4){this.X(n);const r=t.encrypt(n);e[i]^=r[0],e[i+1]^=r[1],e[i+2]^=r[2],e[i+3]^=r[3]}return g.h(e,i)}},H=C.R;class K extends w{constructor(n,s,o){let f;super({start(){e.assign(this,{ready:new Promise((t=>this.Y=t)),password:n,signed:s,Z:o-1,pending:new i(0)})},async transform(e,n){const s=this;if(s.password){const n=s.password;s.password=null;const i=G(e,0,V[s.Z]+2);await(async(t,e,n)=>{await O(t,n,G(e,0,V[t.Z]));const i=G(e,V[t.Z]),s=t.keys.passwordVerification;if(s[0]!=i[0]||s[1]!=i[1])throw new r("Invalid pasword")})(s,i,n),s.$=new j(new W(s.keys.key),t.from(B)),s.tt=new H(s.keys.et),e=G(e,V[s.Z]+2),s.Y()}else await s.ready;const o=new i(e.length-10-(e.length-10)%16);n.enqueue(F(s,e,o,0,10,!0))},async flush(t){const e=this;await e.ready;const n=e.pending,r=G(n,0,n.length-10),s=G(n,n.length-10);let o=new i(0);if(r.length){const t=N(T,r);e.tt.update(t);const n=e.$.update(t);o=J(T,n)}if(f.valid=!0,e.signed){const t=G(J(T,e.tt.digest()),0,10);for(let e=0;10>e;e++)t[e]!=s[e]&&(f.valid=!1)}t.enqueue(o)}}),f=this}}class L extends w{constructor(n,r){let s;super({start(){e.assign(this,{ready:new Promise((t=>this.Y=t)),password:n,Z:r-1,pending:new i(0)})},async transform(e,n){const r=this;let s=new i(0);if(r.password){const e=r.password;r.password=null,s=await(async(t,e)=>{const n=(r=new i(V[t.Z]),M?a.getRandomValues(r):_.getRandomValues(r));var r;return await O(t,e,n),q(n,t.keys.passwordVerification)})(r,e),r.$=new j(new W(r.keys.key),t.from(B)),r.tt=new H(r.keys.et),r.Y()}else await r.ready;const o=new i(s.length+e.length-e.length%16);o.set(s,0),n.enqueue(F(r,e,o,s.length,0))},async flush(t){const e=this;await e.ready;let n=new i(0);if(e.pending.length){const t=e.$.update(N(T,e.pending));e.tt.update(t),n=J(T,t)}s.signature=J(T,e.tt.digest()).slice(0,10),t.enqueue(q(n,s.signature))}}),s=this}}function F(t,e,n,r,s,o){const f=e.length-s;let c;for(t.pending.length&&(e=q(t.pending,e),n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new i(e)).set(n,0)}return t})(n,f-f%16)),c=0;f-16>=c;c+=16){const i=N(T,G(e,c,c+16));o&&t.tt.update(i);const s=t.$.update(i);o||t.tt.update(s),n.set(J(T,s),c+r)}return t.pending=G(e,c),n}async function O(t,n,r){const s=(t=>{if(void 0===l){const e=new i((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new l).encode(t)})(n),o=await((t,e,n,r,i)=>R?a.subtle.importKey("raw",e,n,!1,i):C.importKey(e))(0,s,x,0,I),f=await(async(t,e,n)=>U?await a.subtle.deriveBits(t,e,n):C.U(e,t.salt,A.iterations,n))(e.assign({salt:r},A),o,8*(2*P[t.Z]+2)),c=new i(f);t.keys={key:N(T,G(c,0,P[t.Z])),et:N(T,G(c,P[t.Z],2*P[t.Z])),passwordVerification:G(c,2*P[t.Z])}}function q(t,e){let n=t;return t.length+e.length&&(n=new i(t.length+e.length),n.set(t,0),n.set(e,t.length)),n}function G(t,e,n){return t.subarray(e,n)}function J(t,e){return t.k(e)}function N(t,e){return t.g(e)}class Q extends w{constructor(t,n){let i;super({start(){e.assign(this,{password:t,passwordVerification:n}),$(this,t)},transform(t,e){const n=this;if(n.password){const e=Y(n,t.subarray(0,12));if(n.password=null,e[11]!=n.passwordVerification)throw new r("Invalid pasword");t=t.subarray(12)}e.enqueue(Y(n,t))},flush(){i.valid=!0}}),i=this}}class X extends w{constructor(t,n){super({start(){e.assign(this,{password:t,passwordVerification:n}),$(this,t)},transform(t,e){const n=this;let r,s;if(n.password){n.password=null;const e=a.getRandomValues(new i(12));e[11]=n.passwordVerification,r=new i(t.length+e.length),r.set(Z(n,e),0),s=12}else r=new i(t.length),s=0;r.set(Z(n,t),s),e.enqueue(r)},flush(){}})}}function Y(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=et(t)^e[r],tt(t,n[r]);return n}function Z(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=et(t)^e[r],tt(t,e[r]);return n}function $(t,e){t.keys=[305419896,591751049,878082192],t.nt=new m(t.keys[0]),t.rt=new m(t.keys[2]);for(let n=0;n<e.length;n++)tt(t,e.charCodeAt(n))}function tt(t,e){t.nt.append([e]),t.keys[0]=~t.nt.get(),t.keys[1]=rt(t.keys[1]+nt(t.keys[0])),t.keys[1]=rt(n.imul(t.keys[1],134775813)+1),t.rt.append([t.keys[1]>>>24]),t.keys[2]=~t.rt.get()}function et(t){const e=2|t.keys[2];return nt(n.imul(e,1^e)>>>8)}function nt(t){return 255&t}function rt(t){return 4294967295&t}class it extends w{constructor(t,e){let n;super({start(){n=new t(e)},transform(t,e){t=n.append(t),e.enqueue(t)},flush(t){const e=n.flush();e&&t.enqueue(e)}})}}const st=void 0===p,ot=void 0===b;let ft=!0,ct=!0;class lt extends w{constructor(t,e,{it:n},...r){super({},...r);const{compressed:i,st:s,password:o,passwordVerification:f,encryptionStrength:l,zipCrypto:a,signed:u}=e,w=this;let h,d,b=wt(super.readable);const y=!!o;if(y&&!a||!u||([b,h]=b.tee(),h=h.pipeThrough(new k)),i)if(void 0!==s&&!s||st&&!ct)b=ut(t,b,n);else try{const t=new p("deflate-raw");b=b.pipeThrough(t)}catch(e){ct=!1,b=ut(t,b,n)}y&&(a?b=b.pipeThrough(new X(o,f)):(d=new L(o,l),b=b.pipeThrough(d))),ht(w,b,(async()=>{let t;y&&!a&&(t=d.signature),y&&!a||!u||(t=await h.getReader().read(),t=new c(t.value.buffer).getUint32(0)),w.signature=t}))}}class at extends w{constructor(t,e,{it:n},...i){super({},...i);const{zipCrypto:s,password:o,passwordVerification:f,signed:l,encryptionStrength:a,compressed:u,st:w}=e;let h,d,p=wt(super.readable);const y=!!o;if(y&&(s?p=p.pipeThrough(new Q(o,f)):(d=new K(o,l,a),p=p.pipeThrough(d))),u)if(void 0!==w&&!w||ot&&!ft)p=ut(t,p,n);else try{p=p.pipeThrough(new b("deflate-raw"))}catch(e){ft=!1,p=ut(t,p,n)}y&&!s||!l||([p,h]=p.tee(),h=h.pipeThrough(new k)),ht(this,p,(async()=>{if(y&&!s&&!d.valid)throw new r("Invalid signature");if((!y||s)&&l){const t=await h.getReader().read();if(t!=new c(t.value.buffer).getUint32(0,!1))throw new r("Invalid signature")}}))}}function ut(t,e,n){return e.pipeThrough(new it(t,{it:n}))}function wt(t){return t.pipeThrough(new w({transform(t,e){t&&t.length&&e.enqueue(t)}}))}function ht(t,n,r){t.length=0,n=n.pipeThrough(new w({transform(e,n){e&&e.length&&(t.length+=e.length,n.enqueue(e))},flush:r})),e.defineProperty(t,"readable",{get:()=>n})}const dt=new Map;let pt,bt=0;function yt(t){if(t.data){let{data:e}=t;if(e&&e.length)try{e.length!=e.buffer.byteLength&&(e=new i(e)),t.data=e.buffer,u(t,[t.data])}catch(e){u(t)}else u(t)}else u(t)}addEventListener("message",(async t=>{const e=t.data,n=e.type;try{if("start"==n&&(async t=>{try{t.scripts&&t.scripts.length&&importScripts.apply(void 0,t.scripts);const e=t.options;let n;self.initCodec&&self.initCodec(),e.codecType.startsWith("deflate")?n=self.Deflate:e.codecType.startsWith("inflate")&&(n=self.Inflate);const r=new h({async pull(t){let e=new Promise(((t,e)=>dt.set(bt,{resolve:t,reject:e})));yt({type:"pull",messageId:bt}),bt++;const{value:n,done:r}=await e;t.enqueue(n),r&&t.close()}},{highWaterMark:1}),i=new d({write(t){yt({type:"data",data:t})}});pt=((t,e,n,r,i)=>{const s=new AbortController,{signal:o}=s;if(r.codecType.startsWith("deflate"))return{ot:()=>f(lt),abort:c};if(r.codecType.startsWith("inflate"))return{ot:()=>f(at),abort:c};async function f(s){const f=new s(t,r,i);await e.pipeThrough(f,{signal:o}).pipeTo(n,{ft:!0});const{length:c,signature:l}=f;return{length:c,signature:l}}function c(){s.abort()}})(n,r,i,e,t.config),yt({type:"close",result:await pt.ot()})}catch(t){u({error:{message:t.message,stack:t.stack}})}})(e),"data"==n){const{resolve:t}=dt.get(e.messageId);dt.delete(e.messageId),t({value:new i(e.data),done:e.done})}"abort"==n&&pt.abort()}catch(t){u({error:{message:t.message,stack:t.stack}})}}));const mt=(()=>{const e=-2;function o(e){return f(e.map((([e,n])=>new t(e).fill(n,0,e))))}function f(e){return e.reduce(((e,n)=>e.concat(t.isArray(n)?f(n):n)),[])}const c=[0,1,2,3].concat(...o([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function l(){const t=this;function e(t,e){let n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1}t.ct=r=>{const i=t.lt,s=t.wt.ut,o=t.wt.ht;let f,c,l,a=-1;for(r.dt=0,r.bt=573,f=0;o>f;f++)0!==i[2*f]?(r.yt[++r.dt]=a=f,r.kt[f]=0):i[2*f+1]=0;for(;2>r.dt;)l=r.yt[++r.dt]=2>a?++a:0,i[2*l]=1,r.kt[l]=0,r.gt--,s&&(r.vt-=s[2*l+1]);for(t.St=a,f=n.floor(r.dt/2);f>=1;f--)r._t(i,f);l=o;do{f=r.yt[1],r.yt[1]=r.yt[r.dt--],r._t(i,1),c=r.yt[1],r.yt[--r.bt]=f,r.yt[--r.bt]=c,i[2*l]=i[2*f]+i[2*c],r.kt[l]=n.max(r.kt[f],r.kt[c])+1,i[2*f+1]=i[2*c+1]=l,r.yt[1]=l++,r._t(i,1)}while(r.dt>=2);r.yt[--r.bt]=r.yt[1],(e=>{const n=t.lt,r=t.wt.ut,i=t.wt.Ct,s=t.wt.zt,o=t.wt.xt;let f,c,l,a,u,w,h=0;for(a=0;15>=a;a++)e.At[a]=0;for(n[2*e.yt[e.bt]+1]=0,f=e.bt+1;573>f;f++)c=e.yt[f],a=n[2*n[2*c+1]+1]+1,a>o&&(a=o,h++),n[2*c+1]=a,c>t.St||(e.At[a]++,u=0,s>c||(u=i[c-s]),w=n[2*c],e.gt+=w*(a+u),r&&(e.vt+=w*(r[2*c+1]+u)));if(0!==h){do{for(a=o-1;0===e.At[a];)a--;e.At[a]--,e.At[a+1]+=2,e.At[o]--,h-=2}while(h>0);for(a=o;0!==a;a--)for(c=e.At[a];0!==c;)l=e.yt[--f],l>t.St||(n[2*l+1]!=a&&(e.gt+=(a-n[2*l+1])*n[2*l],n[2*l+1]=a),c--)}})(r),((t,n,r)=>{const i=[];let s,o,f,c=0;for(s=1;15>=s;s++)i[s]=c=c+r[s-1]<<1;for(o=0;n>=o;o++)f=t[2*o+1],0!==f&&(t[2*o]=e(i[f]++,f))})(i,t.St,r.At)}}function a(t,e,n,r,i){const s=this;s.ut=t,s.Ct=e,s.zt=n,s.ht=r,s.xt=i}l.It=[0,1,2,3,4,5,6,7].concat(...o([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),l.Vt=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],l.Pt=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],l.Bt=t=>256>t?c[t]:c[256+(t>>>7)],l.Dt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],l.Et=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],l.Mt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],l.Rt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const u=o([[144,8],[112,9],[24,7],[8,8]]);a.Ut=f([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((t,e)=>[t,u[e]])));const w=o([[30,5]]);function h(t,e,n,r,i){const s=this;s.Tt=t,s.Wt=e,s.jt=n,s.Ht=r,s.Kt=i}a.Lt=f([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((t,e)=>[t,w[e]]))),a.Ft=new a(a.Ut,l.Dt,257,286,15),a.Ot=new a(a.Lt,l.Et,0,30,15),a.qt=new a(null,l.Mt,0,19,7);const d=[new h(0,0,0,0,0),new h(4,4,8,4,1),new h(4,5,16,8,1),new h(4,6,32,32,1),new h(4,4,16,16,2),new h(8,16,32,32,2),new h(8,16,128,128,2),new h(8,32,128,256,2),new h(32,128,258,1024,2),new h(32,258,258,4096,2)],p=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],b=113,y=666,m=262;function k(t,e,n,r){const i=t[2*e],s=t[2*n];return s>i||i==s&&r[e]<=r[n]}function g(){const t=this;let r,o,f,c,u,w,h,g,v,S,_,C,z,x,A,I,V,P,B,D,E,M,R,U,T,W,j,H,K,L,F,O,q;const G=new l,J=new l,N=new l;let Q,X,Y,Z,$,tt;function et(){let e;for(e=0;286>e;e++)F[2*e]=0;for(e=0;30>e;e++)O[2*e]=0;for(e=0;19>e;e++)q[2*e]=0;F[512]=1,t.gt=t.vt=0,X=Y=0}function nt(t,e){let n,r=-1,i=t[1],s=0,o=7,f=4;0===i&&(o=138,f=3),t[2*(e+1)+1]=65535;for(let c=0;e>=c;c++)n=i,i=t[2*(c+1)+1],++s<o&&n==i||(f>s?q[2*n]+=s:0!==n?(n!=r&&q[2*n]++,q[32]++):s>10?q[36]++:q[34]++,s=0,r=n,0===i?(o=138,f=3):n==i?(o=6,f=3):(o=7,f=4))}function rt(e){t.Gt[t.pending++]=e}function it(t){rt(255&t),rt(t>>>8&255)}function st(t,e){let n;const r=e;tt>16-r?(n=t,$|=n<<tt&65535,it($),$=n>>>16-tt,tt+=r-16):($|=t<<tt&65535,tt+=r)}function ot(t,e){const n=2*t;st(65535&e[n],65535&e[n+1])}function ft(t,e){let n,r,i=-1,s=t[1],o=0,f=7,c=4;for(0===s&&(f=138,c=3),n=0;e>=n;n++)if(r=s,s=t[2*(n+1)+1],++o>=f||r!=s){if(c>o)do{ot(r,q)}while(0!=--o);else 0!==r?(r!=i&&(ot(r,q),o--),ot(16,q),st(o-3,2)):o>10?(ot(18,q),st(o-11,7)):(ot(17,q),st(o-3,3));o=0,i=r,0===s?(f=138,c=3):r==s?(f=6,c=3):(f=7,c=4)}}function ct(){16==tt?(it($),$=0,tt=0):8>tt||(rt(255&$),$>>>=8,tt-=8)}function lt(e,r){let i,s,o;if(t.Jt[X]=e,t.Nt[X]=255&r,X++,0===e?F[2*r]++:(Y++,e--,F[2*(l.It[r]+256+1)]++,O[2*l.Bt(e)]++),0==(8191&X)&&j>2){for(i=8*X,s=E-V,o=0;30>o;o++)i+=O[2*o]*(5+l.Et[o]);if(i>>>=3,Y<n.floor(X/2)&&i<n.floor(s/2))return!0}return X==Q-1}function at(e,n){let r,i,s,o,f=0;if(0!==X)do{r=t.Jt[f],i=t.Nt[f],f++,0===r?ot(i,e):(s=l.It[i],ot(s+256+1,e),o=l.Dt[s],0!==o&&(i-=l.Vt[s],st(i,o)),r--,s=l.Bt(r),ot(s,n),o=l.Et[s],0!==o&&(r-=l.Pt[s],st(r,o)))}while(X>f);ot(256,e),Z=e[513]}function ut(){tt>8?it($):tt>0&&rt(255&$),$=0,tt=0}function wt(e,n,r){st(0+(r?1:0),3),((e,n)=>{ut(),Z=8,it(n),it(~n),t.Gt.set(g.subarray(e,e+n),t.pending),t.pending+=n})(e,n)}function ht(e){((e,n,r)=>{let i,s,o=0;j>0?(G.ct(t),J.ct(t),o=(()=>{let e;for(nt(F,G.St),nt(O,J.St),N.ct(t),e=18;e>=3&&0===q[2*l.Rt[e]+1];e--);return t.gt+=14+3*(e+1),e})(),i=t.gt+3+7>>>3,s=t.vt+3+7>>>3,s>i||(i=s)):i=s=n+5,n+4>i||-1==e?s==i?(st(2+(r?1:0),3),at(a.Ut,a.Lt)):(st(4+(r?1:0),3),((t,e,n)=>{let r;for(st(t-257,5),st(e-1,5),st(n-4,4),r=0;n>r;r++)st(q[2*l.Rt[r]+1],3);ft(F,t-1),ft(O,e-1)})(G.St+1,J.St+1,o+1),at(F,O)):wt(e,n,r),et(),r&&ut()})(0>V?-1:V,E-V,e),V=E,r.Qt()}function dt(){let t,e,n,i;do{if(i=v-R-E,0===i&&0===E&&0===R)i=u;else if(-1==i)i--;else if(E>=u+u-m){g.set(g.subarray(u,u+u),0),M-=u,E-=u,V-=u,t=z,n=t;do{e=65535&_[--n],_[n]=u>e?0:e-u}while(0!=--t);t=u,n=t;do{e=65535&S[--n],S[n]=u>e?0:e-u}while(0!=--t);i+=u}if(0===r.Xt)return;t=r.Yt(g,E+R,i),R+=t,3>R||(C=255&g[E],C=(C<<I^255&g[E+1])&A)}while(m>R&&0!==r.Xt)}function pt(t){let e,n,r=T,i=E,s=U;const o=E>u-m?E-(u-m):0;let f=L;const c=h,l=E+258;let a=g[i+s-1],w=g[i+s];K>U||(r>>=2),f>R&&(f=R);do{if(e=t,g[e+s]==w&&g[e+s-1]==a&&g[e]==g[i]&&g[++e]==g[i+1]){i+=2,e++;do{}while(g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&l>i);if(n=258-(l-i),i=l-258,n>s){if(M=t,s=n,n>=f)break;a=g[i+s-1],w=g[i+s]}}}while((t=65535&S[t&c])>o&&0!=--r);return s>R?R:s}t.kt=[],t.At=[],t.yt=[],F=[],O=[],q=[],t._t=(e,n)=>{const r=t.yt,i=r[n];let s=n<<1;for(;s<=t.dt&&(s<t.dt&&k(e,r[s+1],r[s],t.kt)&&s++,!k(e,i,r[s],t.kt));)r[n]=r[s],n=s,s<<=1;r[n]=i},t.Zt=(r,l,p,y,m,k)=>(y||(y=8),m||(m=8),k||(k=0),r.$t=null,-1==l&&(l=6),1>m||m>9||8!=y||9>p||p>15||0>l||l>9||0>k||k>2?e:(r.te=t,w=p,u=1<<w,h=u-1,x=m+7,z=1<<x,A=z-1,I=n.floor((x+3-1)/3),g=new i(2*u),S=[],_=[],Q=1<<m+6,t.Gt=new i(4*Q),f=4*Q,t.Jt=new s(Q),t.Nt=new i(Q),j=l,H=k,(e=>(e.ee=e.ne=0,e.$t=null,t.pending=0,t.re=0,o=b,c=0,G.lt=F,G.wt=a.Ft,J.lt=O,J.wt=a.Ot,N.lt=q,N.wt=a.qt,$=0,tt=0,Z=8,et(),(()=>{v=2*u,_[z-1]=0;for(let t=0;z-1>t;t++)_[t]=0;W=d[j].Wt,K=d[j].Tt,L=d[j].jt,T=d[j].Ht,E=0,V=0,R=0,P=U=2,D=0,C=0})(),0))(r))),t.ie=()=>42!=o&&o!=b&&o!=y?e:(t.Nt=null,t.Jt=null,t.Gt=null,_=null,S=null,g=null,t.te=null,o==b?-3:0),t.se=(t,n,r)=>{let i=0;return-1==n&&(n=6),0>n||n>9||0>r||r>2?e:(d[j].Kt!=d[n].Kt&&0!==t.ee&&(i=t.oe(1)),j!=n&&(j=n,W=d[j].Wt,K=d[j].Tt,L=d[j].jt,T=d[j].Ht),H=r,i)},t.fe=(t,n,r)=>{let i,s=r,f=0;if(!n||42!=o)return e;if(3>s)return 0;for(s>u-m&&(s=u-m,f=r-s),g.set(n.subarray(f,f+s),0),E=s,V=s,C=255&g[0],C=(C<<I^255&g[1])&A,i=0;s-3>=i;i++)C=(C<<I^255&g[i+2])&A,S[i&h]=_[C],_[C]=i;return 0},t.oe=(n,i)=>{let s,l,k,v,x;if(i>4||0>i)return e;if(!n.ce||!n.le&&0!==n.Xt||o==y&&4!=i)return n.$t=p[4],e;if(0===n.ae)return n.$t=p[7],-5;var T;if(r=n,v=c,c=i,42==o&&(l=8+(w-8<<4)<<8,k=(j-1&255)>>1,k>3&&(k=3),l|=k<<6,0!==E&&(l|=32),l+=31-l%31,o=b,rt((T=l)>>8&255),rt(255&T)),0!==t.pending){if(r.Qt(),0===r.ae)return c=-1,0}else if(0===r.Xt&&v>=i&&4!=i)return r.$t=p[7],-5;if(o==y&&0!==r.Xt)return n.$t=p[7],-5;if(0!==r.Xt||0!==R||0!=i&&o!=y){switch(x=-1,d[j].Kt){case 0:x=(t=>{let e,n=65535;for(n>f-5&&(n=f-5);;){if(1>=R){if(dt(),0===R&&0==t)return 0;if(0===R)break}if(E+=R,R=0,e=V+n,(0===E||E>=e)&&(R=E-e,E=e,ht(!1),0===r.ae))return 0;if(E-V>=u-m&&(ht(!1),0===r.ae))return 0}return ht(4==t),0===r.ae?4==t?2:0:4==t?3:1})(i);break;case 1:x=(t=>{let e,n=0;for(;;){if(m>R){if(dt(),m>R&&0==t)return 0;if(0===R)break}if(3>R||(C=(C<<I^255&g[E+2])&A,n=65535&_[C],S[E&h]=_[C],_[C]=E),0===n||(E-n&65535)>u-m||2!=H&&(P=pt(n)),3>P)e=lt(0,255&g[E]),R--,E++;else if(e=lt(E-M,P-3),R-=P,P>W||3>R)E+=P,P=0,C=255&g[E],C=(C<<I^255&g[E+1])&A;else{P--;do{E++,C=(C<<I^255&g[E+2])&A,n=65535&_[C],S[E&h]=_[C],_[C]=E}while(0!=--P);E++}if(e&&(ht(!1),0===r.ae))return 0}return ht(4==t),0===r.ae?4==t?2:0:4==t?3:1})(i);break;case 2:x=(t=>{let e,n,i=0;for(;;){if(m>R){if(dt(),m>R&&0==t)return 0;if(0===R)break}if(3>R||(C=(C<<I^255&g[E+2])&A,i=65535&_[C],S[E&h]=_[C],_[C]=E),U=P,B=M,P=2,0!==i&&W>U&&u-m>=(E-i&65535)&&(2!=H&&(P=pt(i)),5>=P&&(1==H||3==P&&E-M>4096)&&(P=2)),3>U||P>U)if(0!==D){if(e=lt(0,255&g[E-1]),e&&ht(!1),E++,R--,0===r.ae)return 0}else D=1,E++,R--;else{n=E+R-3,e=lt(E-1-B,U-3),R-=U-1,U-=2;do{++E>n||(C=(C<<I^255&g[E+2])&A,i=65535&_[C],S[E&h]=_[C],_[C]=E)}while(0!=--U);if(D=0,P=2,E++,e&&(ht(!1),0===r.ae))return 0}}return 0!==D&&(e=lt(0,255&g[E-1]),D=0),ht(4==t),0===r.ae?4==t?2:0:4==t?3:1})(i)}if(2!=x&&3!=x||(o=y),0==x||2==x)return 0===r.ae&&(c=-1),0;if(1==x){if(1==i)st(2,3),ot(256,a.Ut),ct(),9>1+Z+10-tt&&(st(2,3),ot(256,a.Ut),ct()),Z=7;else if(wt(0,0,!1),3==i)for(s=0;z>s;s++)_[s]=0;if(r.Qt(),0===r.ae)return c=-1,0}}return 4!=i?0:1}}function v(){const t=this;t.ue=0,t.we=0,t.Xt=0,t.ee=0,t.ae=0,t.ne=0}return v.prototype={Zt:function(t,e){const n=this;return n.te=new g,e||(e=15),n.te.Zt(n,t,e)},oe:function(t){const n=this;return n.te?n.te.oe(n,t):e},ie:function(){const t=this;if(!t.te)return e;const n=t.te.ie();return t.te=null,n},se:function(t,n){const r=this;return r.te?r.te.se(r,t,n):e},fe:function(t,n){const r=this;return r.te?r.te.fe(r,t,n):e},Yt:function(t,e,n){const r=this;let i=r.Xt;return i>n&&(i=n),0===i?0:(r.Xt-=i,t.set(r.le.subarray(r.ue,r.ue+i),e),r.ue+=i,r.ee+=i,i)},Qt:function(){const t=this;let e=t.te.pending;e>t.ae&&(e=t.ae),0!==e&&(t.ce.set(t.te.Gt.subarray(t.te.re,t.te.re+e),t.we),t.we+=e,t.te.re+=e,t.ne+=e,t.ae-=e,t.te.pending-=e,0===t.te.pending&&(t.te.re=0))}},function(t){const e=new v,s=(o=t&&t.it?t.it:65536)+5*(n.floor(o/16383)+1);var o;const f=new i(s);let c=t?t.level:-1;void 0===c&&(c=-1),e.Zt(c),e.ce=f,this.append=(t,n)=>{let o,c,l=0,a=0,u=0;const w=[];if(t.length){e.ue=0,e.le=t,e.Xt=t.length;do{if(e.we=0,e.ae=s,o=e.oe(0),0!=o)throw new r("deflating: "+e.$t);e.we&&(e.we==s?w.push(new i(f)):w.push(f.slice(0,e.we))),u+=e.we,n&&e.ue>0&&e.ue!=l&&(n(e.ue),l=e.ue)}while(e.Xt>0||0===e.ae);return w.length>1?(c=new i(u),w.forEach((t=>{c.set(t,a),a+=t.length}))):c=w[0]||new i(0),c}},this.flush=()=>{let t,n,o=0,c=0;const l=[];do{if(e.we=0,e.ae=s,t=e.oe(4),1!=t&&0!=t)throw new r("deflating: "+e.$t);s-e.ae>0&&l.push(f.slice(0,e.we)),c+=e.we}while(e.Xt>0||0===e.ae);return e.ie(),n=new i(c),l.forEach((t=>{n.set(t,o),o+=t.length})),n}}})(),kt=(()=>{const t=-2,e=-3,s=-5,o=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],c=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],l=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],a=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],u=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],w=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],h=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function d(){let t,n,r,i,o,c;function l(t,n,f,l,a,u,w,h,d,p,b){let y,m,k,g,v,S,_,C,z,x,A,I,V,P,B;x=0,v=f;do{r[t[n+x]]++,x++,v--}while(0!==v);if(r[0]==f)return w[0]=-1,h[0]=0,0;for(C=h[0],S=1;15>=S&&0===r[S];S++);for(_=S,S>C&&(C=S),v=15;0!==v&&0===r[v];v--);for(k=v,C>v&&(C=v),h[0]=C,P=1<<S;v>S;S++,P<<=1)if(0>(P-=r[S]))return e;if(0>(P-=r[v]))return e;for(r[v]+=P,c[1]=S=0,x=1,V=2;0!=--v;)c[V]=S+=r[x],V++,x++;v=0,x=0;do{0!==(S=t[n+x])&&(b[c[S]++]=v),x++}while(++v<f);for(f=c[k],c[0]=v=0,x=0,g=-1,I=-C,o[0]=0,A=0,B=0;k>=_;_++)for(y=r[_];0!=y--;){for(;_>I+C;){if(g++,I+=C,B=k-I,B=B>C?C:B,(m=1<<(S=_-I))>y+1&&(m-=y+1,V=_,B>S))for(;++S<B&&(m<<=1)>r[++V];)m-=r[V];if(B=1<<S,p[0]+B>1440)return e;o[g]=A=p[0],p[0]+=B,0!==g?(c[g]=v,i[0]=S,i[1]=C,S=v>>>I-C,i[2]=A-o[g-1]-S,d.set(i,3*(o[g-1]+S))):w[0]=A}for(i[1]=_-I,f>x?b[x]<l?(i[0]=256>b[x]?0:96,i[2]=b[x++]):(i[0]=u[b[x]-l]+16+64,i[2]=a[b[x++]-l]):i[0]=192,m=1<<_-I,S=v>>>I;B>S;S+=m)d.set(i,3*(A+S));for(S=1<<_-1;0!=(v&S);S>>>=1)v^=S;for(v^=S,z=(1<<I)-1;(v&z)!=c[g];)g--,I-=C,z=(1<<I)-1}return 0!==P&&1!=k?s:0}function d(e){let s;for(t||(t=[],n=[],r=new f(16),i=[],o=new f(15),c=new f(16)),n.length<e&&(n=[]),s=0;e>s;s++)n[s]=0;for(s=0;16>s;s++)r[s]=0;for(s=0;3>s;s++)i[s]=0;o.set(r.subarray(0,15),0),c.set(r.subarray(0,16),0)}this.he=(r,i,o,f,c)=>{let a;return d(19),t[0]=0,a=l(r,0,19,19,null,null,o,i,f,t,n),a==e?c.$t="oversubscribed dynamic bit lengths tree":a!=s&&0!==i[0]||(c.$t="incomplete dynamic bit lengths tree",a=e),a},this.de=(r,i,o,f,c,p,b,y,m)=>{let k;return d(288),t[0]=0,k=l(o,0,r,257,a,u,p,f,y,t,n),0!=k||0===f[0]?(k==e?m.$t="oversubscribed literal/length tree":-4!=k&&(m.$t="incomplete literal/length tree",k=e),k):(d(288),k=l(o,r,i,0,w,h,b,c,y,t,n),0!=k||0===c[0]&&r>257?(k==e?m.$t="oversubscribed distance tree":k==s?(m.$t="incomplete distance tree",k=e):-4!=k&&(m.$t="empty distance tree with lengths",k=e),k):0)}}function p(){const n=this;let r,i,s,f,c=0,l=0,a=0,u=0,w=0,h=0,d=0,p=0,b=0,y=0;function m(t,n,r,i,s,f,c,l){let a,u,w,h,d,p,b,y,m,k,g,v,S,_,C,z;b=l.ue,y=l.Xt,d=c.pe,p=c.be,m=c.write,k=m<c.read?c.read-m-1:c.end-m,g=o[t],v=o[n];do{for(;20>p;)y--,d|=(255&l.ye(b++))<<p,p+=8;if(a=d&g,u=r,w=i,z=3*(w+a),0!==(h=u[z]))for(;;){if(d>>=u[z+1],p-=u[z+1],0!=(16&h)){for(h&=15,S=u[z+2]+(d&o[h]),d>>=h,p-=h;15>p;)y--,d|=(255&l.ye(b++))<<p,p+=8;for(a=d&v,u=s,w=f,z=3*(w+a),h=u[z];;){if(d>>=u[z+1],p-=u[z+1],0!=(16&h)){for(h&=15;h>p;)y--,d|=(255&l.ye(b++))<<p,p+=8;if(_=u[z+2]+(d&o[h]),d>>=h,p-=h,k-=S,_>m){C=m-_;do{C+=c.end}while(0>C);if(h=c.end-C,S>h){if(S-=h,m-C>0&&h>m-C)do{c.me[m++]=c.me[C++]}while(0!=--h);else c.me.set(c.me.subarray(C,C+h),m),m+=h,C+=h,h=0;C=0}}else C=m-_,m-C>0&&2>m-C?(c.me[m++]=c.me[C++],c.me[m++]=c.me[C++],S-=2):(c.me.set(c.me.subarray(C,C+2),m),m+=2,C+=2,S-=2);if(m-C>0&&S>m-C)do{c.me[m++]=c.me[C++]}while(0!=--S);else c.me.set(c.me.subarray(C,C+S),m),m+=S,C+=S,S=0;break}if(0!=(64&h))return l.$t="invalid distance code",S=l.Xt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.pe=d,c.be=p,l.Xt=y,l.ee+=b-l.ue,l.ue=b,c.write=m,e;a+=u[z+2],a+=d&o[h],z=3*(w+a),h=u[z]}break}if(0!=(64&h))return 0!=(32&h)?(S=l.Xt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.pe=d,c.be=p,l.Xt=y,l.ee+=b-l.ue,l.ue=b,c.write=m,1):(l.$t="invalid literal/length code",S=l.Xt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.pe=d,c.be=p,l.Xt=y,l.ee+=b-l.ue,l.ue=b,c.write=m,e);if(a+=u[z+2],a+=d&o[h],z=3*(w+a),0===(h=u[z])){d>>=u[z+1],p-=u[z+1],c.me[m++]=u[z+2],k--;break}}else d>>=u[z+1],p-=u[z+1],c.me[m++]=u[z+2],k--}while(k>=258&&y>=10);return S=l.Xt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.pe=d,c.be=p,l.Xt=y,l.ee+=b-l.ue,l.ue=b,c.write=m,0}n.init=(t,e,n,o,c,l)=>{r=0,d=t,p=e,s=n,b=o,f=c,y=l,i=null},n.ke=(n,k,g)=>{let v,S,_,C,z,x,A,I=0,V=0,P=0;for(P=k.ue,C=k.Xt,I=n.pe,V=n.be,z=n.write,x=z<n.read?n.read-z-1:n.end-z;;)switch(r){case 0:if(x>=258&&C>=10&&(n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,g=m(d,p,s,b,f,y,n,k),P=k.ue,C=k.Xt,I=n.pe,V=n.be,z=n.write,x=z<n.read?n.read-z-1:n.end-z,0!=g)){r=1==g?7:9;break}a=d,i=s,l=b,r=1;case 1:for(v=a;v>V;){if(0===C)return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);g=0,C--,I|=(255&k.ye(P++))<<V,V+=8}if(S=3*(l+(I&o[v])),I>>>=i[S+1],V-=i[S+1],_=i[S],0===_){u=i[S+2],r=6;break}if(0!=(16&_)){w=15&_,c=i[S+2],r=2;break}if(0==(64&_)){a=_,l=S/3+i[S+2];break}if(0!=(32&_)){r=7;break}return r=9,k.$t="invalid literal/length code",g=e,n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);case 2:for(v=w;v>V;){if(0===C)return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);g=0,C--,I|=(255&k.ye(P++))<<V,V+=8}c+=I&o[v],I>>=v,V-=v,a=p,i=f,l=y,r=3;case 3:for(v=a;v>V;){if(0===C)return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);g=0,C--,I|=(255&k.ye(P++))<<V,V+=8}if(S=3*(l+(I&o[v])),I>>=i[S+1],V-=i[S+1],_=i[S],0!=(16&_)){w=15&_,h=i[S+2],r=4;break}if(0==(64&_)){a=_,l=S/3+i[S+2];break}return r=9,k.$t="invalid distance code",g=e,n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);case 4:for(v=w;v>V;){if(0===C)return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);g=0,C--,I|=(255&k.ye(P++))<<V,V+=8}h+=I&o[v],I>>=v,V-=v,r=5;case 5:for(A=z-h;0>A;)A+=n.end;for(;0!==c;){if(0===x&&(z==n.end&&0!==n.read&&(z=0,x=z<n.read?n.read-z-1:n.end-z),0===x&&(n.write=z,g=n.ge(k,g),z=n.write,x=z<n.read?n.read-z-1:n.end-z,z==n.end&&0!==n.read&&(z=0,x=z<n.read?n.read-z-1:n.end-z),0===x)))return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);n.me[z++]=n.me[A++],x--,A==n.end&&(A=0),c--}r=0;break;case 6:if(0===x&&(z==n.end&&0!==n.read&&(z=0,x=z<n.read?n.read-z-1:n.end-z),0===x&&(n.write=z,g=n.ge(k,g),z=n.write,x=z<n.read?n.read-z-1:n.end-z,z==n.end&&0!==n.read&&(z=0,x=z<n.read?n.read-z-1:n.end-z),0===x)))return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);g=0,n.me[z++]=u,x--,r=0;break;case 7:if(V>7&&(V-=8,C++,P--),n.write=z,g=n.ge(k,g),z=n.write,x=z<n.read?n.read-z-1:n.end-z,n.read!=n.write)return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);r=8;case 8:return g=1,n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);case 9:return g=e,n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);default:return g=t,n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g)}},n.ve=()=>{}}d.Se=(t,e,n,r)=>(t[0]=9,e[0]=5,n[0]=c,r[0]=l,0);const b=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function y(n,r){const c=this;let l,a=0,u=0,w=0,h=0;const y=[0],m=[0],k=new p;let g=0,v=new f(4320);const S=new d;c.be=0,c.pe=0,c.me=new i(r),c.end=r,c.read=0,c.write=0,c.reset=(t,e)=>{e&&(e[0]=0),6==a&&k.ve(t),a=0,c.be=0,c.pe=0,c.read=c.write=0},c.reset(n,null),c.ge=(t,e)=>{let n,r,i;return r=t.we,i=c.read,n=(i>c.write?c.end:c.write)-i,n>t.ae&&(n=t.ae),0!==n&&e==s&&(e=0),t.ae-=n,t.ne+=n,t.ce.set(c.me.subarray(i,i+n),r),r+=n,i+=n,i==c.end&&(i=0,c.write==c.end&&(c.write=0),n=c.write-i,n>t.ae&&(n=t.ae),0!==n&&e==s&&(e=0),t.ae-=n,t.ne+=n,t.ce.set(c.me.subarray(i,i+n),r),r+=n,i+=n),t.we=r,c.read=i,e},c.ke=(n,r)=>{let i,s,f,p,_,C,z,x;for(p=n.ue,_=n.Xt,s=c.pe,f=c.be,C=c.write,z=C<c.read?c.read-C-1:c.end-C;;){let A,I,V,P,B,D,E,M;switch(a){case 0:for(;3>f;){if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);r=0,_--,s|=(255&n.ye(p++))<<f,f+=8}switch(i=7&s,g=1&i,i>>>1){case 0:s>>>=3,f-=3,i=7&f,s>>>=i,f-=i,a=1;break;case 1:A=[],I=[],V=[[]],P=[[]],d.Se(A,I,V,P),k.init(A[0],I[0],V[0],0,P[0],0),s>>>=3,f-=3,a=6;break;case 2:s>>>=3,f-=3,a=3;break;case 3:return s>>>=3,f-=3,a=9,n.$t="invalid block type",r=e,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r)}break;case 1:for(;32>f;){if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);r=0,_--,s|=(255&n.ye(p++))<<f,f+=8}if((~s>>>16&65535)!=(65535&s))return a=9,n.$t="invalid stored block lengths",r=e,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);u=65535&s,s=f=0,a=0!==u?2:0!==g?7:0;break;case 2:if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);if(0===z&&(C==c.end&&0!==c.read&&(C=0,z=C<c.read?c.read-C-1:c.end-C),0===z&&(c.write=C,r=c.ge(n,r),C=c.write,z=C<c.read?c.read-C-1:c.end-C,C==c.end&&0!==c.read&&(C=0,z=C<c.read?c.read-C-1:c.end-C),0===z)))return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);if(r=0,i=u,i>_&&(i=_),i>z&&(i=z),c.me.set(n.Yt(p,i),C),p+=i,_-=i,C+=i,z-=i,0!=(u-=i))break;a=0!==g?7:0;break;case 3:for(;14>f;){if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);r=0,_--,s|=(255&n.ye(p++))<<f,f+=8}if(w=i=16383&s,(31&i)>29||(i>>5&31)>29)return a=9,n.$t="too many length or distance symbols",r=e,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);if(i=258+(31&i)+(i>>5&31),!l||l.length<i)l=[];else for(x=0;i>x;x++)l[x]=0;s>>>=14,f-=14,h=0,a=4;case 4:for(;4+(w>>>10)>h;){for(;3>f;){if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);r=0,_--,s|=(255&n.ye(p++))<<f,f+=8}l[b[h++]]=7&s,s>>>=3,f-=3}for(;19>h;)l[b[h++]]=0;if(y[0]=7,i=S.he(l,y,m,v,n),0!=i)return(r=i)==e&&(l=null,a=9),c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);h=0,a=5;case 5:for(;i=w,258+(31&i)+(i>>5&31)>h;){let t,u;for(i=y[0];i>f;){if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);r=0,_--,s|=(255&n.ye(p++))<<f,f+=8}if(i=v[3*(m[0]+(s&o[i]))+1],u=v[3*(m[0]+(s&o[i]))+2],16>u)s>>>=i,f-=i,l[h++]=u;else{for(x=18==u?7:u-14,t=18==u?11:3;i+x>f;){if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);r=0,_--,s|=(255&n.ye(p++))<<f,f+=8}if(s>>>=i,f-=i,t+=s&o[x],s>>>=x,f-=x,x=h,i=w,x+t>258+(31&i)+(i>>5&31)||16==u&&1>x)return l=null,a=9,n.$t="invalid bit length repeat",r=e,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);u=16==u?l[x-1]:0;do{l[x++]=u}while(0!=--t);h=x}}if(m[0]=-1,B=[],D=[],E=[],M=[],B[0]=9,D[0]=6,i=w,i=S.de(257+(31&i),1+(i>>5&31),l,B,D,E,M,v,n),0!=i)return i==e&&(l=null,a=9),r=i,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);k.init(B[0],D[0],v,E[0],v,M[0]),a=6;case 6:if(c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,1!=(r=k.ke(c,n,r)))return c.ge(n,r);if(r=0,k.ve(n),p=n.ue,_=n.Xt,s=c.pe,f=c.be,C=c.write,z=C<c.read?c.read-C-1:c.end-C,0===g){a=0;break}a=7;case 7:if(c.write=C,r=c.ge(n,r),C=c.write,z=C<c.read?c.read-C-1:c.end-C,c.read!=c.write)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);a=8;case 8:return r=1,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);case 9:return r=e,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);default:return r=t,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r)}}},c.ve=t=>{c.reset(t,null),c.me=null,v=null},c._e=(t,e,n)=>{c.me.set(t.subarray(e,e+n),0),c.read=c.write=n},c.Ce=()=>1==a?1:0}const m=13,k=[0,0,255,255];function g(){const n=this;function r(e){return e&&e.ze?(e.ee=e.ne=0,e.$t=null,e.ze.mode=7,e.ze.xe.reset(e,null),0):t}n.mode=0,n.method=0,n.Ae=[0],n.Ie=0,n.marker=0,n.Ve=0,n.Pe=t=>(n.xe&&n.xe.ve(t),n.xe=null,0),n.Be=(e,i)=>(e.$t=null,n.xe=null,8>i||i>15?(n.Pe(e),t):(n.Ve=i,e.ze.xe=new y(e,1<<i),r(e),0)),n.De=(n,r)=>{let i,o;if(!n||!n.ze||!n.le)return t;const f=n.ze;for(r=4==r?s:0,i=s;;)switch(f.mode){case 0:if(0===n.Xt)return i;if(i=r,n.Xt--,n.ee++,8!=(15&(f.method=n.ye(n.ue++)))){f.mode=m,n.$t="unknown compression method",f.marker=5;break}if(8+(f.method>>4)>f.Ve){f.mode=m,n.$t="invalid win size",f.marker=5;break}f.mode=1;case 1:if(0===n.Xt)return i;if(i=r,n.Xt--,n.ee++,o=255&n.ye(n.ue++),((f.method<<8)+o)%31!=0){f.mode=m,n.$t="incorrect header check",f.marker=5;break}if(0==(32&o)){f.mode=7;break}f.mode=2;case 2:if(0===n.Xt)return i;i=r,n.Xt--,n.ee++,f.Ie=(255&n.ye(n.ue++))<<24&4278190080,f.mode=3;case 3:if(0===n.Xt)return i;i=r,n.Xt--,n.ee++,f.Ie+=(255&n.ye(n.ue++))<<16&16711680,f.mode=4;case 4:if(0===n.Xt)return i;i=r,n.Xt--,n.ee++,f.Ie+=(255&n.ye(n.ue++))<<8&65280,f.mode=5;case 5:return 0===n.Xt?i:(i=r,n.Xt--,n.ee++,f.Ie+=255&n.ye(n.ue++),f.mode=6,2);case 6:return f.mode=m,n.$t="need dictionary",f.marker=0,t;case 7:if(i=f.xe.ke(n,i),i==e){f.mode=m,f.marker=0;break}if(0==i&&(i=r),1!=i)return i;i=r,f.xe.reset(n,f.Ae),f.mode=12;case 12:return n.Xt=0,1;case m:return e;default:return t}},n.Ee=(e,n,r)=>{let i=0,s=r;if(!e||!e.ze||6!=e.ze.mode)return t;const o=e.ze;return s<1<<o.Ve||(s=(1<<o.Ve)-1,i=r-s),o.xe._e(n,i,s),o.mode=7,0},n.Me=n=>{let i,o,f,c,l;if(!n||!n.ze)return t;const a=n.ze;if(a.mode!=m&&(a.mode=m,a.marker=0),0===(i=n.Xt))return s;for(o=n.ue,f=a.marker;0!==i&&4>f;)n.ye(o)==k[f]?f++:f=0!==n.ye(o)?0:4-f,o++,i--;return n.ee+=o-n.ue,n.ue=o,n.Xt=i,a.marker=f,4!=f?e:(c=n.ee,l=n.ne,r(n),n.ee=c,n.ne=l,a.mode=7,0)},n.Re=e=>e&&e.ze&&e.ze.xe?e.ze.xe.Ce():t}function v(){}return v.prototype={Be:function(t){const e=this;return e.ze=new g,t||(t=15),e.ze.Be(e,t)},De:function(e){const n=this;return n.ze?n.ze.De(n,e):t},Pe:function(){const e=this;if(!e.ze)return t;const n=e.ze.Pe(e);return e.ze=null,n},Me:function(){const e=this;return e.ze?e.ze.Me(e):t},Ee:function(e,n){const r=this;return r.ze?r.ze.Ee(r,e,n):t},ye:function(t){return this.le[t]},Yt:function(t,e){return this.le.subarray(t,t+e)}},function(t){const e=new v,o=t&&t.it?n.floor(2*t.it):131072,f=new i(o);let c=!1;e.Be(),e.ce=f,this.append=(t,n)=>{const l=[];let a,u,w=0,h=0,d=0;if(0!==t.length){e.ue=0,e.le=t,e.Xt=t.length;do{if(e.we=0,e.ae=o,0!==e.Xt||c||(e.ue=0,c=!0),a=e.De(0),c&&a===s){if(0!==e.Xt)throw new r("inflating: bad input")}else if(0!==a&&1!==a)throw new r("inflating: "+e.$t);if((c||1===a)&&e.Xt===t.length)throw new r("inflating: bad input");e.we&&(e.we===o?l.push(new i(f)):l.push(f.slice(0,e.we))),d+=e.we,n&&e.ue>0&&e.ue!=w&&(n(e.ue),w=e.ue)}while(e.Xt>0||0===e.ae);return l.length>1?(u=new i(d),l.forEach((t=>{u.set(t,h),h+=t.length}))):u=l[0]||new i(0),u}},this.flush=()=>{e.Pe()}}})();self.initCodec=()=>{self.Deflate=mt,self.Inflate=kt};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}});}};
7370
+ var e=e=>{if("function"==typeof URL.createObjectURL){const t=()=>URL.createObjectURL(new Blob(['const{Array:t,Object:e,Math:n,Error:r,Uint8Array:s,Uint16Array:i,Uint32Array:o,Int32Array:f,DataView:c,Promise:l,TextEncoder:a,crypto:u,postMessage:w,TransformStream:h,ReadableStream:d,WritableStream:p,CompressionStream:b,DecompressionStream:y}=globalThis,m=[];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;m[t]=e}class g{constructor(t){this.t=t||-1}append(t){let e=0|this.t;for(let n=0,r=0|t.length;r>n;n++)e=e>>>8^m[255&(e^t[n])];this.t=e}get(){return~this.t}}class k extends h{constructor(){super({start(){this.i=new g},transform(t){this.i.append(t)},flush(t){const e=new s(4);new c(e.buffer).setUint32(0,this.i.get()),t.enqueue(e)}})}}const v={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=v.o(n);return 32===r?t.concat(e):v.l(e,r,0|n,t.slice(0,t.length-1))},u(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+v.o(n)},h(t,e){if(32*t.length<e)return t;const r=(t=t.slice(0,n.ceil(e/32))).length;return e&=31,r>0&&e&&(t[r-1]=v.p(e,t[r-1]&2147483648>>e-1,1)),t},p:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,o:t=>n.round(t/1099511627776)||32,l(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let s=0;s<t.length;s++)r.push(n|t[s]>>>e),n=t[s]<<32-e;const s=t.length?t[t.length-1]:0,i=v.o(s);return r.push(v.p(e+i&31,e+i>32?n:r.pop(),1)),r}},S={m:{g(t){const e=v.u(t)/8,n=new s(e);let r;for(let s=0;e>s;s++)0==(3&s)&&(r=t[s/4]),n[s]=r>>>24,r<<=8;return n},k(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3==(3&n)&&(e.push(r),r=0);return 3&n&&e.push(v.p(8*(3&n),r)),e}}},_={v:function(t){t?(this.S=t.S.slice(0),this._=t._.slice(0),this.C=t.C):this.reset()}};_.v.prototype={blockSize:512,reset(){const t=this;return t.S=this.I.slice(0),t._=[],t.C=0,t},update(t){const e=this;"string"==typeof t&&(t=S.A.k(t));const n=e._=v.concat(e._,t),s=e.C,i=e.C=s+v.u(t);if(i>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const f=new o(n);let c=0;for(let t=e.blockSize+s-(e.blockSize+s&e.blockSize-1);i>=t;t+=e.blockSize)e.V(f.subarray(16*c,16*(c+1))),c+=1;return n.splice(0,16*c),e},B(){const t=this;let e=t._;const r=t.S;e=v.concat(e,[v.p(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(n.floor(t.C/4294967296)),e.push(0|t.C);e.length;)t.V(e.splice(0,16));return t.reset(),r},I:[1732584193,4023233417,2562383102,271733878,3285377520],D:[1518500249,1859775393,2400959708,3395469782],M:(t,e,n,r)=>t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r,P:(t,e)=>e<<t|e>>>32-t,V(e){const r=this,s=r.S,i=t(80);for(let t=0;16>t;t++)i[t]=e[t];let o=s[0],f=s[1],c=s[2],l=s[3],a=s[4];for(let t=0;79>=t;t++){16>t||(i[t]=r.P(1,i[t-3]^i[t-8]^i[t-14]^i[t-16]));const e=r.P(5,o)+r.M(t,f,c,l)+a+i[t]+r.D[n.floor(t/20)]|0;a=l,l=c,c=r.P(30,f),f=o,o=e}s[0]=s[0]+o|0,s[1]=s[1]+f|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+a|0}};const z={getRandomValues(t){const e=new o(t.buffer),r=t=>{let e=987654321;const r=4294967295;return()=>(e=36969*(65535&e)+(e>>16)&r,(((e<<16)+(t=18e3*(65535&t)+(t>>16)&r)&r)/4294967296+.5)*(n.random()>.5?1:-1))};for(let s,i=0;i<t.length;i+=4){const t=r(4294967296*(s||n.random()));s=987654071*t(),e[i/4]=4294967296*t()|0}return t}},C={importKey:t=>new C.R(S.m.k(t)),T(t,e,n,s){if(n=n||1e4,0>s||0>n)throw new r("invalid params to pbkdf2");const i=1+(s>>5)<<2;let o,f,l,a,u;const w=new ArrayBuffer(i),h=new c(w);let d=0;const p=v;for(e=S.m.k(e),u=1;(i||1)>d;u++){for(o=f=t.encrypt(p.concat(e,[u])),l=1;n>l;l++)for(f=t.encrypt(f),a=0;a<f.length;a++)o[a]^=f[a];for(l=0;(i||1)>d&&l<o.length;l++)h.setInt32(d,o[l]),d+=4}return w.slice(0,s/8)},R:class{constructor(t){const e=this,n=e.U=_.v,r=[[],[]],s=n.prototype.blockSize/32;e.W=[new n,new n],t.length>s&&(t=n.hash(t));for(let e=0;s>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.W[0].update(r[0]),e.W[1].update(r[1]),e.j=new n(e.W[0])}reset(){const t=this;t.j=new t.U(t.W[0]),t.H=!1}update(t){this.H=!0,this.j.update(t)}digest(){const t=this,e=t.j.B(),n=new t.U(t.W[1]).update(e).B();return t.reset(),n}encrypt(t){if(this.H)throw new r("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},I={name:"PBKDF2"},x=e.assign({hash:{name:"HMAC"}},I),A=e.assign({iterations:1e3,hash:{name:"SHA-1"}},I),V=["deriveBits"],B=[8,12,16],D=[16,24,32],E=[0,0,0,0],M=void 0!==u,P=M&&void 0!==u.subtle,R=M&&"function"==typeof u.getRandomValues,T=M&&P&&"function"==typeof u.subtle.importKey,U=M&&P&&"function"==typeof u.subtle.deriveBits,W=S.m,j=class{constructor(t){const e=this;e.K=[[[],[],[],[],[]],[[],[],[],[],[]]],e.K[0][0][0]||e.L();const n=e.K[0][4],s=e.K[1],i=t.length;let o,f,c,l=1;if(4!==i&&6!==i&&8!==i)throw new r("invalid aes key size");for(e.D=[f=t.slice(0),c=[]],o=i;4*i+28>o;o++){let t=f[o-1];(o%i==0||8===i&&o%i==4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%i==0&&(t=t<<8^t>>>24^l<<24,l=l<<1^283*(l>>7))),f[o]=f[o-i]^t}for(let t=0;o;t++,o--){const e=f[3&t?o:o-4];c[t]=4>=o||4>t?e:s[0][n[e>>>24]]^s[1][n[e>>16&255]]^s[2][n[e>>8&255]]^s[3][n[255&e]]}}encrypt(t){return this.F(t,0)}decrypt(t){return this.F(t,1)}L(){const t=this.K[0],e=this.K[1],n=t[4],r=e[4],s=[],i=[];let o,f,c,l;for(let t=0;256>t;t++)i[(s[t]=t<<1^283*(t>>7))^t]=t;for(let a=o=0;!n[a];a^=f||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[a]=i,r[i]=a,l=s[c=s[f=s[a]]];let u=16843009*l^65537*c^257*f^16843008*a,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)t[n][a]=w=w<<24^w>>>8,e[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}F(t,e){if(4!==t.length)throw new r("invalid aes block size");const n=this.D[e],s=n.length/4-2,i=[0,0,0,0],o=this.K[e],f=o[0],c=o[1],l=o[2],a=o[3],u=o[4];let w,h,d,p=t[0]^n[0],b=t[e?3:1]^n[1],y=t[2]^n[2],m=t[e?1:3]^n[3],g=4;for(let t=0;s>t;t++)w=f[p>>>24]^c[b>>16&255]^l[y>>8&255]^a[255&m]^n[g],h=f[b>>>24]^c[y>>16&255]^l[m>>8&255]^a[255&p]^n[g+1],d=f[y>>>24]^c[m>>16&255]^l[p>>8&255]^a[255&b]^n[g+2],m=f[m>>>24]^c[p>>16&255]^l[b>>8&255]^a[255&y]^n[g+3],g+=4,p=w,b=h,y=d;for(let t=0;4>t;t++)i[e?3&-t:t]=u[p>>>24]<<24^u[b>>16&255]<<16^u[y>>8&255]<<8^u[255&m]^n[g++],w=p,p=b,b=y,y=m,m=w;return i}},H=class{constructor(t,e){this.N=t,this.O=e,this.q=e}reset(){this.q=this.O}update(t){return this.G(this.N,t,this.q)}J(t){if(255==(t>>24&255)){let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}else t+=1<<24;return t}X(t){0===(t[0]=this.J(t[0]))&&(t[1]=this.J(t[1]))}G(t,e,n){let r;if(!(r=e.length))return[];const s=v.u(e);for(let s=0;r>s;s+=4){this.X(n);const r=t.encrypt(n);e[s]^=r[0],e[s+1]^=r[1],e[s+2]^=r[2],e[s+3]^=r[3]}return v.h(e,s)}},K=C.R;class L extends h{constructor(n,i,o){let f;super({start(){e.assign(this,{ready:new l((t=>this.Y=t)),password:n,signed:i,Z:o-1,pending:new s})},async transform(e,n){const i=this;if(i.password){const n=i.password;i.password=null;const s=G(e,0,B[i.Z]+2);await(async(t,e,n)=>{await O(t,n,G(e,0,B[t.Z]));const s=G(e,B[t.Z]),i=t.keys.passwordVerification;if(i[0]!=s[0]||i[1]!=s[1])throw new r("Invalid pasword")})(i,s,n),i.$=new H(new j(i.keys.key),t.from(E)),i.tt=new K(i.keys.et),e=G(e,B[i.Z]+2),i.Y()}else await i.ready;const o=new s(e.length-10-(e.length-10)%16);n.enqueue(N(i,e,o,0,10,!0))},async flush(t){const e=this;await e.ready;const n=e.pending,r=G(n,0,n.length-10),i=G(n,n.length-10);let o=new s;if(r.length){const t=Q(W,r);e.tt.update(t);const n=e.$.update(t);o=J(W,n)}if(f.valid=!0,e.signed){const t=G(J(W,e.tt.digest()),0,10);for(let e=0;10>e;e++)t[e]!=i[e]&&(f.valid=!1)}t.enqueue(o)}}),f=this}}class F extends h{constructor(n,r){let i;super({start(){e.assign(this,{ready:new l((t=>this.Y=t)),password:n,Z:r-1,pending:new s})},async transform(e,n){const r=this;let i=new s;if(r.password){const e=r.password;r.password=null,i=await(async(t,e)=>{const n=(r=new s(B[t.Z]),R?u.getRandomValues(r):z.getRandomValues(r));var r;return await O(t,e,n),q(n,t.keys.passwordVerification)})(r,e),r.$=new H(new j(r.keys.key),t.from(E)),r.tt=new K(r.keys.et),r.Y()}else await r.ready;const o=new s(i.length+e.length-e.length%16);o.set(i,0),n.enqueue(N(r,e,o,i.length,0))},async flush(t){const e=this;await e.ready;let n=new s;if(e.pending.length){const t=e.$.update(Q(W,e.pending));e.tt.update(t),n=J(W,t)}i.signature=J(W,e.tt.digest()).slice(0,10),t.enqueue(q(n,i.signature))}}),i=this}}function N(t,e,n,r,i,o){const f=e.length-i;let c;for(t.pending.length&&(e=q(t.pending,e),n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new s(e)).set(n,0)}return t})(n,f-f%16)),c=0;f-16>=c;c+=16){const s=Q(W,G(e,c,c+16));o&&t.tt.update(s);const i=t.$.update(s);o||t.tt.update(i),n.set(J(W,i),c+r)}return t.pending=G(e,c),n}async function O(t,n,r){const i=(t=>{if(void 0===a){const e=new s((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new a).encode(t)})(n),o=await((t,e,n,r,s)=>T?u.subtle.importKey("raw",e,n,!1,s):C.importKey(e))(0,i,x,0,V),f=await(async(t,e,n)=>U?await u.subtle.deriveBits(t,e,n):C.T(e,t.salt,A.iterations,n))(e.assign({salt:r},A),o,8*(2*D[t.Z]+2)),c=new s(f);t.keys={key:Q(W,G(c,0,D[t.Z])),et:Q(W,G(c,D[t.Z],2*D[t.Z])),passwordVerification:G(c,2*D[t.Z])}}function q(t,e){let n=t;return t.length+e.length&&(n=new s(t.length+e.length),n.set(t,0),n.set(e,t.length)),n}function G(t,e,n){return t.subarray(e,n)}function J(t,e){return t.g(e)}function Q(t,e){return t.k(e)}class X extends h{constructor(t,n){let s;super({start(){e.assign(this,{password:t,passwordVerification:n}),tt(this,t)},transform(t,e){const n=this;if(n.password){const e=Z(n,t.subarray(0,12));if(n.password=null,e[11]!=n.passwordVerification)throw new r("Invalid pasword");t=t.subarray(12)}e.enqueue(Z(n,t))},flush(){s.valid=!0}}),s=this}}class Y extends h{constructor(t,n){super({start(){e.assign(this,{password:t,passwordVerification:n}),tt(this,t)},transform(t,e){const n=this;let r,i;if(n.password){n.password=null;const e=u.getRandomValues(new s(12));e[11]=n.passwordVerification,r=new s(t.length+e.length),r.set($(n,e),0),i=12}else r=new s(t.length),i=0;r.set($(n,t),i),e.enqueue(r)},flush(){}})}}function Z(t,e){const n=new s(e.length);for(let r=0;r<e.length;r++)n[r]=nt(t)^e[r],et(t,n[r]);return n}function $(t,e){const n=new s(e.length);for(let r=0;r<e.length;r++)n[r]=nt(t)^e[r],et(t,e[r]);return n}function tt(t,e){t.keys=[305419896,591751049,878082192],t.nt=new g(t.keys[0]),t.rt=new g(t.keys[2]);for(let n=0;n<e.length;n++)et(t,e.charCodeAt(n))}function et(t,e){t.nt.append([e]),t.keys[0]=~t.nt.get(),t.keys[1]=st(t.keys[1]+rt(t.keys[0])),t.keys[1]=st(n.imul(t.keys[1],134775813)+1),t.rt.append([t.keys[1]>>>24]),t.keys[2]=~t.rt.get()}function nt(t){const e=2|t.keys[2];return rt(n.imul(e,1^e)>>>8)}function rt(t){return 255&t}function st(t){return 4294967295&t}class it extends h{constructor(t,e){let n;super({start(){n=new t(e)},transform(t,e){t=n.append(t),e.enqueue(t)},flush(t){const e=n.flush();e&&t.enqueue(e)}})}}const ot=void 0===b,ft=void 0===y;let ct=!0,lt=!0;class at extends h{constructor(t,e,{chunkSize:n},...r){super({},...r);const{compressed:s,st:i,password:o,passwordVerification:f,encryptionStrength:l,zipCrypto:a,signed:u}=e,w=this;let h,d,p=ht(super.readable);const y=!!o;if(y&&!a||!u||([p,h]=p.tee(),h=h.pipeThrough(new k)),s)if(void 0!==i&&!i||ot&&!lt)p=wt(t,p,n);else try{p=p.pipeThrough(new b("deflate-raw"))}catch(e){lt=!1,p=wt(t,p,n)}y&&(a?p=p.pipeThrough(new Y(o,f)):(d=new F(o,l),p=p.pipeThrough(d))),dt(w,p,(async()=>{let t;y&&!a&&(t=d.signature),y&&!a||!u||(t=await h.getReader().read(),t=new c(t.value.buffer).getUint32(0)),w.signature=t}))}}class ut extends h{constructor(t,e,{chunkSize:n},...s){super({},...s);const{zipCrypto:i,password:o,passwordVerification:f,signed:l,encryptionStrength:a,compressed:u,st:w}=e;let h,d,p=ht(super.readable);const b=!!o;if(b&&(i?p=p.pipeThrough(new X(o,f)):(d=new L(o,l,a),p=p.pipeThrough(d))),u)if(void 0!==w&&!w||ft&&!ct)p=wt(t,p,n);else try{p=p.pipeThrough(new y("deflate-raw"))}catch(e){ct=!1,p=wt(t,p,n)}b&&!i||!l||([p,h]=p.tee(),h=h.pipeThrough(new k)),dt(this,p,(async()=>{if(b&&!i&&!d.valid)throw new r("Invalid signature");if((!b||i)&&l){const t=await h.getReader().read();if(t!=new c(t.value.buffer).getUint32(0,!1))throw new r("Invalid signature")}}))}}function wt(t,e,n){return e.pipeThrough(new it(t,{chunkSize:n}))}function ht(t){return t.pipeThrough(new h({transform(t,e){t&&t.length&&e.enqueue(t)}}))}function dt(t,n,r){t.length=0,n=n.pipeThrough(new h({transform(e,n){e&&e.length&&(t.length+=e.length,n.enqueue(e))},flush:r})),e.defineProperty(t,"readable",{get:()=>n})}const pt=new Map;let bt,yt=0;async function mt(t){try{const{options:e,scripts:n,config:r}=t,{codecType:s}=e;let i;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),s.startsWith("deflate")?i=self.Deflate:s.startsWith("inflate")&&(i=self.Inflate);const o={highWaterMark:1,size:()=>r.chunkSize},f=new d({async pull(t){let e=new l(((t,e)=>pt.set(yt,{resolve:t,reject:e})));gt({type:"pull",messageId:yt}),yt=(yt+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:r}=await e;t.enqueue(n),r&&t.close()}},o),c=new p({write(t){gt({type:"data",data:t})}},o);bt=((t,e,n,r,s)=>{const i=new AbortController,{signal:o}=i;if(r.codecType.startsWith("deflate"))return{it:()=>f(at),abort:c};if(r.codecType.startsWith("inflate"))return{it:()=>f(ut),abort:c};async function f(i){const f=new i(t,r,s);await e.pipeThrough(f,{signal:o}).pipeTo(n,{ot:!0});const{length:c,signature:l}=f;return{length:c,signature:l}}function c(){i.abort()}})(i,f,c,e,r),gt({type:"close",result:await bt.it()})}catch(t){const{message:e,stack:n}=t;w({error:{message:e,stack:n}})}}function gt(t){if(t.data){let{data:e}=t;if(e&&e.length)try{e.length!=e.buffer.byteLength&&(e=new s(e)),t.data=e.buffer,w(t,[t.data])}catch(e){w(t)}else w(t)}else w(t)}addEventListener("message",(async t=>{const e=t.data,{type:n,messageId:r,data:i,done:o}=e;try{if("start"==n&&mt(e),"data"==n){const{resolve:t}=pt.get(r);pt.delete(r),t({value:new s(i),done:o})}"abort"==n&&bt.abort()}catch(t){w({error:{message:t.message,stack:t.stack}})}}));const kt=(()=>{const e=-2;function o(e){return f(e.map((([e,n])=>new t(e).fill(n,0,e))))}function f(e){return e.reduce(((e,n)=>e.concat(t.isArray(n)?f(n):n)),[])}const c=[0,1,2,3].concat(...o([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function l(){const t=this;function e(t,e){let n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1}t.ft=r=>{const s=t.ct,i=t.ut.lt,o=t.ut.wt;let f,c,l,a=-1;for(r.ht=0,r.dt=573,f=0;o>f;f++)0!==s[2*f]?(r.bt[++r.ht]=a=f,r.yt[f]=0):s[2*f+1]=0;for(;2>r.ht;)l=r.bt[++r.ht]=2>a?++a:0,s[2*l]=1,r.yt[l]=0,r.gt--,i&&(r.kt-=i[2*l+1]);for(t.vt=a,f=n.floor(r.ht/2);f>=1;f--)r.St(s,f);l=o;do{f=r.bt[1],r.bt[1]=r.bt[r.ht--],r.St(s,1),c=r.bt[1],r.bt[--r.dt]=f,r.bt[--r.dt]=c,s[2*l]=s[2*f]+s[2*c],r.yt[l]=n.max(r.yt[f],r.yt[c])+1,s[2*f+1]=s[2*c+1]=l,r.bt[1]=l++,r.St(s,1)}while(r.ht>=2);r.bt[--r.dt]=r.bt[1],(e=>{const n=t.ct,r=t.ut.lt,s=t.ut._t,i=t.ut.zt,o=t.ut.Ct;let f,c,l,a,u,w,h=0;for(a=0;15>=a;a++)e.It[a]=0;for(n[2*e.bt[e.dt]+1]=0,f=e.dt+1;573>f;f++)c=e.bt[f],a=n[2*n[2*c+1]+1]+1,a>o&&(a=o,h++),n[2*c+1]=a,c>t.vt||(e.It[a]++,u=0,i>c||(u=s[c-i]),w=n[2*c],e.gt+=w*(a+u),r&&(e.kt+=w*(r[2*c+1]+u)));if(0!==h){do{for(a=o-1;0===e.It[a];)a--;e.It[a]--,e.It[a+1]+=2,e.It[o]--,h-=2}while(h>0);for(a=o;0!==a;a--)for(c=e.It[a];0!==c;)l=e.bt[--f],l>t.vt||(n[2*l+1]!=a&&(e.gt+=(a-n[2*l+1])*n[2*l],n[2*l+1]=a),c--)}})(r),((t,n,r)=>{const s=[];let i,o,f,c=0;for(i=1;15>=i;i++)s[i]=c=c+r[i-1]<<1;for(o=0;n>=o;o++)f=t[2*o+1],0!==f&&(t[2*o]=e(s[f]++,f))})(s,t.vt,r.It)}}function a(t,e,n,r,s){const i=this;i.lt=t,i._t=e,i.zt=n,i.wt=r,i.Ct=s}l.xt=[0,1,2,3,4,5,6,7].concat(...o([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),l.At=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],l.Vt=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],l.Bt=t=>256>t?c[t]:c[256+(t>>>7)],l.Dt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],l.Et=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],l.Mt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],l.Pt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const u=o([[144,8],[112,9],[24,7],[8,8]]);a.Rt=f([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((t,e)=>[t,u[e]])));const w=o([[30,5]]);function h(t,e,n,r,s){const i=this;i.Tt=t,i.Ut=e,i.Wt=n,i.jt=r,i.Ht=s}a.Kt=f([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((t,e)=>[t,w[e]]))),a.Lt=new a(a.Rt,l.Dt,257,286,15),a.Ft=new a(a.Kt,l.Et,0,30,15),a.Nt=new a(null,l.Mt,0,19,7);const d=[new h(0,0,0,0,0),new h(4,4,8,4,1),new h(4,5,16,8,1),new h(4,6,32,32,1),new h(4,4,16,16,2),new h(8,16,32,32,2),new h(8,16,128,128,2),new h(8,32,128,256,2),new h(32,128,258,1024,2),new h(32,258,258,4096,2)],p=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],b=113,y=666,m=262;function g(t,e,n,r){const s=t[2*e],i=t[2*n];return i>s||s==i&&r[e]<=r[n]}function k(){const t=this;let r,o,f,c,u,w,h,k,v,S,_,z,C,I,x,A,V,B,D,E,M,P,R,T,U,W,j,H,K,L,F,N,O;const q=new l,G=new l,J=new l;let Q,X,Y,Z,$,tt;function et(){let e;for(e=0;286>e;e++)F[2*e]=0;for(e=0;30>e;e++)N[2*e]=0;for(e=0;19>e;e++)O[2*e]=0;F[512]=1,t.gt=t.kt=0,X=Y=0}function nt(t,e){let n,r=-1,s=t[1],i=0,o=7,f=4;0===s&&(o=138,f=3),t[2*(e+1)+1]=65535;for(let c=0;e>=c;c++)n=s,s=t[2*(c+1)+1],++i<o&&n==s||(f>i?O[2*n]+=i:0!==n?(n!=r&&O[2*n]++,O[32]++):i>10?O[36]++:O[34]++,i=0,r=n,0===s?(o=138,f=3):n==s?(o=6,f=3):(o=7,f=4))}function rt(e){t.Ot[t.pending++]=e}function st(t){rt(255&t),rt(t>>>8&255)}function it(t,e){let n;const r=e;tt>16-r?(n=t,$|=n<<tt&65535,st($),$=n>>>16-tt,tt+=r-16):($|=t<<tt&65535,tt+=r)}function ot(t,e){const n=2*t;it(65535&e[n],65535&e[n+1])}function ft(t,e){let n,r,s=-1,i=t[1],o=0,f=7,c=4;for(0===i&&(f=138,c=3),n=0;e>=n;n++)if(r=i,i=t[2*(n+1)+1],++o>=f||r!=i){if(c>o)do{ot(r,O)}while(0!=--o);else 0!==r?(r!=s&&(ot(r,O),o--),ot(16,O),it(o-3,2)):o>10?(ot(18,O),it(o-11,7)):(ot(17,O),it(o-3,3));o=0,s=r,0===i?(f=138,c=3):r==i?(f=6,c=3):(f=7,c=4)}}function ct(){16==tt?(st($),$=0,tt=0):8>tt||(rt(255&$),$>>>=8,tt-=8)}function lt(e,r){let s,i,o;if(t.qt[X]=e,t.Gt[X]=255&r,X++,0===e?F[2*r]++:(Y++,e--,F[2*(l.xt[r]+256+1)]++,N[2*l.Bt(e)]++),0==(8191&X)&&j>2){for(s=8*X,i=M-V,o=0;30>o;o++)s+=N[2*o]*(5+l.Et[o]);if(s>>>=3,Y<n.floor(X/2)&&s<n.floor(i/2))return!0}return X==Q-1}function at(e,n){let r,s,i,o,f=0;if(0!==X)do{r=t.qt[f],s=t.Gt[f],f++,0===r?ot(s,e):(i=l.xt[s],ot(i+256+1,e),o=l.Dt[i],0!==o&&(s-=l.At[i],it(s,o)),r--,i=l.Bt(r),ot(i,n),o=l.Et[i],0!==o&&(r-=l.Vt[i],it(r,o)))}while(X>f);ot(256,e),Z=e[513]}function ut(){tt>8?st($):tt>0&&rt(255&$),$=0,tt=0}function wt(e,n,r){it(0+(r?1:0),3),((e,n)=>{ut(),Z=8,st(n),st(~n),t.Ot.set(k.subarray(e,e+n),t.pending),t.pending+=n})(e,n)}function ht(e){((e,n,r)=>{let s,i,o=0;j>0?(q.ft(t),G.ft(t),o=(()=>{let e;for(nt(F,q.vt),nt(N,G.vt),J.ft(t),e=18;e>=3&&0===O[2*l.Pt[e]+1];e--);return t.gt+=14+3*(e+1),e})(),s=t.gt+3+7>>>3,i=t.kt+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==e?i==s?(it(2+(r?1:0),3),at(a.Rt,a.Kt)):(it(4+(r?1:0),3),((t,e,n)=>{let r;for(it(t-257,5),it(e-1,5),it(n-4,4),r=0;n>r;r++)it(O[2*l.Pt[r]+1],3);ft(F,t-1),ft(N,e-1)})(q.vt+1,G.vt+1,o+1),at(F,N)):wt(e,n,r),et(),r&&ut()})(0>V?-1:V,M-V,e),V=M,r.Jt()}function dt(){let t,e,n,s;do{if(s=v-R-M,0===s&&0===M&&0===R)s=u;else if(-1==s)s--;else if(M>=u+u-m){k.set(k.subarray(u,u+u),0),P-=u,M-=u,V-=u,t=C,n=t;do{e=65535&_[--n],_[n]=u>e?0:e-u}while(0!=--t);t=u,n=t;do{e=65535&S[--n],S[n]=u>e?0:e-u}while(0!=--t);s+=u}if(0===r.Qt)return;t=r.Xt(k,M+R,s),R+=t,3>R||(z=255&k[M],z=(z<<A^255&k[M+1])&x)}while(m>R&&0!==r.Qt)}function pt(t){let e,n,r=U,s=M,i=T;const o=M>u-m?M-(u-m):0;let f=L;const c=h,l=M+258;let a=k[s+i-1],w=k[s+i];K>T||(r>>=2),f>R&&(f=R);do{if(e=t,k[e+i]==w&&k[e+i-1]==a&&k[e]==k[s]&&k[++e]==k[s+1]){s+=2,e++;do{}while(k[++s]==k[++e]&&k[++s]==k[++e]&&k[++s]==k[++e]&&k[++s]==k[++e]&&k[++s]==k[++e]&&k[++s]==k[++e]&&k[++s]==k[++e]&&k[++s]==k[++e]&&l>s);if(n=258-(l-s),s=l-258,n>i){if(P=t,i=n,n>=f)break;a=k[s+i-1],w=k[s+i]}}}while((t=65535&S[t&c])>o&&0!=--r);return i>R?R:i}t.yt=[],t.It=[],t.bt=[],F=[],N=[],O=[],t.St=(e,n)=>{const r=t.bt,s=r[n];let i=n<<1;for(;i<=t.ht&&(i<t.ht&&g(e,r[i+1],r[i],t.yt)&&i++,!g(e,s,r[i],t.yt));)r[n]=r[i],n=i,i<<=1;r[n]=s},t.Yt=(r,l,p,y,m,g)=>(y||(y=8),m||(m=8),g||(g=0),r.Zt=null,-1==l&&(l=6),1>m||m>9||8!=y||9>p||p>15||0>l||l>9||0>g||g>2?e:(r.$t=t,w=p,u=1<<w,h=u-1,I=m+7,C=1<<I,x=C-1,A=n.floor((I+3-1)/3),k=new s(2*u),S=[],_=[],Q=1<<m+6,t.Ot=new s(4*Q),f=4*Q,t.qt=new i(Q),t.Gt=new s(Q),j=l,H=g,(e=>(e.te=e.ee=0,e.Zt=null,t.pending=0,t.ne=0,o=b,c=0,q.ct=F,q.ut=a.Lt,G.ct=N,G.ut=a.Ft,J.ct=O,J.ut=a.Nt,$=0,tt=0,Z=8,et(),(()=>{v=2*u,_[C-1]=0;for(let t=0;C-1>t;t++)_[t]=0;W=d[j].Ut,K=d[j].Tt,L=d[j].Wt,U=d[j].jt,M=0,V=0,R=0,B=T=2,E=0,z=0})(),0))(r))),t.re=()=>42!=o&&o!=b&&o!=y?e:(t.Gt=null,t.qt=null,t.Ot=null,_=null,S=null,k=null,t.$t=null,o==b?-3:0),t.se=(t,n,r)=>{let s=0;return-1==n&&(n=6),0>n||n>9||0>r||r>2?e:(d[j].Ht!=d[n].Ht&&0!==t.te&&(s=t.ie(1)),j!=n&&(j=n,W=d[j].Ut,K=d[j].Tt,L=d[j].Wt,U=d[j].jt),H=r,s)},t.oe=(t,n,r)=>{let s,i=r,f=0;if(!n||42!=o)return e;if(3>i)return 0;for(i>u-m&&(i=u-m,f=r-i),k.set(n.subarray(f,f+i),0),M=i,V=i,z=255&k[0],z=(z<<A^255&k[1])&x,s=0;i-3>=s;s++)z=(z<<A^255&k[s+2])&x,S[s&h]=_[z],_[z]=s;return 0},t.ie=(n,s)=>{let i,l,g,v,I;if(s>4||0>s)return e;if(!n.fe||!n.ce&&0!==n.Qt||o==y&&4!=s)return n.Zt=p[4],e;if(0===n.le)return n.Zt=p[7],-5;var U;if(r=n,v=c,c=s,42==o&&(l=8+(w-8<<4)<<8,g=(j-1&255)>>1,g>3&&(g=3),l|=g<<6,0!==M&&(l|=32),l+=31-l%31,o=b,rt((U=l)>>8&255),rt(255&U)),0!==t.pending){if(r.Jt(),0===r.le)return c=-1,0}else if(0===r.Qt&&v>=s&&4!=s)return r.Zt=p[7],-5;if(o==y&&0!==r.Qt)return n.Zt=p[7],-5;if(0!==r.Qt||0!==R||0!=s&&o!=y){switch(I=-1,d[j].Ht){case 0:I=(t=>{let e,n=65535;for(n>f-5&&(n=f-5);;){if(1>=R){if(dt(),0===R&&0==t)return 0;if(0===R)break}if(M+=R,R=0,e=V+n,(0===M||M>=e)&&(R=M-e,M=e,ht(!1),0===r.le))return 0;if(M-V>=u-m&&(ht(!1),0===r.le))return 0}return ht(4==t),0===r.le?4==t?2:0:4==t?3:1})(s);break;case 1:I=(t=>{let e,n=0;for(;;){if(m>R){if(dt(),m>R&&0==t)return 0;if(0===R)break}if(3>R||(z=(z<<A^255&k[M+2])&x,n=65535&_[z],S[M&h]=_[z],_[z]=M),0===n||(M-n&65535)>u-m||2!=H&&(B=pt(n)),3>B)e=lt(0,255&k[M]),R--,M++;else if(e=lt(M-P,B-3),R-=B,B>W||3>R)M+=B,B=0,z=255&k[M],z=(z<<A^255&k[M+1])&x;else{B--;do{M++,z=(z<<A^255&k[M+2])&x,n=65535&_[z],S[M&h]=_[z],_[z]=M}while(0!=--B);M++}if(e&&(ht(!1),0===r.le))return 0}return ht(4==t),0===r.le?4==t?2:0:4==t?3:1})(s);break;case 2:I=(t=>{let e,n,s=0;for(;;){if(m>R){if(dt(),m>R&&0==t)return 0;if(0===R)break}if(3>R||(z=(z<<A^255&k[M+2])&x,s=65535&_[z],S[M&h]=_[z],_[z]=M),T=B,D=P,B=2,0!==s&&W>T&&u-m>=(M-s&65535)&&(2!=H&&(B=pt(s)),5>=B&&(1==H||3==B&&M-P>4096)&&(B=2)),3>T||B>T)if(0!==E){if(e=lt(0,255&k[M-1]),e&&ht(!1),M++,R--,0===r.le)return 0}else E=1,M++,R--;else{n=M+R-3,e=lt(M-1-D,T-3),R-=T-1,T-=2;do{++M>n||(z=(z<<A^255&k[M+2])&x,s=65535&_[z],S[M&h]=_[z],_[z]=M)}while(0!=--T);if(E=0,B=2,M++,e&&(ht(!1),0===r.le))return 0}}return 0!==E&&(e=lt(0,255&k[M-1]),E=0),ht(4==t),0===r.le?4==t?2:0:4==t?3:1})(s)}if(2!=I&&3!=I||(o=y),0==I||2==I)return 0===r.le&&(c=-1),0;if(1==I){if(1==s)it(2,3),ot(256,a.Rt),ct(),9>1+Z+10-tt&&(it(2,3),ot(256,a.Rt),ct()),Z=7;else if(wt(0,0,!1),3==s)for(i=0;C>i;i++)_[i]=0;if(r.Jt(),0===r.le)return c=-1,0}}return 4!=s?0:1}}function v(){const t=this;t.ae=0,t.ue=0,t.Qt=0,t.te=0,t.le=0,t.ee=0}return v.prototype={Yt(t,e){const n=this;return n.$t=new k,e||(e=15),n.$t.Yt(n,t,e)},ie(t){const n=this;return n.$t?n.$t.ie(n,t):e},re(){const t=this;if(!t.$t)return e;const n=t.$t.re();return t.$t=null,n},se(t,n){const r=this;return r.$t?r.$t.se(r,t,n):e},oe(t,n){const r=this;return r.$t?r.$t.oe(r,t,n):e},Xt(t,e,n){const r=this;let s=r.Qt;return s>n&&(s=n),0===s?0:(r.Qt-=s,t.set(r.ce.subarray(r.ae,r.ae+s),e),r.ae+=s,r.te+=s,s)},Jt(){const t=this;let e=t.$t.pending;e>t.le&&(e=t.le),0!==e&&(t.fe.set(t.$t.Ot.subarray(t.$t.ne,t.$t.ne+e),t.ue),t.ue+=e,t.$t.ne+=e,t.ee+=e,t.le-=e,t.$t.pending-=e,0===t.$t.pending&&(t.$t.ne=0))}},function(t){const e=new v,i=(o=t&&t.chunkSize?t.chunkSize:65536)+5*(n.floor(o/16383)+1);var o;const f=new s(i);let c=t?t.level:-1;void 0===c&&(c=-1),e.Yt(c),e.fe=f,this.append=(t,n)=>{let o,c,l=0,a=0,u=0;const w=[];if(t.length){e.ae=0,e.ce=t,e.Qt=t.length;do{if(e.ue=0,e.le=i,o=e.ie(0),0!=o)throw new r("deflating: "+e.Zt);e.ue&&(e.ue==i?w.push(new s(f)):w.push(f.slice(0,e.ue))),u+=e.ue,n&&e.ae>0&&e.ae!=l&&(n(e.ae),l=e.ae)}while(e.Qt>0||0===e.le);return w.length>1?(c=new s(u),w.forEach((t=>{c.set(t,a),a+=t.length}))):c=w[0]||new s,c}},this.flush=()=>{let t,n,o=0,c=0;const l=[];do{if(e.ue=0,e.le=i,t=e.ie(4),1!=t&&0!=t)throw new r("deflating: "+e.Zt);i-e.le>0&&l.push(f.slice(0,e.ue)),c+=e.ue}while(e.Qt>0||0===e.le);return e.re(),n=new s(c),l.forEach((t=>{n.set(t,o),o+=t.length})),n}}})(),vt=(()=>{const t=-2,e=-3,i=-5,o=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],c=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],l=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],a=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],u=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],w=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],h=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function d(){let t,n,r,s,o,c;function l(t,n,f,l,a,u,w,h,d,p,b){let y,m,g,k,v,S,_,z,C,I,x,A,V,B,D;I=0,v=f;do{r[t[n+I]]++,I++,v--}while(0!==v);if(r[0]==f)return w[0]=-1,h[0]=0,0;for(z=h[0],S=1;15>=S&&0===r[S];S++);for(_=S,S>z&&(z=S),v=15;0!==v&&0===r[v];v--);for(g=v,z>v&&(z=v),h[0]=z,B=1<<S;v>S;S++,B<<=1)if(0>(B-=r[S]))return e;if(0>(B-=r[v]))return e;for(r[v]+=B,c[1]=S=0,I=1,V=2;0!=--v;)c[V]=S+=r[I],V++,I++;v=0,I=0;do{0!==(S=t[n+I])&&(b[c[S]++]=v),I++}while(++v<f);for(f=c[g],c[0]=v=0,I=0,k=-1,A=-z,o[0]=0,x=0,D=0;g>=_;_++)for(y=r[_];0!=y--;){for(;_>A+z;){if(k++,A+=z,D=g-A,D=D>z?z:D,(m=1<<(S=_-A))>y+1&&(m-=y+1,V=_,D>S))for(;++S<D&&(m<<=1)>r[++V];)m-=r[V];if(D=1<<S,p[0]+D>1440)return e;o[k]=x=p[0],p[0]+=D,0!==k?(c[k]=v,s[0]=S,s[1]=z,S=v>>>A-z,s[2]=x-o[k-1]-S,d.set(s,3*(o[k-1]+S))):w[0]=x}for(s[1]=_-A,f>I?b[I]<l?(s[0]=256>b[I]?0:96,s[2]=b[I++]):(s[0]=u[b[I]-l]+16+64,s[2]=a[b[I++]-l]):s[0]=192,m=1<<_-A,S=v>>>A;D>S;S+=m)d.set(s,3*(x+S));for(S=1<<_-1;0!=(v&S);S>>>=1)v^=S;for(v^=S,C=(1<<A)-1;(v&C)!=c[k];)k--,A-=z,C=(1<<A)-1}return 0!==B&&1!=g?i:0}function d(e){let i;for(t||(t=[],n=[],r=new f(16),s=[],o=new f(15),c=new f(16)),n.length<e&&(n=[]),i=0;e>i;i++)n[i]=0;for(i=0;16>i;i++)r[i]=0;for(i=0;3>i;i++)s[i]=0;o.set(r.subarray(0,15),0),c.set(r.subarray(0,16),0)}this.we=(r,s,o,f,c)=>{let a;return d(19),t[0]=0,a=l(r,0,19,19,null,null,o,s,f,t,n),a==e?c.Zt="oversubscribed dynamic bit lengths tree":a!=i&&0!==s[0]||(c.Zt="incomplete dynamic bit lengths tree",a=e),a},this.he=(r,s,o,f,c,p,b,y,m)=>{let g;return d(288),t[0]=0,g=l(o,0,r,257,a,u,p,f,y,t,n),0!=g||0===f[0]?(g==e?m.Zt="oversubscribed literal/length tree":-4!=g&&(m.Zt="incomplete literal/length tree",g=e),g):(d(288),g=l(o,r,s,0,w,h,b,c,y,t,n),0!=g||0===c[0]&&r>257?(g==e?m.Zt="oversubscribed distance tree":g==i?(m.Zt="incomplete distance tree",g=e):-4!=g&&(m.Zt="empty distance tree with lengths",g=e),g):0)}}function p(){const n=this;let r,s,i,f,c=0,l=0,a=0,u=0,w=0,h=0,d=0,p=0,b=0,y=0;function m(t,n,r,s,i,f,c,l){let a,u,w,h,d,p,b,y,m,g,k,v,S,_,z,C;b=l.ae,y=l.Qt,d=c.de,p=c.pe,m=c.write,g=m<c.read?c.read-m-1:c.end-m,k=o[t],v=o[n];do{for(;20>p;)y--,d|=(255&l.be(b++))<<p,p+=8;if(a=d&k,u=r,w=s,C=3*(w+a),0!==(h=u[C]))for(;;){if(d>>=u[C+1],p-=u[C+1],0!=(16&h)){for(h&=15,S=u[C+2]+(d&o[h]),d>>=h,p-=h;15>p;)y--,d|=(255&l.be(b++))<<p,p+=8;for(a=d&v,u=i,w=f,C=3*(w+a),h=u[C];;){if(d>>=u[C+1],p-=u[C+1],0!=(16&h)){for(h&=15;h>p;)y--,d|=(255&l.be(b++))<<p,p+=8;if(_=u[C+2]+(d&o[h]),d>>=h,p-=h,g-=S,_>m){z=m-_;do{z+=c.end}while(0>z);if(h=c.end-z,S>h){if(S-=h,m-z>0&&h>m-z)do{c.ye[m++]=c.ye[z++]}while(0!=--h);else c.ye.set(c.ye.subarray(z,z+h),m),m+=h,z+=h,h=0;z=0}}else z=m-_,m-z>0&&2>m-z?(c.ye[m++]=c.ye[z++],c.ye[m++]=c.ye[z++],S-=2):(c.ye.set(c.ye.subarray(z,z+2),m),m+=2,z+=2,S-=2);if(m-z>0&&S>m-z)do{c.ye[m++]=c.ye[z++]}while(0!=--S);else c.ye.set(c.ye.subarray(z,z+S),m),m+=S,z+=S,S=0;break}if(0!=(64&h))return l.Zt="invalid distance code",S=l.Qt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.de=d,c.pe=p,l.Qt=y,l.te+=b-l.ae,l.ae=b,c.write=m,e;a+=u[C+2],a+=d&o[h],C=3*(w+a),h=u[C]}break}if(0!=(64&h))return 0!=(32&h)?(S=l.Qt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.de=d,c.pe=p,l.Qt=y,l.te+=b-l.ae,l.ae=b,c.write=m,1):(l.Zt="invalid literal/length code",S=l.Qt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.de=d,c.pe=p,l.Qt=y,l.te+=b-l.ae,l.ae=b,c.write=m,e);if(a+=u[C+2],a+=d&o[h],C=3*(w+a),0===(h=u[C])){d>>=u[C+1],p-=u[C+1],c.ye[m++]=u[C+2],g--;break}}else d>>=u[C+1],p-=u[C+1],c.ye[m++]=u[C+2],g--}while(g>=258&&y>=10);return S=l.Qt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.de=d,c.pe=p,l.Qt=y,l.te+=b-l.ae,l.ae=b,c.write=m,0}n.init=(t,e,n,o,c,l)=>{r=0,d=t,p=e,i=n,b=o,f=c,y=l,s=null},n.me=(n,g,k)=>{let v,S,_,z,C,I,x,A=0,V=0,B=0;for(B=g.ae,z=g.Qt,A=n.de,V=n.pe,C=n.write,I=C<n.read?n.read-C-1:n.end-C;;)switch(r){case 0:if(I>=258&&z>=10&&(n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,k=m(d,p,i,b,f,y,n,g),B=g.ae,z=g.Qt,A=n.de,V=n.pe,C=n.write,I=C<n.read?n.read-C-1:n.end-C,0!=k)){r=1==k?7:9;break}a=d,s=i,l=b,r=1;case 1:for(v=a;v>V;){if(0===z)return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);k=0,z--,A|=(255&g.be(B++))<<V,V+=8}if(S=3*(l+(A&o[v])),A>>>=s[S+1],V-=s[S+1],_=s[S],0===_){u=s[S+2],r=6;break}if(0!=(16&_)){w=15&_,c=s[S+2],r=2;break}if(0==(64&_)){a=_,l=S/3+s[S+2];break}if(0!=(32&_)){r=7;break}return r=9,g.Zt="invalid literal/length code",k=e,n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);case 2:for(v=w;v>V;){if(0===z)return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);k=0,z--,A|=(255&g.be(B++))<<V,V+=8}c+=A&o[v],A>>=v,V-=v,a=p,s=f,l=y,r=3;case 3:for(v=a;v>V;){if(0===z)return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);k=0,z--,A|=(255&g.be(B++))<<V,V+=8}if(S=3*(l+(A&o[v])),A>>=s[S+1],V-=s[S+1],_=s[S],0!=(16&_)){w=15&_,h=s[S+2],r=4;break}if(0==(64&_)){a=_,l=S/3+s[S+2];break}return r=9,g.Zt="invalid distance code",k=e,n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);case 4:for(v=w;v>V;){if(0===z)return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);k=0,z--,A|=(255&g.be(B++))<<V,V+=8}h+=A&o[v],A>>=v,V-=v,r=5;case 5:for(x=C-h;0>x;)x+=n.end;for(;0!==c;){if(0===I&&(C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I&&(n.write=C,k=n.ge(g,k),C=n.write,I=C<n.read?n.read-C-1:n.end-C,C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I)))return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);n.ye[C++]=n.ye[x++],I--,x==n.end&&(x=0),c--}r=0;break;case 6:if(0===I&&(C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I&&(n.write=C,k=n.ge(g,k),C=n.write,I=C<n.read?n.read-C-1:n.end-C,C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I)))return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);k=0,n.ye[C++]=u,I--,r=0;break;case 7:if(V>7&&(V-=8,z++,B--),n.write=C,k=n.ge(g,k),C=n.write,I=C<n.read?n.read-C-1:n.end-C,n.read!=n.write)return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);r=8;case 8:return k=1,n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);case 9:return k=e,n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);default:return k=t,n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k)}},n.ke=()=>{}}d.ve=(t,e,n,r)=>(t[0]=9,e[0]=5,n[0]=c,r[0]=l,0);const b=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function y(n,r){const c=this;let l,a=0,u=0,w=0,h=0;const y=[0],m=[0],g=new p;let k=0,v=new f(4320);const S=new d;c.pe=0,c.de=0,c.ye=new s(r),c.end=r,c.read=0,c.write=0,c.reset=(t,e)=>{e&&(e[0]=0),6==a&&g.ke(t),a=0,c.pe=0,c.de=0,c.read=c.write=0},c.reset(n,null),c.ge=(t,e)=>{let n,r,s;return r=t.ue,s=c.read,n=(s>c.write?c.end:c.write)-s,n>t.le&&(n=t.le),0!==n&&e==i&&(e=0),t.le-=n,t.ee+=n,t.fe.set(c.ye.subarray(s,s+n),r),r+=n,s+=n,s==c.end&&(s=0,c.write==c.end&&(c.write=0),n=c.write-s,n>t.le&&(n=t.le),0!==n&&e==i&&(e=0),t.le-=n,t.ee+=n,t.fe.set(c.ye.subarray(s,s+n),r),r+=n,s+=n),t.ue=r,c.read=s,e},c.me=(n,r)=>{let s,i,f,p,_,z,C,I;for(p=n.ae,_=n.Qt,i=c.de,f=c.pe,z=c.write,C=z<c.read?c.read-z-1:c.end-z;;){let x,A,V,B,D,E,M,P;switch(a){case 0:for(;3>f;){if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);r=0,_--,i|=(255&n.be(p++))<<f,f+=8}switch(s=7&i,k=1&s,s>>>1){case 0:i>>>=3,f-=3,s=7&f,i>>>=s,f-=s,a=1;break;case 1:x=[],A=[],V=[[]],B=[[]],d.ve(x,A,V,B),g.init(x[0],A[0],V[0],0,B[0],0),i>>>=3,f-=3,a=6;break;case 2:i>>>=3,f-=3,a=3;break;case 3:return i>>>=3,f-=3,a=9,n.Zt="invalid block type",r=e,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r)}break;case 1:for(;32>f;){if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);r=0,_--,i|=(255&n.be(p++))<<f,f+=8}if((~i>>>16&65535)!=(65535&i))return a=9,n.Zt="invalid stored block lengths",r=e,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);u=65535&i,i=f=0,a=0!==u?2:0!==k?7:0;break;case 2:if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);if(0===C&&(z==c.end&&0!==c.read&&(z=0,C=z<c.read?c.read-z-1:c.end-z),0===C&&(c.write=z,r=c.ge(n,r),z=c.write,C=z<c.read?c.read-z-1:c.end-z,z==c.end&&0!==c.read&&(z=0,C=z<c.read?c.read-z-1:c.end-z),0===C)))return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);if(r=0,s=u,s>_&&(s=_),s>C&&(s=C),c.ye.set(n.Xt(p,s),z),p+=s,_-=s,z+=s,C-=s,0!=(u-=s))break;a=0!==k?7:0;break;case 3:for(;14>f;){if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);r=0,_--,i|=(255&n.be(p++))<<f,f+=8}if(w=s=16383&i,(31&s)>29||(s>>5&31)>29)return a=9,n.Zt="too many length or distance symbols",r=e,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);if(s=258+(31&s)+(s>>5&31),!l||l.length<s)l=[];else for(I=0;s>I;I++)l[I]=0;i>>>=14,f-=14,h=0,a=4;case 4:for(;4+(w>>>10)>h;){for(;3>f;){if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);r=0,_--,i|=(255&n.be(p++))<<f,f+=8}l[b[h++]]=7&i,i>>>=3,f-=3}for(;19>h;)l[b[h++]]=0;if(y[0]=7,s=S.we(l,y,m,v,n),0!=s)return(r=s)==e&&(l=null,a=9),c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);h=0,a=5;case 5:for(;s=w,258+(31&s)+(s>>5&31)>h;){let t,u;for(s=y[0];s>f;){if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);r=0,_--,i|=(255&n.be(p++))<<f,f+=8}if(s=v[3*(m[0]+(i&o[s]))+1],u=v[3*(m[0]+(i&o[s]))+2],16>u)i>>>=s,f-=s,l[h++]=u;else{for(I=18==u?7:u-14,t=18==u?11:3;s+I>f;){if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);r=0,_--,i|=(255&n.be(p++))<<f,f+=8}if(i>>>=s,f-=s,t+=i&o[I],i>>>=I,f-=I,I=h,s=w,I+t>258+(31&s)+(s>>5&31)||16==u&&1>I)return l=null,a=9,n.Zt="invalid bit length repeat",r=e,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);u=16==u?l[I-1]:0;do{l[I++]=u}while(0!=--t);h=I}}if(m[0]=-1,D=[],E=[],M=[],P=[],D[0]=9,E[0]=6,s=w,s=S.he(257+(31&s),1+(s>>5&31),l,D,E,M,P,v,n),0!=s)return s==e&&(l=null,a=9),r=s,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);g.init(D[0],E[0],v,M[0],v,P[0]),a=6;case 6:if(c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,1!=(r=g.me(c,n,r)))return c.ge(n,r);if(r=0,g.ke(n),p=n.ae,_=n.Qt,i=c.de,f=c.pe,z=c.write,C=z<c.read?c.read-z-1:c.end-z,0===k){a=0;break}a=7;case 7:if(c.write=z,r=c.ge(n,r),z=c.write,C=z<c.read?c.read-z-1:c.end-z,c.read!=c.write)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);a=8;case 8:return r=1,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);case 9:return r=e,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);default:return r=t,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r)}}},c.ke=t=>{c.reset(t,null),c.ye=null,v=null},c.Se=(t,e,n)=>{c.ye.set(t.subarray(e,e+n),0),c.read=c.write=n},c._e=()=>1==a?1:0}const m=13,g=[0,0,255,255];function k(){const n=this;function r(e){return e&&e.ze?(e.te=e.ee=0,e.Zt=null,e.ze.mode=7,e.ze.Ce.reset(e,null),0):t}n.mode=0,n.method=0,n.Ie=[0],n.xe=0,n.marker=0,n.Ae=0,n.Ve=t=>(n.Ce&&n.Ce.ke(t),n.Ce=null,0),n.Be=(e,s)=>(e.Zt=null,n.Ce=null,8>s||s>15?(n.Ve(e),t):(n.Ae=s,e.ze.Ce=new y(e,1<<s),r(e),0)),n.De=(n,r)=>{let s,o;if(!n||!n.ze||!n.ce)return t;const f=n.ze;for(r=4==r?i:0,s=i;;)switch(f.mode){case 0:if(0===n.Qt)return s;if(s=r,n.Qt--,n.te++,8!=(15&(f.method=n.be(n.ae++)))){f.mode=m,n.Zt="unknown compression method",f.marker=5;break}if(8+(f.method>>4)>f.Ae){f.mode=m,n.Zt="invalid win size",f.marker=5;break}f.mode=1;case 1:if(0===n.Qt)return s;if(s=r,n.Qt--,n.te++,o=255&n.be(n.ae++),((f.method<<8)+o)%31!=0){f.mode=m,n.Zt="incorrect header check",f.marker=5;break}if(0==(32&o)){f.mode=7;break}f.mode=2;case 2:if(0===n.Qt)return s;s=r,n.Qt--,n.te++,f.xe=(255&n.be(n.ae++))<<24&4278190080,f.mode=3;case 3:if(0===n.Qt)return s;s=r,n.Qt--,n.te++,f.xe+=(255&n.be(n.ae++))<<16&16711680,f.mode=4;case 4:if(0===n.Qt)return s;s=r,n.Qt--,n.te++,f.xe+=(255&n.be(n.ae++))<<8&65280,f.mode=5;case 5:return 0===n.Qt?s:(s=r,n.Qt--,n.te++,f.xe+=255&n.be(n.ae++),f.mode=6,2);case 6:return f.mode=m,n.Zt="need dictionary",f.marker=0,t;case 7:if(s=f.Ce.me(n,s),s==e){f.mode=m,f.marker=0;break}if(0==s&&(s=r),1!=s)return s;s=r,f.Ce.reset(n,f.Ie),f.mode=12;case 12:return n.Qt=0,1;case m:return e;default:return t}},n.Ee=(e,n,r)=>{let s=0,i=r;if(!e||!e.ze||6!=e.ze.mode)return t;const o=e.ze;return i<1<<o.Ae||(i=(1<<o.Ae)-1,s=r-i),o.Ce.Se(n,s,i),o.mode=7,0},n.Me=n=>{let s,o,f,c,l;if(!n||!n.ze)return t;const a=n.ze;if(a.mode!=m&&(a.mode=m,a.marker=0),0===(s=n.Qt))return i;for(o=n.ae,f=a.marker;0!==s&&4>f;)n.be(o)==g[f]?f++:f=0!==n.be(o)?0:4-f,o++,s--;return n.te+=o-n.ae,n.ae=o,n.Qt=s,a.marker=f,4!=f?e:(c=n.te,l=n.ee,r(n),n.te=c,n.ee=l,a.mode=7,0)},n.Pe=e=>e&&e.ze&&e.ze.Ce?e.ze.Ce._e():t}function v(){}return v.prototype={Be(t){const e=this;return e.ze=new k,t||(t=15),e.ze.Be(e,t)},De(e){const n=this;return n.ze?n.ze.De(n,e):t},Ve(){const e=this;if(!e.ze)return t;const n=e.ze.Ve(e);return e.ze=null,n},Me(){const e=this;return e.ze?e.ze.Me(e):t},Ee(e,n){const r=this;return r.ze?r.ze.Ee(r,e,n):t},be(t){return this.ce[t]},Xt(t,e){return this.ce.subarray(t,t+e)}},function(t){const e=new v,o=t&&t.chunkSize?n.floor(2*t.chunkSize):131072,f=new s(o);let c=!1;e.Be(),e.fe=f,this.append=(t,n)=>{const l=[];let a,u,w=0,h=0,d=0;if(0!==t.length){e.ae=0,e.ce=t,e.Qt=t.length;do{if(e.ue=0,e.le=o,0!==e.Qt||c||(e.ae=0,c=!0),a=e.De(0),c&&a===i){if(0!==e.Qt)throw new r("inflating: bad input")}else if(0!==a&&1!==a)throw new r("inflating: "+e.Zt);if((c||1===a)&&e.Qt===t.length)throw new r("inflating: bad input");e.ue&&(e.ue===o?l.push(new s(f)):l.push(f.slice(0,e.ue))),d+=e.ue,n&&e.ae>0&&e.ae!=w&&(n(e.ae),w=e.ae)}while(e.Qt>0||0===e.le);return l.length>1?(u=new s(d),l.forEach((t=>{u.set(t,h),h+=t.length}))):u=l[0]||new s,u}},this.flush=()=>{e.Ve()}}})();self.initCodec=()=>{self.Deflate=kt,self.Inflate=vt};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}});}};
7333
7371
 
7334
7372
  /*
7335
7373
  Copyright (c) 2022 Gildas Lormeau. All rights reserved.
@@ -7373,7 +7411,7 @@
7373
7411
  const codecAdapter = this;
7374
7412
  const onData = data => {
7375
7413
  if (codecAdapter.pendingData) {
7376
- const pendingData = codecAdapter.pendingData;
7414
+ const { pendingData } = codecAdapter;
7377
7415
  codecAdapter.pendingData = new Uint8Array(pendingData.length + data.length);
7378
7416
  codecAdapter.pendingData.set(pendingData, 0);
7379
7417
  codecAdapter.pendingData.set(data, pendingData.length);
@@ -7393,7 +7431,7 @@
7393
7431
  return getResponse(this);
7394
7432
  }
7395
7433
  flush() {
7396
- this.codec.push(new Uint8Array(0), true);
7434
+ this.codec.push(new Uint8Array(), true);
7397
7435
  return getResponse(this);
7398
7436
  }
7399
7437
  };
@@ -7404,7 +7442,7 @@
7404
7442
  codec.pendingData = null;
7405
7443
  return output;
7406
7444
  } else {
7407
- return new Uint8Array(0);
7445
+ return new Uint8Array();
7408
7446
  }
7409
7447
  }
7410
7448
  }
@@ -7437,7 +7475,7 @@
7437
7475
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7438
7476
  */
7439
7477
 
7440
- /* global Blob, FileReader, atob, btoa, XMLHttpRequest, document, fetch, ReadableStream, WritableStream, TransformStream */
7478
+ /* global Blob, atob, btoa, XMLHttpRequest, document, fetch, ReadableStream, WritableStream, TransformStream */
7441
7479
 
7442
7480
  const ERR_HTTP_STATUS = "HTTP error ";
7443
7481
  const ERR_HTTP_RANGE = "HTTP Range not supported";
@@ -7466,7 +7504,7 @@
7466
7504
 
7467
7505
  class Reader extends Stream {
7468
7506
 
7469
- getStream({ offset, size, chunkSize } = { offset: 0, chunkSize: DEFAULT_CHUNK_SIZE }) {
7507
+ getReadable({ offset, size, chunkSize } = { offset: 0, chunkSize: DEFAULT_CHUNK_SIZE }) {
7470
7508
  const reader = this;
7471
7509
  return new ReadableStream({
7472
7510
  start() {
@@ -7487,7 +7525,7 @@
7487
7525
 
7488
7526
  class WriterStream extends Stream {
7489
7527
 
7490
- getStream() {
7528
+ get writable() {
7491
7529
  const writer = this;
7492
7530
  return new WritableStream({
7493
7531
  write(chunk) {
@@ -7538,16 +7576,7 @@
7538
7576
 
7539
7577
  getData() {
7540
7578
  const writer = this;
7541
- if (writer.blob.text) {
7542
- return writer.blob.text();
7543
- } else {
7544
- const reader = new FileReader();
7545
- return new Promise((resolve, reject) => {
7546
- reader.onload = event => resolve(event.target.result);
7547
- reader.onerror = () => reject(reader.error);
7548
- reader.readAsText(writer.blob, writer.encoding);
7549
- });
7550
- }
7579
+ return writer.blob.text();
7551
7580
  }
7552
7581
  }
7553
7582
 
@@ -7621,16 +7650,7 @@
7621
7650
 
7622
7651
  async readUint8Array(offset, length) {
7623
7652
  const reader = this;
7624
- if (reader.blob.arrayBuffer) {
7625
- return new Uint8Array(await reader.blob.slice(offset, offset + length).arrayBuffer());
7626
- } else {
7627
- const reader = new FileReader();
7628
- return new Promise((resolve, reject) => {
7629
- reader.onload = event => resolve(new Uint8Array(event.target.result));
7630
- reader.onerror = () => reject(reader.error);
7631
- reader.readAsArrayBuffer(reader.blob.slice(offset, offset + length));
7632
- });
7633
- }
7653
+ return new Uint8Array(await reader.blob.slice(offset, offset + length).arrayBuffer());
7634
7654
  }
7635
7655
  }
7636
7656
 
@@ -7638,9 +7658,10 @@
7638
7658
 
7639
7659
  constructor(contentType) {
7640
7660
  super();
7641
- this.contentType = contentType;
7642
- this.arrayBuffersMaxlength = 8;
7643
- initArrayBuffers(this);
7661
+ const writer = this;
7662
+ writer.contentType = contentType;
7663
+ writer.arrayBuffersMaxlength = 8;
7664
+ initArrayBuffers(writer);
7644
7665
  }
7645
7666
 
7646
7667
  writeUint8Array(array) {
@@ -7677,9 +7698,12 @@
7677
7698
 
7678
7699
  class ReadableStreamReader {
7679
7700
 
7680
- constructor(readableStream) {
7701
+ constructor(readable) {
7681
7702
  const reader = this;
7682
- reader.readableStream = readableStream.pipeThrough(new TransformStream({
7703
+ if (!readable) {
7704
+ readable = new ReadableStream({});
7705
+ }
7706
+ reader.readable = readable.pipeThrough(new TransformStream({
7683
7707
  transform(chunk, controller) {
7684
7708
  if (chunk) {
7685
7709
  reader.size += chunk.length;
@@ -7694,33 +7718,33 @@
7694
7718
  this.initialized = true;
7695
7719
  }
7696
7720
 
7697
- getStream() {
7698
- return this.readableStream;
7721
+ getReadable() {
7722
+ return this.readable;
7699
7723
  }
7700
7724
  }
7701
7725
 
7702
7726
  class WritableStreamWriter extends Writer {
7703
7727
 
7704
- constructor(writable) {
7728
+ constructor(writable, { preventClose } = {}) {
7705
7729
  super();
7706
- const writer = this;
7707
- writer.writable = writable;
7708
- }
7709
-
7710
- async writeUint8Array(array) {
7711
- await this.writer.ready;
7712
- const writer = this.writable.getWriter();
7713
- await writer.write(array);
7714
- writer.releaseLock();
7715
- }
7716
-
7717
- getStream() {
7718
- return this.writable;
7730
+ this.preventClose = preventClose;
7731
+ if (!writable) {
7732
+ writable = new WritableStream({});
7733
+ }
7734
+ Object.defineProperty(this, "writable", {
7735
+ get() {
7736
+ return writable;
7737
+ }
7738
+ });
7719
7739
  }
7720
7740
 
7721
7741
  async getData() {
7722
- await this.writable.getWriter().close();
7723
- return this.writable;
7742
+ const writer = this;
7743
+ const { writable } = writer;
7744
+ if (!writer.preventClose) {
7745
+ await writable.getWriter().close();
7746
+ }
7747
+ return writable;
7724
7748
  }
7725
7749
  }
7726
7750
 
@@ -7733,11 +7757,11 @@
7733
7757
  reader.preventHeadRequest = options.preventHeadRequest;
7734
7758
  reader.useRangeHeader = options.useRangeHeader;
7735
7759
  reader.forceRangeRequests = options.forceRangeRequests;
7736
- reader.options = Object.assign({}, options);
7737
- delete reader.options.preventHeadRequest;
7738
- delete reader.options.useRangeHeader;
7739
- delete reader.options.forceRangeRequests;
7740
- delete reader.options.useXHR;
7760
+ reader.options = options = Object.assign({}, options);
7761
+ delete options.preventHeadRequest;
7762
+ delete options.useRangeHeader;
7763
+ delete options.forceRangeRequests;
7764
+ delete options.useXHR;
7741
7765
  }
7742
7766
 
7743
7767
  async init() {
@@ -7905,12 +7929,9 @@
7905
7929
 
7906
7930
  constructor(url, options = {}) {
7907
7931
  super();
7908
- this.url = url;
7909
- if (options.useXHR) {
7910
- this.reader = new XHRReader(url, options);
7911
- } else {
7912
- this.reader = new FetchReader(url, options);
7913
- }
7932
+ const reader = this;
7933
+ reader.url = url;
7934
+ reader.reader = options.useXHR ? new XHRReader(url, options) : new FetchReader(url, options);
7914
7935
  }
7915
7936
 
7916
7937
  set size(value) {
@@ -7957,7 +7978,7 @@
7957
7978
 
7958
7979
  constructor() {
7959
7980
  super();
7960
- this.array = new Uint8Array(0);
7981
+ this.array = new Uint8Array();
7961
7982
  }
7962
7983
 
7963
7984
  writeUint8Array(array) {
@@ -8123,13 +8144,6 @@
8123
8144
  function decodeText(value, encoding) {
8124
8145
  if (encoding && encoding.trim().toLowerCase() == "cp437") {
8125
8146
  return decodeCP437(value);
8126
- } else if (typeof TextDecoder == "undefined") {
8127
- const fileReader = new FileReader();
8128
- return new Promise((resolve, reject) => {
8129
- fileReader.onload = event => resolve(event.target.result);
8130
- fileReader.onerror = () => reject(fileReader.error);
8131
- fileReader.readAsText(new Blob([value]));
8132
- });
8133
8147
  } else {
8134
8148
  return new TextDecoder(encoding).decode(value);
8135
8149
  }
@@ -8233,7 +8247,7 @@
8233
8247
 
8234
8248
  async* getEntriesGenerator(options = {}) {
8235
8249
  const zipReader = this;
8236
- const reader = zipReader.reader;
8250
+ const { reader, config } = zipReader;
8237
8251
  if (!reader.initialized) {
8238
8252
  await reader.init();
8239
8253
  }
@@ -8293,7 +8307,7 @@
8293
8307
  throw new Error(ERR_BAD_FORMAT);
8294
8308
  }
8295
8309
  for (let indexFile = 0; indexFile < filesLength; indexFile++) {
8296
- const fileEntry = new ZipEntry$1(reader, zipReader.config, zipReader.options);
8310
+ const fileEntry = new ZipEntry$1(reader, config, zipReader.options);
8297
8311
  if (getUint32(directoryView, offset) != CENTRAL_FILE_HEADER_SIGNATURE) {
8298
8312
  throw new Error(ERR_CENTRAL_DIRECTORY_NOT_FOUND);
8299
8313
  }
@@ -8338,7 +8352,7 @@
8338
8352
  offset = endOffset;
8339
8353
  if (options.onprogress) {
8340
8354
  try {
8341
- options.onprogress(indexFile + 1, filesLength, new Entry(fileEntry));
8355
+ await options.onprogress(indexFile + 1, filesLength, new Entry(fileEntry));
8342
8356
  } catch (_error) {
8343
8357
  // ignored
8344
8358
  }
@@ -8422,25 +8436,32 @@
8422
8436
  }
8423
8437
  const dataOffset = offset + 30 + localDirectory.filenameLength + localDirectory.extraFieldLength;
8424
8438
  const size = () => compressedSize;
8425
- const readable = reader.getStream({ offset: dataOffset, size, chunkSize: getChunkSize(config) });
8426
- const writable = writer.getStream();
8439
+ const readable = reader.getReadable({ offset: dataOffset, size, chunkSize: getChunkSize(config) });
8440
+ const { writable } = writer;
8427
8441
  const signal = getOptionValue$1(zipEntry, options, "signal");
8428
8442
  if (!writer.initialized) {
8429
8443
  await writer.init();
8430
8444
  }
8431
- await runCodec(config.Inflate, readable, writable, {
8432
- codecType: CODEC_INFLATE,
8433
- password,
8434
- zipCrypto,
8435
- encryptionStrength: extraFieldAES && extraFieldAES.strength,
8436
- signed: getOptionValue$1(zipEntry, options, "checkSignature"),
8437
- passwordVerification: zipCrypto && (bitFlag.dataDescriptor ? ((rawLastModDate >>> 8) & 0xFF) : ((signature >>> 24) & 0xFF)),
8438
- signature,
8439
- compressed: compressionMethod != 0,
8440
- encrypted,
8441
- useWebWorkers: getOptionValue$1(zipEntry, options, "useWebWorkers"),
8442
- useCompressionStream: getOptionValue$1(zipEntry, options, "useCompressionStream")
8443
- }, config, { signal, onprogress: options.onprogress, size });
8445
+ const { onstart, onprogress, onend } = options;
8446
+ const workerOptions = {
8447
+ options: {
8448
+ codecType: CODEC_INFLATE,
8449
+ password,
8450
+ zipCrypto,
8451
+ encryptionStrength: extraFieldAES && extraFieldAES.strength,
8452
+ signed: getOptionValue$1(zipEntry, options, "checkSignature"),
8453
+ passwordVerification: zipCrypto && (bitFlag.dataDescriptor ? ((rawLastModDate >>> 8) & 0xFF) : ((signature >>> 24) & 0xFF)),
8454
+ signature,
8455
+ compressed: compressionMethod != 0,
8456
+ encrypted,
8457
+ useWebWorkers: getOptionValue$1(zipEntry, options, "useWebWorkers"),
8458
+ useCompressionStream: getOptionValue$1(zipEntry, options, "useCompressionStream")
8459
+ },
8460
+ config,
8461
+ streamOptions: { signal, size, onstart, onprogress, onend },
8462
+ codecConstructor: config.Inflate
8463
+ };
8464
+ await runWorker({ readable, writable }, workerOptions);
8444
8465
  return writer.getData();
8445
8466
  }
8446
8467
  }
@@ -8465,7 +8486,7 @@
8465
8486
  }
8466
8487
 
8467
8488
  async function readCommonFooter(fileEntry, directory, dataView, offset) {
8468
- const rawExtraField = directory.rawExtraField;
8489
+ const { rawExtraField } = directory;
8469
8490
  const extraField = directory.extraField = new Map();
8470
8491
  const rawExtraFieldView = getDataView$1(new Uint8Array(rawExtraField));
8471
8492
  let offsetExtraField = 0;
@@ -8785,7 +8806,7 @@
8785
8806
  }
8786
8807
  }
8787
8808
 
8788
- async close(comment = new Uint8Array(0), options = {}) {
8809
+ async close(comment = new Uint8Array(), options = {}) {
8789
8810
  while (this.pendingAddFileCalls.size) {
8790
8811
  await Promise.all(Array.from(this.pendingAddFileCalls));
8791
8812
  }
@@ -8830,8 +8851,8 @@
8830
8851
  if (password !== undefined && encryptionStrength !== undefined && (encryptionStrength < 1 || encryptionStrength > 3)) {
8831
8852
  throw new Error(ERR_INVALID_ENCRYPTION_STRENGTH);
8832
8853
  }
8833
- let rawExtraField = new Uint8Array(0);
8834
- const extraField = options.extraField;
8854
+ let rawExtraField = new Uint8Array();
8855
+ const { extraField } = options;
8835
8856
  if (extraField) {
8836
8857
  let extraFieldSize = 0;
8837
8858
  let offset = 0;
@@ -8942,11 +8963,10 @@
8942
8963
  try {
8943
8964
  let lockPreviousFileEntry;
8944
8965
  let fileWriter;
8945
- let lockCurrentFileEntry;
8946
8966
  if (options.keepOrder) {
8947
8967
  lockPreviousFileEntry = previousFileEntry && previousFileEntry.lock;
8948
8968
  }
8949
- fileEntry.lock = lockCurrentFileEntry = new Promise(resolve => resolveLockCurrentFileEntry = resolve);
8969
+ fileEntry.lock = new Promise(resolve => resolveLockCurrentFileEntry = resolve);
8950
8970
  if (options.bufferedWrite || zipWriter.lockWrite || !options.dataDescriptor) {
8951
8971
  fileWriter = new BlobWriter();
8952
8972
  fileWriter.init();
@@ -8958,8 +8978,7 @@
8958
8978
  }
8959
8979
  fileWriter = writer;
8960
8980
  }
8961
- fileEntry = await createFileEntry(reader, fileWriter.getStream(), zipWriter.config, options);
8962
- fileEntry.lock = lockCurrentFileEntry;
8981
+ fileEntry = await createFileEntry(reader, fileWriter.writable, zipWriter.config, options);
8963
8982
  files.set(name, fileEntry);
8964
8983
  fileEntry.filename = name;
8965
8984
  if (bufferedWrite) {
@@ -8974,7 +8993,7 @@
8974
8993
  }
8975
8994
  } while (pendingFileEntry && pendingFileEntry.lock);
8976
8995
  fileEntry.writingBufferedData = true;
8977
- const writable = writer.getStream();
8996
+ const { writable } = writer;
8978
8997
  if (!options.dataDescriptor) {
8979
8998
  const headerLength = 26;
8980
8999
  const arrayBuffer = await sliceAsArrayBuffer(blob, 0, headerLength);
@@ -9038,7 +9057,9 @@
9038
9057
  rawComment,
9039
9058
  rawExtraField,
9040
9059
  useWebWorkers,
9060
+ onstart,
9041
9061
  onprogress,
9062
+ onend,
9042
9063
  signal,
9043
9064
  encryptionStrength,
9044
9065
  extendedTimestamp,
@@ -9057,7 +9078,7 @@
9057
9078
  arraySet(rawExtraFieldAES, EXTRAFIELD_DATA_AES, 2);
9058
9079
  setUint8(extraFieldAESView, 8, encryptionStrength);
9059
9080
  } else {
9060
- rawExtraFieldAES = new Uint8Array(0);
9081
+ rawExtraFieldAES = new Uint8Array();
9061
9082
  }
9062
9083
  let rawExtraFieldNTFS;
9063
9084
  let rawExtraFieldExtendedTimestamp;
@@ -9087,10 +9108,10 @@
9087
9108
  setBigUint64(extraFieldNTFSView, 20, getTimeNTFS(lastAccessDate) || lastModTimeNTFS);
9088
9109
  setBigUint64(extraFieldNTFSView, 28, getTimeNTFS(creationDate) || lastModTimeNTFS);
9089
9110
  } catch (_error) {
9090
- rawExtraFieldNTFS = new Uint8Array(0);
9111
+ rawExtraFieldNTFS = new Uint8Array();
9091
9112
  }
9092
9113
  } else {
9093
- rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array(0);
9114
+ rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array();
9094
9115
  }
9095
9116
  const fileEntry = {
9096
9117
  version: version || VERSION_DEFLATE,
@@ -9101,7 +9122,7 @@
9101
9122
  rawFilename,
9102
9123
  commentUTF8: true,
9103
9124
  rawComment,
9104
- rawExtraFieldZip64: zip64 ? new Uint8Array(EXTRAFIELD_LENGTH_ZIP64 + 4) : new Uint8Array(0),
9125
+ rawExtraFieldZip64: zip64 ? new Uint8Array(EXTRAFIELD_LENGTH_ZIP64 + 4) : new Uint8Array(),
9105
9126
  rawExtraFieldExtendedTimestamp,
9106
9127
  rawExtraFieldNTFS,
9107
9128
  rawExtraFieldAES,
@@ -9171,27 +9192,33 @@
9171
9192
  await writeUint8Array(writable, localHeaderArray);
9172
9193
  fileEntry.dataWritten = true;
9173
9194
  const size = () => reader.size;
9174
- const readable = reader.getStream({ offset: 0, size, chunkSize: getChunkSize(config) });
9175
- result = await runCodec(config.Deflate, readable, writable, {
9176
- codecType: CODEC_DEFLATE,
9177
- level,
9178
- password,
9179
- encryptionStrength,
9180
- zipCrypto: encrypted && zipCrypto,
9181
- passwordVerification: encrypted && zipCrypto && (rawLastModDate >> 8) & 0xFF,
9182
- signed: true,
9183
- compressed,
9184
- encrypted,
9185
- useWebWorkers,
9186
- useCompressionStream
9187
- }, config, { signal, onprogress, size });
9195
+ const readable = reader.getReadable({ offset: 0, size, chunkSize: getChunkSize(config) });
9196
+ const workerOptions = {
9197
+ options: {
9198
+ codecType: CODEC_DEFLATE,
9199
+ level,
9200
+ password,
9201
+ encryptionStrength,
9202
+ zipCrypto: encrypted && zipCrypto,
9203
+ passwordVerification: encrypted && zipCrypto && (rawLastModDate >> 8) & 0xFF,
9204
+ signed: true,
9205
+ compressed,
9206
+ encrypted,
9207
+ useWebWorkers,
9208
+ useCompressionStream
9209
+ },
9210
+ config,
9211
+ streamOptions: { signal, size, onstart, onprogress, onend },
9212
+ codecConstructor: config.Deflate
9213
+ };
9214
+ result = await runWorker({ readable, writable }, workerOptions);
9188
9215
  uncompressedSize = fileEntry.uncompressedSize = reader.size;
9189
9216
  compressedSize = result.length;
9190
9217
  } else {
9191
9218
  await writeUint8Array(writable, localHeaderArray);
9192
9219
  fileEntry.dataWritten = true;
9193
9220
  }
9194
- let dataDescriptorArray = new Uint8Array(0);
9221
+ let dataDescriptorArray = new Uint8Array();
9195
9222
  let dataDescriptorView, dataDescriptorOffset = 0;
9196
9223
  if (dataDescriptor) {
9197
9224
  dataDescriptorArray = new Uint8Array(zip64 ? (dataDescriptorSignature ? 24 : 20) : (dataDescriptorSignature ? 16 : 12));
@@ -9202,7 +9229,7 @@
9202
9229
  }
9203
9230
  }
9204
9231
  if (reader) {
9205
- const signature = result.signature;
9232
+ const { signature } = result;
9206
9233
  if ((!encrypted || zipCrypto) && signature !== undefined) {
9207
9234
  setUint32(headerView, 10, signature);
9208
9235
  fileEntry.signature = signature;
@@ -9298,7 +9325,7 @@
9298
9325
  setUint8(extraFieldExtendedTimestampView, 4, 0x1);
9299
9326
  setUint32(extraFieldExtendedTimestampView, 5, Math.floor(fileEntry.lastModDate.getTime() / 1000));
9300
9327
  } else {
9301
- rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array(0);
9328
+ rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array();
9302
9329
  }
9303
9330
  const extraFieldLength = rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length + rawExtraField.length;
9304
9331
  setUint32(directoryView, offset, CENTRAL_FILE_HEADER_SIGNATURE);
@@ -9327,7 +9354,7 @@
9327
9354
  offset += 46 + rawFilename.length + extraFieldLength + rawComment.length;
9328
9355
  if (options.onprogress) {
9329
9356
  try {
9330
- options.onprogress(indexFileEntry + 1, files.size, new Entry(fileEntry));
9357
+ await options.onprogress(indexFileEntry + 1, files.size, new Entry(fileEntry));
9331
9358
  } catch (_error) {
9332
9359
  // ignored
9333
9360
  }
@@ -9355,7 +9382,7 @@
9355
9382
  setUint16(directoryView, offset + 10, filesLength);
9356
9383
  setUint32(directoryView, offset + 12, directoryDataLength);
9357
9384
  setUint32(directoryView, offset + 16, directoryOffset);
9358
- const writable = zipWriter.writer.getStream();
9385
+ const { writable } = zipWriter.writer;
9359
9386
  await writeUint8Array(writable, directoryArray);
9360
9387
  if (comment && comment.length) {
9361
9388
  await writeUint8Array(writable, comment);
@@ -9363,19 +9390,10 @@
9363
9390
  }
9364
9391
 
9365
9392
  function sliceAsArrayBuffer(blob, start, end) {
9366
- if (blob.arrayBuffer) {
9367
- if (start || end) {
9368
- return blob.slice(start, end).arrayBuffer();
9369
- } else {
9370
- return blob.arrayBuffer();
9371
- }
9393
+ if (start || end) {
9394
+ return blob.slice(start, end).arrayBuffer();
9372
9395
  } else {
9373
- const fileReader = new FileReader();
9374
- return new Promise((resolve, reject) => {
9375
- fileReader.onload = event => resolve(event.target.result);
9376
- fileReader.onerror = () => reject(fileReader.error);
9377
- fileReader.readAsArrayBuffer(start || end ? blob.slice(start, end) : blob);
9378
- });
9396
+ return blob.arrayBuffer();
9379
9397
  }
9380
9398
  }
9381
9399
 
@@ -9926,11 +9944,11 @@
9926
9944
  await zipWriter.add(name, child.reader, Object.assign({
9927
9945
  directory: child.directory
9928
9946
  }, Object.assign({}, options, {
9929
- onprogress: indexProgress => {
9947
+ onprogress: async indexProgress => {
9930
9948
  if (options.onprogress) {
9931
9949
  entryOffsets.set(name, indexProgress);
9932
9950
  try {
9933
- options.onprogress(Array.from(entryOffsets.values()).reduce((previousValue, currentValue) => previousValue + currentValue), totalSize);
9951
+ await options.onprogress(Array.from(entryOffsets.values()).reduce((previousValue, currentValue) => previousValue + currentValue), totalSize);
9934
9952
  } catch (_error) {
9935
9953
  // ignored
9936
9954
  }