@zip.js/zip.js 2.6.26 → 2.6.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +1 -1
  2. package/dist/z-worker-fflate.js +1 -1
  3. package/dist/z-worker-pako.js +1 -1
  4. package/dist/z-worker.js +1 -1
  5. package/dist/zip-fs-full.js +1781 -1731
  6. package/dist/zip-fs-full.min.js +1 -1
  7. package/dist/zip-fs.js +623 -573
  8. package/dist/zip-fs.min.js +1 -1
  9. package/dist/zip-full.js +623 -573
  10. package/dist/zip-full.min.js +1 -1
  11. package/dist/zip-no-worker-deflate.min.js +1 -1
  12. package/dist/zip-no-worker-inflate.min.js +1 -1
  13. package/dist/zip-no-worker.min.js +1 -1
  14. package/dist/zip.js +583 -533
  15. package/dist/zip.min.js +1 -1
  16. package/index.cjs +10364 -0
  17. package/index.d.ts +42 -19
  18. package/lib/core/codec-interface.js +17 -9
  19. package/lib/core/codec-pool-worker.js +2 -3
  20. package/lib/core/codec-pool.js +1 -1
  21. package/lib/core/configuration.js +29 -8
  22. package/lib/core/io.js +36 -46
  23. package/lib/core/streams/aes-crypto-stream.js +86 -61
  24. package/lib/core/streams/codec-stream.js +2 -6
  25. package/lib/core/streams/common-crypto.js +3 -1
  26. package/lib/core/streams/zip-crypto-stream.js +12 -15
  27. package/lib/core/streams/zip-entry-stream.js +41 -57
  28. package/lib/core/z-worker-core.js +9 -9
  29. package/lib/core/zip-reader.js +50 -34
  30. package/lib/core/zip-writer.js +87 -67
  31. package/lib/z-worker-inline.js +1 -1
  32. package/package.json +5 -2
  33. package/rollup-fflate.config.dev.js +5 -2
  34. package/rollup-fflate.config.js +5 -2
  35. package/rollup.config.dev.js +5 -2
  36. package/rollup.config.js +5 -2
  37. package/tests/all/test-common-js.cjs +31 -0
  38. package/tests/tests-data.js +1 -0
  39. package/tests/web-runner.js +4 -1
