single-file-core 1.5.130 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/helper.js +27 -1
- package/core/index.js +3 -3
- package/package.json +1 -1
- package/processors/frame-tree/content/content-frame-tree.js +1 -1
- package/processors/hooks/content/content-hooks-frames-web.js +48 -38
- package/processors/hooks/content/content-hooks-frames.js +28 -27
- package/processors/lazy/content/content-lazy-loader.js +10 -10
- package/single-file.js +9 -8
- package/test/capture/common.js +1 -0
- package/test/capture/deferred-content-options.js +71 -0
- package/vendor/zip/zip.js +5 -1
- package/vendor/zip/zip.min.js +1 -1
- package/zip-build/lib/zip-vendor.js +6 -0
- package/zip-build/rollup.config.js +1 -1
package/core/helper.js
CHANGED
|
@@ -82,6 +82,15 @@ const DEFAULT_REPLACEMENT_CHARACTER = "_";
|
|
|
82
82
|
const DEFAULT_REPLACEMENT_CHARACTERS = ["~", "+", "?", "%", "*", ":", "|", """, "<", ">", "\"];
|
|
83
83
|
const CHARACTER_CLASS_SPECIAL_CHARACTERS = ["[", "]", "^", "-", "\\"];
|
|
84
84
|
const NESTING_TRACK_ID_ATTRIBUTE_NAME = "data-sf-nesting-track-id";
|
|
85
|
+
const DEPRECATED_OPTION_NAMES = {
|
|
86
|
+
loadDeferredImages: "loadDeferredContent",
|
|
87
|
+
loadDeferredImagesMaxIdleTime: "loadDeferredContentMaxIdleTime",
|
|
88
|
+
loadDeferredImagesBlockCookies: "loadDeferredContentBlockCookies",
|
|
89
|
+
loadDeferredImagesBlockStorage: "loadDeferredContentBlockStorage",
|
|
90
|
+
loadDeferredImagesKeepZoomLevel: "loadDeferredContentKeepZoomLevel",
|
|
91
|
+
loadDeferredImagesDispatchScrollEvent: "loadDeferredContentDispatchScrollEvent",
|
|
92
|
+
loadDeferredImagesBeforeFrames: "loadDeferredContentBeforeFrames"
|
|
93
|
+
};
|
|
85
94
|
const addEventListener = (type, listener, options) => globalThis.addEventListener(type, listener, options);
|
|
86
95
|
const removeEventListener = (type, listener, options) => globalThis.removeEventListener(type, listener, options);
|
|
87
96
|
// eslint-disable-next-line no-unused-vars
|
|
@@ -117,6 +126,7 @@ export {
|
|
|
117
126
|
parseDocContent,
|
|
118
127
|
markInvalidNesting,
|
|
119
128
|
fixInvalidNesting,
|
|
129
|
+
normalizeOptions,
|
|
120
130
|
ON_BEFORE_CAPTURE_EVENT_NAME,
|
|
121
131
|
ON_AFTER_CAPTURE_EVENT_NAME,
|
|
122
132
|
WIN_ID_ATTRIBUTE_NAME,
|
|
@@ -153,6 +163,22 @@ export {
|
|
|
153
163
|
// lossy format: the same frame costs an order of magnitude less than as a PNG.
|
|
154
164
|
// toDataURL falls back to PNG without reporting it when it does not support the
|
|
155
165
|
// format, so the type it returned is tested instead of assumed
|
|
166
|
+
function normalizeOptions(options) {
|
|
167
|
+
let normalizedOptions = options;
|
|
168
|
+
if (options) {
|
|
169
|
+
Object.keys(DEPRECATED_OPTION_NAMES).forEach(deprecatedName => {
|
|
170
|
+
const optionName = DEPRECATED_OPTION_NAMES[deprecatedName];
|
|
171
|
+
if (options[deprecatedName] !== undefined && options[optionName] === undefined) {
|
|
172
|
+
if (normalizedOptions == options) {
|
|
173
|
+
normalizedOptions = Object.assign({}, options);
|
|
174
|
+
}
|
|
175
|
+
normalizedOptions[optionName] = options[deprecatedName];
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
return normalizedOptions;
|
|
180
|
+
}
|
|
181
|
+
|
|
156
182
|
function getPosterDataURI(canvasElement) {
|
|
157
183
|
for (const contentType of POSTER_CONTENT_TYPES) {
|
|
158
184
|
const dataURI = canvasElement.toDataURL(contentType, POSTER_QUALITY);
|
|
@@ -535,7 +561,7 @@ function getResourcesInfo(win, doc, element, options, data, elementHidden, compu
|
|
|
535
561
|
const imageData = {
|
|
536
562
|
currentSrc: elementHidden ?
|
|
537
563
|
EMPTY_RESOURCE :
|
|
538
|
-
(options.
|
|
564
|
+
(options.loadDeferredContent && element.getAttribute(LAZY_SRC_ATTRIBUTE_NAME)) || element.currentSrc
|
|
539
565
|
};
|
|
540
566
|
data.images.push(imageData);
|
|
541
567
|
element.setAttribute(IMAGE_ATTRIBUTE_NAME, data.images.length - 1);
|
package/core/index.js
CHANGED
|
@@ -103,7 +103,7 @@ const FINALIZE_STAGE = 4;
|
|
|
103
103
|
const STAGES = [{
|
|
104
104
|
sequential: [
|
|
105
105
|
{ action: "preProcessPage" },
|
|
106
|
-
{ option: "
|
|
106
|
+
{ option: "loadDeferredContentKeepZoomLevel", action: "resetZoomLevel" },
|
|
107
107
|
{ action: "replaceStyleContents" },
|
|
108
108
|
{ action: "replaceInvalidElements" },
|
|
109
109
|
{ action: "resetCharsetMeta" },
|
|
@@ -641,7 +641,7 @@ class Processor {
|
|
|
641
641
|
imgElement.dataset.singleFileOriginURL = imgElement.getAttribute("src");
|
|
642
642
|
imgElement.setAttribute("src", imageData.currentSrc);
|
|
643
643
|
}
|
|
644
|
-
if (this.options.
|
|
644
|
+
if (this.options.loadDeferredContent) {
|
|
645
645
|
if ((!imgElement.getAttribute("src") || imgElement.getAttribute("src") == util.EMPTY_RESOURCE) && imgElement.getAttribute("data-src")) {
|
|
646
646
|
imageData.src = imgElement.dataset.src;
|
|
647
647
|
imgElement.setAttribute("src", imgElement.dataset.src);
|
|
@@ -652,7 +652,7 @@ class Processor {
|
|
|
652
652
|
}
|
|
653
653
|
}
|
|
654
654
|
});
|
|
655
|
-
if (this.options.
|
|
655
|
+
if (this.options.loadDeferredContent) {
|
|
656
656
|
this.doc.querySelectorAll("img[data-srcset]").forEach(imgElement => {
|
|
657
657
|
if (!imgElement.getAttribute("srcset") && imgElement.getAttribute("data-srcset")) {
|
|
658
658
|
imgElement.setAttribute("srcset", imgElement.dataset.srcset);
|
package/package.json
CHANGED
|
@@ -114,7 +114,7 @@ async function onMessage(event) {
|
|
|
114
114
|
}
|
|
115
115
|
if (!TOP_WINDOW) {
|
|
116
116
|
globalThis.stop();
|
|
117
|
-
if (message.options.
|
|
117
|
+
if (message.options.loadDeferredContent) {
|
|
118
118
|
lazy.process(message.options);
|
|
119
119
|
}
|
|
120
120
|
await initRequestAsync(message);
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
|
|
24
24
|
(() => {
|
|
25
25
|
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
const
|
|
26
|
+
const LOAD_DEFERRED_CONTENT_START_EVENT = "single-file-load-deferred-content-start";
|
|
27
|
+
const LOAD_DEFERRED_CONTENT_END_EVENT = "single-file-load-deferred-content-end";
|
|
28
|
+
const LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_START_EVENT = "single-file-load-deferred-content-keep-zoom-level-start";
|
|
29
|
+
const LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_END_EVENT = "single-file-load-deferred-content-keep-zoom-level-end";
|
|
30
|
+
const LOAD_DEFERRED_CONTENT_RESET_ZOOM_LEVEL_EVENT = "single-file-load-deferred-content-keep-zoom-level-reset";
|
|
31
|
+
const LOAD_DEFERRED_CONTENT_RESET_EVENT = "single-file-load-deferred-content-reset";
|
|
32
32
|
const BLOCK_COOKIES_START_EVENT = "single-file-block-cookies-start";
|
|
33
33
|
const BLOCK_COOKIES_END_EVENT = "single-file-block-cookies-end";
|
|
34
34
|
const BLOCK_STORAGE_START_EVENT = "single-file-block-storage-start";
|
|
@@ -89,12 +89,12 @@
|
|
|
89
89
|
new MutationObserver(init).observe(document, { childList: true });
|
|
90
90
|
|
|
91
91
|
function init() {
|
|
92
|
-
document.addEventListener(
|
|
93
|
-
document.addEventListener(
|
|
94
|
-
document.addEventListener(
|
|
95
|
-
document.addEventListener(
|
|
96
|
-
document.addEventListener(
|
|
97
|
-
document.addEventListener(
|
|
92
|
+
document.addEventListener(LOAD_DEFERRED_CONTENT_START_EVENT, onLoadDeferredContentStart);
|
|
93
|
+
document.addEventListener(LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_START_EVENT, onLoadDeferredContentKeepZoomLevelStart);
|
|
94
|
+
document.addEventListener(LOAD_DEFERRED_CONTENT_END_EVENT, onLoadDeferredContentEnd);
|
|
95
|
+
document.addEventListener(LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_END_EVENT, onLoadDeferredContentKeepZoomLevelEnd);
|
|
96
|
+
document.addEventListener(LOAD_DEFERRED_CONTENT_RESET_EVENT, resetScreenSize);
|
|
97
|
+
document.addEventListener(LOAD_DEFERRED_CONTENT_RESET_ZOOM_LEVEL_EVENT, onLoadDeferredContentResetZoomLevel);
|
|
98
98
|
document.addEventListener(DISPATCH_SCROLL_START_EVENT, onDispatchScrollStart);
|
|
99
99
|
document.addEventListener(DISPATCH_SCROLL_END_EVENT, onDispatchScrollEnd);
|
|
100
100
|
document.addEventListener(BLOCK_COOKIES_START_EVENT, onBlockCookiesStart);
|
|
@@ -107,23 +107,33 @@
|
|
|
107
107
|
document.addEventListener(BOOTSTRAP_EVENT, onBootstrap);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
function
|
|
111
|
-
|
|
110
|
+
function onLoadDeferredContentStart(event) {
|
|
111
|
+
loadDeferredContentStart(false, getMinZoomFactor(event));
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
function
|
|
115
|
-
|
|
114
|
+
function onLoadDeferredContentKeepZoomLevelStart(event) {
|
|
115
|
+
loadDeferredContentStart(true, getMinZoomFactor(event));
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
function
|
|
119
|
-
|
|
118
|
+
function getMinZoomFactor(event) {
|
|
119
|
+
try {
|
|
120
|
+
const { minZoomFactor } = JSON.parse(event.detail);
|
|
121
|
+
return minZoomFactor > 0 && minZoomFactor <= 1 ? minZoomFactor : 0;
|
|
122
|
+
// eslint-disable-next-line no-unused-vars
|
|
123
|
+
} catch (error) {
|
|
124
|
+
return 0;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function onLoadDeferredContentEnd() {
|
|
129
|
+
loadDeferredContentEnd();
|
|
120
130
|
}
|
|
121
131
|
|
|
122
|
-
function
|
|
123
|
-
|
|
132
|
+
function onLoadDeferredContentKeepZoomLevelEnd() {
|
|
133
|
+
loadDeferredContentEnd(true);
|
|
124
134
|
}
|
|
125
135
|
|
|
126
|
-
function
|
|
136
|
+
function onLoadDeferredContentResetZoomLevel() {
|
|
127
137
|
const transform = document.documentElement.style.getPropertyValue("-sf-transform");
|
|
128
138
|
const transformPriority = document.documentElement.style.getPropertyPriority("-sf-transform");
|
|
129
139
|
const transformOrigin = document.documentElement.style.getPropertyValue("-sf-transform-origin");
|
|
@@ -211,34 +221,34 @@
|
|
|
211
221
|
}
|
|
212
222
|
}
|
|
213
223
|
|
|
214
|
-
function
|
|
224
|
+
function loadDeferredContentStart(keepZoomLevel, minZoomFactor) {
|
|
215
225
|
const scrollingElement = document.scrollingElement || document.documentElement;
|
|
216
226
|
const clientHeight = scrollingElement.clientHeight;
|
|
217
227
|
const clientWidth = scrollingElement.clientWidth;
|
|
218
|
-
const
|
|
219
|
-
const
|
|
228
|
+
const maxScrollY = Math.max(scrollingElement.scrollHeight - clientHeight, clientHeight);
|
|
229
|
+
const maxScrollX = Math.max(scrollingElement.scrollWidth - clientWidth, clientWidth);
|
|
220
230
|
document.querySelectorAll("[loading=lazy]").forEach(element => {
|
|
221
231
|
element.loading = "eager";
|
|
222
232
|
element.setAttribute(LAZY_LOAD_ATTRIBUTE, "");
|
|
223
233
|
});
|
|
224
|
-
scrollingElement.__defineGetter__("clientHeight", () =>
|
|
225
|
-
scrollingElement.__defineGetter__("clientWidth", () =>
|
|
226
|
-
screen.__defineGetter__("height", () =>
|
|
227
|
-
screen.__defineGetter__("width", () =>
|
|
234
|
+
scrollingElement.__defineGetter__("clientHeight", () => maxScrollY);
|
|
235
|
+
scrollingElement.__defineGetter__("clientWidth", () => maxScrollX);
|
|
236
|
+
screen.__defineGetter__("height", () => maxScrollY);
|
|
237
|
+
screen.__defineGetter__("width", () => maxScrollX);
|
|
228
238
|
globalThis._singleFile_innerHeight = globalThis.innerHeight;
|
|
229
239
|
globalThis._singleFile_innerWidth = globalThis.innerWidth;
|
|
230
|
-
globalThis.__defineGetter__("innerHeight", () =>
|
|
231
|
-
globalThis.__defineGetter__("innerWidth", () =>
|
|
240
|
+
globalThis.__defineGetter__("innerHeight", () => maxScrollY);
|
|
241
|
+
globalThis.__defineGetter__("innerWidth", () => maxScrollX);
|
|
232
242
|
if (!keepZoomLevel) {
|
|
233
243
|
if (!globalThis._singleFile_getBoundingClientRect) {
|
|
234
244
|
globalThis._singleFile_getBoundingClientRect = Element.prototype.getBoundingClientRect;
|
|
235
245
|
Element.prototype.getBoundingClientRect = function () {
|
|
236
246
|
const boundingRect = globalThis._singleFile_getBoundingClientRect.call(this);
|
|
237
247
|
if (this == scrollingElement) {
|
|
238
|
-
boundingRect.__defineGetter__("height", () =>
|
|
239
|
-
boundingRect.__defineGetter__("bottom", () =>
|
|
240
|
-
boundingRect.__defineGetter__("width", () =>
|
|
241
|
-
boundingRect.__defineGetter__("right", () =>
|
|
248
|
+
boundingRect.__defineGetter__("height", () => maxScrollY);
|
|
249
|
+
boundingRect.__defineGetter__("bottom", () => maxScrollY + boundingRect.top);
|
|
250
|
+
boundingRect.__defineGetter__("width", () => maxScrollX);
|
|
251
|
+
boundingRect.__defineGetter__("right", () => maxScrollX + boundingRect.left);
|
|
242
252
|
}
|
|
243
253
|
return boundingRect;
|
|
244
254
|
};
|
|
@@ -283,9 +293,9 @@
|
|
|
283
293
|
setFunctionName(ImageWrapper, "Image");
|
|
284
294
|
globalThis.__defineGetter__("Image", () => ImageWrapper);
|
|
285
295
|
}
|
|
286
|
-
const verticalZoomFactor = clientHeight /
|
|
287
|
-
const horizontalZoomFactor = clientWidth /
|
|
288
|
-
const zoomFactor = Math.min(verticalZoomFactor, horizontalZoomFactor);
|
|
296
|
+
const verticalZoomFactor = clientHeight / maxScrollY;
|
|
297
|
+
const horizontalZoomFactor = clientWidth / maxScrollX;
|
|
298
|
+
const zoomFactor = Math.max(Math.min(verticalZoomFactor, horizontalZoomFactor), minZoomFactor || 0);
|
|
289
299
|
const scrollPosition = { x: globalThis.scrollX, y: globalThis.scrollY };
|
|
290
300
|
if (zoomFactor < 1) {
|
|
291
301
|
const transform = document.documentElement.style.getPropertyValue("transform");
|
|
@@ -336,7 +346,7 @@
|
|
|
336
346
|
}
|
|
337
347
|
}
|
|
338
348
|
|
|
339
|
-
function
|
|
349
|
+
function loadDeferredContentEnd(keepZoomLevel) {
|
|
340
350
|
document.querySelectorAll("[" + LAZY_LOAD_ATTRIBUTE + "]").forEach(element => {
|
|
341
351
|
element.loading = "lazy";
|
|
342
352
|
element.removeAttribute(LAZY_LOAD_ATTRIBUTE);
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
* Source.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
24
|
+
const LOAD_DEFERRED_CONTENT_START_EVENT = "single-file-load-deferred-content-start";
|
|
25
|
+
const LOAD_DEFERRED_CONTENT_END_EVENT = "single-file-load-deferred-content-end";
|
|
26
|
+
const LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_START_EVENT = "single-file-load-deferred-content-keep-zoom-level-start";
|
|
27
|
+
const LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_END_EVENT = "single-file-load-deferred-content-keep-zoom-level-end";
|
|
28
|
+
const LOAD_DEFERRED_CONTENT_RESET_ZOOM_LEVEL_EVENT = "single-file-load-deferred-content-keep-zoom-level-reset";
|
|
29
|
+
const LOAD_DEFERRED_CONTENT_RESET_EVENT = "single-file-load-deferred-content-reset";
|
|
30
30
|
const BLOCK_COOKIES_START_EVENT = "single-file-block-cookies-start";
|
|
31
31
|
const BLOCK_COOKIES_END_EVENT = "single-file-block-cookies-end";
|
|
32
32
|
const DISPATCH_SCROLL_START_EVENT = "single-file-dispatch-scroll-event-start";
|
|
@@ -98,9 +98,9 @@ function onNewWorklet(event) {
|
|
|
98
98
|
export {
|
|
99
99
|
getFontsData,
|
|
100
100
|
getWorkletsData,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
loadDeferredContentStart,
|
|
102
|
+
loadDeferredContentEnd,
|
|
103
|
+
loadDeferredContentResetZoomLevel,
|
|
104
104
|
LOAD_IMAGE_EVENT,
|
|
105
105
|
IMAGE_LOADED_EVENT
|
|
106
106
|
};
|
|
@@ -113,44 +113,45 @@ function getWorkletsData() {
|
|
|
113
113
|
return Array.from(worklets.values());
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
function
|
|
117
|
-
if (options.
|
|
116
|
+
function loadDeferredContentStart(options) {
|
|
117
|
+
if (options.loadDeferredContentBlockCookies) {
|
|
118
118
|
document.dispatchEvent(new CustomEvent(BLOCK_COOKIES_START_EVENT));
|
|
119
119
|
}
|
|
120
|
-
if (options.
|
|
120
|
+
if (options.loadDeferredContentBlockStorage) {
|
|
121
121
|
document.dispatchEvent(new CustomEvent(BLOCK_STORAGE_START_EVENT));
|
|
122
122
|
}
|
|
123
|
-
if (options.
|
|
123
|
+
if (options.loadDeferredContentDispatchScrollEvent) {
|
|
124
124
|
document.dispatchEvent(new CustomEvent(DISPATCH_SCROLL_START_EVENT));
|
|
125
125
|
}
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
const detail = JSON.stringify({ minZoomFactor: options.loadDeferredContentMinZoomFactor });
|
|
127
|
+
if (options.loadDeferredContentKeepZoomLevel) {
|
|
128
|
+
document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_START_EVENT, { detail }));
|
|
128
129
|
} else {
|
|
129
|
-
document.dispatchEvent(new CustomEvent(
|
|
130
|
+
document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_CONTENT_START_EVENT, { detail }));
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
|
|
133
|
-
function
|
|
134
|
-
if (options.
|
|
134
|
+
function loadDeferredContentEnd(options) {
|
|
135
|
+
if (options.loadDeferredContentBlockCookies) {
|
|
135
136
|
document.dispatchEvent(new CustomEvent(BLOCK_COOKIES_END_EVENT));
|
|
136
137
|
}
|
|
137
|
-
if (options.
|
|
138
|
+
if (options.loadDeferredContentBlockStorage) {
|
|
138
139
|
document.dispatchEvent(new CustomEvent(BLOCK_STORAGE_END_EVENT));
|
|
139
140
|
}
|
|
140
|
-
if (options.
|
|
141
|
+
if (options.loadDeferredContentDispatchScrollEvent) {
|
|
141
142
|
document.dispatchEvent(new CustomEvent(DISPATCH_SCROLL_END_EVENT));
|
|
142
143
|
}
|
|
143
|
-
if (options.
|
|
144
|
-
document.dispatchEvent(new CustomEvent(
|
|
144
|
+
if (options.loadDeferredContentKeepZoomLevel) {
|
|
145
|
+
document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_END_EVENT));
|
|
145
146
|
} else {
|
|
146
|
-
document.dispatchEvent(new CustomEvent(
|
|
147
|
+
document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_CONTENT_END_EVENT));
|
|
147
148
|
}
|
|
148
149
|
}
|
|
149
150
|
|
|
150
|
-
function
|
|
151
|
-
if (options.
|
|
152
|
-
document.dispatchEvent(new CustomEvent(
|
|
151
|
+
function loadDeferredContentResetZoomLevel(options) {
|
|
152
|
+
if (options.loadDeferredContentKeepZoomLevel) {
|
|
153
|
+
document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_CONTENT_RESET_ZOOM_LEVEL_EVENT));
|
|
153
154
|
} else {
|
|
154
|
-
document.dispatchEvent(new CustomEvent(
|
|
155
|
+
document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_CONTENT_RESET_EVENT));
|
|
155
156
|
}
|
|
156
157
|
}
|
|
@@ -81,7 +81,7 @@ async function process(options) {
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
function resetZoomLevel(options) {
|
|
84
|
-
hooksFrames.
|
|
84
|
+
hooksFrames.loadDeferredContentResetZoomLevel(options);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
function triggerLazyLoading(options) {
|
|
@@ -112,12 +112,12 @@ function triggerLazyLoading(options) {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
});
|
|
115
|
-
await setIdleTimeout(options.
|
|
115
|
+
await setIdleTimeout(options.loadDeferredContentMaxIdleTime * 2);
|
|
116
116
|
await deferForceLazyLoadEnd(observer, options, cleanupAndResolve);
|
|
117
117
|
observer.observe(document, { subtree: true, childList: true, attributes: true });
|
|
118
118
|
document.addEventListener(hooksFrames.LOAD_IMAGE_EVENT, onImageLoadEvent);
|
|
119
119
|
document.addEventListener(hooksFrames.IMAGE_LOADED_EVENT, onImageLoadedEvent);
|
|
120
|
-
hooksFrames.
|
|
120
|
+
hooksFrames.loadDeferredContentStart(options);
|
|
121
121
|
|
|
122
122
|
async function setIdleTimeout(delay) {
|
|
123
123
|
await setAsyncTimeout("idleTimeout", async () => {
|
|
@@ -130,7 +130,7 @@ function triggerLazyLoading(options) {
|
|
|
130
130
|
clearAsyncTimeout("idleTimeout");
|
|
131
131
|
await setIdleTimeout(Math.max(500, delay / 2));
|
|
132
132
|
}
|
|
133
|
-
}, delay
|
|
133
|
+
}, delay);
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
function onResourceLoad(event) {
|
|
@@ -167,28 +167,28 @@ function triggerLazyLoading(options) {
|
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
async function deferLazyLoadEnd(observer, options, resolve) {
|
|
170
|
-
await setAsyncTimeout("loadTimeout", () => lazyLoadEnd(observer, options, resolve), options.
|
|
170
|
+
await setAsyncTimeout("loadTimeout", () => lazyLoadEnd(observer, options, resolve), options.loadDeferredContentMaxIdleTime);
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
async function deferForceLazyLoadEnd(observer, options, resolve) {
|
|
174
174
|
await setAsyncTimeout("maxTimeout", async () => {
|
|
175
175
|
await clearAsyncTimeout("loadTimeout");
|
|
176
176
|
await lazyLoadEnd(observer, options, resolve);
|
|
177
|
-
}, options.
|
|
177
|
+
}, options.loadDeferredContentMaxIdleTime * 10);
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
async function lazyLoadEnd(observer, options, resolve) {
|
|
181
181
|
await clearAsyncTimeout("idleTimeout");
|
|
182
|
-
hooksFrames.
|
|
182
|
+
hooksFrames.loadDeferredContentEnd(options);
|
|
183
183
|
await setAsyncTimeout("endTimeout", async () => {
|
|
184
184
|
await clearAsyncTimeout("maxTimeout");
|
|
185
185
|
resolve();
|
|
186
|
-
}, options.
|
|
186
|
+
}, options.loadDeferredContentMaxIdleTime / 2);
|
|
187
187
|
observer.disconnect();
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
async function setAsyncTimeout(type, callback, delay
|
|
191
|
-
if (browser && browser.runtime && browser.runtime.sendMessage
|
|
190
|
+
async function setAsyncTimeout(type, callback, delay) {
|
|
191
|
+
if (browser && browser.runtime && browser.runtime.sendMessage) {
|
|
192
192
|
if (!timeouts.get(type) || !timeouts.get(type).pending) {
|
|
193
193
|
const timeoutData = { callback, pending: true };
|
|
194
194
|
timeouts.set(type, timeoutData);
|
package/single-file.js
CHANGED
|
@@ -47,6 +47,7 @@ function init(initOptions) {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
async function getPageData(options = {}, initOptions, doc, win) {
|
|
50
|
+
options = helper.normalizeOptions(options);
|
|
50
51
|
if (doc === undefined) {
|
|
51
52
|
doc = globalThis.document;
|
|
52
53
|
}
|
|
@@ -61,30 +62,30 @@ async function getPageData(options = {}, initOptions, doc, win) {
|
|
|
61
62
|
const preInitializationPromises = [];
|
|
62
63
|
if (!options.saveRawPage) {
|
|
63
64
|
let lazyLoadPromise;
|
|
64
|
-
if (options.
|
|
65
|
+
if (options.loadDeferredContent) {
|
|
65
66
|
lazyLoadPromise = processors.lazy.process(options);
|
|
66
|
-
if (options.
|
|
67
|
+
if (options.loadDeferredContentBeforeFrames) {
|
|
67
68
|
await lazyLoadPromise;
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
if (!options.removeFrames && frames && globalThis.frames) {
|
|
71
72
|
let frameTreePromise;
|
|
72
|
-
if (options.
|
|
73
|
-
frameTreePromise = new Promise(resolve => globalThis.setTimeout(() => resolve(frames.getAsync(options)), options.
|
|
73
|
+
if (options.loadDeferredContent) {
|
|
74
|
+
frameTreePromise = new Promise(resolve => globalThis.setTimeout(() => resolve(frames.getAsync(options)), options.loadDeferredContentBeforeFrames || !options.loadDeferredContent ? 0 : options.loadDeferredContentMaxIdleTime));
|
|
74
75
|
} else {
|
|
75
76
|
frameTreePromise = frames.getAsync(options);
|
|
76
77
|
}
|
|
77
|
-
if (options.
|
|
78
|
+
if (options.loadDeferredContentBeforeFrames) {
|
|
78
79
|
options.frames = await frameTreePromise;
|
|
79
80
|
} else {
|
|
80
81
|
preInitializationPromises.push(frameTreePromise);
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
|
-
if (options.
|
|
84
|
+
if (options.loadDeferredContent && !options.loadDeferredContentBeforeFrames) {
|
|
84
85
|
preInitializationPromises.push(lazyLoadPromise);
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
|
-
if (!options.
|
|
88
|
+
if (!options.loadDeferredContentBeforeFrames) {
|
|
88
89
|
[options.frames] = await Promise.all(preInitializationPromises);
|
|
89
90
|
}
|
|
90
91
|
framesSessionId = options.frames && options.frames.sessionId;
|
|
@@ -95,7 +96,7 @@ async function getPageData(options = {}, initOptions, doc, win) {
|
|
|
95
96
|
|
|
96
97
|
const externalOnProgress = options.onprogress;
|
|
97
98
|
options.onprogress = async event => {
|
|
98
|
-
if (event.type === event.RESOURCES_INITIALIZED && doc && win && options.
|
|
99
|
+
if (event.type === event.RESOURCES_INITIALIZED && doc && win && options.loadDeferredContent) {
|
|
99
100
|
processors.lazy.resetZoomLevel(options);
|
|
100
101
|
}
|
|
101
102
|
|
package/test/capture/common.js
CHANGED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { helper } from "./common.js";
|
|
2
|
+
|
|
3
|
+
// The loadDeferredImages* options were renamed to loadDeferredContent* because they never applied to
|
|
4
|
+
// images only: they govern every kind of deferred content, including frames and whole virtualized
|
|
5
|
+
// message lists. The old names stay accepted because they are public API in two ways core cannot
|
|
6
|
+
// see - a library caller passing them to getPageData, and another extension passing them through the
|
|
7
|
+
// external capture API - so this suite pins the compatibility shim rather than the rename.
|
|
8
|
+
|
|
9
|
+
const DEPRECATED_NAMES = {
|
|
10
|
+
loadDeferredImages: "loadDeferredContent",
|
|
11
|
+
loadDeferredImagesMaxIdleTime: "loadDeferredContentMaxIdleTime",
|
|
12
|
+
loadDeferredImagesBlockCookies: "loadDeferredContentBlockCookies",
|
|
13
|
+
loadDeferredImagesBlockStorage: "loadDeferredContentBlockStorage",
|
|
14
|
+
loadDeferredImagesKeepZoomLevel: "loadDeferredContentKeepZoomLevel",
|
|
15
|
+
loadDeferredImagesDispatchScrollEvent: "loadDeferredContentDispatchScrollEvent",
|
|
16
|
+
loadDeferredImagesBeforeFrames: "loadDeferredContentBeforeFrames"
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
let failed = false;
|
|
20
|
+
|
|
21
|
+
{
|
|
22
|
+
for (const deprecatedName of Object.keys(DEPRECATED_NAMES)) {
|
|
23
|
+
const optionName = DEPRECATED_NAMES[deprecatedName];
|
|
24
|
+
const value = deprecatedName.endsWith("MaxIdleTime") ? 3000 : true;
|
|
25
|
+
const normalized = helper.normalizeOptions({ [deprecatedName]: value });
|
|
26
|
+
check(`${deprecatedName} fills ${optionName}`, normalized[optionName], value);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// A false or 0 must survive: testing the deprecated value for truthiness instead of for undefined
|
|
31
|
+
// would silently drop every option a user turned off, which is the half that matters most here.
|
|
32
|
+
{
|
|
33
|
+
const normalized = helper.normalizeOptions({ loadDeferredImages: false, loadDeferredImagesMaxIdleTime: 0 });
|
|
34
|
+
check("a deprecated false is carried over", normalized.loadDeferredContent, false);
|
|
35
|
+
check("a deprecated 0 is carried over", normalized.loadDeferredContentMaxIdleTime, 0);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
{
|
|
39
|
+
const normalized = helper.normalizeOptions({ loadDeferredImages: false, loadDeferredContent: true });
|
|
40
|
+
check("the new name wins when both are set", normalized.loadDeferredContent, true);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// getPageData is handed the caller's own object, so filling the new names in place would edit an
|
|
44
|
+
// object the caller still holds and may reuse for a second capture.
|
|
45
|
+
{
|
|
46
|
+
const options = { loadDeferredImages: true };
|
|
47
|
+
const normalized = helper.normalizeOptions(options);
|
|
48
|
+
check("the caller's object is not mutated", options.loadDeferredContent, undefined);
|
|
49
|
+
check("a copy is returned instead", normalized.loadDeferredContent, true);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
{
|
|
53
|
+
const options = { removeFrames: true };
|
|
54
|
+
check("an options object without deprecated names is returned as is", helper.normalizeOptions(options), options);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
{
|
|
58
|
+
check("a missing options object is tolerated", helper.normalizeOptions(undefined), undefined);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (failed) {
|
|
62
|
+
console.log("FAILED");
|
|
63
|
+
Deno.exit(1);
|
|
64
|
+
}
|
|
65
|
+
console.log("OK");
|
|
66
|
+
|
|
67
|
+
function check(label, actual, expected) {
|
|
68
|
+
const ok = actual === expected;
|
|
69
|
+
console.log(`${ok ? "PASS" : "FAIL"} ${label}: ${actual}${ok ? "" : " (expected " + expected + ")"}`);
|
|
70
|
+
failed ||= !ok;
|
|
71
|
+
}
|
package/vendor/zip/zip.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const { Array, Object, String, Number, BigInt, Math, Date, Map, Set, Response, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator, Worker, setTimeout, clearTimeout } = typeof globalThis !== 'undefined' ? globalThis :
|
|
1
|
+
const { Array, Object, String, Number, BigInt, Math, Date, Map, Set, Response, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator, Worker, setTimeout, clearTimeout } = typeof globalThis !== 'undefined' ? globalThis : self;
|
|
2
2
|
|
|
3
3
|
/*
|
|
4
4
|
Copyright (c) 2022 Gildas Lormeau. All rights reserved.
|
|
@@ -9927,4 +9927,8 @@ try {
|
|
|
9927
9927
|
}
|
|
9928
9928
|
catch (e) { }
|
|
9929
9929
|
|
|
9930
|
+
setDefaultConfiguration({
|
|
9931
|
+
workerURI: null
|
|
9932
|
+
});
|
|
9933
|
+
|
|
9930
9934
|
export { BlobReader, BlobWriter, Data64URIReader, Data64URIWriter, ERR_ABORTED, ERR_AMBIGUOUS_ARCHIVE, ERR_BAD_FORMAT, ERR_CENTRAL_DIRECTORY_NOT_FOUND, ERR_DUPLICATED_NAME, ERR_ENCRYPTED, ERR_ENCRYPTED_CENTRAL_DIRECTORY, ERR_ENTRY_DATA_OUT_OF_BOUNDS, ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND, ERR_EOCDR_NOT_FOUND, ERR_EXTRAFIELD_ZIP64_NOT_FOUND, ERR_HTTP_RANGE, ERR_HTTP_RESOURCE_CHANGED, ERR_HTTP_STATUS, ERR_INVALID_AUTHENTICATION_CODE, ERR_INVALID_BASE_URI, ERR_INVALID_CODEC_DEFINITION, ERR_INVALID_CODEC_MODULE, ERR_INVALID_COMMENT, ERR_INVALID_COMMENT_TYPE, ERR_INVALID_COMPRESSED_DATA, ERR_INVALID_CRC32, ERR_INVALID_DATE, ERR_INVALID_ENCRYPTION_STRENGTH, ERR_INVALID_ENTRY, ERR_INVALID_ENTRY_COMMENT, ERR_INVALID_ENTRY_COMMENT_TYPE, ERR_INVALID_ENTRY_NAME, ERR_INVALID_EXTRAFIELD, ERR_INVALID_EXTRAFIELD_DATA, ERR_INVALID_EXTRAFIELD_DATA_TYPE, ERR_INVALID_EXTRAFIELD_TYPE, ERR_INVALID_FILENAME_VALIDATION, ERR_INVALID_FUNCTION_OPTION, ERR_INVALID_GID, ERR_INVALID_LEVEL, ERR_INVALID_MAX_APPENDED_DATA_SIZE, ERR_INVALID_MAX_WORKERS, ERR_INVALID_MSDOS_ATTRIBUTES, ERR_INVALID_MSDOS_DATA, ERR_INVALID_PASSWORD, ERR_INVALID_PASSWORD_TYPE, ERR_INVALID_PASS_THROUGH_VALUE, ERR_INVALID_READER, ERR_INVALID_SIGNAL, ERR_INVALID_SIGNATURE_DATA, ERR_INVALID_STRICTNESS, ERR_INVALID_UID, ERR_INVALID_UNCOMPRESSED_SIZE, ERR_INVALID_UNIX_EXTRA_FIELD_TYPE, ERR_INVALID_UNIX_ID_SIZE, ERR_INVALID_UNIX_MODE, ERR_INVALID_URI, ERR_INVALID_VERSION, ERR_ITERATOR_COMPLETED_TOO_SOON, ERR_LOCAL_FILE_HEADER_NOT_FOUND, ERR_OVERLAPPING_ENTRY, ERR_RESERVED_COMPRESSION_METHOD, ERR_SPLIT_ZIP_FILE, ERR_UNDEFINED_COMPRESSION_METHOD, ERR_UNDEFINED_CRC32, ERR_UNDEFINED_READER, ERR_UNDEFINED_UNCOMPRESSED_SIZE, ERR_UNDETERMINED_SIZE, ERR_UNSAFE_FILENAME, ERR_UNSUPPORTED_COMPRESSION, ERR_UNSUPPORTED_CONTEXT, ERR_UNSUPPORTED_CRYPTO_API, ERR_UNSUPPORTED_ENCRYPTION, ERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH, ERR_UNSUPPORTED_ENCRYPTION_USDZ, ERR_UNSUPPORTED_FORMAT, ERR_UNSUPPORTED_SPLIT_USDZ, ERR_UNSUPPORTED_UINT64, ERR_WORKER_STARTUP_TIMEOUT, ERR_WRITER_NOT_INITIALIZED, ERR_WRITER_SIZE_NOT_WRITABLE, ERR_ZIP_CRYPTO_LAST_MOD_DATE, ERR_ZIP_NOT_EMPTY, HttpRangeReader, HttpReader, Reader, SplitDataReader, SplitDataWriter, TextReader, TextWriter, Uint8ArrayReader, Uint8ArrayWriter, VERSION, WARNING_APPENDED_DATA, WARNING_CLAMPED_LAST_MODIFICATION_DATE, WARNING_COMPRESSED_PATCHED_DATA, WARNING_COMPRESSION_UNAVAILABLE, WARNING_DUPLICATE_FILENAME, WARNING_MALFORMED_EXTRA_FIELD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG, WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES, WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY, WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY, WARNING_PREPENDED_CENTRAL_DIRECTORY, WARNING_PREPENDED_DATA, WARNING_TRAILING_CENTRAL_DIRECTORY_DATA, WARNING_UNKNOWN_VERSION, WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA, WARNING_UNSORTED_CENTRAL_DIRECTORY, WARNING_WRAPPED_ENTRIES_COUNT, Writer, ZipReader, ZipReaderStream, ZipWriter, ZipWriterStream, configure, createBlobTempStream, createOPFSTempStream, createSyncAccessHandleTempStream, deflateSync as deflateRaw, getMimeType, getRegisteredCodecs, getSupportedCompressionMethods, inflateSync as inflateRaw, initStream, isZipFile, readUint8Array, registerCodec, resetConfiguration, terminateWorkers, unregisterCodec };
|
package/vendor/zip/zip.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:n,String:r,Number:o,BigInt:s,Math:a,Date:i,Map:c,Set:u,Response:f,URL:w,Error:l,Uint8Array:d,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:b,TextDecoder:v,crypto:S,btoa:k,TransformStream:x,ReadableStream:z,WritableStream:R,CompressionStream:D,DecompressionStream:C,navigator:A,Worker:F,setTimeout:I,clearTimeout:U}="undefined"!=typeof globalThis?globalThis:this||self,T=4294967295,E=65535,W=255,M=134695760,O=M,L=33639248,P=101075792,H=117853008,B=22,V=20,Z=56,q=61440,N=new i(1980,0,1),j=void 0,G="undefined",K="function",X="string",_="boolean",$=new d,J=Symbol.asyncDispose||Symbol(),Q="strict",Y="balanced",ee="tolerant";function te(e){if(e&&typeof e!=K)throw new l("Invalid option (must be a function)");return e}function ne(e){return typeof e==X&&e.trim()?o(e):e}let re=2;try{typeof A!=G&&A.hardwareConcurrency&&(re=A.hardwareConcurrency)}catch{}const oe={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:re,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof D!=G&&D,DecompressionStream:typeof C!=G&&C},se="maxWorkers",ae="baseURI",ie=["wasmURI","workerURI"],ce=["chunkSize",se,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],ue=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],fe=[ae,...ie,"useCompressionStream","useWebWorkers","transferStreams",...ce,...ue],we={...oe};function le(){return we}function de(e){return pe(e.chunkSize)}function pe(e){return e=ne(e),o.isInteger(e)&&e>=1?a.max(e,64):65536}function he(e){const t={};for(const n of fe){const r=e[n];r!==j&&(t[n]=me(n,r))}return t}function me(e,t){if(ce.includes(e)){if(t=ne(t),e==se&&(!o.isInteger(t)||1>t))throw new l("Invalid maxWorkers (must be an integer greater than 0)")}else if(ue.includes(e))te(t);else if(e==ae){if(t&&typeof t!=X)throw new l("Invalid baseURI (must be a string)")}else if(ie.includes(e)&&t&&typeof t!=X&&typeof t!=K)throw new l("Invalid URI (must be a string or a function returning a string)");return t}function ye(e){e=e||{};const{CompressionStreamZlib:t,DecompressionStreamZlib:r}=e;if(t===j&&r===j)return e;const o=n.assign({},e);return o.CompressionStreamFallback===j&&(o.CompressionStreamFallback=t),o.DecompressionStreamFallback===j&&(o.DecompressionStreamFallback=r),o}var ge=d,be=p,ve=Int32Array,Se=new ge([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,0,0,0]),ke=new ge([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,0,0]),xe=new ge([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ze=(e,t)=>{for(var n=new be(31),r=0;31>r;++r)n[r]=t+=1<<e[r-1];var o=new ve(n[30]);for(r=1;30>r;++r)for(var s=n[r];s<n[r+1];++s)o[s]=s-n[r]<<5|r;return{b:n,r:o}},Re=ze(Se,2),De=Re.b,Ce=Re.r;De[28]=258,Ce[258]=28;for(var Ae=ze(ke,0).b,Fe=new be(32768),Ie=0;32768>Ie;++Ie){var Ue=(43690&Ie)>>1|(21845&Ie)<<1;Ue=(61680&(Ue=(52428&Ue)>>2|(13107&Ue)<<2))>>4|(3855&Ue)<<4,Fe[Ie]=((65280&Ue)>>8|(255&Ue)<<8)>>1}var Te=(e,t,n)=>{for(var r=e.length,o=0,s=new be(t);r>o;++o)e[o]&&++s[e[o]-1];var a,i=new be(t);for(o=1;t>o;++o)i[o]=i[o-1]+s[o-1]<<1;if(n){a=new be(1<<t);var c=15-t;for(o=0;r>o;++o)if(e[o])for(var u=o<<4|e[o],f=t-e[o],w=i[e[o]-1]++<<f,l=w|(1<<f)-1;l>=w;++w)a[Fe[w]>>c]=u}else for(a=new be(r),o=0;r>o;++o)e[o]&&(a[o]=Fe[i[e[o]-1]++]>>15-e[o]);return a},Ee=new ge(288);for(Ie=0;144>Ie;++Ie)Ee[Ie]=8;for(Ie=144;256>Ie;++Ie)Ee[Ie]=9;for(Ie=256;280>Ie;++Ie)Ee[Ie]=7;for(Ie=280;288>Ie;++Ie)Ee[Ie]=8;var We=new ge(32);for(Ie=0;32>Ie;++Ie)We[Ie]=5;var Me=Te(Ee,9,1),Oe=Te(We,5,1),Le=e=>{for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},Pe=(e,t,n)=>{var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&n},He=(e,t)=>{var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},Be=e=>(e+7)/8|0,Ve=(e,t,n)=>((null==t||0>t)&&(t=0),(null==n||n>e.length)&&(n=e.length),new ge(e.subarray(t,n))),Ze=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],qe=(e,t,n)=>{var r=new l(t||Ze[e]);if(r.code=e,l.captureStackTrace&&l.captureStackTrace(r,qe),!n)throw r;return r},Ne=(e,t,n,r)=>{var o=e.length,s=r?r.length:0;if(!o||t.f&&!t.o)return n||new ge(0);var i=!n,c=i||2!=t.i,u=t.i;i&&(n=new ge(3*o));var f=e=>{var t=n.length;if(e>t){var r=new ge(a.max(2*t,e));r.set(n),n=r}},w=t.f||0,l=t.p||0,d=t.b||0,p=t.o,h=t.d,m=t.l,y=t.n,g=8*o;do{if(!p){w=Pe(e,l,1);var b=Pe(e,l+1,3);if(l+=3,!b){var v=e[(U=Be(l)+4)-4]|e[U-3]<<8,S=U+v;if(S>o){u&&qe(0);break}c&&f(d+v),n.set(e.subarray(U,S),d),t.b=d+=v,t.p=l=8*S,t.f=w;continue}if(1==b)p=Me,h=Oe,m=9,y=5;else if(2==b){var k=Pe(e,l,31)+257,x=Pe(e,l+10,15)+4,z=k+Pe(e,l+5,31)+1;l+=14;for(var R=new ge(z),D=new ge(19),C=0;x>C;++C)D[xe[C]]=Pe(e,l+3*C,7);l+=3*x;var A=Le(D),F=(1<<A)-1,I=Te(D,A,1);for(C=0;z>C;){var U,T=I[Pe(e,l,F)];if(l+=15&T,16>(U=T>>4))R[C++]=U;else{var E=0,W=0;for(16==U?(W=3+Pe(e,l,3),l+=2,E=R[C-1]):17==U?(W=3+Pe(e,l,7),l+=3):18==U&&(W=11+Pe(e,l,127),l+=7);W--;)R[C++]=E}}var M=R.subarray(0,k),O=R.subarray(k);m=Le(M),y=Le(O),p=Te(M,m,1),h=Te(O,y,1)}else qe(1);if(l>g){u&&qe(0);break}}c&&f(d+131072);for(var L=(1<<m)-1,P=(1<<y)-1,H=l;;H=l){var B=(E=p[He(e,l)&L])>>4;if((l+=15&E)>g){u&&qe(0);break}if(E||qe(2),256>B)n[d++]=B;else{if(256==B){H=l,p=null;break}var V=B-254;if(B>264){var Z=Se[C=B-257];V=Pe(e,l,(1<<Z)-1)+De[C],l+=Z}var q=h[He(e,l)&P],N=q>>4;if(q||qe(3),l+=15&q,O=Ae[N],N>3&&(Z=ke[N],O+=He(e,l)&(1<<Z)-1,l+=Z),l>g){u&&qe(0);break}c&&f(d+131072);var j=d+V;if(O>d){var G=s-O,K=a.min(O,j);for(0>G+d&&qe(3);K>d;++d)n[d]=r[G+d]}for(;j>d;++d)n[d]=n[d-O]}}t.o=p,t.p=H,t.b=d,t.f=w,p&&(w=1,t.l=m,t.d=h,t.n=y)}while(!w);return d!=n.length&&i?Ve(n,0,d):n.subarray(0,d)},je=new ge(0),Ge=function(){function e(e,t){"function"==typeof e&&(t=e,e={}),this.h=t;var n=e&&e.m&&e.m.subarray(-32768);this.s={i:0,b:n?n.length:0},this.v=new ge(32768),this.p=new ge(0),n&&this.v.set(n)}return e.prototype.e=function(e){if(this.h||qe(5),this.d&&qe(4),this.p.length){if(e.length){var t=new ge(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}}else this.p=e},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,n=Ne(this.p,this.s,this.v);this.h(Ve(n,t,this.s.b),this.d),this.v=Ve(n,this.s.b-32768),this.s.b=this.v.length,this.p=Ve(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),Ke=void 0!==v&&new v;try{Ke.decode(je,{stream:!0})}catch(e){}class Xe extends x{constructor(e){super({start(t){e.h=e=>{e.length&&t.enqueue(e)}},transform(t){e.push(t)},flush(){e.push(new d(0),!0)}})}}const _e="Compression method not supported",$e=new c,Je=new c;function Qe(e){return Je.get(e)}const Ye=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;Ye[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const n=Ye[t-1][e];Ye[t][e]=n>>>8^Ye[0][255&n]}const[et,tt,nt,rt,ot,st,at,it]=Ye;class ct{constructor(e){this.S=e||-1}append(e){let t=0|this.S;const n=0|e.length;let r=0;if(n>=8&&e.buffer){const o=new m(e.buffer,e.byteOffset,n),s=n-8;for(;s>=r;r+=8){const e=t^o.getInt32(r,!0),n=o.getInt32(r+4,!0);t=it[255&e]^at[e>>>8&255]^st[e>>>16&255]^ot[e>>>24&255]^rt[255&n]^nt[n>>>8&255]^tt[n>>>16&255]^et[n>>>24&255]}}for(;n>r;r++)t=t>>>8^et[255&(t^e[r])];this.S=t}get(){return~this.S}}class ut extends x{constructor(){let e;const t=new ct;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new d(4);new m(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function ft(e,t){const n=new d(e.length+t.length);return n.set(e),n.set(t,e.length),n}function wt(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const lt=64,dt=20,pt=new d([128]),ht=new d(1),mt=new Int32Array([1732584193,4023233417,2562383102,271733878,3285377520]),yt=new d(256),gt=new Int32Array(256),bt=new Int32Array(256),vt=new Int32Array(256),St=new Int32Array(256);let kt=!1;function xt(e){const t=(()=>{const e=new Int32Array(mt),t=new Int32Array(16),n=new d(lt),r=new m(n.buffer),o=new d(8);let s=0,i=0;return{update:c,digest:()=>{const t=8*i,n=a.floor(t/4294967296),r=t>>>0;for(c(pt,0,1);56!=s;)c(ht,0,1);o[0]=n>>>24,o[1]=n>>>16,o[2]=n>>>8,o[3]=n,o[4]=r>>>24,o[5]=r>>>16,o[6]=r>>>8,o[7]=r,c(o,0,8);const u=new d(dt),f=new m(u.buffer);for(let t=0;t<e.length;t++)f.setInt32(4*t,e[t]);return e.set(mt),s=0,i=0,u}};function c(e,t,o){const a=t+o;if(i+=o,s){for(;a>t&<>s;)n[s++]=e[t++];s==lt&&(u(r,0),s=0)}if(a>=t+lt){const n=new m(e.buffer,e.byteOffset,e.byteLength);for(;a>=t+lt;t+=lt)u(n,t)}for(;a>t;)n[s++]=e[t++]}function u(n,r){for(let e=0;16>e;e++)t[e]=n.getInt32(r+4*e);let o,s=e[0],a=e[1],i=e[2],c=e[3],u=e[4];for(let e=0;15>e;e+=5)u=(s<<5|s>>>27)+((i^c)&a^c)+u+1518500249+t[e]|0,a=a<<30|a>>>2,c=(u<<5|u>>>27)+((a^i)&s^i)+c+1518500249+t[e+1]|0,s=s<<30|s>>>2,i=(c<<5|c>>>27)+((s^a)&u^a)+i+1518500249+t[e+2]|0,u=u<<30|u>>>2,a=(i<<5|i>>>27)+((u^s)&c^s)+a+1518500249+t[e+3]|0,c=c<<30|c>>>2,s=(a<<5|a>>>27)+((c^u)&i^u)+s+1518500249+t[e+4]|0,i=i<<30|i>>>2;u=(s<<5|s>>>27)+((i^c)&a^c)+u+1518500249+t[15]|0,a=a<<30|a>>>2,o=t[13]^t[8]^t[2]^t[0],o=o<<1|o>>>31,t[0]=o,c=(u<<5|u>>>27)+((a^i)&s^i)+c+1518500249+o|0,s=s<<30|s>>>2,o=t[14]^t[9]^t[3]^t[1],o=o<<1|o>>>31,t[1]=o,i=(c<<5|c>>>27)+((s^a)&u^a)+i+1518500249+o|0,u=u<<30|u>>>2,o=t[15]^t[10]^t[4]^t[2],o=o<<1|o>>>31,t[2]=o,a=(i<<5|i>>>27)+((u^s)&c^s)+a+1518500249+o|0,c=c<<30|c>>>2,o=t[0]^t[11]^t[5]^t[3],o=o<<1|o>>>31,t[3]=o,s=(a<<5|a>>>27)+((c^u)&i^u)+s+1518500249+o|0,i=i<<30|i>>>2;for(let e=20;40>e;e+=5)o=t[e-3&15]^t[e-8&15]^t[e-14&15]^t[15&e],o=o<<1|o>>>31,t[15&e]=o,u=(s<<5|s>>>27)+(a^i^c)+u+1859775393+o|0,a=a<<30|a>>>2,o=t[e-2&15]^t[e-7&15]^t[e-13&15]^t[e+1&15],o=o<<1|o>>>31,t[e+1&15]=o,c=(u<<5|u>>>27)+(s^a^i)+c+1859775393+o|0,s=s<<30|s>>>2,o=t[e-1&15]^t[e-6&15]^t[e-12&15]^t[e+2&15],o=o<<1|o>>>31,t[e+2&15]=o,i=(c<<5|c>>>27)+(u^s^a)+i+1859775393+o|0,u=u<<30|u>>>2,o=t[15&e]^t[e-5&15]^t[e-11&15]^t[e+3&15],o=o<<1|o>>>31,t[e+3&15]=o,a=(i<<5|i>>>27)+(c^u^s)+a+1859775393+o|0,c=c<<30|c>>>2,o=t[e+1&15]^t[e-4&15]^t[e-10&15]^t[e+4&15],o=o<<1|o>>>31,t[e+4&15]=o,s=(a<<5|a>>>27)+(i^c^u)+s+1859775393+o|0,i=i<<30|i>>>2;for(let e=40;60>e;e+=5)o=t[e-3&15]^t[e-8&15]^t[e-14&15]^t[15&e],o=o<<1|o>>>31,t[15&e]=o,u=(s<<5|s>>>27)+(a&i|(a|i)&c)+u+2400959708+o|0,a=a<<30|a>>>2,o=t[e-2&15]^t[e-7&15]^t[e-13&15]^t[e+1&15],o=o<<1|o>>>31,t[e+1&15]=o,c=(u<<5|u>>>27)+(s&a|(s|a)&i)+c+2400959708+o|0,s=s<<30|s>>>2,o=t[e-1&15]^t[e-6&15]^t[e-12&15]^t[e+2&15],o=o<<1|o>>>31,t[e+2&15]=o,i=(c<<5|c>>>27)+(u&s|(u|s)&a)+i+2400959708+o|0,u=u<<30|u>>>2,o=t[15&e]^t[e-5&15]^t[e-11&15]^t[e+3&15],o=o<<1|o>>>31,t[e+3&15]=o,a=(i<<5|i>>>27)+(c&u|(c|u)&s)+a+2400959708+o|0,c=c<<30|c>>>2,o=t[e+1&15]^t[e-4&15]^t[e-10&15]^t[e+4&15],o=o<<1|o>>>31,t[e+4&15]=o,s=(a<<5|a>>>27)+(i&c|(i|c)&u)+s+2400959708+o|0,i=i<<30|i>>>2;for(let e=60;80>e;e+=5)o=t[e-3&15]^t[e-8&15]^t[e-14&15]^t[15&e],o=o<<1|o>>>31,t[15&e]=o,u=(s<<5|s>>>27)+(a^i^c)+u+3395469782+o|0,a=a<<30|a>>>2,o=t[e-2&15]^t[e-7&15]^t[e-13&15]^t[e+1&15],o=o<<1|o>>>31,t[e+1&15]=o,c=(u<<5|u>>>27)+(s^a^i)+c+3395469782+o|0,s=s<<30|s>>>2,o=t[e-1&15]^t[e-6&15]^t[e-12&15]^t[e+2&15],o=o<<1|o>>>31,t[e+2&15]=o,i=(c<<5|c>>>27)+(u^s^a)+i+3395469782+o|0,u=u<<30|u>>>2,o=t[15&e]^t[e-5&15]^t[e-11&15]^t[e+3&15],o=o<<1|o>>>31,t[e+3&15]=o,a=(i<<5|i>>>27)+(c^u^s)+a+3395469782+o|0,c=c<<30|c>>>2,o=t[e+1&15]^t[e-4&15]^t[e-10&15]^t[e+4&15],o=o<<1|o>>>31,t[e+4&15]=o,s=(a<<5|a>>>27)+(i^c^u)+s+3395469782+o|0,i=i<<30|i>>>2;e[0]=e[0]+s|0,e[1]=e[1]+a|0,e[2]=e[2]+i|0,e[3]=e[3]+c|0,e[4]=e[4]+u|0}})(),n=new d(lt),r=new d(lt);e.length>lt&&(t.update(e,0,e.length),e=t.digest());for(let t=0;lt>t;t++){const o=t<e.length?e[t]:0;n[t]=54^o,r[t]=92^o}return t.update(n,0,lt),{update(e,n,r){t.update(e,n,r)},digest(){const e=t.digest();t.update(r,0,lt),t.update(e,0,dt);const o=t.digest();return t.update(n,0,lt),o}}}function zt(e){return yt[e>>>24]<<24|yt[e>>>16&255]<<16|yt[e>>>8&255]<<8|yt[255&e]}function Rt(e){return e<<24|(65280&e)<<8|e>>>8&65280|e>>>24}function Dt(e){return 255&(e<<1^27*(e>>7))}const Ct=typeof S!=G&&typeof S.getRandomValues==K,At="Invalid password",Ft="zipjs-abort-check-password";function It(e){if(Ct)return S.getRandomValues(e);throw new l("Crypto API not supported")}const Ut={name:"PBKDF2"},Tt=n.assign({hash:{name:"HMAC"}},Ut),Et=n.assign({iterations:1e3,hash:{name:"SHA-1"}},Ut),Wt=["deriveBits"],Mt=[8,12,16],Ot=[16,24,32],Lt=10,Pt=typeof S!=G,Ht=Pt&&S.subtle;let Bt=Pt&&typeof Ht!=G&&typeof Ht.importKey==K&&typeof Ht.deriveBits==K;class Vt extends x{constructor({password:e,rawPassword:t,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:o=!0}){super({start(){qt(this,e,t,n)},async transform(e,t){const n=this,{password:o,strength:s,R:a,ready:i}=n;o?(await(async(e,t,n,r)=>{const o=await Gt(e,t,n,Xt(r,0,Mt[t])),s=Xt(r,Mt[t]);if(o[0]!=s[0]||o[1]!=s[1])throw jt(e),new l(At)})(n,s,o,Xt(e,0,Mt[s]+2)),e=Xt(e,Mt[s]+2),r?(jt(n),t.error(new l(Ft))):a()):await i;const c=new d(e.length-Lt-(e.length-Lt)%16);t.enqueue(Nt(n,e,c,0,Lt,!0))},async flush(e){const{D:t,C:n,ready:r}=this;if(t){await r;const s=Xt(n,n.length-Lt),a=new d(Xt(n,0,n.length-Lt));t.process(a,!0);const i=t.digest();let c=n.length<Lt?1:0;for(let e=0;Lt>e;e++)c|=i[e]^s[e];if(c&&o)throw new l("Invalid authentication code");e.enqueue(a)}},cancel(){jt(this)}})}}class Zt extends x{constructor({password:e,rawPassword:t,encryptionStrength:n}){super({start(){qt(this,e,t,n)},async transform(e,t){const n=this,{password:r,strength:o,R:s,ready:a}=n;let i=$;r?(i=await(async(e,t,n)=>{const r=It(new d(Mt[t]));return ft(r,await Gt(e,t,n,r))})(n,o,r),s()):await a;const c=new d(i.length+e.length-e.length%16);c.set(i,0),t.enqueue(Nt(n,e,c,i.length,0,!1))},async flush(e){const{D:t,C:n,ready:r}=this;if(t){await r;const o=new d(n);t.process(o,!1);const s=Xt(t.digest(),0,Lt);e.enqueue(ft(o,s))}},cancel(){jt(this)}})}}function qt(e,t,r,o){n.assign(e,{ready:new g(t=>e.R=t),password:Kt(t,r),strength:o-1,C:$})}function Nt(e,t,n,r,o,s){const{D:a,C:i}=e;i.length&&(t=ft(i,t));const c=t.length-o,u=c-c%16;if(n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new d(t)).set(n,0)}return e})(n,r+u),u){const e=Xt(n,r,r+u);e.set(Xt(t,0,u)),a.process(e,s)}return e.C=Xt(t,u),n}function jt({D:e}){e&&e.dispose&&e.dispose()}async function Gt(e,t,r,o){e.password=null;const s=Ot[t],i=await(async(e,t,r)=>{if(Bt)try{const o=await Ht.importKey("raw",e,Tt,!1,Wt);return new d(await Ht.deriveBits(n.assign({salt:t},Et),o,8*r))}catch{Bt=!1}return((e,t,n,r)=>{const o=xt(e),s=new d(r),i=new d(t.length+4),c=new m(i.buffer);i.set(t);for(let e=1,n=0;r>n;e++,n+=dt){c.setUint32(t.length,e),o.update(i,0,i.length);let u=o.digest();const f=u.slice();for(let e=1;1e3>e;e++){o.update(u,0,dt),u=o.digest();for(let e=0;dt>e;e++)f[e]^=u[e]}s.set(f.subarray(0,a.min(dt,r-n)),n)}return s})(e,t,0,r)})(r,o,2*s+2);return e.D=((e,t)=>{(()=>{if(!kt){let e=1,t=1;do{e=255&(e^e<<1^(128&e?27:0)),t=255&(t^t<<1),t=255&(t^t<<2),t=255&(t^t<<4),128&t&&(t^=9),yt[e]=255&(t^(t<<1|t>>7)^(t<<2|t>>6)^(t<<3|t>>5)^(t<<4|t>>4)^99)}while(1!=e);yt[0]=99;for(let e=0;256>e;e++){const t=yt[e],n=Dt(t),r=n<<24|t<<16|t<<8|n^t;gt[e]=r,bt[e]=r>>>8|r<<24,vt[e]=r>>>16|r<<16,St[e]=r>>>24|r<<8}kt=!0}})();const n=new Int32Array(60),r=((e,t)=>{const n=e.length>>2,r=n+6,o=4*(r+1);let s=1;for(let r=0;n>r;r++)t[r]=e[4*r]<<24|e[4*r+1]<<16|e[4*r+2]<<8|e[4*r+3];for(let e=n;o>e;e++){let r=t[e-1];e%n==0?(r=zt(r<<8|r>>>24)^s<<24,s=Dt(s)):n>6&&e%n==4&&(r=zt(r)),t[e]=t[e-n]^r}return r})(e,n),o=new Int32Array(4),s=xt(t);let a=0,i=0,c=0,u=0;return{process(e,t){t&&s.update(e,0,e.length),(e=>{const t=new m(e.buffer,e.byteOffset,e.byteLength),n=e.length;let r=0;for(;n>=r+16;r+=16)f(),t.setInt32(r,t.getInt32(r)^o[0]),t.setInt32(r+4,t.getInt32(r+4)^o[1]),t.setInt32(r+8,t.getInt32(r+8)^o[2]),t.setInt32(r+12,t.getInt32(r+12)^o[3]);if(n>r){f();for(let t=0;n>r;r++,t++)e[r]^=o[t>>2]>>>24-8*(3&t)}})(e),t||s.update(e,0,e.length)},digest:()=>s.digest()};function f(){a=a+1|0,a||(i=i+1|0,i||(c=c+1|0,c||(u=u+1|0)));let e=Rt(a)^n[0],t=Rt(i)^n[1],s=Rt(c)^n[2],f=Rt(u)^n[3],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[4],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[5],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[6],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[7];e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[8],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[9],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[10],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[11],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[12],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[13],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[14],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[15],e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[16],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[17],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[18],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[19],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[20],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[21],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[22],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[23],e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[24],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[25],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[26],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[27],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[28],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[29],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[30],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[31],e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[32],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[33],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[34],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[35],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[36],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[37],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[38],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[39];let h=40;r>10&&(e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[40],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[41],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[42],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[43],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[44],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[45],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[46],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[47],h=48),r>12&&(e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[48],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[49],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[50],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[51],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[52],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[53],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[54],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[55],h=56),o[0]=(yt[w>>>24]<<24|yt[l>>>16&255]<<16|yt[d>>>8&255]<<8|yt[255&p])^n[h],o[1]=(yt[l>>>24]<<24|yt[d>>>16&255]<<16|yt[p>>>8&255]<<8|yt[255&w])^n[h+1],o[2]=(yt[d>>>24]<<24|yt[p>>>16&255]<<16|yt[w>>>8&255]<<8|yt[255&l])^n[h+2],o[3]=(yt[p>>>24]<<24|yt[w>>>16&255]<<16|yt[l>>>8&255]<<8|yt[255&d])^n[h+3]}})(Xt(i,0,s),Xt(i,s,2*s)),Xt(i,2*s)}function Kt(e,t){return t===j?(e=>{if(typeof b==G){const t=new d((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new b).encode(e)})(e):t}function Xt(e,t,n){return e.subarray(t,n)}class _t extends x{constructor({password:e,rawPassword:t,passwordVerification:n,checkPasswordOnly:r}){super({start(){Jt(this,e,t,n)},transform(e,t){const n=this;if(n.password||n.rawPassword){const t=Qt(n,e.subarray(0,12));if(n.password=n.rawPassword=null,0!=(t[11]^n.passwordVerification))throw new l(At);e=e.subarray(12)}r?t.error(new l(Ft)):t.enqueue(Qt(n,e))}})}}class $t extends x{constructor({password:e,rawPassword:t,passwordVerification:n}){super({start(){Jt(this,e,t,n)},transform(e,t){const n=this;let r,o;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const t=It(new d(12));t[11]=n.passwordVerification,r=new d(e.length+t.length),r.set(Yt(n,t),0),o=12}else r=new d(e.length),o=0;r.set(Yt(n,e),o),t.enqueue(r)}})}}function Jt(e,t,r,o){n.assign(e,{password:t,rawPassword:r,passwordVerification:o}),((e,t,r)=>{const o=[305419896,591751049,878082192];if(n.assign(e,{keys:o,A:new ct(o[0]),F:new ct(o[2])}),r)for(let t=0;t<r.length;t++)en(e,r[t]);else for(let n=0;n<t.length;n++)en(e,t.charCodeAt(n))})(e,t,r)}function Qt(e,t){const n=new d(t.length);for(let r=0;r<t.length;r++)n[r]=tn(e)^t[r],en(e,n[r]);return n}function Yt(e,t){const n=new d(t.length);for(let r=0;r<t.length;r++)n[r]=tn(e)^t[r],en(e,t[r]);return n}function en(e,t){let[,n]=e.keys;e.A.append([t]);const r=~e.A.get();n=rn(a.imul(rn(n+nn(r)),134775813)+1),e.F.append([n>>>24]);const o=~e.F.get();e.keys=[r,n,o]}function tn(e){const t=2|e.keys[2];return nn(a.imul(t,1^t)>>>8)}function nn(e){return 255&e}function rn(e){return 4294967295&e}function on(e){if(e instanceof z)return e;const t=e.getReader();return new z({async pull(e){const{value:n,done:r}=await t.read();r?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})}function sn(e,t){e=on(e);const n=t?{type:t}:{};if(typeof y.prototype.stream!=K||new y([]).stream()instanceof z)return new f(e).blob().then(e=>t?new y([e],n):e);const r=[];return e.pipeTo(new R({write(e){r.push(e)}})).then(()=>new y(r,n))}function an(e){if(e instanceof R)return e;const t=e.getWriter();return new R({write:e=>t.write(e),close:()=>t.close(),abort:e=>t.abort(e)})}const cn="Invalid uncompressed size",un="deflate-raw",fn="gzip",wn=[31,139,8];class ln extends x{constructor(e,{chunkSize:t,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:o,encrypted:s,useCompressionStream:a,zipCrypto:i,computeCrc32:c,level:u,deflate64:f,format:w,compressionMethod:l,inputSize:d}=e,p=this;let h,y,g,b=super.readable;const v=w&&Qe(w),S=((e,t,n)=>e&&t?t:n&&n.I?n:void 0)(a,r,n),k=c&&o&&!f&&!v&&(!s||i)&&!!S;if(s&&!i||!c||k||(h=new ut,b=bn(b,h)),o)if(v)b=vn(b,yn(v.CompressionStream,w,{level:u,chunkSize:t,compressionMethod:l,uncompressedSize:d}));else if(k)g=new dn,b=vn(b,new S(fn,{level:u,chunkSize:t})),b=bn(b,g);else try{b=gn(b,a,{level:u,chunkSize:t},r,n)}catch(e){let t;try{t=new r(fn)}catch{throw e}b=vn(b,t),b=bn(b,new dn)}s&&(i?b=bn(b,new $t(e)):(y=new Zt(e),b=bn(b,y))),mn(p,b,()=>{s&&!i||!c||(p.crc32=k?g.crc32:new m(h.value.buffer).getUint32(0))})}}class dn extends x{constructor(){let e,t=10,n=new d(0);super({transform(e,r){if(t){const n=a.min(t,e.length);if(t-=n,!(e=e.subarray(n)).length)return}const o=n.length+e.length;if(8>=o)return void(n=ft(n,e));const s=o-8,i=a.min(s,n.length);r.enqueue(ft(n.subarray(0,i),e.subarray(0,s-i))),n=ft(n.subarray(i),e.subarray(s-i))},flush(){const t=wt(n);e.crc32=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class pn extends x{constructor(e,{chunkSize:t,DecompressionStreamFallback:n,DecompressionStream:r}){super({});const{zipCrypto:o,encrypted:s,checkCrc32:a,crc32:i,compressed:c,useCompressionStream:u,deflate64:f,format:w,compressionMethod:p,rawBitFlag:h,outputSize:y}=e;let b,v,S,k=super.readable;if(s&&(o?k=bn(k,new _t(e)):(v=new Vt(e),k=bn(k,v))),c){const e=w&&Qe(w);if(e)k=vn(k,yn(e.DecompressionStream,w,{chunkSize:t,compressionMethod:p,rawBitFlag:h,uncompressedSize:y}));else try{k=gn(k,u,{chunkSize:t,deflate64:f},r,n)}catch(e){if(f||y===j)throw e;let t;try{t=new r(fn)}catch{throw e}S=new ct,k=((e,t,n,r)=>{let o,s,a,i=0,c=!1;const u=new g((e,t)=>{s=e,a=t});u.catch(()=>{}),n||s();const f=new x({start(e){const t=new d(10);t.set(wn),e.enqueue(t)},transform(e,t){t.enqueue(e)},async flush(e){c=!0,p();try{await u}finally{h()}const t=new d(8),o=wt(t);o.setUint32(0,r.get(),!0),o.setUint32(4,n,!0),e.enqueue(t)},cancel(e){a(e)}}),w=new x({transform(e,t){r.append(e),i+=e.length,n>i?c&&p():s(),t.enqueue(e)},cancel(e){a(e)}});return e=bn(e,f),bn(e=vn(e,t),w);function p(){h(),o=I(()=>a(new l(cn)),5e3)}function h(){U(o)}})(k,t,y,S)}k=(e=>{const t=e.getReader();return new z({async pull(e){let n;try{n=await t.read()}catch(e){if(e&&e.message)throw e;const t=new l("Invalid compressed data");throw t.cause=e,t}const{value:r,done:o}=n;o?e.close():e.enqueue(r)},cancel:e=>t.cancel(e)})})(k)}a&&!S&&(b=new ut,k=bn(k,b)),mn(this,k,()=>{if(a){const e=S?S.get()>>>0:new m(b.value.buffer).getUint32(0,!1);if(i!=e)throw new l("Invalid CRC32")}})}}const hn=new c;function mn(e,t,r){t=bn(t,new x({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function yn(e,t,n){if(!e)throw new l(_e);return new e(t,n)}function gn(e,t,n,r,o){const s=t&&r?r:o||r,a=n.deflate64?"deflate64-raw":un;let i;try{i=new s(a,n)}catch(e){if(!t||!o||s==o)throw e;i=new o(a,n)}return vn(e,i)}function bn(e,t){return on(e).pipeThrough(t)}function vn(e,t){const n=t.writable.getWriter(),r=e.getReader();return(async()=>{try{for(;;){await n.ready;const e=await r.read();if(e.done){await n.close();break}await n.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(n,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(r,e)}})(),t.readable}const Sn="deflate",kn="inflate";class xn extends x{constructor(e,t){super({});const r=this,{codecType:o}=e;let s;o.startsWith(Sn)?s=ln:o.startsWith(kn)&&(s=pn),r.outputSize=0;let a=0;const i=new s(e,t),c=super.readable,u=new x({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){n.assign(r,{inputSize:a})}}),f=new x({transform(t,n){if(t&&t.length&&(n.enqueue(t),r.outputSize+=t.length,e.outputSize!==j&&r.outputSize>e.outputSize))throw new l(cn)},flush(){const{crc32:e}=i;n.assign(r,{crc32:e,inputSize:a})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(u).pipeThrough(i).pipeThrough(f)})}}class zn extends x{constructor(e){const t=[];let r=0,s=0;function a(){const n=new d(e);let o=0;for(;e>o;){const r=t[0],s=e-o;r.length>s?(n.set(r.subarray(0,s),o),t[0]=r.subarray(s),o+=s):(n.set(r,o),o+=r.length,t.shift())}return r-=e,n}o.isFinite(e)&&e>=1||(e=65536),super({transform(n,o){for(t.push(n),r+=n.length;r>e;)s+=e,o.enqueue(a())},flush(e){r&&(s+=r,e.enqueue(((e,t)=>{const n=new d(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n})(t,r)))}}),n.defineProperty(this,"outputSize",{get:()=>s})}}function Rn(e){return!!e&&"object"==typeof e}let Dn=()=>{};class Cn{constructor(e,{readable:t,writable:r},o,s){const{options:a,config:i,U:u,useWebWorkers:f,transferStreams:w,workerURI:l}=o;let{createWorker:d}=o;const{signal:p}=u;return n.assign(e,{T:!0,W:(e.W||0)+1,readable:t.pipeThrough(new zn(de(i))).pipeThrough(new An(u),{signal:p}),writable:r,options:n.assign({},a),M:o,workerURI:l,createWorker:d,transferStreams:w,terminate:()=>new g(t=>{const{O:n,T:r}=e;r?(e.L=e.L||[],e.L.push(t)):(n&&(n.terminate(),e.O=null),t()),e.P=null}),H(){if(e.T){const{L:t,O:n}=e;t&&(e.L=null,n&&(e.B=!0,n.terminate())),e.T=!1;const r=s(e);t&&t.forEach(e=>e(r))}}}),((e,t)=>({run:()=>(async({options:e,readable:t,writable:n,H:r,M:o},s)=>{let a,i,u;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(Sn),n=t?s.CompressionStreamFallback:s.DecompressionStreamFallback,r=t?s.CompressionStream:s.DecompressionStream;e.useCompressionStream?n&&n.I&&!((e,t)=>{if(!e)return!1;let n=hn.get(e);n||(n=new c,hn.set(e,n));let r=n.get(t);if(r===j){try{new e(t),r=!0}catch{r=!1}n.set(t,r)}return r})(r,un)&&await f():await f()||n&&!n.I||(e.useCompressionStream=!0)}e.encrypted&&!e.zipCrypto&&await f(),a=new xn(e,s),i=new zn(de(s)),await t.pipeThrough(a).pipeThrough(i).pipeTo(n,{preventClose:!0,preventAbort:!0});const{crc32:r,inputSize:o,outputSize:u}=a;return{crc32:r,inputSize:o,outputSize:u}}catch(e){if(a){const t=i?i.outputSize:0;if(o.outputSize=t,Rn(e))try{e.outputSize=t}catch{}}throw e}finally{r()}function f(){return u||(u=(async()=>{if(Dn)try{return await void 0,!0}catch{}return!1})()),u}})(e,t)}))(e,i)}}class An extends x{constructor({onstart:e,onprogress:t,size:n,onend:r}){let o=0;super({async start(){e&&await Fn(e,n)},async transform(e,r){o+=e.length,t&&await Fn(t,o,n),r.enqueue(e)},async flush(){r&&await Fn(r,o)}})}}async function Fn(e,...t){try{await e(...t)}catch{}}let In=[];const Un=[];let Tn,En,Wn=0;function Mn(){!Tn&&Un.length&&o.isFinite(En)&&En>=0&&(Tn=I(Ln,En))}function On(){Tn&&(U(Tn),Tn=null)}function Ln(){if(Tn=null,Un.length){const[{resolve:e,stream:t,M:n}]=Un.splice(0,1);e(new Cn({},t,Pn(n),Hn)),Mn()}}function Pn(e){return n.assign({},e,{useWebWorkers:!1,workerURI:j,createWorker:j})}function Hn(){On(),Mn()}function Bn(e){const{V:t}=e;t&&(U(t),e.V=null)}const Vn="\0\u263a\u263b\u2665\u2666\u2663\u2660\u2022\u25d8\u25cb\u25d9\u2642\u2640\u266a\u266b\u263c\u25ba\u25c4\u2195\u203c\xb6\xa7\u25ac\u21a8\u2191\u2193\u2192\u2190\u221f\u2194\u25b2\u25bc !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xa2\xa3\xa5\u20a7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\u2310\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0".split("");function Zn(e,t){return Nn(e,t,!0)}function qn(e){if(!e.some(e=>e>127))return!1;try{return new v("utf-8",{fatal:!0}).decode(e),!0}catch{return!1}}function Nn(e,t,n){return t&&"cp437"==t.trim().toLowerCase()?(e=>{let t="";for(let n=0;n<e.length;n++)t+=Vn[e[n]];return t})(e):new v(t,{ignoreBOM:n}).decode(e)}const jn="HTTP error ",Gn="HTTP Range not supported",Kn="HTTP resource changed",Xn="Content-Range",_n="Range",$n="GET",Jn="bytes",Qn=16777216,Yn="writable",er=Symbol();class tr{constructor(){this.size=0}init(){this.initialized=!0}}class nr extends tr{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:n=de(le())}={}){const r=this;let o=0;return n=pe(n),new z({async pull(s){const i=t===j?n:a.min(n,t-o),c=await Er(r,e+o,i);c.length&&(s.enqueue(c),o+=c.length),(t!==j&&o>=t||!c.length&&i)&&s.close()}})}}class rr extends tr{constructor(){super();const e=this,t=new R({write(t){if(!e.initialized)throw new l("Writer not initialized");return e.writeUint8Array((n=t).byteOffset||n.byteLength!=n.buffer.byteLength?new d(n):n);var n}});n.defineProperty(e,Yn,{get:()=>t})}writeUint8Array(){}}let or,sr;class ar extends nr{constructor(e){super(),n.assign(this,{Z:e,size:e.size}),sr||(sr=(async()=>{try{const e=new y([new d(3)]).slice(1,2).stream().getReader();let t=0,n=await e.read();for(;!n.done;)t+=n.value.length,n=await e.read();or=1==t}catch{or=!1}})())}createReadable(e){const{Z:t,size:n}=this,{offset:r=0,size:o=n-r}=e||{};if(typeof t.stream==K){if(!r&&o>=n)return on(t.stream());if(or)return on(t.slice(r,r+o).stream())}return super.createReadable(e)}async readUint8Array(e,t){const n=this,r=e+t,o=e||r<n.size?n.Z.slice(e,r):n.Z;let s=await o.arrayBuffer();return s.byteLength>t&&(s=s.slice(e,r)),new d(s)}}class ir extends tr{constructor(e){super();const t=this,r=new x;n.defineProperty(t,Yn,{get:()=>r.writable}),t.contentType=e,t.N=sn(r.readable,e),t.N.catch(()=>{})}getData(){return this.N}}class cr extends nr{constructor(e,t){super(),fr(this,e,t)}async init(){await wr(this,zr,vr),super.init()}createReadable(e){const t=this,{useRangeHeader:n,forceRangeRequests:r,size:o}=t;if((n||r)&&o!==j){const{offset:n=0,size:r=o-n}=e||{};if(r>0&&o>n)return((e,t,n)=>{let r,o=t,s=0,i=n;return new z({start:()=>c(),async pull(e){r||await c();const{value:t,done:n}=await r.read();if(n)throw new l(Gn);const o=t.length>s?t.subarray(0,s):t;s-=o.length,i-=o.length,o.length&&e.enqueue(o),s||(await(async()=>{const e=r;r=j,await e.cancel()})(),i||e.close())},cancel:e=>r&&r.cancel(e)});async function c(){const t=a.min(e.maximumRangeSize,i),n=await zr($n,e,gr(e,o,t));if(206!=n.status)throw new l(Gn);const c=dr(n);if(c!==j&&c!=o)throw new l(Gn);yr(e,n),mr(e,n),o+=t,s=t,r=n.body.getReader()}})(t,n,a.min(r,o-n))}return super.createReadable(e)}readUint8Array(e,t){return lr(this,e,t,zr,vr)}}class ur extends nr{constructor(e,t){super(),fr(this,e,t)}async init(){await wr(this,Rr,Sr),super.init()}readUint8Array(e,t){return lr(this,e,t,Rr,Sr)}}function fr(e,t,r){const{preventHeadRequest:o,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c=!0,maximumRangeSize:u=Qn,fetch:f}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,n.assign(e,{url:t,options:r,preventHeadRequest:o,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c,maximumRangeSize:u,fetch:f})}async function wr(e,t,n){const{url:r,preventHeadRequest:o,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:i}=e;if((e=>{const{baseURI:t}=le(),{protocol:n}=new w(e,t);return"http:"==n||"https:"==n})(r)&&(s||a)&&(typeof o==G||o)){const r=await t($n,e,gr(e,i?-65557:void 0)),o=r.headers.get("Accept-Ranges");if(!(a||o&&o.toLowerCase()==Jn))throw new l(Gn);{let o;i&&206==r.status&&(o=new d(await r.arrayBuffer())),mr(e,r);const s=pr(r);s===j?await xr(e,t,n):e.size=s,o&&o.length&&dr(r)===e.size-o.length&&(e.j=o)}}else await xr(e,t,n)}async function lr(e,t,n,r,o){const{useRangeHeader:s,forceRangeRequests:a,j:i,size:c,options:u}=e;if(s||a){if(c>t&&0!==n){if(t+n>c&&(n=c-t),i&&t>=c-i.length){const e=t-(c-i.length);return i.slice(e,e+n)}const o=await r($n,e,gr(e,t,n));if(206!=o.status)throw new l(Gn);const s=dr(o);if(s!==j&&s!=t)throw new l(Gn);yr(e,o),mr(e,o);const a=new d(await o.arrayBuffer());if(a.length!=n)throw new l(Gn);return a}return $}{const{data:r}=e;return r||await o(e,u),e.data.subarray(t,t+n)}}function dr(e){const t=e.headers.get(Xn);if(t){const e=o(t.trim().split(/[\s-]+/)[1]);if(!o.isNaN(e))return e}}function pr(e){const t=e.headers.get(Xn);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=o(e);if(!o.isNaN(t))return t}}}function hr({headers:e}){return{G:e.get("Etag")||j,lastModified:e.get("Last-Modified")||j}}function mr(e,t){const{checkResourceChanges:n,K:r}=e;n&&!r&&206==t.status&&(e.K=hr(t))}function yr(e,t){const{checkResourceChanges:r,K:o,size:s}=e;if(r){const e=pr(t);if(e!==j&&s!==j&&e!=s)throw new l(Kn);if(o){const e=hr(t);if(n.entries(o).some(([t,n])=>n!==j&&e[t]!==j&&n!=e[t]))throw new l(Kn)}}}function gr(e,t=0,r=1){return n.assign({},br(e),{[_n]:Jn+"="+(0>t?t:t+"-"+(t+r-1))})}function br({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?n.fromEntries(t):t}async function vr(e){await kr(e,zr)}async function Sr(e){await kr(e,Rr)}async function kr(e,t){const n=await t($n,e,br(e));e.data=new d(await n.arrayBuffer()),e.size=e.data.length}async function xr(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=await t("HEAD",e,br(e)),s=r.headers.get("Content-Length");s&&!r.headers.get("Content-Encoding")?e.size=o(s):await n(e,e.options)}}async function zr(e,{fetch:t=fetch,options:r,url:o},s){const a=await t(o,n.assign({},r,{method:e,headers:s}));if(200>a.status||a.status>299)throw 416==a.status?new l(Gn):new l(jn+(a.statusText||a.status));return a}function Rr(e,{url:t},r){return new g((o,s)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(200>a.status||a.status>299)s(416==a.status?new l(Gn):new l(jn+(a.statusText||a.status)));else{const e=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const n=t.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(n)}),o({status:a.status,arrayBuffer:()=>a.response,headers:new c(e)})}},!1),a.addEventListener("error",e=>s(e.detail?e.detail.error:new l("Network error")),!1),a.open(e,t),r)for(const e of n.entries(r))a.setRequestHeader(e[0],e[1]);a.responseType="arraybuffer",a.send()})}class Dr extends nr{constructor(e,t={}){super(),n.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new ur(e,t):new cr(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Cr extends nr{constructor(e){super(),this.X=e}async init(){const e=this;e._=0;const t=e.X=await g.all(e.X.map(Tr));e.$=t.map(t=>{const n=e.size;return e.size+=t.size,n}),super.init()}J(e){const{$:t,size:n}=this,r=t[e];return r===j?n:r}async readUint8Array(e,t){const n=this,{X:r}=this;let o,s=0,i=e;for(;r[s]&&i>=r[s].size;)i-=r[s].size,s++;const c=r[s];if(c){const r=c.size;if(i+t>r){const s=r-i;o=ft(await Er(c,i,s),await n.readUint8Array(e+s,t-s))}else o=await Er(c,i,t)}else o=$;return n._=a.max(s,n._),o}}class Ar extends tr{constructor(e,t=4294967295){super();const r=this;let o,s,a;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const i=new R({async write(t){if(t===er)return void(a&&await u());const{availableSize:n}=r;if(a)t.length<n?await c(t):(await c(t.subarray(0,n)),await u(),t.length>n&&await this.write(t.subarray(n)));else{const{value:n,done:i}=await e.next();if(i&&!n)throw new l("Writer iterator completed too soon");o=n,o.size=0,o.maxSize&&(r.maxSize=o.maxSize),r.availableSize=r.maxSize,await Ur(o),s=n.writable,a=s.getWriter(),await this.write(t)}},async close(){a&&(await a.ready,await f())},async abort(e){a&&await a.abort(e)}});async function c(e){const t=e.length;t&&(await a.ready,await a.write(e),o.size+=t,r.availableSize-=t)}async function u(){await f(),r.diskOffset+=o.size,r.diskNumber++,a=null,r.availableSize=r.maxSize}async function f(){await a.close()}n.defineProperty(r,Yn,{get:()=>i})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(er)}finally{e.releaseLock()}}}class Fr{constructor(e){return t.isArray(e)&&(e=new Cr(e)),(e instanceof z||typeof e.getReader==K)&&(e={readable:on(e)}),e}}class Ir{constructor(e){e.writable===j&&typeof e.next==K&&(e=new Ar(e)),(e instanceof R||typeof e.getWriter==K)&&(e={writable:an(e)});try{e.size=e.size===j?0:e.size}catch{throw new l("Invalid writer (size must be writable)")}return e}}async function Ur(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}async function Tr(e){return e=new Fr(e),await Ur(e),e.size!==j&&e.readUint8Array||(e=new ar(await sn(e.readable)),await Ur(e)),e}function Er(e,t,n){return e.readUint8Array(t,n)}function Wr(e,t,n){if(!e.some(e=>e.reason==t)){const r={reason:t};n!==j&&(r.filename=n),e.push(r)}}const Mr="filename",Or="rawFilename",Lr="comment",Pr="rawComment",Hr="uncompressedSize",Br="compressedSize",Vr="offset",Zr="diskNumberStart",qr="lastModDate",Nr="rawLastModDate",jr="lastAccessDate",Gr="rawLastAccessDate",Kr="creationDate",Xr="rawCreationDate",_r=[Mr,Or,Hr,Br,qr,Nr,Lr,Pr,jr,Gr,Kr,Xr,Vr,Zr,"internalFileAttributes","externalFileAttributes","msdosAttributesRaw","msdosAttributes","msDosCompatible","zip64","encrypted","version","versionMadeBy","zipCrypto","directory","executable","symlink","compressionMethod","signature","crc32","extraField","extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid","unixMode","unixExternalUpper","setuid","setgid","sticky","bitFlag","rawBitFlag","filenameLength","extraFieldLength","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class $r{constructor(e){_r.forEach(t=>this[t]=e[t])}}const Jr="File format is not recognized",Qr="Encryption method not supported",Yr="Split zip file",eo="malformed extra field",to="wrapped entries count",no="appended data",ro="prepended data",oo="mismatched zip64 end of central directory record",so=/^[a-zA-Z]:/,ao=/(^|[\\/])\.\.([\\/]|$)/,io="utf-8",co="cp437",uo=[[Hr,T],[Br,T],[Vr,T],[Zr,E]],fo={[E]:{Y:qo,bytes:4},[T]:{Y:No,bytes:8}},wo=s(o.MAX_SAFE_INTEGER);class lo{constructor(e,t){n.assign(this,{reader:e,options:t})}async getData(e,t,r,s={}){const i=this,c=le(),{reader:u,index:f,offset:p,diskNumberStart:h,extraFieldAES:m,extraFieldZip64:y,compressionMethod:b,bitFlag:v,rawBitFlag:S,crc32:k,rawLastModDate:x,uncompressedSize:z,compressedSize:D}=i,{dataDescriptor:C}=v,A=t.localDirectory={},F=t.warnings=[],U=Ro(u,h)+p,T=await Er(u,U,30),E=wt(T);let M=Lo(i,s,"password"),L=Lo(i,s,"rawPassword");const P=(e=>{if(e!==j&&typeof e!=_&&"compressed"!==e)throw new l("Invalid passThrough option (must be a boolean or 'compressed')");return e})(Lo(i,s,"passThrough")),H=!!P,B=!0===P;if(((e,t)=>{if(e&&typeof e!=X||t&&!(t instanceof d))throw new l("Invalid password (password must be a string, rawPassword must be a Uint8Array)")})(M,L),M=M&&M.length&&M,L=L&&L.length&&L,m&&99!=m.originalCompressionMethod)throw new l(_e);if(30>T.length||67324752!=qo(E,0))throw new l("Local file header not found");yo(A,E,4);const{extraFieldLength:V,filenameLength:Z}=A,q=A.dataOffset=U+30+Z+V,N=Lo(i,s,"checkLocalDirectory"),G=Ao(s,i.options),J=((e,t)=>e===j?t!=ee:!!e)(N,G),Y=Lo(i,s,"checkLocalFilename"),te=((e,t)=>e===j?t==Q:!!e)(Y===j?N:Y,G);let ne=$;if(te&&(Z||V)){const e=await Er(u,U+30,Z+V);ne=e.subarray(0,Z),A.rawExtraField=e.subarray(Z)}else A.rawExtraField=V?await Er(u,U+30+Z,V):$;te&&(A.rawFilename=ne),go(i,A,E,4,!0)&&Wr(F,eo),((e,t,n,r,o)=>{const{rawFilename:s}=e,a=!o,i=e.ee&&!(8192&~t.rawBitFlag);!r||i||n.length==s.length&&!n.some((e,t)=>e!=s[t])||Mo(a,o,"mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&Mo(a,o,"mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&Mo(a,o,"mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||i||!(t.crc32||t.compressedSize||t.uncompressedSize)||t.crc32==e.crc32&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||Mo(a,o,"mismatched local file header (crc32 or sizes)")})(i,A,ne,te,J?j:F);const{lastAccessDate:re,creationDate:oe,uid:se,gid:ae}=A;re&&(t.lastAccessDate=re),oe&&(t.creationDate=oe),se!==j&&t.uid===j&&(t.uid=se),ae!==j&&t.gid===j&&(t.gid=ae);const ie=Lo(i,s,"checkPasswordOnly"),ce=i.encrypted&&A.encrypted&&(!B||ie),ue=ce&&!m;if(B||(t.zipCrypto=ue),ce&&!(64&~A.rawBitFlag))throw new l(Qr);const fe=H?j:(e=>$e.get(e))(b);if(0!=b&&8!=b&&9!=b&&!fe&&!H)throw new l(_e);if(ce){if(!ue&&(1>m.strength||m.strength>3))throw new l(Qr);if(!M&&!L)throw new l("File contains encrypted entry")}if(q+D>u.size)throw new l("Entry data out of bounds");const we=D,de=(e=>{if(e&&(typeof e.addEventListener!=K||typeof e.aborted!=_))throw new l("Invalid signal (must be an AbortSignal instance)");return e||j})(Lo(i,s,"signal"));(e=>{if(e&&e.aborted)throw e.reason===j?new DOMException("The operation was aborted","AbortError"):e.reason})(de);let pe=Lo(i,s,"checkOverlappingEntry");const he=Lo(i,s,"checkOverlappingEntryOnly");he&&(pe=!0);const{onstart:me,onprogress:ye,onend:ge}=s,be=0!=b&&!H,ve=H?D-((e,t,n)=>e?t?12:16+4*n:0)(ce,ue,m&&m.strength):z,Se=9==b;let ke=Lo(i,s,"useCompressionStream");Se&&(ke=!1);const xe=Lo(i,s,"checkCrc32"),ze=(xe===j?Lo(i,s,"checkSignature"):xe)&&!H&&(!ce||ue||m&&1==m.vendorVersion),Re={options:{codecType:kn,password:M,rawPassword:L,zipCrypto:ue,encryptionStrength:m&&m.strength,checkCrc32:ze,checkAuthenticationCode:Lo(i,s,"checkAuthenticationCode"),passwordVerification:ue&&(C?x>>>8&W:k>>>24&W),outputSize:ve,crc32:k,compressed:be,encrypted:ce,useWebWorkers:Lo(i,s,"useWebWorkers"),useCompressionStream:ke,transferStreams:Lo(i,s,"transferStreams"),deflate64:Se,format:fe?fe.format:j,codecURI:fe?fe.codecURI:j,compressionMethod:b,rawBitFlag:S,checkPasswordOnly:ie},config:c,U:{signal:de,size:we,onstart:me,onprogress:ye,onend:ge}};let De,Ce,Ae;pe&&await(async({reader:e,te:t,index:n,offset:r,crc32:o,compressedSize:s,uncompressedSize:a,dataOffset:i,dataDescriptor:c,extraFieldZip64:u,ne:f})=>{let w=0;if(c&&(w=u?20:12),w){const n=await Er(e,i+s,w+4),r=wt(n);let c=n.length==w+4&&qo(r,0)==O;if(c){const e=zo(r,4,u);(t.encrypted&&!t.zipCrypto||e.crc32==o)&&e.compressedSize==s&&e.uncompressedSize==a?w+=4:c=!1}if(n.length>=w){const e=zo(r,c?4:0,u);e.signature=c,t.localDirectory.dataDescriptor=e}}const d={start:r,end:i+s+w,te:t},{re:p,oe:h,se:m}=f;if(!p.has(n)){const e=((e,t)=>{let n=0,r=e.length;for(;r>n;){const o=n+r>>>1;e[o].start<t.start?n=o+1:r=o}const o=e[n-1],s=e[n];return o&&xo(t,o)?o:s&&xo(t,s)?s:void 0})(h,d)||m.find(e=>xo(d,e));if(e){const t=new l("Overlapping entry found");throw t.overlappingEntry=e.te,t}p.add(n),m.push(d),m.length*m.length>h.length&&(m.sort((e,t)=>e.start-t.start),f.oe=((e,t)=>{const n=[];let r=0,o=0;for(;r<e.length||o<t.length;)o==t.length||r<e.length&&e[r].start<t[o].start?n.push(e[r++]):n.push(t[o++]);return n})(h,m),m.length=0)}})({reader:u,te:t,index:f,offset:U,crc32:k,compressedSize:D,uncompressedSize:z,dataOffset:q,dataDescriptor:C||A.bitFlag.dataDescriptor,extraFieldZip64:y||A.extraFieldZip64,ne:r});try{if(!he){ie&&(e=new R),e=new Ir(e),await Ur(e,((e,t,n)=>a.min(e,n?1032*t:t))(ve,D,be)),({writable:De}=e);const t=on(u.createReadable({offset:q,size:we})),{outputSize:r}=await async function(e,t){const{options:n,config:r}=t,{transferStreams:s,useWebWorkers:a,useCompressionStream:i,compressed:c,checkCrc32:u,computeCrc32:f,encrypted:d,format:p,codecURI:h}=n,{workerURI:m,createWorker:y,maxWorkers:b}=r;p&&(h&&(n.codecURI=((e,t)=>{try{return new w(e,t).toString()}catch{return e}})(h,r.baseURI)),await(async(e,t)=>{!Je.has(e)&&t&&((e,t)=>{const{CompressionStream:n,DecompressionStream:r}=t;if(typeof n!=K&&typeof r!=K)throw new l("Invalid codec module");Je.set(e,{CompressionStream:n,DecompressionStream:r})})(e,await(import(t)))})(p,n.codecURI)),t.transferStreams=!p&&(s||s===j&&r.transferStreams);const v=!(c||u||f||d),S=p===j||!!n.codecURI;return t.useWebWorkers=!v&&S&&(a||a===j&&r.useWebWorkers),t.workerURI=t.useWebWorkers&&m?m:j,t.createWorker=t.useWebWorkers&&y?y:j,n.useCompressionStream=i||i===j&&r.useCompressionStream,(await(async()=>{const n=In.find(e=>!e.T);if(n)return Bn(n),new Cn(n,e,t,k);if(In.length<b){const n={ae:Wn};return Wn++,In.push(n),new Cn(n,e,t,k)}return new g(n=>{Un.push({resolve:n,stream:e,M:t}),En=r.workerStarvationTimeout,Mn()})})()).run();function k(e){if(On(),e.B)return e.B=!1,(()=>{const e=Un.splice(0).map(({resolve:e,stream:t,M:n})=>new g(r=>{e(new Cn({},t,Pn(n),()=>{Hn(),r()}))}));return On(),g.all(e)})();if(Un.length){const[{resolve:t,stream:n,M:r}]=Un.splice(0,1);t(new Cn(e,n,r,k)),Mn()}else e.O?(Bn(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;o.isFinite(r)&&r>=0&&(e.V=I(async()=>{In=In.filter(t=>t!=e);try{await e.terminate()}catch{}},r))})(e,t)):In=In.filter(t=>t!=e)}}({readable:t,writable:De},Re);if(r!=ve)throw n.assign(new l(cn),{outputSize:r});e.size+=r}}catch(t){const{outputSize:n}=Re;if(n!==j?e.size+=n:Rn(t)&&t.outputSize!==j&&(e.size+=t.outputSize),!ie||!Rn(t)||t.message!=Ft)throw Ce=t,Ae=!0,t}finally{const t=!(e=>!(!e||!e.getData))(e)&&Lo(i,s,"preventClose");if(!t&&De&&!De.locked){const e=De.getWriter();if(Ae)try{await e.abort(Ce)}catch{}else await e.close()}}return ie||he?j:e.getData?e.getData():De}}function po(e){const t=a.min(e.byteLength,1024)-3;for(let n=0;t>n;n++)if(134630224==qo(e,n))return!0;return!1}function ho(e,t,n){let r=0;for(;n+46<=t.length&&qo(e,n)==L;)n+=46+Zo(e,n+28)+Zo(e,n+30)+Zo(e,n+32),r++;return r%65536?0:r}function mo(e){if(e.length>=6){const t=wt(e);if(84233040==qo(t,0)){const n=Zo(t,4);if(6+n<=e.length)return new d(e.subarray(6,6+n))}}}function yo(e,t,r){const o=e.rawBitFlag=Zo(t,r+2),s=!(1&~o),a=qo(t,r+6);n.assign(e,{encrypted:s,version:Zo(t,r),bitFlag:{level:(6&o)>>1,dataDescriptor:!(8&~o),languageEncodingFlag:!(2048&~o)},rawLastModDate:a,lastModDate:Ho(a),filenameLength:Zo(t,r+22),extraFieldLength:Zo(t,r+24)})}function go(e,t,r,o,s){const{rawExtraField:a}=t,u=t.extraField=new c,f=wt(a);let w=0,d=!1;try{for(;w<a.length;){const e=Zo(f,w),t=Zo(f,w+2);u.set(e,{type:e,data:a.slice(w+4,w+4+t)}),w+=4+t}}catch{d=!0}w>a.length&&(d=!0);const p=Zo(r,o+4);n.assign(t,{signature:qo(r,o+10),crc32:qo(r,o+10),compressedSize:qo(r,o+14),uncompressedSize:qo(r,o+18)});const h=u.get(1);h&&(((e,t)=>{t.zip64=!0;const n=wt(e.data),r=uo.filter(([e,n])=>t[e]==n),o=r.reduce((e,[,t])=>e+fo[t].bytes,0);if(e.data.length<o)throw new l("Zip64 extra field not found");for(let o=0,s=0;o<r.length;o++){const[a,i]=r[o],c=fo[i];t[a]=e[a]=c.Y(n,s),s+=c.bytes}})(h,t),t.extraFieldZip64=h);const m=u.get(28789);m&&(bo(m,Mr,Or,t,e),t.extraFieldUnicodePath=m);const y=u.get(25461);y&&(bo(y,Lr,Pr,t,e),t.extraFieldUnicodeComment=y);const g=u.get(39169);g&&g.data.length>=7?(((e,t,r)=>{const o=wt(e.data),s=Vo(o,4);n.assign(e,{vendorVersion:Vo(o,0),vendorId:Vo(o,2),strength:s,originalCompressionMethod:r,compressionMethod:Zo(o,5)}),t.compressionMethod=e.compressionMethod,1!=e.vendorVersion&&(t.crc32=j)})(g,t,p),t.extraFieldAES=g):t.compressionMethod=p;const b=u.get(13);b&&(vo(b,t),t.extraFieldPkwareUnix=b);const v=u.get(22613);v&&(vo(v,t),t.extraFieldUnixType1=v);const S=u.get(10);S&&(((e,t)=>{const r=wt(e.data);let o,s=4;try{for(;s<e.data.length&&!o;){const t=Zo(r,s),n=Zo(r,s+2);1==t&&(o=e.data.slice(s+4,s+4+n)),s+=4+n}}catch{}if(o&&24==o.length){const r=wt(o),s=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),i=r.getBigUint64(16,!0);n.assign(e,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:i});const c={lastModDate:Bo(s),lastAccessDate:Bo(a),creationDate:Bo(i)};n.assign(e,c),n.assign(t,c,{rawLastAccessDate:a,rawCreationDate:i})}})(S,t),t.extraFieldNTFS=S);const k=u.get(30805);let x;if(k&&(x=So(k,t,!1),t.extraFieldUnix=k),!x){const e=u.get(30837);e&&(So(e,t,!0),t.extraFieldInfoZip=e)}const z=u.get(21589);z&&(((e,t,n)=>{if(!e.data.length)return;const r=wt(e.data),o=Vo(r,0),s=[],a=[];n?(1&~o||(s.push(qr),a.push(Nr)),2&~o||(s.push(jr),a.push(Gr)),4&~o||(s.push(Kr),a.push(Xr))):5>e.data.length||(s.push(qr),a.push(Nr));let c=1;s.forEach((n,o)=>{if(e.data.length>=c+4){const s=qo(r,c);t[n]=e[n]=new i(1e3*(0|s));const u=a[o];e[u]=s}c+=4})})(z,t,s),t.extraFieldExtendedTimestamp=z);const R=u.get(6534);return R&&(t.extraFieldUSDZ=R),d}function bo(e,t,r,o,s){if(5>e.data.length)return void(e.valid=!1);const a=wt(e.data),i=new ct;i.append(s[r]);const c=wt(new d(4));c.setUint32(0,i.get(),!0);const u=qo(a,1),f=Vo(a,0);n.assign(e,{version:f,[t]:Zn(e.data.subarray(5)),valid:1==f&&!s.bitFlag.languageEncodingFlag&&u==qo(c,0)}),e.valid&&(o[t]=e[t],o[t+"UTF8"]=!0)}function vo(e,t){if(8>e.data.length)return;const r=wt(e.data),o={lastAccessDate:new i(1e3*(0|qo(r,0))),lastModDate:new i(1e3*(0|qo(r,4)))};12>e.data.length||(o.uid=Zo(r,8),o.gid=Zo(r,10)),n.assign(e,o),n.assign(t,o)}function So(e,t,r){try{const o=wt(e.data);let s,a;if(r){let t=0;const r=Vo(o,t++),i=Vo(o,t++);s=ko(e.data.subarray(t,t+i)),t+=i;const c=Vo(o,t++);a=ko(e.data.subarray(t,t+c)),n.assign(e,{version:r,uid:s,gid:a})}else 4>e.data.length||(s=Zo(o,0),a=Zo(o,2),n.assign(e,{uid:s,gid:a}));return s!==j&&(t.uid=s),a!==j&&(t.gid=a),s!==j||a!==j}catch{}}function ko(e){const t=new d(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function xo(e,t){return e.start<t.end&&t.start<e.end}function zo(e,t,n){const r=qo(e,t);let o,s;return n?(o=No(e,t+4),s=No(e,t+12)):(o=qo(e,t+4),s=qo(e,t+8)),{crc32:r,compressedSize:o,uncompressedSize:s}}function Ro(e,t){return e.J?e.J(t):0}async function Do(e){return qo(wt(await Er(e,0,4)))}function Co(e){return e===Q||e===Y||e===ee}function Ao(e,t){return Fo(e,Fo(t,Y))}function Fo(e,t){const n=e.strictness;if(n!==j){if(!Co(n))throw new l("Invalid strictness (must be 'strict', 'balanced' or 'tolerant')");return n}const r=e.checkAmbiguity;return r===j?t:r?Q:t==ee?ee:Y}function Io(e,t){if(t==ee)return!1;const n=e.split("/");return n.length>1&&""===n[n.length-1]&&n.pop(),!!(ao.test(e)||e.startsWith("/")||e.startsWith("\\")||so.test(e))||t==Q&&(n.includes(".")||n.includes("")||e.includes("\0"))}async function*Uo(e,t){const n=e.size-t,r=await Er(e,n,t),o=wt(r);for(let e=r.length-B;e>=0;e--)101010256==qo(o,e)&&(yield[o,n,r,e,n+e])}function To(e,t,n){return{offset:n,buffer:new d(e.subarray(t,t+B)).buffer}}async function Eo(e,t,n,r,o,s,a){const i=Zo(t,r+10),c=qo(t,r+12),u=qo(t,r+16);if(i==E||c==T||u==T)return await Wo(e,t,n,o-V,s,a)==H?2:0;if(!i&&!c)return 1;const f=Zo(t,r+6);for(const r of[o-c,Ro(e,f)+u])if(await Wo(e,t,n,r,s,a)==L)return 2;return 0}async function Wo(e,t,n,r,o,s){return 0>r||r+4>o?j:n>r?s.count>0?(s.count--,qo(wt(await Er(e,r,4)),0)):j:qo(t,r-n)}function Mo(e,t,n){e?Oo(n):Wr(t,n)}function Oo(e){const t=new l("Ambiguous archive");throw t.reason=e,t}function Lo(e,t,n){return t[n]===j?e.options[n]:t[n]}function Po(e,t,n){return te(Lo(e,t,n))}function Ho(e){const t=(4294901760&e)>>16,n=e&E,r=new i(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0);return N>r?N:r}function Bo(e){return new i(o(e/s(1e4)-s(116444736e5)))}function Vo(e,t){return e.getUint8(t)}function Zo(e,t){return e.getUint16(t,!0)}function qo(e,t){return e.getUint32(t,!0)}function No(e,t){const n=e.getBigUint64(t,!0);if(n>wo)throw new l("64-bit value exceeds Number.MAX_SAFE_INTEGER");return o(n)}(e=>{const t=he(ye(e));n.assign(oe,t),n.assign(we,t)})({workerURI:null,wasmURI:null,DecompressionStreamFallback:class extends Xe{constructor(e){(e=>{if("deflate-raw"!=e)throw new TypeError("Unsupported compression format: "+e)})(e),super(new Ge)}}}),e.BlobReader=ar,e.BlobWriter=ir,e.Data64URIWriter=class extends rr{constructor(e){super(),n.assign(this,{contentType:e,data:"data:"+(e||"")+";base64,",ie:""})}writeUint8Array(e){const t=this;let n,o=t.ie;const s=t.ie.length;for(t.ie="",n=0;n<3*a.floor((s+e.length)/3)-s;n++)o+=r.fromCharCode(e[n]);for(;n<e.length;n++)t.ie+=r.fromCharCode(e[n]);o.length>2?t.data+=k(o):t.ie=o+t.ie}getData(){return this.data+k(this.ie)}},e.HttpRangeReader=class extends Dr{constructor(e,t={}){super(e,n.assign({},t,{useRangeHeader:!0}))}},e.TextWriter=class extends ir{constructor(e){super(),n.assign(this,{encoding:e,ce:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,ce:t}=this,n=await super.getData();return n.text&&t?n.text():((e,t)=>Nn(e,t,!1))(new d(await n.arrayBuffer()),e)}},e.ZipReader=class{constructor(e,t={}){n.assign(this,{reader:new Fr(e),options:t,ne:{re:new u,oe:[],se:[]}})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;if(await Ur(r),r.size!==j&&r.readUint8Array||(r=new ar(await sn(r.readable)),await Ur(r)),r.size<B)throw new l(Jr);const s=t.warnings=[],i=Ao(e,t.options),c=i==Q,f=i!=ee,w=((e,t)=>{if(e!==j){const t=ne(e);if("number"!=typeof t||o.isNaN(t)||0>t)throw new l("Invalid maxAppendedDataSize (must be a number greater than or equal to 0)");return t}return t==Q?0:t==ee?1/0:E})(Lo(t,e,"maxAppendedDataSize"),i),p=((e,t)=>{if(e===j)return t;if(!Co(e))throw new l("Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')");return e})(Lo(t,e,"filenameValidation"),i),h=Lo(t,e,"normalizeFilename"),{ue:m,fe:y}=await(async(e,t,n)=>{const{size:r}=e,o=a.min(r,65557),s={count:64};let i,c,u=0;for await(const[n,a,f,w,l]of Uo(e,o)){const o=Zo(n,w+20);if(l+B+o==r){const o=await Eo(e,n,a,w,l,r,s);if(2==o){if(i||(i=To(f,w,l)),u++,!t||u>1)break}else 1!=o||c||(c=To(f,w,l))}}return i||(i=c),i||(i=await(async(e,t,n)=>{const{size:r}=e,o=a.min(r,t==1/0?r:65557+t);let s,i;for await(const[t,a,c,u,f]of Uo(e,o)){const o=To(c,u,f);s||(s=o);const w=await Eo(e,t,a,u,f,r,n);if(2==w)return o;1!=w||i||(i=o)}return i||s})(e,n,s)),{ue:i,fe:u}})(r,f,w);if(!m)throw await(async e=>await Do(e)==M)(r)?new l(Yr):new l("End of central directory not found");f&&y>1&&Oo("multiple end of central directory records");const g=wt(m);let b=qo(g,12),v=qo(g,16);const S=m.offset,k=Zo(g,20),z=S+B+k,R=r.size-z;R>w&&Oo(no),R>0&&Wr(s,no);let D=Zo(g,4);const C=r._||0;let A,F,I,U,O,N=Zo(g,6),G=Zo(g,10),K=0,X=Z;const _=v==T||b==T||G==E||N==E;if(v!=T&&N!=E&&(v+=Ro(r,N)),_){const e=m.offset<V?$:await Er(r,m.offset-V,V),t=wt(e);if(e.length==V&&qo(t,0)==H){v=Ro(r,qo(t,4))+No(t,8);let e=await Er(r,v,Z),o=wt(e);const i=m.offset-V-Z;if((e.length<Z||qo(o,0)!=P)&&v!=i&&i>=0){const t=v;v=i,v>t&&(K=v-t),e=await Er(r,v,Z),o=wt(e)}if(e.length<Z||qo(o,0)!=P)throw new l("End of Zip64 central directory locator not found");if(I=!0,U=No(o,4)>44,U){const e=a.min(No(o,4)-44,r.size-v-Z);e>0&&(X+=e,O=(e=>{const t={rawExtensibleData:e};if(e.length>=28){const r=wt(e),o=Zo(r,26);n.assign(t,{compressionMethod:Zo(r,0),compressedSize:No(r,2),uncompressedSize:No(r,10),encryptionAlgorithm:Zo(r,18),bitLength:Zo(r,20),flags:Zo(r,22),hashAlgorithm:Zo(r,24),hashData:e.subarray(28,28+o)})}return t})(await Er(r,v+Z,e)))}D==E?D=qo(o,16):D!=qo(o,16)&&Mo(c,s,oo),N==E?N=qo(o,20):N!=qo(o,20)&&Mo(c,s,oo),G==E?G=No(o,32):G!=No(o,32)&&Mo(c,s,oo),b==T?b=No(o,40):b!=No(o,40)&&Mo(c,s,oo),v=Ro(r,N)+No(o,48)+K}}let J=b;const Y=m.offset-(I?X+V:0);if(v<r.size||(K=r.size-v-b-B,v=r.size-b-B),C!=D)throw new l(Yr);if(0>v)throw new l(Jr);let te=0,re=await Er(r,v,b),oe=wt(re);if(b){if(4>re.length)throw new l(Jr);const e=Y-b;if(v!=e&&N==D){const t=qo(oe,te)==L||!(!O||!O.compressedSize)||po(oe);let n=!t;if(n||0>e||e+4>r.size||(n=qo(wt(await Er(r,e,4)),0)==L),n){const n=v;v=e,v>n&&(K+=v-n,A=t),re=await Er(r,v,b),oe=wt(re)}}}const se=Y-v;if(b==se||0>se||N!=D||(b=se,re=await Er(r,v,b),oe=wt(re)),0>v||v>=r.size)throw new l(Jr);t.directoryOffset=v,t.directoryLength=J;const ae=Po(t,e,"decryptCentralDirectory");let ie,ce;if(ae&&G&&re.length>=4&&qo(oe,0)!=L&&(U||po(oe))){const e=((e,t,n)=>{const r=e&&e.compressedSize?e.compressedSize:t;return r>0&&n>=r?r:n})(O,J,re.length);ce=re.subarray(e),re=await ae(re.subarray(0,e),O),oe=wt(re),J=re.length,ie=!0}!O||ie||re.length>=4&&qo(oe,0)!=L||Wr(s,"unknown zip64 extensible data"),F=v;const ue=Lo(t,e,"filenameEncoding"),fe=Lo(t,e,"commentEncoding"),we=new u;let le,de=-1;const pe=!c&&!I;!G&&pe&&(G=ho(oe,re,te),G&&Wr(s,to));for(let o=0;G>o;o++){const i=new lo(r,t.options);if(te+46>re.length||qo(oe,te)!=L){if(0==o&&!ie&&(U||po(oe)))throw new l("Encrypted central directory is not supported");throw new l("Central directory header not found")}yo(i,oe,te+6);const c=!!i.bitFlag.languageEncodingFlag,u=te+46,f=u+i.filenameLength+i.extraFieldLength,w=Zo(oe,te+4),m=!(w>>8),y=w>>8==3,g=Zo(oe,te+32),b=f+g,v=new d(re.subarray(u,b)),S=v.subarray(0,i.filenameLength),k=v.subarray(i.filenameLength+i.extraFieldLength),z=c||!ue&&qn(S),R=c||!fe&&qn(k),D=qo(oe,te+38),C=D&W,A={readOnly:!!(1&C),hidden:!!(2&C),system:!!(4&C),directory:!!(16&C),archive:!!(32&C)},I=qo(oe,te+42),T=Po(t,e,"decodeText")||Zn,M=z?io:ue||co,O=R?io:fe||co;let P=T(S,M,"filename");if(P===j&&(P=Zn(S,M)),h){const e=h(P);e!==j&&(P=e)}if(Io(P,p)){const e=new l("Unsafe filename");throw e.filename=P,e}let H=T(k,O,"comment");H===j&&(H=Zn(k,O)),n.assign(i,{index:o,ee:ie,versionMadeBy:w,msDosCompatible:m,zip64:!1,compressedSize:0,uncompressedSize:0,we:g,offset:I,diskNumberStart:Zo(oe,te+34),internalFileAttributes:Zo(oe,te+36),externalFileAttributes:D,msdosAttributesRaw:C,msdosAttributes:A,rawFilename:S,filenameUTF8:z,commentUTF8:R,rawExtraField:v.subarray(i.filenameLength,i.filenameLength+i.extraFieldLength),rawComment:k,filename:P,comment:H}),go(i,i,oe,te+6)&&Wr(s,eo,P),i.offset+=K;const B=Ro(r,i.diskNumberStart)+i.offset;F=a.min(B,F),de>B&&Wr(s,"unsorted central directory",P),de=B,(i.version&W)>63&&Wr(s,"unknown version needed to extract",P),32&~i.rawBitFlag||Wr(s,"compressed patched data",P),we.has(i.filename)&&(le=!0),we.add(i.filename);const V=i.externalFileAttributes>>16&E;i.unixMode===j&&16877&V&&(i.unixMode=V);const Z=!!(2048&i.unixMode),N=!!(1024&i.unixMode),X=!!(512&i.unixMode),_=40960==((i.unixMode===j?V:i.unixMode)&q),$=!_&&(i.unixMode!==j?!!(73&i.unixMode):y&&!!(73&V)),J=i.unixMode!==j&&16384==(i.unixMode&q),Q=16384==(V&q);n.assign(i,{setuid:Z,setgid:N,sticky:X,symlink:_,unixExternalUpper:V,executable:$,directory:J||Q||m&&A.directory||i.filename.endsWith("/"),zipCrypto:i.encrypted&&!i.extraFieldAES});const Y=new $r(i);if(Y.getData=(e,n)=>i.getData(e,Y,t.ne,n),Y.arrayBuffer=async e=>{const r=new x,o=sn(r.readable).then(e=>e.arrayBuffer());return o.catch(()=>{}),await i.getData(r,Y,t.ne,n.assign({},e,{preventClose:!1})),o},te=b,o==G-1&&pe){const e=ho(oe,re,te);e&&(G+=e,Wr(s,to))}const{onprogress:ee}=e;if(ee)try{await ee(o+1,G,new $r(i))}catch{}yield Y}let he=te,me=mo(re.subarray(te))||(ie?mo(ce):j);if(!me&&!ie){const e=v+te,t=a.min(Y-e,65541);6>t||(me=mo(await Er(r,e,t)))}me&&(t.digitalSignature=me,he=te+6+me.length),(te!=J&&he!=J||!ie&&te!=b&&he!=b)&&Mo(c,s,"trailing central directory data"),le&&Mo(c,s,"duplicate filename");const ye=Lo(t,e,"extractPrependedData"),ge=Lo(t,e,"extractAppendedData"),be=(c||ye)&&G&&4==F&&await(async e=>{const t=await Do(e);return t==M||808471376==t})(r)?4:0;return c&&(K||G&&F>be)&&Oo(ro),(K||G&&F>4)&&Wr(s,ro),A&&Wr(s,"prepended central directory"),ye&&(t.prependedData=F>be?await Er(r,be,F-be):$),t.comment=k?await Er(r,S+B,k):$,ge&&(t.appendedData=z<r.size?await Er(r,z,r.size-z):$),!0}async getEntries(e={}){const t=[];for await(const n of this.getEntriesGenerator(e))t.push(n);return t}async close(){const{reader:e}=this;e.readUint8Array||!e.readable||e.readable.locked||await e.readable.cancel()}[J](){return this.close()}},e.configure=e=>{n.assign(we,he(ye(e)))},e.inflateRaw=(e,t)=>Ne(e,{i:2},t&&t.le,t&&t.m)});
|
|
1
|
+
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:n,String:r,Number:o,BigInt:s,Math:a,Date:i,Map:c,Set:u,Response:f,URL:w,Error:l,Uint8Array:d,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:b,TextDecoder:v,crypto:S,btoa:k,TransformStream:x,ReadableStream:z,WritableStream:R,CompressionStream:D,DecompressionStream:C,navigator:A,Worker:F,setTimeout:I,clearTimeout:U}="undefined"!=typeof globalThis?globalThis:self,T=4294967295,E=65535,W=255,M=134695760,O=M,L=33639248,P=101075792,H=117853008,B=22,V=20,Z=56,q=61440,N=new i(1980,0,1),j=void 0,G="undefined",K="function",X="string",_="boolean",$=new d,J=Symbol.asyncDispose||Symbol(),Q="strict",Y="balanced",ee="tolerant";function te(e){if(e&&typeof e!=K)throw new l("Invalid option (must be a function)");return e}function ne(e){return typeof e==X&&e.trim()?o(e):e}let re=2;try{typeof A!=G&&A.hardwareConcurrency&&(re=A.hardwareConcurrency)}catch{}const oe={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:re,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof D!=G&&D,DecompressionStream:typeof C!=G&&C},se="maxWorkers",ae="baseURI",ie=["wasmURI","workerURI"],ce=["chunkSize",se,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],ue=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],fe=[ae,...ie,"useCompressionStream","useWebWorkers","transferStreams",...ce,...ue],we={...oe};function le(){return we}function de(e){return pe(e.chunkSize)}function pe(e){return e=ne(e),o.isInteger(e)&&e>=1?a.max(e,64):65536}function he(e){const t={};for(const n of fe){const r=e[n];r!==j&&(t[n]=me(n,r))}return t}function me(e,t){if(ce.includes(e)){if(t=ne(t),e==se&&(!o.isInteger(t)||1>t))throw new l("Invalid maxWorkers (must be an integer greater than 0)")}else if(ue.includes(e))te(t);else if(e==ae){if(t&&typeof t!=X)throw new l("Invalid baseURI (must be a string)")}else if(ie.includes(e)&&t&&typeof t!=X&&typeof t!=K)throw new l("Invalid URI (must be a string or a function returning a string)");return t}function ye(e){e=e||{};const{CompressionStreamZlib:t,DecompressionStreamZlib:r}=e;if(t===j&&r===j)return e;const o=n.assign({},e);return o.CompressionStreamFallback===j&&(o.CompressionStreamFallback=t),o.DecompressionStreamFallback===j&&(o.DecompressionStreamFallback=r),o}var ge=d,be=p,ve=Int32Array,Se=new ge([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,0,0,0]),ke=new ge([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,0,0]),xe=new ge([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ze=(e,t)=>{for(var n=new be(31),r=0;31>r;++r)n[r]=t+=1<<e[r-1];var o=new ve(n[30]);for(r=1;30>r;++r)for(var s=n[r];s<n[r+1];++s)o[s]=s-n[r]<<5|r;return{b:n,r:o}},Re=ze(Se,2),De=Re.b,Ce=Re.r;De[28]=258,Ce[258]=28;for(var Ae=ze(ke,0).b,Fe=new be(32768),Ie=0;32768>Ie;++Ie){var Ue=(43690&Ie)>>1|(21845&Ie)<<1;Ue=(61680&(Ue=(52428&Ue)>>2|(13107&Ue)<<2))>>4|(3855&Ue)<<4,Fe[Ie]=((65280&Ue)>>8|(255&Ue)<<8)>>1}var Te=(e,t,n)=>{for(var r=e.length,o=0,s=new be(t);r>o;++o)e[o]&&++s[e[o]-1];var a,i=new be(t);for(o=1;t>o;++o)i[o]=i[o-1]+s[o-1]<<1;if(n){a=new be(1<<t);var c=15-t;for(o=0;r>o;++o)if(e[o])for(var u=o<<4|e[o],f=t-e[o],w=i[e[o]-1]++<<f,l=w|(1<<f)-1;l>=w;++w)a[Fe[w]>>c]=u}else for(a=new be(r),o=0;r>o;++o)e[o]&&(a[o]=Fe[i[e[o]-1]++]>>15-e[o]);return a},Ee=new ge(288);for(Ie=0;144>Ie;++Ie)Ee[Ie]=8;for(Ie=144;256>Ie;++Ie)Ee[Ie]=9;for(Ie=256;280>Ie;++Ie)Ee[Ie]=7;for(Ie=280;288>Ie;++Ie)Ee[Ie]=8;var We=new ge(32);for(Ie=0;32>Ie;++Ie)We[Ie]=5;var Me=Te(Ee,9,1),Oe=Te(We,5,1),Le=e=>{for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},Pe=(e,t,n)=>{var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&n},He=(e,t)=>{var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},Be=e=>(e+7)/8|0,Ve=(e,t,n)=>((null==t||0>t)&&(t=0),(null==n||n>e.length)&&(n=e.length),new ge(e.subarray(t,n))),Ze=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],qe=(e,t,n)=>{var r=new l(t||Ze[e]);if(r.code=e,l.captureStackTrace&&l.captureStackTrace(r,qe),!n)throw r;return r},Ne=(e,t,n,r)=>{var o=e.length,s=r?r.length:0;if(!o||t.f&&!t.o)return n||new ge(0);var i=!n,c=i||2!=t.i,u=t.i;i&&(n=new ge(3*o));var f=e=>{var t=n.length;if(e>t){var r=new ge(a.max(2*t,e));r.set(n),n=r}},w=t.f||0,l=t.p||0,d=t.b||0,p=t.o,h=t.d,m=t.l,y=t.n,g=8*o;do{if(!p){w=Pe(e,l,1);var b=Pe(e,l+1,3);if(l+=3,!b){var v=e[(U=Be(l)+4)-4]|e[U-3]<<8,S=U+v;if(S>o){u&&qe(0);break}c&&f(d+v),n.set(e.subarray(U,S),d),t.b=d+=v,t.p=l=8*S,t.f=w;continue}if(1==b)p=Me,h=Oe,m=9,y=5;else if(2==b){var k=Pe(e,l,31)+257,x=Pe(e,l+10,15)+4,z=k+Pe(e,l+5,31)+1;l+=14;for(var R=new ge(z),D=new ge(19),C=0;x>C;++C)D[xe[C]]=Pe(e,l+3*C,7);l+=3*x;var A=Le(D),F=(1<<A)-1,I=Te(D,A,1);for(C=0;z>C;){var U,T=I[Pe(e,l,F)];if(l+=15&T,16>(U=T>>4))R[C++]=U;else{var E=0,W=0;for(16==U?(W=3+Pe(e,l,3),l+=2,E=R[C-1]):17==U?(W=3+Pe(e,l,7),l+=3):18==U&&(W=11+Pe(e,l,127),l+=7);W--;)R[C++]=E}}var M=R.subarray(0,k),O=R.subarray(k);m=Le(M),y=Le(O),p=Te(M,m,1),h=Te(O,y,1)}else qe(1);if(l>g){u&&qe(0);break}}c&&f(d+131072);for(var L=(1<<m)-1,P=(1<<y)-1,H=l;;H=l){var B=(E=p[He(e,l)&L])>>4;if((l+=15&E)>g){u&&qe(0);break}if(E||qe(2),256>B)n[d++]=B;else{if(256==B){H=l,p=null;break}var V=B-254;if(B>264){var Z=Se[C=B-257];V=Pe(e,l,(1<<Z)-1)+De[C],l+=Z}var q=h[He(e,l)&P],N=q>>4;if(q||qe(3),l+=15&q,O=Ae[N],N>3&&(Z=ke[N],O+=He(e,l)&(1<<Z)-1,l+=Z),l>g){u&&qe(0);break}c&&f(d+131072);var j=d+V;if(O>d){var G=s-O,K=a.min(O,j);for(0>G+d&&qe(3);K>d;++d)n[d]=r[G+d]}for(;j>d;++d)n[d]=n[d-O]}}t.o=p,t.p=H,t.b=d,t.f=w,p&&(w=1,t.l=m,t.d=h,t.n=y)}while(!w);return d!=n.length&&i?Ve(n,0,d):n.subarray(0,d)},je=new ge(0),Ge=function(){function e(e,t){"function"==typeof e&&(t=e,e={}),this.h=t;var n=e&&e.m&&e.m.subarray(-32768);this.s={i:0,b:n?n.length:0},this.v=new ge(32768),this.p=new ge(0),n&&this.v.set(n)}return e.prototype.e=function(e){if(this.h||qe(5),this.d&&qe(4),this.p.length){if(e.length){var t=new ge(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}}else this.p=e},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,n=Ne(this.p,this.s,this.v);this.h(Ve(n,t,this.s.b),this.d),this.v=Ve(n,this.s.b-32768),this.s.b=this.v.length,this.p=Ve(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),Ke=void 0!==v&&new v;try{Ke.decode(je,{stream:!0})}catch(e){}class Xe extends x{constructor(e){super({start(t){e.h=e=>{e.length&&t.enqueue(e)}},transform(t){e.push(t)},flush(){e.push(new d(0),!0)}})}}const _e="Compression method not supported",$e=new c,Je=new c;function Qe(e){return Je.get(e)}const Ye=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;Ye[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const n=Ye[t-1][e];Ye[t][e]=n>>>8^Ye[0][255&n]}const[et,tt,nt,rt,ot,st,at,it]=Ye;class ct{constructor(e){this.S=e||-1}append(e){let t=0|this.S;const n=0|e.length;let r=0;if(n>=8&&e.buffer){const o=new m(e.buffer,e.byteOffset,n),s=n-8;for(;s>=r;r+=8){const e=t^o.getInt32(r,!0),n=o.getInt32(r+4,!0);t=it[255&e]^at[e>>>8&255]^st[e>>>16&255]^ot[e>>>24&255]^rt[255&n]^nt[n>>>8&255]^tt[n>>>16&255]^et[n>>>24&255]}}for(;n>r;r++)t=t>>>8^et[255&(t^e[r])];this.S=t}get(){return~this.S}}class ut extends x{constructor(){let e;const t=new ct;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new d(4);new m(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function ft(e,t){const n=new d(e.length+t.length);return n.set(e),n.set(t,e.length),n}function wt(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const lt=64,dt=20,pt=new d([128]),ht=new d(1),mt=new Int32Array([1732584193,4023233417,2562383102,271733878,3285377520]),yt=new d(256),gt=new Int32Array(256),bt=new Int32Array(256),vt=new Int32Array(256),St=new Int32Array(256);let kt=!1;function xt(e){const t=(()=>{const e=new Int32Array(mt),t=new Int32Array(16),n=new d(lt),r=new m(n.buffer),o=new d(8);let s=0,i=0;return{update:c,digest:()=>{const t=8*i,n=a.floor(t/4294967296),r=t>>>0;for(c(pt,0,1);56!=s;)c(ht,0,1);o[0]=n>>>24,o[1]=n>>>16,o[2]=n>>>8,o[3]=n,o[4]=r>>>24,o[5]=r>>>16,o[6]=r>>>8,o[7]=r,c(o,0,8);const u=new d(dt),f=new m(u.buffer);for(let t=0;t<e.length;t++)f.setInt32(4*t,e[t]);return e.set(mt),s=0,i=0,u}};function c(e,t,o){const a=t+o;if(i+=o,s){for(;a>t&<>s;)n[s++]=e[t++];s==lt&&(u(r,0),s=0)}if(a>=t+lt){const n=new m(e.buffer,e.byteOffset,e.byteLength);for(;a>=t+lt;t+=lt)u(n,t)}for(;a>t;)n[s++]=e[t++]}function u(n,r){for(let e=0;16>e;e++)t[e]=n.getInt32(r+4*e);let o,s=e[0],a=e[1],i=e[2],c=e[3],u=e[4];for(let e=0;15>e;e+=5)u=(s<<5|s>>>27)+((i^c)&a^c)+u+1518500249+t[e]|0,a=a<<30|a>>>2,c=(u<<5|u>>>27)+((a^i)&s^i)+c+1518500249+t[e+1]|0,s=s<<30|s>>>2,i=(c<<5|c>>>27)+((s^a)&u^a)+i+1518500249+t[e+2]|0,u=u<<30|u>>>2,a=(i<<5|i>>>27)+((u^s)&c^s)+a+1518500249+t[e+3]|0,c=c<<30|c>>>2,s=(a<<5|a>>>27)+((c^u)&i^u)+s+1518500249+t[e+4]|0,i=i<<30|i>>>2;u=(s<<5|s>>>27)+((i^c)&a^c)+u+1518500249+t[15]|0,a=a<<30|a>>>2,o=t[13]^t[8]^t[2]^t[0],o=o<<1|o>>>31,t[0]=o,c=(u<<5|u>>>27)+((a^i)&s^i)+c+1518500249+o|0,s=s<<30|s>>>2,o=t[14]^t[9]^t[3]^t[1],o=o<<1|o>>>31,t[1]=o,i=(c<<5|c>>>27)+((s^a)&u^a)+i+1518500249+o|0,u=u<<30|u>>>2,o=t[15]^t[10]^t[4]^t[2],o=o<<1|o>>>31,t[2]=o,a=(i<<5|i>>>27)+((u^s)&c^s)+a+1518500249+o|0,c=c<<30|c>>>2,o=t[0]^t[11]^t[5]^t[3],o=o<<1|o>>>31,t[3]=o,s=(a<<5|a>>>27)+((c^u)&i^u)+s+1518500249+o|0,i=i<<30|i>>>2;for(let e=20;40>e;e+=5)o=t[e-3&15]^t[e-8&15]^t[e-14&15]^t[15&e],o=o<<1|o>>>31,t[15&e]=o,u=(s<<5|s>>>27)+(a^i^c)+u+1859775393+o|0,a=a<<30|a>>>2,o=t[e-2&15]^t[e-7&15]^t[e-13&15]^t[e+1&15],o=o<<1|o>>>31,t[e+1&15]=o,c=(u<<5|u>>>27)+(s^a^i)+c+1859775393+o|0,s=s<<30|s>>>2,o=t[e-1&15]^t[e-6&15]^t[e-12&15]^t[e+2&15],o=o<<1|o>>>31,t[e+2&15]=o,i=(c<<5|c>>>27)+(u^s^a)+i+1859775393+o|0,u=u<<30|u>>>2,o=t[15&e]^t[e-5&15]^t[e-11&15]^t[e+3&15],o=o<<1|o>>>31,t[e+3&15]=o,a=(i<<5|i>>>27)+(c^u^s)+a+1859775393+o|0,c=c<<30|c>>>2,o=t[e+1&15]^t[e-4&15]^t[e-10&15]^t[e+4&15],o=o<<1|o>>>31,t[e+4&15]=o,s=(a<<5|a>>>27)+(i^c^u)+s+1859775393+o|0,i=i<<30|i>>>2;for(let e=40;60>e;e+=5)o=t[e-3&15]^t[e-8&15]^t[e-14&15]^t[15&e],o=o<<1|o>>>31,t[15&e]=o,u=(s<<5|s>>>27)+(a&i|(a|i)&c)+u+2400959708+o|0,a=a<<30|a>>>2,o=t[e-2&15]^t[e-7&15]^t[e-13&15]^t[e+1&15],o=o<<1|o>>>31,t[e+1&15]=o,c=(u<<5|u>>>27)+(s&a|(s|a)&i)+c+2400959708+o|0,s=s<<30|s>>>2,o=t[e-1&15]^t[e-6&15]^t[e-12&15]^t[e+2&15],o=o<<1|o>>>31,t[e+2&15]=o,i=(c<<5|c>>>27)+(u&s|(u|s)&a)+i+2400959708+o|0,u=u<<30|u>>>2,o=t[15&e]^t[e-5&15]^t[e-11&15]^t[e+3&15],o=o<<1|o>>>31,t[e+3&15]=o,a=(i<<5|i>>>27)+(c&u|(c|u)&s)+a+2400959708+o|0,c=c<<30|c>>>2,o=t[e+1&15]^t[e-4&15]^t[e-10&15]^t[e+4&15],o=o<<1|o>>>31,t[e+4&15]=o,s=(a<<5|a>>>27)+(i&c|(i|c)&u)+s+2400959708+o|0,i=i<<30|i>>>2;for(let e=60;80>e;e+=5)o=t[e-3&15]^t[e-8&15]^t[e-14&15]^t[15&e],o=o<<1|o>>>31,t[15&e]=o,u=(s<<5|s>>>27)+(a^i^c)+u+3395469782+o|0,a=a<<30|a>>>2,o=t[e-2&15]^t[e-7&15]^t[e-13&15]^t[e+1&15],o=o<<1|o>>>31,t[e+1&15]=o,c=(u<<5|u>>>27)+(s^a^i)+c+3395469782+o|0,s=s<<30|s>>>2,o=t[e-1&15]^t[e-6&15]^t[e-12&15]^t[e+2&15],o=o<<1|o>>>31,t[e+2&15]=o,i=(c<<5|c>>>27)+(u^s^a)+i+3395469782+o|0,u=u<<30|u>>>2,o=t[15&e]^t[e-5&15]^t[e-11&15]^t[e+3&15],o=o<<1|o>>>31,t[e+3&15]=o,a=(i<<5|i>>>27)+(c^u^s)+a+3395469782+o|0,c=c<<30|c>>>2,o=t[e+1&15]^t[e-4&15]^t[e-10&15]^t[e+4&15],o=o<<1|o>>>31,t[e+4&15]=o,s=(a<<5|a>>>27)+(i^c^u)+s+3395469782+o|0,i=i<<30|i>>>2;e[0]=e[0]+s|0,e[1]=e[1]+a|0,e[2]=e[2]+i|0,e[3]=e[3]+c|0,e[4]=e[4]+u|0}})(),n=new d(lt),r=new d(lt);e.length>lt&&(t.update(e,0,e.length),e=t.digest());for(let t=0;lt>t;t++){const o=t<e.length?e[t]:0;n[t]=54^o,r[t]=92^o}return t.update(n,0,lt),{update(e,n,r){t.update(e,n,r)},digest(){const e=t.digest();t.update(r,0,lt),t.update(e,0,dt);const o=t.digest();return t.update(n,0,lt),o}}}function zt(e){return yt[e>>>24]<<24|yt[e>>>16&255]<<16|yt[e>>>8&255]<<8|yt[255&e]}function Rt(e){return e<<24|(65280&e)<<8|e>>>8&65280|e>>>24}function Dt(e){return 255&(e<<1^27*(e>>7))}const Ct=typeof S!=G&&typeof S.getRandomValues==K,At="Invalid password",Ft="zipjs-abort-check-password";function It(e){if(Ct)return S.getRandomValues(e);throw new l("Crypto API not supported")}const Ut={name:"PBKDF2"},Tt=n.assign({hash:{name:"HMAC"}},Ut),Et=n.assign({iterations:1e3,hash:{name:"SHA-1"}},Ut),Wt=["deriveBits"],Mt=[8,12,16],Ot=[16,24,32],Lt=10,Pt=typeof S!=G,Ht=Pt&&S.subtle;let Bt=Pt&&typeof Ht!=G&&typeof Ht.importKey==K&&typeof Ht.deriveBits==K;class Vt extends x{constructor({password:e,rawPassword:t,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:o=!0}){super({start(){qt(this,e,t,n)},async transform(e,t){const n=this,{password:o,strength:s,R:a,ready:i}=n;o?(await(async(e,t,n,r)=>{const o=await Gt(e,t,n,Xt(r,0,Mt[t])),s=Xt(r,Mt[t]);if(o[0]!=s[0]||o[1]!=s[1])throw jt(e),new l(At)})(n,s,o,Xt(e,0,Mt[s]+2)),e=Xt(e,Mt[s]+2),r?(jt(n),t.error(new l(Ft))):a()):await i;const c=new d(e.length-Lt-(e.length-Lt)%16);t.enqueue(Nt(n,e,c,0,Lt,!0))},async flush(e){const{D:t,C:n,ready:r}=this;if(t){await r;const s=Xt(n,n.length-Lt),a=new d(Xt(n,0,n.length-Lt));t.process(a,!0);const i=t.digest();let c=n.length<Lt?1:0;for(let e=0;Lt>e;e++)c|=i[e]^s[e];if(c&&o)throw new l("Invalid authentication code");e.enqueue(a)}},cancel(){jt(this)}})}}class Zt extends x{constructor({password:e,rawPassword:t,encryptionStrength:n}){super({start(){qt(this,e,t,n)},async transform(e,t){const n=this,{password:r,strength:o,R:s,ready:a}=n;let i=$;r?(i=await(async(e,t,n)=>{const r=It(new d(Mt[t]));return ft(r,await Gt(e,t,n,r))})(n,o,r),s()):await a;const c=new d(i.length+e.length-e.length%16);c.set(i,0),t.enqueue(Nt(n,e,c,i.length,0,!1))},async flush(e){const{D:t,C:n,ready:r}=this;if(t){await r;const o=new d(n);t.process(o,!1);const s=Xt(t.digest(),0,Lt);e.enqueue(ft(o,s))}},cancel(){jt(this)}})}}function qt(e,t,r,o){n.assign(e,{ready:new g(t=>e.R=t),password:Kt(t,r),strength:o-1,C:$})}function Nt(e,t,n,r,o,s){const{D:a,C:i}=e;i.length&&(t=ft(i,t));const c=t.length-o,u=c-c%16;if(n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new d(t)).set(n,0)}return e})(n,r+u),u){const e=Xt(n,r,r+u);e.set(Xt(t,0,u)),a.process(e,s)}return e.C=Xt(t,u),n}function jt({D:e}){e&&e.dispose&&e.dispose()}async function Gt(e,t,r,o){e.password=null;const s=Ot[t],i=await(async(e,t,r)=>{if(Bt)try{const o=await Ht.importKey("raw",e,Tt,!1,Wt);return new d(await Ht.deriveBits(n.assign({salt:t},Et),o,8*r))}catch{Bt=!1}return((e,t,n,r)=>{const o=xt(e),s=new d(r),i=new d(t.length+4),c=new m(i.buffer);i.set(t);for(let e=1,n=0;r>n;e++,n+=dt){c.setUint32(t.length,e),o.update(i,0,i.length);let u=o.digest();const f=u.slice();for(let e=1;1e3>e;e++){o.update(u,0,dt),u=o.digest();for(let e=0;dt>e;e++)f[e]^=u[e]}s.set(f.subarray(0,a.min(dt,r-n)),n)}return s})(e,t,0,r)})(r,o,2*s+2);return e.D=((e,t)=>{(()=>{if(!kt){let e=1,t=1;do{e=255&(e^e<<1^(128&e?27:0)),t=255&(t^t<<1),t=255&(t^t<<2),t=255&(t^t<<4),128&t&&(t^=9),yt[e]=255&(t^(t<<1|t>>7)^(t<<2|t>>6)^(t<<3|t>>5)^(t<<4|t>>4)^99)}while(1!=e);yt[0]=99;for(let e=0;256>e;e++){const t=yt[e],n=Dt(t),r=n<<24|t<<16|t<<8|n^t;gt[e]=r,bt[e]=r>>>8|r<<24,vt[e]=r>>>16|r<<16,St[e]=r>>>24|r<<8}kt=!0}})();const n=new Int32Array(60),r=((e,t)=>{const n=e.length>>2,r=n+6,o=4*(r+1);let s=1;for(let r=0;n>r;r++)t[r]=e[4*r]<<24|e[4*r+1]<<16|e[4*r+2]<<8|e[4*r+3];for(let e=n;o>e;e++){let r=t[e-1];e%n==0?(r=zt(r<<8|r>>>24)^s<<24,s=Dt(s)):n>6&&e%n==4&&(r=zt(r)),t[e]=t[e-n]^r}return r})(e,n),o=new Int32Array(4),s=xt(t);let a=0,i=0,c=0,u=0;return{process(e,t){t&&s.update(e,0,e.length),(e=>{const t=new m(e.buffer,e.byteOffset,e.byteLength),n=e.length;let r=0;for(;n>=r+16;r+=16)f(),t.setInt32(r,t.getInt32(r)^o[0]),t.setInt32(r+4,t.getInt32(r+4)^o[1]),t.setInt32(r+8,t.getInt32(r+8)^o[2]),t.setInt32(r+12,t.getInt32(r+12)^o[3]);if(n>r){f();for(let t=0;n>r;r++,t++)e[r]^=o[t>>2]>>>24-8*(3&t)}})(e),t||s.update(e,0,e.length)},digest:()=>s.digest()};function f(){a=a+1|0,a||(i=i+1|0,i||(c=c+1|0,c||(u=u+1|0)));let e=Rt(a)^n[0],t=Rt(i)^n[1],s=Rt(c)^n[2],f=Rt(u)^n[3],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[4],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[5],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[6],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[7];e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[8],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[9],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[10],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[11],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[12],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[13],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[14],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[15],e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[16],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[17],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[18],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[19],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[20],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[21],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[22],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[23],e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[24],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[25],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[26],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[27],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[28],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[29],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[30],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[31],e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[32],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[33],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[34],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[35],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[36],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[37],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[38],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[39];let h=40;r>10&&(e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[40],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[41],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[42],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[43],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[44],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[45],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[46],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[47],h=48),r>12&&(e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[48],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[49],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[50],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[51],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[52],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[53],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[54],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[55],h=56),o[0]=(yt[w>>>24]<<24|yt[l>>>16&255]<<16|yt[d>>>8&255]<<8|yt[255&p])^n[h],o[1]=(yt[l>>>24]<<24|yt[d>>>16&255]<<16|yt[p>>>8&255]<<8|yt[255&w])^n[h+1],o[2]=(yt[d>>>24]<<24|yt[p>>>16&255]<<16|yt[w>>>8&255]<<8|yt[255&l])^n[h+2],o[3]=(yt[p>>>24]<<24|yt[w>>>16&255]<<16|yt[l>>>8&255]<<8|yt[255&d])^n[h+3]}})(Xt(i,0,s),Xt(i,s,2*s)),Xt(i,2*s)}function Kt(e,t){return t===j?(e=>{if(typeof b==G){const t=new d((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new b).encode(e)})(e):t}function Xt(e,t,n){return e.subarray(t,n)}class _t extends x{constructor({password:e,rawPassword:t,passwordVerification:n,checkPasswordOnly:r}){super({start(){Jt(this,e,t,n)},transform(e,t){const n=this;if(n.password||n.rawPassword){const t=Qt(n,e.subarray(0,12));if(n.password=n.rawPassword=null,0!=(t[11]^n.passwordVerification))throw new l(At);e=e.subarray(12)}r?t.error(new l(Ft)):t.enqueue(Qt(n,e))}})}}class $t extends x{constructor({password:e,rawPassword:t,passwordVerification:n}){super({start(){Jt(this,e,t,n)},transform(e,t){const n=this;let r,o;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const t=It(new d(12));t[11]=n.passwordVerification,r=new d(e.length+t.length),r.set(Yt(n,t),0),o=12}else r=new d(e.length),o=0;r.set(Yt(n,e),o),t.enqueue(r)}})}}function Jt(e,t,r,o){n.assign(e,{password:t,rawPassword:r,passwordVerification:o}),((e,t,r)=>{const o=[305419896,591751049,878082192];if(n.assign(e,{keys:o,A:new ct(o[0]),F:new ct(o[2])}),r)for(let t=0;t<r.length;t++)en(e,r[t]);else for(let n=0;n<t.length;n++)en(e,t.charCodeAt(n))})(e,t,r)}function Qt(e,t){const n=new d(t.length);for(let r=0;r<t.length;r++)n[r]=tn(e)^t[r],en(e,n[r]);return n}function Yt(e,t){const n=new d(t.length);for(let r=0;r<t.length;r++)n[r]=tn(e)^t[r],en(e,t[r]);return n}function en(e,t){let[,n]=e.keys;e.A.append([t]);const r=~e.A.get();n=rn(a.imul(rn(n+nn(r)),134775813)+1),e.F.append([n>>>24]);const o=~e.F.get();e.keys=[r,n,o]}function tn(e){const t=2|e.keys[2];return nn(a.imul(t,1^t)>>>8)}function nn(e){return 255&e}function rn(e){return 4294967295&e}function on(e){if(e instanceof z)return e;const t=e.getReader();return new z({async pull(e){const{value:n,done:r}=await t.read();r?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})}function sn(e,t){e=on(e);const n=t?{type:t}:{};if(typeof y.prototype.stream!=K||new y([]).stream()instanceof z)return new f(e).blob().then(e=>t?new y([e],n):e);const r=[];return e.pipeTo(new R({write(e){r.push(e)}})).then(()=>new y(r,n))}function an(e){if(e instanceof R)return e;const t=e.getWriter();return new R({write:e=>t.write(e),close:()=>t.close(),abort:e=>t.abort(e)})}const cn="Invalid uncompressed size",un="deflate-raw",fn="gzip",wn=[31,139,8];class ln extends x{constructor(e,{chunkSize:t,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:o,encrypted:s,useCompressionStream:a,zipCrypto:i,computeCrc32:c,level:u,deflate64:f,format:w,compressionMethod:l,inputSize:d}=e,p=this;let h,y,g,b=super.readable;const v=w&&Qe(w),S=((e,t,n)=>e&&t?t:n&&n.I?n:void 0)(a,r,n),k=c&&o&&!f&&!v&&(!s||i)&&!!S;if(s&&!i||!c||k||(h=new ut,b=bn(b,h)),o)if(v)b=vn(b,yn(v.CompressionStream,w,{level:u,chunkSize:t,compressionMethod:l,uncompressedSize:d}));else if(k)g=new dn,b=vn(b,new S(fn,{level:u,chunkSize:t})),b=bn(b,g);else try{b=gn(b,a,{level:u,chunkSize:t},r,n)}catch(e){let t;try{t=new r(fn)}catch{throw e}b=vn(b,t),b=bn(b,new dn)}s&&(i?b=bn(b,new $t(e)):(y=new Zt(e),b=bn(b,y))),mn(p,b,()=>{s&&!i||!c||(p.crc32=k?g.crc32:new m(h.value.buffer).getUint32(0))})}}class dn extends x{constructor(){let e,t=10,n=new d(0);super({transform(e,r){if(t){const n=a.min(t,e.length);if(t-=n,!(e=e.subarray(n)).length)return}const o=n.length+e.length;if(8>=o)return void(n=ft(n,e));const s=o-8,i=a.min(s,n.length);r.enqueue(ft(n.subarray(0,i),e.subarray(0,s-i))),n=ft(n.subarray(i),e.subarray(s-i))},flush(){const t=wt(n);e.crc32=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class pn extends x{constructor(e,{chunkSize:t,DecompressionStreamFallback:n,DecompressionStream:r}){super({});const{zipCrypto:o,encrypted:s,checkCrc32:a,crc32:i,compressed:c,useCompressionStream:u,deflate64:f,format:w,compressionMethod:p,rawBitFlag:h,outputSize:y}=e;let b,v,S,k=super.readable;if(s&&(o?k=bn(k,new _t(e)):(v=new Vt(e),k=bn(k,v))),c){const e=w&&Qe(w);if(e)k=vn(k,yn(e.DecompressionStream,w,{chunkSize:t,compressionMethod:p,rawBitFlag:h,uncompressedSize:y}));else try{k=gn(k,u,{chunkSize:t,deflate64:f},r,n)}catch(e){if(f||y===j)throw e;let t;try{t=new r(fn)}catch{throw e}S=new ct,k=((e,t,n,r)=>{let o,s,a,i=0,c=!1;const u=new g((e,t)=>{s=e,a=t});u.catch(()=>{}),n||s();const f=new x({start(e){const t=new d(10);t.set(wn),e.enqueue(t)},transform(e,t){t.enqueue(e)},async flush(e){c=!0,p();try{await u}finally{h()}const t=new d(8),o=wt(t);o.setUint32(0,r.get(),!0),o.setUint32(4,n,!0),e.enqueue(t)},cancel(e){a(e)}}),w=new x({transform(e,t){r.append(e),i+=e.length,n>i?c&&p():s(),t.enqueue(e)},cancel(e){a(e)}});return e=bn(e,f),bn(e=vn(e,t),w);function p(){h(),o=I(()=>a(new l(cn)),5e3)}function h(){U(o)}})(k,t,y,S)}k=(e=>{const t=e.getReader();return new z({async pull(e){let n;try{n=await t.read()}catch(e){if(e&&e.message)throw e;const t=new l("Invalid compressed data");throw t.cause=e,t}const{value:r,done:o}=n;o?e.close():e.enqueue(r)},cancel:e=>t.cancel(e)})})(k)}a&&!S&&(b=new ut,k=bn(k,b)),mn(this,k,()=>{if(a){const e=S?S.get()>>>0:new m(b.value.buffer).getUint32(0,!1);if(i!=e)throw new l("Invalid CRC32")}})}}const hn=new c;function mn(e,t,r){t=bn(t,new x({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function yn(e,t,n){if(!e)throw new l(_e);return new e(t,n)}function gn(e,t,n,r,o){const s=t&&r?r:o||r,a=n.deflate64?"deflate64-raw":un;let i;try{i=new s(a,n)}catch(e){if(!t||!o||s==o)throw e;i=new o(a,n)}return vn(e,i)}function bn(e,t){return on(e).pipeThrough(t)}function vn(e,t){const n=t.writable.getWriter(),r=e.getReader();return(async()=>{try{for(;;){await n.ready;const e=await r.read();if(e.done){await n.close();break}await n.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(n,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(r,e)}})(),t.readable}const Sn="deflate",kn="inflate";class xn extends x{constructor(e,t){super({});const r=this,{codecType:o}=e;let s;o.startsWith(Sn)?s=ln:o.startsWith(kn)&&(s=pn),r.outputSize=0;let a=0;const i=new s(e,t),c=super.readable,u=new x({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){n.assign(r,{inputSize:a})}}),f=new x({transform(t,n){if(t&&t.length&&(n.enqueue(t),r.outputSize+=t.length,e.outputSize!==j&&r.outputSize>e.outputSize))throw new l(cn)},flush(){const{crc32:e}=i;n.assign(r,{crc32:e,inputSize:a})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(u).pipeThrough(i).pipeThrough(f)})}}class zn extends x{constructor(e){const t=[];let r=0,s=0;function a(){const n=new d(e);let o=0;for(;e>o;){const r=t[0],s=e-o;r.length>s?(n.set(r.subarray(0,s),o),t[0]=r.subarray(s),o+=s):(n.set(r,o),o+=r.length,t.shift())}return r-=e,n}o.isFinite(e)&&e>=1||(e=65536),super({transform(n,o){for(t.push(n),r+=n.length;r>e;)s+=e,o.enqueue(a())},flush(e){r&&(s+=r,e.enqueue(((e,t)=>{const n=new d(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n})(t,r)))}}),n.defineProperty(this,"outputSize",{get:()=>s})}}function Rn(e){return!!e&&"object"==typeof e}let Dn=()=>{};class Cn{constructor(e,{readable:t,writable:r},o,s){const{options:a,config:i,U:u,useWebWorkers:f,transferStreams:w,workerURI:l}=o;let{createWorker:d}=o;const{signal:p}=u;return n.assign(e,{T:!0,W:(e.W||0)+1,readable:t.pipeThrough(new zn(de(i))).pipeThrough(new An(u),{signal:p}),writable:r,options:n.assign({},a),M:o,workerURI:l,createWorker:d,transferStreams:w,terminate:()=>new g(t=>{const{O:n,T:r}=e;r?(e.L=e.L||[],e.L.push(t)):(n&&(n.terminate(),e.O=null),t()),e.P=null}),H(){if(e.T){const{L:t,O:n}=e;t&&(e.L=null,n&&(e.B=!0,n.terminate())),e.T=!1;const r=s(e);t&&t.forEach(e=>e(r))}}}),((e,t)=>({run:()=>(async({options:e,readable:t,writable:n,H:r,M:o},s)=>{let a,i,u;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(Sn),n=t?s.CompressionStreamFallback:s.DecompressionStreamFallback,r=t?s.CompressionStream:s.DecompressionStream;e.useCompressionStream?n&&n.I&&!((e,t)=>{if(!e)return!1;let n=hn.get(e);n||(n=new c,hn.set(e,n));let r=n.get(t);if(r===j){try{new e(t),r=!0}catch{r=!1}n.set(t,r)}return r})(r,un)&&await f():await f()||n&&!n.I||(e.useCompressionStream=!0)}e.encrypted&&!e.zipCrypto&&await f(),a=new xn(e,s),i=new zn(de(s)),await t.pipeThrough(a).pipeThrough(i).pipeTo(n,{preventClose:!0,preventAbort:!0});const{crc32:r,inputSize:o,outputSize:u}=a;return{crc32:r,inputSize:o,outputSize:u}}catch(e){if(a){const t=i?i.outputSize:0;if(o.outputSize=t,Rn(e))try{e.outputSize=t}catch{}}throw e}finally{r()}function f(){return u||(u=(async()=>{if(Dn)try{return await void 0,!0}catch{}return!1})()),u}})(e,t)}))(e,i)}}class An extends x{constructor({onstart:e,onprogress:t,size:n,onend:r}){let o=0;super({async start(){e&&await Fn(e,n)},async transform(e,r){o+=e.length,t&&await Fn(t,o,n),r.enqueue(e)},async flush(){r&&await Fn(r,o)}})}}async function Fn(e,...t){try{await e(...t)}catch{}}let In=[];const Un=[];let Tn,En,Wn=0;function Mn(){!Tn&&Un.length&&o.isFinite(En)&&En>=0&&(Tn=I(Ln,En))}function On(){Tn&&(U(Tn),Tn=null)}function Ln(){if(Tn=null,Un.length){const[{resolve:e,stream:t,M:n}]=Un.splice(0,1);e(new Cn({},t,Pn(n),Hn)),Mn()}}function Pn(e){return n.assign({},e,{useWebWorkers:!1,workerURI:j,createWorker:j})}function Hn(){On(),Mn()}function Bn(e){const{V:t}=e;t&&(U(t),e.V=null)}const Vn="\0\u263a\u263b\u2665\u2666\u2663\u2660\u2022\u25d8\u25cb\u25d9\u2642\u2640\u266a\u266b\u263c\u25ba\u25c4\u2195\u203c\xb6\xa7\u25ac\u21a8\u2191\u2193\u2192\u2190\u221f\u2194\u25b2\u25bc !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xa2\xa3\xa5\u20a7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\u2310\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0".split("");function Zn(e,t){return Nn(e,t,!0)}function qn(e){if(!e.some(e=>e>127))return!1;try{return new v("utf-8",{fatal:!0}).decode(e),!0}catch{return!1}}function Nn(e,t,n){return t&&"cp437"==t.trim().toLowerCase()?(e=>{let t="";for(let n=0;n<e.length;n++)t+=Vn[e[n]];return t})(e):new v(t,{ignoreBOM:n}).decode(e)}const jn="HTTP error ",Gn="HTTP Range not supported",Kn="HTTP resource changed",Xn="Content-Range",_n="Range",$n="GET",Jn="bytes",Qn=16777216,Yn="writable",er=Symbol();class tr{constructor(){this.size=0}init(){this.initialized=!0}}class nr extends tr{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:n=de(le())}={}){const r=this;let o=0;return n=pe(n),new z({async pull(s){const i=t===j?n:a.min(n,t-o),c=await Er(r,e+o,i);c.length&&(s.enqueue(c),o+=c.length),(t!==j&&o>=t||!c.length&&i)&&s.close()}})}}class rr extends tr{constructor(){super();const e=this,t=new R({write(t){if(!e.initialized)throw new l("Writer not initialized");return e.writeUint8Array((n=t).byteOffset||n.byteLength!=n.buffer.byteLength?new d(n):n);var n}});n.defineProperty(e,Yn,{get:()=>t})}writeUint8Array(){}}let or,sr;class ar extends nr{constructor(e){super(),n.assign(this,{Z:e,size:e.size}),sr||(sr=(async()=>{try{const e=new y([new d(3)]).slice(1,2).stream().getReader();let t=0,n=await e.read();for(;!n.done;)t+=n.value.length,n=await e.read();or=1==t}catch{or=!1}})())}createReadable(e){const{Z:t,size:n}=this,{offset:r=0,size:o=n-r}=e||{};if(typeof t.stream==K){if(!r&&o>=n)return on(t.stream());if(or)return on(t.slice(r,r+o).stream())}return super.createReadable(e)}async readUint8Array(e,t){const n=this,r=e+t,o=e||r<n.size?n.Z.slice(e,r):n.Z;let s=await o.arrayBuffer();return s.byteLength>t&&(s=s.slice(e,r)),new d(s)}}class ir extends tr{constructor(e){super();const t=this,r=new x;n.defineProperty(t,Yn,{get:()=>r.writable}),t.contentType=e,t.N=sn(r.readable,e),t.N.catch(()=>{})}getData(){return this.N}}class cr extends nr{constructor(e,t){super(),fr(this,e,t)}async init(){await wr(this,zr,vr),super.init()}createReadable(e){const t=this,{useRangeHeader:n,forceRangeRequests:r,size:o}=t;if((n||r)&&o!==j){const{offset:n=0,size:r=o-n}=e||{};if(r>0&&o>n)return((e,t,n)=>{let r,o=t,s=0,i=n;return new z({start:()=>c(),async pull(e){r||await c();const{value:t,done:n}=await r.read();if(n)throw new l(Gn);const o=t.length>s?t.subarray(0,s):t;s-=o.length,i-=o.length,o.length&&e.enqueue(o),s||(await(async()=>{const e=r;r=j,await e.cancel()})(),i||e.close())},cancel:e=>r&&r.cancel(e)});async function c(){const t=a.min(e.maximumRangeSize,i),n=await zr($n,e,gr(e,o,t));if(206!=n.status)throw new l(Gn);const c=dr(n);if(c!==j&&c!=o)throw new l(Gn);yr(e,n),mr(e,n),o+=t,s=t,r=n.body.getReader()}})(t,n,a.min(r,o-n))}return super.createReadable(e)}readUint8Array(e,t){return lr(this,e,t,zr,vr)}}class ur extends nr{constructor(e,t){super(),fr(this,e,t)}async init(){await wr(this,Rr,Sr),super.init()}readUint8Array(e,t){return lr(this,e,t,Rr,Sr)}}function fr(e,t,r){const{preventHeadRequest:o,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c=!0,maximumRangeSize:u=Qn,fetch:f}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,n.assign(e,{url:t,options:r,preventHeadRequest:o,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c,maximumRangeSize:u,fetch:f})}async function wr(e,t,n){const{url:r,preventHeadRequest:o,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:i}=e;if((e=>{const{baseURI:t}=le(),{protocol:n}=new w(e,t);return"http:"==n||"https:"==n})(r)&&(s||a)&&(typeof o==G||o)){const r=await t($n,e,gr(e,i?-65557:void 0)),o=r.headers.get("Accept-Ranges");if(!(a||o&&o.toLowerCase()==Jn))throw new l(Gn);{let o;i&&206==r.status&&(o=new d(await r.arrayBuffer())),mr(e,r);const s=pr(r);s===j?await xr(e,t,n):e.size=s,o&&o.length&&dr(r)===e.size-o.length&&(e.j=o)}}else await xr(e,t,n)}async function lr(e,t,n,r,o){const{useRangeHeader:s,forceRangeRequests:a,j:i,size:c,options:u}=e;if(s||a){if(c>t&&0!==n){if(t+n>c&&(n=c-t),i&&t>=c-i.length){const e=t-(c-i.length);return i.slice(e,e+n)}const o=await r($n,e,gr(e,t,n));if(206!=o.status)throw new l(Gn);const s=dr(o);if(s!==j&&s!=t)throw new l(Gn);yr(e,o),mr(e,o);const a=new d(await o.arrayBuffer());if(a.length!=n)throw new l(Gn);return a}return $}{const{data:r}=e;return r||await o(e,u),e.data.subarray(t,t+n)}}function dr(e){const t=e.headers.get(Xn);if(t){const e=o(t.trim().split(/[\s-]+/)[1]);if(!o.isNaN(e))return e}}function pr(e){const t=e.headers.get(Xn);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=o(e);if(!o.isNaN(t))return t}}}function hr({headers:e}){return{G:e.get("Etag")||j,lastModified:e.get("Last-Modified")||j}}function mr(e,t){const{checkResourceChanges:n,K:r}=e;n&&!r&&206==t.status&&(e.K=hr(t))}function yr(e,t){const{checkResourceChanges:r,K:o,size:s}=e;if(r){const e=pr(t);if(e!==j&&s!==j&&e!=s)throw new l(Kn);if(o){const e=hr(t);if(n.entries(o).some(([t,n])=>n!==j&&e[t]!==j&&n!=e[t]))throw new l(Kn)}}}function gr(e,t=0,r=1){return n.assign({},br(e),{[_n]:Jn+"="+(0>t?t:t+"-"+(t+r-1))})}function br({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?n.fromEntries(t):t}async function vr(e){await kr(e,zr)}async function Sr(e){await kr(e,Rr)}async function kr(e,t){const n=await t($n,e,br(e));e.data=new d(await n.arrayBuffer()),e.size=e.data.length}async function xr(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=await t("HEAD",e,br(e)),s=r.headers.get("Content-Length");s&&!r.headers.get("Content-Encoding")?e.size=o(s):await n(e,e.options)}}async function zr(e,{fetch:t=fetch,options:r,url:o},s){const a=await t(o,n.assign({},r,{method:e,headers:s}));if(200>a.status||a.status>299)throw 416==a.status?new l(Gn):new l(jn+(a.statusText||a.status));return a}function Rr(e,{url:t},r){return new g((o,s)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(200>a.status||a.status>299)s(416==a.status?new l(Gn):new l(jn+(a.statusText||a.status)));else{const e=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const n=t.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(n)}),o({status:a.status,arrayBuffer:()=>a.response,headers:new c(e)})}},!1),a.addEventListener("error",e=>s(e.detail?e.detail.error:new l("Network error")),!1),a.open(e,t),r)for(const e of n.entries(r))a.setRequestHeader(e[0],e[1]);a.responseType="arraybuffer",a.send()})}class Dr extends nr{constructor(e,t={}){super(),n.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new ur(e,t):new cr(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Cr extends nr{constructor(e){super(),this.X=e}async init(){const e=this;e._=0;const t=e.X=await g.all(e.X.map(Tr));e.$=t.map(t=>{const n=e.size;return e.size+=t.size,n}),super.init()}J(e){const{$:t,size:n}=this,r=t[e];return r===j?n:r}async readUint8Array(e,t){const n=this,{X:r}=this;let o,s=0,i=e;for(;r[s]&&i>=r[s].size;)i-=r[s].size,s++;const c=r[s];if(c){const r=c.size;if(i+t>r){const s=r-i;o=ft(await Er(c,i,s),await n.readUint8Array(e+s,t-s))}else o=await Er(c,i,t)}else o=$;return n._=a.max(s,n._),o}}class Ar extends tr{constructor(e,t=4294967295){super();const r=this;let o,s,a;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const i=new R({async write(t){if(t===er)return void(a&&await u());const{availableSize:n}=r;if(a)t.length<n?await c(t):(await c(t.subarray(0,n)),await u(),t.length>n&&await this.write(t.subarray(n)));else{const{value:n,done:i}=await e.next();if(i&&!n)throw new l("Writer iterator completed too soon");o=n,o.size=0,o.maxSize&&(r.maxSize=o.maxSize),r.availableSize=r.maxSize,await Ur(o),s=n.writable,a=s.getWriter(),await this.write(t)}},async close(){a&&(await a.ready,await f())},async abort(e){a&&await a.abort(e)}});async function c(e){const t=e.length;t&&(await a.ready,await a.write(e),o.size+=t,r.availableSize-=t)}async function u(){await f(),r.diskOffset+=o.size,r.diskNumber++,a=null,r.availableSize=r.maxSize}async function f(){await a.close()}n.defineProperty(r,Yn,{get:()=>i})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(er)}finally{e.releaseLock()}}}class Fr{constructor(e){return t.isArray(e)&&(e=new Cr(e)),(e instanceof z||typeof e.getReader==K)&&(e={readable:on(e)}),e}}class Ir{constructor(e){e.writable===j&&typeof e.next==K&&(e=new Ar(e)),(e instanceof R||typeof e.getWriter==K)&&(e={writable:an(e)});try{e.size=e.size===j?0:e.size}catch{throw new l("Invalid writer (size must be writable)")}return e}}async function Ur(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}async function Tr(e){return e=new Fr(e),await Ur(e),e.size!==j&&e.readUint8Array||(e=new ar(await sn(e.readable)),await Ur(e)),e}function Er(e,t,n){return e.readUint8Array(t,n)}function Wr(e,t,n){if(!e.some(e=>e.reason==t)){const r={reason:t};n!==j&&(r.filename=n),e.push(r)}}const Mr="filename",Or="rawFilename",Lr="comment",Pr="rawComment",Hr="uncompressedSize",Br="compressedSize",Vr="offset",Zr="diskNumberStart",qr="lastModDate",Nr="rawLastModDate",jr="lastAccessDate",Gr="rawLastAccessDate",Kr="creationDate",Xr="rawCreationDate",_r=[Mr,Or,Hr,Br,qr,Nr,Lr,Pr,jr,Gr,Kr,Xr,Vr,Zr,"internalFileAttributes","externalFileAttributes","msdosAttributesRaw","msdosAttributes","msDosCompatible","zip64","encrypted","version","versionMadeBy","zipCrypto","directory","executable","symlink","compressionMethod","signature","crc32","extraField","extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid","unixMode","unixExternalUpper","setuid","setgid","sticky","bitFlag","rawBitFlag","filenameLength","extraFieldLength","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class $r{constructor(e){_r.forEach(t=>this[t]=e[t])}}const Jr="File format is not recognized",Qr="Encryption method not supported",Yr="Split zip file",eo="malformed extra field",to="wrapped entries count",no="appended data",ro="prepended data",oo="mismatched zip64 end of central directory record",so=/^[a-zA-Z]:/,ao=/(^|[\\/])\.\.([\\/]|$)/,io="utf-8",co="cp437",uo=[[Hr,T],[Br,T],[Vr,T],[Zr,E]],fo={[E]:{Y:qo,bytes:4},[T]:{Y:No,bytes:8}},wo=s(o.MAX_SAFE_INTEGER);class lo{constructor(e,t){n.assign(this,{reader:e,options:t})}async getData(e,t,r,s={}){const i=this,c=le(),{reader:u,index:f,offset:p,diskNumberStart:h,extraFieldAES:m,extraFieldZip64:y,compressionMethod:b,bitFlag:v,rawBitFlag:S,crc32:k,rawLastModDate:x,uncompressedSize:z,compressedSize:D}=i,{dataDescriptor:C}=v,A=t.localDirectory={},F=t.warnings=[],U=Ro(u,h)+p,T=await Er(u,U,30),E=wt(T);let M=Lo(i,s,"password"),L=Lo(i,s,"rawPassword");const P=(e=>{if(e!==j&&typeof e!=_&&"compressed"!==e)throw new l("Invalid passThrough option (must be a boolean or 'compressed')");return e})(Lo(i,s,"passThrough")),H=!!P,B=!0===P;if(((e,t)=>{if(e&&typeof e!=X||t&&!(t instanceof d))throw new l("Invalid password (password must be a string, rawPassword must be a Uint8Array)")})(M,L),M=M&&M.length&&M,L=L&&L.length&&L,m&&99!=m.originalCompressionMethod)throw new l(_e);if(30>T.length||67324752!=qo(E,0))throw new l("Local file header not found");yo(A,E,4);const{extraFieldLength:V,filenameLength:Z}=A,q=A.dataOffset=U+30+Z+V,N=Lo(i,s,"checkLocalDirectory"),G=Ao(s,i.options),J=((e,t)=>e===j?t!=ee:!!e)(N,G),Y=Lo(i,s,"checkLocalFilename"),te=((e,t)=>e===j?t==Q:!!e)(Y===j?N:Y,G);let ne=$;if(te&&(Z||V)){const e=await Er(u,U+30,Z+V);ne=e.subarray(0,Z),A.rawExtraField=e.subarray(Z)}else A.rawExtraField=V?await Er(u,U+30+Z,V):$;te&&(A.rawFilename=ne),go(i,A,E,4,!0)&&Wr(F,eo),((e,t,n,r,o)=>{const{rawFilename:s}=e,a=!o,i=e.ee&&!(8192&~t.rawBitFlag);!r||i||n.length==s.length&&!n.some((e,t)=>e!=s[t])||Mo(a,o,"mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&Mo(a,o,"mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&Mo(a,o,"mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||i||!(t.crc32||t.compressedSize||t.uncompressedSize)||t.crc32==e.crc32&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||Mo(a,o,"mismatched local file header (crc32 or sizes)")})(i,A,ne,te,J?j:F);const{lastAccessDate:re,creationDate:oe,uid:se,gid:ae}=A;re&&(t.lastAccessDate=re),oe&&(t.creationDate=oe),se!==j&&t.uid===j&&(t.uid=se),ae!==j&&t.gid===j&&(t.gid=ae);const ie=Lo(i,s,"checkPasswordOnly"),ce=i.encrypted&&A.encrypted&&(!B||ie),ue=ce&&!m;if(B||(t.zipCrypto=ue),ce&&!(64&~A.rawBitFlag))throw new l(Qr);const fe=H?j:(e=>$e.get(e))(b);if(0!=b&&8!=b&&9!=b&&!fe&&!H)throw new l(_e);if(ce){if(!ue&&(1>m.strength||m.strength>3))throw new l(Qr);if(!M&&!L)throw new l("File contains encrypted entry")}if(q+D>u.size)throw new l("Entry data out of bounds");const we=D,de=(e=>{if(e&&(typeof e.addEventListener!=K||typeof e.aborted!=_))throw new l("Invalid signal (must be an AbortSignal instance)");return e||j})(Lo(i,s,"signal"));(e=>{if(e&&e.aborted)throw e.reason===j?new DOMException("The operation was aborted","AbortError"):e.reason})(de);let pe=Lo(i,s,"checkOverlappingEntry");const he=Lo(i,s,"checkOverlappingEntryOnly");he&&(pe=!0);const{onstart:me,onprogress:ye,onend:ge}=s,be=0!=b&&!H,ve=H?D-((e,t,n)=>e?t?12:16+4*n:0)(ce,ue,m&&m.strength):z,Se=9==b;let ke=Lo(i,s,"useCompressionStream");Se&&(ke=!1);const xe=Lo(i,s,"checkCrc32"),ze=(xe===j?Lo(i,s,"checkSignature"):xe)&&!H&&(!ce||ue||m&&1==m.vendorVersion),Re={options:{codecType:kn,password:M,rawPassword:L,zipCrypto:ue,encryptionStrength:m&&m.strength,checkCrc32:ze,checkAuthenticationCode:Lo(i,s,"checkAuthenticationCode"),passwordVerification:ue&&(C?x>>>8&W:k>>>24&W),outputSize:ve,crc32:k,compressed:be,encrypted:ce,useWebWorkers:Lo(i,s,"useWebWorkers"),useCompressionStream:ke,transferStreams:Lo(i,s,"transferStreams"),deflate64:Se,format:fe?fe.format:j,codecURI:fe?fe.codecURI:j,compressionMethod:b,rawBitFlag:S,checkPasswordOnly:ie},config:c,U:{signal:de,size:we,onstart:me,onprogress:ye,onend:ge}};let De,Ce,Ae;pe&&await(async({reader:e,te:t,index:n,offset:r,crc32:o,compressedSize:s,uncompressedSize:a,dataOffset:i,dataDescriptor:c,extraFieldZip64:u,ne:f})=>{let w=0;if(c&&(w=u?20:12),w){const n=await Er(e,i+s,w+4),r=wt(n);let c=n.length==w+4&&qo(r,0)==O;if(c){const e=zo(r,4,u);(t.encrypted&&!t.zipCrypto||e.crc32==o)&&e.compressedSize==s&&e.uncompressedSize==a?w+=4:c=!1}if(n.length>=w){const e=zo(r,c?4:0,u);e.signature=c,t.localDirectory.dataDescriptor=e}}const d={start:r,end:i+s+w,te:t},{re:p,oe:h,se:m}=f;if(!p.has(n)){const e=((e,t)=>{let n=0,r=e.length;for(;r>n;){const o=n+r>>>1;e[o].start<t.start?n=o+1:r=o}const o=e[n-1],s=e[n];return o&&xo(t,o)?o:s&&xo(t,s)?s:void 0})(h,d)||m.find(e=>xo(d,e));if(e){const t=new l("Overlapping entry found");throw t.overlappingEntry=e.te,t}p.add(n),m.push(d),m.length*m.length>h.length&&(m.sort((e,t)=>e.start-t.start),f.oe=((e,t)=>{const n=[];let r=0,o=0;for(;r<e.length||o<t.length;)o==t.length||r<e.length&&e[r].start<t[o].start?n.push(e[r++]):n.push(t[o++]);return n})(h,m),m.length=0)}})({reader:u,te:t,index:f,offset:U,crc32:k,compressedSize:D,uncompressedSize:z,dataOffset:q,dataDescriptor:C||A.bitFlag.dataDescriptor,extraFieldZip64:y||A.extraFieldZip64,ne:r});try{if(!he){ie&&(e=new R),e=new Ir(e),await Ur(e,((e,t,n)=>a.min(e,n?1032*t:t))(ve,D,be)),({writable:De}=e);const t=on(u.createReadable({offset:q,size:we})),{outputSize:r}=await async function(e,t){const{options:n,config:r}=t,{transferStreams:s,useWebWorkers:a,useCompressionStream:i,compressed:c,checkCrc32:u,computeCrc32:f,encrypted:d,format:p,codecURI:h}=n,{workerURI:m,createWorker:y,maxWorkers:b}=r;p&&(h&&(n.codecURI=((e,t)=>{try{return new w(e,t).toString()}catch{return e}})(h,r.baseURI)),await(async(e,t)=>{!Je.has(e)&&t&&((e,t)=>{const{CompressionStream:n,DecompressionStream:r}=t;if(typeof n!=K&&typeof r!=K)throw new l("Invalid codec module");Je.set(e,{CompressionStream:n,DecompressionStream:r})})(e,await(import(t)))})(p,n.codecURI)),t.transferStreams=!p&&(s||s===j&&r.transferStreams);const v=!(c||u||f||d),S=p===j||!!n.codecURI;return t.useWebWorkers=!v&&S&&(a||a===j&&r.useWebWorkers),t.workerURI=t.useWebWorkers&&m?m:j,t.createWorker=t.useWebWorkers&&y?y:j,n.useCompressionStream=i||i===j&&r.useCompressionStream,(await(async()=>{const n=In.find(e=>!e.T);if(n)return Bn(n),new Cn(n,e,t,k);if(In.length<b){const n={ae:Wn};return Wn++,In.push(n),new Cn(n,e,t,k)}return new g(n=>{Un.push({resolve:n,stream:e,M:t}),En=r.workerStarvationTimeout,Mn()})})()).run();function k(e){if(On(),e.B)return e.B=!1,(()=>{const e=Un.splice(0).map(({resolve:e,stream:t,M:n})=>new g(r=>{e(new Cn({},t,Pn(n),()=>{Hn(),r()}))}));return On(),g.all(e)})();if(Un.length){const[{resolve:t,stream:n,M:r}]=Un.splice(0,1);t(new Cn(e,n,r,k)),Mn()}else e.O?(Bn(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;o.isFinite(r)&&r>=0&&(e.V=I(async()=>{In=In.filter(t=>t!=e);try{await e.terminate()}catch{}},r))})(e,t)):In=In.filter(t=>t!=e)}}({readable:t,writable:De},Re);if(r!=ve)throw n.assign(new l(cn),{outputSize:r});e.size+=r}}catch(t){const{outputSize:n}=Re;if(n!==j?e.size+=n:Rn(t)&&t.outputSize!==j&&(e.size+=t.outputSize),!ie||!Rn(t)||t.message!=Ft)throw Ce=t,Ae=!0,t}finally{const t=!(e=>!(!e||!e.getData))(e)&&Lo(i,s,"preventClose");if(!t&&De&&!De.locked){const e=De.getWriter();if(Ae)try{await e.abort(Ce)}catch{}else await e.close()}}return ie||he?j:e.getData?e.getData():De}}function po(e){const t=a.min(e.byteLength,1024)-3;for(let n=0;t>n;n++)if(134630224==qo(e,n))return!0;return!1}function ho(e,t,n){let r=0;for(;n+46<=t.length&&qo(e,n)==L;)n+=46+Zo(e,n+28)+Zo(e,n+30)+Zo(e,n+32),r++;return r%65536?0:r}function mo(e){if(e.length>=6){const t=wt(e);if(84233040==qo(t,0)){const n=Zo(t,4);if(6+n<=e.length)return new d(e.subarray(6,6+n))}}}function yo(e,t,r){const o=e.rawBitFlag=Zo(t,r+2),s=!(1&~o),a=qo(t,r+6);n.assign(e,{encrypted:s,version:Zo(t,r),bitFlag:{level:(6&o)>>1,dataDescriptor:!(8&~o),languageEncodingFlag:!(2048&~o)},rawLastModDate:a,lastModDate:Ho(a),filenameLength:Zo(t,r+22),extraFieldLength:Zo(t,r+24)})}function go(e,t,r,o,s){const{rawExtraField:a}=t,u=t.extraField=new c,f=wt(a);let w=0,d=!1;try{for(;w<a.length;){const e=Zo(f,w),t=Zo(f,w+2);u.set(e,{type:e,data:a.slice(w+4,w+4+t)}),w+=4+t}}catch{d=!0}w>a.length&&(d=!0);const p=Zo(r,o+4);n.assign(t,{signature:qo(r,o+10),crc32:qo(r,o+10),compressedSize:qo(r,o+14),uncompressedSize:qo(r,o+18)});const h=u.get(1);h&&(((e,t)=>{t.zip64=!0;const n=wt(e.data),r=uo.filter(([e,n])=>t[e]==n),o=r.reduce((e,[,t])=>e+fo[t].bytes,0);if(e.data.length<o)throw new l("Zip64 extra field not found");for(let o=0,s=0;o<r.length;o++){const[a,i]=r[o],c=fo[i];t[a]=e[a]=c.Y(n,s),s+=c.bytes}})(h,t),t.extraFieldZip64=h);const m=u.get(28789);m&&(bo(m,Mr,Or,t,e),t.extraFieldUnicodePath=m);const y=u.get(25461);y&&(bo(y,Lr,Pr,t,e),t.extraFieldUnicodeComment=y);const g=u.get(39169);g&&g.data.length>=7?(((e,t,r)=>{const o=wt(e.data),s=Vo(o,4);n.assign(e,{vendorVersion:Vo(o,0),vendorId:Vo(o,2),strength:s,originalCompressionMethod:r,compressionMethod:Zo(o,5)}),t.compressionMethod=e.compressionMethod,1!=e.vendorVersion&&(t.crc32=j)})(g,t,p),t.extraFieldAES=g):t.compressionMethod=p;const b=u.get(13);b&&(vo(b,t),t.extraFieldPkwareUnix=b);const v=u.get(22613);v&&(vo(v,t),t.extraFieldUnixType1=v);const S=u.get(10);S&&(((e,t)=>{const r=wt(e.data);let o,s=4;try{for(;s<e.data.length&&!o;){const t=Zo(r,s),n=Zo(r,s+2);1==t&&(o=e.data.slice(s+4,s+4+n)),s+=4+n}}catch{}if(o&&24==o.length){const r=wt(o),s=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),i=r.getBigUint64(16,!0);n.assign(e,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:i});const c={lastModDate:Bo(s),lastAccessDate:Bo(a),creationDate:Bo(i)};n.assign(e,c),n.assign(t,c,{rawLastAccessDate:a,rawCreationDate:i})}})(S,t),t.extraFieldNTFS=S);const k=u.get(30805);let x;if(k&&(x=So(k,t,!1),t.extraFieldUnix=k),!x){const e=u.get(30837);e&&(So(e,t,!0),t.extraFieldInfoZip=e)}const z=u.get(21589);z&&(((e,t,n)=>{if(!e.data.length)return;const r=wt(e.data),o=Vo(r,0),s=[],a=[];n?(1&~o||(s.push(qr),a.push(Nr)),2&~o||(s.push(jr),a.push(Gr)),4&~o||(s.push(Kr),a.push(Xr))):5>e.data.length||(s.push(qr),a.push(Nr));let c=1;s.forEach((n,o)=>{if(e.data.length>=c+4){const s=qo(r,c);t[n]=e[n]=new i(1e3*(0|s));const u=a[o];e[u]=s}c+=4})})(z,t,s),t.extraFieldExtendedTimestamp=z);const R=u.get(6534);return R&&(t.extraFieldUSDZ=R),d}function bo(e,t,r,o,s){if(5>e.data.length)return void(e.valid=!1);const a=wt(e.data),i=new ct;i.append(s[r]);const c=wt(new d(4));c.setUint32(0,i.get(),!0);const u=qo(a,1),f=Vo(a,0);n.assign(e,{version:f,[t]:Zn(e.data.subarray(5)),valid:1==f&&!s.bitFlag.languageEncodingFlag&&u==qo(c,0)}),e.valid&&(o[t]=e[t],o[t+"UTF8"]=!0)}function vo(e,t){if(8>e.data.length)return;const r=wt(e.data),o={lastAccessDate:new i(1e3*(0|qo(r,0))),lastModDate:new i(1e3*(0|qo(r,4)))};12>e.data.length||(o.uid=Zo(r,8),o.gid=Zo(r,10)),n.assign(e,o),n.assign(t,o)}function So(e,t,r){try{const o=wt(e.data);let s,a;if(r){let t=0;const r=Vo(o,t++),i=Vo(o,t++);s=ko(e.data.subarray(t,t+i)),t+=i;const c=Vo(o,t++);a=ko(e.data.subarray(t,t+c)),n.assign(e,{version:r,uid:s,gid:a})}else 4>e.data.length||(s=Zo(o,0),a=Zo(o,2),n.assign(e,{uid:s,gid:a}));return s!==j&&(t.uid=s),a!==j&&(t.gid=a),s!==j||a!==j}catch{}}function ko(e){const t=new d(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function xo(e,t){return e.start<t.end&&t.start<e.end}function zo(e,t,n){const r=qo(e,t);let o,s;return n?(o=No(e,t+4),s=No(e,t+12)):(o=qo(e,t+4),s=qo(e,t+8)),{crc32:r,compressedSize:o,uncompressedSize:s}}function Ro(e,t){return e.J?e.J(t):0}async function Do(e){return qo(wt(await Er(e,0,4)))}function Co(e){return e===Q||e===Y||e===ee}function Ao(e,t){return Fo(e,Fo(t,Y))}function Fo(e,t){const n=e.strictness;if(n!==j){if(!Co(n))throw new l("Invalid strictness (must be 'strict', 'balanced' or 'tolerant')");return n}const r=e.checkAmbiguity;return r===j?t:r?Q:t==ee?ee:Y}function Io(e,t){if(t==ee)return!1;const n=e.split("/");return n.length>1&&""===n[n.length-1]&&n.pop(),!!(ao.test(e)||e.startsWith("/")||e.startsWith("\\")||so.test(e))||t==Q&&(n.includes(".")||n.includes("")||e.includes("\0"))}async function*Uo(e,t){const n=e.size-t,r=await Er(e,n,t),o=wt(r);for(let e=r.length-B;e>=0;e--)101010256==qo(o,e)&&(yield[o,n,r,e,n+e])}function To(e,t,n){return{offset:n,buffer:new d(e.subarray(t,t+B)).buffer}}async function Eo(e,t,n,r,o,s,a){const i=Zo(t,r+10),c=qo(t,r+12),u=qo(t,r+16);if(i==E||c==T||u==T)return await Wo(e,t,n,o-V,s,a)==H?2:0;if(!i&&!c)return 1;const f=Zo(t,r+6);for(const r of[o-c,Ro(e,f)+u])if(await Wo(e,t,n,r,s,a)==L)return 2;return 0}async function Wo(e,t,n,r,o,s){return 0>r||r+4>o?j:n>r?s.count>0?(s.count--,qo(wt(await Er(e,r,4)),0)):j:qo(t,r-n)}function Mo(e,t,n){e?Oo(n):Wr(t,n)}function Oo(e){const t=new l("Ambiguous archive");throw t.reason=e,t}function Lo(e,t,n){return t[n]===j?e.options[n]:t[n]}function Po(e,t,n){return te(Lo(e,t,n))}function Ho(e){const t=(4294901760&e)>>16,n=e&E,r=new i(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0);return N>r?N:r}function Bo(e){return new i(o(e/s(1e4)-s(116444736e5)))}function Vo(e,t){return e.getUint8(t)}function Zo(e,t){return e.getUint16(t,!0)}function qo(e,t){return e.getUint32(t,!0)}function No(e,t){const n=e.getBigUint64(t,!0);if(n>wo)throw new l("64-bit value exceeds Number.MAX_SAFE_INTEGER");return o(n)}(e=>{const t=he(ye(e));n.assign(oe,t),n.assign(we,t)})({workerURI:null,wasmURI:null,DecompressionStreamFallback:class extends Xe{constructor(e){(e=>{if("deflate-raw"!=e)throw new TypeError("Unsupported compression format: "+e)})(e),super(new Ge)}}}),e.BlobReader=ar,e.BlobWriter=ir,e.Data64URIWriter=class extends rr{constructor(e){super(),n.assign(this,{contentType:e,data:"data:"+(e||"")+";base64,",ie:""})}writeUint8Array(e){const t=this;let n,o=t.ie;const s=t.ie.length;for(t.ie="",n=0;n<3*a.floor((s+e.length)/3)-s;n++)o+=r.fromCharCode(e[n]);for(;n<e.length;n++)t.ie+=r.fromCharCode(e[n]);o.length>2?t.data+=k(o):t.ie=o+t.ie}getData(){return this.data+k(this.ie)}},e.HttpRangeReader=class extends Dr{constructor(e,t={}){super(e,n.assign({},t,{useRangeHeader:!0}))}},e.TextWriter=class extends ir{constructor(e){super(),n.assign(this,{encoding:e,ce:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,ce:t}=this,n=await super.getData();return n.text&&t?n.text():((e,t)=>Nn(e,t,!1))(new d(await n.arrayBuffer()),e)}},e.ZipReader=class{constructor(e,t={}){n.assign(this,{reader:new Fr(e),options:t,ne:{re:new u,oe:[],se:[]}})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;if(await Ur(r),r.size!==j&&r.readUint8Array||(r=new ar(await sn(r.readable)),await Ur(r)),r.size<B)throw new l(Jr);const s=t.warnings=[],i=Ao(e,t.options),c=i==Q,f=i!=ee,w=((e,t)=>{if(e!==j){const t=ne(e);if("number"!=typeof t||o.isNaN(t)||0>t)throw new l("Invalid maxAppendedDataSize (must be a number greater than or equal to 0)");return t}return t==Q?0:t==ee?1/0:E})(Lo(t,e,"maxAppendedDataSize"),i),p=((e,t)=>{if(e===j)return t;if(!Co(e))throw new l("Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')");return e})(Lo(t,e,"filenameValidation"),i),h=Lo(t,e,"normalizeFilename"),{ue:m,fe:y}=await(async(e,t,n)=>{const{size:r}=e,o=a.min(r,65557),s={count:64};let i,c,u=0;for await(const[n,a,f,w,l]of Uo(e,o)){const o=Zo(n,w+20);if(l+B+o==r){const o=await Eo(e,n,a,w,l,r,s);if(2==o){if(i||(i=To(f,w,l)),u++,!t||u>1)break}else 1!=o||c||(c=To(f,w,l))}}return i||(i=c),i||(i=await(async(e,t,n)=>{const{size:r}=e,o=a.min(r,t==1/0?r:65557+t);let s,i;for await(const[t,a,c,u,f]of Uo(e,o)){const o=To(c,u,f);s||(s=o);const w=await Eo(e,t,a,u,f,r,n);if(2==w)return o;1!=w||i||(i=o)}return i||s})(e,n,s)),{ue:i,fe:u}})(r,f,w);if(!m)throw await(async e=>await Do(e)==M)(r)?new l(Yr):new l("End of central directory not found");f&&y>1&&Oo("multiple end of central directory records");const g=wt(m);let b=qo(g,12),v=qo(g,16);const S=m.offset,k=Zo(g,20),z=S+B+k,R=r.size-z;R>w&&Oo(no),R>0&&Wr(s,no);let D=Zo(g,4);const C=r._||0;let A,F,I,U,O,N=Zo(g,6),G=Zo(g,10),K=0,X=Z;const _=v==T||b==T||G==E||N==E;if(v!=T&&N!=E&&(v+=Ro(r,N)),_){const e=m.offset<V?$:await Er(r,m.offset-V,V),t=wt(e);if(e.length==V&&qo(t,0)==H){v=Ro(r,qo(t,4))+No(t,8);let e=await Er(r,v,Z),o=wt(e);const i=m.offset-V-Z;if((e.length<Z||qo(o,0)!=P)&&v!=i&&i>=0){const t=v;v=i,v>t&&(K=v-t),e=await Er(r,v,Z),o=wt(e)}if(e.length<Z||qo(o,0)!=P)throw new l("End of Zip64 central directory locator not found");if(I=!0,U=No(o,4)>44,U){const e=a.min(No(o,4)-44,r.size-v-Z);e>0&&(X+=e,O=(e=>{const t={rawExtensibleData:e};if(e.length>=28){const r=wt(e),o=Zo(r,26);n.assign(t,{compressionMethod:Zo(r,0),compressedSize:No(r,2),uncompressedSize:No(r,10),encryptionAlgorithm:Zo(r,18),bitLength:Zo(r,20),flags:Zo(r,22),hashAlgorithm:Zo(r,24),hashData:e.subarray(28,28+o)})}return t})(await Er(r,v+Z,e)))}D==E?D=qo(o,16):D!=qo(o,16)&&Mo(c,s,oo),N==E?N=qo(o,20):N!=qo(o,20)&&Mo(c,s,oo),G==E?G=No(o,32):G!=No(o,32)&&Mo(c,s,oo),b==T?b=No(o,40):b!=No(o,40)&&Mo(c,s,oo),v=Ro(r,N)+No(o,48)+K}}let J=b;const Y=m.offset-(I?X+V:0);if(v<r.size||(K=r.size-v-b-B,v=r.size-b-B),C!=D)throw new l(Yr);if(0>v)throw new l(Jr);let te=0,re=await Er(r,v,b),oe=wt(re);if(b){if(4>re.length)throw new l(Jr);const e=Y-b;if(v!=e&&N==D){const t=qo(oe,te)==L||!(!O||!O.compressedSize)||po(oe);let n=!t;if(n||0>e||e+4>r.size||(n=qo(wt(await Er(r,e,4)),0)==L),n){const n=v;v=e,v>n&&(K+=v-n,A=t),re=await Er(r,v,b),oe=wt(re)}}}const se=Y-v;if(b==se||0>se||N!=D||(b=se,re=await Er(r,v,b),oe=wt(re)),0>v||v>=r.size)throw new l(Jr);t.directoryOffset=v,t.directoryLength=J;const ae=Po(t,e,"decryptCentralDirectory");let ie,ce;if(ae&&G&&re.length>=4&&qo(oe,0)!=L&&(U||po(oe))){const e=((e,t,n)=>{const r=e&&e.compressedSize?e.compressedSize:t;return r>0&&n>=r?r:n})(O,J,re.length);ce=re.subarray(e),re=await ae(re.subarray(0,e),O),oe=wt(re),J=re.length,ie=!0}!O||ie||re.length>=4&&qo(oe,0)!=L||Wr(s,"unknown zip64 extensible data"),F=v;const ue=Lo(t,e,"filenameEncoding"),fe=Lo(t,e,"commentEncoding"),we=new u;let le,de=-1;const pe=!c&&!I;!G&&pe&&(G=ho(oe,re,te),G&&Wr(s,to));for(let o=0;G>o;o++){const i=new lo(r,t.options);if(te+46>re.length||qo(oe,te)!=L){if(0==o&&!ie&&(U||po(oe)))throw new l("Encrypted central directory is not supported");throw new l("Central directory header not found")}yo(i,oe,te+6);const c=!!i.bitFlag.languageEncodingFlag,u=te+46,f=u+i.filenameLength+i.extraFieldLength,w=Zo(oe,te+4),m=!(w>>8),y=w>>8==3,g=Zo(oe,te+32),b=f+g,v=new d(re.subarray(u,b)),S=v.subarray(0,i.filenameLength),k=v.subarray(i.filenameLength+i.extraFieldLength),z=c||!ue&&qn(S),R=c||!fe&&qn(k),D=qo(oe,te+38),C=D&W,A={readOnly:!!(1&C),hidden:!!(2&C),system:!!(4&C),directory:!!(16&C),archive:!!(32&C)},I=qo(oe,te+42),T=Po(t,e,"decodeText")||Zn,M=z?io:ue||co,O=R?io:fe||co;let P=T(S,M,"filename");if(P===j&&(P=Zn(S,M)),h){const e=h(P);e!==j&&(P=e)}if(Io(P,p)){const e=new l("Unsafe filename");throw e.filename=P,e}let H=T(k,O,"comment");H===j&&(H=Zn(k,O)),n.assign(i,{index:o,ee:ie,versionMadeBy:w,msDosCompatible:m,zip64:!1,compressedSize:0,uncompressedSize:0,we:g,offset:I,diskNumberStart:Zo(oe,te+34),internalFileAttributes:Zo(oe,te+36),externalFileAttributes:D,msdosAttributesRaw:C,msdosAttributes:A,rawFilename:S,filenameUTF8:z,commentUTF8:R,rawExtraField:v.subarray(i.filenameLength,i.filenameLength+i.extraFieldLength),rawComment:k,filename:P,comment:H}),go(i,i,oe,te+6)&&Wr(s,eo,P),i.offset+=K;const B=Ro(r,i.diskNumberStart)+i.offset;F=a.min(B,F),de>B&&Wr(s,"unsorted central directory",P),de=B,(i.version&W)>63&&Wr(s,"unknown version needed to extract",P),32&~i.rawBitFlag||Wr(s,"compressed patched data",P),we.has(i.filename)&&(le=!0),we.add(i.filename);const V=i.externalFileAttributes>>16&E;i.unixMode===j&&16877&V&&(i.unixMode=V);const Z=!!(2048&i.unixMode),N=!!(1024&i.unixMode),X=!!(512&i.unixMode),_=40960==((i.unixMode===j?V:i.unixMode)&q),$=!_&&(i.unixMode!==j?!!(73&i.unixMode):y&&!!(73&V)),J=i.unixMode!==j&&16384==(i.unixMode&q),Q=16384==(V&q);n.assign(i,{setuid:Z,setgid:N,sticky:X,symlink:_,unixExternalUpper:V,executable:$,directory:J||Q||m&&A.directory||i.filename.endsWith("/"),zipCrypto:i.encrypted&&!i.extraFieldAES});const Y=new $r(i);if(Y.getData=(e,n)=>i.getData(e,Y,t.ne,n),Y.arrayBuffer=async e=>{const r=new x,o=sn(r.readable).then(e=>e.arrayBuffer());return o.catch(()=>{}),await i.getData(r,Y,t.ne,n.assign({},e,{preventClose:!1})),o},te=b,o==G-1&&pe){const e=ho(oe,re,te);e&&(G+=e,Wr(s,to))}const{onprogress:ee}=e;if(ee)try{await ee(o+1,G,new $r(i))}catch{}yield Y}let he=te,me=mo(re.subarray(te))||(ie?mo(ce):j);if(!me&&!ie){const e=v+te,t=a.min(Y-e,65541);6>t||(me=mo(await Er(r,e,t)))}me&&(t.digitalSignature=me,he=te+6+me.length),(te!=J&&he!=J||!ie&&te!=b&&he!=b)&&Mo(c,s,"trailing central directory data"),le&&Mo(c,s,"duplicate filename");const ye=Lo(t,e,"extractPrependedData"),ge=Lo(t,e,"extractAppendedData"),be=(c||ye)&&G&&4==F&&await(async e=>{const t=await Do(e);return t==M||808471376==t})(r)?4:0;return c&&(K||G&&F>be)&&Oo(ro),(K||G&&F>4)&&Wr(s,ro),A&&Wr(s,"prepended central directory"),ye&&(t.prependedData=F>be?await Er(r,be,F-be):$),t.comment=k?await Er(r,S+B,k):$,ge&&(t.appendedData=z<r.size?await Er(r,z,r.size-z):$),!0}async getEntries(e={}){const t=[];for await(const n of this.getEntriesGenerator(e))t.push(n);return t}async close(){const{reader:e}=this;e.readUint8Array||!e.readable||e.readable.locked||await e.readable.cancel()}[J](){return this.close()}},e.configure=e=>{n.assign(we,he(ye(e)))},e.inflateRaw=(e,t)=>Ne(e,{i:2},t&&t.le,t&&t.m)});
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import { setDefaultConfiguration } from "../node_modules/@zip.js/zip.js/lib/core/configuration.js";
|
|
2
|
+
|
|
3
|
+
setDefaultConfiguration({
|
|
4
|
+
workerURI: null
|
|
5
|
+
});
|
|
6
|
+
|
|
1
7
|
export * from "../node_modules/@zip.js/zip.js/lib/zip-core.js";
|
|
2
8
|
export { initStream, readUint8Array } from "../node_modules/@zip.js/zip.js/lib/core/io.js";
|
|
3
9
|
export { deflateSync as deflateRaw, inflateSync as inflateRaw } from "./fflate.js";
|
|
@@ -31,7 +31,7 @@ const bundledTerserOptions = {
|
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
const GLOBALS = "const { Array, Object, String, Number, BigInt, Math, Date, Map, Set, Response, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator, Worker, setTimeout, clearTimeout } = typeof globalThis !== 'undefined' ? globalThis :
|
|
34
|
+
const GLOBALS = "const { Array, Object, String, Number, BigInt, Math, Date, Map, Set, Response, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator, Worker, setTimeout, clearTimeout } = typeof globalThis !== 'undefined' ? globalThis : self;";
|
|
35
35
|
const GLOBALS_WORKER = "const { Array, Object, Number, Math, Error, Uint8Array, Uint16Array, Uint32Array, Int32Array, Map, DataView, Promise, TextEncoder, crypto, postMessage, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream } = self;";
|
|
36
36
|
|
|
37
37
|
export default [{
|