@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.
- package/cli-deno/mc-zip.js +157 -0
- package/dist/z-worker-fflate.js +1 -1
- package/dist/z-worker-pako.js +1 -1
- package/dist/z-worker.js +1 -1
- package/dist/zip-fs-full.js +268 -250
- package/dist/zip-fs-full.min.js +1 -1
- package/dist/zip-fs.js +252 -234
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-full.js +266 -248
- package/dist/zip-full.min.js +1 -1
- package/dist/zip-no-worker-deflate.min.js +1 -1
- package/dist/zip-no-worker-inflate.min.js +1 -1
- package/dist/zip-no-worker.min.js +1 -1
- package/dist/zip.js +250 -232
- package/dist/zip.min.js +1 -1
- package/index.d.ts +10 -4
- package/lib/core/codec-pool-worker.js +66 -44
- package/lib/core/codec-pool.js +19 -14
- package/lib/core/configuration.js +40 -28
- package/lib/core/io.js +42 -59
- package/lib/core/streams/aes-crypto-stream.js +5 -5
- package/lib/core/streams/codecs/deflate.js +8 -8
- package/lib/core/streams/codecs/inflate.js +8 -8
- package/lib/core/streams/codecs/sjcl.js +6 -6
- package/lib/core/streams/zip-entry-stream.js +3 -4
- package/lib/core/util/decode-text.js +1 -8
- package/lib/core/util/stream-codec-shim.js +3 -3
- package/lib/core/z-worker-core.js +17 -17
- package/lib/core/zip-fs-core.js +2 -2
- package/lib/core/zip-reader.js +27 -20
- package/lib/core/zip-writer.js +42 -45
- package/lib/z-worker-inline.js +1 -1
- package/package.json +1 -1
- package/rollup-fflate.config.dev.js +1 -1
- package/rollup-fflate.config.js +2 -2
- package/rollup.config.dev.js +1 -1
- package/rollup.config.js +3 -3
- package/tests/all/test-abort-signal-read.js +4 -2
package/dist/zip-fs-full.js
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
4167
|
+
read_byte(start) {
|
|
4168
4168
|
const that = this;
|
|
4169
4169
|
return that.next_in[start];
|
|
4170
4170
|
},
|
|
4171
|
-
read_buf
|
|
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(
|
|
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
|
-
|
|
4294
|
-
|
|
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 (
|
|
4297
|
-
config.chunkSize =
|
|
4308
|
+
if (chunkSize !== UNDEFINED_TYPE$2) {
|
|
4309
|
+
config.chunkSize = chunkSize;
|
|
4298
4310
|
}
|
|
4299
|
-
if (
|
|
4300
|
-
config.maxWorkers =
|
|
4311
|
+
if (maxWorkers !== UNDEFINED_TYPE$2) {
|
|
4312
|
+
config.maxWorkers = maxWorkers;
|
|
4301
4313
|
}
|
|
4302
|
-
if (
|
|
4303
|
-
config.terminateWorkerTimeout =
|
|
4314
|
+
if (terminateWorkerTimeout !== UNDEFINED_TYPE$2) {
|
|
4315
|
+
config.terminateWorkerTimeout = terminateWorkerTimeout;
|
|
4304
4316
|
}
|
|
4305
|
-
if (
|
|
4306
|
-
config.useCompressionStream =
|
|
4317
|
+
if (useCompressionStream !== UNDEFINED_TYPE$2) {
|
|
4318
|
+
config.useCompressionStream = useCompressionStream;
|
|
4307
4319
|
}
|
|
4308
|
-
if (
|
|
4309
|
-
config.useWebWorkers =
|
|
4320
|
+
if (useWebWorkers !== UNDEFINED_TYPE$2) {
|
|
4321
|
+
config.useWebWorkers = useWebWorkers;
|
|
4310
4322
|
}
|
|
4311
|
-
if (
|
|
4312
|
-
config.Deflate =
|
|
4323
|
+
if (Deflate !== UNDEFINED_TYPE$2) {
|
|
4324
|
+
config.Deflate = Deflate;
|
|
4313
4325
|
}
|
|
4314
|
-
if (
|
|
4315
|
-
config.Inflate =
|
|
4326
|
+
if (Inflate !== UNDEFINED_TYPE$2) {
|
|
4327
|
+
config.Inflate = Inflate;
|
|
4316
4328
|
}
|
|
4317
|
-
if (
|
|
4318
|
-
|
|
4319
|
-
|
|
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 (
|
|
4328
|
-
if (!Array.isArray(
|
|
4329
|
-
throw new Error("workerScripts.
|
|
4336
|
+
if (deflate) {
|
|
4337
|
+
if (!Array.isArray(deflate)) {
|
|
4338
|
+
throw new Error("workerScripts.deflate must be an array");
|
|
4330
4339
|
}
|
|
4331
|
-
|
|
4332
|
-
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
6478
|
+
pending: new Uint8Array()
|
|
6467
6479
|
});
|
|
6468
6480
|
},
|
|
6469
6481
|
async transform(chunk, controller) {
|
|
6470
6482
|
const aesCrypto = this;
|
|
6471
|
-
let preamble = new Uint8Array(
|
|
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(
|
|
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
|
-
|
|
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,
|
|
6946
|
-
return
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
7139
|
+
onTaskFinished();
|
|
7116
7140
|
},
|
|
7117
|
-
run() {
|
|
7118
|
-
const result = interfaceCodec.run();
|
|
7119
|
-
|
|
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
|
-
|
|
7129
|
-
workerData
|
|
7130
|
-
|
|
7131
|
-
|
|
7132
|
-
|
|
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
|
|
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
|
|
7204
|
+
const { worker, writer, onTaskFinished } = workerData;
|
|
7178
7205
|
try {
|
|
7179
7206
|
let { data } = message;
|
|
7180
7207
|
if (data) {
|
|
7181
7208
|
try {
|
|
7182
|
-
|
|
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
|
-
|
|
7195
|
-
|
|
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
|
|
7206
|
-
error
|
|
7207
|
-
|
|
7208
|
-
|
|
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 (
|
|
7212
|
-
const { value, done } = await
|
|
7213
|
-
sendMessage({ type: MESSAGE_DATA, data: value, done, 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 (
|
|
7216
|
-
|
|
7217
|
-
|
|
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 (
|
|
7222
|
-
|
|
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
|
-
|
|
7229
|
-
|
|
7230
|
-
|
|
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
|
|
7301
|
+
async function runWorker(stream, workerOptions) {
|
|
7302
|
+
const { options, config, streamOptions } = workerOptions;
|
|
7269
7303
|
const streamCopy = !options.compressed && !options.signed && !options.encrypted;
|
|
7270
|
-
const
|
|
7271
|
-
const
|
|
7272
|
-
|
|
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,
|
|
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,
|
|
7319
|
+
codec = getWorker(workerData, stream, workerOptions, onTaskFinished);
|
|
7284
7320
|
} else {
|
|
7285
|
-
codec = await new Promise(resolve => pendingRequests.push({ resolve,
|
|
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,
|
|
7303
|
-
resolve(getWorker(workerData,
|
|
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(
|
|
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
|
-
},
|
|
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
|
-
|
|
7320
|
-
|
|
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
|
|
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(
|
|
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(
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
7642
|
-
|
|
7643
|
-
|
|
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(
|
|
7701
|
+
constructor(readable) {
|
|
7681
7702
|
const reader = this;
|
|
7682
|
-
|
|
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
|
-
|
|
7698
|
-
return this.
|
|
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
|
-
|
|
7707
|
-
|
|
7708
|
-
|
|
7709
|
-
|
|
7710
|
-
|
|
7711
|
-
|
|
7712
|
-
|
|
7713
|
-
|
|
7714
|
-
|
|
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
|
-
|
|
7723
|
-
|
|
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
|
|
7738
|
-
delete
|
|
7739
|
-
delete
|
|
7740
|
-
delete
|
|
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
|
-
|
|
7909
|
-
|
|
7910
|
-
|
|
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(
|
|
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
|
|
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,
|
|
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.
|
|
8426
|
-
const writable = writer
|
|
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
|
-
|
|
8432
|
-
|
|
8433
|
-
|
|
8434
|
-
|
|
8435
|
-
|
|
8436
|
-
|
|
8437
|
-
|
|
8438
|
-
|
|
8439
|
-
|
|
8440
|
-
|
|
8441
|
-
|
|
8442
|
-
|
|
8443
|
-
|
|
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
|
|
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(
|
|
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(
|
|
8834
|
-
const extraField = options
|
|
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 =
|
|
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.
|
|
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
|
|
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(
|
|
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(
|
|
9111
|
+
rawExtraFieldNTFS = new Uint8Array();
|
|
9091
9112
|
}
|
|
9092
9113
|
} else {
|
|
9093
|
-
rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array(
|
|
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(
|
|
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.
|
|
9175
|
-
|
|
9176
|
-
|
|
9177
|
-
|
|
9178
|
-
|
|
9179
|
-
|
|
9180
|
-
|
|
9181
|
-
|
|
9182
|
-
|
|
9183
|
-
|
|
9184
|
-
|
|
9185
|
-
|
|
9186
|
-
|
|
9187
|
-
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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 (
|
|
9367
|
-
|
|
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
|
-
|
|
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
|
}
|