@@ -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, document, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator } = globalThis;
7
+ const { Array, Object, String, Number, BigInt, Math, Date, Map, Set, Response, 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.
@@ -4257,73 +4257,35 @@
4257
4257
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4258
4258
  */
4259
4259
 
4260
- /* global navigator */
4261
-
4262
- const MINIMUM_CHUNK_SIZE = 64;
4263
- const UNDEFINED_TYPE$2 = undefined;
4264
- const DEFAULT_CONFIGURATION = {
4265
- chunkSize: 512 * 1024,
4266
- maxWorkers: (typeof navigator != "undefined" && navigator.hardwareConcurrency) || 2,
4267
- terminateWorkerTimeout: 5000,
4268
- useWebWorkers: true,
4269
- workerScripts: undefined
4270
- };
4271
-
4272
- const config = Object.assign({}, DEFAULT_CONFIGURATION);
4273
-
4274
- function getConfiguration() {
4275
- return config;
4260
+ const table$1 = [];
4261
+ for (let i = 0; i < 256; i++) {
4262
+ let t = i;
4263
+ for (let j = 0; j < 8; j++) {
4264
+ if (t & 1) {
4265
+ t = (t >>> 1) ^ 0xEDB88320;
4266
+ } else {
4267
+ t = t >>> 1;
4268
+ }
4269
+ }
4270
+ table$1[i] = t;
4276
4271
  }
4277
4272
 
4278
- function getChunkSize(config) {
4279
- return Math.max(config.chunkSize, MINIMUM_CHUNK_SIZE);
4280
- }
4273
+ class Crc32 {
4281
4274
 
4282
- function configure(configuration) {
4283
- const {
4284
- baseURL,
4285
- chunkSize,
4286
- maxWorkers,
4287
- terminateWorkerTimeout,
4288
- useCompressionStream,
4289
- useWebWorkers,
4290
- Deflate,
4291
- Inflate,
4292
- workerScripts
4293
- } = configuration;
4294
- setIfDefined("baseURL", baseURL);
4295
- setIfDefined("chunkSize", chunkSize);
4296
- setIfDefined("maxWorkers", maxWorkers);
4297
- setIfDefined("terminateWorkerTimeout", terminateWorkerTimeout);
4298
- setIfDefined("useCompressionStream", useCompressionStream);
4299
- setIfDefined("useWebWorkers", useWebWorkers);
4300
- setIfDefined("Deflate", Deflate);
4301
- setIfDefined("Inflate", Inflate);
4302
- if (workerScripts !== UNDEFINED_TYPE$2) {
4303
- const { deflate, inflate } = workerScripts;
4304
- if (deflate || inflate) {
4305
- if (!config.workerScripts) {
4306
- config.workerScripts = {};
4307
- }
4308
- }
4309
- if (deflate) {
4310
- if (!Array.isArray(deflate)) {
4311
- throw new Error("workerScripts.deflate must be an array");
4312
- }
4313
- config.workerScripts.deflate = deflate;
4314
- }
4315
- if (inflate) {
4316
- if (!Array.isArray(inflate)) {
4317
- throw new Error("workerScripts.inflate must be an array");
4318
- }
4319
- config.workerScripts.inflate = inflate;
4275
+ constructor(crc) {
4276
+ this.crc = crc || -1;
4277
+ }
4278
+
4279
+ append(data) {
4280
+ let crc = this.crc | 0;
4281
+ for (let offset = 0, length = data.length | 0; offset < length; offset++) {
4282
+ crc = (crc >>> 8) ^ table$1[(crc ^ data[offset]) & 0xFF];
4320
4283
  }
4284
+ this.crc = crc;
4321
4285
  }
4322
- }
4323
4286
 
4324
- function setIfDefined(propertyName, propertyValue) {
4325
- if (propertyValue !== UNDEFINED_TYPE$2) {
4326
- config[propertyName] = propertyValue;
4287
+ get() {
4288
+ return ~this.crc;
4327
4289
  }
4328
4290
  }
4329
4291
 
@@ -4355,1115 +4317,22 @@
4355
4317
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4356
4318
  */
4357
4319
 
4358
- function getMimeType$1() {
4359
- return "application/octet-stream";
4360
- }
4361
-
4362
- /*
4363
- Copyright (c) 2022 Gildas Lormeau. All rights reserved.
4364
-
4365
- Redistribution and use in source and binary forms, with or without
4366
- modification, are permitted provided that the following conditions are met:
4367
-
4368
- 1. Redistributions of source code must retain the above copyright notice,
4369
- this list of conditions and the following disclaimer.
4370
-
4371
- 2. Redistributions in binary form must reproduce the above copyright
4372
- notice, this list of conditions and the following disclaimer in
4373
- the documentation and/or other materials provided with the distribution.
4374
-
4375
- 3. The names of the authors may not be used to endorse or promote products
4376
- derived from this software without specific prior written permission.
4377
-
4378
- THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
4379
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
4380
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
4381
- INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
4382
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
4383
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
4384
- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
4385
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
4386
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
4387
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4388
- */
4389
-
4390
- const table$1 = {
4391
- "application": {
4392
- "andrew-inset": "ez",
4393
- "annodex": "anx",
4394
- "atom+xml": "atom",
4395
- "atomcat+xml": "atomcat",
4396
- "atomserv+xml": "atomsrv",
4397
- "bbolin": "lin",
4398
- "cap": ["cap", "pcap"],
4399
- "cu-seeme": "cu",
4400
- "davmount+xml": "davmount",
4401
- "dsptype": "tsp",
4402
- "ecmascript": ["es", "ecma"],
4403
- "futuresplash": "spl",
4404
- "hta": "hta",
4405
- "java-archive": "jar",
4406
- "java-serialized-object": "ser",
4407
- "java-vm": "class",
4408
- "javascript": "js",
4409
- "m3g": "m3g",
4410
- "mac-binhex40": "hqx",
4411
- "mathematica": ["nb", "ma", "mb"],
4412
- "msaccess": "mdb",
4413
- "msword": ["doc", "dot"],
4414
- "mxf": "mxf",
4415
- "oda": "oda",
4416
- "ogg": "ogx",
4417
- "pdf": "pdf",
4418
- "pgp-keys": "key",
4419
- "pgp-signature": ["asc", "sig"],
4420
- "pics-rules": "prf",
4421
- "postscript": ["ps", "ai", "eps", "epsi", "epsf", "eps2", "eps3"],
4422
- "rar": "rar",
4423
- "rdf+xml": "rdf",
4424
- "rss+xml": "rss",
4425
- "rtf": "rtf",
4426
- "smil": ["smi", "smil"],
4427
- "xhtml+xml": ["xhtml", "xht"],
4428
- "xml": ["xml", "xsl", "xsd"],
4429
- "xspf+xml": "xspf",
4430
- "zip": "zip",
4431
- "vnd.android.package-archive": "apk",
4432
- "vnd.cinderella": "cdy",
4433
- "vnd.google-earth.kml+xml": "kml",
4434
- "vnd.google-earth.kmz": "kmz",
4435
- "vnd.mozilla.xul+xml": "xul",
4436
- "vnd.ms-excel": ["xls", "xlb", "xlt", "xlm", "xla", "xlc", "xlw"],
4437
- "vnd.ms-pki.seccat": "cat",
4438
- "vnd.ms-pki.stl": "stl",
4439
- "vnd.ms-powerpoint": ["ppt", "pps", "pot"],
4440
- "vnd.oasis.opendocument.chart": "odc",
4441
- "vnd.oasis.opendocument.database": "odb",
4442
- "vnd.oasis.opendocument.formula": "odf",
4443
- "vnd.oasis.opendocument.graphics": "odg",
4444
- "vnd.oasis.opendocument.graphics-template": "otg",
4445
- "vnd.oasis.opendocument.image": "odi",
4446
- "vnd.oasis.opendocument.presentation": "odp",
4447
- "vnd.oasis.opendocument.presentation-template": "otp",
4448
- "vnd.oasis.opendocument.spreadsheet": "ods",
4449
- "vnd.oasis.opendocument.spreadsheet-template": "ots",
4450
- "vnd.oasis.opendocument.text": "odt",
4451
- "vnd.oasis.opendocument.text-master": "odm",
4452
- "vnd.oasis.opendocument.text-template": "ott",
4453
- "vnd.oasis.opendocument.text-web": "oth",
4454
- "vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx",
4455
- "vnd.openxmlformats-officedocument.spreadsheetml.template": "xltx",
4456
- "vnd.openxmlformats-officedocument.presentationml.presentation": "pptx",
4457
- "vnd.openxmlformats-officedocument.presentationml.slideshow": "ppsx",
4458
- "vnd.openxmlformats-officedocument.presentationml.template": "potx",
4459
- "vnd.openxmlformats-officedocument.wordprocessingml.document": "docx",
4460
- "vnd.openxmlformats-officedocument.wordprocessingml.template": "dotx",
4461
- "vnd.smaf": "mmf",
4462
- "vnd.stardivision.calc": "sdc",
4463
- "vnd.stardivision.chart": "sds",
4464
- "vnd.stardivision.draw": "sda",
4465
- "vnd.stardivision.impress": "sdd",
4466
- "vnd.stardivision.math": ["sdf", "smf"],
4467
- "vnd.stardivision.writer": ["sdw", "vor"],
4468
- "vnd.stardivision.writer-global": "sgl",
4469
- "vnd.sun.xml.calc": "sxc",
4470
- "vnd.sun.xml.calc.template": "stc",
4471
- "vnd.sun.xml.draw": "sxd",
4472
- "vnd.sun.xml.draw.template": "std",
4473
- "vnd.sun.xml.impress": "sxi",
4474
- "vnd.sun.xml.impress.template": "sti",
4475
- "vnd.sun.xml.math": "sxm",
4476
- "vnd.sun.xml.writer": "sxw",
4477
- "vnd.sun.xml.writer.global": "sxg",
4478
- "vnd.sun.xml.writer.template": "stw",
4479
- "vnd.symbian.install": ["sis", "sisx"],
4480
- "vnd.visio": ["vsd", "vst", "vss", "vsw"],
4481
- "vnd.wap.wbxml": "wbxml",
4482
- "vnd.wap.wmlc": "wmlc",
4483
- "vnd.wap.wmlscriptc": "wmlsc",
4484
- "vnd.wordperfect": "wpd",
4485
- "vnd.wordperfect5.1": "wp5",
4486
- "x-123": "wk",
4487
- "x-7z-compressed": "7z",
4488
- "x-abiword": "abw",
4489
- "x-apple-diskimage": "dmg",
4490
- "x-bcpio": "bcpio",
4491
- "x-bittorrent": "torrent",
4492
- "x-cbr": ["cbr", "cba", "cbt", "cb7"],
4493
- "x-cbz": "cbz",
4494
- "x-cdf": ["cdf", "cda"],
4495
- "x-cdlink": "vcd",
4496
- "x-chess-pgn": "pgn",
4497
- "x-cpio": "cpio",
4498
- "x-csh": "csh",
4499
- "x-debian-package": ["deb", "udeb"],
4500
- "x-director": ["dcr", "dir", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"],
4501
- "x-dms": "dms",
4502
- "x-doom": "wad",
4503
- "x-dvi": "dvi",
4504
- "x-httpd-eruby": "rhtml",
4505
- "x-font": "pcf.Z",
4506
- "x-freemind": "mm",
4507
- "x-gnumeric": "gnumeric",
4508
- "x-go-sgf": "sgf",
4509
- "x-graphing-calculator": "gcf",
4510
- "x-gtar": ["gtar", "taz"],
4511
- "x-hdf": "hdf",
4512
- "x-httpd-php": ["phtml", "pht", "php"],
4513
- "x-httpd-php-source": "phps",
4514
- "x-httpd-php3": "php3",
4515
- "x-httpd-php3-preprocessed": "php3p",
4516
- "x-httpd-php4": "php4",
4517
- "x-httpd-php5": "php5",
4518
- "x-ica": "ica",
4519
- "x-info": "info",
4520
- "x-internet-signup": ["ins", "isp"],
4521
- "x-iphone": "iii",
4522
- "x-iso9660-image": "iso",
4523
- "x-java-jnlp-file": "jnlp",
4524
- "x-jmol": "jmz",
4525
- "x-killustrator": "kil",
4526
- "x-koan": ["skp", "skd", "skt", "skm"],
4527
- "x-kpresenter": ["kpr", "kpt"],
4528
- "x-kword": ["kwd", "kwt"],
4529
- "x-latex": "latex",
4530
- "x-lha": "lha",
4531
- "x-lyx": "lyx",
4532
- "x-lzh": "lzh",
4533
- "x-lzx": "lzx",
4534
- "x-maker": ["frm", "maker", "frame", "fm", "fb", "book", "fbdoc"],
4535
- "x-ms-wmd": "wmd",
4536
- "x-ms-wmz": "wmz",
4537
- "x-msdos-program": ["com", "exe", "bat", "dll"],
4538
- "x-msi": "msi",
4539
- "x-netcdf": ["nc", "cdf"],
4540
- "x-ns-proxy-autoconfig": ["pac", "dat"],
4541
- "x-nwc": "nwc",
4542
- "x-object": "o",
4543
- "x-oz-application": "oza",
4544
- "x-pkcs7-certreqresp": "p7r",
4545
- "x-python-code": ["pyc", "pyo"],
4546
- "x-qgis": ["qgs", "shp", "shx"],
4547
- "x-quicktimeplayer": "qtl",
4548
- "x-redhat-package-manager": "rpm",
4549
- "x-ruby": "rb",
4550
- "x-sh": "sh",
4551
- "x-shar": "shar",
4552
- "x-shockwave-flash": ["swf", "swfl"],
4553
- "x-silverlight": "scr",
4554
- "x-stuffit": "sit",
4555
- "x-sv4cpio": "sv4cpio",
4556
- "x-sv4crc": "sv4crc",
4557
- "x-tar": "tar",
4558
- "x-tcl": "tcl",
4559
- "x-tex-gf": "gf",
4560
- "x-tex-pk": "pk",
4561
- "x-texinfo": ["texinfo", "texi"],
4562
- "x-trash": ["~", "%", "bak", "old", "sik"],
4563
- "x-troff": ["t", "tr", "roff"],
4564
- "x-troff-man": "man",
4565
- "x-troff-me": "me",
4566
- "x-troff-ms": "ms",
4567
- "x-ustar": "ustar",
4568
- "x-wais-source": "src",
4569
- "x-wingz": "wz",
4570
- "x-x509-ca-cert": ["crt", "der", "cer"],
4571
- "x-xcf": "xcf",
4572
- "x-xfig": "fig",
4573
- "x-xpinstall": "xpi",
4574
- "applixware": "aw",
4575
- "atomsvc+xml": "atomsvc",
4576
- "ccxml+xml": "ccxml",
4577
- "cdmi-capability": "cdmia",
4578
- "cdmi-container": "cdmic",
4579
- "cdmi-domain": "cdmid",
4580
- "cdmi-object": "cdmio",
4581
- "cdmi-queue": "cdmiq",
4582
- "docbook+xml": "dbk",
4583
- "dssc+der": "dssc",
4584
- "dssc+xml": "xdssc",
4585
- "emma+xml": "emma",
4586
- "epub+zip": "epub",
4587
- "exi": "exi",
4588
- "font-tdpfr": "pfr",
4589
- "gml+xml": "gml",
4590
- "gpx+xml": "gpx",
4591
- "gxf": "gxf",
4592
- "hyperstudio": "stk",
4593
- "inkml+xml": ["ink", "inkml"],
4594
- "ipfix": "ipfix",
4595
- "json": "json",
4596
- "jsonml+json": "jsonml",
4597
- "lost+xml": "lostxml",
4598
- "mads+xml": "mads",
4599
- "marc": "mrc",
4600
- "marcxml+xml": "mrcx",
4601
- "mathml+xml": "mathml",
4602
- "mbox": "mbox",
4603
- "mediaservercontrol+xml": "mscml",
4604
- "metalink+xml": "metalink",
4605
- "metalink4+xml": "meta4",
4606
- "mets+xml": "mets",
4607
- "mods+xml": "mods",
4608
- "mp21": ["m21", "mp21"],
4609
- "mp4": "mp4s",
4610
- "oebps-package+xml": "opf",
4611
- "omdoc+xml": "omdoc",
4612
- "onenote": ["onetoc", "onetoc2", "onetmp", "onepkg"],
4613
- "oxps": "oxps",
4614
- "patch-ops-error+xml": "xer",
4615
- "pgp-encrypted": "pgp",
4616
- "pkcs10": "p10",
4617
- "pkcs7-mime": ["p7m", "p7c"],
4618
- "pkcs7-signature": "p7s",
4619
- "pkcs8": "p8",
4620
- "pkix-attr-cert": "ac",
4621
- "pkix-crl": "crl",
4622
- "pkix-pkipath": "pkipath",
4623
- "pkixcmp": "pki",
4624
- "pls+xml": "pls",
4625
- "prs.cww": "cww",
4626
- "pskc+xml": "pskcxml",
4627
- "reginfo+xml": "rif",
4628
- "relax-ng-compact-syntax": "rnc",
4629
- "resource-lists+xml": "rl",
4630
- "resource-lists-diff+xml": "rld",
4631
- "rls-services+xml": "rs",
4632
- "rpki-ghostbusters": "gbr",
4633
- "rpki-manifest": "mft",
4634
- "rpki-roa": "roa",
4635
- "rsd+xml": "rsd",
4636
- "sbml+xml": "sbml",
4637
- "scvp-cv-request": "scq",
4638
- "scvp-cv-response": "scs",
4639
- "scvp-vp-request": "spq",
4640
- "scvp-vp-response": "spp",
4641
- "sdp": "sdp",
4642
- "set-payment-initiation": "setpay",
4643
- "set-registration-initiation": "setreg",
4644
- "shf+xml": "shf",
4645
- "sparql-query": "rq",
4646
- "sparql-results+xml": "srx",
4647
- "srgs": "gram",
4648
- "srgs+xml": "grxml",
4649
- "sru+xml": "sru",
4650
- "ssdl+xml": "ssdl",
4651
- "ssml+xml": "ssml",
4652
- "tei+xml": ["tei", "teicorpus"],
4653
- "thraud+xml": "tfi",
4654
- "timestamped-data": "tsd",
4655
- "vnd.3gpp.pic-bw-large": "plb",
4656
- "vnd.3gpp.pic-bw-small": "psb",
4657
- "vnd.3gpp.pic-bw-var": "pvb",
4658
- "vnd.3gpp2.tcap": "tcap",
4659
- "vnd.3m.post-it-notes": "pwn",
4660
- "vnd.accpac.simply.aso": "aso",
4661
- "vnd.accpac.simply.imp": "imp",
4662
- "vnd.acucobol": "acu",
4663
- "vnd.acucorp": ["atc", "acutc"],
4664
- "vnd.adobe.air-application-installer-package+zip": "air",
4665
- "vnd.adobe.formscentral.fcdt": "fcdt",
4666
- "vnd.adobe.fxp": ["fxp", "fxpl"],
4667
- "vnd.adobe.xdp+xml": "xdp",
4668
- "vnd.adobe.xfdf": "xfdf",
4669
- "vnd.ahead.space": "ahead",
4670
- "vnd.airzip.filesecure.azf": "azf",
4671
- "vnd.airzip.filesecure.azs": "azs",
4672
- "vnd.amazon.ebook": "azw",
4673
- "vnd.americandynamics.acc": "acc",
4674
- "vnd.amiga.ami": "ami",
4675
- "vnd.anser-web-certificate-issue-initiation": "cii",
4676
- "vnd.anser-web-funds-transfer-initiation": "fti",
4677
- "vnd.antix.game-component": "atx",
4678
- "vnd.apple.installer+xml": "mpkg",
4679
- "vnd.apple.mpegurl": "m3u8",
4680
- "vnd.aristanetworks.swi": "swi",
4681
- "vnd.astraea-software.iota": "iota",
4682
- "vnd.audiograph": "aep",
4683
- "vnd.blueice.multipass": "mpm",
4684
- "vnd.bmi": "bmi",
4685
- "vnd.businessobjects": "rep",
4686
- "vnd.chemdraw+xml": "cdxml",
4687
- "vnd.chipnuts.karaoke-mmd": "mmd",
4688
- "vnd.claymore": "cla",
4689
- "vnd.cloanto.rp9": "rp9",
4690
- "vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"],
4691
- "vnd.cluetrust.cartomobile-config": "c11amc",
4692
- "vnd.cluetrust.cartomobile-config-pkg": "c11amz",
4693
- "vnd.commonspace": "csp",
4694
- "vnd.contact.cmsg": "cdbcmsg",
4695
- "vnd.cosmocaller": "cmc",
4696
- "vnd.crick.clicker": "clkx",
4697
- "vnd.crick.clicker.keyboard": "clkk",
4698
- "vnd.crick.clicker.palette": "clkp",
4699
- "vnd.crick.clicker.template": "clkt",
4700
- "vnd.crick.clicker.wordbank": "clkw",
4701
- "vnd.criticaltools.wbs+xml": "wbs",
4702
- "vnd.ctc-posml": "pml",
4703
- "vnd.cups-ppd": "ppd",
4704
- "vnd.curl.car": "car",
4705
- "vnd.curl.pcurl": "pcurl",
4706
- "vnd.dart": "dart",
4707
- "vnd.data-vision.rdz": "rdz",
4708
- "vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"],
4709
- "vnd.dece.ttml+xml": ["uvt", "uvvt"],
4710
- "vnd.dece.unspecified": ["uvx", "uvvx"],
4711
- "vnd.dece.zip": ["uvz", "uvvz"],
4712
- "vnd.denovo.fcselayout-link": "fe_launch",
4713
- "vnd.dna": "dna",
4714
- "vnd.dolby.mlp": "mlp",
4715
- "vnd.dpgraph": "dpg",
4716
- "vnd.dreamfactory": "dfac",
4717
- "vnd.ds-keypoint": "kpxx",
4718
- "vnd.dvb.ait": "ait",
4719
- "vnd.dvb.service": "svc",
4720
- "vnd.dynageo": "geo",
4721
- "vnd.ecowin.chart": "mag",
4722
- "vnd.enliven": "nml",
4723
- "vnd.epson.esf": "esf",
4724
- "vnd.epson.msf": "msf",
4725
- "vnd.epson.quickanime": "qam",
4726
- "vnd.epson.salt": "slt",
4727
- "vnd.epson.ssf": "ssf",
4728
- "vnd.eszigno3+xml": ["es3", "et3"],
4729
- "vnd.ezpix-album": "ez2",
4730
- "vnd.ezpix-package": "ez3",
4731
- "vnd.fdf": "fdf",
4732
- "vnd.fdsn.mseed": "mseed",
4733
- "vnd.fdsn.seed": ["seed", "dataless"],
4734
- "vnd.flographit": "gph",
4735
- "vnd.fluxtime.clip": "ftc",
4736
- "vnd.framemaker": ["fm", "frame", "maker", "book"],
4737
- "vnd.frogans.fnc": "fnc",
4738
- "vnd.frogans.ltf": "ltf",
4739
- "vnd.fsc.weblaunch": "fsc",
4740
- "vnd.fujitsu.oasys": "oas",
4741
- "vnd.fujitsu.oasys2": "oa2",
4742
- "vnd.fujitsu.oasys3": "oa3",
4743
- "vnd.fujitsu.oasysgp": "fg5",
4744
- "vnd.fujitsu.oasysprs": "bh2",
4745
- "vnd.fujixerox.ddd": "ddd",
4746
- "vnd.fujixerox.docuworks": "xdw",
4747
- "vnd.fujixerox.docuworks.binder": "xbd",
4748
- "vnd.fuzzysheet": "fzs",
4749
- "vnd.genomatix.tuxedo": "txd",
4750
- "vnd.geogebra.file": "ggb",
4751
- "vnd.geogebra.tool": "ggt",
4752
- "vnd.geometry-explorer": ["gex", "gre"],
4753
- "vnd.geonext": "gxt",
4754
- "vnd.geoplan": "g2w",
4755
- "vnd.geospace": "g3w",
4756
- "vnd.gmx": "gmx",
4757
- "vnd.grafeq": ["gqf", "gqs"],
4758
- "vnd.groove-account": "gac",
4759
- "vnd.groove-help": "ghf",
4760
- "vnd.groove-identity-message": "gim",
4761
- "vnd.groove-injector": "grv",
4762
- "vnd.groove-tool-message": "gtm",
4763
- "vnd.groove-tool-template": "tpl",
4764
- "vnd.groove-vcard": "vcg",
4765
- "vnd.hal+xml": "hal",
4766
- "vnd.handheld-entertainment+xml": "zmm",
4767
- "vnd.hbci": "hbci",
4768
- "vnd.hhe.lesson-player": "les",
4769
- "vnd.hp-hpgl": "hpgl",
4770
- "vnd.hp-hpid": "hpid",
4771
- "vnd.hp-hps": "hps",
4772
- "vnd.hp-jlyt": "jlt",
4773
- "vnd.hp-pcl": "pcl",
4774
- "vnd.hp-pclxl": "pclxl",
4775
- "vnd.hydrostatix.sof-data": "sfd-hdstx",
4776
- "vnd.ibm.minipay": "mpy",
4777
- "vnd.ibm.modcap": ["afp", "listafp", "list3820"],
4778
- "vnd.ibm.rights-management": "irm",
4779
- "vnd.ibm.secure-container": "sc",
4780
- "vnd.iccprofile": ["icc", "icm"],
4781
- "vnd.igloader": "igl",
4782
- "vnd.immervision-ivp": "ivp",
4783
- "vnd.immervision-ivu": "ivu",
4784
- "vnd.insors.igm": "igm",
4785
- "vnd.intercon.formnet": ["xpw", "xpx"],
4786
- "vnd.intergeo": "i2g",
4787
- "vnd.intu.qbo": "qbo",
4788
- "vnd.intu.qfx": "qfx",
4789
- "vnd.ipunplugged.rcprofile": "rcprofile",
4790
- "vnd.irepository.package+xml": "irp",
4791
- "vnd.is-xpr": "xpr",
4792
- "vnd.isac.fcs": "fcs",
4793
- "vnd.jam": "jam",
4794
- "vnd.jcp.javame.midlet-rms": "rms",
4795
- "vnd.jisp": "jisp",
4796
- "vnd.joost.joda-archive": "joda",
4797
- "vnd.kahootz": ["ktz", "ktr"],
4798
- "vnd.kde.karbon": "karbon",
4799
- "vnd.kde.kchart": "chrt",
4800
- "vnd.kde.kformula": "kfo",
4801
- "vnd.kde.kivio": "flw",
4802
- "vnd.kde.kontour": "kon",
4803
- "vnd.kde.kpresenter": ["kpr", "kpt"],
4804
- "vnd.kde.kspread": "ksp",
4805
- "vnd.kde.kword": ["kwd", "kwt"],
4806
- "vnd.kenameaapp": "htke",
4807
- "vnd.kidspiration": "kia",
4808
- "vnd.kinar": ["kne", "knp"],
4809
- "vnd.koan": ["skp", "skd", "skt", "skm"],
4810
- "vnd.kodak-descriptor": "sse",
4811
- "vnd.las.las+xml": "lasxml",
4812
- "vnd.llamagraphics.life-balance.desktop": "lbd",
4813
- "vnd.llamagraphics.life-balance.exchange+xml": "lbe",
4814
- "vnd.lotus-1-2-3": "123",
4815
- "vnd.lotus-approach": "apr",
4816
- "vnd.lotus-freelance": "pre",
4817
- "vnd.lotus-notes": "nsf",
4818
- "vnd.lotus-organizer": "org",
4819
- "vnd.lotus-screencam": "scm",
4820
- "vnd.lotus-wordpro": "lwp",
4821
- "vnd.macports.portpkg": "portpkg",
4822
- "vnd.mcd": "mcd",
4823
- "vnd.medcalcdata": "mc1",
4824
- "vnd.mediastation.cdkey": "cdkey",
4825
- "vnd.mfer": "mwf",
4826
- "vnd.mfmp": "mfm",
4827
- "vnd.micrografx.flo": "flo",
4828
- "vnd.micrografx.igx": "igx",
4829
- "vnd.mif": "mif",
4830
- "vnd.mobius.daf": "daf",
4831
- "vnd.mobius.dis": "dis",
4832
- "vnd.mobius.mbk": "mbk",
4833
- "vnd.mobius.mqy": "mqy",
4834
- "vnd.mobius.msl": "msl",
4835
- "vnd.mobius.plc": "plc",
4836
- "vnd.mobius.txf": "txf",
4837
- "vnd.mophun.application": "mpn",
4838
- "vnd.mophun.certificate": "mpc",
4839
- "vnd.ms-artgalry": "cil",
4840
- "vnd.ms-cab-compressed": "cab",
4841
- "vnd.ms-excel.addin.macroenabled.12": "xlam",
4842
- "vnd.ms-excel.sheet.binary.macroenabled.12": "xlsb",
4843
- "vnd.ms-excel.sheet.macroenabled.12": "xlsm",
4844
- "vnd.ms-excel.template.macroenabled.12": "xltm",
4845
- "vnd.ms-fontobject": "eot",
4846
- "vnd.ms-htmlhelp": "chm",
4847
- "vnd.ms-ims": "ims",
4848
- "vnd.ms-lrm": "lrm",
4849
- "vnd.ms-officetheme": "thmx",
4850
- "vnd.ms-powerpoint.addin.macroenabled.12": "ppam",
4851
- "vnd.ms-powerpoint.presentation.macroenabled.12": "pptm",
4852
- "vnd.ms-powerpoint.slide.macroenabled.12": "sldm",
4853
- "vnd.ms-powerpoint.slideshow.macroenabled.12": "ppsm",
4854
- "vnd.ms-powerpoint.template.macroenabled.12": "potm",
4855
- "vnd.ms-project": ["mpp", "mpt"],
4856
- "vnd.ms-word.document.macroenabled.12": "docm",
4857
- "vnd.ms-word.template.macroenabled.12": "dotm",
4858
- "vnd.ms-works": ["wps", "wks", "wcm", "wdb"],
4859
- "vnd.ms-wpl": "wpl",
4860
- "vnd.ms-xpsdocument": "xps",
4861
- "vnd.mseq": "mseq",
4862
- "vnd.musician": "mus",
4863
- "vnd.muvee.style": "msty",
4864
- "vnd.mynfc": "taglet",
4865
- "vnd.neurolanguage.nlu": "nlu",
4866
- "vnd.nitf": ["ntf", "nitf"],
4867
- "vnd.noblenet-directory": "nnd",
4868
- "vnd.noblenet-sealer": "nns",
4869
- "vnd.noblenet-web": "nnw",
4870
- "vnd.nokia.n-gage.data": "ngdat",
4871
- "vnd.nokia.n-gage.symbian.install": "n-gage",
4872
- "vnd.nokia.radio-preset": "rpst",
4873
- "vnd.nokia.radio-presets": "rpss",
4874
- "vnd.novadigm.edm": "edm",
4875
- "vnd.novadigm.edx": "edx",
4876
- "vnd.novadigm.ext": "ext",
4877
- "vnd.oasis.opendocument.chart-template": "otc",
4878
- "vnd.oasis.opendocument.formula-template": "odft",
4879
- "vnd.oasis.opendocument.image-template": "oti",
4880
- "vnd.olpc-sugar": "xo",
4881
- "vnd.oma.dd2+xml": "dd2",
4882
- "vnd.openofficeorg.extension": "oxt",
4883
- "vnd.openxmlformats-officedocument.presentationml.slide": "sldx",
4884
- "vnd.osgeo.mapguide.package": "mgp",
4885
- "vnd.osgi.dp": "dp",
4886
- "vnd.osgi.subsystem": "esa",
4887
- "vnd.palm": ["pdb", "pqa", "oprc"],
4888
- "vnd.pawaafile": "paw",
4889
- "vnd.pg.format": "str",
4890
- "vnd.pg.osasli": "ei6",
4891
- "vnd.picsel": "efif",
4892
- "vnd.pmi.widget": "wg",
4893
- "vnd.pocketlearn": "plf",
4894
- "vnd.powerbuilder6": "pbd",
4895
- "vnd.previewsystems.box": "box",
4896
- "vnd.proteus.magazine": "mgz",
4897
- "vnd.publishare-delta-tree": "qps",
4898
- "vnd.pvi.ptid1": "ptid",
4899
- "vnd.quark.quarkxpress": ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"],
4900
- "vnd.realvnc.bed": "bed",
4901
- "vnd.recordare.musicxml": "mxl",
4902
- "vnd.recordare.musicxml+xml": "musicxml",
4903
- "vnd.rig.cryptonote": "cryptonote",
4904
- "vnd.rn-realmedia": "rm",
4905
- "vnd.rn-realmedia-vbr": "rmvb",
4906
- "vnd.route66.link66+xml": "link66",
4907
- "vnd.sailingtracker.track": "st",
4908
- "vnd.seemail": "see",
4909
- "vnd.sema": "sema",
4910
- "vnd.semd": "semd",
4911
- "vnd.semf": "semf",
4912
- "vnd.shana.informed.formdata": "ifm",
4913
- "vnd.shana.informed.formtemplate": "itp",
4914
- "vnd.shana.informed.interchange": "iif",
4915
- "vnd.shana.informed.package": "ipk",
4916
- "vnd.simtech-mindmapper": ["twd", "twds"],
4917
- "vnd.smart.teacher": "teacher",
4918
- "vnd.solent.sdkm+xml": ["sdkm", "sdkd"],
4919
- "vnd.spotfire.dxp": "dxp",
4920
- "vnd.spotfire.sfs": "sfs",
4921
- "vnd.stepmania.package": "smzip",
4922
- "vnd.stepmania.stepchart": "sm",
4923
- "vnd.sus-calendar": ["sus", "susp"],
4924
- "vnd.svd": "svd",
4925
- "vnd.syncml+xml": "xsm",
4926
- "vnd.syncml.dm+wbxml": "bdm",
4927
- "vnd.syncml.dm+xml": "xdm",
4928
- "vnd.tao.intent-module-archive": "tao",
4929
- "vnd.tcpdump.pcap": ["pcap", "cap", "dmp"],
4930
- "vnd.tmobile-livetv": "tmo",
4931
- "vnd.trid.tpt": "tpt",
4932
- "vnd.triscape.mxs": "mxs",
4933
- "vnd.trueapp": "tra",
4934
- "vnd.ufdl": ["ufd", "ufdl"],
4935
- "vnd.uiq.theme": "utz",
4936
- "vnd.umajin": "umj",
4937
- "vnd.unity": "unityweb",
4938
- "vnd.uoml+xml": "uoml",
4939
- "vnd.vcx": "vcx",
4940
- "vnd.visionary": "vis",
4941
- "vnd.vsf": "vsf",
4942
- "vnd.webturbo": "wtb",
4943
- "vnd.wolfram.player": "nbp",
4944
- "vnd.wqd": "wqd",
4945
- "vnd.wt.stf": "stf",
4946
- "vnd.xara": "xar",
4947
- "vnd.xfdl": "xfdl",
4948
- "vnd.yamaha.hv-dic": "hvd",
4949
- "vnd.yamaha.hv-script": "hvs",
4950
- "vnd.yamaha.hv-voice": "hvp",
4951
- "vnd.yamaha.openscoreformat": "osf",
4952
- "vnd.yamaha.openscoreformat.osfpvg+xml": "osfpvg",
4953
- "vnd.yamaha.smaf-audio": "saf",
4954
- "vnd.yamaha.smaf-phrase": "spf",
4955
- "vnd.yellowriver-custom-menu": "cmp",
4956
- "vnd.zul": ["zir", "zirz"],
4957
- "vnd.zzazz.deck+xml": "zaz",
4958
- "voicexml+xml": "vxml",
4959
- "widget": "wgt",
4960
- "winhlp": "hlp",
4961
- "wsdl+xml": "wsdl",
4962
- "wspolicy+xml": "wspolicy",
4963
- "x-ace-compressed": "ace",
4964
- "x-authorware-bin": ["aab", "x32", "u32", "vox"],
4965
- "x-authorware-map": "aam",
4966
- "x-authorware-seg": "aas",
4967
- "x-blorb": ["blb", "blorb"],
4968
- "x-bzip": "bz",
4969
- "x-bzip2": ["bz2", "boz"],
4970
- "x-cfs-compressed": "cfs",
4971
- "x-chat": "chat",
4972
- "x-conference": "nsc",
4973
- "x-dgc-compressed": "dgc",
4974
- "x-dtbncx+xml": "ncx",
4975
- "x-dtbook+xml": "dtb",
4976
- "x-dtbresource+xml": "res",
4977
- "x-eva": "eva",
4978
- "x-font-bdf": "bdf",
4979
- "x-font-ghostscript": "gsf",
4980
- "x-font-linux-psf": "psf",
4981
- "x-font-otf": "otf",
4982
- "x-font-pcf": "pcf",
4983
- "x-font-snf": "snf",
4984
- "x-font-ttf": ["ttf", "ttc"],
4985
- "x-font-type1": ["pfa", "pfb", "pfm", "afm"],
4986
- "x-font-woff": "woff",
4987
- "x-freearc": "arc",
4988
- "x-gca-compressed": "gca",
4989
- "x-glulx": "ulx",
4990
- "x-gramps-xml": "gramps",
4991
- "x-install-instructions": "install",
4992
- "x-lzh-compressed": ["lzh", "lha"],
4993
- "x-mie": "mie",
4994
- "x-mobipocket-ebook": ["prc", "mobi"],
4995
- "x-ms-application": "application",
4996
- "x-ms-shortcut": "lnk",
4997
- "x-ms-xbap": "xbap",
4998
- "x-msbinder": "obd",
4999
- "x-mscardfile": "crd",
5000
- "x-msclip": "clp",
5001
- "x-msdownload": ["exe", "dll", "com", "bat", "msi"],
5002
- "x-msmediaview": ["mvb", "m13", "m14"],
5003
- "x-msmetafile": ["wmf", "wmz", "emf", "emz"],
5004
- "x-msmoney": "mny",
5005
- "x-mspublisher": "pub",
5006
- "x-msschedule": "scd",
5007
- "x-msterminal": "trm",
5008
- "x-mswrite": "wri",
5009
- "x-nzb": "nzb",
5010
- "x-pkcs12": ["p12", "pfx"],
5011
- "x-pkcs7-certificates": ["p7b", "spc"],
5012
- "x-research-info-systems": "ris",
5013
- "x-silverlight-app": "xap",
5014
- "x-sql": "sql",
5015
- "x-stuffitx": "sitx",
5016
- "x-subrip": "srt",
5017
- "x-t3vm-image": "t3",
5018
- "x-tads": "gam",
5019
- "x-tex": "tex",
5020
- "x-tex-tfm": "tfm",
5021
- "x-tgif": "obj",
5022
- "x-xliff+xml": "xlf",
5023
- "x-xz": "xz",
5024
- "x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"],
5025
- "xaml+xml": "xaml",
5026
- "xcap-diff+xml": "xdf",
5027
- "xenc+xml": "xenc",
5028
- "xml-dtd": "dtd",
5029
- "xop+xml": "xop",
5030
- "xproc+xml": "xpl",
5031
- "xslt+xml": "xslt",
5032
- "xv+xml": ["mxml", "xhvml", "xvml", "xvm"],
5033
- "yang": "yang",
5034
- "yin+xml": "yin",
5035
- "envoy": "evy",
5036
- "fractals": "fif",
5037
- "internet-property-stream": "acx",
5038
- "olescript": "axs",
5039
- "vnd.ms-outlook": "msg",
5040
- "vnd.ms-pkicertstore": "sst",
5041
- "x-compress": "z",
5042
- "x-compressed": "tgz",
5043
- "x-gzip": "gz",
5044
- "x-perfmon": ["pma", "pmc", "pml", "pmr", "pmw"],
5045
- "x-pkcs7-mime": ["p7c", "p7m"],
5046
- "ynd.ms-pkipko": "pko"
5047
- },
5048
- "audio": {
5049
- "amr": "amr",
5050
- "amr-wb": "awb",
5051
- "annodex": "axa",
5052
- "basic": ["au", "snd"],
5053
- "flac": "flac",
5054
- "midi": ["mid", "midi", "kar", "rmi"],
5055
- "mpeg": ["mpga", "mpega", "mp2", "mp3", "m4a", "mp2a", "m2a", "m3a"],
5056
- "mpegurl": "m3u",
5057
- "ogg": ["oga", "ogg", "spx"],
5058
- "prs.sid": "sid",
5059
- "x-aiff": ["aif", "aiff", "aifc"],
5060
- "x-gsm": "gsm",
5061
- "x-ms-wma": "wma",
5062
- "x-ms-wax": "wax",
5063
- "x-pn-realaudio": "ram",
5064
- "x-realaudio": "ra",
5065
- "x-sd2": "sd2",
5066
- "x-wav": "wav",
5067
- "adpcm": "adp",
5068
- "mp4": "mp4a",
5069
- "s3m": "s3m",
5070
- "silk": "sil",
5071
- "vnd.dece.audio": ["uva", "uvva"],
5072
- "vnd.digital-winds": "eol",
5073
- "vnd.dra": "dra",
5074
- "vnd.dts": "dts",
5075
- "vnd.dts.hd": "dtshd",
5076
- "vnd.lucent.voice": "lvp",
5077
- "vnd.ms-playready.media.pya": "pya",
5078
- "vnd.nuera.ecelp4800": "ecelp4800",
5079
- "vnd.nuera.ecelp7470": "ecelp7470",
5080
- "vnd.nuera.ecelp9600": "ecelp9600",
5081
- "vnd.rip": "rip",
5082
- "webm": "weba",
5083
- "x-aac": "aac",
5084
- "x-caf": "caf",
5085
- "x-matroska": "mka",
5086
- "x-pn-realaudio-plugin": "rmp",
5087
- "xm": "xm",
5088
- "mid": ["mid", "rmi"]
5089
- },
5090
- "chemical": {
5091
- "x-alchemy": "alc",
5092
- "x-cache": ["cac", "cache"],
5093
- "x-cache-csf": "csf",
5094
- "x-cactvs-binary": ["cbin", "cascii", "ctab"],
5095
- "x-cdx": "cdx",
5096
- "x-chem3d": "c3d",
5097
- "x-cif": "cif",
5098
- "x-cmdf": "cmdf",
5099
- "x-cml": "cml",
5100
- "x-compass": "cpa",
5101
- "x-crossfire": "bsd",
5102
- "x-csml": ["csml", "csm"],
5103
- "x-ctx": "ctx",
5104
- "x-cxf": ["cxf", "cef"],
5105
- "x-embl-dl-nucleotide": ["emb", "embl"],
5106
- "x-gamess-input": ["inp", "gam", "gamin"],
5107
- "x-gaussian-checkpoint": ["fch", "fchk"],
5108
- "x-gaussian-cube": "cub",
5109
- "x-gaussian-input": ["gau", "gjc", "gjf"],
5110
- "x-gaussian-log": "gal",
5111
- "x-gcg8-sequence": "gcg",
5112
- "x-genbank": "gen",
5113
- "x-hin": "hin",
5114
- "x-isostar": ["istr", "ist"],
5115
- "x-jcamp-dx": ["jdx", "dx"],
5116
- "x-kinemage": "kin",
5117
- "x-macmolecule": "mcm",
5118
- "x-macromodel-input": ["mmd", "mmod"],
5119
- "x-mdl-molfile": "mol",
5120
- "x-mdl-rdfile": "rd",
5121
- "x-mdl-rxnfile": "rxn",
5122
- "x-mdl-sdfile": ["sd", "sdf"],
5123
- "x-mdl-tgf": "tgf",
5124
- "x-mmcif": "mcif",
5125
- "x-mol2": "mol2",
5126
- "x-molconn-Z": "b",
5127
- "x-mopac-graph": "gpt",
5128
- "x-mopac-input": ["mop", "mopcrt", "mpc", "zmt"],
5129
- "x-mopac-out": "moo",
5130
- "x-ncbi-asn1": "asn",
5131
- "x-ncbi-asn1-ascii": ["prt", "ent"],
5132
- "x-ncbi-asn1-binary": ["val", "aso"],
5133
- "x-pdb": ["pdb", "ent"],
5134
- "x-rosdal": "ros",
5135
- "x-swissprot": "sw",
5136
- "x-vamas-iso14976": "vms",
5137
- "x-vmd": "vmd",
5138
- "x-xtel": "xtel",
5139
- "x-xyz": "xyz"
5140
- },
5141
- "image": {
5142
- "gif": "gif",
5143
- "ief": "ief",
5144
- "jpeg": ["jpeg", "jpg", "jpe"],
5145
- "pcx": "pcx",
5146
- "png": "png",
5147
- "svg+xml": ["svg", "svgz"],
5148
- "tiff": ["tiff", "tif"],
5149
- "vnd.djvu": ["djvu", "djv"],
5150
- "vnd.wap.wbmp": "wbmp",
5151
- "x-canon-cr2": "cr2",
5152
- "x-canon-crw": "crw",
5153
- "x-cmu-raster": "ras",
5154
- "x-coreldraw": "cdr",
5155
- "x-coreldrawpattern": "pat",
5156
- "x-coreldrawtemplate": "cdt",
5157
- "x-corelphotopaint": "cpt",
5158
- "x-epson-erf": "erf",
5159
- "x-icon": "ico",
5160
- "x-jg": "art",
5161
- "x-jng": "jng",
5162
- "x-nikon-nef": "nef",
5163
- "x-olympus-orf": "orf",
5164
- "x-photoshop": "psd",
5165
- "x-portable-anymap": "pnm",
5166
- "x-portable-bitmap": "pbm",
5167
- "x-portable-graymap": "pgm",
5168
- "x-portable-pixmap": "ppm",
5169
- "x-rgb": "rgb",
5170
- "x-xbitmap": "xbm",
5171
- "x-xpixmap": "xpm",
5172
- "x-xwindowdump": "xwd",
5173
- "bmp": "bmp",
5174
- "cgm": "cgm",
5175
- "g3fax": "g3",
5176
- "ktx": "ktx",
5177
- "prs.btif": "btif",
5178
- "sgi": "sgi",
5179
- "vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"],
5180
- "vnd.dwg": "dwg",
5181
- "vnd.dxf": "dxf",
5182
- "vnd.fastbidsheet": "fbs",
5183
- "vnd.fpx": "fpx",
5184
- "vnd.fst": "fst",
5185
- "vnd.fujixerox.edmics-mmr": "mmr",
5186
- "vnd.fujixerox.edmics-rlc": "rlc",
5187
- "vnd.ms-modi": "mdi",
5188
- "vnd.ms-photo": "wdp",
5189
- "vnd.net-fpx": "npx",
5190
- "vnd.xiff": "xif",
5191
- "webp": "webp",
5192
- "x-3ds": "3ds",
5193
- "x-cmx": "cmx",
5194
- "x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"],
5195
- "x-pict": ["pic", "pct"],
5196
- "x-tga": "tga",
5197
- "cis-cod": "cod",
5198
- "pipeg": "jfif"
5199
- },
5200
- "message": {
5201
- "rfc822": ["eml", "mime", "mht", "mhtml", "nws"]
5202
- },
5203
- "model": {
5204
- "iges": ["igs", "iges"],
5205
- "mesh": ["msh", "mesh", "silo"],
5206
- "vrml": ["wrl", "vrml"],
5207
- "x3d+vrml": ["x3dv", "x3dvz"],
5208
- "x3d+xml": ["x3d", "x3dz"],
5209
- "x3d+binary": ["x3db", "x3dbz"],
5210
- "vnd.collada+xml": "dae",
5211
- "vnd.dwf": "dwf",
5212
- "vnd.gdl": "gdl",
5213
- "vnd.gtw": "gtw",
5214
- "vnd.mts": "mts",
5215
- "vnd.vtu": "vtu"
5216
- },
5217
- "text": {
5218
- "cache-manifest": ["manifest", "appcache"],
5219
- "calendar": ["ics", "icz", "ifb"],
5220
- "css": "css",
5221
- "csv": "csv",
5222
- "h323": "323",
5223
- "html": ["html", "htm", "shtml", "stm"],
5224
- "iuls": "uls",
5225
- "mathml": "mml",
5226
- "plain": ["txt", "text", "brf", "conf", "def", "list", "log", "in", "bas"],
5227
- "richtext": "rtx",
5228
- "scriptlet": ["sct", "wsc"],
5229
- "texmacs": ["tm", "ts"],
5230
- "tab-separated-values": "tsv",
5231
- "vnd.sun.j2me.app-descriptor": "jad",
5232
- "vnd.wap.wml": "wml",
5233
- "vnd.wap.wmlscript": "wmls",
5234
- "x-bibtex": "bib",
5235
- "x-boo": "boo",
5236
- "x-c++hdr": ["h++", "hpp", "hxx", "hh"],
5237
- "x-c++src": ["c++", "cpp", "cxx", "cc"],
5238
- "x-component": "htc",
5239
- "x-dsrc": "d",
5240
- "x-diff": ["diff", "patch"],
5241
- "x-haskell": "hs",
5242
- "x-java": "java",
5243
- "x-literate-haskell": "lhs",
5244
- "x-moc": "moc",
5245
- "x-pascal": ["p", "pas"],
5246
- "x-pcs-gcd": "gcd",
5247
- "x-perl": ["pl", "pm"],
5248
- "x-python": "py",
5249
- "x-scala": "scala",
5250
- "x-setext": "etx",
5251
- "x-tcl": ["tcl", "tk"],
5252
- "x-tex": ["tex", "ltx", "sty", "cls"],
5253
- "x-vcalendar": "vcs",
5254
- "x-vcard": "vcf",
5255
- "n3": "n3",
5256
- "prs.lines.tag": "dsc",
5257
- "sgml": ["sgml", "sgm"],
5258
- "troff": ["t", "tr", "roff", "man", "me", "ms"],
5259
- "turtle": "ttl",
5260
- "uri-list": ["uri", "uris", "urls"],
5261
- "vcard": "vcard",
5262
- "vnd.curl": "curl",
5263
- "vnd.curl.dcurl": "dcurl",
5264
- "vnd.curl.scurl": "scurl",
5265
- "vnd.curl.mcurl": "mcurl",
5266
- "vnd.dvb.subtitle": "sub",
5267
- "vnd.fly": "fly",
5268
- "vnd.fmi.flexstor": "flx",
5269
- "vnd.graphviz": "gv",
5270
- "vnd.in3d.3dml": "3dml",
5271
- "vnd.in3d.spot": "spot",
5272
- "x-asm": ["s", "asm"],
5273
- "x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"],
5274
- "x-fortran": ["f", "for", "f77", "f90"],
5275
- "x-opml": "opml",
5276
- "x-nfo": "nfo",
5277
- "x-sfv": "sfv",
5278
- "x-uuencode": "uu",
5279
- "webviewhtml": "htt"
5280
- },
5281
- "video": {
5282
- "avif": ".avif",
5283
- "3gpp": "3gp",
5284
- "annodex": "axv",
5285
- "dl": "dl",
5286
- "dv": ["dif", "dv"],
5287
- "fli": "fli",
5288
- "gl": "gl",
5289
- "mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v", "mp2", "mpa", "mpv2"],
5290
- "mp4": ["mp4", "mp4v", "mpg4"],
5291
- "quicktime": ["qt", "mov"],
5292
- "ogg": "ogv",
5293
- "vnd.mpegurl": ["mxu", "m4u"],
5294
- "x-flv": "flv",
5295
- "x-la-asf": ["lsf", "lsx"],
5296
- "x-mng": "mng",
5297
- "x-ms-asf": ["asf", "asx", "asr"],
5298
- "x-ms-wm": "wm",
5299
- "x-ms-wmv": "wmv",
5300
- "x-ms-wmx": "wmx",
5301
- "x-ms-wvx": "wvx",
5302
- "x-msvideo": "avi",
5303
- "x-sgi-movie": "movie",
5304
- "x-matroska": ["mpv", "mkv", "mk3d", "mks"],
5305
- "3gpp2": "3g2",
5306
- "h261": "h261",
5307
- "h263": "h263",
5308
- "h264": "h264",
5309
- "jpeg": "jpgv",
5310
- "jpm": ["jpm", "jpgm"],
5311
- "mj2": ["mj2", "mjp2"],
5312
- "vnd.dece.hd": ["uvh", "uvvh"],
5313
- "vnd.dece.mobile": ["uvm", "uvvm"],
5314
- "vnd.dece.pd": ["uvp", "uvvp"],
5315
- "vnd.dece.sd": ["uvs", "uvvs"],
5316
- "vnd.dece.video": ["uvv", "uvvv"],
5317
- "vnd.dvb.file": "dvb",
5318
- "vnd.fvt": "fvt",
5319
- "vnd.ms-playready.media.pyv": "pyv",
5320
- "vnd.uvvu.mp4": ["uvu", "uvvu"],
5321
- "vnd.vivo": "viv",
5322
- "webm": "webm",
5323
- "x-f4v": "f4v",
5324
- "x-m4v": "m4v",
5325
- "x-ms-vob": "vob",
5326
- "x-smv": "smv"
5327
- },
5328
- "x-conference": {
5329
- "x-cooltalk": "ice"
5330
- },
5331
- "x-world": {
5332
- "x-vrml": ["vrm", "vrml", "wrl", "flr", "wrz", "xaf", "xof"]
5333
- }
5334
- };
5335
-
5336
- const mimeTypes = (() => {
5337
- const mimeTypes = {};
5338
- for (const type in table$1) {
5339
- // eslint-disable-next-line no-prototype-builtins
5340
- if (table$1.hasOwnProperty(type)) {
5341
- for (const subtype in table$1[type]) {
5342
- // eslint-disable-next-line no-prototype-builtins
5343
- if (table$1[type].hasOwnProperty(subtype)) {
5344
- const value = table$1[type][subtype];
5345
- if (typeof value == "string") {
5346
- mimeTypes[value] = type + "/" + subtype;
5347
- } else {
5348
- for (let indexMimeType = 0; indexMimeType < value.length; indexMimeType++) {
5349
- mimeTypes[value[indexMimeType]] = type + "/" + subtype;
5350
- }
5351
- }
5352
- }
5353
- }
5354
- }
5355
- }
5356
- return mimeTypes;
5357
- })();
5358
-
5359
- function getMimeType(filename) {
5360
- return filename && mimeTypes[filename.split(".").pop().toLowerCase()] || getMimeType$1();
5361
- }
5362
-
5363
- /*
5364
- Copyright (c) 2022 Gildas Lormeau. All rights reserved.
5365
-
5366
- Redistribution and use in source and binary forms, with or without
5367
- modification, are permitted provided that the following conditions are met:
5368
-
5369
- 1. Redistributions of source code must retain the above copyright notice,
5370
- this list of conditions and the following disclaimer.
5371
-
5372
- 2. Redistributions in binary form must reproduce the above copyright
5373
- notice, this list of conditions and the following disclaimer in
5374
- the documentation and/or other materials provided with the distribution.
5375
-
5376
- 3. The names of the authors may not be used to endorse or promote products
5377
- derived from this software without specific prior written permission.
5378
-
5379
- THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
5380
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
5381
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
5382
- INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
5383
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
5384
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
5385
- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
5386
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
5387
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5388
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5389
- */
5390
-
5391
- const table = [];
5392
- for (let i = 0; i < 256; i++) {
5393
- let t = i;
5394
- for (let j = 0; j < 8; j++) {
5395
- if (t & 1) {
5396
- t = (t >>> 1) ^ 0xEDB88320;
5397
- } else {
5398
- t = t >>> 1;
5399
- }
5400
- }
5401
- table[i] = t;
5402
- }
5403
-
5404
- class Crc32 {
5405
-
5406
- constructor(crc) {
5407
- this.crc = crc || -1;
5408
- }
5409
-
5410
- append(data) {
5411
- let crc = this.crc | 0;
5412
- for (let offset = 0, length = data.length | 0; offset < length; offset++) {
5413
- crc = (crc >>> 8) ^ table[(crc ^ data[offset]) & 0xFF];
5414
- }
5415
- this.crc = crc;
5416
- }
5417
-
5418
- get() {
5419
- return ~this.crc;
5420
- }
5421
- }
5422
-
5423
- /*
5424
- Copyright (c) 2022 Gildas Lormeau. All rights reserved.
5425
-
5426
- Redistribution and use in source and binary forms, with or without
5427
- modification, are permitted provided that the following conditions are met:
5428
-
5429
- 1. Redistributions of source code must retain the above copyright notice,
5430
- this list of conditions and the following disclaimer.
5431
-
5432
- 2. Redistributions in binary form must reproduce the above copyright
5433
- notice, this list of conditions and the following disclaimer in
5434
- the documentation and/or other materials provided with the distribution.
5435
-
5436
- 3. The names of the authors may not be used to endorse or promote products
5437
- derived from this software without specific prior written permission.
5438
-
5439
- THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
5440
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
5441
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
5442
- INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
5443
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
5444
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
5445
- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
5446
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
5447
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5448
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5449
- */
5450
-
5451
- class Crc32Stream extends TransformStream {
5452
-
5453
- constructor() {
5454
- const crc32 = new Crc32();
5455
- super({
5456
- transform(chunk) {
5457
- crc32.append(chunk);
5458
- },
5459
- flush(controller) {
5460
- const value = new Uint8Array(4);
5461
- const dataView = new DataView(value.buffer);
5462
- dataView.setUint32(0, crc32.get());
5463
- controller.enqueue(value);
5464
- }
5465
- });
5466
- }
4320
+ class Crc32Stream extends TransformStream {
4321
+
4322
+ constructor() {
4323
+ const crc32 = new Crc32();
4324
+ super({
4325
+ transform(chunk) {
4326
+ crc32.append(chunk);
4327
+ },
4328
+ flush(controller) {
4329
+ const value = new Uint8Array(4);
4330
+ const dataView = new DataView(value.buffer);
4331
+ dataView.setUint32(0, crc32.get());
4332
+ controller.enqueue(value);
4333
+ }
4334
+ });
4335
+ }
5467
4336
  }
5468
4337
 
5469
4338
  /*
@@ -6362,6 +5231,7 @@
6362
5231
  const GET_RANDOM_VALUES_SUPPORTED = typeof crypto != "undefined" && typeof crypto.getRandomValues == "function";
6363
5232
 
6364
5233
  const ERR_INVALID_PASSWORD = "Invalid password";
5234
+ const ERR_INVALID_SIGNATURE = "Invalid signature";
6365
5235
 
6366
5236
  function getRandomValues(array) {
6367
5237
  if (GET_RANDOM_VALUES_SUPPORTED) {
@@ -6411,12 +5281,13 @@
6411
5281
  const KEY_LENGTH = [16, 24, 32];
6412
5282
  const SIGNATURE_LENGTH = 10;
6413
5283
  const COUNTER_DEFAULT_VALUE = [0, 0, 0, 0];
6414
- const UNDEFINED_TYPE$1 = "undefined";
5284
+ const UNDEFINED_TYPE = "undefined";
6415
5285
  const FUNCTION_TYPE = "function";
6416
- const CRYPTO_API_SUPPORTED = typeof crypto != UNDEFINED_TYPE$1;
6417
- const SUBTLE_API_SUPPORTED = CRYPTO_API_SUPPORTED && typeof crypto.subtle != UNDEFINED_TYPE$1;
6418
- const IMPORT_KEY_SUPPORTED = CRYPTO_API_SUPPORTED && SUBTLE_API_SUPPORTED && typeof crypto.subtle.importKey == FUNCTION_TYPE;
6419
- const DERIVE_BITS_SUPPORTED = CRYPTO_API_SUPPORTED && SUBTLE_API_SUPPORTED && typeof crypto.subtle.deriveBits == FUNCTION_TYPE;
5286
+ const CRYPTO_API_SUPPORTED = typeof crypto != UNDEFINED_TYPE;
5287
+ const subtle = CRYPTO_API_SUPPORTED && crypto.subtle;
5288
+ const SUBTLE_API_SUPPORTED = CRYPTO_API_SUPPORTED && typeof subtle != UNDEFINED_TYPE;
5289
+ const IMPORT_KEY_SUPPORTED = CRYPTO_API_SUPPORTED && SUBTLE_API_SUPPORTED && typeof subtle.importKey == FUNCTION_TYPE;
5290
+ const DERIVE_BITS_SUPPORTED = CRYPTO_API_SUPPORTED && SUBTLE_API_SUPPORTED && typeof subtle.deriveBits == FUNCTION_TYPE;
6420
5291
  const codecBytes = codec.bytes;
6421
5292
  const Aes = cipher.aes;
6422
5293
  const CtrGladman = mode.ctrGladman;
@@ -6425,7 +5296,6 @@
6425
5296
  class AESDecryptionStream extends TransformStream {
6426
5297
 
6427
5298
  constructor(password, signed, strength) {
6428
- let stream;
6429
5299
  super({
6430
5300
  start() {
6431
5301
  Object.assign(this, {
@@ -6438,47 +5308,51 @@
6438
5308
  },
6439
5309
  async transform(chunk, controller) {
6440
5310
  const aesCrypto = this;
6441
- if (aesCrypto.password) {
6442
- const password = aesCrypto.password;
6443
- aesCrypto.password = null;
6444
- const preamble = subarray(chunk, 0, SALT_LENGTH[aesCrypto.strength] + 2);
6445
- await createDecryptionKeys(aesCrypto, preamble, password);
6446
- aesCrypto.ctr = new CtrGladman(new Aes(aesCrypto.keys.key), Array.from(COUNTER_DEFAULT_VALUE));
6447
- aesCrypto.hmac = new HmacSha1(aesCrypto.keys.authentication);
6448
- chunk = subarray(chunk, SALT_LENGTH[aesCrypto.strength] + 2);
6449
- aesCrypto.resolveReady();
5311
+ const {
5312
+ password,
5313
+ strength,
5314
+ resolveReady,
5315
+ ready
5316
+ } = aesCrypto;
5317
+ if (password) {
5318
+ await createDecryptionKeys(aesCrypto, strength, password, subarray(chunk, 0, SALT_LENGTH[strength] + 2));
5319
+ chunk = subarray(chunk, SALT_LENGTH[strength] + 2);
5320
+ resolveReady();
6450
5321
  } else {
6451
- await aesCrypto.ready;
5322
+ await ready;
6452
5323
  }
6453
5324
  const output = new Uint8Array(chunk.length - SIGNATURE_LENGTH - ((chunk.length - SIGNATURE_LENGTH) % BLOCK_LENGTH));
6454
5325
  controller.enqueue(append(aesCrypto, chunk, output, 0, SIGNATURE_LENGTH, true));
6455
5326
  },
6456
5327
  async flush(controller) {
6457
- const aesCrypto = this;
6458
- await aesCrypto.ready;
6459
- const pending = aesCrypto.pending;
5328
+ const {
5329
+ signed,
5330
+ ctr,
5331
+ hmac,
5332
+ pending,
5333
+ ready
5334
+ } = this;
5335
+ await ready;
6460
5336
  const chunkToDecrypt = subarray(pending, 0, pending.length - SIGNATURE_LENGTH);
6461
5337
  const originalSignature = subarray(pending, pending.length - SIGNATURE_LENGTH);
6462
5338
  let decryptedChunkArray = new Uint8Array();
6463
5339
  if (chunkToDecrypt.length) {
6464
5340
  const encryptedChunk = toBits(codecBytes, chunkToDecrypt);
6465
- aesCrypto.hmac.update(encryptedChunk);
6466
- const decryptedChunk = aesCrypto.ctr.update(encryptedChunk);
5341
+ hmac.update(encryptedChunk);
5342
+ const decryptedChunk = ctr.update(encryptedChunk);
6467
5343
  decryptedChunkArray = fromBits(codecBytes, decryptedChunk);
6468
5344
  }
6469
- stream.valid = true;
6470
- if (aesCrypto.signed) {
6471
- const signature = subarray(fromBits(codecBytes, aesCrypto.hmac.digest()), 0, SIGNATURE_LENGTH);
5345
+ if (signed) {
5346
+ const signature = subarray(fromBits(codecBytes, hmac.digest()), 0, SIGNATURE_LENGTH);
6472
5347
  for (let indexSignature = 0; indexSignature < SIGNATURE_LENGTH; indexSignature++) {
6473
5348
  if (signature[indexSignature] != originalSignature[indexSignature]) {
6474
- stream.valid = false;
5349
+ throw new Error(ERR_INVALID_SIGNATURE);
6475
5350
  }
6476
5351
  }
6477
5352
  }
6478
5353
  controller.enqueue(decryptedChunkArray);
6479
5354
  }
6480
5355
  });
6481
- stream = this;
6482
5356
  }
6483
5357
  }
6484
5358
 
@@ -6497,31 +5371,38 @@
6497
5371
  },
6498
5372
  async transform(chunk, controller) {
6499
5373
  const aesCrypto = this;
5374
+ const {
5375
+ password,
5376
+ strength,
5377
+ resolveReady,
5378
+ ready
5379
+ } = aesCrypto;
6500
5380
  let preamble = new Uint8Array();
6501
- if (aesCrypto.password) {
6502
- const password = aesCrypto.password;
6503
- aesCrypto.password = null;
6504
- preamble = await createEncryptionKeys(aesCrypto, password);
6505
- aesCrypto.ctr = new CtrGladman(new Aes(aesCrypto.keys.key), Array.from(COUNTER_DEFAULT_VALUE));
6506
- aesCrypto.hmac = new HmacSha1(aesCrypto.keys.authentication);
6507
- aesCrypto.resolveReady();
5381
+ if (password) {
5382
+ preamble = await createEncryptionKeys(aesCrypto, strength, password);
5383
+ resolveReady();
6508
5384
  } else {
6509
- await aesCrypto.ready;
5385
+ await ready;
6510
5386
  }
6511
5387
  const output = new Uint8Array(preamble.length + chunk.length - (chunk.length % BLOCK_LENGTH));
6512
5388
  output.set(preamble, 0);
6513
5389
  controller.enqueue(append(aesCrypto, chunk, output, preamble.length, 0));
6514
5390
  },
6515
5391
  async flush(controller) {
6516
- const aesCrypto = this;
6517
- await aesCrypto.ready;
5392
+ const {
5393
+ ctr,
5394
+ hmac,
5395
+ pending,
5396
+ ready
5397
+ } = this;
5398
+ await ready;
6518
5399
  let encryptedChunkArray = new Uint8Array();
6519
- if (aesCrypto.pending.length) {
6520
- const encryptedChunk = aesCrypto.ctr.update(toBits(codecBytes, aesCrypto.pending));
6521
- aesCrypto.hmac.update(encryptedChunk);
5400
+ if (pending.length) {
5401
+ const encryptedChunk = ctr.update(toBits(codecBytes, pending));
5402
+ hmac.update(encryptedChunk);
6522
5403
  encryptedChunkArray = fromBits(codecBytes, encryptedChunk);
6523
5404
  }
6524
- stream.signature = fromBits(codecBytes, aesCrypto.hmac.digest()).slice(0, SIGNATURE_LENGTH);
5405
+ stream.signature = fromBits(codecBytes, hmac.digest()).slice(0, SIGNATURE_LENGTH);
6525
5406
  controller.enqueue(concat(encryptedChunkArray, stream.signature));
6526
5407
  }
6527
5408
  });
@@ -6530,20 +5411,25 @@
6530
5411
  }
6531
5412
 
6532
5413
  function append(aesCrypto, input, output, paddingStart, paddingEnd, verifySignature) {
5414
+ const {
5415
+ ctr,
5416
+ hmac,
5417
+ pending
5418
+ } = aesCrypto;
6533
5419
  const inputLength = input.length - paddingEnd;
6534
- if (aesCrypto.pending.length) {
6535
- input = concat(aesCrypto.pending, input);
5420
+ if (pending.length) {
5421
+ input = concat(pending, input);
6536
5422
  output = expand(output, inputLength - (inputLength % BLOCK_LENGTH));
6537
5423
  }
6538
5424
  let offset;
6539
5425
  for (offset = 0; offset <= inputLength - BLOCK_LENGTH; offset += BLOCK_LENGTH) {
6540
5426
  const inputChunk = toBits(codecBytes, subarray(input, offset, offset + BLOCK_LENGTH));
6541
5427
  if (verifySignature) {
6542
- aesCrypto.hmac.update(inputChunk);
5428
+ hmac.update(inputChunk);
6543
5429
  }
6544
- const outputChunk = aesCrypto.ctr.update(inputChunk);
5430
+ const outputChunk = ctr.update(inputChunk);
6545
5431
  if (!verifySignature) {
6546
- aesCrypto.hmac.update(outputChunk);
5432
+ hmac.update(outputChunk);
6547
5433
  }
6548
5434
  output.set(fromBits(codecBytes, outputChunk), offset + paddingStart);
6549
5435
  }
@@ -6551,77 +5437,366 @@
6551
5437
  return output;
6552
5438
  }
6553
5439
 
6554
- async function createDecryptionKeys(decrypt, preambleArray, password) {
6555
- await createKeys$1(decrypt, password, subarray(preambleArray, 0, SALT_LENGTH[decrypt.strength]));
6556
- const passwordVerification = subarray(preambleArray, SALT_LENGTH[decrypt.strength]);
6557
- const passwordVerificationKey = decrypt.keys.passwordVerification;
5440
+ async function createDecryptionKeys(decrypt, strength, password, preamble) {
5441
+ const passwordVerificationKey = await createKeys$1(decrypt, strength, password, subarray(preamble, 0, SALT_LENGTH[strength]));
5442
+ const passwordVerification = subarray(preamble, SALT_LENGTH[strength]);
6558
5443
  if (passwordVerificationKey[0] != passwordVerification[0] || passwordVerificationKey[1] != passwordVerification[1]) {
6559
5444
  throw new Error(ERR_INVALID_PASSWORD);
6560
5445
  }
6561
5446
  }
6562
5447
 
6563
- async function createEncryptionKeys(encrypt, password) {
6564
- const salt = getRandomValues(new Uint8Array(SALT_LENGTH[encrypt.strength]));
6565
- await createKeys$1(encrypt, password, salt);
6566
- return concat(salt, encrypt.keys.passwordVerification);
5448
+ async function createEncryptionKeys(encrypt, strength, password) {
5449
+ const salt = getRandomValues(new Uint8Array(SALT_LENGTH[strength]));
5450
+ const passwordVerification = await createKeys$1(encrypt, strength, password, salt);
5451
+ return concat(salt, passwordVerification);
6567
5452
  }
6568
5453
 
6569
- async function createKeys$1(target, password, salt) {
5454
+ async function createKeys$1(aesCrypto, strength, password, salt) {
5455
+ aesCrypto.password = null;
6570
5456
  const encodedPassword = encodeText(password);
6571
- const basekey = await importKey(RAW_FORMAT, encodedPassword, BASE_KEY_ALGORITHM, false, DERIVED_BITS_USAGE);
6572
- const derivedBits = await deriveBits(Object.assign({ salt }, DERIVED_BITS_ALGORITHM), basekey, 8 * ((KEY_LENGTH[target.strength] * 2) + 2));
5457
+ const baseKey = await importKey(RAW_FORMAT, encodedPassword, BASE_KEY_ALGORITHM, false, DERIVED_BITS_USAGE);
5458
+ const derivedBits = await deriveBits(Object.assign({ salt }, DERIVED_BITS_ALGORITHM), baseKey, 8 * ((KEY_LENGTH[strength] * 2) + 2));
6573
5459
  const compositeKey = new Uint8Array(derivedBits);
6574
- target.keys = {
6575
- key: toBits(codecBytes, subarray(compositeKey, 0, KEY_LENGTH[target.strength])),
6576
- authentication: toBits(codecBytes, subarray(compositeKey, KEY_LENGTH[target.strength], KEY_LENGTH[target.strength] * 2)),
6577
- passwordVerification: subarray(compositeKey, KEY_LENGTH[target.strength] * 2)
6578
- };
5460
+ const key = toBits(codecBytes, subarray(compositeKey, 0, KEY_LENGTH[strength]));
5461
+ const authentication = toBits(codecBytes, subarray(compositeKey, KEY_LENGTH[strength], KEY_LENGTH[strength] * 2));
5462
+ const passwordVerification = subarray(compositeKey, KEY_LENGTH[strength] * 2);
5463
+ Object.assign(aesCrypto, {
5464
+ keys: {
5465
+ key,
5466
+ authentication,
5467
+ passwordVerification
5468
+ },
5469
+ ctr: new CtrGladman(new Aes(key), Array.from(COUNTER_DEFAULT_VALUE)),
5470
+ hmac: new HmacSha1(authentication)
5471
+ });
5472
+ return passwordVerification;
6579
5473
  }
6580
5474
 
6581
5475
  function importKey(format, password, algorithm, extractable, keyUsages) {
6582
5476
  if (IMPORT_KEY_SUPPORTED) {
6583
- return crypto.subtle.importKey(format, password, algorithm, extractable, keyUsages);
5477
+ return subtle.importKey(format, password, algorithm, extractable, keyUsages);
6584
5478
  } else {
6585
5479
  return misc.importKey(password);
6586
5480
  }
6587
5481
  }
6588
5482
 
6589
- async function deriveBits(algorithm, baseKey, length) {
6590
- if (DERIVE_BITS_SUPPORTED) {
6591
- return await crypto.subtle.deriveBits(algorithm, baseKey, length);
6592
- } else {
6593
- return misc.pbkdf2(baseKey, algorithm.salt, DERIVED_BITS_ALGORITHM.iterations, length);
6594
- }
6595
- }
5483
+ async function deriveBits(algorithm, baseKey, length) {
5484
+ if (DERIVE_BITS_SUPPORTED) {
5485
+ return await subtle.deriveBits(algorithm, baseKey, length);
5486
+ } else {
5487
+ return misc.pbkdf2(baseKey, algorithm.salt, DERIVED_BITS_ALGORITHM.iterations, length);
5488
+ }
5489
+ }
5490
+
5491
+ function concat(leftArray, rightArray) {
5492
+ let array = leftArray;
5493
+ if (leftArray.length + rightArray.length) {
5494
+ array = new Uint8Array(leftArray.length + rightArray.length);
5495
+ array.set(leftArray, 0);
5496
+ array.set(rightArray, leftArray.length);
5497
+ }
5498
+ return array;
5499
+ }
5500
+
5501
+ function expand(inputArray, length) {
5502
+ if (length && length > inputArray.length) {
5503
+ const array = inputArray;
5504
+ inputArray = new Uint8Array(length);
5505
+ inputArray.set(array, 0);
5506
+ }
5507
+ return inputArray;
5508
+ }
5509
+
5510
+ function subarray(array, begin, end) {
5511
+ return array.subarray(begin, end);
5512
+ }
5513
+
5514
+ function fromBits(codecBytes, chunk) {
5515
+ return codecBytes.fromBits(chunk);
5516
+ }
5517
+ function toBits(codecBytes, chunk) {
5518
+ return codecBytes.toBits(chunk);
5519
+ }
5520
+
5521
+ /*
5522
+ Copyright (c) 2022 Gildas Lormeau. All rights reserved.
5523
+
5524
+ Redistribution and use in source and binary forms, with or without
5525
+ modification, are permitted provided that the following conditions are met:
5526
+
5527
+ 1. Redistributions of source code must retain the above copyright notice,
5528
+ this list of conditions and the following disclaimer.
5529
+
5530
+ 2. Redistributions in binary form must reproduce the above copyright
5531
+ notice, this list of conditions and the following disclaimer in
5532
+ the documentation and/or other materials provided with the distribution.
5533
+
5534
+ 3. The names of the authors may not be used to endorse or promote products
5535
+ derived from this software without specific prior written permission.
5536
+
5537
+ THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
5538
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
5539
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
5540
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
5541
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
5542
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
5543
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
5544
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
5545
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5546
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5547
+ */
5548
+
5549
+ const HEADER_LENGTH = 12;
5550
+
5551
+ class ZipCryptoDecryptionStream extends TransformStream {
5552
+
5553
+ constructor(password, passwordVerification) {
5554
+ super({
5555
+ start() {
5556
+ Object.assign(this, {
5557
+ password,
5558
+ passwordVerification
5559
+ });
5560
+ createKeys(this, password);
5561
+ },
5562
+ transform(chunk, controller) {
5563
+ const zipCrypto = this;
5564
+ if (zipCrypto.password) {
5565
+ const decryptedHeader = decrypt(zipCrypto, chunk.subarray(0, HEADER_LENGTH));
5566
+ zipCrypto.password = null;
5567
+ if (decryptedHeader[HEADER_LENGTH - 1] != zipCrypto.passwordVerification) {
5568
+ throw new Error(ERR_INVALID_PASSWORD);
5569
+ }
5570
+ chunk = chunk.subarray(HEADER_LENGTH);
5571
+ }
5572
+ controller.enqueue(decrypt(zipCrypto, chunk));
5573
+ }
5574
+ });
5575
+ }
5576
+ }
5577
+
5578
+ class ZipCryptoEncryptionStream extends TransformStream {
5579
+
5580
+ constructor(password, passwordVerification) {
5581
+ super({
5582
+ start() {
5583
+ Object.assign(this, {
5584
+ password,
5585
+ passwordVerification
5586
+ });
5587
+ createKeys(this, password);
5588
+ },
5589
+ transform(chunk, controller) {
5590
+ const zipCrypto = this;
5591
+ let output;
5592
+ let offset;
5593
+ if (zipCrypto.password) {
5594
+ zipCrypto.password = null;
5595
+ const header = getRandomValues(new Uint8Array(HEADER_LENGTH));
5596
+ header[HEADER_LENGTH - 1] = zipCrypto.passwordVerification;
5597
+ output = new Uint8Array(chunk.length + header.length);
5598
+ output.set(encrypt(zipCrypto, header), 0);
5599
+ offset = HEADER_LENGTH;
5600
+ } else {
5601
+ output = new Uint8Array(chunk.length);
5602
+ offset = 0;
5603
+ }
5604
+ output.set(encrypt(zipCrypto, chunk), offset);
5605
+ controller.enqueue(output);
5606
+ }
5607
+ });
5608
+ }
5609
+ }
5610
+
5611
+ function decrypt(target, input) {
5612
+ const output = new Uint8Array(input.length);
5613
+ for (let index = 0; index < input.length; index++) {
5614
+ output[index] = getByte(target) ^ input[index];
5615
+ updateKeys(target, output[index]);
5616
+ }
5617
+ return output;
5618
+ }
5619
+
5620
+ function encrypt(target, input) {
5621
+ const output = new Uint8Array(input.length);
5622
+ for (let index = 0; index < input.length; index++) {
5623
+ output[index] = getByte(target) ^ input[index];
5624
+ updateKeys(target, input[index]);
5625
+ }
5626
+ return output;
5627
+ }
5628
+
5629
+ function createKeys(target, password) {
5630
+ const keys = [0x12345678, 0x23456789, 0x34567890];
5631
+ Object.assign(target, {
5632
+ keys,
5633
+ crcKey0: new Crc32(keys[0]),
5634
+ crcKey2: new Crc32(keys[2]),
5635
+ });
5636
+ for (let index = 0; index < password.length; index++) {
5637
+ updateKeys(target, password.charCodeAt(index));
5638
+ }
5639
+ }
5640
+
5641
+ function updateKeys(target, byte) {
5642
+ let [key0, key1, key2] = target.keys;
5643
+ target.crcKey0.append([byte]);
5644
+ key0 = ~target.crcKey0.get();
5645
+ key1 = getInt32(Math.imul(getInt32(key1 + getInt8(key0)), 134775813) + 1);
5646
+ target.crcKey2.append([key1 >>> 24]);
5647
+ key2 = ~target.crcKey2.get();
5648
+ target.keys = [key0, key1, key2];
5649
+ }
5650
+
5651
+ function getByte(target) {
5652
+ const temp = target.keys[2] | 2;
5653
+ return getInt8(Math.imul(temp, (temp ^ 1)) >>> 8);
5654
+ }
5655
+
5656
+ function getInt8(number) {
5657
+ return number & 0xFF;
5658
+ }
5659
+
5660
+ function getInt32(number) {
5661
+ return number & 0xFFFFFFFF;
5662
+ }
5663
+
5664
+ /*
5665
+ Copyright (c) 2022 Gildas Lormeau. All rights reserved.
5666
+
5667
+ Redistribution and use in source and binary forms, with or without
5668
+ modification, are permitted provided that the following conditions are met:
5669
+
5670
+ 1. Redistributions of source code must retain the above copyright notice,
5671
+ this list of conditions and the following disclaimer.
5672
+
5673
+ 2. Redistributions in binary form must reproduce the above copyright
5674
+ notice, this list of conditions and the following disclaimer in
5675
+ the documentation and/or other materials provided with the distribution.
5676
+
5677
+ 3. The names of the authors may not be used to endorse or promote products
5678
+ derived from this software without specific prior written permission.
5679
+
5680
+ THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
5681
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
5682
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
5683
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
5684
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
5685
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
5686
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
5687
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
5688
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5689
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5690
+ */
5691
+
5692
+ const COMPRESSION_FORMAT = "deflate-raw";
5693
+
5694
+ class DeflateStream extends TransformStream {
5695
+
5696
+ constructor(options, { chunkSize, CompressionStream, CompressionStreamNative }) {
5697
+ super({});
5698
+ const { compressed, encrypted, useCompressionStream, password, passwordVerification, encryptionStrength, zipCrypto, signed, level } = options;
5699
+ const stream = this;
5700
+ let crc32Stream, encryptionStream;
5701
+ let readable = filterEmptyChunks(super.readable);
5702
+ if ((!encrypted || zipCrypto) && signed) {
5703
+ [readable, crc32Stream] = readable.tee();
5704
+ crc32Stream = pipeThrough(crc32Stream, new Crc32Stream());
5705
+ }
5706
+ if (compressed) {
5707
+ readable = pipeThroughCommpressionStream(readable, useCompressionStream, { level, chunkSize }, CompressionStreamNative, CompressionStream);
5708
+ }
5709
+ if (encrypted) {
5710
+ if (zipCrypto) {
5711
+ readable = pipeThrough(readable, new ZipCryptoEncryptionStream(password, passwordVerification));
5712
+ } else {
5713
+ encryptionStream = new AESEncryptionStream(password, encryptionStrength);
5714
+ readable = pipeThrough(readable, encryptionStream);
5715
+ }
5716
+ }
5717
+ setReadable(stream, readable, async () => {
5718
+ let signature;
5719
+ if (encrypted && !zipCrypto) {
5720
+ signature = encryptionStream.signature;
5721
+ }
5722
+ if ((!encrypted || zipCrypto) && signed) {
5723
+ signature = await crc32Stream.getReader().read();
5724
+ signature = new DataView(signature.value.buffer).getUint32(0);
5725
+ }
5726
+ stream.signature = signature;
5727
+ });
5728
+ }
5729
+ }
5730
+
5731
+ class InflateStream extends TransformStream {
6596
5732
 
6597
- function concat(leftArray, rightArray) {
6598
- let array = leftArray;
6599
- if (leftArray.length + rightArray.length) {
6600
- array = new Uint8Array(leftArray.length + rightArray.length);
6601
- array.set(leftArray, 0);
6602
- array.set(rightArray, leftArray.length);
5733
+ constructor(options, { chunkSize, DecompressionStream, DecompressionStreamNative }) {
5734
+ super({});
5735
+ const { zipCrypto, encrypted, password, passwordVerification, signed, signature, encryptionStrength, compressed, useCompressionStream } = options;
5736
+ let crc32Stream, decryptionStream;
5737
+ let readable = filterEmptyChunks(super.readable);
5738
+ if (encrypted) {
5739
+ if (zipCrypto) {
5740
+ readable = pipeThrough(readable, new ZipCryptoDecryptionStream(password, passwordVerification));
5741
+ } else {
5742
+ decryptionStream = new AESDecryptionStream(password, signed, encryptionStrength);
5743
+ readable = pipeThrough(readable, decryptionStream);
5744
+ }
5745
+ }
5746
+ if (compressed) {
5747
+ readable = pipeThroughCommpressionStream(readable, useCompressionStream, { chunkSize }, DecompressionStreamNative, DecompressionStream);
5748
+ }
5749
+ if ((!encrypted || zipCrypto) && signed) {
5750
+ [readable, crc32Stream] = readable.tee();
5751
+ crc32Stream = pipeThrough(crc32Stream, new Crc32Stream());
5752
+ }
5753
+ setReadable(this, readable, async () => {
5754
+ if ((!encrypted || zipCrypto) && signed) {
5755
+ const streamSignature = await crc32Stream.getReader().read();
5756
+ const dataViewSignature = new DataView(streamSignature.value.buffer);
5757
+ if (signature != dataViewSignature.getUint32(0, false)) {
5758
+ throw new Error(ERR_INVALID_SIGNATURE);
5759
+ }
5760
+ }
5761
+ });
6603
5762
  }
6604
- return array;
6605
5763
  }
6606
5764
 
6607
- function expand(inputArray, length) {
6608
- if (length && length > inputArray.length) {
6609
- const array = inputArray;
6610
- inputArray = new Uint8Array(length);
6611
- inputArray.set(array, 0);
6612
- }
6613
- return inputArray;
5765
+ function filterEmptyChunks(readable) {
5766
+ return pipeThrough(readable, new TransformStream({
5767
+ transform(chunk, controller) {
5768
+ if (chunk && chunk.length) {
5769
+ controller.enqueue(chunk);
5770
+ }
5771
+ }
5772
+ }));
6614
5773
  }
6615
5774
 
6616
- function subarray(array, begin, end) {
6617
- return array.subarray(begin, end);
5775
+ function setReadable(stream, readable, flush) {
5776
+ readable = pipeThrough(readable, new TransformStream({ flush }));
5777
+ Object.defineProperty(stream, "readable", {
5778
+ get() {
5779
+ return readable;
5780
+ }
5781
+ });
6618
5782
  }
6619
5783
 
6620
- function fromBits(codecBytes, chunk) {
6621
- return codecBytes.fromBits(chunk);
5784
+ function pipeThroughCommpressionStream(readable, useCompressionStream, options, CodecStreamNative, CodecStream) {
5785
+ try {
5786
+ const CompressionStream = useCompressionStream && CodecStreamNative ? CodecStreamNative : CodecStream;
5787
+ readable = pipeThrough(readable, new CompressionStream(COMPRESSION_FORMAT, options));
5788
+ } catch (error) {
5789
+ if (useCompressionStream) {
5790
+ readable = pipeThrough(readable, new CodecStream(COMPRESSION_FORMAT, options));
5791
+ } else {
5792
+ throw error;
5793
+ }
5794
+ }
5795
+ return readable;
6622
5796
  }
6623
- function toBits(codecBytes, chunk) {
6624
- return codecBytes.toBits(chunk);
5797
+
5798
+ function pipeThrough(readable, transformStream) {
5799
+ return readable.pipeThrough(transformStream);
6625
5800
  }
6626
5801
 
6627
5802
  /*
@@ -6652,122 +5827,236 @@
6652
5827
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6653
5828
  */
6654
5829
 
6655
- const HEADER_LENGTH = 12;
5830
+ /*
5831
+ * This program is based on JZlib 1.0.2 ymnk, JCraft,Inc.
5832
+ * JZlib is based on zlib-1.1.3, so all credit should go authors
5833
+ * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)
5834
+ * and contributors of zlib.
5835
+ */
6656
5836
 
6657
- class ZipCryptoDecryptionStream extends TransformStream {
5837
+ /* global TransformStream */
6658
5838
 
6659
- constructor(password, passwordVerification) {
6660
- let stream;
5839
+ class CodecStream extends TransformStream {
5840
+
5841
+ constructor(Codec, options) {
5842
+ const codec = new Codec(options);
6661
5843
  super({
6662
- start() {
6663
- Object.assign(this, {
6664
- password,
6665
- passwordVerification
6666
- });
6667
- createKeys(this, password);
6668
- },
6669
5844
  transform(chunk, controller) {
6670
- const zipCrypto = this;
6671
- if (zipCrypto.password) {
6672
- const decryptedHeader = decrypt(zipCrypto, chunk.subarray(0, HEADER_LENGTH));
6673
- zipCrypto.password = null;
6674
- if (decryptedHeader[HEADER_LENGTH - 1] != zipCrypto.passwordVerification) {
6675
- throw new Error(ERR_INVALID_PASSWORD);
6676
- }
6677
- chunk = chunk.subarray(HEADER_LENGTH);
6678
- }
6679
- controller.enqueue(decrypt(zipCrypto, chunk));
5845
+ controller.enqueue(codec.append(chunk));
6680
5846
  },
6681
- flush() {
6682
- stream.valid = true;
5847
+ flush(controller) {
5848
+ const chunk = codec.flush();
5849
+ if (chunk) {
5850
+ controller.enqueue(chunk);
5851
+ }
6683
5852
  }
6684
5853
  });
6685
- stream = this;
6686
5854
  }
6687
5855
  }
6688
5856
 
6689
- class ZipCryptoEncryptionStream extends TransformStream {
5857
+ /*
5858
+ Copyright (c) 2022 Gildas Lormeau. All rights reserved.
6690
5859
 
6691
- constructor(password, passwordVerification) {
6692
- super({
6693
- start() {
6694
- Object.assign(this, {
6695
- password,
6696
- passwordVerification
6697
- });
6698
- createKeys(this, password);
6699
- },
6700
- transform(chunk, controller) {
6701
- const zipCrypto = this;
6702
- let output;
6703
- let offset;
6704
- if (zipCrypto.password) {
6705
- zipCrypto.password = null;
6706
- const header = getRandomValues(new Uint8Array(HEADER_LENGTH));
6707
- header[HEADER_LENGTH - 1] = zipCrypto.passwordVerification;
6708
- output = new Uint8Array(chunk.length + header.length);
6709
- output.set(encrypt(zipCrypto, header), 0);
6710
- offset = HEADER_LENGTH;
6711
- } else {
6712
- output = new Uint8Array(chunk.length);
6713
- offset = 0;
6714
- }
6715
- output.set(encrypt(zipCrypto, chunk), offset);
6716
- controller.enqueue(output);
6717
- },
6718
- flush() {
6719
- }
5860
+ Redistribution and use in source and binary forms, with or without
5861
+ modification, are permitted provided that the following conditions are met:
5862
+
5863
+ 1. Redistributions of source code must retain the above copyright notice,
5864
+ this list of conditions and the following disclaimer.
5865
+
5866
+ 2. Redistributions in binary form must reproduce the above copyright
5867
+ notice, this list of conditions and the following disclaimer in
5868
+ the documentation and/or other materials provided with the distribution.
5869
+
5870
+ 3. The names of the authors may not be used to endorse or promote products
5871
+ derived from this software without specific prior written permission.
5872
+
5873
+ THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
5874
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
5875
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
5876
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
5877
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
5878
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
5879
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
5880
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
5881
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5882
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5883
+ */
5884
+
5885
+ const CODEC_DEFLATE = "deflate";
5886
+ const CODEC_INFLATE = "inflate";
5887
+ const MESSAGE_EVENT_TYPE = "message";
5888
+ const MESSAGE_START = "start";
5889
+ const MESSAGE_PULL = "pull";
5890
+ const MESSAGE_DATA = "data";
5891
+ const MESSAGE_ACK_DATA = "ack";
5892
+ const MESSAGE_CLOSE = "close";
5893
+
5894
+ class Codec {
5895
+
5896
+ constructor(readable, writable, options, config) {
5897
+ const { codecType } = options;
5898
+ let CodecStream;
5899
+ if (codecType.startsWith(CODEC_DEFLATE)) {
5900
+ CodecStream = DeflateStream;
5901
+ } else if (codecType.startsWith(CODEC_INFLATE)) {
5902
+ CodecStream = InflateStream;
5903
+ }
5904
+ Object.assign(this, {
5905
+ CodecStream,
5906
+ readable,
5907
+ writable,
5908
+ options,
5909
+ config
6720
5910
  });
6721
5911
  }
6722
- }
6723
5912
 
6724
- function decrypt(target, input) {
6725
- const output = new Uint8Array(input.length);
6726
- for (let index = 0; index < input.length; index++) {
6727
- output[index] = getByte(target) ^ input[index];
6728
- updateKeys(target, output[index]);
5913
+ async run() {
5914
+ const {
5915
+ CodecStream,
5916
+ readable,
5917
+ writable,
5918
+ options,
5919
+ config
5920
+ } = this;
5921
+ const stream = new CodecStream(options, config);
5922
+ let size = 0;
5923
+ await readable
5924
+ .pipeThrough(stream)
5925
+ .pipeThrough(new TransformStream({
5926
+ transform(chunk, controller) {
5927
+ if (chunk && chunk.length) {
5928
+ size += chunk.length;
5929
+ controller.enqueue(chunk);
5930
+ }
5931
+ }
5932
+ }))
5933
+ .pipeTo(writable, { preventClose: true, preventAbort: true });
5934
+ const { signature } = stream;
5935
+ return { size, signature };
6729
5936
  }
6730
- return output;
6731
5937
  }
6732
5938
 
6733
- function encrypt(target, input) {
6734
- const output = new Uint8Array(input.length);
6735
- for (let index = 0; index < input.length; index++) {
6736
- output[index] = getByte(target) ^ input[index];
6737
- updateKeys(target, input[index]);
6738
- }
6739
- return output;
5939
+ function getCodecStreamClass(Codec) {
5940
+ return class extends CodecStream {
5941
+ constructor(algorithm, options) {
5942
+ super(Codec, options);
5943
+ }
5944
+ };
6740
5945
  }
6741
5946
 
6742
- function createKeys(target, password) {
6743
- target.keys = [0x12345678, 0x23456789, 0x34567890];
6744
- target.crcKey0 = new Crc32(target.keys[0]);
6745
- target.crcKey2 = new Crc32(target.keys[2]);
6746
- for (let index = 0; index < password.length; index++) {
6747
- updateKeys(target, password.charCodeAt(index));
5947
+ /*
5948
+ Copyright (c) 2022 Gildas Lormeau. All rights reserved.
5949
+
5950
+ Redistribution and use in source and binary forms, with or without
5951
+ modification, are permitted provided that the following conditions are met:
5952
+
5953
+ 1. Redistributions of source code must retain the above copyright notice,
5954
+ this list of conditions and the following disclaimer.
5955
+
5956
+ 2. Redistributions in binary form must reproduce the above copyright
5957
+ notice, this list of conditions and the following disclaimer in
5958
+ the documentation and/or other materials provided with the distribution.
5959
+
5960
+ 3. The names of the authors may not be used to endorse or promote products
5961
+ derived from this software without specific prior written permission.
5962
+
5963
+ THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
5964
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
5965
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
5966
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
5967
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
5968
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
5969
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
5970
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
5971
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5972
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5973
+ */
5974
+
5975
+ const MINIMUM_CHUNK_SIZE = 64;
5976
+ const UNDEFINED_VALUE = undefined;
5977
+ let maxWorkers = 2;
5978
+ try {
5979
+ if (typeof navigator != "undefined" && navigator.hardwareConcurrency) {
5980
+ maxWorkers = navigator.hardwareConcurrency;
6748
5981
  }
5982
+ } catch (_error) {
5983
+ // ignored
6749
5984
  }
5985
+ const DEFAULT_CONFIGURATION = {
5986
+ chunkSize: 512 * 1024,
5987
+ maxWorkers,
5988
+ terminateWorkerTimeout: 5000,
5989
+ useWebWorkers: true,
5990
+ useCompressionStream: true,
5991
+ workerScripts: undefined,
5992
+ CompressionStreamNative: typeof CompressionStream != "undefined" && CompressionStream,
5993
+ DecompressionStreamNative: typeof DecompressionStream != "undefined" && DecompressionStream
5994
+ };
6750
5995
 
6751
- function updateKeys(target, byte) {
6752
- target.crcKey0.append([byte]);
6753
- target.keys[0] = ~target.crcKey0.get();
6754
- target.keys[1] = getInt32(target.keys[1] + getInt8(target.keys[0]));
6755
- target.keys[1] = getInt32(Math.imul(target.keys[1], 134775813) + 1);
6756
- target.crcKey2.append([target.keys[1] >>> 24]);
6757
- target.keys[2] = ~target.crcKey2.get();
5996
+ const config = Object.assign({}, DEFAULT_CONFIGURATION);
5997
+
5998
+ function getConfiguration() {
5999
+ return config;
6758
6000
  }
6759
6001
 
6760
- function getByte(target) {
6761
- const temp = target.keys[2] | 2;
6762
- return getInt8(Math.imul(temp, (temp ^ 1)) >>> 8);
6002
+ function getChunkSize(config) {
6003
+ return Math.max(config.chunkSize, MINIMUM_CHUNK_SIZE);
6763
6004
  }
6764
6005
 
6765
- function getInt8(number) {
6766
- return number & 0xFF;
6006
+ function configure(configuration) {
6007
+ const {
6008
+ baseURL,
6009
+ chunkSize,
6010
+ maxWorkers,
6011
+ terminateWorkerTimeout,
6012
+ useCompressionStream,
6013
+ useWebWorkers,
6014
+ Deflate,
6015
+ Inflate,
6016
+ CompressionStream,
6017
+ DecompressionStream,
6018
+ workerScripts
6019
+ } = configuration;
6020
+ setIfDefined("baseURL", baseURL);
6021
+ setIfDefined("chunkSize", chunkSize);
6022
+ setIfDefined("maxWorkers", maxWorkers);
6023
+ setIfDefined("terminateWorkerTimeout", terminateWorkerTimeout);
6024
+ setIfDefined("useCompressionStream", useCompressionStream);
6025
+ setIfDefined("useWebWorkers", useWebWorkers);
6026
+ if (Deflate) {
6027
+ config.CompressionStream = getCodecStreamClass(Deflate);
6028
+ }
6029
+ if (Inflate) {
6030
+ config.DecompressionStream = getCodecStreamClass(Inflate);
6031
+ }
6032
+ setIfDefined("CompressionStream", CompressionStream);
6033
+ setIfDefined("DecompressionStream", DecompressionStream);
6034
+ if (workerScripts !== UNDEFINED_VALUE) {
6035
+ const { deflate, inflate } = workerScripts;
6036
+ if (deflate || inflate) {
6037
+ if (!config.workerScripts) {
6038
+ config.workerScripts = {};
6039
+ }
6040
+ }
6041
+ if (deflate) {
6042
+ if (!Array.isArray(deflate)) {
6043
+ throw new Error("workerScripts.deflate must be an array");
6044
+ }
6045
+ config.workerScripts.deflate = deflate;
6046
+ }
6047
+ if (inflate) {
6048
+ if (!Array.isArray(inflate)) {
6049
+ throw new Error("workerScripts.inflate must be an array");
6050
+ }
6051
+ config.workerScripts.inflate = inflate;
6052
+ }
6053
+ }
6767
6054
  }
6768
6055
 
6769
- function getInt32(number) {
6770
- return number & 0xFFFFFFFF;
6056
+ function setIfDefined(propertyName, propertyValue) {
6057
+ if (propertyValue !== UNDEFINED_VALUE) {
6058
+ config[propertyName] = propertyValue;
6059
+ }
6771
6060
  }
6772
6061
 
6773
6062
  /*
@@ -6798,35 +6087,8 @@
6798
6087
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6799
6088
  */
6800
6089
 
6801
- /*
6802
- * This program is based on JZlib 1.0.2 ymnk, JCraft,Inc.
6803
- * JZlib is based on zlib-1.1.3, so all credit should go authors
6804
- * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)
6805
- * and contributors of zlib.
6806
- */
6807
-
6808
- /* global TransformStream */
6809
-
6810
- class CodecStream extends TransformStream {
6811
-
6812
- constructor(Codec, options) {
6813
- let codec;
6814
- super({
6815
- start() {
6816
- codec = new Codec(options);
6817
- },
6818
- transform(chunk, controller) {
6819
- chunk = codec.append(chunk);
6820
- controller.enqueue(chunk);
6821
- },
6822
- flush(controller) {
6823
- const chunk = codec.flush();
6824
- if (chunk) {
6825
- controller.enqueue(chunk);
6826
- }
6827
- }
6828
- });
6829
- }
6090
+ function getMimeType$1() {
6091
+ return "application/octet-stream";
6830
6092
  }
6831
6093
 
6832
6094
  /*
@@ -6857,214 +6119,977 @@
6857
6119
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6858
6120
  */
6859
6121
 
6860
- const ERR_INVALID_SIGNATURE = "Invalid signature";
6861
- const COMPRESSION_FORMAT = "deflate-raw";
6862
- const UNDEFINED_TYPE = "undefined";
6863
- const COMPRESSION_STREAM_API_SUPPORTED = typeof CompressionStream == UNDEFINED_TYPE;
6864
- const DECOMPRESSION_STREAM_API_SUPPORTED = typeof DecompressionStream == UNDEFINED_TYPE;
6865
- let INFLATE_RAW_SUPPORTED = true;
6866
- let DEFLATE_RAW_SUPPORTED = true;
6867
-
6868
- class DeflateStream extends TransformStream {
6869
-
6870
- constructor(codecConstructor, options, { chunkSize }, ...strategies) {
6871
- super({}, ...strategies);
6872
- const { compressed, encrypted, useCompressionStream, password, passwordVerification, encryptionStrength, zipCrypto, signed, level } = options;
6873
- const stream = this;
6874
- let crc32Stream, encryptionStream;
6875
- let readable = filterEmptyChunks(super.readable);
6876
- if ((!encrypted || zipCrypto) && signed) {
6877
- [readable, crc32Stream] = readable.tee();
6878
- crc32Stream = crc32Stream.pipeThrough(new Crc32Stream());
6879
- }
6880
- if (compressed) {
6881
- if ((useCompressionStream !== undefined && !useCompressionStream) || (COMPRESSION_STREAM_API_SUPPORTED && !DEFLATE_RAW_SUPPORTED)) {
6882
- readable = pipeCodecStream(codecConstructor, readable, { chunkSize, level });
6883
- } else {
6884
- try {
6885
- readable = readable.pipeThrough(new CompressionStream(COMPRESSION_FORMAT));
6886
- } catch (_error) {
6887
- DEFLATE_RAW_SUPPORTED = false;
6888
- readable = pipeCodecStream(codecConstructor, readable, { chunkSize, level });
6889
- }
6890
- }
6891
- }
6892
- if (encrypted) {
6893
- if (zipCrypto) {
6894
- readable = readable.pipeThrough(new ZipCryptoEncryptionStream(password, passwordVerification));
6895
- } else {
6896
- encryptionStream = new AESEncryptionStream(password, encryptionStrength);
6897
- readable = readable.pipeThrough(encryptionStream);
6898
- }
6899
- }
6900
- setReadable(stream, readable, async () => {
6901
- let signature;
6902
- if (encrypted && !zipCrypto) {
6903
- signature = encryptionStream.signature;
6904
- }
6905
- if ((!encrypted || zipCrypto) && signed) {
6906
- signature = await crc32Stream.getReader().read();
6907
- signature = new DataView(signature.value.buffer).getUint32(0);
6908
- }
6909
- stream.signature = signature;
6910
- });
6122
+ const table = {
6123
+ "application": {
6124
+ "andrew-inset": "ez",
6125
+ "annodex": "anx",
6126
+ "atom+xml": "atom",
6127
+ "atomcat+xml": "atomcat",
6128
+ "atomserv+xml": "atomsrv",
6129
+ "bbolin": "lin",
6130
+ "cap": ["cap", "pcap"],
6131
+ "cu-seeme": "cu",
6132
+ "davmount+xml": "davmount",
6133
+ "dsptype": "tsp",
6134
+ "ecmascript": ["es", "ecma"],
6135
+ "futuresplash": "spl",
6136
+ "hta": "hta",
6137
+ "java-archive": "jar",
6138
+ "java-serialized-object": "ser",
6139
+ "java-vm": "class",
6140
+ "javascript": "js",
6141
+ "m3g": "m3g",
6142
+ "mac-binhex40": "hqx",
6143
+ "mathematica": ["nb", "ma", "mb"],
6144
+ "msaccess": "mdb",
6145
+ "msword": ["doc", "dot"],
6146
+ "mxf": "mxf",
6147
+ "oda": "oda",
6148
+ "ogg": "ogx",
6149
+ "pdf": "pdf",
6150
+ "pgp-keys": "key",
6151
+ "pgp-signature": ["asc", "sig"],
6152
+ "pics-rules": "prf",
6153
+ "postscript": ["ps", "ai", "eps", "epsi", "epsf", "eps2", "eps3"],
6154
+ "rar": "rar",
6155
+ "rdf+xml": "rdf",
6156
+ "rss+xml": "rss",
6157
+ "rtf": "rtf",
6158
+ "smil": ["smi", "smil"],
6159
+ "xhtml+xml": ["xhtml", "xht"],
6160
+ "xml": ["xml", "xsl", "xsd"],
6161
+ "xspf+xml": "xspf",
6162
+ "zip": "zip",
6163
+ "vnd.android.package-archive": "apk",
6164
+ "vnd.cinderella": "cdy",
6165
+ "vnd.google-earth.kml+xml": "kml",
6166
+ "vnd.google-earth.kmz": "kmz",
6167
+ "vnd.mozilla.xul+xml": "xul",
6168
+ "vnd.ms-excel": ["xls", "xlb", "xlt", "xlm", "xla", "xlc", "xlw"],
6169
+ "vnd.ms-pki.seccat": "cat",
6170
+ "vnd.ms-pki.stl": "stl",
6171
+ "vnd.ms-powerpoint": ["ppt", "pps", "pot"],
6172
+ "vnd.oasis.opendocument.chart": "odc",
6173
+ "vnd.oasis.opendocument.database": "odb",
6174
+ "vnd.oasis.opendocument.formula": "odf",
6175
+ "vnd.oasis.opendocument.graphics": "odg",
6176
+ "vnd.oasis.opendocument.graphics-template": "otg",
6177
+ "vnd.oasis.opendocument.image": "odi",
6178
+ "vnd.oasis.opendocument.presentation": "odp",
6179
+ "vnd.oasis.opendocument.presentation-template": "otp",
6180
+ "vnd.oasis.opendocument.spreadsheet": "ods",
6181
+ "vnd.oasis.opendocument.spreadsheet-template": "ots",
6182
+ "vnd.oasis.opendocument.text": "odt",
6183
+ "vnd.oasis.opendocument.text-master": "odm",
6184
+ "vnd.oasis.opendocument.text-template": "ott",
6185
+ "vnd.oasis.opendocument.text-web": "oth",
6186
+ "vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx",
6187
+ "vnd.openxmlformats-officedocument.spreadsheetml.template": "xltx",
6188
+ "vnd.openxmlformats-officedocument.presentationml.presentation": "pptx",
6189
+ "vnd.openxmlformats-officedocument.presentationml.slideshow": "ppsx",
6190
+ "vnd.openxmlformats-officedocument.presentationml.template": "potx",
6191
+ "vnd.openxmlformats-officedocument.wordprocessingml.document": "docx",
6192
+ "vnd.openxmlformats-officedocument.wordprocessingml.template": "dotx",
6193
+ "vnd.smaf": "mmf",
6194
+ "vnd.stardivision.calc": "sdc",
6195
+ "vnd.stardivision.chart": "sds",
6196
+ "vnd.stardivision.draw": "sda",
6197
+ "vnd.stardivision.impress": "sdd",
6198
+ "vnd.stardivision.math": ["sdf", "smf"],
6199
+ "vnd.stardivision.writer": ["sdw", "vor"],
6200
+ "vnd.stardivision.writer-global": "sgl",
6201
+ "vnd.sun.xml.calc": "sxc",
6202
+ "vnd.sun.xml.calc.template": "stc",
6203
+ "vnd.sun.xml.draw": "sxd",
6204
+ "vnd.sun.xml.draw.template": "std",
6205
+ "vnd.sun.xml.impress": "sxi",
6206
+ "vnd.sun.xml.impress.template": "sti",
6207
+ "vnd.sun.xml.math": "sxm",
6208
+ "vnd.sun.xml.writer": "sxw",
6209
+ "vnd.sun.xml.writer.global": "sxg",
6210
+ "vnd.sun.xml.writer.template": "stw",
6211
+ "vnd.symbian.install": ["sis", "sisx"],
6212
+ "vnd.visio": ["vsd", "vst", "vss", "vsw"],
6213
+ "vnd.wap.wbxml": "wbxml",
6214
+ "vnd.wap.wmlc": "wmlc",
6215
+ "vnd.wap.wmlscriptc": "wmlsc",
6216
+ "vnd.wordperfect": "wpd",
6217
+ "vnd.wordperfect5.1": "wp5",
6218
+ "x-123": "wk",
6219
+ "x-7z-compressed": "7z",
6220
+ "x-abiword": "abw",
6221
+ "x-apple-diskimage": "dmg",
6222
+ "x-bcpio": "bcpio",
6223
+ "x-bittorrent": "torrent",
6224
+ "x-cbr": ["cbr", "cba", "cbt", "cb7"],
6225
+ "x-cbz": "cbz",
6226
+ "x-cdf": ["cdf", "cda"],
6227
+ "x-cdlink": "vcd",
6228
+ "x-chess-pgn": "pgn",
6229
+ "x-cpio": "cpio",
6230
+ "x-csh": "csh",
6231
+ "x-debian-package": ["deb", "udeb"],
6232
+ "x-director": ["dcr", "dir", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"],
6233
+ "x-dms": "dms",
6234
+ "x-doom": "wad",
6235
+ "x-dvi": "dvi",
6236
+ "x-httpd-eruby": "rhtml",
6237
+ "x-font": "pcf.Z",
6238
+ "x-freemind": "mm",
6239
+ "x-gnumeric": "gnumeric",
6240
+ "x-go-sgf": "sgf",
6241
+ "x-graphing-calculator": "gcf",
6242
+ "x-gtar": ["gtar", "taz"],
6243
+ "x-hdf": "hdf",
6244
+ "x-httpd-php": ["phtml", "pht", "php"],
6245
+ "x-httpd-php-source": "phps",
6246
+ "x-httpd-php3": "php3",
6247
+ "x-httpd-php3-preprocessed": "php3p",
6248
+ "x-httpd-php4": "php4",
6249
+ "x-httpd-php5": "php5",
6250
+ "x-ica": "ica",
6251
+ "x-info": "info",
6252
+ "x-internet-signup": ["ins", "isp"],
6253
+ "x-iphone": "iii",
6254
+ "x-iso9660-image": "iso",
6255
+ "x-java-jnlp-file": "jnlp",
6256
+ "x-jmol": "jmz",
6257
+ "x-killustrator": "kil",
6258
+ "x-koan": ["skp", "skd", "skt", "skm"],
6259
+ "x-kpresenter": ["kpr", "kpt"],
6260
+ "x-kword": ["kwd", "kwt"],
6261
+ "x-latex": "latex",
6262
+ "x-lha": "lha",
6263
+ "x-lyx": "lyx",
6264
+ "x-lzh": "lzh",
6265
+ "x-lzx": "lzx",
6266
+ "x-maker": ["frm", "maker", "frame", "fm", "fb", "book", "fbdoc"],
6267
+ "x-ms-wmd": "wmd",
6268
+ "x-ms-wmz": "wmz",
6269
+ "x-msdos-program": ["com", "exe", "bat", "dll"],
6270
+ "x-msi": "msi",
6271
+ "x-netcdf": ["nc", "cdf"],
6272
+ "x-ns-proxy-autoconfig": ["pac", "dat"],
6273
+ "x-nwc": "nwc",
6274
+ "x-object": "o",
6275
+ "x-oz-application": "oza",
6276
+ "x-pkcs7-certreqresp": "p7r",
6277
+ "x-python-code": ["pyc", "pyo"],
6278
+ "x-qgis": ["qgs", "shp", "shx"],
6279
+ "x-quicktimeplayer": "qtl",
6280
+ "x-redhat-package-manager": "rpm",
6281
+ "x-ruby": "rb",
6282
+ "x-sh": "sh",
6283
+ "x-shar": "shar",
6284
+ "x-shockwave-flash": ["swf", "swfl"],
6285
+ "x-silverlight": "scr",
6286
+ "x-stuffit": "sit",
6287
+ "x-sv4cpio": "sv4cpio",
6288
+ "x-sv4crc": "sv4crc",
6289
+ "x-tar": "tar",
6290
+ "x-tcl": "tcl",
6291
+ "x-tex-gf": "gf",
6292
+ "x-tex-pk": "pk",
6293
+ "x-texinfo": ["texinfo", "texi"],
6294
+ "x-trash": ["~", "%", "bak", "old", "sik"],
6295
+ "x-troff": ["t", "tr", "roff"],
6296
+ "x-troff-man": "man",
6297
+ "x-troff-me": "me",
6298
+ "x-troff-ms": "ms",
6299
+ "x-ustar": "ustar",
6300
+ "x-wais-source": "src",
6301
+ "x-wingz": "wz",
6302
+ "x-x509-ca-cert": ["crt", "der", "cer"],
6303
+ "x-xcf": "xcf",
6304
+ "x-xfig": "fig",
6305
+ "x-xpinstall": "xpi",
6306
+ "applixware": "aw",
6307
+ "atomsvc+xml": "atomsvc",
6308
+ "ccxml+xml": "ccxml",
6309
+ "cdmi-capability": "cdmia",
6310
+ "cdmi-container": "cdmic",
6311
+ "cdmi-domain": "cdmid",
6312
+ "cdmi-object": "cdmio",
6313
+ "cdmi-queue": "cdmiq",
6314
+ "docbook+xml": "dbk",
6315
+ "dssc+der": "dssc",
6316
+ "dssc+xml": "xdssc",
6317
+ "emma+xml": "emma",
6318
+ "epub+zip": "epub",
6319
+ "exi": "exi",
6320
+ "font-tdpfr": "pfr",
6321
+ "gml+xml": "gml",
6322
+ "gpx+xml": "gpx",
6323
+ "gxf": "gxf",
6324
+ "hyperstudio": "stk",
6325
+ "inkml+xml": ["ink", "inkml"],
6326
+ "ipfix": "ipfix",
6327
+ "json": "json",
6328
+ "jsonml+json": "jsonml",
6329
+ "lost+xml": "lostxml",
6330
+ "mads+xml": "mads",
6331
+ "marc": "mrc",
6332
+ "marcxml+xml": "mrcx",
6333
+ "mathml+xml": "mathml",
6334
+ "mbox": "mbox",
6335
+ "mediaservercontrol+xml": "mscml",
6336
+ "metalink+xml": "metalink",
6337
+ "metalink4+xml": "meta4",
6338
+ "mets+xml": "mets",
6339
+ "mods+xml": "mods",
6340
+ "mp21": ["m21", "mp21"],
6341
+ "mp4": "mp4s",
6342
+ "oebps-package+xml": "opf",
6343
+ "omdoc+xml": "omdoc",
6344
+ "onenote": ["onetoc", "onetoc2", "onetmp", "onepkg"],
6345
+ "oxps": "oxps",
6346
+ "patch-ops-error+xml": "xer",
6347
+ "pgp-encrypted": "pgp",
6348
+ "pkcs10": "p10",
6349
+ "pkcs7-mime": ["p7m", "p7c"],
6350
+ "pkcs7-signature": "p7s",
6351
+ "pkcs8": "p8",
6352
+ "pkix-attr-cert": "ac",
6353
+ "pkix-crl": "crl",
6354
+ "pkix-pkipath": "pkipath",
6355
+ "pkixcmp": "pki",
6356
+ "pls+xml": "pls",
6357
+ "prs.cww": "cww",
6358
+ "pskc+xml": "pskcxml",
6359
+ "reginfo+xml": "rif",
6360
+ "relax-ng-compact-syntax": "rnc",
6361
+ "resource-lists+xml": "rl",
6362
+ "resource-lists-diff+xml": "rld",
6363
+ "rls-services+xml": "rs",
6364
+ "rpki-ghostbusters": "gbr",
6365
+ "rpki-manifest": "mft",
6366
+ "rpki-roa": "roa",
6367
+ "rsd+xml": "rsd",
6368
+ "sbml+xml": "sbml",
6369
+ "scvp-cv-request": "scq",
6370
+ "scvp-cv-response": "scs",
6371
+ "scvp-vp-request": "spq",
6372
+ "scvp-vp-response": "spp",
6373
+ "sdp": "sdp",
6374
+ "set-payment-initiation": "setpay",
6375
+ "set-registration-initiation": "setreg",
6376
+ "shf+xml": "shf",
6377
+ "sparql-query": "rq",
6378
+ "sparql-results+xml": "srx",
6379
+ "srgs": "gram",
6380
+ "srgs+xml": "grxml",
6381
+ "sru+xml": "sru",
6382
+ "ssdl+xml": "ssdl",
6383
+ "ssml+xml": "ssml",
6384
+ "tei+xml": ["tei", "teicorpus"],
6385
+ "thraud+xml": "tfi",
6386
+ "timestamped-data": "tsd",
6387
+ "vnd.3gpp.pic-bw-large": "plb",
6388
+ "vnd.3gpp.pic-bw-small": "psb",
6389
+ "vnd.3gpp.pic-bw-var": "pvb",
6390
+ "vnd.3gpp2.tcap": "tcap",
6391
+ "vnd.3m.post-it-notes": "pwn",
6392
+ "vnd.accpac.simply.aso": "aso",
6393
+ "vnd.accpac.simply.imp": "imp",
6394
+ "vnd.acucobol": "acu",
6395
+ "vnd.acucorp": ["atc", "acutc"],
6396
+ "vnd.adobe.air-application-installer-package+zip": "air",
6397
+ "vnd.adobe.formscentral.fcdt": "fcdt",
6398
+ "vnd.adobe.fxp": ["fxp", "fxpl"],
6399
+ "vnd.adobe.xdp+xml": "xdp",
6400
+ "vnd.adobe.xfdf": "xfdf",
6401
+ "vnd.ahead.space": "ahead",
6402
+ "vnd.airzip.filesecure.azf": "azf",
6403
+ "vnd.airzip.filesecure.azs": "azs",
6404
+ "vnd.amazon.ebook": "azw",
6405
+ "vnd.americandynamics.acc": "acc",
6406
+ "vnd.amiga.ami": "ami",
6407
+ "vnd.anser-web-certificate-issue-initiation": "cii",
6408
+ "vnd.anser-web-funds-transfer-initiation": "fti",
6409
+ "vnd.antix.game-component": "atx",
6410
+ "vnd.apple.installer+xml": "mpkg",
6411
+ "vnd.apple.mpegurl": "m3u8",
6412
+ "vnd.aristanetworks.swi": "swi",
6413
+ "vnd.astraea-software.iota": "iota",
6414
+ "vnd.audiograph": "aep",
6415
+ "vnd.blueice.multipass": "mpm",
6416
+ "vnd.bmi": "bmi",
6417
+ "vnd.businessobjects": "rep",
6418
+ "vnd.chemdraw+xml": "cdxml",
6419
+ "vnd.chipnuts.karaoke-mmd": "mmd",
6420
+ "vnd.claymore": "cla",
6421
+ "vnd.cloanto.rp9": "rp9",
6422
+ "vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"],
6423
+ "vnd.cluetrust.cartomobile-config": "c11amc",
6424
+ "vnd.cluetrust.cartomobile-config-pkg": "c11amz",
6425
+ "vnd.commonspace": "csp",
6426
+ "vnd.contact.cmsg": "cdbcmsg",
6427
+ "vnd.cosmocaller": "cmc",
6428
+ "vnd.crick.clicker": "clkx",
6429
+ "vnd.crick.clicker.keyboard": "clkk",
6430
+ "vnd.crick.clicker.palette": "clkp",
6431
+ "vnd.crick.clicker.template": "clkt",
6432
+ "vnd.crick.clicker.wordbank": "clkw",
6433
+ "vnd.criticaltools.wbs+xml": "wbs",
6434
+ "vnd.ctc-posml": "pml",
6435
+ "vnd.cups-ppd": "ppd",
6436
+ "vnd.curl.car": "car",
6437
+ "vnd.curl.pcurl": "pcurl",
6438
+ "vnd.dart": "dart",
6439
+ "vnd.data-vision.rdz": "rdz",
6440
+ "vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"],
6441
+ "vnd.dece.ttml+xml": ["uvt", "uvvt"],
6442
+ "vnd.dece.unspecified": ["uvx", "uvvx"],
6443
+ "vnd.dece.zip": ["uvz", "uvvz"],
6444
+ "vnd.denovo.fcselayout-link": "fe_launch",
6445
+ "vnd.dna": "dna",
6446
+ "vnd.dolby.mlp": "mlp",
6447
+ "vnd.dpgraph": "dpg",
6448
+ "vnd.dreamfactory": "dfac",
6449
+ "vnd.ds-keypoint": "kpxx",
6450
+ "vnd.dvb.ait": "ait",
6451
+ "vnd.dvb.service": "svc",
6452
+ "vnd.dynageo": "geo",
6453
+ "vnd.ecowin.chart": "mag",
6454
+ "vnd.enliven": "nml",
6455
+ "vnd.epson.esf": "esf",
6456
+ "vnd.epson.msf": "msf",
6457
+ "vnd.epson.quickanime": "qam",
6458
+ "vnd.epson.salt": "slt",
6459
+ "vnd.epson.ssf": "ssf",
6460
+ "vnd.eszigno3+xml": ["es3", "et3"],
6461
+ "vnd.ezpix-album": "ez2",
6462
+ "vnd.ezpix-package": "ez3",
6463
+ "vnd.fdf": "fdf",
6464
+ "vnd.fdsn.mseed": "mseed",
6465
+ "vnd.fdsn.seed": ["seed", "dataless"],
6466
+ "vnd.flographit": "gph",
6467
+ "vnd.fluxtime.clip": "ftc",
6468
+ "vnd.framemaker": ["fm", "frame", "maker", "book"],
6469
+ "vnd.frogans.fnc": "fnc",
6470
+ "vnd.frogans.ltf": "ltf",
6471
+ "vnd.fsc.weblaunch": "fsc",
6472
+ "vnd.fujitsu.oasys": "oas",
6473
+ "vnd.fujitsu.oasys2": "oa2",
6474
+ "vnd.fujitsu.oasys3": "oa3",
6475
+ "vnd.fujitsu.oasysgp": "fg5",
6476
+ "vnd.fujitsu.oasysprs": "bh2",
6477
+ "vnd.fujixerox.ddd": "ddd",
6478
+ "vnd.fujixerox.docuworks": "xdw",
6479
+ "vnd.fujixerox.docuworks.binder": "xbd",
6480
+ "vnd.fuzzysheet": "fzs",
6481
+ "vnd.genomatix.tuxedo": "txd",
6482
+ "vnd.geogebra.file": "ggb",
6483
+ "vnd.geogebra.tool": "ggt",
6484
+ "vnd.geometry-explorer": ["gex", "gre"],
6485
+ "vnd.geonext": "gxt",
6486
+ "vnd.geoplan": "g2w",
6487
+ "vnd.geospace": "g3w",
6488
+ "vnd.gmx": "gmx",
6489
+ "vnd.grafeq": ["gqf", "gqs"],
6490
+ "vnd.groove-account": "gac",
6491
+ "vnd.groove-help": "ghf",
6492
+ "vnd.groove-identity-message": "gim",
6493
+ "vnd.groove-injector": "grv",
6494
+ "vnd.groove-tool-message": "gtm",
6495
+ "vnd.groove-tool-template": "tpl",
6496
+ "vnd.groove-vcard": "vcg",
6497
+ "vnd.hal+xml": "hal",
6498
+ "vnd.handheld-entertainment+xml": "zmm",
6499
+ "vnd.hbci": "hbci",
6500
+ "vnd.hhe.lesson-player": "les",
6501
+ "vnd.hp-hpgl": "hpgl",
6502
+ "vnd.hp-hpid": "hpid",
6503
+ "vnd.hp-hps": "hps",
6504
+ "vnd.hp-jlyt": "jlt",
6505
+ "vnd.hp-pcl": "pcl",
6506
+ "vnd.hp-pclxl": "pclxl",
6507
+ "vnd.hydrostatix.sof-data": "sfd-hdstx",
6508
+ "vnd.ibm.minipay": "mpy",
6509
+ "vnd.ibm.modcap": ["afp", "listafp", "list3820"],
6510
+ "vnd.ibm.rights-management": "irm",
6511
+ "vnd.ibm.secure-container": "sc",
6512
+ "vnd.iccprofile": ["icc", "icm"],
6513
+ "vnd.igloader": "igl",
6514
+ "vnd.immervision-ivp": "ivp",
6515
+ "vnd.immervision-ivu": "ivu",
6516
+ "vnd.insors.igm": "igm",
6517
+ "vnd.intercon.formnet": ["xpw", "xpx"],
6518
+ "vnd.intergeo": "i2g",
6519
+ "vnd.intu.qbo": "qbo",
6520
+ "vnd.intu.qfx": "qfx",
6521
+ "vnd.ipunplugged.rcprofile": "rcprofile",
6522
+ "vnd.irepository.package+xml": "irp",
6523
+ "vnd.is-xpr": "xpr",
6524
+ "vnd.isac.fcs": "fcs",
6525
+ "vnd.jam": "jam",
6526
+ "vnd.jcp.javame.midlet-rms": "rms",
6527
+ "vnd.jisp": "jisp",
6528
+ "vnd.joost.joda-archive": "joda",
6529
+ "vnd.kahootz": ["ktz", "ktr"],
6530
+ "vnd.kde.karbon": "karbon",
6531
+ "vnd.kde.kchart": "chrt",
6532
+ "vnd.kde.kformula": "kfo",
6533
+ "vnd.kde.kivio": "flw",
6534
+ "vnd.kde.kontour": "kon",
6535
+ "vnd.kde.kpresenter": ["kpr", "kpt"],
6536
+ "vnd.kde.kspread": "ksp",
6537
+ "vnd.kde.kword": ["kwd", "kwt"],
6538
+ "vnd.kenameaapp": "htke",
6539
+ "vnd.kidspiration": "kia",
6540
+ "vnd.kinar": ["kne", "knp"],
6541
+ "vnd.koan": ["skp", "skd", "skt", "skm"],
6542
+ "vnd.kodak-descriptor": "sse",
6543
+ "vnd.las.las+xml": "lasxml",
6544
+ "vnd.llamagraphics.life-balance.desktop": "lbd",
6545
+ "vnd.llamagraphics.life-balance.exchange+xml": "lbe",
6546
+ "vnd.lotus-1-2-3": "123",
6547
+ "vnd.lotus-approach": "apr",
6548
+ "vnd.lotus-freelance": "pre",
6549
+ "vnd.lotus-notes": "nsf",
6550
+ "vnd.lotus-organizer": "org",
6551
+ "vnd.lotus-screencam": "scm",
6552
+ "vnd.lotus-wordpro": "lwp",
6553
+ "vnd.macports.portpkg": "portpkg",
6554
+ "vnd.mcd": "mcd",
6555
+ "vnd.medcalcdata": "mc1",
6556
+ "vnd.mediastation.cdkey": "cdkey",
6557
+ "vnd.mfer": "mwf",
6558
+ "vnd.mfmp": "mfm",
6559
+ "vnd.micrografx.flo": "flo",
6560
+ "vnd.micrografx.igx": "igx",
6561
+ "vnd.mif": "mif",
6562
+ "vnd.mobius.daf": "daf",
6563
+ "vnd.mobius.dis": "dis",
6564
+ "vnd.mobius.mbk": "mbk",
6565
+ "vnd.mobius.mqy": "mqy",
6566
+ "vnd.mobius.msl": "msl",
6567
+ "vnd.mobius.plc": "plc",
6568
+ "vnd.mobius.txf": "txf",
6569
+ "vnd.mophun.application": "mpn",
6570
+ "vnd.mophun.certificate": "mpc",
6571
+ "vnd.ms-artgalry": "cil",
6572
+ "vnd.ms-cab-compressed": "cab",
6573
+ "vnd.ms-excel.addin.macroenabled.12": "xlam",
6574
+ "vnd.ms-excel.sheet.binary.macroenabled.12": "xlsb",
6575
+ "vnd.ms-excel.sheet.macroenabled.12": "xlsm",
6576
+ "vnd.ms-excel.template.macroenabled.12": "xltm",
6577
+ "vnd.ms-fontobject": "eot",
6578
+ "vnd.ms-htmlhelp": "chm",
6579
+ "vnd.ms-ims": "ims",
6580
+ "vnd.ms-lrm": "lrm",
6581
+ "vnd.ms-officetheme": "thmx",
6582
+ "vnd.ms-powerpoint.addin.macroenabled.12": "ppam",
6583
+ "vnd.ms-powerpoint.presentation.macroenabled.12": "pptm",
6584
+ "vnd.ms-powerpoint.slide.macroenabled.12": "sldm",
6585
+ "vnd.ms-powerpoint.slideshow.macroenabled.12": "ppsm",
6586
+ "vnd.ms-powerpoint.template.macroenabled.12": "potm",
6587
+ "vnd.ms-project": ["mpp", "mpt"],
6588
+ "vnd.ms-word.document.macroenabled.12": "docm",
6589
+ "vnd.ms-word.template.macroenabled.12": "dotm",
6590
+ "vnd.ms-works": ["wps", "wks", "wcm", "wdb"],
6591
+ "vnd.ms-wpl": "wpl",
6592
+ "vnd.ms-xpsdocument": "xps",
6593
+ "vnd.mseq": "mseq",
6594
+ "vnd.musician": "mus",
6595
+ "vnd.muvee.style": "msty",
6596
+ "vnd.mynfc": "taglet",
6597
+ "vnd.neurolanguage.nlu": "nlu",
6598
+ "vnd.nitf": ["ntf", "nitf"],
6599
+ "vnd.noblenet-directory": "nnd",
6600
+ "vnd.noblenet-sealer": "nns",
6601
+ "vnd.noblenet-web": "nnw",
6602
+ "vnd.nokia.n-gage.data": "ngdat",
6603
+ "vnd.nokia.n-gage.symbian.install": "n-gage",
6604
+ "vnd.nokia.radio-preset": "rpst",
6605
+ "vnd.nokia.radio-presets": "rpss",
6606
+ "vnd.novadigm.edm": "edm",
6607
+ "vnd.novadigm.edx": "edx",
6608
+ "vnd.novadigm.ext": "ext",
6609
+ "vnd.oasis.opendocument.chart-template": "otc",
6610
+ "vnd.oasis.opendocument.formula-template": "odft",
6611
+ "vnd.oasis.opendocument.image-template": "oti",
6612
+ "vnd.olpc-sugar": "xo",
6613
+ "vnd.oma.dd2+xml": "dd2",
6614
+ "vnd.openofficeorg.extension": "oxt",
6615
+ "vnd.openxmlformats-officedocument.presentationml.slide": "sldx",
6616
+ "vnd.osgeo.mapguide.package": "mgp",
6617
+ "vnd.osgi.dp": "dp",
6618
+ "vnd.osgi.subsystem": "esa",
6619
+ "vnd.palm": ["pdb", "pqa", "oprc"],
6620
+ "vnd.pawaafile": "paw",
6621
+ "vnd.pg.format": "str",
6622
+ "vnd.pg.osasli": "ei6",
6623
+ "vnd.picsel": "efif",
6624
+ "vnd.pmi.widget": "wg",
6625
+ "vnd.pocketlearn": "plf",
6626
+ "vnd.powerbuilder6": "pbd",
6627
+ "vnd.previewsystems.box": "box",
6628
+ "vnd.proteus.magazine": "mgz",
6629
+ "vnd.publishare-delta-tree": "qps",
6630
+ "vnd.pvi.ptid1": "ptid",
6631
+ "vnd.quark.quarkxpress": ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"],
6632
+ "vnd.realvnc.bed": "bed",
6633
+ "vnd.recordare.musicxml": "mxl",
6634
+ "vnd.recordare.musicxml+xml": "musicxml",
6635
+ "vnd.rig.cryptonote": "cryptonote",
6636
+ "vnd.rn-realmedia": "rm",
6637
+ "vnd.rn-realmedia-vbr": "rmvb",
6638
+ "vnd.route66.link66+xml": "link66",
6639
+ "vnd.sailingtracker.track": "st",
6640
+ "vnd.seemail": "see",
6641
+ "vnd.sema": "sema",
6642
+ "vnd.semd": "semd",
6643
+ "vnd.semf": "semf",
6644
+ "vnd.shana.informed.formdata": "ifm",
6645
+ "vnd.shana.informed.formtemplate": "itp",
6646
+ "vnd.shana.informed.interchange": "iif",
6647
+ "vnd.shana.informed.package": "ipk",
6648
+ "vnd.simtech-mindmapper": ["twd", "twds"],
6649
+ "vnd.smart.teacher": "teacher",
6650
+ "vnd.solent.sdkm+xml": ["sdkm", "sdkd"],
6651
+ "vnd.spotfire.dxp": "dxp",
6652
+ "vnd.spotfire.sfs": "sfs",
6653
+ "vnd.stepmania.package": "smzip",
6654
+ "vnd.stepmania.stepchart": "sm",
6655
+ "vnd.sus-calendar": ["sus", "susp"],
6656
+ "vnd.svd": "svd",
6657
+ "vnd.syncml+xml": "xsm",
6658
+ "vnd.syncml.dm+wbxml": "bdm",
6659
+ "vnd.syncml.dm+xml": "xdm",
6660
+ "vnd.tao.intent-module-archive": "tao",
6661
+ "vnd.tcpdump.pcap": ["pcap", "cap", "dmp"],
6662
+ "vnd.tmobile-livetv": "tmo",
6663
+ "vnd.trid.tpt": "tpt",
6664
+ "vnd.triscape.mxs": "mxs",
6665
+ "vnd.trueapp": "tra",
6666
+ "vnd.ufdl": ["ufd", "ufdl"],
6667
+ "vnd.uiq.theme": "utz",
6668
+ "vnd.umajin": "umj",
6669
+ "vnd.unity": "unityweb",
6670
+ "vnd.uoml+xml": "uoml",
6671
+ "vnd.vcx": "vcx",
6672
+ "vnd.visionary": "vis",
6673
+ "vnd.vsf": "vsf",
6674
+ "vnd.webturbo": "wtb",
6675
+ "vnd.wolfram.player": "nbp",
6676
+ "vnd.wqd": "wqd",
6677
+ "vnd.wt.stf": "stf",
6678
+ "vnd.xara": "xar",
6679
+ "vnd.xfdl": "xfdl",
6680
+ "vnd.yamaha.hv-dic": "hvd",
6681
+ "vnd.yamaha.hv-script": "hvs",
6682
+ "vnd.yamaha.hv-voice": "hvp",
6683
+ "vnd.yamaha.openscoreformat": "osf",
6684
+ "vnd.yamaha.openscoreformat.osfpvg+xml": "osfpvg",
6685
+ "vnd.yamaha.smaf-audio": "saf",
6686
+ "vnd.yamaha.smaf-phrase": "spf",
6687
+ "vnd.yellowriver-custom-menu": "cmp",
6688
+ "vnd.zul": ["zir", "zirz"],
6689
+ "vnd.zzazz.deck+xml": "zaz",
6690
+ "voicexml+xml": "vxml",
6691
+ "widget": "wgt",
6692
+ "winhlp": "hlp",
6693
+ "wsdl+xml": "wsdl",
6694
+ "wspolicy+xml": "wspolicy",
6695
+ "x-ace-compressed": "ace",
6696
+ "x-authorware-bin": ["aab", "x32", "u32", "vox"],
6697
+ "x-authorware-map": "aam",
6698
+ "x-authorware-seg": "aas",
6699
+ "x-blorb": ["blb", "blorb"],
6700
+ "x-bzip": "bz",
6701
+ "x-bzip2": ["bz2", "boz"],
6702
+ "x-cfs-compressed": "cfs",
6703
+ "x-chat": "chat",
6704
+ "x-conference": "nsc",
6705
+ "x-dgc-compressed": "dgc",
6706
+ "x-dtbncx+xml": "ncx",
6707
+ "x-dtbook+xml": "dtb",
6708
+ "x-dtbresource+xml": "res",
6709
+ "x-eva": "eva",
6710
+ "x-font-bdf": "bdf",
6711
+ "x-font-ghostscript": "gsf",
6712
+ "x-font-linux-psf": "psf",
6713
+ "x-font-otf": "otf",
6714
+ "x-font-pcf": "pcf",
6715
+ "x-font-snf": "snf",
6716
+ "x-font-ttf": ["ttf", "ttc"],
6717
+ "x-font-type1": ["pfa", "pfb", "pfm", "afm"],
6718
+ "x-font-woff": "woff",
6719
+ "x-freearc": "arc",
6720
+ "x-gca-compressed": "gca",
6721
+ "x-glulx": "ulx",
6722
+ "x-gramps-xml": "gramps",
6723
+ "x-install-instructions": "install",
6724
+ "x-lzh-compressed": ["lzh", "lha"],
6725
+ "x-mie": "mie",
6726
+ "x-mobipocket-ebook": ["prc", "mobi"],
6727
+ "x-ms-application": "application",
6728
+ "x-ms-shortcut": "lnk",
6729
+ "x-ms-xbap": "xbap",
6730
+ "x-msbinder": "obd",
6731
+ "x-mscardfile": "crd",
6732
+ "x-msclip": "clp",
6733
+ "x-msdownload": ["exe", "dll", "com", "bat", "msi"],
6734
+ "x-msmediaview": ["mvb", "m13", "m14"],
6735
+ "x-msmetafile": ["wmf", "wmz", "emf", "emz"],
6736
+ "x-msmoney": "mny",
6737
+ "x-mspublisher": "pub",
6738
+ "x-msschedule": "scd",
6739
+ "x-msterminal": "trm",
6740
+ "x-mswrite": "wri",
6741
+ "x-nzb": "nzb",
6742
+ "x-pkcs12": ["p12", "pfx"],
6743
+ "x-pkcs7-certificates": ["p7b", "spc"],
6744
+ "x-research-info-systems": "ris",
6745
+ "x-silverlight-app": "xap",
6746
+ "x-sql": "sql",
6747
+ "x-stuffitx": "sitx",
6748
+ "x-subrip": "srt",
6749
+ "x-t3vm-image": "t3",
6750
+ "x-tads": "gam",
6751
+ "x-tex": "tex",
6752
+ "x-tex-tfm": "tfm",
6753
+ "x-tgif": "obj",
6754
+ "x-xliff+xml": "xlf",
6755
+ "x-xz": "xz",
6756
+ "x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"],
6757
+ "xaml+xml": "xaml",
6758
+ "xcap-diff+xml": "xdf",
6759
+ "xenc+xml": "xenc",
6760
+ "xml-dtd": "dtd",
6761
+ "xop+xml": "xop",
6762
+ "xproc+xml": "xpl",
6763
+ "xslt+xml": "xslt",
6764
+ "xv+xml": ["mxml", "xhvml", "xvml", "xvm"],
6765
+ "yang": "yang",
6766
+ "yin+xml": "yin",
6767
+ "envoy": "evy",
6768
+ "fractals": "fif",
6769
+ "internet-property-stream": "acx",
6770
+ "olescript": "axs",
6771
+ "vnd.ms-outlook": "msg",
6772
+ "vnd.ms-pkicertstore": "sst",
6773
+ "x-compress": "z",
6774
+ "x-compressed": "tgz",
6775
+ "x-gzip": "gz",
6776
+ "x-perfmon": ["pma", "pmc", "pml", "pmr", "pmw"],
6777
+ "x-pkcs7-mime": ["p7c", "p7m"],
6778
+ "ynd.ms-pkipko": "pko"
6779
+ },
6780
+ "audio": {
6781
+ "amr": "amr",
6782
+ "amr-wb": "awb",
6783
+ "annodex": "axa",
6784
+ "basic": ["au", "snd"],
6785
+ "flac": "flac",
6786
+ "midi": ["mid", "midi", "kar", "rmi"],
6787
+ "mpeg": ["mpga", "mpega", "mp2", "mp3", "m4a", "mp2a", "m2a", "m3a"],
6788
+ "mpegurl": "m3u",
6789
+ "ogg": ["oga", "ogg", "spx"],
6790
+ "prs.sid": "sid",
6791
+ "x-aiff": ["aif", "aiff", "aifc"],
6792
+ "x-gsm": "gsm",
6793
+ "x-ms-wma": "wma",
6794
+ "x-ms-wax": "wax",
6795
+ "x-pn-realaudio": "ram",
6796
+ "x-realaudio": "ra",
6797
+ "x-sd2": "sd2",
6798
+ "x-wav": "wav",
6799
+ "adpcm": "adp",
6800
+ "mp4": "mp4a",
6801
+ "s3m": "s3m",
6802
+ "silk": "sil",
6803
+ "vnd.dece.audio": ["uva", "uvva"],
6804
+ "vnd.digital-winds": "eol",
6805
+ "vnd.dra": "dra",
6806
+ "vnd.dts": "dts",
6807
+ "vnd.dts.hd": "dtshd",
6808
+ "vnd.lucent.voice": "lvp",
6809
+ "vnd.ms-playready.media.pya": "pya",
6810
+ "vnd.nuera.ecelp4800": "ecelp4800",
6811
+ "vnd.nuera.ecelp7470": "ecelp7470",
6812
+ "vnd.nuera.ecelp9600": "ecelp9600",
6813
+ "vnd.rip": "rip",
6814
+ "webm": "weba",
6815
+ "x-aac": "aac",
6816
+ "x-caf": "caf",
6817
+ "x-matroska": "mka",
6818
+ "x-pn-realaudio-plugin": "rmp",
6819
+ "xm": "xm",
6820
+ "mid": ["mid", "rmi"]
6821
+ },
6822
+ "chemical": {
6823
+ "x-alchemy": "alc",
6824
+ "x-cache": ["cac", "cache"],
6825
+ "x-cache-csf": "csf",
6826
+ "x-cactvs-binary": ["cbin", "cascii", "ctab"],
6827
+ "x-cdx": "cdx",
6828
+ "x-chem3d": "c3d",
6829
+ "x-cif": "cif",
6830
+ "x-cmdf": "cmdf",
6831
+ "x-cml": "cml",
6832
+ "x-compass": "cpa",
6833
+ "x-crossfire": "bsd",
6834
+ "x-csml": ["csml", "csm"],
6835
+ "x-ctx": "ctx",
6836
+ "x-cxf": ["cxf", "cef"],
6837
+ "x-embl-dl-nucleotide": ["emb", "embl"],
6838
+ "x-gamess-input": ["inp", "gam", "gamin"],
6839
+ "x-gaussian-checkpoint": ["fch", "fchk"],
6840
+ "x-gaussian-cube": "cub",
6841
+ "x-gaussian-input": ["gau", "gjc", "gjf"],
6842
+ "x-gaussian-log": "gal",
6843
+ "x-gcg8-sequence": "gcg",
6844
+ "x-genbank": "gen",
6845
+ "x-hin": "hin",
6846
+ "x-isostar": ["istr", "ist"],
6847
+ "x-jcamp-dx": ["jdx", "dx"],
6848
+ "x-kinemage": "kin",
6849
+ "x-macmolecule": "mcm",
6850
+ "x-macromodel-input": ["mmd", "mmod"],
6851
+ "x-mdl-molfile": "mol",
6852
+ "x-mdl-rdfile": "rd",
6853
+ "x-mdl-rxnfile": "rxn",
6854
+ "x-mdl-sdfile": ["sd", "sdf"],
6855
+ "x-mdl-tgf": "tgf",
6856
+ "x-mmcif": "mcif",
6857
+ "x-mol2": "mol2",
6858
+ "x-molconn-Z": "b",
6859
+ "x-mopac-graph": "gpt",
6860
+ "x-mopac-input": ["mop", "mopcrt", "mpc", "zmt"],
6861
+ "x-mopac-out": "moo",
6862
+ "x-ncbi-asn1": "asn",
6863
+ "x-ncbi-asn1-ascii": ["prt", "ent"],
6864
+ "x-ncbi-asn1-binary": ["val", "aso"],
6865
+ "x-pdb": ["pdb", "ent"],
6866
+ "x-rosdal": "ros",
6867
+ "x-swissprot": "sw",
6868
+ "x-vamas-iso14976": "vms",
6869
+ "x-vmd": "vmd",
6870
+ "x-xtel": "xtel",
6871
+ "x-xyz": "xyz"
6872
+ },
6873
+ "image": {
6874
+ "gif": "gif",
6875
+ "ief": "ief",
6876
+ "jpeg": ["jpeg", "jpg", "jpe"],
6877
+ "pcx": "pcx",
6878
+ "png": "png",
6879
+ "svg+xml": ["svg", "svgz"],
6880
+ "tiff": ["tiff", "tif"],
6881
+ "vnd.djvu": ["djvu", "djv"],
6882
+ "vnd.wap.wbmp": "wbmp",
6883
+ "x-canon-cr2": "cr2",
6884
+ "x-canon-crw": "crw",
6885
+ "x-cmu-raster": "ras",
6886
+ "x-coreldraw": "cdr",
6887
+ "x-coreldrawpattern": "pat",
6888
+ "x-coreldrawtemplate": "cdt",
6889
+ "x-corelphotopaint": "cpt",
6890
+ "x-epson-erf": "erf",
6891
+ "x-icon": "ico",
6892
+ "x-jg": "art",
6893
+ "x-jng": "jng",
6894
+ "x-nikon-nef": "nef",
6895
+ "x-olympus-orf": "orf",
6896
+ "x-photoshop": "psd",
6897
+ "x-portable-anymap": "pnm",
6898
+ "x-portable-bitmap": "pbm",
6899
+ "x-portable-graymap": "pgm",
6900
+ "x-portable-pixmap": "ppm",
6901
+ "x-rgb": "rgb",
6902
+ "x-xbitmap": "xbm",
6903
+ "x-xpixmap": "xpm",
6904
+ "x-xwindowdump": "xwd",
6905
+ "bmp": "bmp",
6906
+ "cgm": "cgm",
6907
+ "g3fax": "g3",
6908
+ "ktx": "ktx",
6909
+ "prs.btif": "btif",
6910
+ "sgi": "sgi",
6911
+ "vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"],
6912
+ "vnd.dwg": "dwg",
6913
+ "vnd.dxf": "dxf",
6914
+ "vnd.fastbidsheet": "fbs",
6915
+ "vnd.fpx": "fpx",
6916
+ "vnd.fst": "fst",
6917
+ "vnd.fujixerox.edmics-mmr": "mmr",
6918
+ "vnd.fujixerox.edmics-rlc": "rlc",
6919
+ "vnd.ms-modi": "mdi",
6920
+ "vnd.ms-photo": "wdp",
6921
+ "vnd.net-fpx": "npx",
6922
+ "vnd.xiff": "xif",
6923
+ "webp": "webp",
6924
+ "x-3ds": "3ds",
6925
+ "x-cmx": "cmx",
6926
+ "x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"],
6927
+ "x-pict": ["pic", "pct"],
6928
+ "x-tga": "tga",
6929
+ "cis-cod": "cod",
6930
+ "pipeg": "jfif"
6931
+ },
6932
+ "message": {
6933
+ "rfc822": ["eml", "mime", "mht", "mhtml", "nws"]
6934
+ },
6935
+ "model": {
6936
+ "iges": ["igs", "iges"],
6937
+ "mesh": ["msh", "mesh", "silo"],
6938
+ "vrml": ["wrl", "vrml"],
6939
+ "x3d+vrml": ["x3dv", "x3dvz"],
6940
+ "x3d+xml": ["x3d", "x3dz"],
6941
+ "x3d+binary": ["x3db", "x3dbz"],
6942
+ "vnd.collada+xml": "dae",
6943
+ "vnd.dwf": "dwf",
6944
+ "vnd.gdl": "gdl",
6945
+ "vnd.gtw": "gtw",
6946
+ "vnd.mts": "mts",
6947
+ "vnd.vtu": "vtu"
6948
+ },
6949
+ "text": {
6950
+ "cache-manifest": ["manifest", "appcache"],
6951
+ "calendar": ["ics", "icz", "ifb"],
6952
+ "css": "css",
6953
+ "csv": "csv",
6954
+ "h323": "323",
6955
+ "html": ["html", "htm", "shtml", "stm"],
6956
+ "iuls": "uls",
6957
+ "mathml": "mml",
6958
+ "plain": ["txt", "text", "brf", "conf", "def", "list", "log", "in", "bas"],
6959
+ "richtext": "rtx",
6960
+ "scriptlet": ["sct", "wsc"],
6961
+ "texmacs": ["tm", "ts"],
6962
+ "tab-separated-values": "tsv",
6963
+ "vnd.sun.j2me.app-descriptor": "jad",
6964
+ "vnd.wap.wml": "wml",
6965
+ "vnd.wap.wmlscript": "wmls",
6966
+ "x-bibtex": "bib",
6967
+ "x-boo": "boo",
6968
+ "x-c++hdr": ["h++", "hpp", "hxx", "hh"],
6969
+ "x-c++src": ["c++", "cpp", "cxx", "cc"],
6970
+ "x-component": "htc",
6971
+ "x-dsrc": "d",
6972
+ "x-diff": ["diff", "patch"],
6973
+ "x-haskell": "hs",
6974
+ "x-java": "java",
6975
+ "x-literate-haskell": "lhs",
6976
+ "x-moc": "moc",
6977
+ "x-pascal": ["p", "pas"],
6978
+ "x-pcs-gcd": "gcd",
6979
+ "x-perl": ["pl", "pm"],
6980
+ "x-python": "py",
6981
+ "x-scala": "scala",
6982
+ "x-setext": "etx",
6983
+ "x-tcl": ["tcl", "tk"],
6984
+ "x-tex": ["tex", "ltx", "sty", "cls"],
6985
+ "x-vcalendar": "vcs",
6986
+ "x-vcard": "vcf",
6987
+ "n3": "n3",
6988
+ "prs.lines.tag": "dsc",
6989
+ "sgml": ["sgml", "sgm"],
6990
+ "troff": ["t", "tr", "roff", "man", "me", "ms"],
6991
+ "turtle": "ttl",
6992
+ "uri-list": ["uri", "uris", "urls"],
6993
+ "vcard": "vcard",
6994
+ "vnd.curl": "curl",
6995
+ "vnd.curl.dcurl": "dcurl",
6996
+ "vnd.curl.scurl": "scurl",
6997
+ "vnd.curl.mcurl": "mcurl",
6998
+ "vnd.dvb.subtitle": "sub",
6999
+ "vnd.fly": "fly",
7000
+ "vnd.fmi.flexstor": "flx",
7001
+ "vnd.graphviz": "gv",
7002
+ "vnd.in3d.3dml": "3dml",
7003
+ "vnd.in3d.spot": "spot",
7004
+ "x-asm": ["s", "asm"],
7005
+ "x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"],
7006
+ "x-fortran": ["f", "for", "f77", "f90"],
7007
+ "x-opml": "opml",
7008
+ "x-nfo": "nfo",
7009
+ "x-sfv": "sfv",
7010
+ "x-uuencode": "uu",
7011
+ "webviewhtml": "htt"
7012
+ },
7013
+ "video": {
7014
+ "avif": ".avif",
7015
+ "3gpp": "3gp",
7016
+ "annodex": "axv",
7017
+ "dl": "dl",
7018
+ "dv": ["dif", "dv"],
7019
+ "fli": "fli",
7020
+ "gl": "gl",
7021
+ "mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v", "mp2", "mpa", "mpv2"],
7022
+ "mp4": ["mp4", "mp4v", "mpg4"],
7023
+ "quicktime": ["qt", "mov"],
7024
+ "ogg": "ogv",
7025
+ "vnd.mpegurl": ["mxu", "m4u"],
7026
+ "x-flv": "flv",
7027
+ "x-la-asf": ["lsf", "lsx"],
7028
+ "x-mng": "mng",
7029
+ "x-ms-asf": ["asf", "asx", "asr"],
7030
+ "x-ms-wm": "wm",
7031
+ "x-ms-wmv": "wmv",
7032
+ "x-ms-wmx": "wmx",
7033
+ "x-ms-wvx": "wvx",
7034
+ "x-msvideo": "avi",
7035
+ "x-sgi-movie": "movie",
7036
+ "x-matroska": ["mpv", "mkv", "mk3d", "mks"],
7037
+ "3gpp2": "3g2",
7038
+ "h261": "h261",
7039
+ "h263": "h263",
7040
+ "h264": "h264",
7041
+ "jpeg": "jpgv",
7042
+ "jpm": ["jpm", "jpgm"],
7043
+ "mj2": ["mj2", "mjp2"],
7044
+ "vnd.dece.hd": ["uvh", "uvvh"],
7045
+ "vnd.dece.mobile": ["uvm", "uvvm"],
7046
+ "vnd.dece.pd": ["uvp", "uvvp"],
7047
+ "vnd.dece.sd": ["uvs", "uvvs"],
7048
+ "vnd.dece.video": ["uvv", "uvvv"],
7049
+ "vnd.dvb.file": "dvb",
7050
+ "vnd.fvt": "fvt",
7051
+ "vnd.ms-playready.media.pyv": "pyv",
7052
+ "vnd.uvvu.mp4": ["uvu", "uvvu"],
7053
+ "vnd.vivo": "viv",
7054
+ "webm": "webm",
7055
+ "x-f4v": "f4v",
7056
+ "x-m4v": "m4v",
7057
+ "x-ms-vob": "vob",
7058
+ "x-smv": "smv"
7059
+ },
7060
+ "x-conference": {
7061
+ "x-cooltalk": "ice"
7062
+ },
7063
+ "x-world": {
7064
+ "x-vrml": ["vrm", "vrml", "wrl", "flr", "wrz", "xaf", "xof"]
6911
7065
  }
6912
- }
6913
-
6914
- class InflateStream extends TransformStream {
7066
+ };
6915
7067
 
6916
- constructor(codecConstructor, options, { chunkSize }, ...strategies) {
6917
- super({}, ...strategies);
6918
- const { zipCrypto, encrypted, password, passwordVerification, signed, encryptionStrength, compressed, useCompressionStream } = options;
6919
- const stream = this;
6920
- let crc32Stream, decryptionStream;
6921
- let readable = filterEmptyChunks(super.readable);
6922
- if (encrypted) {
6923
- if (zipCrypto) {
6924
- readable = readable.pipeThrough(new ZipCryptoDecryptionStream(password, passwordVerification));
6925
- } else {
6926
- decryptionStream = new AESDecryptionStream(password, signed, encryptionStrength);
6927
- readable = readable.pipeThrough(decryptionStream);
6928
- }
6929
- }
6930
- if (compressed) {
6931
- if ((useCompressionStream !== undefined && !useCompressionStream) || (DECOMPRESSION_STREAM_API_SUPPORTED && !INFLATE_RAW_SUPPORTED)) {
6932
- readable = pipeCodecStream(codecConstructor, readable, { chunkSize });
6933
- } else {
6934
- try {
6935
- readable = readable.pipeThrough(new DecompressionStream(COMPRESSION_FORMAT));
6936
- } catch (_error) {
6937
- INFLATE_RAW_SUPPORTED = false;
6938
- readable = pipeCodecStream(codecConstructor, readable, { chunkSize });
6939
- }
6940
- }
6941
- }
6942
- if ((!encrypted || zipCrypto) && signed) {
6943
- [readable, crc32Stream] = readable.tee();
6944
- crc32Stream = crc32Stream.pipeThrough(new Crc32Stream());
6945
- }
6946
- setReadable(stream, readable, async () => {
6947
- if (encrypted && !zipCrypto) {
6948
- if (!decryptionStream.valid) {
6949
- throw new Error(ERR_INVALID_SIGNATURE);
6950
- }
6951
- }
6952
- if ((!encrypted || zipCrypto) && signed) {
6953
- const signature = await crc32Stream.getReader().read();
6954
- const dataViewSignature = new DataView(signature.value.buffer);
6955
- if (options.signature != dataViewSignature.getUint32(0, false)) {
6956
- throw new Error(ERR_INVALID_SIGNATURE);
7068
+ const mimeTypes = (() => {
7069
+ const mimeTypes = {};
7070
+ for (const type in table) {
7071
+ // eslint-disable-next-line no-prototype-builtins
7072
+ if (table.hasOwnProperty(type)) {
7073
+ for (const subtype in table[type]) {
7074
+ // eslint-disable-next-line no-prototype-builtins
7075
+ if (table[type].hasOwnProperty(subtype)) {
7076
+ const value = table[type][subtype];
7077
+ if (typeof value == "string") {
7078
+ mimeTypes[value] = type + "/" + subtype;
7079
+ } else {
7080
+ for (let indexMimeType = 0; indexMimeType < value.length; indexMimeType++) {
7081
+ mimeTypes[value[indexMimeType]] = type + "/" + subtype;
7082
+ }
7083
+ }
6957
7084
  }
6958
7085
  }
6959
- });
6960
- }
6961
- }
6962
-
6963
- function pipeCodecStream(codecConstructor, readable, options) {
6964
- return readable.pipeThrough(new CodecStream(codecConstructor, options));
6965
- }
6966
-
6967
- function filterEmptyChunks(readable) {
6968
- return readable.pipeThrough(new TransformStream({
6969
- transform(chunk, controller) {
6970
- if (chunk && chunk.length) {
6971
- controller.enqueue(chunk);
6972
- }
6973
- }
6974
- }));
6975
- }
6976
-
6977
- function setReadable(stream, readable, flush) {
6978
- readable = readable.pipeThrough(new TransformStream({ flush }));
6979
- Object.defineProperty(stream, "readable", {
6980
- get() {
6981
- return readable;
6982
- }
6983
- });
6984
- }
6985
-
6986
- /*
6987
- Copyright (c) 2022 Gildas Lormeau. All rights reserved.
6988
-
6989
- Redistribution and use in source and binary forms, with or without
6990
- modification, are permitted provided that the following conditions are met:
6991
-
6992
- 1. Redistributions of source code must retain the above copyright notice,
6993
- this list of conditions and the following disclaimer.
6994
-
6995
- 2. Redistributions in binary form must reproduce the above copyright
6996
- notice, this list of conditions and the following disclaimer in
6997
- the documentation and/or other materials provided with the distribution.
6998
-
6999
- 3. The names of the authors may not be used to endorse or promote products
7000
- derived from this software without specific prior written permission.
7001
-
7002
- THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
7003
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
7004
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
7005
- INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
7006
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
7007
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
7008
- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
7009
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
7010
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
7011
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7012
- */
7013
-
7014
- const CODEC_DEFLATE = "deflate";
7015
- const CODEC_INFLATE = "inflate";
7016
- const MESSAGE_EVENT_TYPE = "message";
7017
- const MESSAGE_START = "start";
7018
- const MESSAGE_PULL = "pull";
7019
- const MESSAGE_DATA = "data";
7020
- const MESSAGE_ACK_DATA = "ack";
7021
- const MESSAGE_CLOSE = "close";
7022
-
7023
- class Codec {
7024
-
7025
- constructor(CodecConstructor, readable, writable, options, config) {
7026
- const { codecType } = options;
7027
- let StreamConstructor;
7028
- if (codecType.startsWith(CODEC_DEFLATE)) {
7029
- StreamConstructor = DeflateStream;
7030
- } else if (codecType.startsWith(CODEC_INFLATE)) {
7031
- StreamConstructor = InflateStream;
7032
7086
  }
7033
- Object.assign(this, {
7034
- StreamConstructor,
7035
- CodecConstructor,
7036
- readable,
7037
- writable,
7038
- options,
7039
- config
7040
- });
7041
7087
  }
7088
+ return mimeTypes;
7089
+ })();
7042
7090
 
7043
- async run() {
7044
- const {
7045
- StreamConstructor,
7046
- CodecConstructor,
7047
- readable,
7048
- writable,
7049
- options,
7050
- config
7051
- } = this;
7052
- const stream = new StreamConstructor(CodecConstructor, options, config);
7053
- let size = 0;
7054
- await readable
7055
- .pipeThrough(stream)
7056
- .pipeThrough(new TransformStream({
7057
- transform(chunk, controller) {
7058
- if (chunk && chunk.length) {
7059
- size += chunk.length;
7060
- controller.enqueue(chunk);
7061
- }
7062
- }
7063
- }))
7064
- .pipeTo(writable, { preventClose: true, preventAbort: true });
7065
- const { signature } = stream;
7066
- return { size, signature };
7067
- }
7091
+ function getMimeType(filename) {
7092
+ return filename && mimeTypes[filename.split(".").pop().toLowerCase()] || getMimeType$1();
7068
7093
  }
7069
7094
 
7070
7095
  /*
@@ -7103,10 +7128,9 @@
7103
7128
 
7104
7129
  constructor(workerData, stream, workerOptions, onTaskFinished) {
7105
7130
  const { readable, writable } = stream;
7106
- const { options, config, streamOptions, useWebWorkers, transferStreams, scripts, codecConstructor } = workerOptions;
7131
+ const { options, config, streamOptions, useWebWorkers, transferStreams, scripts } = workerOptions;
7107
7132
  Object.assign(workerData, {
7108
7133
  busy: true,
7109
- codecConstructor,
7110
7134
  readable,
7111
7135
  writable,
7112
7136
  options: Object.assign({}, options),
@@ -7159,7 +7183,7 @@
7159
7183
  }
7160
7184
 
7161
7185
  function createWorkerInterface(workerData, config) {
7162
- const interfaceCodec = new Codec(workerData.codecConstructor, workerData.readable, workerData.writable, workerData.options, config);
7186
+ const interfaceCodec = new Codec(workerData.readable, workerData.writable, workerData.options, config);
7163
7187
  const { onTaskFinished } = workerData;
7164
7188
  const codec = {
7165
7189
  async run() {
@@ -7360,7 +7384,7 @@
7360
7384
  const streamCopy = !compressed && !signed && !encrypted && !workerOptions.transferStreams;
7361
7385
  workerOptions.useWebWorkers = !streamCopy && (useWebWorkers || (useWebWorkers === undefined && config.useWebWorkers));
7362
7386
  workerOptions.scripts = workerOptions.useWebWorkers && workerScripts ? workerScripts[codecType] : [];
7363
- options.useCompressionStream = useCompressionStream === undefined ? config.useCompressionStream : useCompressionStream;
7387
+ options.useCompressionStream = useCompressionStream || (useCompressionStream === undefined && config.useCompressionStream);
7364
7388
  let worker;
7365
7389
  if (pool.length < config.maxWorkers) {
7366
7390
  const workerData = { indexWorker };
@@ -7412,7 +7436,7 @@
7412
7436
  });
7413
7437
  }
7414
7438
 
7415
- function t(t){const e=()=>URL.createObjectURL(new Blob(['const{Array:t,Object:e,Math:n,Error:r,Uint8Array:i,Uint16Array:s,Uint32Array:o,Int32Array:c,DataView:f,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 k{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 g extends h{constructor(){const t=new k;super({transform(e){t.append(e)},flush(e){const n=new i(4);new f(n.buffer).setUint32(0,t.get()),e.enqueue(n)}})}}const v={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=v.i(n);return 32===r?t.concat(e):v.o(e,r,0|n,t.slice(0,t.length-1))},l(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+v.i(n)},u(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.h(e,t[r-1]&2147483648>>e-1,1)),t},h:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,i:t=>n.round(t/1099511627776)||32,o(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=v.i(i);return r.push(v.h(e+s&31,e+s>32?n:r.pop(),1)),r}},S={p:{m(t){const e=v.l(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},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.h(8*(3&n),r)),e}}},C={g:function(t){t?(this.v=t.v.slice(0),this.S=t.S.slice(0),this.C=t.C):this.reset()}};C.g.prototype={blockSize:512,reset(){const t=this;return t.v=this._.slice(0),t.S=[],t.C=0,t},update(t){const e=this;"string"==typeof t&&(t=S.I.k(t));const n=e.S=v.concat(e.S,t),i=e.C,s=e.C=i+v.l(t);if(s>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const c=new o(n);let f=0;for(let t=e.blockSize+i-(e.blockSize+i&e.blockSize-1);s>=t;t+=e.blockSize)e.A(c.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),e},V(){const t=this;let e=t.S;const r=t.v;e=v.concat(e,[v.h(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.A(e.splice(0,16));return t.reset(),r},_:[1732584193,4023233417,2562383102,271733878,3285377520],M:[1518500249,1859775393,2400959708,3395469782],B:(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,D:(t,e)=>e<<t|e>>>32-t,A(e){const r=this,i=r.v,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let o=i[0],c=i[1],f=i[2],l=i[3],a=i[4];for(let t=0;79>=t;t++){16>t||(s[t]=r.D(1,s[t-3]^s[t-8]^s[t-14]^s[t-16]));const e=r.D(5,o)+r.B(t,c,f,l)+a+s[t]+r.M[n.floor(t/20)]|0;a=l,l=f,f=r.D(30,c),c=o,o=e}i[0]=i[0]+o|0,i[1]=i[1]+c|0,i[2]=i[2]+f|0,i[3]=i[3]+l|0,i[4]=i[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 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}},_={importKey:t=>new _.T(S.p.k(t)),P(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,c,l,a,u;const w=new ArrayBuffer(s),h=new f(w);let d=0;const p=v;for(e=S.p.k(e),u=1;(s||1)>d;u++){for(o=c=t.encrypt(p.concat(e,[u])),l=1;n>l;l++)for(c=t.encrypt(c),a=0;a<c.length;a++)o[a]^=c[a];for(l=0;(s||1)>d&&l<o.length;l++)h.setInt32(d,o[l]),d+=4}return w.slice(0,i/8)},T:class{constructor(t){const e=this,n=e.R=C.g,r=[[],[]],i=n.prototype.blockSize/32;e.U=[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.U[0].update(r[0]),e.U[1].update(r[1]),e.W=new n(e.U[0])}reset(){const t=this;t.W=new t.R(t.U[0]),t.H=!1}update(t){this.H=!0,this.W.update(t)}digest(){const t=this,e=t.W.V(),n=new t.R(t.U[1]).update(e).V();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=void 0!==u&&"function"==typeof u.getRandomValues;function x(t){return I?u.getRandomValues(t):z.getRandomValues(t)}const A={name:"PBKDF2"},V=e.assign({hash:{name:"HMAC"}},A),M=e.assign({iterations:1e3,hash:{name:"SHA-1"}},A),B=["deriveBits"],D=[8,12,16],E=[16,24,32],T=[0,0,0,0],P=void 0!==u,R=P&&void 0!==u.subtle,U=P&&R&&"function"==typeof u.subtle.importKey,W=P&&R&&"function"==typeof u.subtle.deriveBits,H=S.p,K=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,c,f,l=1;if(4!==s&&6!==s&&8!==s)throw new r("invalid aes key size");for(e.M=[c=t.slice(0),f=[]],o=s;4*s+28>o;o++){let t=c[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))),c[o]=c[o-s]^t}for(let t=0;o;t++,o--){const e=c[3&t?o:o-4];f[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.N(t,0)}decrypt(t){return this.N(t,1)}L(){const t=this.K[0],e=this.K[1],n=t[4],r=e[4],i=[],s=[];let o,c,f,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^=c||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[f=i[c=i[a]]];let u=16843009*l^65537*f^257*c^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)}N(t,e){if(4!==t.length)throw new r("invalid aes block size");const n=this.M[e],i=n.length/4-2,s=[0,0,0,0],o=this.K[e],c=o[0],f=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=c[p>>>24]^f[b>>16&255]^l[y>>8&255]^a[255&m]^n[k],h=c[b>>>24]^f[y>>16&255]^l[m>>8&255]^a[255&p]^n[k+1],d=c[y>>>24]^f[m>>16&255]^l[p>>8&255]^a[255&b]^n[k+2],m=c[m>>>24]^f[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}},L=class{constructor(t,e){this.j=t,this.F=e,this.O=e}reset(){this.O=this.F}update(t){return this.q(this.j,t,this.O)}G(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}J(t){0===(t[0]=this.G(t[0]))&&(t[1]=this.G(t[1]))}q(t,e,n){let r;if(!(r=e.length))return[];const i=v.l(e);for(let i=0;r>i;i+=4){this.J(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 v.u(e,i)}},N=_.T;class j extends h{constructor(n,s,o){let c;super({start(){e.assign(this,{ready:new l((t=>this.X=t)),password:n,signed:s,Y:o-1,pending:new i})},async transform(e,n){const s=this;if(s.password){const n=s.password;s.password=null;const i=J(e,0,D[s.Y]+2);await(async(t,e,n)=>{await q(t,n,J(e,0,D[t.Y]));const i=J(e,D[t.Y]),s=t.keys.passwordVerification;if(s[0]!=i[0]||s[1]!=i[1])throw new r("Invalid password")})(s,i,n),s.Z=new L(new K(s.keys.key),t.from(T)),s.$=new N(s.keys.tt),e=J(e,D[s.Y]+2),s.X()}else await s.ready;const o=new i(e.length-10-(e.length-10)%16);n.enqueue(O(s,e,o,0,10,!0))},async flush(t){const e=this;await e.ready;const n=e.pending,r=J(n,0,n.length-10),s=J(n,n.length-10);let o=new i;if(r.length){const t=X(H,r);e.$.update(t);const n=e.Z.update(t);o=Q(H,n)}if(c.valid=!0,e.signed){const t=J(Q(H,e.$.digest()),0,10);for(let e=0;10>e;e++)t[e]!=s[e]&&(c.valid=!1)}t.enqueue(o)}}),c=this}}class F extends h{constructor(n,r){let s;super({start(){e.assign(this,{ready:new l((t=>this.X=t)),password:n,Y:r-1,pending:new i})},async transform(e,n){const r=this;let s=new i;if(r.password){const e=r.password;r.password=null,s=await(async(t,e)=>{const n=x(new i(D[t.Y]));return await q(t,e,n),G(n,t.keys.passwordVerification)})(r,e),r.Z=new L(new K(r.keys.key),t.from(T)),r.$=new N(r.keys.tt),r.X()}else await r.ready;const o=new i(s.length+e.length-e.length%16);o.set(s,0),n.enqueue(O(r,e,o,s.length,0))},async flush(t){const e=this;await e.ready;let n=new i;if(e.pending.length){const t=e.Z.update(X(H,e.pending));e.$.update(t),n=Q(H,t)}s.signature=Q(H,e.$.digest()).slice(0,10),t.enqueue(G(n,s.signature))}}),s=this}}function O(t,e,n,r,s,o){const c=e.length-s;let f;for(t.pending.length&&(e=G(t.pending,e),n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new i(e)).set(n,0)}return t})(n,c-c%16)),f=0;c-16>=f;f+=16){const i=X(H,J(e,f,f+16));o&&t.$.update(i);const s=t.Z.update(i);o||t.$.update(s),n.set(Q(H,s),f+r)}return t.pending=J(e,f),n}async function q(t,n,r){const s=(t=>{if(void 0===a){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 a).encode(t)})(n),o=await((t,e,n,r,i)=>U?u.subtle.importKey("raw",e,n,!1,i):_.importKey(e))(0,s,V,0,B),c=await(async(t,e,n)=>W?await u.subtle.deriveBits(t,e,n):_.P(e,t.salt,M.iterations,n))(e.assign({salt:r},M),o,8*(2*E[t.Y]+2)),f=new i(c);t.keys={key:X(H,J(f,0,E[t.Y])),tt:X(H,J(f,E[t.Y],2*E[t.Y])),passwordVerification:J(f,2*E[t.Y])}}function G(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 J(t,e,n){return t.subarray(e,n)}function Q(t,e){return t.m(e)}function X(t,e){return t.k(e)}class Y extends h{constructor(t,n){let i;super({start(){e.assign(this,{password:t,passwordVerification:n}),et(this,t)},transform(t,e){const n=this;if(n.password){const e=$(n,t.subarray(0,12));if(n.password=null,e[11]!=n.passwordVerification)throw new r("Invalid password");t=t.subarray(12)}e.enqueue($(n,t))},flush(){i.valid=!0}}),i=this}}class Z extends h{constructor(t,n){super({start(){e.assign(this,{password:t,passwordVerification:n}),et(this,t)},transform(t,e){const n=this;let r,s;if(n.password){n.password=null;const e=x(new i(12));e[11]=n.passwordVerification,r=new i(t.length+e.length),r.set(tt(n,e),0),s=12}else r=new i(t.length),s=0;r.set(tt(n,t),s),e.enqueue(r)},flush(){}})}}function $(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=rt(t)^e[r],nt(t,n[r]);return n}function tt(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=rt(t)^e[r],nt(t,e[r]);return n}function et(t,e){t.keys=[305419896,591751049,878082192],t.et=new k(t.keys[0]),t.nt=new k(t.keys[2]);for(let n=0;n<e.length;n++)nt(t,e.charCodeAt(n))}function nt(t,e){t.et.append([e]),t.keys[0]=~t.et.get(),t.keys[1]=st(t.keys[1]+it(t.keys[0])),t.keys[1]=st(n.imul(t.keys[1],134775813)+1),t.nt.append([t.keys[1]>>>24]),t.keys[2]=~t.nt.get()}function rt(t){const e=2|t.keys[2];return it(n.imul(e,1^e)>>>8)}function it(t){return 255&t}function st(t){return 4294967295&t}class ot 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 ct=void 0===b,ft=void 0===y;let lt=!0,at=!0;class ut extends h{constructor(t,e,{chunkSize:n},...r){super({},...r);const{compressed:i,encrypted:s,useCompressionStream:o,password:c,passwordVerification:l,encryptionStrength:a,zipCrypto:u,signed:w,level:h}=e,d=this;let p,y,m=dt(super.readable);if(s&&!u||!w||([m,p]=m.tee(),p=p.pipeThrough(new g)),i)if(void 0!==o&&!o||ct&&!at)m=ht(t,m,{chunkSize:n,level:h});else try{m=m.pipeThrough(new b("deflate-raw"))}catch(e){at=!1,m=ht(t,m,{chunkSize:n,level:h})}s&&(u?m=m.pipeThrough(new Z(c,l)):(y=new F(c,a),m=m.pipeThrough(y))),pt(d,m,(async()=>{let t;s&&!u&&(t=y.signature),s&&!u||!w||(t=await p.getReader().read(),t=new f(t.value.buffer).getUint32(0)),d.signature=t}))}}class wt extends h{constructor(t,e,{chunkSize:n},...i){super({},...i);const{zipCrypto:s,encrypted:o,password:c,passwordVerification:l,signed:a,encryptionStrength:u,compressed:w,useCompressionStream:h}=e;let d,p,b=dt(super.readable);if(o&&(s?b=b.pipeThrough(new Y(c,l)):(p=new j(c,a,u),b=b.pipeThrough(p))),w)if(void 0!==h&&!h||ft&&!lt)b=ht(t,b,{chunkSize:n});else try{b=b.pipeThrough(new y("deflate-raw"))}catch(e){lt=!1,b=ht(t,b,{chunkSize:n})}o&&!s||!a||([b,d]=b.tee(),d=d.pipeThrough(new g)),pt(this,b,(async()=>{if(o&&!s&&!p.valid)throw new r("Invalid signature");if((!o||s)&&a){const t=await d.getReader().read(),n=new f(t.value.buffer);if(e.signature!=n.getUint32(0,!1))throw new r("Invalid signature")}}))}}function ht(t,e,n){return e.pipeThrough(new ot(t,n))}function dt(t){return t.pipeThrough(new h({transform(t,e){t&&t.length&&e.enqueue(t)}}))}function pt(t,n,r){n=n.pipeThrough(new h({flush:r})),e.defineProperty(t,"readable",{get:()=>n})}class bt{constructor(t,n,r,i,s){const{codecType:o}=i;let c;o.startsWith("deflate")?c=ut:o.startsWith("inflate")&&(c=wt),e.assign(this,{rt:c,it:t,readable:n,writable:r,options:i,config:s})}async st(){const{rt:t,it:e,readable:n,writable:r,options:i,config:s}=this,o=new t(e,i,s);let c=0;await n.pipeThrough(o).pipeThrough(new h({transform(t,e){t&&t.length&&(c+=t.length,e.enqueue(t))}})).pipeTo(r,{preventClose:!0,ot:!0});const{signature:f}=o;return{size:c,signature:f}}}const yt=new Map,mt=new Map;let kt,gt=0;async function vt(t){try{const{options:e,scripts:n,config:r}=t,{codecType:i}=e;let s;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),i.startsWith("deflate")?s=self.Deflate:i.startsWith("inflate")&&(s=self.Inflate);const o={highWaterMark:1,size:()=>r.chunkSize},c=t.readable||new d({async pull(t){let e=new l((t=>yt.set(gt,t)));St({type:"pull",messageId:gt}),gt=(gt+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:r}=await e;t.enqueue(n),r&&t.close()}},o),f=t.writable||new p({async write(t){let e;const n=new l((t=>e=t));mt.set(gt,e),St({type:"data",data:t,messageId:gt}),gt=(gt+1)%Number.MAX_SAFE_INTEGER,await n}},o);kt=new bt(s,c,f,e,r);const a=await kt.st();t.writable&&!e.preventClose&&await t.writable.close(),St({type:"close",result:a})}catch(t){Ct(t)}}function St(t){if(t.data){let{data:e}=t;if(e&&e.length)try{e=new i(e),t.data=e.buffer,w(t,[t.data])}catch(e){w(t)}else w(t)}else w(t)}function Ct(t){const{message:e,stack:n,code:r,name:i}=t;w({error:{message:e,stack:n,code:r,name:i}})}function zt(e){return _t(e.map((([e,n])=>new t(e).fill(n,0,e))))}function _t(e){return e.reduce(((e,n)=>e.concat(t.isArray(n)?_t(n):n)),[])}addEventListener("message",(async t=>{const e=t.data,{type:n,messageId:r,data:s,done:o}=e;try{if("start"==n&&vt(e),"data"==n){const t=yt.get(r);yt.delete(r),t({value:new i(s),done:o})}if("ack"==n){const t=mt.get(r);mt.delete(r),t()}}catch(t){Ct(t)}}));const It=[0,1,2,3].concat(...zt([[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 xt(){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.ft,s=t.ut.lt,o=t.ut.wt;let c,f,l,a=-1;for(r.ht=0,r.dt=573,c=0;o>c;c++)0!==i[2*c]?(r.bt[++r.ht]=a=c,r.yt[c]=0):i[2*c+1]=0;for(;2>r.ht;)l=r.bt[++r.ht]=2>a?++a:0,i[2*l]=1,r.yt[l]=0,r.kt--,s&&(r.gt-=s[2*l+1]);for(t.vt=a,c=n.floor(r.ht/2);c>=1;c--)r.St(i,c);l=o;do{c=r.bt[1],r.bt[1]=r.bt[r.ht--],r.St(i,1),f=r.bt[1],r.bt[--r.dt]=c,r.bt[--r.dt]=f,i[2*l]=i[2*c]+i[2*f],r.yt[l]=n.max(r.yt[c],r.yt[f])+1,i[2*c+1]=i[2*f+1]=l,r.bt[1]=l++,r.St(i,1)}while(r.ht>=2);r.bt[--r.dt]=r.bt[1],(e=>{const n=t.ft,r=t.ut.lt,i=t.ut.Ct,s=t.ut.zt,o=t.ut._t;let c,f,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,c=e.dt+1;573>c;c++)f=e.bt[c],a=n[2*n[2*f+1]+1]+1,a>o&&(a=o,h++),n[2*f+1]=a,f>t.vt||(e.It[a]++,u=0,s>f||(u=i[f-s]),w=n[2*f],e.kt+=w*(a+u),r&&(e.gt+=w*(r[2*f+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(f=e.It[a];0!==f;)l=e.bt[--c],l>t.vt||(n[2*l+1]!=a&&(e.kt+=(a-n[2*l+1])*n[2*l],n[2*l+1]=a),f--)}})(r),((t,n,r)=>{const i=[];let s,o,c,f=0;for(s=1;15>=s;s++)i[s]=f=f+r[s-1]<<1;for(o=0;n>=o;o++)c=t[2*o+1],0!==c&&(t[2*o]=e(i[c]++,c))})(i,t.vt,r.It)}}function At(t,e,n,r,i){const s=this;s.lt=t,s.Ct=e,s.zt=n,s.wt=r,s._t=i}xt.xt=[0,1,2,3,4,5,6,7].concat(...zt([[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]])),xt.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],xt.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],xt.Mt=t=>256>t?It[t]:It[256+(t>>>7)],xt.Bt=[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],xt.Dt=[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],xt.Et=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],xt.Tt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Vt=zt([[144,8],[112,9],[24,7],[8,8]]);At.Pt=_t([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,Vt[e]])));const Mt=zt([[30,5]]);function Bt(t,e,n,r,i){const s=this;s.Rt=t,s.Ut=e,s.Wt=n,s.Ht=r,s.Kt=i}At.Lt=_t([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,Mt[e]]))),At.Nt=new At(At.Pt,xt.Bt,257,286,15),At.jt=new At(At.Lt,xt.Dt,0,30,15),At.Ft=new At(null,xt.Et,0,19,7);const Dt=[new Bt(0,0,0,0,0),new Bt(4,4,8,4,1),new Bt(4,5,16,8,1),new Bt(4,6,32,32,1),new Bt(4,4,16,16,2),new Bt(8,16,32,32,2),new Bt(8,16,128,128,2),new Bt(8,32,128,256,2),new Bt(32,128,258,1024,2),new Bt(32,258,258,4096,2)],Et=["need dictionary","stream end","","","stream error","data error","","buffer error","",""];function Tt(t,e,n,r){const i=t[2*e],s=t[2*n];return s>i||i==s&&r[e]<=r[n]}function Pt(){const t=this;let e,r,o,c,f,l,a,u,w,h,d,p,b,y,m,k,g,v,S,C,z,_,I,x,A,V,M,B,D,E,T,P,R;const U=new xt,W=new xt,H=new xt;let K,L,N,j,F,O;function q(){let e;for(e=0;286>e;e++)T[2*e]=0;for(e=0;30>e;e++)P[2*e]=0;for(e=0;19>e;e++)R[2*e]=0;T[512]=1,t.kt=t.gt=0,L=N=0}function G(t,e){let n,r=-1,i=t[1],s=0,o=7,c=4;0===i&&(o=138,c=3),t[2*(e+1)+1]=65535;for(let f=0;e>=f;f++)n=i,i=t[2*(f+1)+1],++s<o&&n==i||(c>s?R[2*n]+=s:0!==n?(n!=r&&R[2*n]++,R[32]++):s>10?R[36]++:R[34]++,s=0,r=n,0===i?(o=138,c=3):n==i?(o=6,c=3):(o=7,c=4))}function J(e){t.Ot[t.pending++]=e}function Q(t){J(255&t),J(t>>>8&255)}function X(t,e){let n;const r=e;O>16-r?(n=t,F|=n<<O&65535,Q(F),F=n>>>16-O,O+=r-16):(F|=t<<O&65535,O+=r)}function Y(t,e){const n=2*t;X(65535&e[n],65535&e[n+1])}function Z(t,e){let n,r,i=-1,s=t[1],o=0,c=7,f=4;for(0===s&&(c=138,f=3),n=0;e>=n;n++)if(r=s,s=t[2*(n+1)+1],++o>=c||r!=s){if(f>o)do{Y(r,R)}while(0!=--o);else 0!==r?(r!=i&&(Y(r,R),o--),Y(16,R),X(o-3,2)):o>10?(Y(18,R),X(o-11,7)):(Y(17,R),X(o-3,3));o=0,i=r,0===s?(c=138,f=3):r==s?(c=6,f=3):(c=7,f=4)}}function $(){16==O?(Q(F),F=0,O=0):8>O||(J(255&F),F>>>=8,O-=8)}function tt(e,r){let i,s,o;if(t.qt[L]=e,t.Gt[L]=255&r,L++,0===e?T[2*r]++:(N++,e--,T[2*(xt.xt[r]+256+1)]++,P[2*xt.Mt(e)]++),0==(8191&L)&&M>2){for(i=8*L,s=z-g,o=0;30>o;o++)i+=P[2*o]*(5+xt.Dt[o]);if(i>>>=3,N<n.floor(L/2)&&i<n.floor(s/2))return!0}return L==K-1}function et(e,n){let r,i,s,o,c=0;if(0!==L)do{r=t.qt[c],i=t.Gt[c],c++,0===r?Y(i,e):(s=xt.xt[i],Y(s+256+1,e),o=xt.Bt[s],0!==o&&(i-=xt.At[s],X(i,o)),r--,s=xt.Mt(r),Y(s,n),o=xt.Dt[s],0!==o&&(r-=xt.Vt[s],X(r,o)))}while(L>c);Y(256,e),j=e[513]}function nt(){O>8?Q(F):O>0&&J(255&F),F=0,O=0}function rt(e,n,r){X(0+(r?1:0),3),((e,n)=>{nt(),j=8,Q(n),Q(~n),t.Ot.set(u.subarray(e,e+n),t.pending),t.pending+=n})(e,n)}function it(n){((e,n,r)=>{let i,s,o=0;M>0?(U.ct(t),W.ct(t),o=(()=>{let e;for(G(T,U.vt),G(P,W.vt),H.ct(t),e=18;e>=3&&0===R[2*xt.Tt[e]+1];e--);return t.kt+=14+3*(e+1),e})(),i=t.kt+3+7>>>3,s=t.gt+3+7>>>3,s>i||(i=s)):i=s=n+5,n+4>i||-1==e?s==i?(X(2+(r?1:0),3),et(At.Pt,At.Lt)):(X(4+(r?1:0),3),((t,e,n)=>{let r;for(X(t-257,5),X(e-1,5),X(n-4,4),r=0;n>r;r++)X(R[2*xt.Tt[r]+1],3);Z(T,t-1),Z(P,e-1)})(U.vt+1,W.vt+1,o+1),et(T,P)):rt(e,n,r),q(),r&&nt()})(0>g?-1:g,z-g,n),g=z,e.Jt()}function st(){let t,n,r,i;do{if(i=w-I-z,0===i&&0===z&&0===I)i=f;else if(-1==i)i--;else if(z>=f+f-262){u.set(u.subarray(f,f+f),0),_-=f,z-=f,g-=f,t=b,r=t;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--t);t=f,r=t;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--t);i+=f}if(0===e.Qt)return;t=e.Xt(u,z+I,i),I+=t,3>I||(p=255&u[z],p=(p<<k^255&u[z+1])&m)}while(262>I&&0!==e.Qt)}function ot(t){let e,n,r=A,i=z,s=x;const o=z>f-262?z-(f-262):0;let c=E;const l=a,w=z+258;let d=u[i+s-1],p=u[i+s];D>x||(r>>=2),c>I&&(c=I);do{if(e=t,u[e+s]==p&&u[e+s-1]==d&&u[e]==u[i]&&u[++e]==u[i+1]){i+=2,e++;do{}while(u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&w>i);if(n=258-(w-i),i=w-258,n>s){if(_=t,s=n,n>=c)break;d=u[i+s-1],p=u[i+s]}}}while((t=65535&h[t&l])>o&&0!=--r);return s>I?I:s}t.yt=[],t.It=[],t.bt=[],T=[],P=[],R=[],t.St=(e,n)=>{const r=t.bt,i=r[n];let s=n<<1;for(;s<=t.ht&&(s<t.ht&&Tt(e,r[s+1],r[s],t.yt)&&s++,!Tt(e,i,r[s],t.yt));)r[n]=r[s],n=s,s<<=1;r[n]=i},t.Yt=(e,S,_,L,N,G)=>(L||(L=8),N||(N=8),G||(G=0),e.Zt=null,-1==S&&(S=6),1>N||N>9||8!=L||9>_||_>15||0>S||S>9||0>G||G>2?-2:(e.$t=t,l=_,f=1<<l,a=f-1,y=N+7,b=1<<y,m=b-1,k=n.floor((y+3-1)/3),u=new i(2*f),h=[],d=[],K=1<<N+6,t.Ot=new i(4*K),o=4*K,t.qt=new s(K),t.Gt=new i(K),M=S,B=G,(e=>(e.te=e.ee=0,e.Zt=null,t.pending=0,t.ne=0,r=113,c=0,U.ft=T,U.ut=At.Nt,W.ft=P,W.ut=At.jt,H.ft=R,H.ut=At.Ft,F=0,O=0,j=8,q(),(()=>{w=2*f,d[b-1]=0;for(let t=0;b-1>t;t++)d[t]=0;V=Dt[M].Ut,D=Dt[M].Rt,E=Dt[M].Wt,A=Dt[M].Ht,z=0,g=0,I=0,v=x=2,C=0,p=0})(),0))(e))),t.re=()=>42!=r&&113!=r&&666!=r?-2:(t.Gt=null,t.qt=null,t.Ot=null,d=null,h=null,u=null,t.$t=null,113==r?-3:0),t.ie=(t,e,n)=>{let r=0;return-1==e&&(e=6),0>e||e>9||0>n||n>2?-2:(Dt[M].Kt!=Dt[e].Kt&&0!==t.te&&(r=t.se(1)),M!=e&&(M=e,V=Dt[M].Ut,D=Dt[M].Rt,E=Dt[M].Wt,A=Dt[M].Ht),B=n,r)},t.oe=(t,e,n)=>{let i,s=n,o=0;if(!e||42!=r)return-2;if(3>s)return 0;for(s>f-262&&(s=f-262,o=n-s),u.set(e.subarray(o,o+s),0),z=s,g=s,p=255&u[0],p=(p<<k^255&u[1])&m,i=0;s-3>=i;i++)p=(p<<k^255&u[i+2])&m,h[i&a]=d[p],d[p]=i;return 0},t.se=(n,i)=>{let s,w,y,A,D;if(i>4||0>i)return-2;if(!n.ce||!n.fe&&0!==n.Qt||666==r&&4!=i)return n.Zt=Et[4],-2;if(0===n.le)return n.Zt=Et[7],-5;var E;if(e=n,A=c,c=i,42==r&&(w=8+(l-8<<4)<<8,y=(M-1&255)>>1,y>3&&(y=3),w|=y<<6,0!==z&&(w|=32),w+=31-w%31,r=113,J((E=w)>>8&255),J(255&E)),0!==t.pending){if(e.Jt(),0===e.le)return c=-1,0}else if(0===e.Qt&&A>=i&&4!=i)return e.Zt=Et[7],-5;if(666==r&&0!==e.Qt)return n.Zt=Et[7],-5;if(0!==e.Qt||0!==I||0!=i&&666!=r){switch(D=-1,Dt[M].Kt){case 0:D=(t=>{let n,r=65535;for(r>o-5&&(r=o-5);;){if(1>=I){if(st(),0===I&&0==t)return 0;if(0===I)break}if(z+=I,I=0,n=g+r,(0===z||z>=n)&&(I=z-n,z=n,it(!1),0===e.le))return 0;if(z-g>=f-262&&(it(!1),0===e.le))return 0}return it(4==t),0===e.le?4==t?2:0:4==t?3:1})(i);break;case 1:D=(t=>{let n,r=0;for(;;){if(262>I){if(st(),262>I&&0==t)return 0;if(0===I)break}if(3>I||(p=(p<<k^255&u[z+2])&m,r=65535&d[p],h[z&a]=d[p],d[p]=z),0===r||(z-r&65535)>f-262||2!=B&&(v=ot(r)),3>v)n=tt(0,255&u[z]),I--,z++;else if(n=tt(z-_,v-3),I-=v,v>V||3>I)z+=v,v=0,p=255&u[z],p=(p<<k^255&u[z+1])&m;else{v--;do{z++,p=(p<<k^255&u[z+2])&m,r=65535&d[p],h[z&a]=d[p],d[p]=z}while(0!=--v);z++}if(n&&(it(!1),0===e.le))return 0}return it(4==t),0===e.le?4==t?2:0:4==t?3:1})(i);break;case 2:D=(t=>{let n,r,i=0;for(;;){if(262>I){if(st(),262>I&&0==t)return 0;if(0===I)break}if(3>I||(p=(p<<k^255&u[z+2])&m,i=65535&d[p],h[z&a]=d[p],d[p]=z),x=v,S=_,v=2,0!==i&&V>x&&f-262>=(z-i&65535)&&(2!=B&&(v=ot(i)),5>=v&&(1==B||3==v&&z-_>4096)&&(v=2)),3>x||v>x)if(0!==C){if(n=tt(0,255&u[z-1]),n&&it(!1),z++,I--,0===e.le)return 0}else C=1,z++,I--;else{r=z+I-3,n=tt(z-1-S,x-3),I-=x-1,x-=2;do{++z>r||(p=(p<<k^255&u[z+2])&m,i=65535&d[p],h[z&a]=d[p],d[p]=z)}while(0!=--x);if(C=0,v=2,z++,n&&(it(!1),0===e.le))return 0}}return 0!==C&&(n=tt(0,255&u[z-1]),C=0),it(4==t),0===e.le?4==t?2:0:4==t?3:1})(i)}if(2!=D&&3!=D||(r=666),0==D||2==D)return 0===e.le&&(c=-1),0;if(1==D){if(1==i)X(2,3),Y(256,At.Pt),$(),9>1+j+10-O&&(X(2,3),Y(256,At.Pt),$()),j=7;else if(rt(0,0,!1),3==i)for(s=0;b>s;s++)d[s]=0;if(e.Jt(),0===e.le)return c=-1,0}}return 4!=i?0:1}}function Rt(){const t=this;t.ae=0,t.ue=0,t.Qt=0,t.te=0,t.le=0,t.ee=0}function Ut(t){const e=new Rt,s=(o=t&&t.chunkSize?t.chunkSize:65536)+5*(n.floor(o/16383)+1);var o;const c=new i(s);let f=t?t.level:-1;void 0===f&&(f=-1),e.Yt(f),e.ce=c,this.append=(t,n)=>{let o,f,l=0,a=0,u=0;const w=[];if(t.length){e.ae=0,e.fe=t,e.Qt=t.length;do{if(e.ue=0,e.le=s,o=e.se(0),0!=o)throw new r("deflating: "+e.Zt);e.ue&&(e.ue==s?w.push(new i(c)):w.push(c.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?(f=new i(u),w.forEach((t=>{f.set(t,a),a+=t.length}))):f=w[0]||new i,f}},this.flush=()=>{let t,n,o=0,f=0;const l=[];do{if(e.ue=0,e.le=s,t=e.se(4),1!=t&&0!=t)throw new r("deflating: "+e.Zt);s-e.le>0&&l.push(c.slice(0,e.ue)),f+=e.ue}while(e.Qt>0||0===e.le);return e.re(),n=new i(f),l.forEach((t=>{n.set(t,o),o+=t.length})),n}}Rt.prototype={Yt(t,e){const n=this;return n.$t=new Pt,e||(e=15),n.$t.Yt(n,t,e)},se(t){const e=this;return e.$t?e.$t.se(e,t):-2},re(){const t=this;if(!t.$t)return-2;const e=t.$t.re();return t.$t=null,e},ie(t,e){const n=this;return n.$t?n.$t.ie(n,t,e):-2},oe(t,e){const n=this;return n.$t?n.$t.oe(n,t,e):-2},Xt(t,e,n){const r=this;let i=r.Qt;return i>n&&(i=n),0===i?0:(r.Qt-=i,t.set(r.fe.subarray(r.ae,r.ae+i),e),r.ae+=i,r.te+=i,i)},Jt(){const t=this;let e=t.$t.pending;e>t.le&&(e=t.le),0!==e&&(t.ce.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))}};const Wt=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Ht=[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],Kt=[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],Lt=[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],Nt=[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],jt=[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],Ft=[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 Ot(){let t,e,n,r,i,s;function o(t,e,o,c,f,l,a,u,w,h,d){let p,b,y,m,k,g,v,S,C,z,_,I,x,A,V;z=0,k=o;do{n[t[e+z]]++,z++,k--}while(0!==k);if(n[0]==o)return a[0]=-1,u[0]=0,0;for(S=u[0],g=1;15>=g&&0===n[g];g++);for(v=g,g>S&&(S=g),k=15;0!==k&&0===n[k];k--);for(y=k,S>k&&(S=k),u[0]=S,A=1<<g;k>g;g++,A<<=1)if(0>(A-=n[g]))return-3;if(0>(A-=n[k]))return-3;for(n[k]+=A,s[1]=g=0,z=1,x=2;0!=--k;)s[x]=g+=n[z],x++,z++;k=0,z=0;do{0!==(g=t[e+z])&&(d[s[g]++]=k),z++}while(++k<o);for(o=s[y],s[0]=k=0,z=0,m=-1,I=-S,i[0]=0,_=0,V=0;y>=v;v++)for(p=n[v];0!=p--;){for(;v>I+S;){if(m++,I+=S,V=y-I,V=V>S?S:V,(b=1<<(g=v-I))>p+1&&(b-=p+1,x=v,V>g))for(;++g<V&&(b<<=1)>n[++x];)b-=n[x];if(V=1<<g,h[0]+V>1440)return-3;i[m]=_=h[0],h[0]+=V,0!==m?(s[m]=k,r[0]=g,r[1]=S,g=k>>>I-S,r[2]=_-i[m-1]-g,w.set(r,3*(i[m-1]+g))):a[0]=_}for(r[1]=v-I,o>z?d[z]<c?(r[0]=256>d[z]?0:96,r[2]=d[z++]):(r[0]=l[d[z]-c]+16+64,r[2]=f[d[z++]-c]):r[0]=192,b=1<<v-I,g=k>>>I;V>g;g+=b)w.set(r,3*(_+g));for(g=1<<v-1;0!=(k&g);g>>>=1)k^=g;for(k^=g,C=(1<<I)-1;(k&C)!=s[m];)m--,I-=S,C=(1<<I)-1}return 0!==A&&1!=y?-5:0}function f(o){let f;for(t||(t=[],e=[],n=new c(16),r=[],i=new c(15),s=new c(16)),e.length<o&&(e=[]),f=0;o>f;f++)e[f]=0;for(f=0;16>f;f++)n[f]=0;for(f=0;3>f;f++)r[f]=0;i.set(n.subarray(0,15),0),s.set(n.subarray(0,16),0)}this.we=(n,r,i,s,c)=>{let l;return f(19),t[0]=0,l=o(n,0,19,19,null,null,i,r,s,t,e),-3==l?c.Zt="oversubscribed dynamic bit lengths tree":-5!=l&&0!==r[0]||(c.Zt="incomplete dynamic bit lengths tree",l=-3),l},this.he=(n,r,i,s,c,l,a,u,w)=>{let h;return f(288),t[0]=0,h=o(i,0,n,257,Lt,Nt,l,s,u,t,e),0!=h||0===s[0]?(-3==h?w.Zt="oversubscribed literal/length tree":-4!=h&&(w.Zt="incomplete literal/length tree",h=-3),h):(f(288),h=o(i,n,r,0,jt,Ft,a,c,u,t,e),0!=h||0===c[0]&&n>257?(-3==h?w.Zt="oversubscribed distance tree":-5==h?(w.Zt="incomplete distance tree",h=-3):-4!=h&&(w.Zt="empty distance tree with lengths",h=-3),h):0)}}function qt(){const t=this;let e,n,r,i,s=0,o=0,c=0,f=0,l=0,a=0,u=0,w=0,h=0,d=0;function p(t,e,n,r,i,s,o,c){let f,l,a,u,w,h,d,p,b,y,m,k,g,v,S,C;d=c.ae,p=c.Qt,w=o.de,h=o.pe,b=o.write,y=b<o.read?o.read-b-1:o.end-b,m=Wt[t],k=Wt[e];do{for(;20>h;)p--,w|=(255&c.be(d++))<<h,h+=8;if(f=w&m,l=n,a=r,C=3*(a+f),0!==(u=l[C]))for(;;){if(w>>=l[C+1],h-=l[C+1],0!=(16&u)){for(u&=15,g=l[C+2]+(w&Wt[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.be(d++))<<h,h+=8;for(f=w&k,l=i,a=s,C=3*(a+f),u=l[C];;){if(w>>=l[C+1],h-=l[C+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.be(d++))<<h,h+=8;if(v=l[C+2]+(w&Wt[u]),w>>=u,h-=u,y-=g,v>b){S=b-v;do{S+=o.end}while(0>S);if(u=o.end-S,g>u){if(g-=u,b-S>0&&u>b-S)do{o.ye[b++]=o.ye[S++]}while(0!=--u);else o.ye.set(o.ye.subarray(S,S+u),b),b+=u,S+=u,u=0;S=0}}else S=b-v,b-S>0&&2>b-S?(o.ye[b++]=o.ye[S++],o.ye[b++]=o.ye[S++],g-=2):(o.ye.set(o.ye.subarray(S,S+2),b),b+=2,S+=2,g-=2);if(b-S>0&&g>b-S)do{o.ye[b++]=o.ye[S++]}while(0!=--g);else o.ye.set(o.ye.subarray(S,S+g),b),b+=g,S+=g,g=0;break}if(0!=(64&u))return c.Zt="invalid distance code",g=c.Qt-p,g=g>h>>3?h>>3:g,p+=g,d-=g,h-=g<<3,o.de=w,o.pe=h,c.Qt=p,c.te+=d-c.ae,c.ae=d,o.write=b,-3;f+=l[C+2],f+=w&Wt[u],C=3*(a+f),u=l[C]}break}if(0!=(64&u))return 0!=(32&u)?(g=c.Qt-p,g=g>h>>3?h>>3:g,p+=g,d-=g,h-=g<<3,o.de=w,o.pe=h,c.Qt=p,c.te+=d-c.ae,c.ae=d,o.write=b,1):(c.Zt="invalid literal/length code",g=c.Qt-p,g=g>h>>3?h>>3:g,p+=g,d-=g,h-=g<<3,o.de=w,o.pe=h,c.Qt=p,c.te+=d-c.ae,c.ae=d,o.write=b,-3);if(f+=l[C+2],f+=w&Wt[u],C=3*(a+f),0===(u=l[C])){w>>=l[C+1],h-=l[C+1],o.ye[b++]=l[C+2],y--;break}}else w>>=l[C+1],h-=l[C+1],o.ye[b++]=l[C+2],y--}while(y>=258&&p>=10);return g=c.Qt-p,g=g>h>>3?h>>3:g,p+=g,d-=g,h-=g<<3,o.de=w,o.pe=h,c.Qt=p,c.te+=d-c.ae,c.ae=d,o.write=b,0}t.init=(t,s,o,c,f,l)=>{e=0,u=t,w=s,r=o,h=c,i=f,d=l,n=null},t.me=(t,b,y)=>{let m,k,g,v,S,C,z,_=0,I=0,x=0;for(x=b.ae,v=b.Qt,_=t.de,I=t.pe,S=t.write,C=S<t.read?t.read-S-1:t.end-S;;)switch(e){case 0:if(C>=258&&v>=10&&(t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,y=p(u,w,r,h,i,d,t,b),x=b.ae,v=b.Qt,_=t.de,I=t.pe,S=t.write,C=S<t.read?t.read-S-1:t.end-S,0!=y)){e=1==y?7:9;break}c=u,n=r,o=h,e=1;case 1:for(m=c;m>I;){if(0===v)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,v--,_|=(255&b.be(x++))<<I,I+=8}if(k=3*(o+(_&Wt[m])),_>>>=n[k+1],I-=n[k+1],g=n[k],0===g){f=n[k+2],e=6;break}if(0!=(16&g)){l=15&g,s=n[k+2],e=2;break}if(0==(64&g)){c=g,o=k/3+n[k+2];break}if(0!=(32&g)){e=7;break}return e=9,b.Zt="invalid literal/length code",y=-3,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);case 2:for(m=l;m>I;){if(0===v)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,v--,_|=(255&b.be(x++))<<I,I+=8}s+=_&Wt[m],_>>=m,I-=m,c=w,n=i,o=d,e=3;case 3:for(m=c;m>I;){if(0===v)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,v--,_|=(255&b.be(x++))<<I,I+=8}if(k=3*(o+(_&Wt[m])),_>>=n[k+1],I-=n[k+1],g=n[k],0!=(16&g)){l=15&g,a=n[k+2],e=4;break}if(0==(64&g)){c=g,o=k/3+n[k+2];break}return e=9,b.Zt="invalid distance code",y=-3,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);case 4:for(m=l;m>I;){if(0===v)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,v--,_|=(255&b.be(x++))<<I,I+=8}a+=_&Wt[m],_>>=m,I-=m,e=5;case 5:for(z=S-a;0>z;)z+=t.end;for(;0!==s;){if(0===C&&(S==t.end&&0!==t.read&&(S=0,C=S<t.read?t.read-S-1:t.end-S),0===C&&(t.write=S,y=t.ke(b,y),S=t.write,C=S<t.read?t.read-S-1:t.end-S,S==t.end&&0!==t.read&&(S=0,C=S<t.read?t.read-S-1:t.end-S),0===C)))return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);t.ye[S++]=t.ye[z++],C--,z==t.end&&(z=0),s--}e=0;break;case 6:if(0===C&&(S==t.end&&0!==t.read&&(S=0,C=S<t.read?t.read-S-1:t.end-S),0===C&&(t.write=S,y=t.ke(b,y),S=t.write,C=S<t.read?t.read-S-1:t.end-S,S==t.end&&0!==t.read&&(S=0,C=S<t.read?t.read-S-1:t.end-S),0===C)))return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,t.ye[S++]=f,C--,e=0;break;case 7:if(I>7&&(I-=8,v++,x--),t.write=S,y=t.ke(b,y),S=t.write,C=S<t.read?t.read-S-1:t.end-S,t.read!=t.write)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);e=8;case 8:return y=1,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);case 9:return y=-3,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);default:return y=-2,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y)}},t.ge=()=>{}}Ot.ve=(t,e,n,r)=>(t[0]=9,e[0]=5,n[0]=Ht,r[0]=Kt,0);const Gt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Jt(t,e){const n=this;let r,s=0,o=0,f=0,l=0;const a=[0],u=[0],w=new qt;let h=0,d=new c(4320);const p=new Ot;n.pe=0,n.de=0,n.ye=new i(e),n.end=e,n.read=0,n.write=0,n.reset=(t,e)=>{e&&(e[0]=0),6==s&&w.ge(t),s=0,n.pe=0,n.de=0,n.read=n.write=0},n.reset(t,null),n.ke=(t,e)=>{let r,i,s;return i=t.ue,s=n.read,r=(s>n.write?n.end:n.write)-s,r>t.le&&(r=t.le),0!==r&&-5==e&&(e=0),t.le-=r,t.ee+=r,t.ce.set(n.ye.subarray(s,s+r),i),i+=r,s+=r,s==n.end&&(s=0,n.write==n.end&&(n.write=0),r=n.write-s,r>t.le&&(r=t.le),0!==r&&-5==e&&(e=0),t.le-=r,t.ee+=r,t.ce.set(n.ye.subarray(s,s+r),i),i+=r,s+=r),t.ue=i,n.read=s,e},n.me=(t,e)=>{let i,c,b,y,m,k,g,v;for(y=t.ae,m=t.Qt,c=n.de,b=n.pe,k=n.write,g=k<n.read?n.read-k-1:n.end-k;;){let S,C,z,_,I,x,A,V;switch(s){case 0:for(;3>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}switch(i=7&c,h=1&i,i>>>1){case 0:c>>>=3,b-=3,i=7&b,c>>>=i,b-=i,s=1;break;case 1:S=[],C=[],z=[[]],_=[[]],Ot.ve(S,C,z,_),w.init(S[0],C[0],z[0],0,_[0],0),c>>>=3,b-=3,s=6;break;case 2:c>>>=3,b-=3,s=3;break;case 3:return c>>>=3,b-=3,s=9,t.Zt="invalid block type",e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e)}break;case 1:for(;32>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}if((~c>>>16&65535)!=(65535&c))return s=9,t.Zt="invalid stored block lengths",e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);o=65535&c,c=b=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);if(0===g&&(k==n.end&&0!==n.read&&(k=0,g=k<n.read?n.read-k-1:n.end-k),0===g&&(n.write=k,e=n.ke(t,e),k=n.write,g=k<n.read?n.read-k-1:n.end-k,k==n.end&&0!==n.read&&(k=0,g=k<n.read?n.read-k-1:n.end-k),0===g)))return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);if(e=0,i=o,i>m&&(i=m),i>g&&(i=g),n.ye.set(t.Xt(y,i),k),y+=i,m-=i,k+=i,g-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}if(f=i=16383&c,(31&i)>29||(i>>5&31)>29)return s=9,t.Zt="too many length or distance symbols",e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);if(i=258+(31&i)+(i>>5&31),!r||r.length<i)r=[];else for(v=0;i>v;v++)r[v]=0;c>>>=14,b-=14,l=0,s=4;case 4:for(;4+(f>>>10)>l;){for(;3>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}r[Gt[l++]]=7&c,c>>>=3,b-=3}for(;19>l;)r[Gt[l++]]=0;if(a[0]=7,i=p.we(r,a,u,d,t),0!=i)return-3==(e=i)&&(r=null,s=9),n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);l=0,s=5;case 5:for(;i=f,258+(31&i)+(i>>5&31)>l;){let o,w;for(i=a[0];i>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}if(i=d[3*(u[0]+(c&Wt[i]))+1],w=d[3*(u[0]+(c&Wt[i]))+2],16>w)c>>>=i,b-=i,r[l++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}if(c>>>=i,b-=i,o+=c&Wt[v],c>>>=v,b-=v,v=l,i=f,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,t.Zt="invalid bit length repeat",e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);l=v}}if(u[0]=-1,I=[],x=[],A=[],V=[],I[0]=9,x[0]=6,i=f,i=p.he(257+(31&i),1+(i>>5&31),r,I,x,A,V,d,t),0!=i)return-3==i&&(r=null,s=9),e=i,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);w.init(I[0],x[0],d,A[0],d,V[0]),s=6;case 6:if(n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,1!=(e=w.me(n,t,e)))return n.ke(t,e);if(e=0,w.ge(t),y=t.ae,m=t.Qt,c=n.de,b=n.pe,k=n.write,g=k<n.read?n.read-k-1:n.end-k,0===h){s=0;break}s=7;case 7:if(n.write=k,e=n.ke(t,e),k=n.write,g=k<n.read?n.read-k-1:n.end-k,n.read!=n.write)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);s=8;case 8:return e=1,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);case 9:return e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);default:return e=-2,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e)}}},n.ge=t=>{n.reset(t,null),n.ye=null,d=null},n.Se=(t,e,r)=>{n.ye.set(t.subarray(e,e+r),0),n.read=n.write=r},n.Ce=()=>1==s?1:0}const Qt=[0,0,255,255];function Xt(){const t=this;function e(t){return t&&t.ze?(t.te=t.ee=0,t.Zt=null,t.ze.mode=7,t.ze._e.reset(t,null),0):-2}t.mode=0,t.method=0,t.Ie=[0],t.xe=0,t.marker=0,t.Ae=0,t.Ve=e=>(t._e&&t._e.ge(e),t._e=null,0),t.Me=(n,r)=>(n.Zt=null,t._e=null,8>r||r>15?(t.Ve(n),-2):(t.Ae=r,n.ze._e=new Jt(n,1<<r),e(n),0)),t.Be=(t,e)=>{let n,r;if(!t||!t.ze||!t.fe)return-2;const i=t.ze;for(e=4==e?-5:0,n=-5;;)switch(i.mode){case 0:if(0===t.Qt)return n;if(n=e,t.Qt--,t.te++,8!=(15&(i.method=t.be(t.ae++)))){i.mode=13,t.Zt="unknown compression method",i.marker=5;break}if(8+(i.method>>4)>i.Ae){i.mode=13,t.Zt="invalid win size",i.marker=5;break}i.mode=1;case 1:if(0===t.Qt)return n;if(n=e,t.Qt--,t.te++,r=255&t.be(t.ae++),((i.method<<8)+r)%31!=0){i.mode=13,t.Zt="incorrect header check",i.marker=5;break}if(0==(32&r)){i.mode=7;break}i.mode=2;case 2:if(0===t.Qt)return n;n=e,t.Qt--,t.te++,i.xe=(255&t.be(t.ae++))<<24&4278190080,i.mode=3;case 3:if(0===t.Qt)return n;n=e,t.Qt--,t.te++,i.xe+=(255&t.be(t.ae++))<<16&16711680,i.mode=4;case 4:if(0===t.Qt)return n;n=e,t.Qt--,t.te++,i.xe+=(255&t.be(t.ae++))<<8&65280,i.mode=5;case 5:return 0===t.Qt?n:(n=e,t.Qt--,t.te++,i.xe+=255&t.be(t.ae++),i.mode=6,2);case 6:return i.mode=13,t.Zt="need dictionary",i.marker=0,-2;case 7:if(n=i._e.me(t,n),-3==n){i.mode=13,i.marker=0;break}if(0==n&&(n=e),1!=n)return n;n=e,i._e.reset(t,i.Ie),i.mode=12;case 12:return t.Qt=0,1;case 13:return-3;default:return-2}},t.De=(t,e,n)=>{let r=0,i=n;if(!t||!t.ze||6!=t.ze.mode)return-2;const s=t.ze;return i<1<<s.Ae||(i=(1<<s.Ae)-1,r=n-i),s._e.Se(e,r,i),s.mode=7,0},t.Ee=t=>{let n,r,i,s,o;if(!t||!t.ze)return-2;const c=t.ze;if(13!=c.mode&&(c.mode=13,c.marker=0),0===(n=t.Qt))return-5;for(r=t.ae,i=c.marker;0!==n&&4>i;)t.be(r)==Qt[i]?i++:i=0!==t.be(r)?0:4-i,r++,n--;return t.te+=r-t.ae,t.ae=r,t.Qt=n,c.marker=i,4!=i?-3:(s=t.te,o=t.ee,e(t),t.te=s,t.ee=o,c.mode=7,0)},t.Te=t=>t&&t.ze&&t.ze._e?t.ze._e.Ce():-2}function Yt(){}function Zt(t){const e=new Yt,s=t&&t.chunkSize?n.floor(2*t.chunkSize):131072,o=new i(s);let c=!1;e.Me(),e.ce=o,this.append=(t,n)=>{const f=[];let l,a,u=0,w=0,h=0;if(0!==t.length){e.ae=0,e.fe=t,e.Qt=t.length;do{if(e.ue=0,e.le=s,0!==e.Qt||c||(e.ae=0,c=!0),l=e.Be(0),c&&-5===l){if(0!==e.Qt)throw new r("inflating: bad input")}else if(0!==l&&1!==l)throw new r("inflating: "+e.Zt);if((c||1===l)&&e.Qt===t.length)throw new r("inflating: bad input");e.ue&&(e.ue===s?f.push(new i(o)):f.push(o.slice(0,e.ue))),h+=e.ue,n&&e.ae>0&&e.ae!=u&&(n(e.ae),u=e.ae)}while(e.Qt>0||0===e.le);return f.length>1?(a=new i(h),f.forEach((t=>{a.set(t,w),w+=t.length}))):a=f[0]||new i,a}},this.flush=()=>{e.Ve()}}Yt.prototype={Me(t){const e=this;return e.ze=new Xt,t||(t=15),e.ze.Me(e,t)},Be(t){const e=this;return e.ze?e.ze.Be(e,t):-2},Ve(){const t=this;if(!t.ze)return-2;const e=t.ze.Ve(t);return t.ze=null,e},Ee(){const t=this;return t.ze?t.ze.Ee(t):-2},De(t,e){const n=this;return n.ze?n.ze.De(n,t,e):-2},be(t){return this.fe[t]},Xt(t,e){return this.fe.subarray(t,t+e)}},self.initCodec=()=>{self.Deflate=Ut,self.Inflate=Zt};\n'],{type:"text/javascript"}));t({workerScripts:{inflate:[e],deflate:[e]}});}
7439
+ function e(e){const t=()=>URL.createObjectURL(new Blob(['const{Array:e,Object:t,Math:n,Error:r,Uint8Array:s,Uint16Array:i,Uint32Array:o,Int32Array:c,Map:f,DataView:a,Promise:l,TextEncoder:u,crypto:w,postMessage:h,TransformStream:d,ReadableStream:p,WritableStream:y,CompressionStream:m,DecompressionStream:b}=globalThis,g=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;g[e]=t}class k{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^g[255&(t^e[n])];this.t=t}get(){return~this.t}}class v extends d{constructor(){const e=new k;super({transform(t){e.append(t)},flush(t){const n=new s(4);new a(n.buffer).setUint32(0,e.get()),t.enqueue(n)}})}}const S={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=S.i(n);return 32===r?e.concat(t):S.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+S.i(n)},u(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,n.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=S.h(t,e[r-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>n.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=S.i(s);return r.push(S.h(t+i&31,t+i>32?n:r.pop(),1)),r}},C={p:{m(e){const t=S.l(e)/8,n=new s(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},g(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3==(3&n)&&(t.push(r),r=0);return 3&n&&t.push(S.h(8*(3&n),r)),t}}},z={k:function(e){e?(this.v=e.v.slice(0),this.S=e.S.slice(0),this.C=e.C):this.reset()}};z.k.prototype={blockSize:512,reset(){const e=this;return e.v=this._.slice(0),e.S=[],e.C=0,e},update(e){const t=this;"string"==typeof e&&(e=C.I.g(e));const n=t.S=S.concat(t.S,e),s=t.C,i=t.C=s+S.l(e);if(i>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const c=new o(n);let f=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);i>=e;e+=t.blockSize)t.A(c.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t},D(){const e=this;let t=e.S;const r=e.v;t=S.concat(t,[S.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(n.floor(e.C/4294967296)),t.push(0|e.C);t.length;)e.A(t.splice(0,16));return e.reset(),r},_:[1732584193,4023233417,2562383102,271733878,3285377520],V:[1518500249,1859775393,2400959708,3395469782],R:(e,t,n,r)=>e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r,B:(e,t)=>t<<e|t>>>32-e,A(t){const r=this,s=r.v,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=r.B(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=r.B(5,o)+r.R(e,c,f,a)+l+i[e]+r.V[n.floor(e/20)]|0;l=a,a=f,f=r.B(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}};const _={getRandomValues(e){const t=new o(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(n.random()>.5?1:-1))};for(let s,i=0;i<e.length;i+=4){const e=r(4294967296*(s||n.random()));s=987654071*e(),t[i/4]=4294967296*e()|0}return e}},I={importKey:e=>new I.M(C.p.g(e)),K(e,t,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,c,f,l,u;const w=new ArrayBuffer(i),h=new a(w);let d=0;const p=S;for(t=C.p.g(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),l=0;l<c.length;l++)o[l]^=c[l];for(f=0;(i||1)>d&&f<o.length;f++)h.setInt32(d,o[f]),d+=4}return w.slice(0,s/8)},M:class{constructor(e){const t=this,n=t.N=z.k,r=[[],[]],s=n.prototype.blockSize/32;t.P=[new n,new n],e.length>s&&(e=n.hash(e));for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.P[0].update(r[0]),t.P[1].update(r[1]),t.T=new n(t.P[0])}reset(){const e=this;e.T=new e.N(e.P[0]),e.U=!1}update(e){this.U=!0,this.T.update(e)}digest(){const e=this,t=e.T.D(),n=new e.N(e.P[1]).update(t).D();return e.reset(),n}encrypt(e){if(this.U)throw new r("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},x=void 0!==w&&"function"==typeof w.getRandomValues;function A(e){return x?w.getRandomValues(e):_.getRandomValues(e)}const D={name:"PBKDF2"},V=t.assign({hash:{name:"HMAC"}},D),R=t.assign({iterations:1e3,hash:{name:"SHA-1"}},D),B=["deriveBits"],E=[8,12,16],M=[16,24,32],K=[0,0,0,0],N=void 0!==w,P=N&&w.subtle,T=N&&void 0!==P,U=N&&T&&"function"==typeof P.importKey,W=N&&T&&"function"==typeof P.deriveBits,H=C.p,L=class{constructor(e){const t=this;t.W=[[[],[],[],[],[]],[[],[],[],[],[]]],t.W[0][0][0]||t.H();const n=t.W[0][4],s=t.W[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new r("invalid aes key size");for(t.V=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:s[0][n[t>>>24]]^s[1][n[t>>16&255]]^s[2][n[t>>8&255]]^s[3][n[255&t]]}}encrypt(e){return this.L(e,0)}decrypt(e){return this.L(e,1)}H(){const e=this.W[0],t=this.W[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}L(e,t){if(4!==e.length)throw new r("invalid aes block size");const n=this.V[t],s=n.length/4-2,i=[0,0,0,0],o=this.W[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;s>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},j=class{constructor(e,t){this.j=e,this.F=t,this.O=t}reset(){this.O=this.F}update(e){return this.q(this.j,e,this.O)}G(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}J(e){0===(e[0]=this.G(e[0]))&&(e[1]=this.G(e[1]))}q(e,t,n){let r;if(!(r=t.length))return[];const s=S.l(t);for(let s=0;r>s;s+=4){this.J(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return S.u(t,s)}},F=I.M;class O extends d{constructor(e,n,i){super({start(){t.assign(this,{ready:new l((e=>this.X=e)),password:e,signed:n,Y:i-1,pending:new s})},async transform(e,t){const n=this,{password:i,Y:o,X:c,ready:f}=n;i?(await(async(e,t,n,s)=>{const i=await J(e,t,n,X(s,0,E[t])),o=X(s,E[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new r("Invalid password")})(n,o,i,X(e,0,E[o]+2)),e=X(e,E[o]+2),c()):await f;const a=new s(e.length-10-(e.length-10)%16);t.enqueue(G(n,e,a,0,10,!0))},async flush(e){const{signed:t,Z:n,$:i,pending:o,ready:c}=this;await c;const f=X(o,0,o.length-10),a=X(o,o.length-10);let l=new s;if(f.length){const e=Z(H,f);i.update(e);const t=n.update(e);l=Y(H,t)}if(t){const e=X(Y(H,i.digest()),0,10);for(let t=0;10>t;t++)if(e[t]!=a[t])throw new r("Invalid signature")}e.enqueue(l)}})}}class q extends d{constructor(e,n){let r;super({start(){t.assign(this,{ready:new l((e=>this.X=e)),password:e,Y:n-1,pending:new s})},async transform(e,t){const n=this,{password:r,Y:i,X:o,ready:c}=n;let f=new s;r?(f=await(async(e,t,n)=>{const r=A(new s(E[t]));return Q(r,await J(e,t,n,r))})(n,i,r),o()):await c;const a=new s(f.length+e.length-e.length%16);a.set(f,0),t.enqueue(G(n,e,a,f.length,0))},async flush(e){const{Z:t,$:n,pending:i,ready:o}=this;await o;let c=new s;if(i.length){const e=t.update(Z(H,i));n.update(e),c=Y(H,e)}r.signature=Y(H,n.digest()).slice(0,10),e.enqueue(Q(c,r.signature))}}),r=this}}function G(e,t,n,r,i,o){const{Z:c,$:f,pending:a}=e,l=t.length-i;let u;for(a.length&&(t=Q(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new s(t)).set(n,0)}return e})(n,l-l%16)),u=0;l-16>=u;u+=16){const e=Z(H,X(t,u,u+16));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(Y(H,s),u+r)}return e.pending=X(t,u),n}async function J(n,r,i,o){n.password=null;const c=(e=>{if(void 0===u){const t=new s((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new u).encode(e)})(i),f=await((e,t,n,r,s)=>U?P.importKey("raw",t,n,!1,s):I.importKey(t))(0,c,V,0,B),a=await(async(e,t,n)=>W?await P.deriveBits(e,t,n):I.K(t,e.salt,R.iterations,n))(t.assign({salt:o},R),f,8*(2*M[r]+2)),l=new s(a),w=Z(H,X(l,0,M[r])),h=Z(H,X(l,M[r],2*M[r])),d=X(l,2*M[r]);return t.assign(n,{keys:{key:w,ee:h,passwordVerification:d},Z:new j(new L(w),e.from(K)),$:new F(h)}),d}function Q(e,t){let n=e;return e.length+t.length&&(n=new s(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function X(e,t,n){return e.subarray(t,n)}function Y(e,t){return e.m(t)}function Z(e,t){return e.g(t)}class $ extends d{constructor(e,n){super({start(){t.assign(this,{password:e,passwordVerification:n}),re(this,e)},transform(e,t){const n=this;if(n.password){const t=te(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new r("Invalid password");e=e.subarray(12)}t.enqueue(te(n,e))}})}}class ee extends d{constructor(e,n){super({start(){t.assign(this,{password:e,passwordVerification:n}),re(this,e)},transform(e,t){const n=this;let r,i;if(n.password){n.password=null;const t=A(new s(12));t[11]=n.passwordVerification,r=new s(e.length+t.length),r.set(ne(n,t),0),i=12}else r=new s(e.length),i=0;r.set(ne(n,e),i),t.enqueue(r)}})}}function te(e,t){const n=new s(t.length);for(let r=0;r<t.length;r++)n[r]=ie(e)^t[r],se(e,n[r]);return n}function ne(e,t){const n=new s(t.length);for(let r=0;r<t.length;r++)n[r]=ie(e)^t[r],se(e,t[r]);return n}function re(e,n){const r=[305419896,591751049,878082192];t.assign(e,{keys:r,te:new k(r[0]),ne:new k(r[2])});for(let t=0;t<n.length;t++)se(e,n.charCodeAt(t))}function se(e,t){let[r,s,i]=e.keys;e.te.append([t]),r=~e.te.get(),s=ce(n.imul(ce(s+oe(r)),134775813)+1),e.ne.append([s>>>24]),i=~e.ne.get(),e.keys=[r,s,i]}function ie(e){const t=2|e.keys[2];return oe(n.imul(t,1^t)>>>8)}function oe(e){return 255&e}function ce(e){return 4294967295&e}class fe extends d{constructor(e,{chunkSize:t,CompressionStream:n,re:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,password:c,passwordVerification:f,encryptionStrength:l,zipCrypto:u,signed:w,level:h}=e,d=this;let p,y,m=le(super.readable);i&&!u||!w||([m,p]=m.tee(),p=he(p,new v)),s&&(m=we(m,o,{level:h,chunkSize:t},r,n)),i&&(u?m=he(m,new ee(c,f)):(y=new q(c,l),m=he(m,y))),ue(d,m,(async()=>{let e;i&&!u&&(e=y.signature),i&&!u||!w||(e=await p.getReader().read(),e=new a(e.value.buffer).getUint32(0)),d.signature=e}))}}class ae extends d{constructor(e,{chunkSize:t,DecompressionStream:n,se:s}){super({});const{zipCrypto:i,encrypted:o,password:c,passwordVerification:f,signed:l,signature:u,encryptionStrength:w,compressed:h,useCompressionStream:d}=e;let p,y,m=le(super.readable);o&&(i?m=he(m,new $(c,f)):(y=new O(c,l,w),m=he(m,y))),h&&(m=we(m,d,{chunkSize:t},s,n)),o&&!i||!l||([m,p]=m.tee(),p=he(p,new v)),ue(this,m,(async()=>{if((!o||i)&&l){const e=await p.getReader().read(),t=new a(e.value.buffer);if(u!=t.getUint32(0,!1))throw new r("Invalid signature")}}))}}function le(e){return he(e,new d({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ue(e,n,r){n=he(n,new d({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function we(e,t,n,r,s){try{e=he(e,new(t&&r?r:s)("deflate-raw",n))}catch(r){if(!t)throw r;e=he(e,new s("deflate-raw",n))}return e}function he(e,t){return e.pipeThrough(t)}class de extends d{constructor(e,t){const n=new e(t);super({transform(e,t){t.enqueue(n.append(e))},flush(e){const t=n.flush();t&&e.enqueue(t)}})}}class pe{constructor(e,n,r,s){const{codecType:i}=r;let o;i.startsWith("deflate")?o=fe:i.startsWith("inflate")&&(o=ae),t.assign(this,{ie:o,readable:e,writable:n,options:r,config:s})}async oe(){const{ie:e,readable:t,writable:n,options:r,config:s}=this,i=new e(r,s);let o=0;await t.pipeThrough(i).pipeThrough(new d({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))}})).pipeTo(n,{preventClose:!0,ce:!0});const{signature:c}=i;return{size:o,signature:c}}}function ye(e){return class extends de{constructor(t,n){super(e,n)}}}const me=new f,be=new f;let ge,ke=0;async function ve(e){try{const{options:t,scripts:n,config:r}=e;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),r.re=self.CompressionStream,r.se=self.DecompressionStream,self.Deflate&&(r.CompressionStream=ye(self.Deflate)),self.Inflate&&(r.DecompressionStream=ye(self.Inflate));const s={highWaterMark:1,size:()=>r.chunkSize},i=e.readable||new p({async pull(e){let t=new l((e=>me.set(ke,e)));Se({type:"pull",messageId:ke}),ke=(ke+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:r}=await t;e.enqueue(n),r&&e.close()}},s),o=e.writable||new y({async write(e){let t;const n=new l((e=>t=e));be.set(ke,t),Se({type:"data",data:e,messageId:ke}),ke=(ke+1)%Number.MAX_SAFE_INTEGER,await n}},s);ge=new pe(i,o,t,r);const c=await ge.oe();e.writable&&!t.preventClose&&await e.writable.close(),Se({type:"close",result:c})}catch(e){Ce(e)}}function Se(e){if(e.data){let{data:t}=e;if(t&&t.length)try{t=new s(t),e.data=t.buffer,h(e,[e.data])}catch(t){h(e)}else h(e)}else h(e)}function Ce(e){const{message:t,stack:n,code:r,name:s}=e;h({error:{message:t,stack:n,code:r,name:s}})}function ze(t){return _e(t.map((([t,n])=>new e(t).fill(n,0,t))))}function _e(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?_e(n):n)),[])}addEventListener("message",(async e=>{const t=e.data,{type:n,messageId:r,data:i,done:o}=t;try{if("start"==n&&ve(t),"data"==n){const e=me.get(r);me.delete(r),e({value:new s(i),done:o})}if("ack"==n){const e=be.get(r);be.delete(r),e()}}catch(e){Ce(e)}}));const Ie=[0,1,2,3].concat(...ze([[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 xe(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.fe=r=>{const s=e.ae,i=e.ue.le,o=e.ue.we;let c,f,a,l=-1;for(r.he=0,r.de=573,c=0;o>c;c++)0!==s[2*c]?(r.pe[++r.he]=l=c,r.ye[c]=0):s[2*c+1]=0;for(;2>r.he;)a=r.pe[++r.he]=2>l?++l:0,s[2*a]=1,r.ye[a]=0,r.me--,i&&(r.be-=i[2*a+1]);for(e.ge=l,c=n.floor(r.he/2);c>=1;c--)r.ke(s,c);a=o;do{c=r.pe[1],r.pe[1]=r.pe[r.he--],r.ke(s,1),f=r.pe[1],r.pe[--r.de]=c,r.pe[--r.de]=f,s[2*a]=s[2*c]+s[2*f],r.ye[a]=n.max(r.ye[c],r.ye[f])+1,s[2*c+1]=s[2*f+1]=a,r.pe[1]=a++,r.ke(s,1)}while(r.he>=2);r.pe[--r.de]=r.pe[1],(t=>{const n=e.ae,r=e.ue.le,s=e.ue.ve,i=e.ue.Se,o=e.ue.Ce;let c,f,a,l,u,w,h=0;for(l=0;15>=l;l++)t.ze[l]=0;for(n[2*t.pe[t.de]+1]=0,c=t.de+1;573>c;c++)f=t.pe[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.ge||(t.ze[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.me+=w*(l+u),r&&(t.be+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.ze[l];)l--;t.ze[l]--,t.ze[l+1]+=2,t.ze[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.ze[l];0!==f;)a=t.pe[--c],a>e.ge||(n[2*a+1]!=l&&(t.me+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(r),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.ge,r.ze)}}function Ae(e,t,n,r,s){const i=this;i.le=e,i.ve=t,i.Se=n,i.we=r,i.Ce=s}xe._e=[0,1,2,3,4,5,6,7].concat(...ze([[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]])),xe.Ie=[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],xe.xe=[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],xe.Ae=e=>256>e?Ie[e]:Ie[256+(e>>>7)],xe.De=[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],xe.Ve=[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],xe.Re=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],xe.Be=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const De=ze([[144,8],[112,9],[24,7],[8,8]]);Ae.Ee=_e([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(((e,t)=>[e,De[t]])));const Ve=ze([[30,5]]);function Re(e,t,n,r,s){const i=this;i.Me=e,i.Ke=t,i.Ne=n,i.Pe=r,i.Te=s}Ae.Ue=_e([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(((e,t)=>[e,Ve[t]]))),Ae.We=new Ae(Ae.Ee,xe.De,257,286,15),Ae.He=new Ae(Ae.Ue,xe.Ve,0,30,15),Ae.Le=new Ae(null,xe.Re,0,19,7);const Be=[new Re(0,0,0,0,0),new Re(4,4,8,4,1),new Re(4,5,16,8,1),new Re(4,6,32,32,1),new Re(4,4,16,16,2),new Re(8,16,32,32,2),new Re(8,16,128,128,2),new Re(8,32,128,256,2),new Re(32,128,258,1024,2),new Re(32,258,258,4096,2)],Ee=["need dictionary","stream end","","","stream error","data error","","buffer error","",""];function Me(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function Ke(){const e=this;let t,r,o,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,C,z,_,I,x,A,D,V,R,B,E,M,K,N;const P=new xe,T=new xe,U=new xe;let W,H,L,j,F,O;function q(){let t;for(t=0;286>t;t++)M[2*t]=0;for(t=0;30>t;t++)K[2*t]=0;for(t=0;19>t;t++)N[2*t]=0;M[512]=1,e.me=e.be=0,H=L=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++i<o&&n==s||(c>i?N[2*n]+=i:0!==n?(n!=r&&N[2*n]++,N[32]++):i>10?N[36]++:N[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.je[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;O>16-r?(n=e,F|=n<<O&65535,Q(F),F=n>>>16-O,O+=r-16):(F|=e<<O&65535,O+=r)}function Y(e,t){const n=2*e;X(65535&t[n],65535&t[n+1])}function Z(e,t){let n,r,s=-1,i=e[1],o=0,c=7,f=4;for(0===i&&(c=138,f=3),n=0;t>=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,N)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,N),o--),Y(16,N),X(o-3,2)):o>10?(Y(18,N),X(o-11,7)):(Y(17,N),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==O?(Q(F),F=0,O=0):8>O||(J(255&F),F>>>=8,O-=8)}function ee(t,r){let s,i,o;if(e.Fe[H]=t,e.Oe[H]=255&r,H++,0===t?M[2*r]++:(L++,t--,M[2*(xe._e[r]+256+1)]++,K[2*xe.Ae(t)]++),0==(8191&H)&&V>2){for(s=8*H,i=z-k,o=0;30>o;o++)s+=K[2*o]*(5+xe.Ve[o]);if(s>>>=3,L<n.floor(H/2)&&s<n.floor(i/2))return!0}return H==W-1}function te(t,n){let r,s,i,o,c=0;if(0!==H)do{r=e.Fe[c],s=e.Oe[c],c++,0===r?Y(s,t):(i=xe._e[s],Y(i+256+1,t),o=xe.De[i],0!==o&&(s-=xe.Ie[i],X(s,o)),r--,i=xe.Ae(r),Y(i,n),o=xe.Ve[i],0!==o&&(r-=xe.xe[i],X(r,o)))}while(H>c);Y(256,t),j=t[513]}function ne(){O>8?Q(F):O>0&&J(255&F),F=0,O=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),j=8,Q(n),Q(~n),e.je.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;V>0?(P.fe(e),T.fe(e),o=(()=>{let t;for(G(M,P.ge),G(K,T.ge),U.fe(e),t=18;t>=3&&0===N[2*xe.Be[t]+1];t--);return e.me+=14+3*(t+1),t})(),s=e.me+3+7>>>3,i=e.be+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Ae.Ee,Ae.Ue)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(N[2*xe.Be[r]+1],3);Z(M,e-1),Z(K,t-1)})(P.ge+1,T.ge+1,o+1),te(M,K)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,z-k,n),k=z,t.qe()}function ie(){let e,n,r,s;do{if(s=w-I-z,0===s&&0===z&&0===I)s=f;else if(-1==s)s--;else if(z>=f+f-262){u.set(u.subarray(f,f+f),0),_-=f,z-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.Ge)return;e=t.Je(u,z+I,s),I+=e,3>I||(p=255&u[z],p=(p<<g^255&u[z+1])&b)}while(262>I&&0!==t.Ge)}function oe(e){let t,n,r=A,s=z,i=x;const o=z>f-262?z-(f-262):0;let c=E;const a=l,w=z+258;let d=u[s+i-1],p=u[s+i];B>x||(r>>=2),c>I&&(c=I);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(_=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>I?I:i}e.ye=[],e.ze=[],e.pe=[],M=[],K=[],N=[],e.ke=(t,n)=>{const r=e.pe,s=r[n];let i=n<<1;for(;i<=e.he&&(i<e.he&&Me(t,r[i+1],r[i],e.ye)&&i++,!Me(t,s,r[i],e.ye));)r[n]=r[i],n=i,i<<=1;r[n]=s},e.Qe=(t,S,_,H,L,G)=>(H||(H=8),L||(L=8),G||(G=0),t.Xe=null,-1==S&&(S=6),1>L||L>9||8!=H||9>_||_>15||0>S||S>9||0>G||G>2?-2:(t.Ye=e,a=_,f=1<<a,l=f-1,m=L+7,y=1<<m,b=y-1,g=n.floor((m+3-1)/3),u=new s(2*f),h=[],d=[],W=1<<L+6,e.je=new s(4*W),o=4*W,e.Fe=new i(W),e.Oe=new s(W),V=S,R=G,(t=>(t.Ze=t.$e=0,t.Xe=null,e.pending=0,e.et=0,r=113,c=0,P.ae=M,P.ue=Ae.We,T.ae=K,T.ue=Ae.He,U.ae=N,U.ue=Ae.Le,F=0,O=0,j=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;D=Be[V].Ke,B=Be[V].Me,E=Be[V].Ne,A=Be[V].Pe,z=0,k=0,I=0,v=x=2,C=0,p=0})(),0))(t))),e.tt=()=>42!=r&&113!=r&&666!=r?-2:(e.Oe=null,e.Fe=null,e.je=null,d=null,h=null,u=null,e.Ye=null,113==r?-3:0),e.nt=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?-2:(Be[V].Te!=Be[t].Te&&0!==e.Ze&&(r=e.rt(1)),V!=t&&(V=t,D=Be[V].Ke,B=Be[V].Me,E=Be[V].Ne,A=Be[V].Pe),R=n,r)},e.st=(e,t,n)=>{let s,i=n,o=0;if(!t||42!=r)return-2;if(3>i)return 0;for(i>f-262&&(i=f-262,o=n-i),u.set(t.subarray(o,o+i),0),z=i,k=i,p=255&u[0],p=(p<<g^255&u[1])&b,s=0;i-3>=s;s++)p=(p<<g^255&u[s+2])&b,h[s&l]=d[p],d[p]=s;return 0},e.rt=(n,s)=>{let i,w,m,A,B;if(s>4||0>s)return-2;if(!n.it||!n.ot&&0!==n.Ge||666==r&&4!=s)return n.Xe=Ee[4],-2;if(0===n.ct)return n.Xe=Ee[7],-5;var E;if(t=n,A=c,c=s,42==r&&(w=8+(a-8<<4)<<8,m=(V-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==z&&(w|=32),w+=31-w%31,r=113,J((E=w)>>8&255),J(255&E)),0!==e.pending){if(t.qe(),0===t.ct)return c=-1,0}else if(0===t.Ge&&A>=s&&4!=s)return t.Xe=Ee[7],-5;if(666==r&&0!==t.Ge)return n.Xe=Ee[7],-5;if(0!==t.Ge||0!==I||0!=s&&666!=r){switch(B=-1,Be[V].Te){case 0:B=(e=>{let n,r=65535;for(r>o-5&&(r=o-5);;){if(1>=I){if(ie(),0===I&&0==e)return 0;if(0===I)break}if(z+=I,I=0,n=k+r,(0===z||z>=n)&&(I=z-n,z=n,se(!1),0===t.ct))return 0;if(z-k>=f-262&&(se(!1),0===t.ct))return 0}return se(4==e),0===t.ct?4==e?2:0:4==e?3:1})(s);break;case 1:B=(e=>{let n,r=0;for(;;){if(262>I){if(ie(),262>I&&0==e)return 0;if(0===I)break}if(3>I||(p=(p<<g^255&u[z+2])&b,r=65535&d[p],h[z&l]=d[p],d[p]=z),0===r||(z-r&65535)>f-262||2!=R&&(v=oe(r)),3>v)n=ee(0,255&u[z]),I--,z++;else if(n=ee(z-_,v-3),I-=v,v>D||3>I)z+=v,v=0,p=255&u[z],p=(p<<g^255&u[z+1])&b;else{v--;do{z++,p=(p<<g^255&u[z+2])&b,r=65535&d[p],h[z&l]=d[p],d[p]=z}while(0!=--v);z++}if(n&&(se(!1),0===t.ct))return 0}return se(4==e),0===t.ct?4==e?2:0:4==e?3:1})(s);break;case 2:B=(e=>{let n,r,s=0;for(;;){if(262>I){if(ie(),262>I&&0==e)return 0;if(0===I)break}if(3>I||(p=(p<<g^255&u[z+2])&b,s=65535&d[p],h[z&l]=d[p],d[p]=z),x=v,S=_,v=2,0!==s&&D>x&&f-262>=(z-s&65535)&&(2!=R&&(v=oe(s)),5>=v&&(1==R||3==v&&z-_>4096)&&(v=2)),3>x||v>x)if(0!==C){if(n=ee(0,255&u[z-1]),n&&se(!1),z++,I--,0===t.ct)return 0}else C=1,z++,I--;else{r=z+I-3,n=ee(z-1-S,x-3),I-=x-1,x-=2;do{++z>r||(p=(p<<g^255&u[z+2])&b,s=65535&d[p],h[z&l]=d[p],d[p]=z)}while(0!=--x);if(C=0,v=2,z++,n&&(se(!1),0===t.ct))return 0}}return 0!==C&&(n=ee(0,255&u[z-1]),C=0),se(4==e),0===t.ct?4==e?2:0:4==e?3:1})(s)}if(2!=B&&3!=B||(r=666),0==B||2==B)return 0===t.ct&&(c=-1),0;if(1==B){if(1==s)X(2,3),Y(256,Ae.Ee),$(),9>1+j+10-O&&(X(2,3),Y(256,Ae.Ee),$()),j=7;else if(re(0,0,!1),3==s)for(i=0;y>i;i++)d[i]=0;if(t.qe(),0===t.ct)return c=-1,0}}return 4!=s?0:1}}function Ne(){const e=this;e.ft=0,e.lt=0,e.Ge=0,e.Ze=0,e.ct=0,e.$e=0}function Pe(e){const t=new Ne,i=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(n.floor(o/16383)+1);var o;const c=new s(i);let f=e?e.level:-1;void 0===f&&(f=-1),t.Qe(f),t.it=c,this.append=(e,n)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.ft=0,t.ot=e,t.Ge=e.length;do{if(t.lt=0,t.ct=i,o=t.rt(0),0!=o)throw new r("deflating: "+t.Xe);t.lt&&(t.lt==i?w.push(new s(c)):w.push(c.slice(0,t.lt))),u+=t.lt,n&&t.ft>0&&t.ft!=a&&(n(t.ft),a=t.ft)}while(t.Ge>0||0===t.ct);return w.length>1?(f=new s(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]||new s,f}},this.flush=()=>{let e,n,o=0,f=0;const a=[];do{if(t.lt=0,t.ct=i,e=t.rt(4),1!=e&&0!=e)throw new r("deflating: "+t.Xe);i-t.ct>0&&a.push(c.slice(0,t.lt)),f+=t.lt}while(t.Ge>0||0===t.ct);return t.tt(),n=new s(f),a.forEach((e=>{n.set(e,o),o+=e.length})),n}}Ne.prototype={Qe(e,t){const n=this;return n.Ye=new Ke,t||(t=15),n.Ye.Qe(n,e,t)},rt(e){const t=this;return t.Ye?t.Ye.rt(t,e):-2},tt(){const e=this;if(!e.Ye)return-2;const t=e.Ye.tt();return e.Ye=null,t},nt(e,t){const n=this;return n.Ye?n.Ye.nt(n,e,t):-2},st(e,t){const n=this;return n.Ye?n.Ye.st(n,e,t):-2},Je(e,t,n){const r=this;let s=r.Ge;return s>n&&(s=n),0===s?0:(r.Ge-=s,e.set(r.ot.subarray(r.ft,r.ft+s),t),r.ft+=s,r.Ze+=s,s)},qe(){const e=this;let t=e.Ye.pending;t>e.ct&&(t=e.ct),0!==t&&(e.it.set(e.Ye.je.subarray(e.Ye.et,e.Ye.et+t),e.lt),e.lt+=t,e.Ye.et+=t,e.$e+=t,e.ct-=t,e.Ye.pending-=t,0===e.Ye.pending&&(e.Ye.et=0))}};const Te=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Ue=[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],We=[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],He=[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],Le=[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],je=[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],Fe=[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 Oe(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,C,z,_,I,x,A,D;z=0,g=o;do{n[e[t+z]]++,z++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,0;for(S=u[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,A=1<<k;g>k;k++,A<<=1)if(0>(A-=n[k]))return-3;if(0>(A-=n[g]))return-3;for(n[g]+=A,i[1]=k=0,z=1,x=2;0!=--g;)i[x]=k+=n[z],x++,z++;g=0,z=0;do{0!==(k=e[t+z])&&(d[i[k]++]=g),z++}while(++g<o);for(o=i[m],i[0]=g=0,z=0,b=-1,I=-S,s[0]=0,_=0,D=0;m>=v;v++)for(p=n[v];0!=p--;){for(;v>I+S;){if(b++,I+=S,D=m-I,D=D>S?S:D,(y=1<<(k=v-I))>p+1&&(y-=p+1,x=v,D>k))for(;++k<D&&(y<<=1)>n[++x];)y-=n[x];if(D=1<<k,h[0]+D>1440)return-3;s[b]=_=h[0],h[0]+=D,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>I-S,r[2]=_-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=_}for(r[1]=v-I,o>z?d[z]<c?(r[0]=256>d[z]?0:96,r[2]=d[z++]):(r[0]=a[d[z]-c]+16+64,r[2]=f[d[z++]-c]):r[0]=192,y=1<<v-I,k=g>>>I;D>k;k+=y)w.set(r,3*(_+k));for(k=1<<v-1;0!=(g&k);k>>>=1)g^=k;for(g^=k,C=(1<<I)-1;(g&C)!=i[b];)b--,I-=S,C=(1<<I)-1}return 0!==A&&1!=m?-5:0}function f(o){let f;for(e||(e=[],t=[],n=new c(16),r=[],s=new c(15),i=new c(16)),t.length<o&&(t=[]),f=0;o>f;f++)t[f]=0;for(f=0;16>f;f++)n[f]=0;for(f=0;3>f;f++)r[f]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.ut=(n,r,s,i,c)=>{let a;return f(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),-3==a?c.Xe="oversubscribed dynamic bit lengths tree":-5!=a&&0!==r[0]||(c.Xe="incomplete dynamic bit lengths tree",a=-3),a},this.wt=(n,r,s,i,c,a,l,u,w)=>{let h;return f(288),e[0]=0,h=o(s,0,n,257,He,Le,a,i,u,e,t),0!=h||0===i[0]?(-3==h?w.Xe="oversubscribed literal/length tree":-4!=h&&(w.Xe="incomplete literal/length tree",h=-3),h):(f(288),h=o(s,n,r,0,je,Fe,l,c,u,e,t),0!=h||0===c[0]&&n>257?(-3==h?w.Xe="oversubscribed distance tree":-5==h?(w.Xe="incomplete distance tree",h=-3):-4!=h&&(w.Xe="empty distance tree with lengths",h=-3),h):0)}}function qe(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,C;d=c.ft,p=c.Ge,w=o.ht,h=o.dt,y=o.write,m=y<o.read?o.read-y-1:o.end-y,b=Te[e],g=Te[t];do{for(;20>h;)p--,w|=(255&c.yt(d++))<<h,h+=8;if(f=w&b,a=n,l=r,C=3*(l+f),0!==(u=a[C]))for(;;){if(w>>=a[C+1],h-=a[C+1],0!=(16&u)){for(u&=15,k=a[C+2]+(w&Te[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.yt(d++))<<h,h+=8;for(f=w&g,a=s,l=i,C=3*(l+f),u=a[C];;){if(w>>=a[C+1],h-=a[C+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.yt(d++))<<h,h+=8;if(v=a[C+2]+(w&Te[u]),w>>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.bt[y++]=o.bt[S++]}while(0!=--u);else o.bt.set(o.bt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.bt[y++]=o.bt[S++],o.bt[y++]=o.bt[S++],k-=2):(o.bt.set(o.bt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.bt[y++]=o.bt[S++]}while(0!=--k);else o.bt.set(o.bt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(0!=(64&u))return c.Xe="invalid distance code",k=c.Ge-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ht=w,o.dt=h,c.Ge=p,c.Ze+=d-c.ft,c.ft=d,o.write=y,-3;f+=a[C+2],f+=w&Te[u],C=3*(l+f),u=a[C]}break}if(0!=(64&u))return 0!=(32&u)?(k=c.Ge-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ht=w,o.dt=h,c.Ge=p,c.Ze+=d-c.ft,c.ft=d,o.write=y,1):(c.Xe="invalid literal/length code",k=c.Ge-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ht=w,o.dt=h,c.Ge=p,c.Ze+=d-c.ft,c.ft=d,o.write=y,-3);if(f+=a[C+2],f+=w&Te[u],C=3*(l+f),0===(u=a[C])){w>>=a[C+1],h-=a[C+1],o.bt[y++]=a[C+2],m--;break}}else w>>=a[C+1],h-=a[C+1],o.bt[y++]=a[C+2],m--}while(m>=258&&p>=10);return k=c.Ge-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ht=w,o.dt=h,c.Ge=p,c.Ze+=d-c.ft,c.ft=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.gt=(e,y,m)=>{let b,g,k,v,S,C,z,_=0,I=0,x=0;for(x=y.ft,v=y.Ge,_=e.ht,I=e.dt,S=e.write,C=S<e.read?e.read-S-1:e.end-S;;)switch(t){case 0:if(C>=258&&v>=10&&(e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,m=p(u,w,r,h,s,d,e,y),x=y.ft,v=y.Ge,_=e.ht,I=e.dt,S=e.write,C=S<e.read?e.read-S-1:e.end-S,0!=m)){t=1==m?7:9;break}c=u,n=r,o=h,t=1;case 1:for(b=c;b>I;){if(0===v)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,v--,_|=(255&y.yt(x++))<<I,I+=8}if(g=3*(o+(_&Te[b])),_>>>=n[g+1],I-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(0!=(16&k)){a=15&k,i=n[g+2],t=2;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}if(0!=(32&k)){t=7;break}return t=9,y.Xe="invalid literal/length code",m=-3,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);case 2:for(b=a;b>I;){if(0===v)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,v--,_|=(255&y.yt(x++))<<I,I+=8}i+=_&Te[b],_>>=b,I-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>I;){if(0===v)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,v--,_|=(255&y.yt(x++))<<I,I+=8}if(g=3*(o+(_&Te[b])),_>>=n[g+1],I-=n[g+1],k=n[g],0!=(16&k)){a=15&k,l=n[g+2],t=4;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Xe="invalid distance code",m=-3,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);case 4:for(b=a;b>I;){if(0===v)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,v--,_|=(255&y.yt(x++))<<I,I+=8}l+=_&Te[b],_>>=b,I-=b,t=5;case 5:for(z=S-l;0>z;)z+=e.end;for(;0!==i;){if(0===C&&(S==e.end&&0!==e.read&&(S=0,C=S<e.read?e.read-S-1:e.end-S),0===C&&(e.write=S,m=e.kt(y,m),S=e.write,C=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,C=S<e.read?e.read-S-1:e.end-S),0===C)))return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);e.bt[S++]=e.bt[z++],C--,z==e.end&&(z=0),i--}t=0;break;case 6:if(0===C&&(S==e.end&&0!==e.read&&(S=0,C=S<e.read?e.read-S-1:e.end-S),0===C&&(e.write=S,m=e.kt(y,m),S=e.write,C=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,C=S<e.read?e.read-S-1:e.end-S),0===C)))return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,e.bt[S++]=f,C--,t=0;break;case 7:if(I>7&&(I-=8,v++,x--),e.write=S,m=e.kt(y,m),S=e.write,C=S<e.read?e.read-S-1:e.end-S,e.read!=e.write)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);t=8;case 8:return m=1,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);case 9:return m=-3,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);default:return m=-2,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m)}},e.vt=()=>{}}Oe.St=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=Ue,r[0]=We,0);const Ge=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Je(e,t){const n=this;let r,i=0,o=0,f=0,a=0;const l=[0],u=[0],w=new qe;let h=0,d=new c(4320);const p=new Oe;n.dt=0,n.ht=0,n.bt=new s(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==i&&w.vt(e),i=0,n.dt=0,n.ht=0,n.read=n.write=0},n.reset(e,null),n.kt=(e,t)=>{let r,s,i;return s=e.lt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.ct&&(r=e.ct),0!==r&&-5==t&&(t=0),e.ct-=r,e.$e+=r,e.it.set(n.bt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.ct&&(r=e.ct),0!==r&&-5==t&&(t=0),e.ct-=r,e.$e+=r,e.it.set(n.bt.subarray(i,i+r),s),s+=r,i+=r),e.lt=s,n.read=i,t},n.gt=(e,t)=>{let s,c,y,m,b,g,k,v;for(m=e.ft,b=e.Ge,c=n.ht,y=n.dt,g=n.write,k=g<n.read?n.read-g-1:n.end-g;;){let S,C,z,_,I,x,A,D;switch(i){case 0:for(;3>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}switch(s=7&c,h=1&s,s>>>1){case 0:c>>>=3,y-=3,s=7&y,c>>>=s,y-=s,i=1;break;case 1:S=[],C=[],z=[[]],_=[[]],Oe.St(S,C,z,_),w.init(S[0],C[0],z[0],0,_[0],0),c>>>=3,y-=3,i=6;break;case 2:c>>>=3,y-=3,i=3;break;case 3:return c>>>=3,y-=3,i=9,e.Xe="invalid block type",t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}if((~c>>>16&65535)!=(65535&c))return i=9,e.Xe="invalid stored block lengths",t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);o=65535&c,c=y=0,i=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k&&(n.write=g,t=n.kt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k)))return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);if(t=0,s=o,s>b&&(s=b),s>k&&(s=k),n.bt.set(e.Je(m,s),g),m+=s,b-=s,g+=s,k-=s,0!=(o-=s))break;i=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}if(f=s=16383&c,(31&s)>29||(s>>5&31)>29)return i=9,e.Xe="too many length or distance symbols",t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);if(s=258+(31&s)+(s>>5&31),!r||r.length<s)r=[];else for(v=0;s>v;v++)r[v]=0;c>>>=14,y-=14,a=0,i=4;case 4:for(;4+(f>>>10)>a;){for(;3>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}r[Ge[a++]]=7&c,c>>>=3,y-=3}for(;19>a;)r[Ge[a++]]=0;if(l[0]=7,s=p.ut(r,l,u,d,e),0!=s)return-3==(t=s)&&(r=null,i=9),n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);a=0,i=5;case 5:for(;s=f,258+(31&s)+(s>>5&31)>a;){let o,w;for(s=l[0];s>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}if(s=d[3*(u[0]+(c&Te[s]))+1],w=d[3*(u[0]+(c&Te[s]))+2],16>w)c>>>=s,y-=s,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;s+v>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}if(c>>>=s,y-=s,o+=c&Te[v],c>>>=v,y-=v,v=a,s=f,v+o>258+(31&s)+(s>>5&31)||16==w&&1>v)return r=null,i=9,e.Xe="invalid bit length repeat",t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,I=[],x=[],A=[],D=[],I[0]=9,x[0]=6,s=f,s=p.wt(257+(31&s),1+(s>>5&31),r,I,x,A,D,d,e),0!=s)return-3==s&&(r=null,i=9),t=s,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);w.init(I[0],x[0],d,A[0],d,D[0]),i=6;case 6:if(n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,1!=(t=w.gt(n,e,t)))return n.kt(e,t);if(t=0,w.vt(e),m=e.ft,b=e.Ge,c=n.ht,y=n.dt,g=n.write,k=g<n.read?n.read-g-1:n.end-g,0===h){i=0;break}i=7;case 7:if(n.write=g,t=n.kt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,n.read!=n.write)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);i=8;case 8:return t=1,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);case 9:return t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);default:return t=-2,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t)}}},n.vt=e=>{n.reset(e,null),n.bt=null,d=null},n.Ct=(e,t,r)=>{n.bt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.zt=()=>1==i?1:0}const Qe=[0,0,255,255];function Xe(){const e=this;function t(e){return e&&e._t?(e.Ze=e.$e=0,e.Xe=null,e._t.mode=7,e._t.It.reset(e,null),0):-2}e.mode=0,e.method=0,e.xt=[0],e.At=0,e.marker=0,e.Dt=0,e.Vt=t=>(e.It&&e.It.vt(t),e.It=null,0),e.Rt=(n,r)=>(n.Xe=null,e.It=null,8>r||r>15?(e.Vt(n),-2):(e.Dt=r,n._t.It=new Je(n,1<<r),t(n),0)),e.Bt=(e,t)=>{let n,r;if(!e||!e._t||!e.ot)return-2;const s=e._t;for(t=4==t?-5:0,n=-5;;)switch(s.mode){case 0:if(0===e.Ge)return n;if(n=t,e.Ge--,e.Ze++,8!=(15&(s.method=e.yt(e.ft++)))){s.mode=13,e.Xe="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.Dt){s.mode=13,e.Xe="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.Ge)return n;if(n=t,e.Ge--,e.Ze++,r=255&e.yt(e.ft++),((s.method<<8)+r)%31!=0){s.mode=13,e.Xe="incorrect header check",s.marker=5;break}if(0==(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.Ge)return n;n=t,e.Ge--,e.Ze++,s.At=(255&e.yt(e.ft++))<<24&4278190080,s.mode=3;case 3:if(0===e.Ge)return n;n=t,e.Ge--,e.Ze++,s.At+=(255&e.yt(e.ft++))<<16&16711680,s.mode=4;case 4:if(0===e.Ge)return n;n=t,e.Ge--,e.Ze++,s.At+=(255&e.yt(e.ft++))<<8&65280,s.mode=5;case 5:return 0===e.Ge?n:(n=t,e.Ge--,e.Ze++,s.At+=255&e.yt(e.ft++),s.mode=6,2);case 6:return s.mode=13,e.Xe="need dictionary",s.marker=0,-2;case 7:if(n=s.It.gt(e,n),-3==n){s.mode=13,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.It.reset(e,s.xt),s.mode=12;case 12:return e.Ge=0,1;case 13:return-3;default:return-2}},e.Et=(e,t,n)=>{let r=0,s=n;if(!e||!e._t||6!=e._t.mode)return-2;const i=e._t;return s<1<<i.Dt||(s=(1<<i.Dt)-1,r=n-s),i.It.Ct(t,r,s),i.mode=7,0},e.Mt=e=>{let n,r,s,i,o;if(!e||!e._t)return-2;const c=e._t;if(13!=c.mode&&(c.mode=13,c.marker=0),0===(n=e.Ge))return-5;for(r=e.ft,s=c.marker;0!==n&&4>s;)e.yt(r)==Qe[s]?s++:s=0!==e.yt(r)?0:4-s,r++,n--;return e.Ze+=r-e.ft,e.ft=r,e.Ge=n,c.marker=s,4!=s?-3:(i=e.Ze,o=e.$e,t(e),e.Ze=i,e.$e=o,c.mode=7,0)},e.Kt=e=>e&&e._t&&e._t.It?e._t.It.zt():-2}function Ye(){}function Ze(e){const t=new Ye,i=e&&e.chunkSize?n.floor(2*e.chunkSize):131072,o=new s(i);let c=!1;t.Rt(),t.it=o,this.append=(e,n)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.ft=0,t.ot=e,t.Ge=e.length;do{if(t.lt=0,t.ct=i,0!==t.Ge||c||(t.ft=0,c=!0),a=t.Bt(0),c&&-5===a){if(0!==t.Ge)throw new r("inflating: bad input")}else if(0!==a&&1!==a)throw new r("inflating: "+t.Xe);if((c||1===a)&&t.Ge===e.length)throw new r("inflating: bad input");t.lt&&(t.lt===i?f.push(new s(o)):f.push(o.slice(0,t.lt))),h+=t.lt,n&&t.ft>0&&t.ft!=u&&(n(t.ft),u=t.ft)}while(t.Ge>0||0===t.ct);return f.length>1?(l=new s(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]||new s,l}},this.flush=()=>{t.Vt()}}Ye.prototype={Rt(e){const t=this;return t._t=new Xe,e||(e=15),t._t.Rt(t,e)},Bt(e){const t=this;return t._t?t._t.Bt(t,e):-2},Vt(){const e=this;if(!e._t)return-2;const t=e._t.Vt(e);return e._t=null,t},Mt(){const e=this;return e._t?e._t.Mt(e):-2},Et(e,t){const n=this;return n._t?n._t.Et(n,e,t):-2},yt(e){return this.ot[e]},Je(e,t){return this.ot.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=Pe,self.Inflate=Ze};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}});}
7416
7440
 
7417
7441
  function initShimAsyncCodec(library, options = {}, registerDataHandler) {
7418
7442
  return {
@@ -7563,52 +7587,6 @@
7563
7587
  }
7564
7588
  }
7565
7589
 
7566
- class TextReader extends Reader {
7567
-
7568
- constructor(text) {
7569
- super();
7570
- this.blobReader = new BlobReader(new Blob([text], { type: CONTENT_TYPE_TEXT_PLAIN }));
7571
- }
7572
-
7573
- init() {
7574
- const reader = this;
7575
- super.init();
7576
- reader.blobReader.init();
7577
- reader.size = reader.blobReader.size;
7578
- }
7579
-
7580
- readUint8Array(offset, length) {
7581
- return this.blobReader.readUint8Array(offset, length);
7582
- }
7583
- }
7584
-
7585
- class TextWriter extends Writer {
7586
-
7587
- constructor(encoding) {
7588
- super();
7589
- this.encoding = encoding;
7590
- this.blob = new Blob([], { type: CONTENT_TYPE_TEXT_PLAIN });
7591
- }
7592
-
7593
- writeUint8Array(array) {
7594
- this.blob = new Blob([this.blob, array.buffer], { type: CONTENT_TYPE_TEXT_PLAIN });
7595
- }
7596
-
7597
- getData() {
7598
- const writer = this;
7599
- if (writer.blob.text && (writer.encoding === undefined || (writer.encoding && writer.encoding.toLowerCase() == "utf-8"))) {
7600
- return writer.blob.text();
7601
- } else {
7602
- const reader = new FileReader();
7603
- return new Promise((resolve, reject) => {
7604
- reader.onload = event => resolve(event.target.result);
7605
- reader.onerror = () => reject(reader.error);
7606
- reader.readAsText(writer.blob, writer.encoding);
7607
- });
7608
- }
7609
- }
7610
- }
7611
-
7612
7590
  class Data64URIReader extends Reader {
7613
7591
 
7614
7592
  constructor(dataURI) {
@@ -7705,6 +7683,42 @@
7705
7683
  }
7706
7684
  }
7707
7685
 
7686
+ class TextReader extends BlobReader {
7687
+
7688
+ constructor(text) {
7689
+ super(new Blob([text], { type: CONTENT_TYPE_TEXT_PLAIN }));
7690
+ }
7691
+ }
7692
+
7693
+ class TextWriter extends BlobWriter {
7694
+
7695
+ constructor(encoding) {
7696
+ super(encoding);
7697
+ Object.assign(this, {
7698
+ encoding,
7699
+ utf8: !encoding || encoding.toLowerCase() == "utf-8"
7700
+ });
7701
+ }
7702
+
7703
+ async getData() {
7704
+ const {
7705
+ encoding,
7706
+ utf8
7707
+ } = this;
7708
+ const blob = await super.getData();
7709
+ if (blob.text && utf8) {
7710
+ return blob.text();
7711
+ } else {
7712
+ const reader = new FileReader();
7713
+ return new Promise((resolve, reject) => {
7714
+ reader.onload = ({ target }) => resolve(target.result);
7715
+ reader.onerror = () => reject(reader.error);
7716
+ reader.readAsText(blob, encoding);
7717
+ });
7718
+ }
7719
+ }
7720
+ }
7721
+
7708
7722
  class FetchReader extends Reader {
7709
7723
 
7710
7724
  constructor(url, options) {
@@ -8303,40 +8317,48 @@
8303
8317
  const commentOffset = extraFieldOffset + fileEntry.extraFieldLength;
8304
8318
  const versionMadeBy = getUint16(directoryView, offset + 4);
8305
8319
  const msDosCompatible = (versionMadeBy & 0) == 0;
8320
+ const rawFilename = directoryArray.subarray(filenameOffset, extraFieldOffset);
8321
+ const commentLength = getUint16(directoryView, offset + 32);
8322
+ const endOffset = commentOffset + commentLength;
8323
+ const rawComment = directoryArray.subarray(commentOffset, endOffset);
8324
+ const filenameUTF8 = languageEncodingFlag;
8325
+ const commentUTF8 = languageEncodingFlag;
8326
+ const directory = msDosCompatible && ((getUint8(directoryView, offset + 38) & FILE_ATTR_MSDOS_DIR_MASK) == FILE_ATTR_MSDOS_DIR_MASK);
8327
+ const offsetFileEntry = getUint32(directoryView, offset + 42) + prependedDataLength;
8306
8328
  Object.assign(fileEntry, {
8307
8329
  versionMadeBy,
8308
8330
  msDosCompatible,
8309
8331
  compressedSize: 0,
8310
8332
  uncompressedSize: 0,
8311
- commentLength: getUint16(directoryView, offset + 32),
8312
- directory: msDosCompatible && ((getUint8(directoryView, offset + 38) & FILE_ATTR_MSDOS_DIR_MASK) == FILE_ATTR_MSDOS_DIR_MASK),
8313
- offset: getUint32(directoryView, offset + 42) + prependedDataLength,
8333
+ commentLength,
8334
+ directory,
8335
+ offset: offsetFileEntry,
8314
8336
  internalFileAttribute: getUint16(directoryView, offset + 36),
8315
8337
  externalFileAttribute: getUint32(directoryView, offset + 38),
8316
- rawFilename: directoryArray.subarray(filenameOffset, extraFieldOffset),
8317
- filenameUTF8: languageEncodingFlag,
8318
- commentUTF8: languageEncodingFlag,
8338
+ rawFilename,
8339
+ filenameUTF8,
8340
+ commentUTF8,
8319
8341
  rawExtraField: directoryArray.subarray(extraFieldOffset, commentOffset)
8320
8342
  });
8321
- startOffset = Math.max(fileEntry.offset, startOffset);
8322
- const endOffset = commentOffset + fileEntry.commentLength;
8323
- fileEntry.rawComment = directoryArray.subarray(commentOffset, endOffset);
8324
8343
  const [filename, comment] = await Promise.all([
8325
- decodeText(fileEntry.rawFilename, fileEntry.filenameUTF8 ? CHARSET_UTF8 : filenameEncoding || CHARSET_CP437),
8326
- decodeText(fileEntry.rawComment, fileEntry.commentUTF8 ? CHARSET_UTF8 : commentEncoding || CHARSET_CP437)
8344
+ decodeText(rawFilename, filenameUTF8 ? CHARSET_UTF8 : filenameEncoding || CHARSET_CP437),
8345
+ decodeText(rawComment, commentUTF8 ? CHARSET_UTF8 : commentEncoding || CHARSET_CP437)
8327
8346
  ]);
8328
- fileEntry.filename = filename;
8329
- fileEntry.comment = comment;
8330
- if (!fileEntry.directory && fileEntry.filename.endsWith(DIRECTORY_SIGNATURE)) {
8331
- fileEntry.directory = true;
8332
- }
8347
+ Object.assign(fileEntry, {
8348
+ rawComment,
8349
+ filename,
8350
+ comment,
8351
+ directory: directory || filename.endsWith(DIRECTORY_SIGNATURE)
8352
+ });
8353
+ startOffset = Math.max(offsetFileEntry, startOffset);
8333
8354
  await readCommonFooter(fileEntry, fileEntry, directoryView, offset + 6);
8334
8355
  const entry = new Entry(fileEntry);
8335
8356
  entry.getData = (writer, options) => fileEntry.getData(writer, entry, options);
8336
8357
  offset = endOffset;
8337
- if (options.onprogress) {
8358
+ const { onprogress } = options;
8359
+ if (onprogress) {
8338
8360
  try {
8339
- await options.onprogress(indexFile + 1, filesLength, new Entry(fileEntry));
8361
+ await onprogress(indexFile + 1, filesLength, new Entry(fileEntry));
8340
8362
  } catch (_error) {
8341
8363
  // ignored
8342
8364
  }
@@ -8411,8 +8433,10 @@
8411
8433
  dataArray = await readUint8Array(reader, offset, 30 + localDirectory.filenameLength + localDirectory.extraFieldLength);
8412
8434
  localDirectory.rawExtraField = dataArray.subarray(30 + localDirectory.filenameLength);
8413
8435
  await readCommonFooter(zipEntry, localDirectory, dataView, 4);
8414
- fileEntry.lastAccessDate = localDirectory.lastAccessDate;
8415
- fileEntry.creationDate = localDirectory.creationDate;
8436
+ Object.assign(fileEntry, {
8437
+ lastAccessDate: localDirectory.lastAccessDate,
8438
+ creationDate: localDirectory.creationDate
8439
+ });
8416
8440
  const encrypted = zipEntry.encrypted && localDirectory.encrypted;
8417
8441
  const zipCrypto = encrypted && !extraFieldAES;
8418
8442
  if (encrypted) {
@@ -8456,8 +8480,7 @@
8456
8480
  preventClose
8457
8481
  },
8458
8482
  config,
8459
- streamOptions: { signal, size, onstart, onprogress, onend },
8460
- codecConstructor: config.Inflate
8483
+ streamOptions: { signal, size, onstart, onprogress, onend }
8461
8484
  };
8462
8485
  writable.size += (await runWorker({ readable, writable }, workerOptions)).size;
8463
8486
  if (!preventClose) {
@@ -8509,9 +8532,11 @@
8509
8532
  // ignored
8510
8533
  }
8511
8534
  const compressionMethod = getUint16(dataView, offset + 4);
8512
- directory.signature = getUint32(dataView, offset + 10);
8513
- directory.uncompressedSize = getUint32(dataView, offset + 18);
8514
- directory.compressedSize = getUint32(dataView, offset + 14);
8535
+ Object.assign(directory, {
8536
+ signature: getUint32(dataView, offset + 10),
8537
+ uncompressedSize: getUint32(dataView, offset + 18),
8538
+ compressedSize: getUint32(dataView, offset + 14)
8539
+ });
8515
8540
  const extraFieldZip64 = extraField.get(EXTRAFIELD_TYPE_ZIP64);
8516
8541
  if (extraFieldZip64) {
8517
8542
  readExtraFieldZip64(extraFieldZip64, directory);
@@ -8570,14 +8595,16 @@
8570
8595
 
8571
8596
  async function readExtraFieldUnicode(extraFieldUnicode, propertyName, rawPropertyName, directory, fileEntry) {
8572
8597
  const extraFieldView = getDataView$1(extraFieldUnicode.data);
8573
- extraFieldUnicode.version = getUint8(extraFieldView, 0);
8574
- extraFieldUnicode.signature = getUint32(extraFieldView, 1);
8575
8598
  const crc32 = new Crc32();
8576
8599
  crc32.append(fileEntry[rawPropertyName]);
8577
8600
  const dataViewSignature = getDataView$1(new Uint8Array(4));
8578
8601
  dataViewSignature.setUint32(0, crc32.get(), true);
8579
- extraFieldUnicode[propertyName] = await decodeText(extraFieldUnicode.data.subarray(5));
8580
- extraFieldUnicode.valid = !fileEntry.bitFlag.languageEncodingFlag && extraFieldUnicode.signature == getUint32(dataViewSignature, 0);
8602
+ Object.assign(extraFieldUnicode, {
8603
+ version: getUint8(extraFieldView, 0),
8604
+ signature: getUint32(extraFieldView, 1),
8605
+ [propertyName]: await decodeText(extraFieldUnicode.data.subarray(5)),
8606
+ valid: !fileEntry.bitFlag.languageEncodingFlag && extraFieldUnicode.signature == getUint32(dataViewSignature, 0)
8607
+ });
8581
8608
  if (extraFieldUnicode.valid) {
8582
8609
  directory[propertyName] = extraFieldUnicode[propertyName];
8583
8610
  directory[propertyName + "UTF8"] = true;
@@ -8586,12 +8613,15 @@
8586
8613
 
8587
8614
  function readExtraFieldAES(extraFieldAES, directory, compressionMethod) {
8588
8615
  const extraFieldView = getDataView$1(extraFieldAES.data);
8589
- extraFieldAES.vendorVersion = getUint8(extraFieldView, 0);
8590
- extraFieldAES.vendorId = getUint8(extraFieldView, 2);
8591
8616
  const strength = getUint8(extraFieldView, 4);
8592
- extraFieldAES.strength = strength;
8593
- extraFieldAES.originalCompressionMethod = compressionMethod;
8594
- directory.compressionMethod = extraFieldAES.compressionMethod = getUint16(extraFieldView, 5);
8617
+ Object.assign(extraFieldAES, {
8618
+ vendorVersion: getUint8(extraFieldView, 0),
8619
+ vendorId: getUint8(extraFieldView, 2),
8620
+ strength,
8621
+ originalCompressionMethod: compressionMethod,
8622
+ compressionMethod: getUint16(extraFieldView, 5)
8623
+ });
8624
+ directory.compressionMethod = extraFieldAES.compressionMethod;
8595
8625
  }
8596
8626
 
8597
8627
  function readExtraFieldNTFS(extraFieldNTFS, directory) {
@@ -8779,7 +8809,7 @@
8779
8809
  if (writer instanceof WritableStream) {
8780
8810
  writer = { writable: writer };
8781
8811
  }
8782
- if (writer.writable.size == undefined) {
8812
+ if (writer.writable.size === undefined) {
8783
8813
  writer.writable.size = 0;
8784
8814
  }
8785
8815
  Object.assign(this, {
@@ -8851,12 +8881,12 @@
8851
8881
  options.directory = name.endsWith(DIRECTORY_SIGNATURE);
8852
8882
  }
8853
8883
  const rawFilename = encodeText(name);
8854
- if (rawFilename.length > MAX_16_BITS) {
8884
+ if (getLength(rawFilename) > MAX_16_BITS) {
8855
8885
  throw new Error(ERR_INVALID_ENTRY_NAME);
8856
8886
  }
8857
8887
  const comment = options.comment || "";
8858
8888
  const rawComment = encodeText(comment);
8859
- if (rawComment.length > MAX_16_BITS) {
8889
+ if (getLength(rawComment) > MAX_16_BITS) {
8860
8890
  throw new Error(ERR_INVALID_ENTRY_COMMENT);
8861
8891
  }
8862
8892
  const version = zipWriter.options.version || options.version || 0;
@@ -8881,19 +8911,19 @@
8881
8911
  if (extraField) {
8882
8912
  let extraFieldSize = 0;
8883
8913
  let offset = 0;
8884
- extraField.forEach(data => extraFieldSize += 4 + data.length);
8914
+ extraField.forEach(data => extraFieldSize += 4 + getLength(data));
8885
8915
  rawExtraField = new Uint8Array(extraFieldSize);
8886
8916
  extraField.forEach((data, type) => {
8887
8917
  if (type > MAX_16_BITS) {
8888
8918
  throw new Error(ERR_INVALID_EXTRAFIELD_TYPE);
8889
8919
  }
8890
- if (data.length > MAX_16_BITS) {
8920
+ if (getLength(data) > MAX_16_BITS) {
8891
8921
  throw new Error(ERR_INVALID_EXTRAFIELD_DATA);
8892
8922
  }
8893
8923
  arraySet(rawExtraField, new Uint16Array([type]), offset);
8894
- arraySet(rawExtraField, new Uint16Array([data.length]), offset + 2);
8924
+ arraySet(rawExtraField, new Uint16Array([getLength(data)]), offset + 2);
8895
8925
  arraySet(rawExtraField, data, offset + 4);
8896
- offset += 4 + data.length;
8926
+ offset += 4 + getLength(data);
8897
8927
  });
8898
8928
  }
8899
8929
  let extendedTimestamp = getOptionValue(zipWriter, options, "extendedTimestamp");
@@ -8982,7 +9012,7 @@
8982
9012
  });
8983
9013
  const headerInfo = getHeaderInfo(options);
8984
9014
  const dataDescriptorInfo = getDataDescriptorInfo(options);
8985
- maximumEntrySize = headerInfo.localHeaderArray.length + maximumCompressedSize + dataDescriptorInfo.dataDescriptorArray.length;
9015
+ maximumEntrySize = getLength(headerInfo.localHeaderArray, dataDescriptorInfo.dataDescriptorArray) + maximumCompressedSize;
8986
9016
  zipWriter.pendingEntriesSize += maximumEntrySize;
8987
9017
  let fileEntry;
8988
9018
  try {
@@ -9013,7 +9043,8 @@
9013
9043
  let bufferedWrite;
9014
9044
  let releaseLockWriter;
9015
9045
  let releaseLockCurrentFileEntry;
9016
- let writingBufferedData;
9046
+ let writingBufferedEntryData;
9047
+ let writingEntryData;
9017
9048
  let fileWriter;
9018
9049
  files.set(name, fileEntry);
9019
9050
  try {
@@ -9036,8 +9067,9 @@
9036
9067
  if (!bufferedWrite) {
9037
9068
  await lockPreviousFileEntry;
9038
9069
  }
9039
- fileEntry.writingData = true;
9070
+ writingEntryData = true;
9040
9071
  fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
9072
+ writingEntryData = false;
9041
9073
  files.set(name, fileEntry);
9042
9074
  fileEntry.filename = name;
9043
9075
  if (bufferedWrite) {
@@ -9045,7 +9077,7 @@
9045
9077
  let blob = await fileWriter.getData();
9046
9078
  await lockPreviousFileEntry;
9047
9079
  await requestLockWriter();
9048
- writingBufferedData = true;
9080
+ writingBufferedEntryData = true;
9049
9081
  const { writable } = writer;
9050
9082
  if (!dataDescriptor) {
9051
9083
  const arrayBuffer = await sliceAsArrayBuffer(blob, 0, 26);
@@ -9064,7 +9096,7 @@
9064
9096
  blob = blob.slice(arrayBuffer.byteLength);
9065
9097
  }
9066
9098
  await blob.stream().pipeTo(writable, { preventClose: true, signal });
9067
- writingBufferedData = false;
9099
+ writingBufferedEntryData = false;
9068
9100
  }
9069
9101
  fileEntry.offset = zipWriter.offset;
9070
9102
  if (fileEntry.zip64) {
@@ -9076,7 +9108,7 @@
9076
9108
  zipWriter.offset += fileEntry.length;
9077
9109
  return fileEntry;
9078
9110
  } catch (error) {
9079
- if ((bufferedWrite && writingBufferedData) || (!bufferedWrite && fileEntry.writingData)) {
9111
+ if ((bufferedWrite && writingBufferedEntryData) || (!bufferedWrite && writingEntryData)) {
9080
9112
  zipWriter.hasCorruptedEntries = true;
9081
9113
  if (error) {
9082
9114
  error.corruptedEntry = true;
@@ -9200,8 +9232,7 @@
9200
9232
  transferStreams: false
9201
9233
  },
9202
9234
  config,
9203
- streamOptions: { signal, size, onstart, onprogress, onend },
9204
- codecConstructor: config.Deflate
9235
+ streamOptions: { signal, size, onstart, onprogress, onend }
9205
9236
  };
9206
9237
  const result = await runWorker({ readable, writable }, workerOptions);
9207
9238
  writable.size += result.size;
@@ -9232,7 +9263,7 @@
9232
9263
  creationDate,
9233
9264
  lastAccessDate,
9234
9265
  encrypted,
9235
- length: localHeaderArray.length + compressedSize + dataDescriptorArray.length,
9266
+ length: getLength(localHeaderArray, dataDescriptorArray) + compressedSize,
9236
9267
  compressionMethod,
9237
9268
  version,
9238
9269
  headerArray,
@@ -9245,6 +9276,7 @@
9245
9276
  function getHeaderInfo(options) {
9246
9277
  const {
9247
9278
  rawFilename,
9279
+ lastModDate,
9248
9280
  lastAccessDate,
9249
9281
  creationDate,
9250
9282
  password,
@@ -9257,12 +9289,11 @@
9257
9289
  encryptionStrength,
9258
9290
  extendedTimestamp,
9259
9291
  } = options;
9260
- let version = options.version || VERSION_DEFLATE;
9261
9292
  const compressed = level !== 0 && !directory;
9262
- const encrypted = Boolean(password && password.length);
9293
+ const encrypted = Boolean(password && getLength(password));
9263
9294
  let rawExtraFieldAES;
9264
9295
  if (encrypted && !zipCrypto) {
9265
- rawExtraFieldAES = new Uint8Array(EXTRAFIELD_DATA_AES.length + 2);
9296
+ rawExtraFieldAES = new Uint8Array(getLength(EXTRAFIELD_DATA_AES) + 2);
9266
9297
  const extraFieldAESView = getDataView(rawExtraFieldAES);
9267
9298
  setUint16(extraFieldAESView, 0, EXTRAFIELD_TYPE_AES);
9268
9299
  arraySet(rawExtraFieldAES, EXTRAFIELD_DATA_AES, 2);
@@ -9276,10 +9307,10 @@
9276
9307
  rawExtraFieldExtendedTimestamp = new Uint8Array(9 + (lastAccessDate ? 4 : 0) + (creationDate ? 4 : 0));
9277
9308
  const extraFieldExtendedTimestampView = getDataView(rawExtraFieldExtendedTimestamp);
9278
9309
  setUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);
9279
- setUint16(extraFieldExtendedTimestampView, 2, rawExtraFieldExtendedTimestamp.length - 4);
9310
+ setUint16(extraFieldExtendedTimestampView, 2, getLength(rawExtraFieldExtendedTimestamp) - 4);
9280
9311
  const extraFieldExtendedTimestampFlag = 0x1 + (lastAccessDate ? 0x2 : 0) + (creationDate ? 0x4 : 0);
9281
9312
  setUint8(extraFieldExtendedTimestampView, 4, extraFieldExtendedTimestampFlag);
9282
- setUint32(extraFieldExtendedTimestampView, 5, Math.floor(options.lastModDate.getTime() / 1000));
9313
+ setUint32(extraFieldExtendedTimestampView, 5, Math.floor(lastModDate.getTime() / 1000));
9283
9314
  if (lastAccessDate) {
9284
9315
  setUint32(extraFieldExtendedTimestampView, 9, Math.floor(lastAccessDate.getTime() / 1000));
9285
9316
  }
@@ -9289,7 +9320,7 @@
9289
9320
  try {
9290
9321
  rawExtraFieldNTFS = new Uint8Array(36);
9291
9322
  const extraFieldNTFSView = getDataView(rawExtraFieldNTFS);
9292
- const lastModTimeNTFS = getTimeNTFS(options.lastModDate);
9323
+ const lastModTimeNTFS = getTimeNTFS(lastModDate);
9293
9324
  setUint16(extraFieldNTFSView, 0, EXTRAFIELD_TYPE_NTFS);
9294
9325
  setUint16(extraFieldNTFSView, 2, 32);
9295
9326
  setUint16(extraFieldNTFSView, 8, EXTRAFIELD_TYPE_NTFS_TAG1);
@@ -9311,6 +9342,7 @@
9311
9342
  if (compressed) {
9312
9343
  compressionMethod = COMPRESSION_METHOD_DEFLATE;
9313
9344
  }
9345
+ let version = options.version || VERSION_DEFLATE;
9314
9346
  if (zip64) {
9315
9347
  version = version > VERSION_ZIP64 ? version : VERSION_ZIP64;
9316
9348
  }
@@ -9331,30 +9363,30 @@
9331
9363
  setUint16(headerView, 4, compressionMethod);
9332
9364
  const dateArray = new Uint32Array(1);
9333
9365
  const dateView = getDataView(dateArray);
9334
- let lastModDate;
9335
- if (options.lastModDate < MIN_DATE) {
9336
- lastModDate = MIN_DATE;
9337
- } else if (options.lastModDate > MAX_DATE) {
9338
- lastModDate = MAX_DATE;
9366
+ let lastModDateMsDos;
9367
+ if (lastModDate < MIN_DATE) {
9368
+ lastModDateMsDos = MIN_DATE;
9369
+ } else if (lastModDate > MAX_DATE) {
9370
+ lastModDateMsDos = MAX_DATE;
9339
9371
  } else {
9340
- lastModDate = options.lastModDate;
9372
+ lastModDateMsDos = lastModDate;
9341
9373
  }
9342
- setUint16(dateView, 0, (((lastModDate.getHours() << 6) | lastModDate.getMinutes()) << 5) | lastModDate.getSeconds() / 2);
9343
- setUint16(dateView, 2, ((((lastModDate.getFullYear() - 1980) << 4) | (lastModDate.getMonth() + 1)) << 5) | lastModDate.getDate());
9374
+ setUint16(dateView, 0, (((lastModDateMsDos.getHours() << 6) | lastModDateMsDos.getMinutes()) << 5) | lastModDateMsDos.getSeconds() / 2);
9375
+ setUint16(dateView, 2, ((((lastModDateMsDos.getFullYear() - 1980) << 4) | (lastModDateMsDos.getMonth() + 1)) << 5) | lastModDateMsDos.getDate());
9344
9376
  const rawLastModDate = dateArray[0];
9345
9377
  setUint32(headerView, 6, rawLastModDate);
9346
- setUint16(headerView, 22, rawFilename.length);
9347
- const extraFieldLength = rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length + rawExtraField.length;
9378
+ setUint16(headerView, 22, getLength(rawFilename));
9379
+ const extraFieldLength = getLength(rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraField);
9348
9380
  setUint16(headerView, 24, extraFieldLength);
9349
- const localHeaderArray = new Uint8Array(30 + rawFilename.length + extraFieldLength);
9381
+ const localHeaderArray = new Uint8Array(30 + getLength(rawFilename) + extraFieldLength);
9350
9382
  const localHeaderView = getDataView(localHeaderArray);
9351
9383
  setUint32(localHeaderView, 0, LOCAL_FILE_HEADER_SIGNATURE);
9352
9384
  arraySet(localHeaderArray, headerArray, 4);
9353
9385
  arraySet(localHeaderArray, rawFilename, 30);
9354
- arraySet(localHeaderArray, rawExtraFieldAES, 30 + rawFilename.length);
9355
- arraySet(localHeaderArray, rawExtraFieldExtendedTimestamp, 30 + rawFilename.length + rawExtraFieldAES.length);
9356
- arraySet(localHeaderArray, rawExtraFieldNTFS, 30 + rawFilename.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length);
9357
- arraySet(localHeaderArray, rawExtraField, 30 + rawFilename.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length);
9386
+ arraySet(localHeaderArray, rawExtraFieldAES, 30 + getLength(rawFilename));
9387
+ arraySet(localHeaderArray, rawExtraFieldExtendedTimestamp, 30 + getLength(rawFilename, rawExtraFieldAES));
9388
+ arraySet(localHeaderArray, rawExtraFieldNTFS, 30 + getLength(rawFilename, rawExtraFieldAES, rawExtraFieldExtendedTimestamp));
9389
+ arraySet(localHeaderArray, rawExtraField, 30 + getLength(rawFilename, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS));
9358
9390
  return {
9359
9391
  localHeaderArray,
9360
9392
  headerArray,
@@ -9450,15 +9482,24 @@
9450
9482
  let directoryDataLength = 0;
9451
9483
  let directoryOffset = zipWriter.offset;
9452
9484
  let filesLength = files.size;
9453
- for (const [, fileEntry] of files) {
9485
+ for (const [, {
9486
+ rawFilename,
9487
+ rawExtraFieldZip64,
9488
+ rawExtraFieldAES,
9489
+ rawExtraField,
9490
+ rawComment,
9491
+ rawExtraFieldExtendedTimestamp,
9492
+ rawExtraFieldNTFS
9493
+ }] of files) {
9454
9494
  directoryDataLength += 46 +
9455
- fileEntry.rawFilename.length +
9456
- fileEntry.rawComment.length +
9457
- fileEntry.rawExtraFieldZip64.length +
9458
- fileEntry.rawExtraFieldAES.length +
9459
- fileEntry.rawExtraFieldExtendedTimestamp.length +
9460
- fileEntry.rawExtraFieldNTFS.length +
9461
- fileEntry.rawExtraField.length;
9495
+ getLength(
9496
+ rawFilename,
9497
+ rawComment,
9498
+ rawExtraFieldZip64,
9499
+ rawExtraFieldAES,
9500
+ rawExtraFieldExtendedTimestamp,
9501
+ rawExtraFieldNTFS,
9502
+ rawExtraField);
9462
9503
  }
9463
9504
  let zip64 = options.zip64 || zipWriter.options.zip64 || false;
9464
9505
  if (directoryOffset >= MAX_32_BITS || directoryDataLength >= MAX_32_BITS || filesLength >= MAX_16_BITS) {
@@ -9472,9 +9513,11 @@
9472
9513
  const directoryView = getDataView(directoryArray);
9473
9514
  for (const [indexFileEntry, fileEntry] of Array.from(files.values()).entries()) {
9474
9515
  const {
9516
+ offset: fileEntryOffset,
9475
9517
  rawFilename,
9476
9518
  rawExtraFieldZip64,
9477
9519
  rawExtraFieldAES,
9520
+ rawExtraFieldNTFS,
9478
9521
  rawExtraField,
9479
9522
  rawComment,
9480
9523
  versionMadeBy,
@@ -9483,27 +9526,27 @@
9483
9526
  zip64,
9484
9527
  msDosCompatible,
9485
9528
  internalFileAttribute,
9486
- externalFileAttribute
9529
+ externalFileAttribute,
9530
+ extendedTimestamp,
9531
+ lastModDate
9487
9532
  } = fileEntry;
9488
9533
  let rawExtraFieldExtendedTimestamp;
9489
- let rawExtraFieldNTFS;
9490
- if (fileEntry.extendedTimestamp) {
9491
- rawExtraFieldNTFS = fileEntry.rawExtraFieldNTFS;
9534
+ if (extendedTimestamp) {
9492
9535
  rawExtraFieldExtendedTimestamp = new Uint8Array(9);
9493
9536
  const extraFieldExtendedTimestampView = getDataView(rawExtraFieldExtendedTimestamp);
9494
9537
  setUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);
9495
- setUint16(extraFieldExtendedTimestampView, 2, rawExtraFieldExtendedTimestamp.length - 4);
9538
+ setUint16(extraFieldExtendedTimestampView, 2, getLength(rawExtraFieldExtendedTimestamp) - 4);
9496
9539
  setUint8(extraFieldExtendedTimestampView, 4, 0x1);
9497
- setUint32(extraFieldExtendedTimestampView, 5, Math.floor(fileEntry.lastModDate.getTime() / 1000));
9540
+ setUint32(extraFieldExtendedTimestampView, 5, Math.floor(lastModDate.getTime() / 1000));
9498
9541
  } else {
9499
- rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array();
9542
+ rawExtraFieldExtendedTimestamp = new Uint8Array();
9500
9543
  }
9501
- const extraFieldLength = rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length + rawExtraField.length;
9544
+ const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraField);
9502
9545
  setUint32(directoryView, offset, CENTRAL_FILE_HEADER_SIGNATURE);
9503
9546
  setUint16(directoryView, offset + 4, versionMadeBy);
9504
9547
  arraySet(directoryArray, headerArray, offset + 6);
9505
9548
  setUint16(directoryView, offset + 30, extraFieldLength);
9506
- setUint16(directoryView, offset + 32, rawComment.length);
9549
+ setUint16(directoryView, offset + 32, getLength(rawComment));
9507
9550
  setUint16(directoryView, offset + 36, internalFileAttribute);
9508
9551
  if (externalFileAttribute) {
9509
9552
  setUint32(directoryView, offset + 38, externalFileAttribute);
@@ -9513,16 +9556,16 @@
9513
9556
  if (zip64) {
9514
9557
  setUint32(directoryView, offset + 42, MAX_32_BITS);
9515
9558
  } else {
9516
- setUint32(directoryView, offset + 42, fileEntry.offset);
9559
+ setUint32(directoryView, offset + 42, fileEntryOffset);
9517
9560
  }
9518
9561
  arraySet(directoryArray, rawFilename, offset + 46);
9519
- arraySet(directoryArray, rawExtraFieldZip64, offset + 46 + rawFilename.length);
9520
- arraySet(directoryArray, rawExtraFieldAES, offset + 46 + rawFilename.length + rawExtraFieldZip64.length);
9521
- arraySet(directoryArray, rawExtraFieldExtendedTimestamp, offset + 46 + rawFilename.length + rawExtraFieldZip64.length + rawExtraFieldAES.length);
9522
- arraySet(directoryArray, rawExtraFieldNTFS, offset + 46 + rawFilename.length + rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length);
9523
- arraySet(directoryArray, rawExtraField, offset + 46 + rawFilename.length + rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length);
9524
- arraySet(directoryArray, rawComment, offset + 46 + rawFilename.length + extraFieldLength);
9525
- offset += 46 + rawFilename.length + extraFieldLength + rawComment.length;
9562
+ arraySet(directoryArray, rawExtraFieldZip64, offset + 46 + getLength(rawFilename));
9563
+ arraySet(directoryArray, rawExtraFieldAES, offset + 46 + getLength(rawFilename, rawExtraFieldZip64));
9564
+ arraySet(directoryArray, rawExtraFieldExtendedTimestamp, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES));
9565
+ arraySet(directoryArray, rawExtraFieldNTFS, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp));
9566
+ arraySet(directoryArray, rawExtraField, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS));
9567
+ arraySet(directoryArray, rawComment, offset + 46 + getLength(rawFilename) + extraFieldLength);
9568
+ offset += 46 + getLength(rawFilename, rawComment) + extraFieldLength;
9526
9569
  if (options.onprogress) {
9527
9570
  try {
9528
9571
  await options.onprogress(indexFileEntry + 1, files.size, new Entry(fileEntry));
@@ -9553,9 +9596,10 @@
9553
9596
  setUint16(directoryView, offset + 10, filesLength);
9554
9597
  setUint32(directoryView, offset + 12, directoryDataLength);
9555
9598
  setUint32(directoryView, offset + 16, directoryOffset);
9556
- if (comment && comment.length) {
9557
- if (comment.length <= MAX_16_BITS) {
9558
- setUint16(directoryView, offset + 20, comment.length);
9599
+ const commentLength = getLength(comment);
9600
+ if (commentLength) {
9601
+ if (commentLength <= MAX_16_BITS) {
9602
+ setUint16(directoryView, offset + 20, commentLength);
9559
9603
  } else {
9560
9604
  throw new Error(ERR_INVALID_COMMENT);
9561
9605
  }
@@ -9563,7 +9607,7 @@
9563
9607
  const { writable } = zipWriter.writer;
9564
9608
  await initStream(zipWriter.writer);
9565
9609
  await writeData(writable, directoryArray);
9566
- if (comment && comment.length) {
9610
+ if (commentLength) {
9567
9611
  await writeData(writable, comment);
9568
9612
  }
9569
9613
  }
@@ -9579,7 +9623,7 @@
9579
9623
  async function writeData(writable, array) {
9580
9624
  const streamWriter = writable.getWriter();
9581
9625
  await streamWriter.ready;
9582
- writable.size += array.length;
9626
+ writable.size += getLength(array);
9583
9627
  await streamWriter.write(array);
9584
9628
  streamWriter.releaseLock();
9585
9629
  }
@@ -9622,6 +9666,12 @@
9622
9666
  return new DataView(array.buffer);
9623
9667
  }
9624
9668
 
9669
+ function getLength(...arrayLikes) {
9670
+ let result = 0;
9671
+ arrayLikes.forEach(arrayLike => arrayLike && (result += arrayLike.length));
9672
+ return result;
9673
+ }
9674
+
9625
9675
  /*
9626
9676
  Copyright (c) 2022 Gildas Lormeau. All rights reserved.
9627
9677
 
@@ -10269,7 +10319,7 @@
10269
10319
  // ignored
10270
10320
  }
10271
10321
  configure({ baseURL });
10272
- t(configure);
10322
+ e(configure);
10273
10323
 
10274
10324
  /// <reference types="./index.d.ts" />
10275
10325