@vkontakte/calls-audio-effects 1.2.10-dev.12fb226c.0 → 1.2.10-dev.652c81ba.0
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/AudioEffects.d.ts +1 -1
- package/audio-effects.cjs.js +568 -478
- package/audio-effects.esm.js +568 -478
- package/controllers/VadController.d.ts +6 -3
- package/effects/EffectVadAi.d.ts +20 -0
- package/package.json +2 -2
- package/workers/VadTfliteWorker.d.ts +6 -0
- /package/workers/{VadAiWorker.d.ts → VadOnnxWorker.d.ts} +0 -0
package/audio-effects.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vkontakte/calls-audio-effects v1.2.10-dev.
|
|
3
|
-
*
|
|
2
|
+
* @vkontakte/calls-audio-effects v1.2.10-dev.652c81ba.0-dev
|
|
3
|
+
* Thu, 09 Jul 2026 15:16:52 GMT
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
var __create = Object.create;
|
|
@@ -32,7 +32,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
32
32
|
// node_modules/@vkontakte/audio-processing/wasm_bindings.js
|
|
33
33
|
var require_wasm_bindings = __commonJS({
|
|
34
34
|
"node_modules/@vkontakte/audio-processing/wasm_bindings.js"(exports, module) {
|
|
35
|
-
var
|
|
35
|
+
var wav2lip4 = (() => {
|
|
36
36
|
var _scriptName = typeof document != "undefined" ? document.currentScript?.src : void 0;
|
|
37
37
|
return function(moduleArg = {}) {
|
|
38
38
|
var moduleRtn;
|
|
@@ -43,12 +43,10 @@ var require_wasm_bindings = __commonJS({
|
|
|
43
43
|
readyPromiseReject = reject;
|
|
44
44
|
});
|
|
45
45
|
var ENVIRONMENT_IS_WEB = typeof window == "object";
|
|
46
|
-
var ENVIRONMENT_IS_WORKER = typeof
|
|
47
|
-
var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string";
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
Module.expectedDataFileDownloads++;
|
|
46
|
+
var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined";
|
|
47
|
+
var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
|
|
48
|
+
Module["expectedDataFileDownloads"] ??= 0;
|
|
49
|
+
Module["expectedDataFileDownloads"]++;
|
|
52
50
|
(() => {
|
|
53
51
|
var isPthread = typeof ENVIRONMENT_IS_PTHREAD != "undefined" && ENVIRONMENT_IS_PTHREAD;
|
|
54
52
|
var isWasmWorker = typeof ENVIRONMENT_IS_WASM_WORKER != "undefined" && ENVIRONMENT_IS_WASM_WORKER;
|
|
@@ -57,63 +55,55 @@ var require_wasm_bindings = __commonJS({
|
|
|
57
55
|
function loadPackage(metadata) {
|
|
58
56
|
var PACKAGE_PATH = "";
|
|
59
57
|
if (typeof window === "object") {
|
|
60
|
-
PACKAGE_PATH = window["encodeURIComponent"](window.location.pathname.
|
|
58
|
+
PACKAGE_PATH = window["encodeURIComponent"](window.location.pathname.substring(0, window.location.pathname.lastIndexOf("/")) + "/");
|
|
61
59
|
} else if (typeof process === "undefined" && typeof location !== "undefined") {
|
|
62
|
-
PACKAGE_PATH = encodeURIComponent(location.pathname.
|
|
60
|
+
PACKAGE_PATH = encodeURIComponent(location.pathname.substring(0, location.pathname.lastIndexOf("/")) + "/");
|
|
63
61
|
}
|
|
64
62
|
var PACKAGE_NAME = "wasm_bindings.data";
|
|
65
63
|
var REMOTE_PACKAGE_BASE = "wasm_bindings.data";
|
|
66
|
-
if (typeof Module["locateFilePackage"] === "function" && !Module["locateFile"]) {
|
|
67
|
-
Module["locateFile"] = Module["locateFilePackage"];
|
|
68
|
-
err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)");
|
|
69
|
-
}
|
|
70
64
|
var REMOTE_PACKAGE_NAME = Module["locateFile"] ? Module["locateFile"](REMOTE_PACKAGE_BASE, "") : REMOTE_PACKAGE_BASE;
|
|
71
65
|
var REMOTE_PACKAGE_SIZE = metadata["remote_package_size"];
|
|
72
66
|
function fetchRemotePackage(packageName, packageSize, callback, errback) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
var url = packageName;
|
|
78
|
-
var size = packageSize;
|
|
79
|
-
if (event.total)
|
|
80
|
-
size = event.total;
|
|
81
|
-
if (event.loaded) {
|
|
82
|
-
if (!xhr.addedTotal) {
|
|
83
|
-
xhr.addedTotal = true;
|
|
84
|
-
if (!Module.dataFileDownloads)
|
|
85
|
-
Module.dataFileDownloads = {};
|
|
86
|
-
Module.dataFileDownloads[url] = { loaded: event.loaded, total: size };
|
|
87
|
-
} else {
|
|
88
|
-
Module.dataFileDownloads[url].loaded = event.loaded;
|
|
89
|
-
}
|
|
90
|
-
var total = 0;
|
|
91
|
-
var loaded = 0;
|
|
92
|
-
var num = 0;
|
|
93
|
-
for (var download in Module.dataFileDownloads) {
|
|
94
|
-
var data = Module.dataFileDownloads[download];
|
|
95
|
-
total += data.total;
|
|
96
|
-
loaded += data.loaded;
|
|
97
|
-
num++;
|
|
98
|
-
}
|
|
99
|
-
total = Math.ceil(total * Module.expectedDataFileDownloads / num);
|
|
100
|
-
Module["setStatus"]?.(`Downloading data... (${loaded}/${total})`);
|
|
101
|
-
} else if (!Module.dataFileDownloads) {
|
|
102
|
-
Module["setStatus"]?.("Downloading data...");
|
|
67
|
+
Module["dataFileDownloads"] ??= {};
|
|
68
|
+
fetch(packageName).catch((cause) => Promise.reject(new Error(`Network Error: ${packageName}`, { cause }))).then((response) => {
|
|
69
|
+
if (!response.ok) {
|
|
70
|
+
return Promise.reject(new Error(`${response.status}: ${response.url}`));
|
|
103
71
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
throw new Error("NetworkError for: " + packageName);
|
|
107
|
-
};
|
|
108
|
-
xhr.onload = function(event) {
|
|
109
|
-
if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || xhr.status == 0 && xhr.response) {
|
|
110
|
-
var packageData = xhr.response;
|
|
111
|
-
callback(packageData);
|
|
112
|
-
} else {
|
|
113
|
-
throw new Error(xhr.statusText + " : " + xhr.responseURL);
|
|
72
|
+
if (!response.body && response.arrayBuffer) {
|
|
73
|
+
return response.arrayBuffer().then(callback);
|
|
114
74
|
}
|
|
115
|
-
|
|
116
|
-
|
|
75
|
+
const reader = response.body.getReader();
|
|
76
|
+
const iterate = () => reader.read().then(handleChunk).catch((cause) => Promise.reject(new Error(`Unexpected error while handling : ${response.url} ${cause}`, { cause })));
|
|
77
|
+
const chunks = [];
|
|
78
|
+
const headers = response.headers;
|
|
79
|
+
const total = Number(headers.get("Content-Length") ?? packageSize);
|
|
80
|
+
let loaded = 0;
|
|
81
|
+
const handleChunk = ({ done, value }) => {
|
|
82
|
+
if (!done) {
|
|
83
|
+
chunks.push(value);
|
|
84
|
+
loaded += value.length;
|
|
85
|
+
Module["dataFileDownloads"][packageName] = { loaded, total };
|
|
86
|
+
let totalLoaded = 0;
|
|
87
|
+
let totalSize = 0;
|
|
88
|
+
for (const download of Object.values(Module["dataFileDownloads"])) {
|
|
89
|
+
totalLoaded += download.loaded;
|
|
90
|
+
totalSize += download.total;
|
|
91
|
+
}
|
|
92
|
+
Module["setStatus"]?.(`Downloading data... (${totalLoaded}/${totalSize})`);
|
|
93
|
+
return iterate();
|
|
94
|
+
} else {
|
|
95
|
+
const packageData = new Uint8Array(chunks.map((c) => c.length).reduce((a, b) => a + b, 0));
|
|
96
|
+
let offset = 0;
|
|
97
|
+
for (const chunk of chunks) {
|
|
98
|
+
packageData.set(chunk, offset);
|
|
99
|
+
offset += chunk.length;
|
|
100
|
+
}
|
|
101
|
+
callback(packageData.buffer);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
Module["setStatus"]?.("Downloading data...");
|
|
105
|
+
return iterate();
|
|
106
|
+
});
|
|
117
107
|
}
|
|
118
108
|
function handleError(error) {
|
|
119
109
|
console.error("package error:", error);
|
|
@@ -121,7 +111,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
121
111
|
var fetchedCallback = null;
|
|
122
112
|
var fetched = Module["getPreloadedPackage"] ? Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
|
|
123
113
|
if (!fetched)
|
|
124
|
-
fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE,
|
|
114
|
+
fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, (data) => {
|
|
125
115
|
if (fetchedCallback) {
|
|
126
116
|
fetchedCallback(data);
|
|
127
117
|
fetchedCallback = null;
|
|
@@ -169,9 +159,8 @@ var require_wasm_bindings = __commonJS({
|
|
|
169
159
|
Module2["removeRunDependency"]("datafile_wasm_bindings.data");
|
|
170
160
|
}
|
|
171
161
|
Module2["addRunDependency"]("datafile_wasm_bindings.data");
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
Module2.preloadResults[PACKAGE_NAME] = { fromCache: false };
|
|
162
|
+
Module2["preloadResults"] ??= {};
|
|
163
|
+
Module2["preloadResults"][PACKAGE_NAME] = { fromCache: false };
|
|
175
164
|
if (fetched) {
|
|
176
165
|
processPackageData(fetched);
|
|
177
166
|
fetched = null;
|
|
@@ -182,12 +171,10 @@ var require_wasm_bindings = __commonJS({
|
|
|
182
171
|
if (Module["calledRun"]) {
|
|
183
172
|
runWithFS(Module);
|
|
184
173
|
} else {
|
|
185
|
-
|
|
186
|
-
Module["preRun"] = [];
|
|
187
|
-
Module["preRun"].push(runWithFS);
|
|
174
|
+
(Module["preRun"] ??= []).push(runWithFS);
|
|
188
175
|
}
|
|
189
176
|
}
|
|
190
|
-
loadPackage({ files: [{ filename: "/animoji_v4.cfg", start: 0, end: 333 }, { filename: "/balloon.cfg", start: 333, end: 409 }, { filename: "/cathedral.cfg", start:
|
|
177
|
+
loadPackage({ files: [{ filename: "/animoji_v4.cfg", start: 0, end: 333 }, { filename: "/balloon.cfg", start: 333, end: 409 }, { filename: "/bcresnet_internal_state_20ms.tflite", start: 409, end: 274717 }, { filename: "/cathedral.cfg", start: 274717, end: 274894 }, { filename: "/chorus.cfg", start: 274894, end: 275173 }, { filename: "/denoise.cfg", start: 275173, end: 277566 }, { filename: "/df2_lstm_full_silent.tflite", start: 277566, end: 3444286 }, { filename: "/distortion.cfg", start: 3444286, end: 3444428 }, { filename: "/echo.cfg", start: 3444428, end: 3444565 }, { filename: "/evil.cfg", start: 3444565, end: 3444706 }, { filename: "/giant.cfg", start: 3444706, end: 3444782 }, { filename: "/hall.cfg", start: 3444782, end: 3444955 }, { filename: "/phaser.cfg", start: 3444955, end: 3445055 }, { filename: "/robot.cfg", start: 3445055, end: 3445195 }, { filename: "/squirell.cfg", start: 3445195, end: 3445271 }, { filename: "/vad.cfg", start: 3445271, end: 3445492 }, { filename: "/wav2lip_lite_rec-v4-v2.tflite", start: 3445492, end: 7730572 }], remote_package_size: 7730572 });
|
|
191
178
|
})();
|
|
192
179
|
var _scriptName2 = null;
|
|
193
180
|
var moduleOverrides = Object.assign({}, Module);
|
|
@@ -228,12 +215,13 @@ var require_wasm_bindings = __commonJS({
|
|
|
228
215
|
return new Uint8Array(xhr.response);
|
|
229
216
|
};
|
|
230
217
|
}
|
|
231
|
-
readAsync =
|
|
218
|
+
readAsync = async (url) => {
|
|
219
|
+
var response = await fetch(url, { credentials: "same-origin" });
|
|
232
220
|
if (response.ok) {
|
|
233
221
|
return response.arrayBuffer();
|
|
234
222
|
}
|
|
235
|
-
|
|
236
|
-
}
|
|
223
|
+
throw new Error(response.status + " : " + response.url);
|
|
224
|
+
};
|
|
237
225
|
}
|
|
238
226
|
} else {
|
|
239
227
|
}
|
|
@@ -245,11 +233,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
245
233
|
arguments_ = Module["arguments"];
|
|
246
234
|
if (Module["thisProgram"])
|
|
247
235
|
thisProgram = Module["thisProgram"];
|
|
248
|
-
|
|
249
|
-
quit_ = Module["quit"];
|
|
250
|
-
var wasmBinary;
|
|
251
|
-
if (Module["wasmBinary"])
|
|
252
|
-
wasmBinary = Module["wasmBinary"];
|
|
236
|
+
var wasmBinary = Module["wasmBinary"];
|
|
253
237
|
var wasmMemory;
|
|
254
238
|
var ABORT = false;
|
|
255
239
|
var EXITSTATUS;
|
|
@@ -281,7 +265,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
281
265
|
}
|
|
282
266
|
function initRuntime() {
|
|
283
267
|
runtimeInitialized = true;
|
|
284
|
-
if (!Module["noFSInit"] && !FS.
|
|
268
|
+
if (!Module["noFSInit"] && !FS.initialized)
|
|
285
269
|
FS.init();
|
|
286
270
|
FS.ignorePermissions = false;
|
|
287
271
|
TTY.init();
|
|
@@ -307,7 +291,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
307
291
|
__ATPOSTRUN__.unshift(cb);
|
|
308
292
|
}
|
|
309
293
|
var runDependencies = 0;
|
|
310
|
-
var runDependencyWatcher = null;
|
|
311
294
|
var dependenciesFulfilled = null;
|
|
312
295
|
function getUniqueRunDependency(id) {
|
|
313
296
|
return id;
|
|
@@ -320,10 +303,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
320
303
|
runDependencies--;
|
|
321
304
|
Module["monitorRunDependencies"]?.(runDependencies);
|
|
322
305
|
if (runDependencies == 0) {
|
|
323
|
-
if (runDependencyWatcher !== null) {
|
|
324
|
-
clearInterval(runDependencyWatcher);
|
|
325
|
-
runDependencyWatcher = null;
|
|
326
|
-
}
|
|
327
306
|
if (dependenciesFulfilled) {
|
|
328
307
|
var callback = dependenciesFulfilled;
|
|
329
308
|
dependenciesFulfilled = null;
|
|
@@ -336,7 +315,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
336
315
|
what = "Aborted(" + what + ")";
|
|
337
316
|
err(what);
|
|
338
317
|
ABORT = true;
|
|
339
|
-
EXITSTATUS = 1;
|
|
340
318
|
what += ". Build with -sASSERTIONS for more info.";
|
|
341
319
|
var e = new WebAssembly.RuntimeError(what);
|
|
342
320
|
readyPromiseReject(e);
|
|
@@ -361,49 +339,57 @@ var require_wasm_bindings = __commonJS({
|
|
|
361
339
|
}
|
|
362
340
|
throw "both async and sync fetching of the wasm failed";
|
|
363
341
|
}
|
|
364
|
-
function
|
|
342
|
+
async function getWasmBinary(binaryFile) {
|
|
365
343
|
if (!wasmBinary) {
|
|
366
|
-
|
|
344
|
+
try {
|
|
345
|
+
var response = await readAsync(binaryFile);
|
|
346
|
+
return new Uint8Array(response);
|
|
347
|
+
} catch {
|
|
348
|
+
}
|
|
367
349
|
}
|
|
368
|
-
return
|
|
350
|
+
return getBinarySync(binaryFile);
|
|
369
351
|
}
|
|
370
|
-
function instantiateArrayBuffer(binaryFile, imports
|
|
371
|
-
|
|
352
|
+
async function instantiateArrayBuffer(binaryFile, imports) {
|
|
353
|
+
try {
|
|
354
|
+
var binary = await getWasmBinary(binaryFile);
|
|
355
|
+
var instance = await WebAssembly.instantiate(binary, imports);
|
|
356
|
+
return instance;
|
|
357
|
+
} catch (reason) {
|
|
372
358
|
err(`failed to asynchronously prepare wasm: ${reason}`);
|
|
373
359
|
abort(reason);
|
|
374
|
-
}
|
|
360
|
+
}
|
|
375
361
|
}
|
|
376
|
-
function instantiateAsync(binary, binaryFile, imports
|
|
362
|
+
async function instantiateAsync(binary, binaryFile, imports) {
|
|
377
363
|
if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && typeof fetch == "function") {
|
|
378
|
-
|
|
379
|
-
var
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
}
|
|
364
|
+
try {
|
|
365
|
+
var response = fetch(binaryFile, { credentials: "same-origin" });
|
|
366
|
+
var instantiationResult = await WebAssembly.instantiateStreaming(response, imports);
|
|
367
|
+
return instantiationResult;
|
|
368
|
+
} catch (reason) {
|
|
369
|
+
err(`wasm streaming compile failed: ${reason}`);
|
|
370
|
+
err("falling back to ArrayBuffer instantiation");
|
|
371
|
+
}
|
|
386
372
|
}
|
|
387
|
-
return instantiateArrayBuffer(binaryFile, imports
|
|
373
|
+
return instantiateArrayBuffer(binaryFile, imports);
|
|
388
374
|
}
|
|
389
375
|
function getWasmImports() {
|
|
390
376
|
return { a: wasmImports };
|
|
391
377
|
}
|
|
392
|
-
function createWasm() {
|
|
393
|
-
var info = getWasmImports();
|
|
378
|
+
async function createWasm() {
|
|
394
379
|
function receiveInstance(instance, module2) {
|
|
395
380
|
wasmExports = instance.exports;
|
|
396
|
-
wasmMemory = wasmExports["
|
|
381
|
+
wasmMemory = wasmExports["ea"];
|
|
397
382
|
updateMemoryViews();
|
|
398
|
-
wasmTable = wasmExports["
|
|
399
|
-
addOnInit(wasmExports["
|
|
383
|
+
wasmTable = wasmExports["ha"];
|
|
384
|
+
addOnInit(wasmExports["fa"]);
|
|
400
385
|
removeRunDependency("wasm-instantiate");
|
|
401
386
|
return wasmExports;
|
|
402
387
|
}
|
|
403
388
|
addRunDependency("wasm-instantiate");
|
|
404
|
-
function receiveInstantiationResult(
|
|
405
|
-
receiveInstance(
|
|
389
|
+
function receiveInstantiationResult(result2) {
|
|
390
|
+
receiveInstance(result2["instance"]);
|
|
406
391
|
}
|
|
392
|
+
var info = getWasmImports();
|
|
407
393
|
if (Module["instantiateWasm"]) {
|
|
408
394
|
try {
|
|
409
395
|
return Module["instantiateWasm"](info, receiveInstance);
|
|
@@ -412,17 +398,46 @@ var require_wasm_bindings = __commonJS({
|
|
|
412
398
|
readyPromiseReject(e);
|
|
413
399
|
}
|
|
414
400
|
}
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
401
|
+
wasmBinaryFile ??= findWasmBinary();
|
|
402
|
+
try {
|
|
403
|
+
var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);
|
|
404
|
+
receiveInstantiationResult(result);
|
|
405
|
+
return result;
|
|
406
|
+
} catch (e) {
|
|
407
|
+
readyPromiseReject(e);
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
419
410
|
}
|
|
420
411
|
var tempDouble;
|
|
421
412
|
var tempI64;
|
|
422
|
-
function
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
413
|
+
function hardware_concurrency() {
|
|
414
|
+
return self.navigator.hardwareConcurrency;
|
|
415
|
+
}
|
|
416
|
+
function xnnLoadWasmModuleJS(code, offset, offset_end, invalid_function_index) {
|
|
417
|
+
const tableOriginalSize = wasmTable.length;
|
|
418
|
+
const binary = new Uint8Array(HEAPU8.slice(code + offset, code + offset_end));
|
|
419
|
+
try {
|
|
420
|
+
var module2 = new WebAssembly.Module(binary);
|
|
421
|
+
var instance = new WebAssembly.Instance(module2, { env: { memory: wasmMemory } });
|
|
422
|
+
for (var symName in instance.exports) {
|
|
423
|
+
var value = instance.exports[symName];
|
|
424
|
+
addFunction(value);
|
|
425
|
+
}
|
|
426
|
+
if (tableOriginalSize < wasmTable.length) {
|
|
427
|
+
return tableOriginalSize;
|
|
428
|
+
}
|
|
429
|
+
return invalid_function_index;
|
|
430
|
+
} catch (error) {
|
|
431
|
+
console.log(error);
|
|
432
|
+
return invalid_function_index;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
class ExitStatus {
|
|
436
|
+
name = "ExitStatus";
|
|
437
|
+
constructor(status) {
|
|
438
|
+
this.message = `Program terminated with exit(${status})`;
|
|
439
|
+
this.status = status;
|
|
440
|
+
}
|
|
426
441
|
}
|
|
427
442
|
var callRuntimeCallbacks = (callbacks) => {
|
|
428
443
|
while (callbacks.length > 0) {
|
|
@@ -472,16 +487,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
472
487
|
get_adjusted_ptr() {
|
|
473
488
|
return HEAPU32[this.ptr + 16 >> 2];
|
|
474
489
|
}
|
|
475
|
-
get_exception_ptr() {
|
|
476
|
-
var isPointer = ___cxa_is_pointer_type(this.get_type());
|
|
477
|
-
if (isPointer) {
|
|
478
|
-
return HEAPU32[this.excPtr >> 2];
|
|
479
|
-
}
|
|
480
|
-
var adjusted = this.get_adjusted_ptr();
|
|
481
|
-
if (adjusted !== 0)
|
|
482
|
-
return adjusted;
|
|
483
|
-
return this.excPtr;
|
|
484
|
-
}
|
|
485
490
|
}
|
|
486
491
|
var exceptionLast = 0;
|
|
487
492
|
var uncaughtExceptionCount = 0;
|
|
@@ -492,12 +497,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
492
497
|
uncaughtExceptionCount++;
|
|
493
498
|
throw exceptionLast;
|
|
494
499
|
};
|
|
495
|
-
function syscallGetVarargI() {
|
|
496
|
-
var ret = HEAP32[+SYSCALLS.varargs >> 2];
|
|
497
|
-
SYSCALLS.varargs += 4;
|
|
498
|
-
return ret;
|
|
499
|
-
}
|
|
500
|
-
var syscallGetVarargP = syscallGetVarargI;
|
|
501
500
|
var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => {
|
|
502
501
|
var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
|
|
503
502
|
return splitPathRe.exec(filename).slice(1);
|
|
@@ -607,7 +606,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
607
606
|
return outputParts.join("/");
|
|
608
607
|
} };
|
|
609
608
|
var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder() : void 0;
|
|
610
|
-
var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {
|
|
609
|
+
var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => {
|
|
611
610
|
var endIdx = idx + maxBytesToRead;
|
|
612
611
|
var endPtr = idx;
|
|
613
612
|
while (heapOrArray[endPtr] && !(endPtr >= endIdx))
|
|
@@ -760,7 +759,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
760
759
|
buffer[offset + i] = result;
|
|
761
760
|
}
|
|
762
761
|
if (bytesRead) {
|
|
763
|
-
stream.node.
|
|
762
|
+
stream.node.atime = Date.now();
|
|
764
763
|
}
|
|
765
764
|
return bytesRead;
|
|
766
765
|
}, write(stream, buffer, offset, length, pos) {
|
|
@@ -775,14 +774,14 @@ var require_wasm_bindings = __commonJS({
|
|
|
775
774
|
throw new FS.ErrnoError(29);
|
|
776
775
|
}
|
|
777
776
|
if (length) {
|
|
778
|
-
stream.node.
|
|
777
|
+
stream.node.mtime = stream.node.ctime = Date.now();
|
|
779
778
|
}
|
|
780
779
|
return i;
|
|
781
780
|
} }, default_tty_ops: { get_char(tty) {
|
|
782
781
|
return FS_stdin_getChar();
|
|
783
782
|
}, put_char(tty, val) {
|
|
784
783
|
if (val === null || val === 10) {
|
|
785
|
-
out(UTF8ArrayToString(tty.output
|
|
784
|
+
out(UTF8ArrayToString(tty.output));
|
|
786
785
|
tty.output = [];
|
|
787
786
|
} else {
|
|
788
787
|
if (val != 0)
|
|
@@ -790,7 +789,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
790
789
|
}
|
|
791
790
|
}, fsync(tty) {
|
|
792
791
|
if (tty.output && tty.output.length > 0) {
|
|
793
|
-
out(UTF8ArrayToString(tty.output
|
|
792
|
+
out(UTF8ArrayToString(tty.output));
|
|
794
793
|
tty.output = [];
|
|
795
794
|
}
|
|
796
795
|
}, ioctl_tcgets(tty) {
|
|
@@ -801,7 +800,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
801
800
|
return [24, 80];
|
|
802
801
|
} }, default_tty1_ops: { put_char(tty, val) {
|
|
803
802
|
if (val === null || val === 10) {
|
|
804
|
-
err(UTF8ArrayToString(tty.output
|
|
803
|
+
err(UTF8ArrayToString(tty.output));
|
|
805
804
|
tty.output = [];
|
|
806
805
|
} else {
|
|
807
806
|
if (val != 0)
|
|
@@ -809,29 +808,28 @@ var require_wasm_bindings = __commonJS({
|
|
|
809
808
|
}
|
|
810
809
|
}, fsync(tty) {
|
|
811
810
|
if (tty.output && tty.output.length > 0) {
|
|
812
|
-
err(UTF8ArrayToString(tty.output
|
|
811
|
+
err(UTF8ArrayToString(tty.output));
|
|
813
812
|
tty.output = [];
|
|
814
813
|
}
|
|
815
814
|
} } };
|
|
816
815
|
var zeroMemory = (address, size) => {
|
|
817
816
|
HEAPU8.fill(0, address, address + size);
|
|
818
|
-
return address;
|
|
819
817
|
};
|
|
820
818
|
var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
|
|
821
819
|
var mmapAlloc = (size) => {
|
|
822
820
|
size = alignMemory(size, 65536);
|
|
823
821
|
var ptr = _emscripten_builtin_memalign(65536, size);
|
|
824
|
-
if (
|
|
825
|
-
|
|
826
|
-
return
|
|
822
|
+
if (ptr)
|
|
823
|
+
zeroMemory(ptr, size);
|
|
824
|
+
return ptr;
|
|
827
825
|
};
|
|
828
826
|
var MEMFS = { ops_table: null, mount(mount) {
|
|
829
|
-
return MEMFS.createNode(null, "/",
|
|
827
|
+
return MEMFS.createNode(null, "/", 16895, 0);
|
|
830
828
|
}, createNode(parent, name, mode, dev) {
|
|
831
829
|
if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
|
|
832
830
|
throw new FS.ErrnoError(63);
|
|
833
831
|
}
|
|
834
|
-
MEMFS.ops_table
|
|
832
|
+
MEMFS.ops_table ||= { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } };
|
|
835
833
|
var node = FS.createNode(parent, name, mode, dev);
|
|
836
834
|
if (FS.isDir(node.mode)) {
|
|
837
835
|
node.node_ops = MEMFS.ops_table.dir.node;
|
|
@@ -849,10 +847,10 @@ var require_wasm_bindings = __commonJS({
|
|
|
849
847
|
node.node_ops = MEMFS.ops_table.chrdev.node;
|
|
850
848
|
node.stream_ops = MEMFS.ops_table.chrdev.stream;
|
|
851
849
|
}
|
|
852
|
-
node.
|
|
850
|
+
node.atime = node.mtime = node.ctime = Date.now();
|
|
853
851
|
if (parent) {
|
|
854
852
|
parent.contents[name] = node;
|
|
855
|
-
parent.
|
|
853
|
+
parent.atime = parent.mtime = parent.ctime = node.atime;
|
|
856
854
|
}
|
|
857
855
|
return node;
|
|
858
856
|
}, getFileDataAsTypedArray(node) {
|
|
@@ -905,60 +903,55 @@ var require_wasm_bindings = __commonJS({
|
|
|
905
903
|
} else {
|
|
906
904
|
attr.size = 0;
|
|
907
905
|
}
|
|
908
|
-
attr.atime = new Date(node.
|
|
909
|
-
attr.mtime = new Date(node.
|
|
910
|
-
attr.ctime = new Date(node.
|
|
906
|
+
attr.atime = new Date(node.atime);
|
|
907
|
+
attr.mtime = new Date(node.mtime);
|
|
908
|
+
attr.ctime = new Date(node.ctime);
|
|
911
909
|
attr.blksize = 4096;
|
|
912
910
|
attr.blocks = Math.ceil(attr.size / attr.blksize);
|
|
913
911
|
return attr;
|
|
914
912
|
}, setattr(node, attr) {
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
node.timestamp = attr.timestamp;
|
|
913
|
+
for (const key of ["mode", "atime", "mtime", "ctime"]) {
|
|
914
|
+
if (attr[key]) {
|
|
915
|
+
node[key] = attr[key];
|
|
916
|
+
}
|
|
920
917
|
}
|
|
921
918
|
if (attr.size !== void 0) {
|
|
922
919
|
MEMFS.resizeFileStorage(node, attr.size);
|
|
923
920
|
}
|
|
924
921
|
}, lookup(parent, name) {
|
|
925
|
-
throw
|
|
922
|
+
throw MEMFS.doesNotExistError;
|
|
926
923
|
}, mknod(parent, name, mode, dev) {
|
|
927
924
|
return MEMFS.createNode(parent, name, mode, dev);
|
|
928
925
|
}, rename(old_node, new_dir, new_name) {
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
if (
|
|
926
|
+
var new_node;
|
|
927
|
+
try {
|
|
928
|
+
new_node = FS.lookupNode(new_dir, new_name);
|
|
929
|
+
} catch (e) {
|
|
930
|
+
}
|
|
931
|
+
if (new_node) {
|
|
932
|
+
if (FS.isDir(old_node.mode)) {
|
|
936
933
|
for (var i in new_node.contents) {
|
|
937
934
|
throw new FS.ErrnoError(55);
|
|
938
935
|
}
|
|
939
936
|
}
|
|
937
|
+
FS.hashRemoveNode(new_node);
|
|
940
938
|
}
|
|
941
939
|
delete old_node.parent.contents[old_node.name];
|
|
942
|
-
old_node.parent.timestamp = Date.now();
|
|
943
|
-
old_node.name = new_name;
|
|
944
940
|
new_dir.contents[new_name] = old_node;
|
|
945
|
-
|
|
941
|
+
old_node.name = new_name;
|
|
942
|
+
new_dir.ctime = new_dir.mtime = old_node.parent.ctime = old_node.parent.mtime = Date.now();
|
|
946
943
|
}, unlink(parent, name) {
|
|
947
944
|
delete parent.contents[name];
|
|
948
|
-
parent.
|
|
945
|
+
parent.ctime = parent.mtime = Date.now();
|
|
949
946
|
}, rmdir(parent, name) {
|
|
950
947
|
var node = FS.lookupNode(parent, name);
|
|
951
948
|
for (var i in node.contents) {
|
|
952
949
|
throw new FS.ErrnoError(55);
|
|
953
950
|
}
|
|
954
951
|
delete parent.contents[name];
|
|
955
|
-
parent.
|
|
952
|
+
parent.ctime = parent.mtime = Date.now();
|
|
956
953
|
}, readdir(node) {
|
|
957
|
-
|
|
958
|
-
for (var key of Object.keys(node.contents)) {
|
|
959
|
-
entries.push(key);
|
|
960
|
-
}
|
|
961
|
-
return entries;
|
|
954
|
+
return [".", "..", ...Object.keys(node.contents)];
|
|
962
955
|
}, symlink(parent, newname, oldpath) {
|
|
963
956
|
var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
|
|
964
957
|
node.link = oldpath;
|
|
@@ -987,7 +980,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
987
980
|
if (!length)
|
|
988
981
|
return 0;
|
|
989
982
|
var node = stream.node;
|
|
990
|
-
node.
|
|
983
|
+
node.mtime = node.ctime = Date.now();
|
|
991
984
|
if (buffer.subarray && (!node.contents || node.contents.subarray)) {
|
|
992
985
|
if (canOwn) {
|
|
993
986
|
node.contents = buffer.subarray(offset, offset + length);
|
|
@@ -1035,44 +1028,34 @@ var require_wasm_bindings = __commonJS({
|
|
|
1035
1028
|
var ptr;
|
|
1036
1029
|
var allocated;
|
|
1037
1030
|
var contents = stream.node.contents;
|
|
1038
|
-
if (!(flags & 2) && contents.buffer === HEAP8.buffer) {
|
|
1031
|
+
if (!(flags & 2) && contents && contents.buffer === HEAP8.buffer) {
|
|
1039
1032
|
allocated = false;
|
|
1040
1033
|
ptr = contents.byteOffset;
|
|
1041
1034
|
} else {
|
|
1042
|
-
if (position > 0 || position + length < contents.length) {
|
|
1043
|
-
if (contents.subarray) {
|
|
1044
|
-
contents = contents.subarray(position, position + length);
|
|
1045
|
-
} else {
|
|
1046
|
-
contents = Array.prototype.slice.call(contents, position, position + length);
|
|
1047
|
-
}
|
|
1048
|
-
}
|
|
1049
1035
|
allocated = true;
|
|
1050
1036
|
ptr = mmapAlloc(length);
|
|
1051
1037
|
if (!ptr) {
|
|
1052
1038
|
throw new FS.ErrnoError(48);
|
|
1053
1039
|
}
|
|
1054
|
-
|
|
1040
|
+
if (contents) {
|
|
1041
|
+
if (position > 0 || position + length < contents.length) {
|
|
1042
|
+
if (contents.subarray) {
|
|
1043
|
+
contents = contents.subarray(position, position + length);
|
|
1044
|
+
} else {
|
|
1045
|
+
contents = Array.prototype.slice.call(contents, position, position + length);
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
HEAP8.set(contents, ptr);
|
|
1049
|
+
}
|
|
1055
1050
|
}
|
|
1056
1051
|
return { ptr, allocated };
|
|
1057
1052
|
}, msync(stream, buffer, offset, length, mmapFlags) {
|
|
1058
1053
|
MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);
|
|
1059
1054
|
return 0;
|
|
1060
1055
|
} } };
|
|
1061
|
-
var asyncLoad = (url
|
|
1062
|
-
var
|
|
1063
|
-
|
|
1064
|
-
onload(new Uint8Array(arrayBuffer));
|
|
1065
|
-
if (dep)
|
|
1066
|
-
removeRunDependency(dep);
|
|
1067
|
-
}, (err2) => {
|
|
1068
|
-
if (onerror) {
|
|
1069
|
-
onerror();
|
|
1070
|
-
} else {
|
|
1071
|
-
throw `Loading data file "${url}" failed.`;
|
|
1072
|
-
}
|
|
1073
|
-
});
|
|
1074
|
-
if (dep)
|
|
1075
|
-
addRunDependency(dep);
|
|
1056
|
+
var asyncLoad = async (url) => {
|
|
1057
|
+
var arrayBuffer = await readAsync(url);
|
|
1058
|
+
return new Uint8Array(arrayBuffer);
|
|
1076
1059
|
};
|
|
1077
1060
|
var FS_createDataFile = (parent, name, fileData, canRead, canWrite, canOwn) => {
|
|
1078
1061
|
FS.createDataFile(parent, name, fileData, canRead, canWrite, canOwn);
|
|
@@ -1114,7 +1097,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
1114
1097
|
}
|
|
1115
1098
|
addRunDependency(dep);
|
|
1116
1099
|
if (typeof url == "string") {
|
|
1117
|
-
asyncLoad(url
|
|
1100
|
+
asyncLoad(url).then(processData, onerror);
|
|
1118
1101
|
} else {
|
|
1119
1102
|
processData(url);
|
|
1120
1103
|
}
|
|
@@ -1136,14 +1119,12 @@ var require_wasm_bindings = __commonJS({
|
|
|
1136
1119
|
return mode;
|
|
1137
1120
|
};
|
|
1138
1121
|
var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: class {
|
|
1122
|
+
name = "ErrnoError";
|
|
1139
1123
|
constructor(errno) {
|
|
1140
|
-
this.name = "ErrnoError";
|
|
1141
1124
|
this.errno = errno;
|
|
1142
1125
|
}
|
|
1143
|
-
},
|
|
1144
|
-
|
|
1145
|
-
this.shared = {};
|
|
1146
|
-
}
|
|
1126
|
+
}, filesystems: null, syncFSRequests: 0, readFiles: {}, FSStream: class {
|
|
1127
|
+
shared = {};
|
|
1147
1128
|
get object() {
|
|
1148
1129
|
return this.node;
|
|
1149
1130
|
}
|
|
@@ -1172,21 +1153,22 @@ var require_wasm_bindings = __commonJS({
|
|
|
1172
1153
|
this.shared.position = val;
|
|
1173
1154
|
}
|
|
1174
1155
|
}, FSNode: class {
|
|
1156
|
+
node_ops = {};
|
|
1157
|
+
stream_ops = {};
|
|
1158
|
+
readMode = 292 | 73;
|
|
1159
|
+
writeMode = 146;
|
|
1160
|
+
mounted = null;
|
|
1175
1161
|
constructor(parent, name, mode, rdev) {
|
|
1176
1162
|
if (!parent) {
|
|
1177
1163
|
parent = this;
|
|
1178
1164
|
}
|
|
1179
1165
|
this.parent = parent;
|
|
1180
1166
|
this.mount = parent.mount;
|
|
1181
|
-
this.mounted = null;
|
|
1182
1167
|
this.id = FS.nextInode++;
|
|
1183
1168
|
this.name = name;
|
|
1184
1169
|
this.mode = mode;
|
|
1185
|
-
this.node_ops = {};
|
|
1186
|
-
this.stream_ops = {};
|
|
1187
1170
|
this.rdev = rdev;
|
|
1188
|
-
this.
|
|
1189
|
-
this.writeMode = 146;
|
|
1171
|
+
this.atime = this.mtime = this.ctime = Date.now();
|
|
1190
1172
|
}
|
|
1191
1173
|
get read() {
|
|
1192
1174
|
return (this.mode & this.readMode) === this.readMode;
|
|
@@ -1207,43 +1189,54 @@ var require_wasm_bindings = __commonJS({
|
|
|
1207
1189
|
return FS.isChrdev(this.mode);
|
|
1208
1190
|
}
|
|
1209
1191
|
}, lookupPath(path, opts = {}) {
|
|
1210
|
-
path = PATH_FS.resolve(path);
|
|
1211
1192
|
if (!path)
|
|
1212
1193
|
return { path: "", node: null };
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1194
|
+
opts.follow_mount ??= true;
|
|
1195
|
+
if (!PATH.isAbs(path)) {
|
|
1196
|
+
path = FS.cwd() + "/" + path;
|
|
1197
|
+
}
|
|
1198
|
+
linkloop:
|
|
1199
|
+
for (var nlinks = 0; nlinks < 40; nlinks++) {
|
|
1200
|
+
var parts = path.split("/").filter((p) => !!p && p !== ".");
|
|
1201
|
+
var current = FS.root;
|
|
1202
|
+
var current_path = "/";
|
|
1203
|
+
for (var i = 0; i < parts.length; i++) {
|
|
1204
|
+
var islast = i === parts.length - 1;
|
|
1205
|
+
if (islast && opts.parent) {
|
|
1206
|
+
break;
|
|
1207
|
+
}
|
|
1208
|
+
if (parts[i] === "..") {
|
|
1209
|
+
current_path = PATH.dirname(current_path);
|
|
1210
|
+
current = current.parent;
|
|
1211
|
+
continue;
|
|
1212
|
+
}
|
|
1213
|
+
current_path = PATH.join2(current_path, parts[i]);
|
|
1214
|
+
try {
|
|
1215
|
+
current = FS.lookupNode(current, parts[i]);
|
|
1216
|
+
} catch (e) {
|
|
1217
|
+
if (e?.errno === 44 && islast && opts.noent_okay) {
|
|
1218
|
+
return { path: current_path };
|
|
1219
|
+
}
|
|
1220
|
+
throw e;
|
|
1221
|
+
}
|
|
1222
|
+
if (FS.isMountpoint(current) && (!islast || opts.follow_mount)) {
|
|
1223
|
+
current = current.mounted.root;
|
|
1224
|
+
}
|
|
1225
|
+
if (FS.isLink(current.mode) && (!islast || opts.follow)) {
|
|
1226
|
+
if (!current.node_ops.readlink) {
|
|
1227
|
+
throw new FS.ErrnoError(52);
|
|
1228
|
+
}
|
|
1229
|
+
var link = current.node_ops.readlink(current);
|
|
1230
|
+
if (!PATH.isAbs(link)) {
|
|
1231
|
+
link = PATH.dirname(current_path) + "/" + link;
|
|
1232
|
+
}
|
|
1233
|
+
path = link + "/" + parts.slice(i + 1).join("/");
|
|
1234
|
+
continue linkloop;
|
|
1242
1235
|
}
|
|
1243
1236
|
}
|
|
1237
|
+
return { path: current_path, node: current };
|
|
1244
1238
|
}
|
|
1245
|
-
|
|
1246
|
-
return { path: current_path, node: current };
|
|
1239
|
+
throw new FS.ErrnoError(32);
|
|
1247
1240
|
}, getPath(node) {
|
|
1248
1241
|
var path;
|
|
1249
1242
|
while (true) {
|
|
@@ -1345,6 +1338,9 @@ var require_wasm_bindings = __commonJS({
|
|
|
1345
1338
|
return 2;
|
|
1346
1339
|
return 0;
|
|
1347
1340
|
}, mayCreate(dir, name) {
|
|
1341
|
+
if (!FS.isDir(dir.mode)) {
|
|
1342
|
+
return 54;
|
|
1343
|
+
}
|
|
1348
1344
|
try {
|
|
1349
1345
|
var node = FS.lookupNode(dir, name);
|
|
1350
1346
|
return 20;
|
|
@@ -1532,13 +1528,18 @@ var require_wasm_bindings = __commonJS({
|
|
|
1532
1528
|
throw new FS.ErrnoError(63);
|
|
1533
1529
|
}
|
|
1534
1530
|
return parent.node_ops.mknod(parent, name, mode, dev);
|
|
1535
|
-
},
|
|
1536
|
-
|
|
1531
|
+
}, statfs(path) {
|
|
1532
|
+
var rtn = { bsize: 4096, frsize: 4096, blocks: 1e6, bfree: 5e5, bavail: 5e5, files: FS.nextInode, ffree: FS.nextInode - 1, fsid: 42, flags: 2, namelen: 255 };
|
|
1533
|
+
var parent = FS.lookupPath(path, { follow: true }).node;
|
|
1534
|
+
if (parent?.node_ops.statfs) {
|
|
1535
|
+
Object.assign(rtn, parent.node_ops.statfs(parent.mount.opts.root));
|
|
1536
|
+
}
|
|
1537
|
+
return rtn;
|
|
1538
|
+
}, create(path, mode = 438) {
|
|
1537
1539
|
mode &= 4095;
|
|
1538
1540
|
mode |= 32768;
|
|
1539
1541
|
return FS.mknod(path, mode, 0);
|
|
1540
|
-
}, mkdir(path, mode) {
|
|
1541
|
-
mode = mode !== void 0 ? mode : 511;
|
|
1542
|
+
}, mkdir(path, mode = 511) {
|
|
1542
1543
|
mode &= 511 | 512;
|
|
1543
1544
|
mode |= 16384;
|
|
1544
1545
|
return FS.mknod(path, mode, 0);
|
|
@@ -1696,7 +1697,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
1696
1697
|
if (!link.node_ops.readlink) {
|
|
1697
1698
|
throw new FS.ErrnoError(28);
|
|
1698
1699
|
}
|
|
1699
|
-
return
|
|
1700
|
+
return link.node_ops.readlink(link);
|
|
1700
1701
|
}, stat(path, dontFollow) {
|
|
1701
1702
|
var lookup = FS.lookupPath(path, { follow: !dontFollow });
|
|
1702
1703
|
var node = lookup.node;
|
|
@@ -1720,7 +1721,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
1720
1721
|
if (!node.node_ops.setattr) {
|
|
1721
1722
|
throw new FS.ErrnoError(63);
|
|
1722
1723
|
}
|
|
1723
|
-
node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095,
|
|
1724
|
+
node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, ctime: Date.now() });
|
|
1724
1725
|
}, lchmod(path, mode) {
|
|
1725
1726
|
FS.chmod(path, mode, true);
|
|
1726
1727
|
}, fchmod(fd, mode) {
|
|
@@ -1777,14 +1778,13 @@ var require_wasm_bindings = __commonJS({
|
|
|
1777
1778
|
}, utime(path, atime, mtime) {
|
|
1778
1779
|
var lookup = FS.lookupPath(path, { follow: true });
|
|
1779
1780
|
var node = lookup.node;
|
|
1780
|
-
node.node_ops.setattr(node, {
|
|
1781
|
-
}, open(path, flags, mode) {
|
|
1781
|
+
node.node_ops.setattr(node, { atime, mtime });
|
|
1782
|
+
}, open(path, flags, mode = 438) {
|
|
1782
1783
|
if (path === "") {
|
|
1783
1784
|
throw new FS.ErrnoError(44);
|
|
1784
1785
|
}
|
|
1785
1786
|
flags = typeof flags == "string" ? FS_modeStringToFlags(flags) : flags;
|
|
1786
1787
|
if (flags & 64) {
|
|
1787
|
-
mode = typeof mode == "undefined" ? 438 : mode;
|
|
1788
1788
|
mode = mode & 4095 | 32768;
|
|
1789
1789
|
} else {
|
|
1790
1790
|
mode = 0;
|
|
@@ -1793,12 +1793,9 @@ var require_wasm_bindings = __commonJS({
|
|
|
1793
1793
|
if (typeof path == "object") {
|
|
1794
1794
|
node = path;
|
|
1795
1795
|
} else {
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
node = lookup.node;
|
|
1800
|
-
} catch (e) {
|
|
1801
|
-
}
|
|
1796
|
+
var lookup = FS.lookupPath(path, { follow: !(flags & 131072), noent_okay: true });
|
|
1797
|
+
node = lookup.node;
|
|
1798
|
+
path = lookup.path;
|
|
1802
1799
|
}
|
|
1803
1800
|
var created = false;
|
|
1804
1801
|
if (flags & 64) {
|
|
@@ -1835,8 +1832,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
1835
1832
|
stream.stream_ops.open(stream);
|
|
1836
1833
|
}
|
|
1837
1834
|
if (Module["logReadFiles"] && !(flags & 1)) {
|
|
1838
|
-
if (!FS.readFiles)
|
|
1839
|
-
FS.readFiles = {};
|
|
1840
1835
|
if (!(path in FS.readFiles)) {
|
|
1841
1836
|
FS.readFiles[path] = 1;
|
|
1842
1837
|
}
|
|
@@ -1955,6 +1950,9 @@ var require_wasm_bindings = __commonJS({
|
|
|
1955
1950
|
if (!stream.stream_ops.mmap) {
|
|
1956
1951
|
throw new FS.ErrnoError(43);
|
|
1957
1952
|
}
|
|
1953
|
+
if (!length) {
|
|
1954
|
+
throw new FS.ErrnoError(28);
|
|
1955
|
+
}
|
|
1958
1956
|
return stream.stream_ops.mmap(stream, length, position, prot, flags);
|
|
1959
1957
|
}, msync(stream, buffer, offset, length, mmapFlags) {
|
|
1960
1958
|
if (!stream.stream_ops.msync) {
|
|
@@ -1979,7 +1977,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
1979
1977
|
var buf = new Uint8Array(length);
|
|
1980
1978
|
FS.read(stream, buf, 0, length, 0);
|
|
1981
1979
|
if (opts.encoding === "utf8") {
|
|
1982
|
-
ret = UTF8ArrayToString(buf
|
|
1980
|
+
ret = UTF8ArrayToString(buf);
|
|
1983
1981
|
} else if (opts.encoding === "binary") {
|
|
1984
1982
|
ret = buf;
|
|
1985
1983
|
}
|
|
@@ -2017,7 +2015,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2017
2015
|
FS.mkdir("/home/web_user");
|
|
2018
2016
|
}, createDefaultDevices() {
|
|
2019
2017
|
FS.mkdir("/dev");
|
|
2020
|
-
FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length });
|
|
2018
|
+
FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length, llseek: () => 0 });
|
|
2021
2019
|
FS.mkdev("/dev/null", FS.makedev(1, 3));
|
|
2022
2020
|
TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
|
|
2023
2021
|
TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
|
|
@@ -2039,29 +2037,32 @@ var require_wasm_bindings = __commonJS({
|
|
|
2039
2037
|
var proc_self = FS.mkdir("/proc/self");
|
|
2040
2038
|
FS.mkdir("/proc/self/fd");
|
|
2041
2039
|
FS.mount({ mount() {
|
|
2042
|
-
var node = FS.createNode(proc_self, "fd",
|
|
2040
|
+
var node = FS.createNode(proc_self, "fd", 16895, 73);
|
|
2041
|
+
node.stream_ops = { llseek: MEMFS.stream_ops.llseek };
|
|
2043
2042
|
node.node_ops = { lookup(parent, name) {
|
|
2044
2043
|
var fd = +name;
|
|
2045
2044
|
var stream = FS.getStreamChecked(fd);
|
|
2046
|
-
var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } };
|
|
2045
|
+
var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path }, id: fd + 1 };
|
|
2047
2046
|
ret.parent = ret;
|
|
2048
2047
|
return ret;
|
|
2048
|
+
}, readdir() {
|
|
2049
|
+
return Array.from(FS.streams.entries()).filter(([k, v]) => v).map(([k, v]) => k.toString());
|
|
2049
2050
|
} };
|
|
2050
2051
|
return node;
|
|
2051
2052
|
} }, {}, "/proc/self/fd");
|
|
2052
|
-
}, createStandardStreams() {
|
|
2053
|
-
if (
|
|
2054
|
-
FS.createDevice("/dev", "stdin",
|
|
2053
|
+
}, createStandardStreams(input, output, error) {
|
|
2054
|
+
if (input) {
|
|
2055
|
+
FS.createDevice("/dev", "stdin", input);
|
|
2055
2056
|
} else {
|
|
2056
2057
|
FS.symlink("/dev/tty", "/dev/stdin");
|
|
2057
2058
|
}
|
|
2058
|
-
if (
|
|
2059
|
-
FS.createDevice("/dev", "stdout", null,
|
|
2059
|
+
if (output) {
|
|
2060
|
+
FS.createDevice("/dev", "stdout", null, output);
|
|
2060
2061
|
} else {
|
|
2061
2062
|
FS.symlink("/dev/tty", "/dev/stdout");
|
|
2062
2063
|
}
|
|
2063
|
-
if (
|
|
2064
|
-
FS.createDevice("/dev", "stderr", null,
|
|
2064
|
+
if (error) {
|
|
2065
|
+
FS.createDevice("/dev", "stderr", null, error);
|
|
2065
2066
|
} else {
|
|
2066
2067
|
FS.symlink("/dev/tty1", "/dev/stderr");
|
|
2067
2068
|
}
|
|
@@ -2069,10 +2070,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
2069
2070
|
var stdout = FS.open("/dev/stdout", 1);
|
|
2070
2071
|
var stderr = FS.open("/dev/stderr", 1);
|
|
2071
2072
|
}, staticInit() {
|
|
2072
|
-
[44].forEach((code) => {
|
|
2073
|
-
FS.genericErrors[code] = new FS.ErrnoError(code);
|
|
2074
|
-
FS.genericErrors[code].stack = "<generic error, no stack>";
|
|
2075
|
-
});
|
|
2076
2073
|
FS.nameTable = new Array(4096);
|
|
2077
2074
|
FS.mount(MEMFS, {}, "/");
|
|
2078
2075
|
FS.createDefaultDirectories();
|
|
@@ -2080,13 +2077,13 @@ var require_wasm_bindings = __commonJS({
|
|
|
2080
2077
|
FS.createSpecialDirectories();
|
|
2081
2078
|
FS.filesystems = { MEMFS };
|
|
2082
2079
|
}, init(input, output, error) {
|
|
2083
|
-
FS.
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
FS.createStandardStreams();
|
|
2080
|
+
FS.initialized = true;
|
|
2081
|
+
input ??= Module["stdin"];
|
|
2082
|
+
output ??= Module["stdout"];
|
|
2083
|
+
error ??= Module["stderr"];
|
|
2084
|
+
FS.createStandardStreams(input, output, error);
|
|
2088
2085
|
}, quit() {
|
|
2089
|
-
FS.
|
|
2086
|
+
FS.initialized = false;
|
|
2090
2087
|
for (var i = 0; i < FS.streams.length; i++) {
|
|
2091
2088
|
var stream = FS.streams[i];
|
|
2092
2089
|
if (!stream) {
|
|
@@ -2166,8 +2163,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2166
2163
|
}, createDevice(parent, name, input, output) {
|
|
2167
2164
|
var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name);
|
|
2168
2165
|
var mode = FS_getMode(!!input, !!output);
|
|
2169
|
-
|
|
2170
|
-
FS.createDevice.major = 64;
|
|
2166
|
+
FS.createDevice.major ??= 64;
|
|
2171
2167
|
var dev = FS.makedev(FS.createDevice.major++, 0);
|
|
2172
2168
|
FS.registerDevice(dev, { open(stream) {
|
|
2173
2169
|
stream.seekable = false;
|
|
@@ -2193,7 +2189,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2193
2189
|
buffer[offset + i] = result;
|
|
2194
2190
|
}
|
|
2195
2191
|
if (bytesRead) {
|
|
2196
|
-
stream.node.
|
|
2192
|
+
stream.node.atime = Date.now();
|
|
2197
2193
|
}
|
|
2198
2194
|
return bytesRead;
|
|
2199
2195
|
}, write(stream, buffer, offset, length, pos) {
|
|
@@ -2205,7 +2201,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2205
2201
|
}
|
|
2206
2202
|
}
|
|
2207
2203
|
if (length) {
|
|
2208
|
-
stream.node.
|
|
2204
|
+
stream.node.mtime = stream.node.ctime = Date.now();
|
|
2209
2205
|
}
|
|
2210
2206
|
return i;
|
|
2211
2207
|
} });
|
|
@@ -2225,10 +2221,8 @@ var require_wasm_bindings = __commonJS({
|
|
|
2225
2221
|
}
|
|
2226
2222
|
}, createLazyFile(parent, name, url, canRead, canWrite) {
|
|
2227
2223
|
class LazyUint8Array {
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
this.chunks = [];
|
|
2231
|
-
}
|
|
2224
|
+
lengthKnown = false;
|
|
2225
|
+
chunks = [];
|
|
2232
2226
|
get(idx) {
|
|
2233
2227
|
if (idx > this.length - 1 || idx < 0) {
|
|
2234
2228
|
return void 0;
|
|
@@ -2386,7 +2380,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2386
2380
|
}
|
|
2387
2381
|
return dir;
|
|
2388
2382
|
}
|
|
2389
|
-
return
|
|
2383
|
+
return dir + "/" + path;
|
|
2390
2384
|
}, doStat(func, path, buf) {
|
|
2391
2385
|
var stat = func(path);
|
|
2392
2386
|
HEAP32[buf >> 2] = stat.dev;
|
|
@@ -2402,11 +2396,11 @@ var require_wasm_bindings = __commonJS({
|
|
|
2402
2396
|
var mtime = stat.mtime.getTime();
|
|
2403
2397
|
var ctime = stat.ctime.getTime();
|
|
2404
2398
|
tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >> 2] = tempI64[0], HEAP32[buf + 44 >> 2] = tempI64[1];
|
|
2405
|
-
HEAPU32[buf + 48 >> 2] = atime % 1e3 * 1e3;
|
|
2399
|
+
HEAPU32[buf + 48 >> 2] = atime % 1e3 * 1e3 * 1e3;
|
|
2406
2400
|
tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 56 >> 2] = tempI64[0], HEAP32[buf + 60 >> 2] = tempI64[1];
|
|
2407
|
-
HEAPU32[buf + 64 >> 2] = mtime % 1e3 * 1e3;
|
|
2401
|
+
HEAPU32[buf + 64 >> 2] = mtime % 1e3 * 1e3 * 1e3;
|
|
2408
2402
|
tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 72 >> 2] = tempI64[0], HEAP32[buf + 76 >> 2] = tempI64[1];
|
|
2409
|
-
HEAPU32[buf + 80 >> 2] = ctime % 1e3 * 1e3;
|
|
2403
|
+
HEAPU32[buf + 80 >> 2] = ctime % 1e3 * 1e3 * 1e3;
|
|
2410
2404
|
tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 88 >> 2] = tempI64[0], HEAP32[buf + 92 >> 2] = tempI64[1];
|
|
2411
2405
|
return 0;
|
|
2412
2406
|
}, doMsync(addr, stream, len, flags, offset) {
|
|
@@ -2425,6 +2419,41 @@ var require_wasm_bindings = __commonJS({
|
|
|
2425
2419
|
var ret = UTF8ToString(ptr);
|
|
2426
2420
|
return ret;
|
|
2427
2421
|
} };
|
|
2422
|
+
function ___syscall_faccessat(dirfd, path, amode, flags) {
|
|
2423
|
+
try {
|
|
2424
|
+
path = SYSCALLS.getStr(path);
|
|
2425
|
+
path = SYSCALLS.calculateAt(dirfd, path);
|
|
2426
|
+
if (amode & ~7) {
|
|
2427
|
+
return -28;
|
|
2428
|
+
}
|
|
2429
|
+
var lookup = FS.lookupPath(path, { follow: true });
|
|
2430
|
+
var node = lookup.node;
|
|
2431
|
+
if (!node) {
|
|
2432
|
+
return -44;
|
|
2433
|
+
}
|
|
2434
|
+
var perms = "";
|
|
2435
|
+
if (amode & 4)
|
|
2436
|
+
perms += "r";
|
|
2437
|
+
if (amode & 2)
|
|
2438
|
+
perms += "w";
|
|
2439
|
+
if (amode & 1)
|
|
2440
|
+
perms += "x";
|
|
2441
|
+
if (perms && FS.nodePermissions(node, perms)) {
|
|
2442
|
+
return -2;
|
|
2443
|
+
}
|
|
2444
|
+
return 0;
|
|
2445
|
+
} catch (e) {
|
|
2446
|
+
if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
|
|
2447
|
+
throw e;
|
|
2448
|
+
return -e.errno;
|
|
2449
|
+
}
|
|
2450
|
+
}
|
|
2451
|
+
var syscallGetVarargI = () => {
|
|
2452
|
+
var ret = HEAP32[+SYSCALLS.varargs >> 2];
|
|
2453
|
+
SYSCALLS.varargs += 4;
|
|
2454
|
+
return ret;
|
|
2455
|
+
};
|
|
2456
|
+
var syscallGetVarargP = syscallGetVarargI;
|
|
2428
2457
|
function ___syscall_fcntl64(fd, cmd, varargs) {
|
|
2429
2458
|
SYSCALLS.varargs = varargs;
|
|
2430
2459
|
try {
|
|
@@ -2469,6 +2498,16 @@ var require_wasm_bindings = __commonJS({
|
|
|
2469
2498
|
return -e.errno;
|
|
2470
2499
|
}
|
|
2471
2500
|
}
|
|
2501
|
+
function ___syscall_fstat64(fd, buf) {
|
|
2502
|
+
try {
|
|
2503
|
+
var stream = SYSCALLS.getStreamFromFD(fd);
|
|
2504
|
+
return SYSCALLS.doStat(FS.stat, stream.path, buf);
|
|
2505
|
+
} catch (e) {
|
|
2506
|
+
if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
|
|
2507
|
+
throw e;
|
|
2508
|
+
return -e.errno;
|
|
2509
|
+
}
|
|
2510
|
+
}
|
|
2472
2511
|
var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
|
|
2473
2512
|
function ___syscall_getcwd(buf, size) {
|
|
2474
2513
|
try {
|
|
@@ -2585,13 +2624,20 @@ var require_wasm_bindings = __commonJS({
|
|
|
2585
2624
|
return -e.errno;
|
|
2586
2625
|
}
|
|
2587
2626
|
}
|
|
2627
|
+
function ___syscall_lstat64(path, buf) {
|
|
2628
|
+
try {
|
|
2629
|
+
path = SYSCALLS.getStr(path);
|
|
2630
|
+
return SYSCALLS.doStat(FS.lstat, path, buf);
|
|
2631
|
+
} catch (e) {
|
|
2632
|
+
if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
|
|
2633
|
+
throw e;
|
|
2634
|
+
return -e.errno;
|
|
2635
|
+
}
|
|
2636
|
+
}
|
|
2588
2637
|
function ___syscall_mkdirat(dirfd, path, mode) {
|
|
2589
2638
|
try {
|
|
2590
2639
|
path = SYSCALLS.getStr(path);
|
|
2591
2640
|
path = SYSCALLS.calculateAt(dirfd, path);
|
|
2592
|
-
path = PATH.normalize(path);
|
|
2593
|
-
if (path[path.length - 1] === "/")
|
|
2594
|
-
path = path.substr(0, path.length - 1);
|
|
2595
2641
|
FS.mkdir(path, mode, 0);
|
|
2596
2642
|
return 0;
|
|
2597
2643
|
} catch (e) {
|
|
@@ -2600,6 +2646,20 @@ var require_wasm_bindings = __commonJS({
|
|
|
2600
2646
|
return -e.errno;
|
|
2601
2647
|
}
|
|
2602
2648
|
}
|
|
2649
|
+
function ___syscall_newfstatat(dirfd, path, buf, flags) {
|
|
2650
|
+
try {
|
|
2651
|
+
path = SYSCALLS.getStr(path);
|
|
2652
|
+
var nofollow = flags & 256;
|
|
2653
|
+
var allowEmpty = flags & 4096;
|
|
2654
|
+
flags = flags & ~6400;
|
|
2655
|
+
path = SYSCALLS.calculateAt(dirfd, path, allowEmpty);
|
|
2656
|
+
return SYSCALLS.doStat(nofollow ? FS.lstat : FS.stat, path, buf);
|
|
2657
|
+
} catch (e) {
|
|
2658
|
+
if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
|
|
2659
|
+
throw e;
|
|
2660
|
+
return -e.errno;
|
|
2661
|
+
}
|
|
2662
|
+
}
|
|
2603
2663
|
function ___syscall_openat(dirfd, path, flags, varargs) {
|
|
2604
2664
|
SYSCALLS.varargs = varargs;
|
|
2605
2665
|
try {
|
|
@@ -2641,9 +2701,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2641
2701
|
return -e.errno;
|
|
2642
2702
|
}
|
|
2643
2703
|
}
|
|
2644
|
-
var __abort_js = () =>
|
|
2645
|
-
abort("");
|
|
2646
|
-
};
|
|
2704
|
+
var __abort_js = () => abort("");
|
|
2647
2705
|
var __embind_register_bigint = (primitiveType, name, size, minRange, maxRange) => {
|
|
2648
2706
|
};
|
|
2649
2707
|
var embind_init_charCodes = () => {
|
|
@@ -2674,9 +2732,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2674
2732
|
throw new InternalError(message);
|
|
2675
2733
|
};
|
|
2676
2734
|
var whenDependentTypesAreResolved = (myTypes, dependentTypes, getTypeConverters) => {
|
|
2677
|
-
myTypes.forEach(
|
|
2678
|
-
typeDependencies[type] = dependentTypes;
|
|
2679
|
-
});
|
|
2735
|
+
myTypes.forEach((type) => typeDependencies[type] = dependentTypes);
|
|
2680
2736
|
function onComplete(typeConverters2) {
|
|
2681
2737
|
var myTypeConverters = getTypeConverters(typeConverters2);
|
|
2682
2738
|
if (myTypeConverters.length !== myTypes.length) {
|
|
@@ -2731,9 +2787,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
2731
2787
|
}
|
|
2732
2788
|
}
|
|
2733
2789
|
function registerType(rawType, registeredInstance, options = {}) {
|
|
2734
|
-
if (!("argPackAdvance" in registeredInstance)) {
|
|
2735
|
-
throw new TypeError("registerType registeredInstance requires argPackAdvance");
|
|
2736
|
-
}
|
|
2737
2790
|
return sharedRegisterType(rawType, registeredInstance, options);
|
|
2738
2791
|
}
|
|
2739
2792
|
var GenericWireTypeSize = 8;
|
|
@@ -2785,37 +2838,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
2785
2838
|
return desiredClass.downcast(rv);
|
|
2786
2839
|
};
|
|
2787
2840
|
var registeredPointers = {};
|
|
2788
|
-
var getInheritedInstanceCount = () => Object.keys(registeredInstances).length;
|
|
2789
|
-
var getLiveInheritedInstances = () => {
|
|
2790
|
-
var rv = [];
|
|
2791
|
-
for (var k in registeredInstances) {
|
|
2792
|
-
if (registeredInstances.hasOwnProperty(k)) {
|
|
2793
|
-
rv.push(registeredInstances[k]);
|
|
2794
|
-
}
|
|
2795
|
-
}
|
|
2796
|
-
return rv;
|
|
2797
|
-
};
|
|
2798
|
-
var deletionQueue = [];
|
|
2799
|
-
var flushPendingDeletes = () => {
|
|
2800
|
-
while (deletionQueue.length) {
|
|
2801
|
-
var obj = deletionQueue.pop();
|
|
2802
|
-
obj.$$.deleteScheduled = false;
|
|
2803
|
-
obj["delete"]();
|
|
2804
|
-
}
|
|
2805
|
-
};
|
|
2806
|
-
var delayFunction;
|
|
2807
|
-
var setDelayFunction = (fn) => {
|
|
2808
|
-
delayFunction = fn;
|
|
2809
|
-
if (deletionQueue.length && delayFunction) {
|
|
2810
|
-
delayFunction(flushPendingDeletes);
|
|
2811
|
-
}
|
|
2812
|
-
};
|
|
2813
|
-
var init_embind = () => {
|
|
2814
|
-
Module["getInheritedInstanceCount"] = getInheritedInstanceCount;
|
|
2815
|
-
Module["getLiveInheritedInstances"] = getLiveInheritedInstances;
|
|
2816
|
-
Module["flushPendingDeletes"] = flushPendingDeletes;
|
|
2817
|
-
Module["setDelayFunction"] = setDelayFunction;
|
|
2818
|
-
};
|
|
2819
2841
|
var registeredInstances = {};
|
|
2820
2842
|
var getBasestPointer = (class_, ptr) => {
|
|
2821
2843
|
if (ptr === void 0) {
|
|
@@ -2909,6 +2931,15 @@ var require_wasm_bindings = __commonJS({
|
|
|
2909
2931
|
detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2);
|
|
2910
2932
|
return attachFinalizer(handle);
|
|
2911
2933
|
};
|
|
2934
|
+
var deletionQueue = [];
|
|
2935
|
+
var flushPendingDeletes = () => {
|
|
2936
|
+
while (deletionQueue.length) {
|
|
2937
|
+
var obj = deletionQueue.pop();
|
|
2938
|
+
obj.$$.deleteScheduled = false;
|
|
2939
|
+
obj["delete"]();
|
|
2940
|
+
}
|
|
2941
|
+
};
|
|
2942
|
+
var delayFunction;
|
|
2912
2943
|
var init_ClassHandle = () => {
|
|
2913
2944
|
Object.assign(ClassHandle.prototype, { isAliasOf(other) {
|
|
2914
2945
|
if (!(this instanceof ClassHandle)) {
|
|
@@ -2996,23 +3027,18 @@ var require_wasm_bindings = __commonJS({
|
|
|
2996
3027
|
throwBindingError(`Cannot register public name '${name}' twice`);
|
|
2997
3028
|
}
|
|
2998
3029
|
ensureOverloadTable(Module, name, name);
|
|
2999
|
-
if (Module.hasOwnProperty(numArguments)) {
|
|
3030
|
+
if (Module[name].overloadTable.hasOwnProperty(numArguments)) {
|
|
3000
3031
|
throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`);
|
|
3001
3032
|
}
|
|
3002
3033
|
Module[name].overloadTable[numArguments] = value;
|
|
3003
3034
|
} else {
|
|
3004
3035
|
Module[name] = value;
|
|
3005
|
-
|
|
3006
|
-
Module[name].numArguments = numArguments;
|
|
3007
|
-
}
|
|
3036
|
+
Module[name].argCount = numArguments;
|
|
3008
3037
|
}
|
|
3009
3038
|
};
|
|
3010
3039
|
var char_0 = 48;
|
|
3011
3040
|
var char_9 = 57;
|
|
3012
3041
|
var makeLegalFunctionName = (name) => {
|
|
3013
|
-
if (void 0 === name) {
|
|
3014
|
-
return "_unknown";
|
|
3015
|
-
}
|
|
3016
3042
|
name = name.replace(/[^a-zA-Z0-9_]/g, "$");
|
|
3017
3043
|
var f = name.charCodeAt(0);
|
|
3018
3044
|
if (f >= char_0 && f <= char_9) {
|
|
@@ -3273,15 +3299,14 @@ var require_wasm_bindings = __commonJS({
|
|
|
3273
3299
|
var __embind_register_class = (rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) => {
|
|
3274
3300
|
name = readLatin1String(name);
|
|
3275
3301
|
getActualType = embind__requireFunction(getActualTypeSignature, getActualType);
|
|
3276
|
-
upcast
|
|
3277
|
-
downcast
|
|
3302
|
+
upcast &&= embind__requireFunction(upcastSignature, upcast);
|
|
3303
|
+
downcast &&= embind__requireFunction(downcastSignature, downcast);
|
|
3278
3304
|
rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);
|
|
3279
3305
|
var legalFunctionName = makeLegalFunctionName(name);
|
|
3280
3306
|
exposePublicSymbol(legalFunctionName, function() {
|
|
3281
3307
|
throwUnboundTypeError(`Cannot construct ${name} due to unbound types`, [baseClassRawType]);
|
|
3282
3308
|
});
|
|
3283
3309
|
whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], (base) => {
|
|
3284
|
-
var _a;
|
|
3285
3310
|
base = base[0];
|
|
3286
3311
|
var baseClass;
|
|
3287
3312
|
var basePrototype;
|
|
@@ -3308,7 +3333,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3308
3333
|
constructor.prototype = instancePrototype;
|
|
3309
3334
|
var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);
|
|
3310
3335
|
if (registeredClass.baseClass) {
|
|
3311
|
-
|
|
3336
|
+
registeredClass.baseClass.__derivedClasses ??= [];
|
|
3312
3337
|
registeredClass.baseClass.__derivedClasses.push(registeredClass);
|
|
3313
3338
|
}
|
|
3314
3339
|
var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);
|
|
@@ -3347,9 +3372,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
3347
3372
|
var invokerFuncArgs = [];
|
|
3348
3373
|
var destructors = [];
|
|
3349
3374
|
var invokerFn = function(...args) {
|
|
3350
|
-
if (args.length !== expectedArgCount) {
|
|
3351
|
-
throwBindingError(`function ${humanName} called with ${args.length} arguments, expected ${expectedArgCount}`);
|
|
3352
|
-
}
|
|
3353
3375
|
destructors.length = 0;
|
|
3354
3376
|
var thisWired;
|
|
3355
3377
|
invokerFuncArgs.length = isClassMethodFunc ? 2 : 1;
|
|
@@ -3398,7 +3420,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3398
3420
|
return signature;
|
|
3399
3421
|
}
|
|
3400
3422
|
};
|
|
3401
|
-
var __embind_register_class_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, fn, isAsync) => {
|
|
3423
|
+
var __embind_register_class_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, fn, isAsync, isNonnullReturn) => {
|
|
3402
3424
|
var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
|
|
3403
3425
|
methodName = readLatin1String(methodName);
|
|
3404
3426
|
methodName = getFunctionName(methodName);
|
|
@@ -3464,7 +3486,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3464
3486
|
return [];
|
|
3465
3487
|
});
|
|
3466
3488
|
};
|
|
3467
|
-
var __embind_register_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync) => {
|
|
3489
|
+
var __embind_register_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync, isNonnullReturn) => {
|
|
3468
3490
|
var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
|
|
3469
3491
|
methodName = readLatin1String(methodName);
|
|
3470
3492
|
methodName = getFunctionName(methodName);
|
|
@@ -3624,7 +3646,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3624
3646
|
name = readLatin1String(name);
|
|
3625
3647
|
registerType(rawType, { name, fromWireType: (value) => value, toWireType: (destructors, value) => value, argPackAdvance: GenericWireTypeSize, readValueFromPointer: floatReadValueFromPointer(name, size), destructorFunction: null });
|
|
3626
3648
|
};
|
|
3627
|
-
var __embind_register_function = (name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync) => {
|
|
3649
|
+
var __embind_register_function = (name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync, isNonnullReturn) => {
|
|
3628
3650
|
var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
|
|
3629
3651
|
name = readLatin1String(name);
|
|
3630
3652
|
name = getFunctionName(name);
|
|
@@ -3688,8 +3710,9 @@ var require_wasm_bindings = __commonJS({
|
|
|
3688
3710
|
name = readLatin1String(name);
|
|
3689
3711
|
registerType(rawType, { name, fromWireType: decodeMemoryView, argPackAdvance: GenericWireTypeSize, readValueFromPointer: decodeMemoryView }, { ignoreDuplicateRegistrations: true });
|
|
3690
3712
|
};
|
|
3713
|
+
var EmValOptionalType = Object.assign({ optional: true }, EmValType);
|
|
3691
3714
|
var __embind_register_optional = (rawOptionalType, rawType) => {
|
|
3692
|
-
|
|
3715
|
+
registerType(rawOptionalType, EmValOptionalType);
|
|
3693
3716
|
};
|
|
3694
3717
|
var __embind_register_smart_ptr = (rawType, rawPointeeType, name, sharingPolicy, getPointeeSignature, rawGetPointee, constructorSignature, rawConstructor, shareSignature, rawShare, destructorSignature, rawDestructor) => {
|
|
3695
3718
|
name = readLatin1String(name);
|
|
@@ -3705,7 +3728,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3705
3728
|
};
|
|
3706
3729
|
var __embind_register_std_string = (rawType, name) => {
|
|
3707
3730
|
name = readLatin1String(name);
|
|
3708
|
-
var stdStringIsUTF8 =
|
|
3731
|
+
var stdStringIsUTF8 = true;
|
|
3709
3732
|
registerType(rawType, { name, fromWireType(value) {
|
|
3710
3733
|
var length = HEAPU32[value >> 2];
|
|
3711
3734
|
var payload = value + 4;
|
|
@@ -3798,7 +3821,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3798
3821
|
return str;
|
|
3799
3822
|
};
|
|
3800
3823
|
var stringToUTF16 = (str, outPtr, maxBytesToWrite) => {
|
|
3801
|
-
maxBytesToWrite
|
|
3824
|
+
maxBytesToWrite ??= 2147483647;
|
|
3802
3825
|
if (maxBytesToWrite < 2)
|
|
3803
3826
|
return 0;
|
|
3804
3827
|
maxBytesToWrite -= 2;
|
|
@@ -3831,7 +3854,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3831
3854
|
return str;
|
|
3832
3855
|
};
|
|
3833
3856
|
var stringToUTF32 = (str, outPtr, maxBytesToWrite) => {
|
|
3834
|
-
maxBytesToWrite
|
|
3857
|
+
maxBytesToWrite ??= 2147483647;
|
|
3835
3858
|
if (maxBytesToWrite < 4)
|
|
3836
3859
|
return 0;
|
|
3837
3860
|
var startPtr = outPtr;
|
|
@@ -3914,8 +3937,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
3914
3937
|
name = readLatin1String(name);
|
|
3915
3938
|
registerType(rawType, { isVoid: true, name, argPackAdvance: 0, fromWireType: () => void 0, toWireType: (destructors, o) => void 0 });
|
|
3916
3939
|
};
|
|
3917
|
-
var nowIsMonotonic = 1;
|
|
3918
|
-
var __emscripten_get_now_is_monotonic = () => nowIsMonotonic;
|
|
3919
3940
|
var __emscripten_memcpy_js = (dest, src, num) => HEAPU8.copyWithin(dest, src, src + num);
|
|
3920
3941
|
var emval_methodCallers = [];
|
|
3921
3942
|
var __emval_call = (caller, handle, destructorsRef, args) => {
|
|
@@ -3960,7 +3981,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3960
3981
|
var offset = 0;
|
|
3961
3982
|
for (var i = 0; i < argCount; ++i) {
|
|
3962
3983
|
argN[i] = types[i]["readValueFromPointer"](args + offset);
|
|
3963
|
-
offset += types[i]
|
|
3984
|
+
offset += types[i].argPackAdvance;
|
|
3964
3985
|
}
|
|
3965
3986
|
var rv = kind === 1 ? reflectConstruct(func, argN) : func.apply(obj, argN);
|
|
3966
3987
|
return emval_returnValue(retType, destructorsRef, rv);
|
|
@@ -4065,9 +4086,15 @@ var require_wasm_bindings = __commonJS({
|
|
|
4065
4086
|
var stdTimezoneOffset = Math.max(winterOffset, summerOffset);
|
|
4066
4087
|
HEAPU32[timezone >> 2] = stdTimezoneOffset * 60;
|
|
4067
4088
|
HEAP32[daylight >> 2] = Number(winterOffset != summerOffset);
|
|
4068
|
-
var extractZone = (
|
|
4069
|
-
|
|
4070
|
-
|
|
4089
|
+
var extractZone = (timezoneOffset) => {
|
|
4090
|
+
var sign = timezoneOffset >= 0 ? "-" : "+";
|
|
4091
|
+
var absOffset = Math.abs(timezoneOffset);
|
|
4092
|
+
var hours = String(Math.floor(absOffset / 60)).padStart(2, "0");
|
|
4093
|
+
var minutes = String(absOffset % 60).padStart(2, "0");
|
|
4094
|
+
return `UTC${sign}${hours}${minutes}`;
|
|
4095
|
+
};
|
|
4096
|
+
var winterName = extractZone(winterOffset);
|
|
4097
|
+
var summerName = extractZone(summerOffset);
|
|
4071
4098
|
if (summerOffset < winterOffset) {
|
|
4072
4099
|
stringToUTF8(winterName, std_name, 17);
|
|
4073
4100
|
stringToUTF8(summerName, dst_name, 17);
|
|
@@ -4076,14 +4103,32 @@ var require_wasm_bindings = __commonJS({
|
|
|
4076
4103
|
stringToUTF8(summerName, std_name, 17);
|
|
4077
4104
|
}
|
|
4078
4105
|
};
|
|
4106
|
+
var _emscripten_get_now = () => performance.now();
|
|
4079
4107
|
var _emscripten_date_now = () => Date.now();
|
|
4108
|
+
var nowIsMonotonic = 1;
|
|
4109
|
+
var checkWasiClock = (clock_id) => clock_id >= 0 && clock_id <= 3;
|
|
4110
|
+
function _clock_time_get(clk_id, ignored_precision_low, ignored_precision_high, ptime) {
|
|
4111
|
+
var ignored_precision = convertI32PairToI53Checked(ignored_precision_low, ignored_precision_high);
|
|
4112
|
+
if (!checkWasiClock(clk_id)) {
|
|
4113
|
+
return 28;
|
|
4114
|
+
}
|
|
4115
|
+
var now;
|
|
4116
|
+
if (clk_id === 0) {
|
|
4117
|
+
now = _emscripten_date_now();
|
|
4118
|
+
} else if (nowIsMonotonic) {
|
|
4119
|
+
now = _emscripten_get_now();
|
|
4120
|
+
} else {
|
|
4121
|
+
return 52;
|
|
4122
|
+
}
|
|
4123
|
+
var nsec = Math.round(now * 1e3 * 1e3);
|
|
4124
|
+
tempI64 = [nsec >>> 0, (tempDouble = nsec, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptime >> 2] = tempI64[0], HEAP32[ptime + 4 >> 2] = tempI64[1];
|
|
4125
|
+
return 0;
|
|
4126
|
+
}
|
|
4080
4127
|
var getHeapMax = () => 2147483648;
|
|
4081
4128
|
var _emscripten_get_heap_max = () => getHeapMax();
|
|
4082
|
-
var _emscripten_get_now;
|
|
4083
|
-
_emscripten_get_now = () => performance.now();
|
|
4084
4129
|
var growMemory = (size) => {
|
|
4085
4130
|
var b = wasmMemory.buffer;
|
|
4086
|
-
var pages = (size - b.byteLength + 65535) / 65536;
|
|
4131
|
+
var pages = (size - b.byteLength + 65535) / 65536 | 0;
|
|
4087
4132
|
try {
|
|
4088
4133
|
wasmMemory.grow(pages);
|
|
4089
4134
|
updateMemoryViews();
|
|
@@ -4098,11 +4143,10 @@ var require_wasm_bindings = __commonJS({
|
|
|
4098
4143
|
if (requestedSize > maxHeapSize) {
|
|
4099
4144
|
return false;
|
|
4100
4145
|
}
|
|
4101
|
-
var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;
|
|
4102
4146
|
for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
|
|
4103
4147
|
var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);
|
|
4104
4148
|
overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
|
|
4105
|
-
var newSize = Math.min(maxHeapSize,
|
|
4149
|
+
var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));
|
|
4106
4150
|
var replacement = growMemory(newSize);
|
|
4107
4151
|
if (replacement) {
|
|
4108
4152
|
return true;
|
|
@@ -4257,6 +4301,9 @@ var require_wasm_bindings = __commonJS({
|
|
|
4257
4301
|
if (curr < 0)
|
|
4258
4302
|
return -1;
|
|
4259
4303
|
ret += curr;
|
|
4304
|
+
if (curr < len) {
|
|
4305
|
+
break;
|
|
4306
|
+
}
|
|
4260
4307
|
if (typeof offset != "undefined") {
|
|
4261
4308
|
offset += curr;
|
|
4262
4309
|
}
|
|
@@ -4275,6 +4322,16 @@ var require_wasm_bindings = __commonJS({
|
|
|
4275
4322
|
return e.errno;
|
|
4276
4323
|
}
|
|
4277
4324
|
}
|
|
4325
|
+
function _random_get(buffer, size) {
|
|
4326
|
+
try {
|
|
4327
|
+
randomFill(HEAPU8.subarray(buffer, buffer + size));
|
|
4328
|
+
return 0;
|
|
4329
|
+
} catch (e) {
|
|
4330
|
+
if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
|
|
4331
|
+
throw e;
|
|
4332
|
+
return e.errno;
|
|
4333
|
+
}
|
|
4334
|
+
}
|
|
4278
4335
|
var FS_createPath = FS.createPath;
|
|
4279
4336
|
var FS_unlink = (path) => FS.unlink(path);
|
|
4280
4337
|
var FS_createLazyFile = FS.createLazyFile;
|
|
@@ -4287,6 +4344,8 @@ var require_wasm_bindings = __commonJS({
|
|
|
4287
4344
|
Module["FS_unlink"] = FS.unlink;
|
|
4288
4345
|
Module["FS_createLazyFile"] = FS.createLazyFile;
|
|
4289
4346
|
Module["FS_createDevice"] = FS.createDevice;
|
|
4347
|
+
MEMFS.doesNotExistError = new FS.ErrnoError(44);
|
|
4348
|
+
MEMFS.doesNotExistError.stack = "<generic error, no stack>";
|
|
4290
4349
|
embind_init_charCodes();
|
|
4291
4350
|
BindingError = Module["BindingError"] = class BindingError extends Error {
|
|
4292
4351
|
constructor(message) {
|
|
@@ -4301,28 +4360,30 @@ var require_wasm_bindings = __commonJS({
|
|
|
4301
4360
|
}
|
|
4302
4361
|
};
|
|
4303
4362
|
init_ClassHandle();
|
|
4304
|
-
init_embind();
|
|
4305
4363
|
init_RegisteredPointer();
|
|
4306
4364
|
UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError");
|
|
4307
4365
|
init_emval();
|
|
4308
|
-
var wasmImports = { a: ___cxa_throw,
|
|
4309
|
-
var wasmExports
|
|
4310
|
-
|
|
4311
|
-
var
|
|
4312
|
-
var
|
|
4313
|
-
var
|
|
4314
|
-
var
|
|
4315
|
-
var
|
|
4316
|
-
var
|
|
4317
|
-
var
|
|
4318
|
-
var
|
|
4319
|
-
var
|
|
4320
|
-
var
|
|
4321
|
-
var
|
|
4322
|
-
var
|
|
4323
|
-
var
|
|
4324
|
-
var
|
|
4325
|
-
var
|
|
4366
|
+
var wasmImports = { a: ___cxa_throw, V: ___syscall_faccessat, s: ___syscall_fcntl64, Q: ___syscall_fstat64, M: ___syscall_getcwd, S: ___syscall_ioctl, N: ___syscall_lstat64, I: ___syscall_mkdirat, O: ___syscall_newfstatat, t: ___syscall_openat, G: ___syscall_readlinkat, P: ___syscall_stat64, W: __abort_js, C: __embind_register_bigint, $: __embind_register_bool, e: __embind_register_class, m: __embind_register_class_class_function, r: __embind_register_class_constructor, g: __embind_register_class_function, p: __embind_register_class_property, Z: __embind_register_emval, u: __embind_register_float, h: __embind_register_function, d: __embind_register_integer, b: __embind_register_memory_view, v: __embind_register_optional, k: __embind_register_smart_ptr, _: __embind_register_std_string, o: __embind_register_std_wstring, aa: __embind_register_void, U: __emscripten_memcpy_js, ca: __emval_call, c: __emval_decref, da: __emval_get_method_caller, q: __emval_incref, ba: __emval_run_destructors, i: __emval_take_value, z: __gmtime_js, A: __localtime_js, x: __mmap_js, y: __munmap_js, H: __tzset_js, w: _clock_time_get, T: _emscripten_date_now, F: _emscripten_get_heap_max, j: _emscripten_get_now, E: _emscripten_resize_heap, K: _environ_get, L: _environ_sizes_get, f: _exit, n: _fd_close, J: _fd_fdstat_get, R: _fd_read, B: _fd_seek, l: _fd_write, X: hardware_concurrency, D: _random_get, Y: xnnLoadWasmModuleJS };
|
|
4367
|
+
var wasmExports;
|
|
4368
|
+
createWasm();
|
|
4369
|
+
var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports["fa"])();
|
|
4370
|
+
var ___getTypeName = (a0) => (___getTypeName = wasmExports["ga"])(a0);
|
|
4371
|
+
var _malloc = (a0) => (_malloc = wasmExports["ia"])(a0);
|
|
4372
|
+
var _free = (a0) => (_free = wasmExports["ja"])(a0);
|
|
4373
|
+
var _emscripten_builtin_memalign = (a0, a1) => (_emscripten_builtin_memalign = wasmExports["ka"])(a0, a1);
|
|
4374
|
+
var dynCall_iiiijj = Module["dynCall_iiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7) => (dynCall_iiiijj = Module["dynCall_iiiijj"] = wasmExports["la"])(a0, a1, a2, a3, a4, a5, a6, a7);
|
|
4375
|
+
var dynCall_viijj = Module["dynCall_viijj"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijj = Module["dynCall_viijj"] = wasmExports["ma"])(a0, a1, a2, a3, a4, a5, a6);
|
|
4376
|
+
var dynCall_viiijjj = Module["dynCall_viiijjj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (dynCall_viiijjj = Module["dynCall_viiijjj"] = wasmExports["na"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
|
|
4377
|
+
var dynCall_jjj = Module["dynCall_jjj"] = (a0, a1, a2, a3, a4) => (dynCall_jjj = Module["dynCall_jjj"] = wasmExports["oa"])(a0, a1, a2, a3, a4);
|
|
4378
|
+
var dynCall_viijji = Module["dynCall_viijji"] = (a0, a1, a2, a3, a4, a5, a6, a7) => (dynCall_viijji = Module["dynCall_viijji"] = wasmExports["pa"])(a0, a1, a2, a3, a4, a5, a6, a7);
|
|
4379
|
+
var dynCall_iiijj = Module["dynCall_iiijj"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_iiijj = Module["dynCall_iiijj"] = wasmExports["qa"])(a0, a1, a2, a3, a4, a5, a6);
|
|
4380
|
+
var dynCall_viijjj = Module["dynCall_viijjj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (dynCall_viijjj = Module["dynCall_viijjj"] = wasmExports["ra"])(a0, a1, a2, a3, a4, a5, a6, a7, a8);
|
|
4381
|
+
var dynCall_iji = Module["dynCall_iji"] = (a0, a1, a2, a3) => (dynCall_iji = Module["dynCall_iji"] = wasmExports["sa"])(a0, a1, a2, a3);
|
|
4382
|
+
var dynCall_jiji = Module["dynCall_jiji"] = (a0, a1, a2, a3, a4) => (dynCall_jiji = Module["dynCall_jiji"] = wasmExports["ta"])(a0, a1, a2, a3, a4);
|
|
4383
|
+
var dynCall_viijii = Module["dynCall_viijii"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijii = Module["dynCall_viijii"] = wasmExports["ua"])(a0, a1, a2, a3, a4, a5, a6);
|
|
4384
|
+
var dynCall_iiiiij = Module["dynCall_iiiiij"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_iiiiij = Module["dynCall_iiiiij"] = wasmExports["va"])(a0, a1, a2, a3, a4, a5, a6);
|
|
4385
|
+
var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = wasmExports["wa"])(a0, a1, a2, a3, a4, a5, a6, a7, a8);
|
|
4386
|
+
var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = wasmExports["xa"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
|
|
4326
4387
|
Module["addRunDependency"] = addRunDependency;
|
|
4327
4388
|
Module["removeRunDependency"] = removeRunDependency;
|
|
4328
4389
|
Module["FS_createPreloadedFile"] = FS_createPreloadedFile;
|
|
@@ -4360,10 +4421,8 @@ var require_wasm_bindings = __commonJS({
|
|
|
4360
4421
|
}
|
|
4361
4422
|
if (Module["setStatus"]) {
|
|
4362
4423
|
Module["setStatus"]("Running...");
|
|
4363
|
-
setTimeout(
|
|
4364
|
-
setTimeout(
|
|
4365
|
-
Module["setStatus"]("");
|
|
4366
|
-
}, 1);
|
|
4424
|
+
setTimeout(() => {
|
|
4425
|
+
setTimeout(() => Module["setStatus"](""), 1);
|
|
4367
4426
|
doRun();
|
|
4368
4427
|
}, 1);
|
|
4369
4428
|
} else {
|
|
@@ -4382,18 +4441,21 @@ var require_wasm_bindings = __commonJS({
|
|
|
4382
4441
|
return moduleRtn;
|
|
4383
4442
|
};
|
|
4384
4443
|
})();
|
|
4385
|
-
if (typeof exports === "object" && typeof module === "object")
|
|
4386
|
-
module.exports =
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
|
|
4390
|
-
|
|
4444
|
+
if (typeof exports === "object" && typeof module === "object") {
|
|
4445
|
+
module.exports = wav2lip4;
|
|
4446
|
+
module.exports.default = wav2lip4;
|
|
4447
|
+
} else if (typeof define === "function" && define["amd"])
|
|
4448
|
+
define([], () => wav2lip4);
|
|
4449
|
+
wav2lip4.getUrl = function(path) {
|
|
4450
|
+
return "https://calls-sdk.cdn-vk.ru/static/audio-processing/0-0-8-dev.0848d3fd/" + path;
|
|
4391
4451
|
};
|
|
4392
4452
|
}
|
|
4393
4453
|
});
|
|
4394
4454
|
|
|
4395
4455
|
// src/utils/Logger.ts
|
|
4396
4456
|
var Logger = class {
|
|
4457
|
+
loggerName;
|
|
4458
|
+
loggerFunction;
|
|
4397
4459
|
constructor(loggerFunction, loggerName = "AudioEffects") {
|
|
4398
4460
|
this.loggerFunction = loggerFunction;
|
|
4399
4461
|
this.loggerName = loggerName;
|
|
@@ -4423,19 +4485,17 @@ function createBlobObject(functionData, args = []) {
|
|
|
4423
4485
|
|
|
4424
4486
|
// src/processor/AudioProcessor.ts
|
|
4425
4487
|
var AudioProcessor = class {
|
|
4426
|
-
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
|
|
4431
|
-
|
|
4432
|
-
|
|
4433
|
-
|
|
4434
|
-
|
|
4435
|
-
|
|
4436
|
-
|
|
4437
|
-
});
|
|
4438
|
-
}
|
|
4488
|
+
/**
|
|
4489
|
+
* MediaStream, в который производится вывод результата
|
|
4490
|
+
* обработки аудио, если при инициализации был установлен флаг isOutputStream.
|
|
4491
|
+
*/
|
|
4492
|
+
outputStream = null;
|
|
4493
|
+
isInitialized = false;
|
|
4494
|
+
audioContext = null;
|
|
4495
|
+
workletNode = null;
|
|
4496
|
+
sourceNode = null;
|
|
4497
|
+
logger = new Logger(() => {
|
|
4498
|
+
});
|
|
4439
4499
|
/**
|
|
4440
4500
|
* @typedef {Object} AudioProcessorParams
|
|
4441
4501
|
* @param {AudioProcessorParams} params
|
|
@@ -4636,20 +4696,20 @@ function vmojiLmarksVolumeWorkletFunction() {
|
|
|
4636
4696
|
const MOUTH_OPEN_MIN = LMARKS_INIT_VECTOR[MOUTH_OPEN_INDEX];
|
|
4637
4697
|
const MOUTH_OPEN_RANGE = 1 - LMARKS_INIT_VECTOR[MOUTH_OPEN_INDEX];
|
|
4638
4698
|
class VmojiLmarksVolumeWorklet extends AudioWorkletProcessor {
|
|
4699
|
+
lastTime = 0;
|
|
4700
|
+
// in seconds
|
|
4701
|
+
frameSampleCount = 0;
|
|
4702
|
+
frameSampleAverage = 0;
|
|
4703
|
+
/**
|
|
4704
|
+
* Storing maximum user input volume in order to animate quiet speakers
|
|
4705
|
+
*/
|
|
4706
|
+
maxInputVolume = DEFAULT_MAX_INPUT_VOLUME;
|
|
4707
|
+
/**
|
|
4708
|
+
* Counting sequence for tremolo effect while speaking with constant volume
|
|
4709
|
+
*/
|
|
4710
|
+
sequence = 0;
|
|
4639
4711
|
constructor() {
|
|
4640
4712
|
super();
|
|
4641
|
-
this.lastTime = 0;
|
|
4642
|
-
// in seconds
|
|
4643
|
-
this.frameSampleCount = 0;
|
|
4644
|
-
this.frameSampleAverage = 0;
|
|
4645
|
-
/**
|
|
4646
|
-
* Storing maximum user input volume in order to animate quiet speakers
|
|
4647
|
-
*/
|
|
4648
|
-
this.maxInputVolume = DEFAULT_MAX_INPUT_VOLUME;
|
|
4649
|
-
/**
|
|
4650
|
-
* Counting sequence for tremolo effect while speaking with constant volume
|
|
4651
|
-
*/
|
|
4652
|
-
this.sequence = 0;
|
|
4653
4713
|
this.port.postMessage({ type: "init" /* INIT */ });
|
|
4654
4714
|
}
|
|
4655
4715
|
process(inputList) {
|
|
@@ -4689,15 +4749,12 @@ function vmojiLmarksVolumeWorkletFunction() {
|
|
|
4689
4749
|
|
|
4690
4750
|
// src/effects/EffectVmojiLmarksVolume.ts
|
|
4691
4751
|
var EffectVmojiLmarksVolume = class extends AudioProcessor {
|
|
4692
|
-
|
|
4693
|
-
|
|
4694
|
-
|
|
4695
|
-
|
|
4696
|
-
|
|
4697
|
-
|
|
4698
|
-
this.onData = () => {
|
|
4699
|
-
};
|
|
4700
|
-
}
|
|
4752
|
+
/**
|
|
4753
|
+
* Коллбек, вызывающийся при генерации очередной серии точек Vmoji
|
|
4754
|
+
* @param {ArrayBuffer} data - точки Vmoji
|
|
4755
|
+
*/
|
|
4756
|
+
onData = () => {
|
|
4757
|
+
};
|
|
4701
4758
|
async init() {
|
|
4702
4759
|
await super.init({
|
|
4703
4760
|
workletFunction: vmojiLmarksVolumeWorkletFunction,
|
|
@@ -4714,11 +4771,8 @@ var import_audio_processing = __toESM(require_wasm_bindings());
|
|
|
4714
4771
|
|
|
4715
4772
|
// src/processor/WorkerAudioProcessor.ts
|
|
4716
4773
|
var WorkerAudioProcessor = class extends AudioProcessor {
|
|
4717
|
-
|
|
4718
|
-
|
|
4719
|
-
this.worker = null;
|
|
4720
|
-
this.performanceMonitor = null;
|
|
4721
|
-
}
|
|
4774
|
+
worker = null;
|
|
4775
|
+
performanceMonitor = null;
|
|
4722
4776
|
/**
|
|
4723
4777
|
* @typedef {Object} WorkerAudioProcessorParams
|
|
4724
4778
|
* @param {WorkerAudioProcessorParams} params
|
|
@@ -4822,15 +4876,12 @@ function pureWorkletFunction() {
|
|
|
4822
4876
|
// src/effects/EffectVmojiLmarksAi.ts
|
|
4823
4877
|
var VMOJI_LMARKS_AI_SAMPLE_RATE = 16e3;
|
|
4824
4878
|
var EffectVmojiLmarksAi = class extends WorkerAudioProcessor {
|
|
4825
|
-
|
|
4826
|
-
|
|
4827
|
-
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
this.onData = () => {
|
|
4832
|
-
};
|
|
4833
|
-
}
|
|
4879
|
+
/**
|
|
4880
|
+
* Коллбек, вызывающийся при генерации очередной серии точек Vmoji
|
|
4881
|
+
* @param {ArrayBuffer} data - точки Vmoji
|
|
4882
|
+
*/
|
|
4883
|
+
onData = () => {
|
|
4884
|
+
};
|
|
4834
4885
|
async init() {
|
|
4835
4886
|
await super.init({
|
|
4836
4887
|
sampleRate: VMOJI_LMARKS_AI_SAMPLE_RATE,
|
|
@@ -4858,30 +4909,42 @@ var EffectVmojiLmarksAi = class extends WorkerAudioProcessor {
|
|
|
4858
4909
|
};
|
|
4859
4910
|
|
|
4860
4911
|
// src/effects/EffectVadAi.ts
|
|
4912
|
+
var import_audio_processing2 = __toESM(require_wasm_bindings());
|
|
4861
4913
|
var VAD_SAMPLE_RATE = 16e3;
|
|
4862
|
-
var
|
|
4863
|
-
|
|
4864
|
-
|
|
4865
|
-
|
|
4914
|
+
var DEFAULT_VAD_AI_URLS = {
|
|
4915
|
+
modelUrl: "https://calls-sdk.cdn-vk.ru/models/bcresnet_no_center_mult2_20ms.onnx",
|
|
4916
|
+
modelDataUrl: "https://calls-sdk.cdn-vk.ru/models/bcresnet_no_center_mult2_20ms.onnx.data",
|
|
4917
|
+
ortWasmUrl: "https://calls-sdk.cdn-vk.ru/vendor/onnxruntime-web/ort-wasm-simd-threaded.wasm",
|
|
4918
|
+
ortMjsUrl: "https://calls-sdk.cdn-vk.ru/vendor/onnxruntime-web/ort-wasm-simd-threaded.mjs"
|
|
4919
|
+
};
|
|
4866
4920
|
var EffectVadAi = class extends WorkerAudioProcessor {
|
|
4867
|
-
|
|
4868
|
-
|
|
4869
|
-
|
|
4870
|
-
|
|
4921
|
+
onData = () => {
|
|
4922
|
+
};
|
|
4923
|
+
_modelType;
|
|
4924
|
+
_modelUrl;
|
|
4925
|
+
_modelDataUrl;
|
|
4926
|
+
_ortWasmUrl;
|
|
4927
|
+
_ortMjsUrl;
|
|
4928
|
+
constructor(options) {
|
|
4929
|
+
super();
|
|
4930
|
+
this._modelType = options?.modelType ?? "onnx";
|
|
4931
|
+
this._modelUrl = options?.modelUrl ?? DEFAULT_VAD_AI_URLS.modelUrl;
|
|
4932
|
+
this._modelDataUrl = options?.modelDataUrl ?? DEFAULT_VAD_AI_URLS.modelDataUrl;
|
|
4933
|
+
this._ortWasmUrl = options?.ortWasmUrl ?? DEFAULT_VAD_AI_URLS.ortWasmUrl;
|
|
4934
|
+
this._ortMjsUrl = options?.ortMjsUrl ?? DEFAULT_VAD_AI_URLS.ortMjsUrl;
|
|
4871
4935
|
}
|
|
4872
4936
|
async init() {
|
|
4937
|
+
const isTflite = this._modelType === "tflite";
|
|
4873
4938
|
await super.init({
|
|
4874
4939
|
sampleRate: VAD_SAMPLE_RATE,
|
|
4875
4940
|
workletFunction: pureWorkletFunction,
|
|
4876
4941
|
workletName: "pureWorklet",
|
|
4877
|
-
workerFunctionString: '"use strict";\nvar exports = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\n var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {\n get: (a, b) => (typeof require !== "undefined" ? require : a)[b]\n }) : x)(function(x) {\n if (typeof require !== "undefined")\n return require.apply(this, arguments);\n throw new Error(\'Dynamic require of "\' + x + \'" is not supported\');\n });\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to2, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to2, key) && key !== except)\n __defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to2;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);\n var __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);\n return value;\n };\n\n // src/workers/VadAiWorker.ts\n var VadAiWorker_exports = {};\n __export(VadAiWorker_exports, {\n default: () => VadAiWorker_default\n });\n\n // node_modules/onnxruntime-web/dist/ort.wasm.bundle.min.mjs\n var import_meta = {};\n var Jt = Object.defineProperty;\n var Xa = Object.getOwnPropertyDescriptor;\n var Qa = Object.getOwnPropertyNames;\n var Za = Object.prototype.hasOwnProperty;\n var qt = ((n) => typeof __require < "u" ? __require : typeof Proxy < "u" ? new Proxy(n, { get: (t, a) => (typeof __require < "u" ? __require : t)[a] }) : n)(function(n) {\n if (typeof __require < "u")\n return __require.apply(this, arguments);\n throw Error(\'Dynamic require of "\' + n + \'" is not supported\');\n });\n var N = (n, t) => () => (n && (t = n(n = 0)), t);\n var ut = (n, t) => {\n for (var a in t)\n Jt(n, a, { get: t[a], enumerable: true });\n };\n var Ka = (n, t, a, u) => {\n if (t && typeof t == "object" || typeof t == "function")\n for (let o of Qa(t))\n !Za.call(n, o) && o !== a && Jt(n, o, { get: () => t[o], enumerable: !(u = Xa(t, o)) || u.enumerable });\n return n;\n };\n var Xt = (n) => Ka(Jt({}, "__esModule", { value: true }), n);\n var ft;\n var Be;\n var qe;\n var es;\n var dr;\n var Qt = N(() => {\n "use strict";\n ft = /* @__PURE__ */ new Map(), Be = [], qe = (n, t, a) => {\n if (t && typeof t.init == "function" && typeof t.createInferenceSessionHandler == "function") {\n let u = ft.get(n);\n if (u === void 0)\n ft.set(n, { backend: t, priority: a });\n else {\n if (u.priority > a)\n return;\n if (u.priority === a && u.backend !== t)\n throw new Error(`cannot register backend "${n}" using priority ${a}`);\n }\n if (a >= 0) {\n let o = Be.indexOf(n);\n o !== -1 && Be.splice(o, 1);\n for (let d = 0; d < Be.length; d++)\n if (ft.get(Be[d]).priority <= a) {\n Be.splice(d, 0, n);\n return;\n }\n Be.push(n);\n }\n return;\n }\n throw new TypeError("not a valid backend");\n }, es = async (n) => {\n let t = ft.get(n);\n if (!t)\n return "backend not found.";\n if (t.initialized)\n return t.backend;\n if (t.aborted)\n return t.error;\n {\n let a = !!t.initPromise;\n try {\n return a || (t.initPromise = t.backend.init(n)), await t.initPromise, t.initialized = true, t.backend;\n } catch (u) {\n return a || (t.error = `${u}`, t.aborted = true), t.error;\n } finally {\n delete t.initPromise;\n }\n }\n }, dr = async (n) => {\n let t = n.executionProviders || [], a = t.map((m) => typeof m == "string" ? m : m.name), u = a.length === 0 ? Be : a, o, d = [], c = /* @__PURE__ */ new Set();\n for (let m of u) {\n let h = await es(m);\n typeof h == "string" ? d.push({ name: m, err: h }) : (o || (o = h), o === h && c.add(m));\n }\n if (!o)\n throw new Error(`no available backend found. ERR: ${d.map((m) => `[${m.name}] ${m.err}`).join(", ")}`);\n for (let { name: m, err: h } of d)\n a.includes(m) && console.warn(`removing requested execution provider "${m}" from session options because it is not available: ${h}`);\n let l = t.filter((m) => c.has(typeof m == "string" ? m : m.name));\n return [o, new Proxy(n, { get: (m, h) => h === "executionProviders" ? l : Reflect.get(m, h) })];\n };\n });\n var pr = N(() => {\n "use strict";\n Qt();\n });\n var mr;\n var hr = N(() => {\n "use strict";\n mr = "1.26.0";\n });\n var wr;\n var J;\n var Zt = N(() => {\n "use strict";\n hr();\n wr = "warning", J = { wasm: {}, webgl: {}, webgpu: {}, versions: { common: mr }, set logLevel(n) {\n if (n !== void 0) {\n if (typeof n != "string" || ["verbose", "info", "warning", "error", "fatal"].indexOf(n) === -1)\n throw new Error(`Unsupported logging level: ${n}`);\n wr = n;\n }\n }, get logLevel() {\n return wr;\n } };\n Object.defineProperty(J, "logLevel", { enumerable: true });\n });\n var Y;\n var br = N(() => {\n "use strict";\n Zt();\n Y = J;\n });\n var yr;\n var gr;\n var Er = N(() => {\n "use strict";\n yr = (n, t) => {\n let a = typeof document < "u" ? document.createElement("canvas") : new OffscreenCanvas(1, 1);\n a.width = n.dims[3], a.height = n.dims[2];\n let u = a.getContext("2d");\n if (u != null) {\n let o, d;\n t?.tensorLayout !== void 0 && t.tensorLayout === "NHWC" ? (o = n.dims[2], d = n.dims[3]) : (o = n.dims[3], d = n.dims[2]);\n let c = t?.format !== void 0 ? t.format : "RGB", l = t?.norm, m, h;\n l === void 0 || l.mean === void 0 ? m = [255, 255, 255, 255] : typeof l.mean == "number" ? m = [l.mean, l.mean, l.mean, l.mean] : (m = [l.mean[0], l.mean[1], l.mean[2], 0], l.mean[3] !== void 0 && (m[3] = l.mean[3])), l === void 0 || l.bias === void 0 ? h = [0, 0, 0, 0] : typeof l.bias == "number" ? h = [l.bias, l.bias, l.bias, l.bias] : (h = [l.bias[0], l.bias[1], l.bias[2], 0], l.bias[3] !== void 0 && (h[3] = l.bias[3]));\n let g = d * o, b = 0, y = g, T = g * 2, I = -1;\n c === "RGBA" ? (b = 0, y = g, T = g * 2, I = g * 3) : c === "RGB" ? (b = 0, y = g, T = g * 2) : c === "RBG" && (b = 0, T = g, y = g * 2);\n for (let D = 0; D < d; D++)\n for (let z = 0; z < o; z++) {\n let v = (n.data[b++] - h[0]) * m[0], O = (n.data[y++] - h[1]) * m[1], F = (n.data[T++] - h[2]) * m[2], _ = I === -1 ? 255 : (n.data[I++] - h[3]) * m[3];\n u.fillStyle = "rgba(" + v + "," + O + "," + F + "," + _ + ")", u.fillRect(z, D, 1, 1);\n }\n if ("toDataURL" in a)\n return a.toDataURL();\n throw new Error("toDataURL is not supported");\n } else\n throw new Error("Can not access image data");\n }, gr = (n, t) => {\n let a = typeof document < "u" ? document.createElement("canvas").getContext("2d") : new OffscreenCanvas(1, 1).getContext("2d"), u;\n if (a != null) {\n let o, d, c;\n t?.tensorLayout !== void 0 && t.tensorLayout === "NHWC" ? (o = n.dims[2], d = n.dims[1], c = n.dims[3]) : (o = n.dims[3], d = n.dims[2], c = n.dims[1]);\n let l = t !== void 0 && t.format !== void 0 ? t.format : "RGB", m = t?.norm, h, g;\n m === void 0 || m.mean === void 0 ? h = [255, 255, 255, 255] : typeof m.mean == "number" ? h = [m.mean, m.mean, m.mean, m.mean] : (h = [m.mean[0], m.mean[1], m.mean[2], 255], m.mean[3] !== void 0 && (h[3] = m.mean[3])), m === void 0 || m.bias === void 0 ? g = [0, 0, 0, 0] : typeof m.bias == "number" ? g = [m.bias, m.bias, m.bias, m.bias] : (g = [m.bias[0], m.bias[1], m.bias[2], 0], m.bias[3] !== void 0 && (g[3] = m.bias[3]));\n let b = d * o;\n if (t !== void 0 && (t.format !== void 0 && c === 4 && t.format !== "RGBA" || c === 3 && t.format !== "RGB" && t.format !== "BGR"))\n throw new Error("Tensor format doesn\'t match input tensor dims");\n let y = 4, T = 0, I = 1, D = 2, z = 3, v = 0, O = b, F = b * 2, _ = -1;\n l === "RGBA" ? (v = 0, O = b, F = b * 2, _ = b * 3) : l === "RGB" ? (v = 0, O = b, F = b * 2) : l === "RBG" && (v = 0, F = b, O = b * 2), u = a.createImageData(o, d);\n for (let k = 0; k < d * o; T += y, I += y, D += y, z += y, k++)\n u.data[T] = (n.data[v++] - g[0]) * h[0], u.data[I] = (n.data[O++] - g[1]) * h[1], u.data[D] = (n.data[F++] - g[2]) * h[2], u.data[z] = _ === -1 ? 255 : (n.data[_++] - g[3]) * h[3];\n } else\n throw new Error("Can not access image data");\n return u;\n };\n });\n var Kt;\n var Tr;\n var Sr;\n var vr;\n var Or;\n var Ar;\n var Ir = N(() => {\n "use strict";\n ct();\n Kt = (n, t) => {\n if (n === void 0)\n throw new Error("Image buffer must be defined");\n if (t.height === void 0 || t.width === void 0)\n throw new Error("Image height and width must be defined");\n if (t.tensorLayout === "NHWC")\n throw new Error("NHWC Tensor layout is not supported yet");\n let { height: a, width: u } = t, o = t.norm ?? { mean: 255, bias: 0 }, d, c;\n typeof o.mean == "number" ? d = [o.mean, o.mean, o.mean, o.mean] : d = [o.mean[0], o.mean[1], o.mean[2], o.mean[3] ?? 255], typeof o.bias == "number" ? c = [o.bias, o.bias, o.bias, o.bias] : c = [o.bias[0], o.bias[1], o.bias[2], o.bias[3] ?? 0];\n let l = t.format !== void 0 ? t.format : "RGBA", m = t.tensorFormat !== void 0 && t.tensorFormat !== void 0 ? t.tensorFormat : "RGB", h = a * u, g = m === "RGBA" ? new Float32Array(h * 4) : new Float32Array(h * 3), b = 4, y = 0, T = 1, I = 2, D = 3, z = 0, v = h, O = h * 2, F = -1;\n l === "RGB" && (b = 3, y = 0, T = 1, I = 2, D = -1), m === "RGBA" ? F = h * 3 : m === "RBG" ? (z = 0, O = h, v = h * 2) : m === "BGR" && (O = 0, v = h, z = h * 2);\n for (let k = 0; k < h; k++, y += b, I += b, T += b, D += b)\n g[z++] = (n[y] + c[0]) / d[0], g[v++] = (n[T] + c[1]) / d[1], g[O++] = (n[I] + c[2]) / d[2], F !== -1 && D !== -1 && (g[F++] = (n[D] + c[3]) / d[3]);\n return m === "RGBA" ? new Q("float32", g, [1, 4, a, u]) : new Q("float32", g, [1, 3, a, u]);\n }, Tr = async (n, t) => {\n let a = typeof HTMLImageElement < "u" && n instanceof HTMLImageElement, u = typeof ImageData < "u" && n instanceof ImageData, o = typeof ImageBitmap < "u" && n instanceof ImageBitmap, d = typeof n == "string", c, l = t ?? {}, m = () => {\n if (typeof document < "u")\n return document.createElement("canvas");\n if (typeof OffscreenCanvas < "u")\n return new OffscreenCanvas(1, 1);\n throw new Error("Canvas is not supported");\n }, h = (g) => typeof HTMLCanvasElement < "u" && g instanceof HTMLCanvasElement || g instanceof OffscreenCanvas ? g.getContext("2d") : null;\n if (a) {\n let g = m();\n g.width = n.width, g.height = n.height;\n let b = h(g);\n if (b != null) {\n let y = n.height, T = n.width;\n if (t !== void 0 && t.resizedHeight !== void 0 && t.resizedWidth !== void 0 && (y = t.resizedHeight, T = t.resizedWidth), t !== void 0) {\n if (l = t, t.tensorFormat !== void 0)\n throw new Error("Image input config format must be RGBA for HTMLImageElement");\n l.tensorFormat = "RGBA", l.height = y, l.width = T;\n } else\n l.tensorFormat = "RGBA", l.height = y, l.width = T;\n b.drawImage(n, 0, 0), c = b.getImageData(0, 0, T, y).data;\n } else\n throw new Error("Can not access image data");\n } else if (u) {\n let g, b;\n if (t !== void 0 && t.resizedWidth !== void 0 && t.resizedHeight !== void 0 ? (g = t.resizedHeight, b = t.resizedWidth) : (g = n.height, b = n.width), t !== void 0 && (l = t), l.format = "RGBA", l.height = g, l.width = b, t !== void 0) {\n let y = m();\n y.width = b, y.height = g;\n let T = h(y);\n if (T != null)\n T.putImageData(n, 0, 0), c = T.getImageData(0, 0, b, g).data;\n else\n throw new Error("Can not access image data");\n } else\n c = n.data;\n } else if (o) {\n if (t === void 0)\n throw new Error("Please provide image config with format for Imagebitmap");\n let g = m();\n g.width = n.width, g.height = n.height;\n let b = h(g);\n if (b != null) {\n let y = n.height, T = n.width;\n return b.drawImage(n, 0, 0, T, y), c = b.getImageData(0, 0, T, y).data, l.height = y, l.width = T, Kt(c, l);\n } else\n throw new Error("Can not access image data");\n } else {\n if (d)\n return new Promise((g, b) => {\n let y = m(), T = h(y);\n if (!n || !T)\n return b();\n let I = new Image();\n I.crossOrigin = "Anonymous", I.src = n, I.onload = () => {\n y.width = I.width, y.height = I.height, T.drawImage(I, 0, 0, y.width, y.height);\n let D = T.getImageData(0, 0, y.width, y.height);\n l.height = y.height, l.width = y.width, g(Kt(D.data, l));\n };\n });\n throw new Error("Input data provided is not supported - aborted tensor creation");\n }\n if (c !== void 0)\n return Kt(c, l);\n throw new Error("Input data provided is not supported - aborted tensor creation");\n }, Sr = (n, t) => {\n let { width: a, height: u, download: o, dispose: d } = t, c = [1, u, a, 4];\n return new Q({ location: "texture", type: "float32", texture: n, dims: c, download: o, dispose: d });\n }, vr = (n, t) => {\n let { dataType: a, dims: u, download: o, dispose: d } = t;\n return new Q({ location: "gpu-buffer", type: a ?? "float32", gpuBuffer: n, dims: u, download: o, dispose: d });\n }, Or = (n, t) => {\n let { dataType: a, dims: u, download: o, dispose: d } = t;\n return new Q({ location: "ml-tensor", type: a ?? "float32", mlTensor: n, dims: u, download: o, dispose: d });\n }, Ar = (n, t, a) => new Q({ location: "cpu-pinned", type: n, data: t, dims: a ?? [t.length] });\n });\n var Le;\n var Xe;\n var Br;\n var Lr;\n var _r = N(() => {\n "use strict";\n Le = /* @__PURE__ */ new Map([["float32", Float32Array], ["uint8", Uint8Array], ["int8", Int8Array], ["uint16", Uint16Array], ["int16", Int16Array], ["int32", Int32Array], ["bool", Uint8Array], ["float64", Float64Array], ["uint32", Uint32Array], ["int4", Uint8Array], ["uint4", Uint8Array]]), Xe = /* @__PURE__ */ new Map([[Float32Array, "float32"], [Uint8Array, "uint8"], [Int8Array, "int8"], [Uint16Array, "uint16"], [Int16Array, "int16"], [Int32Array, "int32"], [Float64Array, "float64"], [Uint32Array, "uint32"]]), Br = false, Lr = () => {\n if (!Br) {\n Br = true;\n let n = typeof BigInt64Array < "u" && BigInt64Array.from, t = typeof BigUint64Array < "u" && BigUint64Array.from, a = globalThis.Float16Array, u = typeof a < "u" && a.from;\n n && (Le.set("int64", BigInt64Array), Xe.set(BigInt64Array, "int64")), t && (Le.set("uint64", BigUint64Array), Xe.set(BigUint64Array, "uint64")), u ? (Le.set("float16", a), Xe.set(a, "float16")) : Le.set("float16", Uint16Array);\n }\n };\n });\n var Pr;\n var Dr;\n var Ur = N(() => {\n "use strict";\n ct();\n Pr = (n) => {\n let t = 1;\n for (let a = 0; a < n.length; a++) {\n let u = n[a];\n if (typeof u != "number" || !Number.isSafeInteger(u))\n throw new TypeError(`dims[${a}] must be an integer, got: ${u}`);\n if (u < 0)\n throw new RangeError(`dims[${a}] must be a non-negative integer, got: ${u}`);\n t *= u;\n }\n return t;\n }, Dr = (n, t) => {\n switch (n.location) {\n case "cpu":\n return new Q(n.type, n.data, t);\n case "cpu-pinned":\n return new Q({ location: "cpu-pinned", data: n.data, type: n.type, dims: t });\n case "texture":\n return new Q({ location: "texture", texture: n.texture, type: n.type, dims: t });\n case "gpu-buffer":\n return new Q({ location: "gpu-buffer", gpuBuffer: n.gpuBuffer, type: n.type, dims: t });\n case "ml-tensor":\n return new Q({ location: "ml-tensor", mlTensor: n.mlTensor, type: n.type, dims: t });\n default:\n throw new Error(`tensorReshape: tensor location ${n.location} is not supported`);\n }\n };\n });\n var Q;\n var ct = N(() => {\n "use strict";\n Er();\n Ir();\n _r();\n Ur();\n Q = class {\n constructor(t, a, u) {\n Lr();\n let o, d;\n if (typeof t == "object" && "location" in t)\n switch (this.dataLocation = t.location, o = t.type, d = t.dims, t.location) {\n case "cpu-pinned": {\n let l = Le.get(o);\n if (!l)\n throw new TypeError(`unsupported type "${o}" to create tensor from pinned buffer`);\n if (!(t.data instanceof l))\n throw new TypeError(`buffer should be of type ${l.name}`);\n this.cpuData = t.data;\n break;\n }\n case "texture": {\n if (o !== "float32")\n throw new TypeError(`unsupported type "${o}" to create tensor from texture`);\n this.gpuTextureData = t.texture, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n case "gpu-buffer": {\n if (o !== "float32" && o !== "float16" && o !== "int32" && o !== "int64" && o !== "uint32" && o !== "uint8" && o !== "bool" && o !== "uint4" && o !== "int4")\n throw new TypeError(`unsupported type "${o}" to create tensor from gpu buffer`);\n this.gpuBufferData = t.gpuBuffer, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n case "ml-tensor": {\n if (o !== "float32" && o !== "float16" && o !== "int32" && o !== "int64" && o !== "uint32" && o !== "uint64" && o !== "int8" && o !== "uint8" && o !== "bool" && o !== "uint4" && o !== "int4")\n throw new TypeError(`unsupported type "${o}" to create tensor from MLTensor`);\n this.mlTensorData = t.mlTensor, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n default:\n throw new Error(`Tensor constructor: unsupported location \'${this.dataLocation}\'`);\n }\n else {\n let l, m;\n if (typeof t == "string")\n if (o = t, m = u, t === "string") {\n if (!Array.isArray(a))\n throw new TypeError("A string tensor\'s data must be a string array.");\n l = a;\n } else {\n let h = Le.get(t);\n if (h === void 0)\n throw new TypeError(`Unsupported tensor type: ${t}.`);\n if (Array.isArray(a)) {\n if (t === "float16" && h === Uint16Array || t === "uint4" || t === "int4")\n throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${h.name} as data.`);\n t === "uint64" || t === "int64" ? l = h.from(a, BigInt) : l = h.from(a);\n } else if (a instanceof h)\n l = a;\n else if (a instanceof Uint8ClampedArray)\n if (t === "uint8")\n l = Uint8Array.from(a);\n else\n throw new TypeError("A Uint8ClampedArray tensor\'s data must be type of uint8");\n else if (t === "float16" && a instanceof Uint16Array && h !== Uint16Array)\n l = new globalThis.Float16Array(a.buffer, a.byteOffset, a.length);\n else\n throw new TypeError(`A ${o} tensor\'s data must be type of ${h}`);\n }\n else if (m = a, Array.isArray(t)) {\n if (t.length === 0)\n throw new TypeError("Tensor type cannot be inferred from an empty array.");\n let h = typeof t[0];\n if (h === "string")\n o = "string", l = t;\n else if (h === "boolean")\n o = "bool", l = Uint8Array.from(t);\n else\n throw new TypeError(`Invalid element type of data array: ${h}.`);\n } else if (t instanceof Uint8ClampedArray)\n o = "uint8", l = Uint8Array.from(t);\n else {\n let h = Xe.get(t.constructor);\n if (h === void 0)\n throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);\n o = h, l = t;\n }\n if (m === void 0)\n m = [l.length];\n else if (!Array.isArray(m))\n throw new TypeError("A tensor\'s dims must be a number array");\n d = m, this.cpuData = l, this.dataLocation = "cpu";\n }\n let c = Pr(d);\n if (this.cpuData && c !== this.cpuData.length && !((o === "uint4" || o === "int4") && Math.ceil(c / 2) === this.cpuData.length))\n throw new Error(`Tensor\'s size(${c}) does not match data length(${this.cpuData.length}).`);\n this.type = o, this.dims = d, this.size = c;\n }\n static async fromImage(t, a) {\n return Tr(t, a);\n }\n static fromTexture(t, a) {\n return Sr(t, a);\n }\n static fromGpuBuffer(t, a) {\n return vr(t, a);\n }\n static fromMLTensor(t, a) {\n return Or(t, a);\n }\n static fromPinnedBuffer(t, a, u) {\n return Ar(t, a, u);\n }\n toDataURL(t) {\n return yr(this, t);\n }\n toImageData(t) {\n return gr(this, t);\n }\n get data() {\n if (this.ensureValid(), !this.cpuData)\n throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");\n return this.cpuData;\n }\n get location() {\n return this.dataLocation;\n }\n get texture() {\n if (this.ensureValid(), !this.gpuTextureData)\n throw new Error("The data is not stored as a WebGL texture.");\n return this.gpuTextureData;\n }\n get gpuBuffer() {\n if (this.ensureValid(), !this.gpuBufferData)\n throw new Error("The data is not stored as a WebGPU buffer.");\n return this.gpuBufferData;\n }\n get mlTensor() {\n if (this.ensureValid(), !this.mlTensorData)\n throw new Error("The data is not stored as a WebNN MLTensor.");\n return this.mlTensorData;\n }\n async getData(t) {\n switch (this.ensureValid(), this.dataLocation) {\n case "cpu":\n case "cpu-pinned":\n return this.data;\n case "texture":\n case "gpu-buffer":\n case "ml-tensor": {\n if (!this.downloader)\n throw new Error("The current tensor is not created with a specified data downloader.");\n if (this.isDownloading)\n throw new Error("The current tensor is being downloaded.");\n try {\n this.isDownloading = true;\n let a = await this.downloader();\n return this.downloader = void 0, this.dataLocation = "cpu", this.cpuData = a, t && this.disposer && (this.disposer(), this.disposer = void 0), a;\n } finally {\n this.isDownloading = false;\n }\n }\n default:\n throw new Error(`cannot get data from location: ${this.dataLocation}`);\n }\n }\n dispose() {\n if (this.isDownloading)\n throw new Error("The current tensor is being downloaded.");\n this.disposer && (this.disposer(), this.disposer = void 0), this.cpuData = void 0, this.gpuTextureData = void 0, this.gpuBufferData = void 0, this.mlTensorData = void 0, this.downloader = void 0, this.isDownloading = void 0, this.dataLocation = "none";\n }\n ensureValid() {\n if (this.dataLocation === "none")\n throw new Error("The tensor is disposed.");\n }\n reshape(t) {\n if (this.ensureValid(), this.downloader || this.disposer)\n throw new Error("Cannot reshape a tensor that owns GPU resource.");\n return Dr(this, t);\n }\n };\n });\n var de;\n var en = N(() => {\n "use strict";\n ct();\n de = Q;\n });\n var xr;\n var Mr;\n var _e;\n var Pe;\n var De;\n var Ue;\n var tn = N(() => {\n "use strict";\n Zt();\n xr = (n, t) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.timeStamp(`${n}::ORT::${t}`);\n }, Mr = (n, t) => {\n let a = new Error().stack?.split(/\\r\\n|\\r|\\n/g) || [], u = false;\n for (let o = 0; o < a.length; o++) {\n if (u && !a[o].includes("TRACE_FUNC")) {\n let d = `FUNC_${n}::${a[o].trim().split(" ")[1]}`;\n t && (d += `::${t}`), xr("CPU", d);\n return;\n }\n a[o].includes("TRACE_FUNC") && (u = true);\n }\n }, _e = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || Mr("BEGIN", n);\n }, Pe = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || Mr("END", n);\n }, De = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.time(`ORT::${n}`);\n }, Ue = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.timeEnd(`ORT::${n}`);\n };\n });\n var lt;\n var Cr = N(() => {\n "use strict";\n Qt();\n en();\n tn();\n lt = class n {\n constructor(t) {\n this.handler = t;\n }\n async run(t, a, u) {\n _e(), De("InferenceSession.run");\n let o = {}, d = {};\n if (typeof t != "object" || t === null || t instanceof de || Array.isArray(t))\n throw new TypeError("\'feeds\' must be an object that use input names as keys and OnnxValue as corresponding values.");\n let c = true;\n if (typeof a == "object") {\n if (a === null)\n throw new TypeError("Unexpected argument[1]: cannot be null.");\n if (a instanceof de)\n throw new TypeError("\'fetches\' cannot be a Tensor");\n if (Array.isArray(a)) {\n if (a.length === 0)\n throw new TypeError("\'fetches\' cannot be an empty array.");\n c = false;\n for (let h of a) {\n if (typeof h != "string")\n throw new TypeError("\'fetches\' must be a string array or an object.");\n if (this.outputNames.indexOf(h) === -1)\n throw new RangeError(`\'fetches\' contains invalid output name: ${h}.`);\n o[h] = null;\n }\n if (typeof u == "object" && u !== null)\n d = u;\n else if (typeof u < "u")\n throw new TypeError("\'options\' must be an object.");\n } else {\n let h = false, g = Object.getOwnPropertyNames(a);\n for (let b of this.outputNames)\n if (g.indexOf(b) !== -1) {\n let y = a[b];\n (y === null || y instanceof de) && (h = true, c = false, o[b] = y);\n }\n if (h) {\n if (typeof u == "object" && u !== null)\n d = u;\n else if (typeof u < "u")\n throw new TypeError("\'options\' must be an object.");\n } else\n d = a;\n }\n } else if (typeof a < "u")\n throw new TypeError("Unexpected argument[1]: must be \'fetches\' or \'options\'.");\n for (let h of this.inputNames)\n if (typeof t[h] > "u")\n throw new Error(`input \'${h}\' is missing in \'feeds\'.`);\n if (c)\n for (let h of this.outputNames)\n o[h] = null;\n let l = await this.handler.run(t, o, d), m = {};\n for (let h in l)\n if (Object.hasOwnProperty.call(l, h)) {\n let g = l[h];\n g instanceof de ? m[h] = g : m[h] = new de(g.type, g.data, g.dims);\n }\n return Ue("InferenceSession.run"), Pe(), m;\n }\n async release() {\n return this.handler.dispose();\n }\n static async create(t, a, u, o) {\n _e(), De("InferenceSession.create");\n let d, c = {};\n if (typeof t == "string") {\n if (d = t, typeof a == "object" && a !== null)\n c = a;\n else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (t instanceof Uint8Array) {\n if (d = t, typeof a == "object" && a !== null)\n c = a;\n else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (t instanceof ArrayBuffer || typeof SharedArrayBuffer < "u" && t instanceof SharedArrayBuffer) {\n let g = t, b = 0, y = t.byteLength;\n if (typeof a == "object" && a !== null)\n c = a;\n else if (typeof a == "number") {\n if (b = a, !Number.isSafeInteger(b))\n throw new RangeError("\'byteOffset\' must be an integer.");\n if (b < 0 || b >= g.byteLength)\n throw new RangeError(`\'byteOffset\' is out of range [0, ${g.byteLength}).`);\n if (y = t.byteLength - b, typeof u == "number") {\n if (y = u, !Number.isSafeInteger(y))\n throw new RangeError("\'byteLength\' must be an integer.");\n if (y <= 0 || b + y > g.byteLength)\n throw new RangeError(`\'byteLength\' is out of range (0, ${g.byteLength - b}].`);\n if (typeof o == "object" && o !== null)\n c = o;\n else if (typeof o < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (typeof u < "u")\n throw new TypeError("\'byteLength\' must be a number.");\n } else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n d = new Uint8Array(g, b, y);\n } else\n throw new TypeError("Unexpected argument[0]: must be \'path\' or \'buffer\'.");\n let [l, m] = await dr(c), h = await l.createInferenceSessionHandler(d, m);\n return Ue("InferenceSession.create"), Pe(), new n(h);\n }\n startProfiling() {\n this.handler.startProfiling();\n }\n endProfiling() {\n this.handler.endProfiling();\n }\n get inputNames() {\n return this.handler.inputNames;\n }\n get outputNames() {\n return this.handler.outputNames;\n }\n get inputMetadata() {\n return this.handler.inputMetadata;\n }\n get outputMetadata() {\n return this.handler.outputMetadata;\n }\n };\n });\n var ts;\n var Rr = N(() => {\n "use strict";\n Cr();\n ts = lt;\n });\n var Fr = N(() => {\n "use strict";\n });\n var Nr = N(() => {\n "use strict";\n });\n var kr = N(() => {\n "use strict";\n });\n var Wr = N(() => {\n "use strict";\n });\n var nn = {};\n ut(nn, { InferenceSession: () => ts, TRACE: () => xr, TRACE_EVENT_BEGIN: () => De, TRACE_EVENT_END: () => Ue, TRACE_FUNC_BEGIN: () => _e, TRACE_FUNC_END: () => Pe, Tensor: () => de, env: () => Y, registerBackend: () => qe });\n var Te = N(() => {\n "use strict";\n pr();\n br();\n Rr();\n en();\n Fr();\n Nr();\n tn();\n kr();\n Wr();\n });\n var dt = N(() => {\n "use strict";\n });\n var Hr = {};\n ut(Hr, { default: () => ns });\n var $r;\n var zr;\n var ns;\n var jr = N(() => {\n "use strict";\n rn();\n xe();\n pt();\n $r = "ort-wasm-proxy-worker", zr = globalThis.self?.name === $r;\n zr && (self.onmessage = (n) => {\n let { type: t, in: a } = n.data;\n try {\n switch (t) {\n case "init-wasm":\n mt(a.wasm).then(() => {\n ht(a).then(() => {\n postMessage({ type: t });\n }, (u) => {\n postMessage({ type: t, err: u });\n });\n }, (u) => {\n postMessage({ type: t, err: u });\n });\n break;\n case "init-ep": {\n let { epName: u, env: o } = a;\n wt(o, u).then(() => {\n postMessage({ type: t });\n }, (d) => {\n postMessage({ type: t, err: d });\n });\n break;\n }\n case "copy-from": {\n let { buffer: u } = a, o = Qe(u);\n postMessage({ type: t, out: o });\n break;\n }\n case "create": {\n let { model: u, options: o } = a;\n bt(u, o).then((d) => {\n postMessage({ type: t, out: d });\n }, (d) => {\n postMessage({ type: t, err: d });\n });\n break;\n }\n case "release":\n yt(a), postMessage({ type: t });\n break;\n case "run": {\n let { sessionId: u, inputIndices: o, inputs: d, outputIndices: c, options: l } = a;\n gt(u, o, d, c, new Array(c.length).fill(null), l).then((m) => {\n m.some((h) => h[3] !== "cpu") ? postMessage({ type: t, err: "Proxy does not support non-cpu tensor location." }) : postMessage({ type: t, out: m }, Tt([...d, ...m]));\n }, (m) => {\n postMessage({ type: t, err: m });\n });\n break;\n }\n case "end-profiling":\n Et(a), postMessage({ type: t });\n break;\n default:\n }\n } catch (u) {\n postMessage({ type: t, err: u });\n }\n });\n ns = zr ? null : (n) => new Worker(n ?? oe, { type: "module", name: $r });\n });\n var Yr = {};\n ut(Yr, { default: () => rs });\n async function Vr(n = {}) {\n var t = n, a = !!globalThis.window, u = !!globalThis.WorkerGlobalScope, o = u && self.name?.startsWith("em-pthread");\n t.mountExternalData = (e, r) => {\n e.startsWith("./") && (e = e.substring(2)), (t.Rb || (t.Rb = /* @__PURE__ */ new Map())).set(e, r);\n }, t.unmountExternalData = () => {\n delete t.Rb;\n }, globalThis.SharedArrayBuffer ?? new WebAssembly.Memory({ initial: 0, maximum: 0, shared: true }).buffer.constructor;\n var d, c, l = (e, r) => {\n throw r;\n }, m = import_meta.url, h = "";\n if (a || u) {\n try {\n h = new URL(".", m).href;\n } catch {\n }\n u && (c = (e) => {\n var r = new XMLHttpRequest();\n return r.open("GET", e, false), r.responseType = "arraybuffer", r.send(null), new Uint8Array(r.response);\n }), d = async (e) => {\n if (k(e))\n return new Promise((i, s) => {\n var f = new XMLHttpRequest();\n f.open("GET", e, true), f.responseType = "arraybuffer", f.onload = () => {\n f.status == 200 || f.status == 0 && f.response ? i(f.response) : s(f.status);\n }, f.onerror = s, f.send(null);\n });\n var r = await fetch(e, { credentials: "same-origin" });\n if (r.ok)\n return r.arrayBuffer();\n throw Error(r.status + " : " + r.url);\n };\n }\n var g, b, y, T, I, D, z = console.log.bind(console), v = console.error.bind(console), O = z, F = v, _ = false, k = (e) => e.startsWith("file://");\n function w() {\n ge.buffer != j.buffer && ee();\n }\n if (o) {\n let e = function(r) {\n try {\n var i = r.data, s = i.Pb;\n if (s === "load") {\n let f = [];\n self.onmessage = (p) => f.push(p), D = () => {\n postMessage({ Pb: "loaded" });\n for (let p of f)\n e(p);\n self.onmessage = e;\n };\n for (let p of i.Zb)\n t[p] && !t[p].proxy || (t[p] = (...E) => {\n postMessage({ Pb: "callHandler", Yb: p, args: E });\n }, p == "print" && (O = t[p]), p == "printErr" && (F = t[p]));\n ge = i.dc, ee(), b = i.ec, Ut(), it();\n } else if (s === "run") {\n (function(f) {\n var p = (w(), W)[f + 52 >>> 2 >>> 0];\n f = (w(), W)[f + 56 >>> 2 >>> 0], sr(p, p - f), P(p);\n })(i.Ob), zt(i.Ob, 0, 0, 1, 0, 0), wn(), Ft(i.Ob), Z || (Z = true);\n try {\n Ao(i.bc, i.Tb);\n } catch (f) {\n if (f != "unwind")\n throw f;\n }\n } else\n i.target !== "setimmediate" && (s === "checkMailbox" ? Z && rt() : s && (F(`worker: received unknown command ${s}`), F(i)));\n } catch (f) {\n throw tr(), f;\n }\n };\n var Ss = e, Z = false;\n self.onunhandledrejection = (r) => {\n throw r.reason || r;\n }, self.onmessage = e;\n }\n var j, ne, pe, B, W, re, me, A, K, je = false;\n function ee() {\n var e = ge.buffer;\n t.HEAP8 = j = new Int8Array(e), pe = new Int16Array(e), t.HEAPU8 = ne = new Uint8Array(e), new Uint16Array(e), t.HEAP32 = B = new Int32Array(e), t.HEAPU32 = W = new Uint32Array(e), re = new Float32Array(e), me = new Float64Array(e), A = new BigInt64Array(e), new BigUint64Array(e);\n }\n function he() {\n je = true, o ? D() : Ee.Ta();\n }\n function H(e) {\n throw F(e = "Aborted(" + e + ")"), _ = true, e = new WebAssembly.RuntimeError(e + ". Build with -sASSERTIONS for more info."), I?.(e), e;\n }\n function q() {\n return { a: { R: fa, f: Io, w: Bo, e: Lo, k: _o, g: Po, S: Do, b: Uo, G: xo, ta: vn, j: Mo, L: In, Ja: Bn, pa: Ln, ra: _n, Ka: Pn, Ha: Dn, Aa: Un, Ga: xn, Y: Mn, qa: Cn, na: Rn, Ia: Fn, oa: Nn, Pa: Co, Da: Ro, la: No, ua: ko, ia: Wo, T: Go, Ca: Ft, Ma: $o, xa: zo, ya: Ho, za: jo, va: $n, wa: zn, ja: Hn, Ra: Yo, Oa: Xo, V: Qo, U: Zo, Na: Jo, F: Ko, La: ea, ma: ta, u: Vo, H: na, Q: at, ka: oa, aa: ra, Sa: aa, Ea: Yn, Fa: Jn, sa: ye, I: qn, X: Xn, Ba: Qn, W: Zn, _: ja, M: Wa, $: Ha, N: ka, v: Pa, c: pa, m: la, n: ca, q: va, ba: Ra, x: Ba, o: wa, O: Fa, D: Ga, J: Ca, ca: Ma, da: xa, A: Oa, P: Ua, ea: Da, z: La, E: Na, d: da, r: ha, i: ma, Z: Va, l: ya, p: ga, s: ba, t: Ea, y: Aa, fa: _a, B: $a, K: Ia, C: za, ga: Sa, ha: Ta, h: ia, a: ge, Qa: V } };\n }\n async function Ut() {\n function e(s, f) {\n return Ee = s.exports, Ee = function() {\n var p = Ee, E = (x) => () => x() >>> 0, S = (x) => (R) => x(R) >>> 0;\n return (p = Object.assign({}, p)).sb = E(p.sb), p.ub = S(p.ub), p.Ib = S(p.Ib), p.Jb = E(p.Jb), p.Nb = S(p.Nb), p;\n }(), mn.push(Ee.vb), s = Ee, t._OrtInit = s.Ua, t._OrtGetLastError = s.Va, t._OrtCreateSessionOptions = s.Wa, t._OrtAppendExecutionProvider = s.Xa, t._OrtAddFreeDimensionOverride = s.Ya, t._OrtAddSessionConfigEntry = s.Za, t._OrtReleaseSessionOptions = s._a, t._OrtCreateSession = s.$a, t._OrtReleaseSession = s.ab, t._OrtGetInputOutputCount = s.bb, t._OrtGetInputOutputMetadata = s.cb, t._OrtFree = s.db, t._OrtCreateTensor = s.eb, t._OrtGetTensorData = s.fb, t._OrtReleaseTensor = s.gb, t._OrtCreateRunOptions = s.hb, t._OrtAddRunConfigEntry = s.ib, t._OrtReleaseRunOptions = s.jb, t._OrtCreateBinding = s.kb, t._OrtBindInput = s.lb, t._OrtBindOutput = s.mb, t._OrtClearBoundOutputs = s.nb, t._OrtReleaseBinding = s.ob, t._OrtRunWithBinding = s.pb, t._OrtRun = s.qb, t._OrtEndProfiling = s.rb, st = s.sb, Kn = t._free = s.tb, er = t._malloc = s.ub, zt = s.xb, tr = s.yb, nr = s.zb, rr = s.Ab, Ht = s.Bb, or = s.Cb, ar = s.Db, M = s.Eb, Je = s.Fb, sr = s.Gb, P = s.Hb, jt = s.Ib, U = s.Jb, ir = s.Kb, Vt = s.Lb, ur = s.Mb, fr = s.Nb, cr = s.wb, b = f, Ee;\n }\n var r, i = q();\n return t.instantiateWasm ? new Promise((s) => {\n t.instantiateWasm(i, (f, p) => {\n s(e(f, p));\n });\n }) : o ? e(new WebAssembly.Instance(b, q()), b) : (K ?? (K = t.locateFile ? t.locateFile ? t.locateFile("ort-wasm-simd-threaded.wasm", h) : h + "ort-wasm-simd-threaded.wasm" : new URL("ort-wasm-simd-threaded.wasm", import_meta.url).href), r = await async function(s) {\n var f = K;\n if (!g && !k(f))\n try {\n var p = fetch(f, { credentials: "same-origin" });\n return await WebAssembly.instantiateStreaming(p, s);\n } catch (E) {\n F(`wasm streaming compile failed: ${E}`), F("falling back to ArrayBuffer instantiation");\n }\n return async function(E, S) {\n try {\n var x = await async function(R) {\n if (!g)\n try {\n var X = await d(R);\n return new Uint8Array(X);\n } catch {\n }\n if (R == K && g)\n R = new Uint8Array(g);\n else {\n if (!c)\n throw "both async and sync fetching of the wasm failed";\n R = c(R);\n }\n return R;\n }(E);\n return await WebAssembly.instantiate(x, S);\n } catch (R) {\n F(`failed to asynchronously prepare wasm: ${R}`), H(R);\n }\n }(f, s);\n }(i), e(r.instance, r.module));\n }\n class Se {\n constructor(r) {\n __publicField(this, "name", "ExitStatus");\n this.message = `Program terminated with exit(${r})`, this.status = r;\n }\n }\n var ve = (e) => {\n e.terminate(), e.onmessage = () => {\n };\n }, Ve = [], Re = 0, te = null, ue = (e) => {\n ce.length == 0 && (yn(), bn(ce[0]));\n var r = ce.pop();\n if (!r)\n return 6;\n Fe.push(r), Oe[e.Ob] = r, r.Ob = e.Ob;\n var i = { Pb: "run", bc: e.ac, Tb: e.Tb, Ob: e.Ob };\n return r.postMessage(i, e.Xb), 0;\n }, se = 0, L = (e, r, ...i) => {\n var s, f = 16 * i.length, p = U(), E = jt(f), S = E >>> 3;\n for (s of i)\n typeof s == "bigint" ? ((w(), A)[S++ >>> 0] = 1n, (w(), A)[S++ >>> 0] = s) : ((w(), A)[S++ >>> 0] = 0n, (w(), me)[S++ >>> 0] = s);\n return e = nr(e, 0, f, E, r), P(p), e;\n };\n function V(e) {\n if (o)\n return L(0, 1, e);\n if (y = e, !(0 < se)) {\n for (var r of Fe)\n ve(r);\n for (r of ce)\n ve(r);\n ce = [], Fe = [], Oe = {}, _ = true;\n }\n l(0, new Se(e));\n }\n function fe(e) {\n if (o)\n return L(1, 0, e);\n ye(e);\n }\n var ye = (e) => {\n if (y = e, o)\n throw fe(e), "unwind";\n V(e);\n }, ce = [], Fe = [], mn = [], Oe = {}, hn = (e) => {\n var r = e.Ob;\n delete Oe[r], ce.push(e), Fe.splice(Fe.indexOf(e), 1), e.Ob = 0, rr(r);\n };\n function wn() {\n mn.forEach((e) => e());\n }\n var bn = (e) => new Promise((r) => {\n e.onmessage = (f) => {\n var p = f.data;\n if (f = p.Pb, p.Sb && p.Sb != st()) {\n var E = Oe[p.Sb];\n E ? E.postMessage(p, p.Xb) : F(`Internal error! Worker sent a message "${f}" to target pthread ${p.Sb}, but that thread no longer exists!`);\n } else\n f === "checkMailbox" ? rt() : f === "spawnThread" ? ue(p) : f === "cleanupThread" ? Rt(() => {\n hn(Oe[p.cc]);\n }) : f === "loaded" ? (e.loaded = true, r(e)) : p.target === "setimmediate" ? e.postMessage(p) : f === "uncaughtException" ? e.onerror(p.error) : f === "callHandler" ? t[p.Yb](...p.args) : f && F(`worker sent an unknown command ${f}`);\n }, e.onerror = (f) => {\n throw F(`worker sent an error! ${f.filename}:${f.lineno}: ${f.message}`), f;\n };\n var i, s = [];\n for (i of [])\n t.propertyIsEnumerable(i) && s.push(i);\n e.postMessage({ Pb: "load", Zb: s, dc: ge, ec: b });\n });\n function yn() {\n var e = new Worker((() => {\n let r = URL;\n return import_meta.url > "file:" && import_meta.url < "file;" ? new r("ort.wasm.bundle.min.mjs", import_meta.url) : new URL(import_meta.url);\n })(), { type: "module", workerData: "em-pthread", name: "em-pthread" });\n ce.push(e);\n }\n var ge, gn = [], C = (e) => {\n var r = gn[e];\n return r || (gn[e] = r = cr.get(e)), r;\n }, Ao = (e, r) => {\n se = 0, e = C(e)(r), 0 < se ? y = e : Ht(e);\n }, tt = [], nt = 0;\n function Io(e) {\n var r = new xt(e >>>= 0);\n return (w(), j)[r.Qb + 12 >>> 0] == 0 && (En(r, true), nt--), Tn(r, false), tt.push(r), fr(e);\n }\n var Ne = 0, Bo = () => {\n M(0, 0);\n var e = tt.pop();\n ir(e.Ub), Ne = 0;\n };\n function En(e, r) {\n r = r ? 1 : 0, (w(), j)[e.Qb + 12 >>> 0] = r;\n }\n function Tn(e, r) {\n r = r ? 1 : 0, (w(), j)[e.Qb + 13 >>> 0] = r;\n }\n class xt {\n constructor(r) {\n this.Ub = r, this.Qb = r - 24;\n }\n }\n var Mt = (e) => {\n var r = Ne;\n if (!r)\n return Je(0), 0;\n var i = new xt(r);\n (w(), W)[i.Qb + 16 >>> 2 >>> 0] = r;\n var s = (w(), W)[i.Qb + 4 >>> 2 >>> 0];\n if (!s)\n return Je(0), r;\n for (var f of e) {\n if (f === 0 || f === s)\n break;\n if (ur(f, s, i.Qb + 16))\n return Je(f), r;\n }\n return Je(s), r;\n };\n function Lo() {\n return Mt([]);\n }\n function _o(e) {\n return Mt([e >>> 0]);\n }\n function Po(e, r, i, s) {\n return Mt([e >>> 0, r >>> 0, i >>> 0, s >>> 0]);\n }\n var Do = () => {\n var e = tt.pop();\n e || H("no exception to throw");\n var r = e.Ub;\n throw (w(), j)[e.Qb + 13 >>> 0] == 0 && (tt.push(e), Tn(e, true), En(e, false), nt++), Vt(r), Ne = r;\n };\n function Uo(e, r, i) {\n var s = new xt(e >>>= 0);\n throw r >>>= 0, i >>>= 0, (w(), W)[s.Qb + 16 >>> 2 >>> 0] = 0, (w(), W)[s.Qb + 4 >>> 2 >>> 0] = r, (w(), W)[s.Qb + 8 >>> 2 >>> 0] = i, Vt(e), nt++, Ne = e;\n }\n var xo = () => nt;\n function Sn(e, r, i, s) {\n return o ? L(2, 1, e, r, i, s) : vn(e, r, i, s);\n }\n function vn(e, r, i, s) {\n if (e >>>= 0, r >>>= 0, i >>>= 0, s >>>= 0, !globalThis.SharedArrayBuffer)\n return 6;\n var f = [];\n return o && f.length === 0 ? Sn(e, r, i, s) : (e = { ac: i, Ob: e, Tb: s, Xb: f }, o ? (e.Pb = "spawnThread", postMessage(e, f), 0) : ue(e));\n }\n function Mo(e) {\n throw Ne || (Ne = e >>> 0), Ne;\n }\n var On = globalThis.TextDecoder && new TextDecoder(), An = (e, r = 0, i, s) => {\n var f = r >>>= 0;\n if (i = f + i, s)\n s = i;\n else {\n for (; e[f] && !(f >= i); )\n ++f;\n s = f;\n }\n if (16 < s - r && e.buffer && On)\n return On.decode(e.buffer instanceof ArrayBuffer ? e.subarray(r, s) : e.slice(r, s));\n for (f = ""; r < s; )\n if (128 & (i = e[r++])) {\n var p = 63 & e[r++];\n if ((224 & i) == 192)\n f += String.fromCharCode((31 & i) << 6 | p);\n else {\n var E = 63 & e[r++];\n 65536 > (i = (240 & i) == 224 ? (15 & i) << 12 | p << 6 | E : (7 & i) << 18 | p << 12 | E << 6 | 63 & e[r++]) ? f += String.fromCharCode(i) : (i -= 65536, f += String.fromCharCode(55296 | i >> 10, 56320 | 1023 & i));\n }\n } else\n f += String.fromCharCode(i);\n return f;\n }, Ct = (e, r, i) => (e >>>= 0) ? An((w(), ne), e, r, i) : "";\n function In(e, r, i) {\n return o ? L(3, 1, e, r, i) : 0;\n }\n function Bn(e, r) {\n if (o)\n return L(4, 1, e, r);\n }\n function Ln(e, r) {\n if (o)\n return L(5, 1, e, r);\n }\n function _n(e, r, i) {\n if (o)\n return L(6, 1, e, r, i);\n }\n function Pn(e, r, i) {\n return o ? L(7, 1, e, r, i) : 0;\n }\n function Dn(e, r) {\n if (o)\n return L(8, 1, e, r);\n }\n function Un(e, r, i) {\n if (o)\n return L(9, 1, e, r, i);\n }\n function xn(e, r, i, s) {\n if (o)\n return L(10, 1, e, r, i, s);\n }\n function Mn(e, r, i, s) {\n if (o)\n return L(11, 1, e, r, i, s);\n }\n function Cn(e, r, i, s) {\n if (o)\n return L(12, 1, e, r, i, s);\n }\n function Rn(e) {\n if (o)\n return L(13, 1, e);\n }\n function Fn(e, r) {\n if (o)\n return L(14, 1, e, r);\n }\n function Nn(e, r, i) {\n if (o)\n return L(15, 1, e, r, i);\n }\n var Co = () => H("");\n function Ro(e) {\n zt(e >>> 0, !u, 1, !a, 131072, false), wn();\n }\n var Rt = (e) => {\n if (!_)\n try {\n if (e(), !(0 < se))\n try {\n o ? st() && Ht(y) : ye(y);\n } catch (r) {\n r instanceof Se || r == "unwind" || l(0, r);\n }\n } catch (r) {\n r instanceof Se || r == "unwind" || l(0, r);\n }\n }, Fo = !Atomics.waitAsync || globalThis.navigator?.userAgent && 91 > Number((navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./) || [])[2]);\n function Ft(e) {\n e >>>= 0, Fo || (Atomics.waitAsync((w(), B), e >>> 2, e).value.then(rt), e += 128, Atomics.store((w(), B), e >>> 2, 1));\n }\n var rt = () => Rt(() => {\n var e = st();\n e && (Ft(e), ar());\n });\n function No(e, r) {\n (e >>>= 0) == r >>> 0 ? setTimeout(rt) : o ? postMessage({ Sb: e, Pb: "checkMailbox" }) : (e = Oe[e]) && e.postMessage({ Pb: "checkMailbox" });\n }\n var Nt = [];\n function ko(e, r, i, s, f) {\n for (r >>>= 0, f >>>= 0, Nt.length = 0, i = f >>> 3, s = f + s >>> 3; i < s; ) {\n var p;\n p = (w(), A)[i++ >>> 0] ? (w(), A)[i++ >>> 0] : (w(), me)[i++ >>> 0], Nt.push(p);\n }\n return (r ? lr[r] : ua[e])(...Nt);\n }\n var Wo = () => {\n se = 0;\n };\n function Go(e) {\n e >>>= 0, o ? postMessage({ Pb: "cleanupThread", cc: e }) : hn(Oe[e]);\n }\n function $o(e) {\n }\n function zo(e, r) {\n e = -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e), r >>>= 0, e = new Date(1e3 * e), (w(), B)[r >>> 2 >>> 0] = e.getUTCSeconds(), (w(), B)[r + 4 >>> 2 >>> 0] = e.getUTCMinutes(), (w(), B)[r + 8 >>> 2 >>> 0] = e.getUTCHours(), (w(), B)[r + 12 >>> 2 >>> 0] = e.getUTCDate(), (w(), B)[r + 16 >>> 2 >>> 0] = e.getUTCMonth(), (w(), B)[r + 20 >>> 2 >>> 0] = e.getUTCFullYear() - 1900, (w(), B)[r + 24 >>> 2 >>> 0] = e.getUTCDay(), e = (e.getTime() - Date.UTC(e.getUTCFullYear(), 0, 1, 0, 0, 0, 0)) / 864e5 | 0, (w(), B)[r + 28 >>> 2 >>> 0] = e;\n }\n var kn = (e) => e % 4 == 0 && (e % 100 != 0 || e % 400 == 0), Wn = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335], Gn = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n function Ho(e, r) {\n e = -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e), r >>>= 0, e = new Date(1e3 * e), (w(), B)[r >>> 2 >>> 0] = e.getSeconds(), (w(), B)[r + 4 >>> 2 >>> 0] = e.getMinutes(), (w(), B)[r + 8 >>> 2 >>> 0] = e.getHours(), (w(), B)[r + 12 >>> 2 >>> 0] = e.getDate(), (w(), B)[r + 16 >>> 2 >>> 0] = e.getMonth(), (w(), B)[r + 20 >>> 2 >>> 0] = e.getFullYear() - 1900, (w(), B)[r + 24 >>> 2 >>> 0] = e.getDay();\n var i = (kn(e.getFullYear()) ? Wn : Gn)[e.getMonth()] + e.getDate() - 1 | 0;\n (w(), B)[r + 28 >>> 2 >>> 0] = i, (w(), B)[r + 36 >>> 2 >>> 0] = -60 * e.getTimezoneOffset(), i = new Date(e.getFullYear(), 6, 1).getTimezoneOffset();\n var s = new Date(e.getFullYear(), 0, 1).getTimezoneOffset();\n e = 0 | (i != s && e.getTimezoneOffset() == Math.min(s, i)), (w(), B)[r + 32 >>> 2 >>> 0] = e;\n }\n function jo(e) {\n e >>>= 0;\n var r = new Date((w(), B)[e + 20 >>> 2 >>> 0] + 1900, (w(), B)[e + 16 >>> 2 >>> 0], (w(), B)[e + 12 >>> 2 >>> 0], (w(), B)[e + 8 >>> 2 >>> 0], (w(), B)[e + 4 >>> 2 >>> 0], (w(), B)[e >>> 2 >>> 0], 0), i = (w(), B)[e + 32 >>> 2 >>> 0], s = r.getTimezoneOffset(), f = new Date(r.getFullYear(), 6, 1).getTimezoneOffset(), p = new Date(r.getFullYear(), 0, 1).getTimezoneOffset(), E = Math.min(p, f);\n return 0 > i ? (w(), B)[e + 32 >>> 2 >>> 0] = +(f != p && E == s) : 0 < i != (E == s) && (f = Math.max(p, f), r.setTime(r.getTime() + 6e4 * ((0 < i ? E : f) - s))), (w(), B)[e + 24 >>> 2 >>> 0] = r.getDay(), i = (kn(r.getFullYear()) ? Wn : Gn)[r.getMonth()] + r.getDate() - 1 | 0, (w(), B)[e + 28 >>> 2 >>> 0] = i, (w(), B)[e >>> 2 >>> 0] = r.getSeconds(), (w(), B)[e + 4 >>> 2 >>> 0] = r.getMinutes(), (w(), B)[e + 8 >>> 2 >>> 0] = r.getHours(), (w(), B)[e + 12 >>> 2 >>> 0] = r.getDate(), (w(), B)[e + 16 >>> 2 >>> 0] = r.getMonth(), (w(), B)[e + 20 >>> 2 >>> 0] = r.getYear(), e = r.getTime(), BigInt(isNaN(e) ? -1 : e / 1e3);\n }\n function $n(e, r, i, s, f, p, E) {\n return o ? L(16, 1, e, r, i, s, f, p, E) : -52;\n }\n function zn(e, r, i, s, f, p) {\n if (o)\n return L(17, 1, e, r, i, s, f, p);\n }\n var Ye = {}, Vo = () => performance.timeOrigin + performance.now();\n function Hn(e, r) {\n if (o)\n return L(18, 1, e, r);\n if (Ye[e] && (clearTimeout(Ye[e].id), delete Ye[e]), !r)\n return 0;\n var i = setTimeout(() => {\n delete Ye[e], Rt(() => or(e, performance.timeOrigin + performance.now()));\n }, r);\n return Ye[e] = { id: i, jc: r }, 0;\n }\n var Ae = (e, r, i) => {\n var s = (w(), ne);\n if (r >>>= 0, 0 < i) {\n var f = r;\n i = r + i - 1;\n for (var p = 0; p < e.length; ++p) {\n var E = e.codePointAt(p);\n if (127 >= E) {\n if (r >= i)\n break;\n s[r++ >>> 0] = E;\n } else if (2047 >= E) {\n if (r + 1 >= i)\n break;\n s[r++ >>> 0] = 192 | E >> 6, s[r++ >>> 0] = 128 | 63 & E;\n } else if (65535 >= E) {\n if (r + 2 >= i)\n break;\n s[r++ >>> 0] = 224 | E >> 12, s[r++ >>> 0] = 128 | E >> 6 & 63, s[r++ >>> 0] = 128 | 63 & E;\n } else {\n if (r + 3 >= i)\n break;\n s[r++ >>> 0] = 240 | E >> 18, s[r++ >>> 0] = 128 | E >> 12 & 63, s[r++ >>> 0] = 128 | E >> 6 & 63, s[r++ >>> 0] = 128 | 63 & E, p++;\n }\n }\n s[r >>> 0] = 0, e = r - f;\n } else\n e = 0;\n return e;\n };\n function Yo(e, r, i, s) {\n e >>>= 0, r >>>= 0, i >>>= 0, s >>>= 0;\n var f = (/* @__PURE__ */ new Date()).getFullYear(), p = new Date(f, 0, 1).getTimezoneOffset();\n f = new Date(f, 6, 1).getTimezoneOffset();\n var E = Math.max(p, f);\n (w(), W)[e >>> 2 >>> 0] = 60 * E, (w(), B)[r >>> 2 >>> 0] = +(p != f), e = (r = (S) => {\n var x = Math.abs(S);\n return `UTC${0 <= S ? "-" : "+"}${String(Math.floor(x / 60)).padStart(2, "0")}${String(x % 60).padStart(2, "0")}`;\n })(p), r = r(f), f < p ? (Ae(e, i, 17), Ae(r, s, 17)) : (Ae(e, s, 17), Ae(r, i, 17));\n }\n var Jo = () => Date.now(), qo = 1;\n function Xo(e, r, i) {\n if (i >>>= 0, !(0 <= e && 3 >= e))\n return 28;\n if (e === 0)\n e = Date.now();\n else {\n if (!qo)\n return 52;\n e = performance.timeOrigin + performance.now();\n }\n return e = Math.round(1e6 * e), (w(), A)[i >>> 3 >>> 0] = BigInt(e), 0;\n }\n var kt = [];\n function Qo(e, r, i) {\n e >>>= 0, r >>>= 0, i >>>= 0, kt.length = 0;\n for (var s; s = (w(), ne)[r++ >>> 0]; ) {\n var f = s != 105;\n i += (f &= s != 112) && i % 8 ? 4 : 0, kt.push(s == 112 ? (w(), W)[i >>> 2 >>> 0] : s == 106 ? (w(), A)[i >>> 3 >>> 0] : s == 105 ? (w(), B)[i >>> 2 >>> 0] : (w(), me)[i >>> 3 >>> 0]), i += f ? 8 : 4;\n }\n return lr[e](...kt);\n }\n var Zo = () => {\n };\n function Ko(e, r) {\n return F(Ct(e >>> 0, r >>> 0));\n }\n var ea = () => {\n throw se += 1, "unwind";\n };\n function ta() {\n return 4294901760;\n }\n var na = () => navigator.hardwareConcurrency, Ie = {}, Wt = (e) => {\n for (var r = 0, i = 0; i < e.length; ++i) {\n var s = e.charCodeAt(i);\n 127 >= s ? r++ : 2047 >= s ? r += 2 : 55296 <= s && 57343 >= s ? (r += 4, ++i) : r += 3;\n }\n return r;\n }, ot = (e) => {\n var r;\n return (r = /\\bwasm-function\\[\\d+\\]:(0x[0-9a-f]+)/.exec(e)) ? +r[1] : (r = /:(\\d+):\\d+(?:\\)|$)/.exec(e)) ? 2147483648 | +r[1] : 0;\n }, jn = (e) => {\n for (var r of e)\n (e = ot(r)) && (Ie[e] = r);\n };\n function ra() {\n var e = Error().stack.toString().split(`\n`);\n return e[0] == "Error" && e.shift(), jn(e), Ie.Vb = ot(e[3]), Ie.$b = e, Ie.Vb;\n }\n function at(e) {\n if (!(e = Ie[e >>> 0]))\n return 0;\n var r;\n if (r = /^\\s+at .*\\.wasm\\.(.*) \\(.*\\)$/.exec(e))\n e = r[1];\n else if (r = /^\\s+at (.*) \\(.*\\)$/.exec(e))\n e = r[1];\n else {\n if (!(r = /^(.+?)@/.exec(e)))\n return 0;\n e = r[1];\n }\n Kn(at.Wb ?? 0), r = Wt(e) + 1;\n var i = er(r);\n return i && Ae(e, i, r), at.Wb = i, at.Wb;\n }\n function oa(e) {\n e >>>= 0;\n var r = (w(), ne).length;\n if (e <= r || 4294901760 < e)\n return false;\n for (var i = 1; 4 >= i; i *= 2) {\n var s = r * (1 + 0.2 / i);\n s = Math.min(s, e + 100663296);\n e: {\n s = (Math.min(4294901760, 65536 * Math.ceil(Math.max(e, s) / 65536)) - ge.buffer.byteLength + 65535) / 65536 | 0;\n try {\n ge.grow(s), ee();\n var f = 1;\n break e;\n } catch {\n }\n f = void 0;\n }\n if (f)\n return true;\n }\n return false;\n }\n function aa(e, r, i) {\n if (e >>>= 0, r >>>= 0, Ie.Vb == e)\n var s = Ie.$b;\n else\n (s = Error().stack.toString().split(`\n`))[0] == "Error" && s.shift(), jn(s);\n for (var f = 3; s[f] && ot(s[f]) != e; )\n ++f;\n for (e = 0; e < i && s[e + f]; ++e)\n (w(), B)[r + 4 * e >>> 2 >>> 0] = ot(s[e + f]);\n return e;\n }\n var Gt, $t = {}, Vn = () => {\n if (!Gt) {\n var e, r = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8", _: "./this.program" };\n for (e in $t)\n $t[e] === void 0 ? delete r[e] : r[e] = $t[e];\n var i = [];\n for (e in r)\n i.push(`${e}=${r[e]}`);\n Gt = i;\n }\n return Gt;\n };\n function Yn(e, r) {\n if (o)\n return L(19, 1, e, r);\n e >>>= 0, r >>>= 0;\n var i, s = 0, f = 0;\n for (i of Vn()) {\n var p = r + s;\n (w(), W)[e + f >>> 2 >>> 0] = p, s += Ae(i, p, 1 / 0) + 1, f += 4;\n }\n return 0;\n }\n function Jn(e, r) {\n if (o)\n return L(20, 1, e, r);\n e >>>= 0, r >>>= 0;\n var i = Vn();\n for (var s of ((w(), W)[e >>> 2 >>> 0] = i.length, e = 0, i))\n e += Wt(s) + 1;\n return (w(), W)[r >>> 2 >>> 0] = e, 0;\n }\n function qn(e) {\n return o ? L(21, 1, e) : 52;\n }\n function Xn(e, r, i, s) {\n return o ? L(22, 1, e, r, i, s) : 52;\n }\n function Qn(e, r, i, s) {\n return o ? L(23, 1, e, r, i, s) : 70;\n }\n var sa = [null, [], []];\n function Zn(e, r, i, s) {\n if (o)\n return L(24, 1, e, r, i, s);\n r >>>= 0, i >>>= 0, s >>>= 0;\n for (var f = 0, p = 0; p < i; p++) {\n var E = (w(), W)[r >>> 2 >>> 0], S = (w(), W)[r + 4 >>> 2 >>> 0];\n r += 8;\n for (var x = 0; x < S; x++) {\n var R = e, X = (w(), ne)[E + x >>> 0], le = sa[R];\n X === 0 || X === 10 ? ((R === 1 ? O : F)(An(le)), le.length = 0) : le.push(X);\n }\n f += S;\n }\n return (w(), W)[s >>> 2 >>> 0] = f, 0;\n }\n function ia(e) {\n return e >>> 0;\n }\n o || function() {\n for (var e = t.numThreads - 1; e--; )\n yn();\n Ve.push(async () => {\n var r = async function() {\n if (!o)\n return Promise.all(ce.map(bn));\n }();\n Re++, await r, --Re == 0 && te && (r = te, te = null, r());\n });\n }(), o || (ge = new WebAssembly.Memory({ initial: 256, maximum: 65536, shared: true }), ee()), t.wasmBinary && (g = t.wasmBinary), t.stackSave = () => U(), t.stackRestore = (e) => P(e), t.stackAlloc = (e) => jt(e), t.setValue = function(e, r, i = "i8") {\n switch (i.endsWith("*") && (i = "*"), i) {\n case "i1":\n case "i8":\n (w(), j)[e >>> 0] = r;\n break;\n case "i16":\n (w(), pe)[e >>> 1 >>> 0] = r;\n break;\n case "i32":\n (w(), B)[e >>> 2 >>> 0] = r;\n break;\n case "i64":\n (w(), A)[e >>> 3 >>> 0] = BigInt(r);\n break;\n case "float":\n (w(), re)[e >>> 2 >>> 0] = r;\n break;\n case "double":\n (w(), me)[e >>> 3 >>> 0] = r;\n break;\n case "*":\n (w(), W)[e >>> 2 >>> 0] = r;\n break;\n default:\n H(`invalid type for setValue: ${i}`);\n }\n }, t.getValue = function(e, r = "i8") {\n switch (r.endsWith("*") && (r = "*"), r) {\n case "i1":\n case "i8":\n return (w(), j)[e >>> 0];\n case "i16":\n return (w(), pe)[e >>> 1 >>> 0];\n case "i32":\n return (w(), B)[e >>> 2 >>> 0];\n case "i64":\n return (w(), A)[e >>> 3 >>> 0];\n case "float":\n return (w(), re)[e >>> 2 >>> 0];\n case "double":\n return (w(), me)[e >>> 3 >>> 0];\n case "*":\n return (w(), W)[e >>> 2 >>> 0];\n default:\n H(`invalid type for getValue: ${r}`);\n }\n }, t.UTF8ToString = Ct, t.stringToUTF8 = Ae, t.lengthBytesUTF8 = Wt;\n var st, Kn, er, zt, tr, nr, rr, Ht, or, ar, M, Je, sr, P, jt, U, ir, Vt, ur, fr, cr, Ee, ua = [V, fe, Sn, In, Bn, Ln, _n, Pn, Dn, Un, xn, Mn, Cn, Rn, Fn, Nn, $n, zn, Hn, Yn, Jn, qn, Xn, Qn, Zn], lr = { 930988: (e, r, i, s, f) => {\n if (t === void 0 || !t.Rb)\n return 1;\n if ((e = Ct(Number(e >>> 0))).startsWith("./") && (e = e.substring(2)), !(e = t.Rb.get(e)))\n return 2;\n if (r = Number(r >>> 0), i = Number(i >>> 0), s = Number(s >>> 0), r + i > e.byteLength)\n return 3;\n try {\n let p = e.subarray(r, r + i);\n switch (f) {\n case 0:\n (w(), ne).set(p, s >>> 0);\n break;\n case 1:\n t.fc ? t.fc(s, p) : t.ic(s, p);\n break;\n default:\n return 4;\n }\n return 0;\n } catch {\n return 4;\n }\n }, 931812: () => typeof wasmOffsetConverter < "u" };\n function fa() {\n return typeof wasmOffsetConverter < "u";\n }\n function ca(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function la(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function da(e) {\n var r = U();\n try {\n C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n M(1, 0);\n }\n }\n function pa(e, r) {\n var i = U();\n try {\n return C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n M(1, 0);\n }\n }\n function ma(e, r, i) {\n var s = U();\n try {\n C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function ha(e, r) {\n var i = U();\n try {\n C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n M(1, 0);\n }\n }\n function wa(e, r, i, s, f, p, E) {\n var S = U();\n try {\n return C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function ba(e, r, i, s, f, p) {\n var E = U();\n try {\n C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function ya(e, r, i, s) {\n var f = U();\n try {\n C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function ga(e, r, i, s, f) {\n var p = U();\n try {\n C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Ea(e, r, i, s, f, p, E) {\n var S = U();\n try {\n C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function Ta(e, r, i, s, f, p, E) {\n var S = U();\n try {\n C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function Sa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function va(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Oa(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function Aa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function Ia(e, r, i, s, f, p, E, S, x, R, X, le) {\n var we = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X, le);\n } catch (be) {\n if (P(we), be !== be + 0)\n throw be;\n M(1, 0);\n }\n }\n function Ba(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function La(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n return M(1, 0), 0n;\n }\n }\n function _a(e, r, i, s, f, p, E, S, x) {\n var R = U();\n try {\n C(e)(r, i, s, f, p, E, S, x);\n } catch (X) {\n if (P(R), X !== X + 0)\n throw X;\n M(1, 0);\n }\n }\n function Pa(e) {\n var r = U();\n try {\n return C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n M(1, 0);\n }\n }\n function Da(e, r) {\n var i = U();\n try {\n return C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n return M(1, 0), 0n;\n }\n }\n function Ua(e) {\n var r = U();\n try {\n return C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n return M(1, 0), 0n;\n }\n }\n function xa(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Ma(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Ca(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function Ra(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function Fa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n return C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function Na(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n return M(1, 0), 0n;\n }\n }\n function ka(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Wa(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Ga(e, r, i, s, f, p, E, S, x, R, X, le) {\n var we = U();\n try {\n return C(e)(r, i, s, f, p, E, S, x, R, X, le);\n } catch (be) {\n if (P(we), be !== be + 0)\n throw be;\n M(1, 0);\n }\n }\n function $a(e, r, i, s, f, p, E, S, x, R, X) {\n var le = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X);\n } catch (we) {\n if (P(le), we !== we + 0)\n throw we;\n M(1, 0);\n }\n }\n function za(e, r, i, s, f, p, E, S, x, R, X, le, we, be, Ya, Ja) {\n var qa = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X, le, we, be, Ya, Ja);\n } catch (Yt) {\n if (P(qa), Yt !== Yt + 0)\n throw Yt;\n M(1, 0);\n }\n }\n function Ha(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function ja(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function Va(e, r, i, s) {\n var f = U();\n try {\n C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function it() {\n if (0 < Re)\n te = it;\n else if (o)\n T?.(t), he();\n else {\n for (var e = Ve; 0 < e.length; )\n e.shift()(t);\n 0 < Re ? te = it : (t.calledRun = true, _ || (he(), T?.(t)));\n }\n }\n return o || (Ee = await Ut(), it()), t.PTR_SIZE = 4, je ? t : new Promise((e, r) => {\n T = e, I = r;\n });\n }\n var rs;\n var os;\n var Jr = N(() => {\n "use strict";\n rs = Vr, os = globalThis.self?.name?.startsWith("em-pthread");\n os && Vr();\n });\n var Qr;\n var an;\n var as;\n var oe;\n var Zr;\n var on;\n var ss;\n var is;\n var Kr;\n var us;\n var qr;\n var eo;\n var Xr;\n var to;\n var pt = N(() => {\n "use strict";\n dt();\n Qr = typeof location > "u" ? void 0 : location.origin, an = import_meta.url > "file:" && import_meta.url < "file;", as = () => {\n if (true) {\n if (an) {\n let n = URL;\n return new URL(new n("ort.wasm.bundle.min.mjs", import_meta.url).href, Qr).href;\n }\n return import_meta.url;\n }\n }, oe = as(), Zr = () => {\n if (oe && !oe.startsWith("blob:"))\n return oe.substring(0, oe.lastIndexOf("/") + 1);\n }, on = (n, t) => {\n try {\n let a = t ?? oe;\n return (a ? new URL(n, a) : new URL(n)).origin === Qr;\n } catch {\n return false;\n }\n }, ss = (n, t) => {\n let a = t ?? oe;\n try {\n return (a ? new URL(n, a) : new URL(n)).href;\n } catch {\n return;\n }\n }, is = (n, t) => `${t ?? "./"}${n}`, Kr = async (n) => {\n let a = await (await fetch(n, { credentials: "same-origin" })).blob();\n return URL.createObjectURL(a);\n }, us = async (n) => (await import(\n /*webpackIgnore:true*/\n /*@vite-ignore*/\n n\n )).default, qr = (jr(), Xt(Hr)).default, eo = async () => {\n if (!oe)\n throw new Error("Failed to load proxy worker: cannot determine the script source URL.");\n if (on(oe))\n return [void 0, qr()];\n let n = await Kr(oe);\n return [n, qr(n)];\n }, Xr = (Jr(), Xt(Yr)).default, to = async (n, t, a, u) => {\n let o = Xr && !(n || t);\n if (o)\n if (oe)\n o = on(oe) || u && !a;\n else if (u && !a)\n o = true;\n else\n throw new Error("cannot determine the script source URL.");\n if (o)\n return [void 0, Xr];\n {\n let d = "ort-wasm-simd-threaded.mjs", c = n ?? ss(d, t), l = a && c && !on(c, t), m = l ? await Kr(c) : c ?? is(d, t);\n return [l ? m : void 0, await us(m)];\n }\n };\n });\n var sn;\n var un;\n var St;\n var no;\n var fs;\n var cs;\n var ls;\n var mt;\n var $;\n var xe = N(() => {\n "use strict";\n pt();\n un = false, St = false, no = false, fs = () => {\n if (typeof SharedArrayBuffer > "u")\n return false;\n try {\n return typeof MessageChannel < "u" && new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)), WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 5, 4, 1, 3, 1, 1, 10, 11, 1, 9, 0, 65, 0, 254, 16, 2, 0, 26, 11]));\n } catch {\n return false;\n }\n }, cs = () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 10, 30, 1, 28, 0, 65, 0, 253, 15, 253, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 186, 1, 26, 11]));\n } catch {\n return false;\n }\n }, ls = () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 19, 1, 17, 0, 65, 1, 253, 15, 65, 2, 253, 15, 65, 3, 253, 15, 253, 147, 2, 11]));\n } catch {\n return false;\n }\n }, mt = async (n) => {\n if (un)\n return Promise.resolve();\n if (St)\n throw new Error("multiple calls to \'initializeWebAssembly()\' detected.");\n if (no)\n throw new Error("previous call to \'initializeWebAssembly()\' failed.");\n St = true;\n let t = n.initTimeout, a = n.numThreads;\n if (n.simd !== false) {\n if (n.simd === "relaxed") {\n if (!ls())\n throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.");\n } else if (!cs())\n throw new Error("WebAssembly SIMD is not supported in the current environment.");\n }\n let u = fs();\n a > 1 && !u && (typeof self < "u" && !self.crossOriginIsolated && console.warn("env.wasm.numThreads is set to " + a + ", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."), console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."), n.numThreads = a = 1);\n let o = n.wasmPaths, d = typeof o == "string" ? o : void 0, c = o?.mjs, l = c?.href ?? c, m = o?.wasm, h = m?.href ?? m, g = n.wasmBinary, [b, y] = await to(l, d, a > 1, !!g || !!h), T = false, I = [];\n if (t > 0 && I.push(new Promise((D) => {\n setTimeout(() => {\n T = true, D();\n }, t);\n })), I.push(new Promise((D, z) => {\n let v = { numThreads: a };\n if (g)\n v.wasmBinary = g, v.locateFile = (O) => O;\n else if (h || d)\n v.locateFile = (O) => h ?? d + O;\n else if (l && l.indexOf("blob:") !== 0)\n v.locateFile = (O) => new URL(O, l).href;\n else if (b) {\n let O = Zr();\n O && (v.locateFile = (F) => O + F);\n }\n y(v).then((O) => {\n St = false, un = true, sn = O, D(), b && URL.revokeObjectURL(b);\n }, (O) => {\n St = false, no = true, z(O);\n });\n })), await Promise.race(I), T)\n throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`);\n }, $ = () => {\n if (un && sn)\n return sn;\n throw new Error("WebAssembly is not initialized yet.");\n };\n });\n var ae;\n var Ze;\n var G;\n var vt = N(() => {\n "use strict";\n xe();\n ae = (n, t) => {\n let a = $(), u = a.lengthBytesUTF8(n) + 1, o = a._malloc(u);\n return a.stringToUTF8(n, o, u), t.push(o), o;\n }, Ze = (n, t, a, u) => {\n if (typeof n == "object" && n !== null) {\n if (a.has(n))\n throw new Error("Circular reference in options");\n a.add(n);\n }\n Object.entries(n).forEach(([o, d]) => {\n let c = t ? t + o : o;\n if (typeof d == "object")\n Ze(d, c + ".", a, u);\n else if (typeof d == "string" || typeof d == "number")\n u(c, d.toString());\n else if (typeof d == "boolean")\n u(c, d ? "1" : "0");\n else\n throw new Error(`Can\'t handle extra config type: ${typeof d}`);\n });\n }, G = (n) => {\n let t = $(), a = t.stackSave();\n try {\n let u = t.PTR_SIZE, o = t.stackAlloc(2 * u);\n t._OrtGetLastError(o, o + u);\n let d = Number(t.getValue(o, u === 4 ? "i32" : "i64")), c = t.getValue(o + u, "*"), l = c ? t.UTF8ToString(c) : "";\n throw new Error(`${n} ERROR_CODE: ${d}, ERROR_MESSAGE: ${l}`);\n } finally {\n t.stackRestore(a);\n }\n };\n });\n var ro;\n var oo = N(() => {\n "use strict";\n xe();\n vt();\n ro = (n) => {\n let t = $(), a = 0, u = [], o = n || {};\n try {\n if (n?.logSeverityLevel === void 0)\n o.logSeverityLevel = 2;\n else if (typeof n.logSeverityLevel != "number" || !Number.isInteger(n.logSeverityLevel) || n.logSeverityLevel < 0 || n.logSeverityLevel > 4)\n throw new Error(`log severity level is not valid: ${n.logSeverityLevel}`);\n if (n?.logVerbosityLevel === void 0)\n o.logVerbosityLevel = 0;\n else if (typeof n.logVerbosityLevel != "number" || !Number.isInteger(n.logVerbosityLevel))\n throw new Error(`log verbosity level is not valid: ${n.logVerbosityLevel}`);\n n?.terminate === void 0 && (o.terminate = false);\n let d = 0;\n return n?.tag !== void 0 && (d = ae(n.tag, u)), a = t._OrtCreateRunOptions(o.logSeverityLevel, o.logVerbosityLevel, !!o.terminate, d), a === 0 && G("Can\'t create run options."), n?.extra !== void 0 && Ze(n.extra, "", /* @__PURE__ */ new WeakSet(), (c, l) => {\n let m = ae(c, u), h = ae(l, u);\n t._OrtAddRunConfigEntry(a, m, h) !== 0 && G(`Can\'t set a run config entry: ${c} - ${l}.`);\n }), [a, u];\n } catch (d) {\n throw a !== 0 && t._OrtReleaseRunOptions(a), u.forEach((c) => t._free(c)), d;\n }\n };\n });\n var ds;\n var ps;\n var ms;\n var ke;\n var hs;\n var ao;\n var so = N(() => {\n "use strict";\n xe();\n vt();\n ds = (n) => {\n switch (n) {\n case "disabled":\n return 0;\n case "basic":\n return 1;\n case "extended":\n return 2;\n case "layout":\n return 3;\n case "all":\n return 99;\n default:\n throw new Error(`unsupported graph optimization level: ${n}`);\n }\n }, ps = (n) => {\n switch (n) {\n case "sequential":\n return 0;\n case "parallel":\n return 1;\n default:\n throw new Error(`unsupported execution mode: ${n}`);\n }\n }, ms = (n) => {\n n.extra || (n.extra = {}), n.extra.session || (n.extra.session = {});\n let t = n.extra.session;\n t.use_ort_model_bytes_directly || (t.use_ort_model_bytes_directly = "1"), n.executionProviders && n.executionProviders.some((a) => (typeof a == "string" ? a : a.name) === "webgpu") && (n.enableMemPattern = false);\n }, ke = (n, t, a, u) => {\n let o = ae(t, u), d = ae(a, u);\n $()._OrtAddSessionConfigEntry(n, o, d) !== 0 && G(`Can\'t set a session config entry: ${t} - ${a}.`);\n }, hs = async (n, t, a) => {\n let u = t.executionProviders;\n for (let o of u) {\n let d = typeof o == "string" ? o : o.name, c = [];\n switch (d) {\n case "webnn":\n if (d = "WEBNN", ke(n, "session.disable_quant_qdq", "1", a), ke(n, "session.disable_qdq_constant_folding", "1", a), typeof o != "string") {\n let y = o?.deviceType;\n y && ke(n, "deviceType", y, a);\n }\n break;\n case "webgpu":\n if (d = "JS", typeof o != "string") {\n let b = o;\n if (b?.preferredLayout) {\n if (b.preferredLayout !== "NCHW" && b.preferredLayout !== "NHWC")\n throw new Error(`preferredLayout must be either \'NCHW\' or \'NHWC\': ${b.preferredLayout}`);\n ke(n, "preferredLayout", b.preferredLayout, a);\n }\n }\n break;\n case "wasm":\n case "cpu":\n continue;\n default:\n throw new Error(`not supported execution provider: ${d}`);\n }\n let l = ae(d, a), m = c.length, h = 0, g = 0;\n if (m > 0) {\n h = $()._malloc(m * $().PTR_SIZE), a.push(h), g = $()._malloc(m * $().PTR_SIZE), a.push(g);\n for (let b = 0; b < m; b++)\n $().setValue(h + b * $().PTR_SIZE, c[b][0], "*"), $().setValue(g + b * $().PTR_SIZE, c[b][1], "*");\n }\n await $()._OrtAppendExecutionProvider(n, l, h, g, m) !== 0 && G(`Can\'t append execution provider: ${d}.`);\n }\n }, ao = async (n) => {\n let t = $(), a = 0, u = [], o = n || {};\n ms(o);\n try {\n let d = ds(o.graphOptimizationLevel ?? "all"), c = ps(o.executionMode ?? "sequential"), l = typeof o.logId == "string" ? ae(o.logId, u) : 0, m = o.logSeverityLevel ?? 2;\n if (!Number.isInteger(m) || m < 0 || m > 4)\n throw new Error(`log severity level is not valid: ${m}`);\n let h = o.logVerbosityLevel ?? 0;\n if (!Number.isInteger(h) || h < 0 || h > 4)\n throw new Error(`log verbosity level is not valid: ${h}`);\n let g = typeof o.optimizedModelFilePath == "string" ? ae(o.optimizedModelFilePath, u) : 0;\n if (a = t._OrtCreateSessionOptions(d, !!o.enableCpuMemArena, !!o.enableMemPattern, c, !!o.enableProfiling, 0, l, m, h, g), a === 0 && G("Can\'t create session options."), o.executionProviders && await hs(a, o, u), o.enableGraphCapture !== void 0) {\n if (typeof o.enableGraphCapture != "boolean")\n throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);\n ke(a, "enableGraphCapture", o.enableGraphCapture.toString(), u);\n }\n if (o.freeDimensionOverrides)\n for (let [b, y] of Object.entries(o.freeDimensionOverrides)) {\n if (typeof b != "string")\n throw new Error(`free dimension override name must be a string: ${b}`);\n if (typeof y != "number" || !Number.isInteger(y) || y < 0)\n throw new Error(`free dimension override value must be a non-negative integer: ${y}`);\n let T = ae(b, u);\n t._OrtAddFreeDimensionOverride(a, T, y) !== 0 && G(`Can\'t set a free dimension override: ${b} - ${y}.`);\n }\n return o.extra !== void 0 && Ze(o.extra, "", /* @__PURE__ */ new WeakSet(), (b, y) => {\n ke(a, b, y, u);\n }), [a, u];\n } catch (d) {\n throw a !== 0 && t._OrtReleaseSessionOptions(a) !== 0 && G("Can\'t release session options."), u.forEach((c) => t._free(c)), d;\n }\n };\n });\n var We;\n var Ot;\n var Ge;\n var io;\n var uo;\n var At;\n var It;\n var fo;\n var fn = N(() => {\n "use strict";\n We = (n) => {\n switch (n) {\n case "int8":\n return 3;\n case "uint8":\n return 2;\n case "bool":\n return 9;\n case "int16":\n return 5;\n case "uint16":\n return 4;\n case "int32":\n return 6;\n case "uint32":\n return 12;\n case "float16":\n return 10;\n case "float32":\n return 1;\n case "float64":\n return 11;\n case "string":\n return 8;\n case "int64":\n return 7;\n case "uint64":\n return 13;\n case "int4":\n return 22;\n case "uint4":\n return 21;\n default:\n throw new Error(`unsupported data type: ${n}`);\n }\n }, Ot = (n) => {\n switch (n) {\n case 3:\n return "int8";\n case 2:\n return "uint8";\n case 9:\n return "bool";\n case 5:\n return "int16";\n case 4:\n return "uint16";\n case 6:\n return "int32";\n case 12:\n return "uint32";\n case 10:\n return "float16";\n case 1:\n return "float32";\n case 11:\n return "float64";\n case 8:\n return "string";\n case 7:\n return "int64";\n case 13:\n return "uint64";\n case 22:\n return "int4";\n case 21:\n return "uint4";\n default:\n throw new Error(`unsupported data type: ${n}`);\n }\n }, Ge = (n, t) => {\n let a = [-1, 4, 1, 1, 2, 2, 4, 8, -1, 1, 2, 8, 4, 8, -1, -1, -1, -1, -1, -1, -1, 0.5, 0.5][n], u = typeof t == "number" ? t : t.reduce((o, d) => o * d, 1);\n return a > 0 ? Math.ceil(u * a) : void 0;\n }, io = (n) => {\n switch (n) {\n case "float16":\n return typeof Float16Array < "u" && Float16Array.from ? Float16Array : Uint16Array;\n case "float32":\n return Float32Array;\n case "uint8":\n return Uint8Array;\n case "int8":\n return Int8Array;\n case "uint16":\n return Uint16Array;\n case "int16":\n return Int16Array;\n case "int32":\n return Int32Array;\n case "bool":\n return Uint8Array;\n case "float64":\n return Float64Array;\n case "uint32":\n return Uint32Array;\n case "int64":\n return BigInt64Array;\n case "uint64":\n return BigUint64Array;\n default:\n throw new Error(`unsupported type: ${n}`);\n }\n }, uo = (n) => {\n switch (n) {\n case "verbose":\n return 0;\n case "info":\n return 1;\n case "warning":\n return 2;\n case "error":\n return 3;\n case "fatal":\n return 4;\n default:\n throw new Error(`unsupported logging level: ${n}`);\n }\n }, At = (n) => n === "float32" || n === "float16" || n === "int32" || n === "int64" || n === "uint32" || n === "uint8" || n === "bool" || n === "uint4" || n === "int4", It = (n) => n === "float32" || n === "float16" || n === "int32" || n === "int64" || n === "uint32" || n === "uint64" || n === "int8" || n === "uint8" || n === "bool" || n === "uint4" || n === "int4", fo = (n) => {\n switch (n) {\n case "none":\n return 0;\n case "cpu":\n return 1;\n case "cpu-pinned":\n return 2;\n case "texture":\n return 3;\n case "gpu-buffer":\n return 4;\n case "ml-tensor":\n return 5;\n default:\n throw new Error(`unsupported data location: ${n}`);\n }\n };\n });\n var Ke;\n var cn = N(() => {\n "use strict";\n dt();\n Ke = async (n) => {\n if (typeof n == "string")\n if (false)\n try {\n let { readFile: t } = qt("node:fs/promises");\n return new Uint8Array(await t(n));\n } catch (t) {\n if (t.code === "ERR_FS_FILE_TOO_LARGE") {\n let { createReadStream: a } = qt("node:fs"), u = a(n), o = [];\n for await (let d of u)\n o.push(d);\n return new Uint8Array(Buffer.concat(o));\n }\n throw t;\n }\n else {\n let t = await fetch(n);\n if (!t.ok)\n throw new Error(`failed to load external data file: ${n}`);\n let a = t.headers.get("Content-Length"), u = a ? parseInt(a, 10) : 0;\n if (u < 1073741824)\n return new Uint8Array(await t.arrayBuffer());\n {\n if (!t.body)\n throw new Error(`failed to load external data file: ${n}, no response body.`);\n let o = t.body.getReader(), d;\n try {\n d = new ArrayBuffer(u);\n } catch (l) {\n if (l instanceof RangeError) {\n let m = Math.ceil(u / 65536);\n d = new WebAssembly.Memory({ initial: m, maximum: m }).buffer;\n } else\n throw l;\n }\n let c = 0;\n for (; ; ) {\n let { done: l, value: m } = await o.read();\n if (l)\n break;\n let h = m.byteLength;\n new Uint8Array(d, c, h).set(m), c += h;\n }\n return new Uint8Array(d, 0, u);\n }\n }\n else\n return n instanceof Blob ? new Uint8Array(await n.arrayBuffer()) : n instanceof Uint8Array ? n : new Uint8Array(n);\n };\n });\n var ws;\n var ht;\n var wt;\n var $e;\n var bs;\n var co;\n var Qe;\n var bt;\n var yt;\n var lo;\n var gt;\n var Et;\n var Tt;\n var rn = N(() => {\n "use strict";\n Te();\n oo();\n so();\n fn();\n xe();\n vt();\n cn();\n ws = (n, t) => {\n $()._OrtInit(n, t) !== 0 && G("Can\'t initialize onnxruntime.");\n }, ht = async (n) => {\n ws(n.wasm.numThreads, uo(n.logLevel));\n }, wt = async (n, t) => {\n $().asyncInit?.();\n let a = n.webgpu.adapter;\n if (t === "webgpu") {\n if (typeof navigator > "u" || !navigator.gpu)\n throw new Error("WebGPU is not supported in current environment");\n if (a) {\n if (typeof a.limits != "object" || typeof a.features != "object" || typeof a.requestDevice != "function")\n throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.");\n } else {\n let u = n.webgpu.powerPreference;\n if (u !== void 0 && u !== "low-power" && u !== "high-performance")\n throw new Error(`Invalid powerPreference setting: "${u}"`);\n let o = n.webgpu.forceFallbackAdapter;\n if (o !== void 0 && typeof o != "boolean")\n throw new Error(`Invalid forceFallbackAdapter setting: "${o}"`);\n if (a = await navigator.gpu.requestAdapter({ powerPreference: u, forceFallbackAdapter: o }), !a)\n throw new Error(\'Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.\');\n }\n }\n if (t === "webnn" && (typeof navigator > "u" || !navigator.ml))\n throw new Error("WebNN is not supported in current environment");\n }, $e = /* @__PURE__ */ new Map(), bs = (n) => {\n let t = $(), a = t.stackSave();\n try {\n let u = t.PTR_SIZE, o = t.stackAlloc(2 * u);\n t._OrtGetInputOutputCount(n, o, o + u) !== 0 && G("Can\'t get session input/output count.");\n let c = u === 4 ? "i32" : "i64";\n return [Number(t.getValue(o, c)), Number(t.getValue(o + u, c))];\n } finally {\n t.stackRestore(a);\n }\n }, co = (n, t) => {\n let a = $(), u = a.stackSave(), o = 0;\n try {\n let d = a.PTR_SIZE, c = a.stackAlloc(2 * d);\n a._OrtGetInputOutputMetadata(n, t, c, c + d) !== 0 && G("Can\'t get session input/output metadata.");\n let m = Number(a.getValue(c, "*"));\n o = Number(a.getValue(c + d, "*"));\n let h = a.HEAP32[o / 4];\n if (h === 0)\n return [m, 0];\n let g = a.HEAPU32[o / 4 + 1], b = [];\n for (let y = 0; y < g; y++) {\n let T = Number(a.getValue(o + 8 + y * d, "*"));\n b.push(T !== 0 ? a.UTF8ToString(T) : Number(a.getValue(o + 8 + (y + g) * d, "*")));\n }\n return [m, h, b];\n } finally {\n a.stackRestore(u), o !== 0 && a._OrtFree(o);\n }\n }, Qe = (n) => {\n let t = $(), a = t._malloc(n.byteLength);\n if (a === 0)\n throw new Error(`Can\'t create a session. failed to allocate a buffer of size ${n.byteLength}.`);\n return t.HEAPU8.set(n, a), [a, n.byteLength];\n }, bt = async (n, t) => {\n let a, u, o = $();\n Array.isArray(n) ? [a, u] = n : n.buffer === o.HEAPU8.buffer ? [a, u] = [n.byteOffset, n.byteLength] : [a, u] = Qe(n);\n let d = 0, c = 0, l = 0, m = [], h = [], g = [];\n try {\n if ([c, m] = await ao(t), t?.externalData && o.mountExternalData) {\n let _ = [];\n for (let k of t.externalData) {\n let w = typeof k == "string" ? k : k.path;\n _.push(Ke(typeof k == "string" ? k : k.data).then((Z) => {\n o.mountExternalData(w, Z);\n }));\n }\n await Promise.all(_);\n }\n for (let _ of t?.executionProviders ?? [])\n if ((typeof _ == "string" ? _ : _.name) === "webnn") {\n if (o.shouldTransferToMLTensor = false, typeof _ != "string") {\n let w = _, Z = w?.context, j = w?.gpuDevice, ne = w?.deviceType, pe = w?.powerPreference;\n Z ? o.currentContext = Z : j ? o.currentContext = await o.webnnCreateMLContext(j) : o.currentContext = await o.webnnCreateMLContext({ deviceType: ne, powerPreference: pe });\n } else\n o.currentContext = await o.webnnCreateMLContext();\n break;\n }\n d = await o._OrtCreateSession(a, u, c), o.webgpuOnCreateSession?.(d), d === 0 && G("Can\'t create a session."), o.jsepOnCreateSession?.(), o.currentContext && (o.webnnRegisterMLContext(d, o.currentContext), o.currentContext = void 0, o.shouldTransferToMLTensor = true);\n let [b, y] = bs(d), T = !!t?.enableGraphCapture, I = [], D = [], z = [], v = [], O = [];\n for (let _ = 0; _ < b; _++) {\n let [k, w, Z] = co(d, _);\n k === 0 && G("Can\'t get an input name."), h.push(k);\n let j = o.UTF8ToString(k);\n I.push(j), z.push(w === 0 ? { name: j, isTensor: false } : { name: j, isTensor: true, type: Ot(w), shape: Z });\n }\n for (let _ = 0; _ < y; _++) {\n let [k, w, Z] = co(d, _ + b);\n k === 0 && G("Can\'t get an output name."), g.push(k);\n let j = o.UTF8ToString(k);\n D.push(j), v.push(w === 0 ? { name: j, isTensor: false } : { name: j, isTensor: true, type: Ot(w), shape: Z });\n }\n return $e.set(d, [d, h, g, null, T, false]), [d, I, D, z, v];\n } catch (b) {\n throw h.forEach((y) => o._OrtFree(y)), g.forEach((y) => o._OrtFree(y)), l !== 0 && o._OrtReleaseBinding(l) !== 0 && G("Can\'t release IO binding."), d !== 0 && o._OrtReleaseSession(d) !== 0 && G("Can\'t release session."), b;\n } finally {\n o._free(a), c !== 0 && o._OrtReleaseSessionOptions(c) !== 0 && G("Can\'t release session options."), m.forEach((b) => o._free(b)), o.unmountExternalData?.();\n }\n }, yt = (n) => {\n let t = $(), a = $e.get(n);\n if (!a)\n throw new Error(`cannot release session. invalid session id: ${n}`);\n let [u, o, d, c, l] = a;\n c && (l && t._OrtClearBoundOutputs(c.handle) !== 0 && G("Can\'t clear bound outputs."), t._OrtReleaseBinding(c.handle) !== 0 && G("Can\'t release IO binding.")), t.jsepOnReleaseSession?.(n), t.webnnOnReleaseSession?.(n), t.webgpuOnReleaseSession?.(n), o.forEach((m) => t._OrtFree(m)), d.forEach((m) => t._OrtFree(m)), t._OrtReleaseSession(u) !== 0 && G("Can\'t release session."), $e.delete(n);\n }, lo = async (n, t, a, u, o, d, c = false) => {\n if (!n) {\n t.push(0);\n return;\n }\n let l = $(), m = l.PTR_SIZE, h = n[0], g = n[1], b = n[3], y = b, T, I;\n if (h === "string" && (b === "gpu-buffer" || b === "ml-tensor"))\n throw new Error("String tensor is not supported on GPU.");\n if (c && b !== "gpu-buffer")\n throw new Error(`External buffer must be provided for input/output index ${d} when enableGraphCapture is true.`);\n if (b === "gpu-buffer") {\n let v = n[2].gpuBuffer;\n I = Ge(We(h), g);\n {\n let O = l.jsepRegisterBuffer;\n if (!O)\n throw new Error(\'Tensor location "gpu-buffer" is not supported without using WebGPU.\');\n T = O(u, d, v, I);\n }\n } else if (b === "ml-tensor") {\n let v = n[2].mlTensor;\n I = Ge(We(h), g);\n let O = l.webnnRegisterMLTensor;\n if (!O)\n throw new Error(\'Tensor location "ml-tensor" is not supported without using WebNN.\');\n T = O(u, v, We(h), g);\n } else {\n let v = n[2];\n if (Array.isArray(v)) {\n I = m * v.length, T = l._malloc(I), a.push(T);\n for (let O = 0; O < v.length; O++) {\n if (typeof v[O] != "string")\n throw new TypeError(`tensor data at index ${O} is not a string`);\n l.setValue(T + O * m, ae(v[O], a), "*");\n }\n } else {\n let O = l.webnnIsGraphInput, F = l.webnnIsGraphOutput;\n if (h !== "string" && O && F) {\n let _ = l.UTF8ToString(o);\n if (O(u, _) || F(u, _)) {\n let k = We(h);\n I = Ge(k, g), y = "ml-tensor";\n let w = l.webnnCreateTemporaryTensor, Z = l.webnnUploadTensor;\n if (!w || !Z)\n throw new Error(\'Tensor location "ml-tensor" is not supported without using WebNN.\');\n let j = await w(u, k, g);\n Z(j, new Uint8Array(v.buffer, v.byteOffset, v.byteLength)), T = j;\n } else\n I = v.byteLength, T = l._malloc(I), a.push(T), l.HEAPU8.set(new Uint8Array(v.buffer, v.byteOffset, I), T);\n } else\n I = v.byteLength, T = l._malloc(I), a.push(T), l.HEAPU8.set(new Uint8Array(v.buffer, v.byteOffset, I), T);\n }\n }\n let D = l.stackSave(), z = l.stackAlloc(4 * g.length);\n try {\n g.forEach((O, F) => l.setValue(z + F * m, O, m === 4 ? "i32" : "i64"));\n let v = l._OrtCreateTensor(We(h), T, I, z, g.length, fo(y));\n v === 0 && G(`Can\'t create tensor for input/output. session=${u}, index=${d}.`), t.push(v);\n } finally {\n l.stackRestore(D);\n }\n }, gt = async (n, t, a, u, o, d) => {\n let c = $(), l = c.PTR_SIZE, m = $e.get(n);\n if (!m)\n throw new Error(`cannot run inference. invalid session id: ${n}`);\n let h = m[0], g = m[1], b = m[2], y = m[3], T = m[4], I = m[5], D = t.length, z = u.length, v = 0, O = [], F = [], _ = [], k = [], w = [], Z = c.stackSave(), j = c.stackAlloc(D * l), ne = c.stackAlloc(D * l), pe = c.stackAlloc(z * l), B = c.stackAlloc(z * l);\n try {\n [v, O] = ro(d), De("wasm prepareInputOutputTensor");\n for (let A = 0; A < D; A++)\n await lo(a[A], F, k, n, g[t[A]], t[A], T);\n for (let A = 0; A < z; A++)\n await lo(o[A], _, k, n, b[u[A]], D + u[A], T);\n Ue("wasm prepareInputOutputTensor");\n for (let A = 0; A < D; A++)\n c.setValue(j + A * l, F[A], "*"), c.setValue(ne + A * l, g[t[A]], "*");\n for (let A = 0; A < z; A++)\n c.setValue(pe + A * l, _[A], "*"), c.setValue(B + A * l, b[u[A]], "*");\n c.jsepOnRunStart?.(h), c.webnnOnRunStart?.(h);\n let W;\n W = await c._OrtRun(h, ne, j, D, B, z, pe, v), W !== 0 && G("failed to call OrtRun().");\n let re = [], me = [];\n De("wasm ProcessOutputTensor");\n for (let A = 0; A < z; A++) {\n let K = Number(c.getValue(pe + A * l, "*"));\n if (K === _[A] || w.includes(_[A])) {\n re.push(o[A]), K !== _[A] && c._OrtReleaseTensor(K) !== 0 && G("Can\'t release tensor.");\n continue;\n }\n let je = c.stackSave(), ee = c.stackAlloc(4 * l), he = false, H, q = 0;\n try {\n c._OrtGetTensorData(K, ee, ee + l, ee + 2 * l, ee + 3 * l) !== 0 && G(`Can\'t access output tensor data on index ${A}.`);\n let Se = l === 4 ? "i32" : "i64", ve = Number(c.getValue(ee, Se));\n q = c.getValue(ee + l, "*");\n let Ve = c.getValue(ee + l * 2, "*"), Re = Number(c.getValue(ee + l * 3, Se)), te = [];\n for (let L = 0; L < Re; L++)\n te.push(Number(c.getValue(Ve + L * l, Se)));\n c._OrtFree(Ve) !== 0 && G("Can\'t free memory for tensor dims.");\n let ue = te.reduce((L, V) => L * V, 1);\n H = Ot(ve);\n let se = y?.outputPreferredLocations[u[A]];\n if (H === "string") {\n if (se === "gpu-buffer" || se === "ml-tensor")\n throw new Error("String tensor is not supported on GPU.");\n let L = [];\n for (let V = 0; V < ue; V++) {\n let fe = c.getValue(q + V * l, "*"), ye = c.getValue(q + (V + 1) * l, "*"), ce = V === ue - 1 ? void 0 : ye - fe;\n L.push(c.UTF8ToString(fe, ce));\n }\n re.push([H, te, L, "cpu"]);\n } else if (se === "gpu-buffer" && ue > 0) {\n let L = c.jsepGetBuffer;\n if (!L)\n throw new Error(\'preferredLocation "gpu-buffer" is not supported without using WebGPU.\');\n let V = L(q), fe = Ge(ve, ue);\n if (fe === void 0 || !At(H))\n throw new Error(`Unsupported data type: ${H}`);\n he = true, re.push([H, te, { gpuBuffer: V, download: c.jsepCreateDownloader(V, fe, H), dispose: () => {\n c._OrtReleaseTensor(K) !== 0 && G("Can\'t release tensor.");\n } }, "gpu-buffer"]);\n } else if (se === "ml-tensor" && ue > 0) {\n let L = c.webnnEnsureTensor, V = c.webnnIsGraphInputOutputTypeSupported;\n if (!L || !V)\n throw new Error(\'preferredLocation "ml-tensor" is not supported without using WebNN.\');\n if (Ge(ve, ue) === void 0 || !It(H))\n throw new Error(`Unsupported data type: ${H}`);\n if (!V(n, H, false))\n throw new Error(`preferredLocation "ml-tensor" for ${H} output is not supported by current WebNN Context.`);\n let ye = await L(n, q, ve, te, false);\n he = true, re.push([H, te, { mlTensor: ye, download: c.webnnCreateMLTensorDownloader(q, H), dispose: () => {\n c.webnnReleaseTensorId(q), c._OrtReleaseTensor(K);\n } }, "ml-tensor"]);\n } else if (se === "ml-tensor-cpu-output" && ue > 0) {\n let L = c.webnnCreateMLTensorDownloader(q, H)(), V = re.length;\n he = true, me.push((async () => {\n let fe = [V, await L];\n return c.webnnReleaseTensorId(q), c._OrtReleaseTensor(K), fe;\n })()), re.push([H, te, [], "cpu"]);\n } else {\n let L = io(H), V = new L(ue);\n new Uint8Array(V.buffer, V.byteOffset, V.byteLength).set(c.HEAPU8.subarray(q, q + V.byteLength)), re.push([H, te, V, "cpu"]);\n }\n } finally {\n c.stackRestore(je), H === "string" && q && c._free(q), he || c._OrtReleaseTensor(K);\n }\n }\n y && !T && (c._OrtClearBoundOutputs(y.handle) !== 0 && G("Can\'t clear bound outputs."), $e.set(n, [h, g, b, y, T, false]));\n for (let [A, K] of await Promise.all(me))\n re[A][2] = K;\n return Ue("wasm ProcessOutputTensor"), re;\n } finally {\n c.webnnOnRunEnd?.(h), c.stackRestore(Z), F.forEach((W) => c._OrtReleaseTensor(W)), _.forEach((W) => c._OrtReleaseTensor(W)), k.forEach((W) => c._free(W)), v !== 0 && c._OrtReleaseRunOptions(v), O.forEach((W) => c._free(W));\n }\n }, Et = (n) => {\n let t = $(), a = $e.get(n);\n if (!a)\n throw new Error("invalid session id");\n let u = a[0], o = t._OrtEndProfiling(u);\n o === 0 && G("Can\'t get an profile file name."), t._OrtFree(o);\n }, Tt = (n) => {\n let t = [];\n for (let a of n) {\n let u = a[2];\n !Array.isArray(u) && "buffer" in u && t.push(u.buffer);\n }\n return t;\n };\n });\n var Ce;\n var ie;\n var et;\n var Lt;\n var _t;\n var Bt;\n var ln;\n var dn;\n var ze;\n var He;\n var gs;\n var po;\n var mo;\n var ho;\n var wo;\n var bo;\n var yo;\n var go;\n var pn = N(() => {\n "use strict";\n Te();\n rn();\n xe();\n pt();\n Ce = () => !!Y.wasm.proxy && typeof document < "u", et = false, Lt = false, _t = false, dn = /* @__PURE__ */ new Map(), ze = (n, t) => {\n let a = dn.get(n);\n a ? a.push(t) : dn.set(n, [t]);\n }, He = () => {\n if (et || !Lt || _t || !ie)\n throw new Error("worker not ready");\n }, gs = (n) => {\n switch (n.data.type) {\n case "init-wasm":\n et = false, n.data.err ? (_t = true, ln[1](n.data.err)) : (Lt = true, ln[0]()), Bt && (URL.revokeObjectURL(Bt), Bt = void 0);\n break;\n case "init-ep":\n case "copy-from":\n case "create":\n case "release":\n case "run":\n case "end-profiling": {\n let t = dn.get(n.data.type);\n n.data.err ? t.shift()[1](n.data.err) : t.shift()[0](n.data.out);\n break;\n }\n default:\n }\n }, po = async () => {\n if (!Lt) {\n if (et)\n throw new Error("multiple calls to \'initWasm()\' detected.");\n if (_t)\n throw new Error("previous call to \'initWasm()\' failed.");\n if (et = true, Ce())\n return new Promise((n, t) => {\n ie?.terminate(), eo().then(([a, u]) => {\n try {\n ie = u, ie.onerror = (d) => t(d), ie.onmessage = gs, ln = [n, t];\n let o = { type: "init-wasm", in: Y };\n !o.in.wasm.wasmPaths && (a || an) && (o.in.wasm.wasmPaths = { wasm: new URL("ort-wasm-simd-threaded.wasm", import_meta.url).href }), ie.postMessage(o), Bt = a;\n } catch (o) {\n t(o);\n }\n }, t);\n });\n try {\n await mt(Y.wasm), await ht(Y), Lt = true;\n } catch (n) {\n throw _t = true, n;\n } finally {\n et = false;\n }\n }\n }, mo = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("init-ep", [t, a]);\n let u = { type: "init-ep", in: { epName: n, env: Y } };\n ie.postMessage(u);\n });\n await wt(Y, n);\n }, ho = async (n) => Ce() ? (He(), new Promise((t, a) => {\n ze("copy-from", [t, a]);\n let u = { type: "copy-from", in: { buffer: n } };\n ie.postMessage(u, [n.buffer]);\n })) : Qe(n), wo = async (n, t) => {\n if (Ce()) {\n if (t?.preferredOutputLocation)\n throw new Error(\'session option "preferredOutputLocation" is not supported for proxy.\');\n return He(), new Promise((a, u) => {\n ze("create", [a, u]);\n let o = { type: "create", in: { model: n, options: { ...t } } }, d = [];\n n instanceof Uint8Array && d.push(n.buffer), ie.postMessage(o, d);\n });\n } else\n return bt(n, t);\n }, bo = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("release", [t, a]);\n let u = { type: "release", in: n };\n ie.postMessage(u);\n });\n yt(n);\n }, yo = async (n, t, a, u, o, d) => {\n if (Ce()) {\n if (a.some((c) => c[3] !== "cpu"))\n throw new Error("input tensor on GPU is not supported for proxy.");\n if (o.some((c) => c))\n throw new Error("pre-allocated output tensor is not supported for proxy.");\n return He(), new Promise((c, l) => {\n ze("run", [c, l]);\n let m = a, h = { type: "run", in: { sessionId: n, inputIndices: t, inputs: m, outputIndices: u, options: d } };\n ie.postMessage(h, Tt(m));\n });\n } else\n return gt(n, t, a, u, o, d);\n }, go = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("end-profiling", [t, a]);\n let u = { type: "end-profiling", in: n };\n ie.postMessage(u);\n });\n Et(n);\n };\n });\n var Eo;\n var Es;\n var Pt;\n var To = N(() => {\n "use strict";\n Te();\n pn();\n fn();\n dt();\n cn();\n Eo = (n, t) => {\n switch (n.location) {\n case "cpu":\n return [n.type, n.dims, n.data, "cpu"];\n case "gpu-buffer":\n return [n.type, n.dims, { gpuBuffer: n.gpuBuffer }, "gpu-buffer"];\n case "ml-tensor":\n return [n.type, n.dims, { mlTensor: n.mlTensor }, "ml-tensor"];\n default:\n throw new Error(`invalid data location: ${n.location} for ${t()}`);\n }\n }, Es = (n) => {\n switch (n[3]) {\n case "cpu":\n return new de(n[0], n[2], n[1]);\n case "gpu-buffer": {\n let t = n[0];\n if (!At(t))\n throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);\n let { gpuBuffer: a, download: u, dispose: o } = n[2];\n return de.fromGpuBuffer(a, { dataType: t, dims: n[1], download: u, dispose: o });\n }\n case "ml-tensor": {\n let t = n[0];\n if (!It(t))\n throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);\n let { mlTensor: a, download: u, dispose: o } = n[2];\n return de.fromMLTensor(a, { dataType: t, dims: n[1], download: u, dispose: o });\n }\n default:\n throw new Error(`invalid data location: ${n[3]}`);\n }\n }, Pt = class {\n async fetchModelAndCopyToWasmMemory(t) {\n return ho(await Ke(t));\n }\n async loadModel(t, a) {\n _e();\n let u;\n typeof t == "string" ? u = await this.fetchModelAndCopyToWasmMemory(t) : u = t, [this.sessionId, this.inputNames, this.outputNames, this.inputMetadata, this.outputMetadata] = await wo(u, a), Pe();\n }\n async dispose() {\n return bo(this.sessionId);\n }\n async run(t, a, u) {\n _e();\n let o = [], d = [];\n Object.entries(t).forEach((y) => {\n let T = y[0], I = y[1], D = this.inputNames.indexOf(T);\n if (D === -1)\n throw new Error(`invalid input \'${T}\'`);\n o.push(I), d.push(D);\n });\n let c = [], l = [];\n Object.entries(a).forEach((y) => {\n let T = y[0], I = y[1], D = this.outputNames.indexOf(T);\n if (D === -1)\n throw new Error(`invalid output \'${T}\'`);\n c.push(I), l.push(D);\n });\n let m = o.map((y, T) => Eo(y, () => `input "${this.inputNames[d[T]]}"`)), h = c.map((y, T) => y ? Eo(y, () => `output "${this.outputNames[l[T]]}"`) : null), g = await yo(this.sessionId, d, m, l, h, u), b = {};\n for (let y = 0; y < g.length; y++)\n b[this.outputNames[l[y]]] = c[y] ?? Es(g[y]);\n return Pe(), b;\n }\n startProfiling() {\n }\n endProfiling() {\n go(this.sessionId);\n }\n };\n });\n var vo = {};\n ut(vo, { OnnxruntimeWebAssemblyBackend: () => Dt, initializeFlags: () => So, wasmBackend: () => Ts });\n var So;\n var Dt;\n var Ts;\n var Oo = N(() => {\n "use strict";\n Te();\n pn();\n To();\n So = () => {\n (typeof Y.wasm.initTimeout != "number" || Y.wasm.initTimeout < 0) && (Y.wasm.initTimeout = 0);\n let n = Y.wasm.simd;\n if (typeof n != "boolean" && n !== void 0 && n !== "fixed" && n !== "relaxed" && (console.warn(`Property "env.wasm.simd" is set to unknown value "${n}". Reset it to \\`false\\` and ignore SIMD feature checking.`), Y.wasm.simd = false), typeof Y.wasm.proxy != "boolean" && (Y.wasm.proxy = false), typeof Y.wasm.trace != "boolean" && (Y.wasm.trace = false), typeof Y.wasm.numThreads != "number" || !Number.isInteger(Y.wasm.numThreads) || Y.wasm.numThreads <= 0)\n if (typeof self < "u" && !self.crossOriginIsolated)\n Y.wasm.numThreads = 1;\n else {\n let t = typeof navigator > "u" ? qt("node:os").cpus().length : navigator.hardwareConcurrency;\n Y.wasm.numThreads = Math.min(4, Math.ceil((t || 1) / 2));\n }\n }, Dt = class {\n async init(t) {\n So(), await po(), await mo(t);\n }\n async createInferenceSessionHandler(t, a) {\n let u = new Pt();\n return await u.loadModel(t, a), u;\n }\n }, Ts = new Dt();\n });\n Te();\n Te();\n Te();\n var Gr = "1.26.0";\n {\n let n = (Oo(), Xt(vo)).wasmBackend;\n qe("cpu", n, 10), qe("wasm", n, 10);\n }\n Object.defineProperty(Y.versions, "web", { value: Gr, enumerable: true });\n\n // src/workers/VadAiWorker.ts\n var CHUNK_SIZE = 320;\n var MODEL_EXTERNAL_DATA_PATH = "bcresnet_no_center_mult2_20ms.onnx.data";\n var STATE_INPUT_DIMS_PBTXT = {\n audio_input_state: [800],\n input_states_0: [1, 4, 43],\n input_states_1: [16, 2, 1],\n input_states_2: [16, 2, 1],\n input_states_3: [24, 4, 1],\n input_states_4: [24, 4, 1],\n input_states_5: [32, 8, 1],\n input_states_6: [32, 8, 1],\n input_states_7: [32, 8, 1],\n input_states_8: [32, 8, 1],\n input_states_9: [40, 16, 1],\n input_states_10: [40, 16, 1],\n input_states_11: [40, 16, 1],\n input_states_12: [40, 16, 1],\n input_states_13: [40, 4, 5],\n input_states_14: [64, 30, 1]\n };\n var BATCH_SIZE = 1;\n var STATE_INPUT_DIMS = Object.fromEntries(\n Object.entries(STATE_INPUT_DIMS_PBTXT).map(([name, dims]) => [\n name,\n [BATCH_SIZE, ...dims]\n ])\n );\n var STATE_OUTPUT_TO_INPUT = {\n audio_output_state: "audio_input_state",\n output_states_0: "input_states_0",\n output_states_1: "input_states_1",\n output_states_2: "input_states_2",\n output_states_3: "input_states_3",\n output_states_4: "input_states_4",\n output_states_5: "input_states_5",\n output_states_6: "input_states_6",\n output_states_7: "input_states_7",\n output_states_8: "input_states_8",\n output_states_9: "input_states_9",\n output_states_10: "input_states_10",\n output_states_11: "input_states_11",\n output_states_12: "input_states_12",\n output_states_13: "input_states_13",\n output_states_14: "input_states_14"\n };\n var VadAiWorker_default = (modelUrl, modelDataUrl, ortWasmUrl, ortMjsUrl) => {\n let session = null;\n let state = null;\n let buffer = new Float32Array(0);\n let inferBusy = false;\n function postError(error) {\n self.postMessage({\n type: "error" /* ERROR */,\n error: error instanceof Error ? error.message : String(error)\n });\n }\n async function init() {\n Y.wasm.wasmPaths = { wasm: ortWasmUrl, mjs: ortMjsUrl };\n Y.wasm.numThreads = 1;\n const [modelRes, dataRes] = await Promise.all([\n fetch(modelUrl),\n fetch(modelDataUrl)\n ]);\n if (!modelRes.ok) {\n throw new Error(`Model fetch failed: ${modelRes.status} ${modelRes.statusText}`);\n }\n if (!dataRes.ok) {\n throw new Error(`Model data fetch failed: ${dataRes.status} ${dataRes.statusText}`);\n }\n const [modelBytes, dataBytes] = await Promise.all([\n modelRes.arrayBuffer(),\n dataRes.arrayBuffer()\n ]);\n session = await ts.create(new Uint8Array(modelBytes), {\n executionProviders: ["wasm"],\n externalData: [\n {\n path: MODEL_EXTERNAL_DATA_PATH,\n data: new Uint8Array(dataBytes)\n }\n ]\n });\n state = createZeroStateTensors(session, de);\n }\n function appendBuffer(chunk) {\n const next = new Float32Array(buffer.length + chunk.length);\n next.set(buffer, 0);\n next.set(chunk, buffer.length);\n buffer = next;\n }\n async function runChunk(chunk) {\n if (!session || !state || inferBusy) {\n return;\n }\n inferBusy = true;\n try {\n const audioTensor = new de("float32", chunk, [1, CHUNK_SIZE]);\n const feeds = {\n audio: audioTensor,\n ...state\n };\n const results = await session.run(feeds);\n updateStateFromOutputs(state, results);\n const probs = results.voice_probs?.data;\n if (!probs || probs.length < 2) {\n return;\n }\n const speechProb = Math.max(probs[0], probs[1]);\n const silenceProb = 1 - speechProb;\n self.postMessage({\n type: "data" /* DATA */,\n data: { speechProb, silenceProb }\n });\n } catch (err) {\n postError(err);\n } finally {\n inferBusy = false;\n }\n }\n function onAudio(data) {\n const samples = new Float32Array(data);\n appendBuffer(samples);\n while (buffer.length >= CHUNK_SIZE) {\n const chunk = new Float32Array(buffer.subarray(0, CHUNK_SIZE));\n buffer = new Float32Array(buffer.subarray(CHUNK_SIZE));\n void runChunk(chunk);\n }\n }\n init().then(() => {\n self.onmessage = (event) => {\n onAudio(event.data.data);\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch(postError);\n };\n function updateStateFromOutputs(state, outputs) {\n for (const [outName, inName] of Object.entries(STATE_OUTPUT_TO_INPUT)) {\n const next = outputs[outName];\n if (next) {\n state[inName] = next;\n }\n }\n }\n function createZeroStateTensors(session, TensorCtor) {\n const state = {};\n for (const name of session.inputNames) {\n if (name === "audio") {\n continue;\n }\n const dims = STATE_INPUT_DIMS[name];\n if (!dims) {\n continue;\n }\n const size = dims.reduce((a, b) => a * b, 1);\n state[name] = new TensorCtor("float32", new Float32Array(size), dims);\n }\n return state;\n }\n return __toCommonJS(VadAiWorker_exports);\n})();\n/*! Bundled license information:\n\nonnxruntime-web/dist/ort.wasm.bundle.min.mjs:\n (*!\n * ONNX Runtime Web v1.26.0\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n *)\n*/\n',
|
|
4878
|
-
|
|
4879
|
-
|
|
4880
|
-
|
|
4881
|
-
JSON.stringify(
|
|
4882
|
-
JSON.stringify(
|
|
4883
|
-
JSON.stringify(ORT_WASM_URL),
|
|
4884
|
-
JSON.stringify(ORT_MJS_URL)
|
|
4942
|
+
workerFunctionString: isTflite ? '"use strict";\nvar exports = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);\n\n // src/workers/VadTfliteWorker.ts\n var VadTfliteWorker_exports = {};\n __export(VadTfliteWorker_exports, {\n default: () => VadTfliteWorker_default\n });\n var INPUT_SAMPLES = 320;\n var VadTfliteWorker_default = (createWav2lipModule, urlResolver) => {\n let Wav2lip = null;\n let classifier = null;\n let buffer = new Float32Array(0);\n function init() {\n return createWav2lipModule({ locateFile: urlResolver }).then((module) => {\n Wav2lip = module;\n const configInput = new Wav2lip.ConfigInput("vad.cfg", true, "/");\n const config = new Wav2lip.Config(configInput);\n classifier = Wav2lip.AudioClassifierFactory.createAlgorithm(config);\n });\n }\n function postError(error) {\n self.postMessage({\n type: "error" /* ERROR */,\n error: typeof error === "number" && Wav2lip ? Wav2lip.getExMessage(error) : error\n });\n }\n function appendBuffer(chunk) {\n const next = new Float32Array(buffer.length + chunk.length);\n next.set(buffer, 0);\n next.set(chunk, buffer.length);\n buffer = next;\n }\n function processAudio(data) {\n if (!classifier || !Wav2lip) {\n return;\n }\n try {\n appendBuffer(new Float32Array(data));\n while (buffer.length >= INPUT_SAMPLES) {\n const chunk = buffer.subarray(0, INPUT_SAMPLES);\n buffer = buffer.subarray(INPUT_SAMPLES);\n const inputVec = new Wav2lip.vector$float$();\n for (let i = 0; i < INPUT_SAMPLES; i++) {\n inputVec.push_back(chunk[i]);\n }\n const probs = Wav2lip.vadAccept(classifier, inputVec);\n inputVec.delete();\n const probsSize = probs.size();\n if (probsSize >= 4) {\n const speech0 = probs.get(1);\n const speech1 = probs.get(3);\n const speechProb = Math.max(speech0, speech1);\n self.postMessage({\n type: "data" /* DATA */,\n data: {\n speechProb,\n silenceProb: 1 - speechProb\n }\n });\n }\n probs.delete();\n }\n } catch (error) {\n postError(error);\n }\n }\n init().then(() => {\n self.onmessage = (event) => {\n processAudio(event.data.data);\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch(postError);\n };\n return __toCommonJS(VadTfliteWorker_exports);\n})();\n' : '"use strict";\nvar exports = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {\n get: (a, b) => (typeof require !== "undefined" ? require : a)[b]\n }) : x)(function(x) {\n if (typeof require !== "undefined")\n return require.apply(this, arguments);\n throw new Error(\'Dynamic require of "\' + x + \'" is not supported\');\n });\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to2, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to2, key) && key !== except)\n __defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to2;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);\n\n // src/workers/VadOnnxWorker.ts\n var VadOnnxWorker_exports = {};\n __export(VadOnnxWorker_exports, {\n default: () => VadOnnxWorker_default\n });\n\n // node_modules/onnxruntime-web/dist/ort.wasm.bundle.min.mjs\n var import_meta = {};\n var Jt = Object.defineProperty;\n var Xa = Object.getOwnPropertyDescriptor;\n var Qa = Object.getOwnPropertyNames;\n var Za = Object.prototype.hasOwnProperty;\n var qt = ((n) => typeof __require < "u" ? __require : typeof Proxy < "u" ? new Proxy(n, { get: (t, a) => (typeof __require < "u" ? __require : t)[a] }) : n)(function(n) {\n if (typeof __require < "u")\n return __require.apply(this, arguments);\n throw Error(\'Dynamic require of "\' + n + \'" is not supported\');\n });\n var N = (n, t) => () => (n && (t = n(n = 0)), t);\n var ut = (n, t) => {\n for (var a in t)\n Jt(n, a, { get: t[a], enumerable: true });\n };\n var Ka = (n, t, a, u) => {\n if (t && typeof t == "object" || typeof t == "function")\n for (let o of Qa(t))\n !Za.call(n, o) && o !== a && Jt(n, o, { get: () => t[o], enumerable: !(u = Xa(t, o)) || u.enumerable });\n return n;\n };\n var Xt = (n) => Ka(Jt({}, "__esModule", { value: true }), n);\n var ft;\n var Be;\n var qe;\n var es;\n var dr;\n var Qt = N(() => {\n "use strict";\n ft = /* @__PURE__ */ new Map(), Be = [], qe = (n, t, a) => {\n if (t && typeof t.init == "function" && typeof t.createInferenceSessionHandler == "function") {\n let u = ft.get(n);\n if (u === void 0)\n ft.set(n, { backend: t, priority: a });\n else {\n if (u.priority > a)\n return;\n if (u.priority === a && u.backend !== t)\n throw new Error(`cannot register backend "${n}" using priority ${a}`);\n }\n if (a >= 0) {\n let o = Be.indexOf(n);\n o !== -1 && Be.splice(o, 1);\n for (let d = 0; d < Be.length; d++)\n if (ft.get(Be[d]).priority <= a) {\n Be.splice(d, 0, n);\n return;\n }\n Be.push(n);\n }\n return;\n }\n throw new TypeError("not a valid backend");\n }, es = async (n) => {\n let t = ft.get(n);\n if (!t)\n return "backend not found.";\n if (t.initialized)\n return t.backend;\n if (t.aborted)\n return t.error;\n {\n let a = !!t.initPromise;\n try {\n return a || (t.initPromise = t.backend.init(n)), await t.initPromise, t.initialized = true, t.backend;\n } catch (u) {\n return a || (t.error = `${u}`, t.aborted = true), t.error;\n } finally {\n delete t.initPromise;\n }\n }\n }, dr = async (n) => {\n let t = n.executionProviders || [], a = t.map((m) => typeof m == "string" ? m : m.name), u = a.length === 0 ? Be : a, o, d = [], c = /* @__PURE__ */ new Set();\n for (let m of u) {\n let h = await es(m);\n typeof h == "string" ? d.push({ name: m, err: h }) : (o || (o = h), o === h && c.add(m));\n }\n if (!o)\n throw new Error(`no available backend found. ERR: ${d.map((m) => `[${m.name}] ${m.err}`).join(", ")}`);\n for (let { name: m, err: h } of d)\n a.includes(m) && console.warn(`removing requested execution provider "${m}" from session options because it is not available: ${h}`);\n let l = t.filter((m) => c.has(typeof m == "string" ? m : m.name));\n return [o, new Proxy(n, { get: (m, h) => h === "executionProviders" ? l : Reflect.get(m, h) })];\n };\n });\n var pr = N(() => {\n "use strict";\n Qt();\n });\n var mr;\n var hr = N(() => {\n "use strict";\n mr = "1.26.0";\n });\n var wr;\n var J;\n var Zt = N(() => {\n "use strict";\n hr();\n wr = "warning", J = { wasm: {}, webgl: {}, webgpu: {}, versions: { common: mr }, set logLevel(n) {\n if (n !== void 0) {\n if (typeof n != "string" || ["verbose", "info", "warning", "error", "fatal"].indexOf(n) === -1)\n throw new Error(`Unsupported logging level: ${n}`);\n wr = n;\n }\n }, get logLevel() {\n return wr;\n } };\n Object.defineProperty(J, "logLevel", { enumerable: true });\n });\n var Y;\n var br = N(() => {\n "use strict";\n Zt();\n Y = J;\n });\n var yr;\n var gr;\n var Er = N(() => {\n "use strict";\n yr = (n, t) => {\n let a = typeof document < "u" ? document.createElement("canvas") : new OffscreenCanvas(1, 1);\n a.width = n.dims[3], a.height = n.dims[2];\n let u = a.getContext("2d");\n if (u != null) {\n let o, d;\n t?.tensorLayout !== void 0 && t.tensorLayout === "NHWC" ? (o = n.dims[2], d = n.dims[3]) : (o = n.dims[3], d = n.dims[2]);\n let c = t?.format !== void 0 ? t.format : "RGB", l = t?.norm, m, h;\n l === void 0 || l.mean === void 0 ? m = [255, 255, 255, 255] : typeof l.mean == "number" ? m = [l.mean, l.mean, l.mean, l.mean] : (m = [l.mean[0], l.mean[1], l.mean[2], 0], l.mean[3] !== void 0 && (m[3] = l.mean[3])), l === void 0 || l.bias === void 0 ? h = [0, 0, 0, 0] : typeof l.bias == "number" ? h = [l.bias, l.bias, l.bias, l.bias] : (h = [l.bias[0], l.bias[1], l.bias[2], 0], l.bias[3] !== void 0 && (h[3] = l.bias[3]));\n let g = d * o, b = 0, y = g, T = g * 2, I = -1;\n c === "RGBA" ? (b = 0, y = g, T = g * 2, I = g * 3) : c === "RGB" ? (b = 0, y = g, T = g * 2) : c === "RBG" && (b = 0, T = g, y = g * 2);\n for (let D = 0; D < d; D++)\n for (let z = 0; z < o; z++) {\n let v = (n.data[b++] - h[0]) * m[0], O = (n.data[y++] - h[1]) * m[1], F = (n.data[T++] - h[2]) * m[2], _ = I === -1 ? 255 : (n.data[I++] - h[3]) * m[3];\n u.fillStyle = "rgba(" + v + "," + O + "," + F + "," + _ + ")", u.fillRect(z, D, 1, 1);\n }\n if ("toDataURL" in a)\n return a.toDataURL();\n throw new Error("toDataURL is not supported");\n } else\n throw new Error("Can not access image data");\n }, gr = (n, t) => {\n let a = typeof document < "u" ? document.createElement("canvas").getContext("2d") : new OffscreenCanvas(1, 1).getContext("2d"), u;\n if (a != null) {\n let o, d, c;\n t?.tensorLayout !== void 0 && t.tensorLayout === "NHWC" ? (o = n.dims[2], d = n.dims[1], c = n.dims[3]) : (o = n.dims[3], d = n.dims[2], c = n.dims[1]);\n let l = t !== void 0 && t.format !== void 0 ? t.format : "RGB", m = t?.norm, h, g;\n m === void 0 || m.mean === void 0 ? h = [255, 255, 255, 255] : typeof m.mean == "number" ? h = [m.mean, m.mean, m.mean, m.mean] : (h = [m.mean[0], m.mean[1], m.mean[2], 255], m.mean[3] !== void 0 && (h[3] = m.mean[3])), m === void 0 || m.bias === void 0 ? g = [0, 0, 0, 0] : typeof m.bias == "number" ? g = [m.bias, m.bias, m.bias, m.bias] : (g = [m.bias[0], m.bias[1], m.bias[2], 0], m.bias[3] !== void 0 && (g[3] = m.bias[3]));\n let b = d * o;\n if (t !== void 0 && (t.format !== void 0 && c === 4 && t.format !== "RGBA" || c === 3 && t.format !== "RGB" && t.format !== "BGR"))\n throw new Error("Tensor format doesn\'t match input tensor dims");\n let y = 4, T = 0, I = 1, D = 2, z = 3, v = 0, O = b, F = b * 2, _ = -1;\n l === "RGBA" ? (v = 0, O = b, F = b * 2, _ = b * 3) : l === "RGB" ? (v = 0, O = b, F = b * 2) : l === "RBG" && (v = 0, F = b, O = b * 2), u = a.createImageData(o, d);\n for (let k = 0; k < d * o; T += y, I += y, D += y, z += y, k++)\n u.data[T] = (n.data[v++] - g[0]) * h[0], u.data[I] = (n.data[O++] - g[1]) * h[1], u.data[D] = (n.data[F++] - g[2]) * h[2], u.data[z] = _ === -1 ? 255 : (n.data[_++] - g[3]) * h[3];\n } else\n throw new Error("Can not access image data");\n return u;\n };\n });\n var Kt;\n var Tr;\n var Sr;\n var vr;\n var Or;\n var Ar;\n var Ir = N(() => {\n "use strict";\n ct();\n Kt = (n, t) => {\n if (n === void 0)\n throw new Error("Image buffer must be defined");\n if (t.height === void 0 || t.width === void 0)\n throw new Error("Image height and width must be defined");\n if (t.tensorLayout === "NHWC")\n throw new Error("NHWC Tensor layout is not supported yet");\n let { height: a, width: u } = t, o = t.norm ?? { mean: 255, bias: 0 }, d, c;\n typeof o.mean == "number" ? d = [o.mean, o.mean, o.mean, o.mean] : d = [o.mean[0], o.mean[1], o.mean[2], o.mean[3] ?? 255], typeof o.bias == "number" ? c = [o.bias, o.bias, o.bias, o.bias] : c = [o.bias[0], o.bias[1], o.bias[2], o.bias[3] ?? 0];\n let l = t.format !== void 0 ? t.format : "RGBA", m = t.tensorFormat !== void 0 && t.tensorFormat !== void 0 ? t.tensorFormat : "RGB", h = a * u, g = m === "RGBA" ? new Float32Array(h * 4) : new Float32Array(h * 3), b = 4, y = 0, T = 1, I = 2, D = 3, z = 0, v = h, O = h * 2, F = -1;\n l === "RGB" && (b = 3, y = 0, T = 1, I = 2, D = -1), m === "RGBA" ? F = h * 3 : m === "RBG" ? (z = 0, O = h, v = h * 2) : m === "BGR" && (O = 0, v = h, z = h * 2);\n for (let k = 0; k < h; k++, y += b, I += b, T += b, D += b)\n g[z++] = (n[y] + c[0]) / d[0], g[v++] = (n[T] + c[1]) / d[1], g[O++] = (n[I] + c[2]) / d[2], F !== -1 && D !== -1 && (g[F++] = (n[D] + c[3]) / d[3]);\n return m === "RGBA" ? new Q("float32", g, [1, 4, a, u]) : new Q("float32", g, [1, 3, a, u]);\n }, Tr = async (n, t) => {\n let a = typeof HTMLImageElement < "u" && n instanceof HTMLImageElement, u = typeof ImageData < "u" && n instanceof ImageData, o = typeof ImageBitmap < "u" && n instanceof ImageBitmap, d = typeof n == "string", c, l = t ?? {}, m = () => {\n if (typeof document < "u")\n return document.createElement("canvas");\n if (typeof OffscreenCanvas < "u")\n return new OffscreenCanvas(1, 1);\n throw new Error("Canvas is not supported");\n }, h = (g) => typeof HTMLCanvasElement < "u" && g instanceof HTMLCanvasElement || g instanceof OffscreenCanvas ? g.getContext("2d") : null;\n if (a) {\n let g = m();\n g.width = n.width, g.height = n.height;\n let b = h(g);\n if (b != null) {\n let y = n.height, T = n.width;\n if (t !== void 0 && t.resizedHeight !== void 0 && t.resizedWidth !== void 0 && (y = t.resizedHeight, T = t.resizedWidth), t !== void 0) {\n if (l = t, t.tensorFormat !== void 0)\n throw new Error("Image input config format must be RGBA for HTMLImageElement");\n l.tensorFormat = "RGBA", l.height = y, l.width = T;\n } else\n l.tensorFormat = "RGBA", l.height = y, l.width = T;\n b.drawImage(n, 0, 0), c = b.getImageData(0, 0, T, y).data;\n } else\n throw new Error("Can not access image data");\n } else if (u) {\n let g, b;\n if (t !== void 0 && t.resizedWidth !== void 0 && t.resizedHeight !== void 0 ? (g = t.resizedHeight, b = t.resizedWidth) : (g = n.height, b = n.width), t !== void 0 && (l = t), l.format = "RGBA", l.height = g, l.width = b, t !== void 0) {\n let y = m();\n y.width = b, y.height = g;\n let T = h(y);\n if (T != null)\n T.putImageData(n, 0, 0), c = T.getImageData(0, 0, b, g).data;\n else\n throw new Error("Can not access image data");\n } else\n c = n.data;\n } else if (o) {\n if (t === void 0)\n throw new Error("Please provide image config with format for Imagebitmap");\n let g = m();\n g.width = n.width, g.height = n.height;\n let b = h(g);\n if (b != null) {\n let y = n.height, T = n.width;\n return b.drawImage(n, 0, 0, T, y), c = b.getImageData(0, 0, T, y).data, l.height = y, l.width = T, Kt(c, l);\n } else\n throw new Error("Can not access image data");\n } else {\n if (d)\n return new Promise((g, b) => {\n let y = m(), T = h(y);\n if (!n || !T)\n return b();\n let I = new Image();\n I.crossOrigin = "Anonymous", I.src = n, I.onload = () => {\n y.width = I.width, y.height = I.height, T.drawImage(I, 0, 0, y.width, y.height);\n let D = T.getImageData(0, 0, y.width, y.height);\n l.height = y.height, l.width = y.width, g(Kt(D.data, l));\n };\n });\n throw new Error("Input data provided is not supported - aborted tensor creation");\n }\n if (c !== void 0)\n return Kt(c, l);\n throw new Error("Input data provided is not supported - aborted tensor creation");\n }, Sr = (n, t) => {\n let { width: a, height: u, download: o, dispose: d } = t, c = [1, u, a, 4];\n return new Q({ location: "texture", type: "float32", texture: n, dims: c, download: o, dispose: d });\n }, vr = (n, t) => {\n let { dataType: a, dims: u, download: o, dispose: d } = t;\n return new Q({ location: "gpu-buffer", type: a ?? "float32", gpuBuffer: n, dims: u, download: o, dispose: d });\n }, Or = (n, t) => {\n let { dataType: a, dims: u, download: o, dispose: d } = t;\n return new Q({ location: "ml-tensor", type: a ?? "float32", mlTensor: n, dims: u, download: o, dispose: d });\n }, Ar = (n, t, a) => new Q({ location: "cpu-pinned", type: n, data: t, dims: a ?? [t.length] });\n });\n var Le;\n var Xe;\n var Br;\n var Lr;\n var _r = N(() => {\n "use strict";\n Le = /* @__PURE__ */ new Map([["float32", Float32Array], ["uint8", Uint8Array], ["int8", Int8Array], ["uint16", Uint16Array], ["int16", Int16Array], ["int32", Int32Array], ["bool", Uint8Array], ["float64", Float64Array], ["uint32", Uint32Array], ["int4", Uint8Array], ["uint4", Uint8Array]]), Xe = /* @__PURE__ */ new Map([[Float32Array, "float32"], [Uint8Array, "uint8"], [Int8Array, "int8"], [Uint16Array, "uint16"], [Int16Array, "int16"], [Int32Array, "int32"], [Float64Array, "float64"], [Uint32Array, "uint32"]]), Br = false, Lr = () => {\n if (!Br) {\n Br = true;\n let n = typeof BigInt64Array < "u" && BigInt64Array.from, t = typeof BigUint64Array < "u" && BigUint64Array.from, a = globalThis.Float16Array, u = typeof a < "u" && a.from;\n n && (Le.set("int64", BigInt64Array), Xe.set(BigInt64Array, "int64")), t && (Le.set("uint64", BigUint64Array), Xe.set(BigUint64Array, "uint64")), u ? (Le.set("float16", a), Xe.set(a, "float16")) : Le.set("float16", Uint16Array);\n }\n };\n });\n var Pr;\n var Dr;\n var Ur = N(() => {\n "use strict";\n ct();\n Pr = (n) => {\n let t = 1;\n for (let a = 0; a < n.length; a++) {\n let u = n[a];\n if (typeof u != "number" || !Number.isSafeInteger(u))\n throw new TypeError(`dims[${a}] must be an integer, got: ${u}`);\n if (u < 0)\n throw new RangeError(`dims[${a}] must be a non-negative integer, got: ${u}`);\n t *= u;\n }\n return t;\n }, Dr = (n, t) => {\n switch (n.location) {\n case "cpu":\n return new Q(n.type, n.data, t);\n case "cpu-pinned":\n return new Q({ location: "cpu-pinned", data: n.data, type: n.type, dims: t });\n case "texture":\n return new Q({ location: "texture", texture: n.texture, type: n.type, dims: t });\n case "gpu-buffer":\n return new Q({ location: "gpu-buffer", gpuBuffer: n.gpuBuffer, type: n.type, dims: t });\n case "ml-tensor":\n return new Q({ location: "ml-tensor", mlTensor: n.mlTensor, type: n.type, dims: t });\n default:\n throw new Error(`tensorReshape: tensor location ${n.location} is not supported`);\n }\n };\n });\n var Q;\n var ct = N(() => {\n "use strict";\n Er();\n Ir();\n _r();\n Ur();\n Q = class {\n constructor(t, a, u) {\n Lr();\n let o, d;\n if (typeof t == "object" && "location" in t)\n switch (this.dataLocation = t.location, o = t.type, d = t.dims, t.location) {\n case "cpu-pinned": {\n let l = Le.get(o);\n if (!l)\n throw new TypeError(`unsupported type "${o}" to create tensor from pinned buffer`);\n if (!(t.data instanceof l))\n throw new TypeError(`buffer should be of type ${l.name}`);\n this.cpuData = t.data;\n break;\n }\n case "texture": {\n if (o !== "float32")\n throw new TypeError(`unsupported type "${o}" to create tensor from texture`);\n this.gpuTextureData = t.texture, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n case "gpu-buffer": {\n if (o !== "float32" && o !== "float16" && o !== "int32" && o !== "int64" && o !== "uint32" && o !== "uint8" && o !== "bool" && o !== "uint4" && o !== "int4")\n throw new TypeError(`unsupported type "${o}" to create tensor from gpu buffer`);\n this.gpuBufferData = t.gpuBuffer, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n case "ml-tensor": {\n if (o !== "float32" && o !== "float16" && o !== "int32" && o !== "int64" && o !== "uint32" && o !== "uint64" && o !== "int8" && o !== "uint8" && o !== "bool" && o !== "uint4" && o !== "int4")\n throw new TypeError(`unsupported type "${o}" to create tensor from MLTensor`);\n this.mlTensorData = t.mlTensor, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n default:\n throw new Error(`Tensor constructor: unsupported location \'${this.dataLocation}\'`);\n }\n else {\n let l, m;\n if (typeof t == "string")\n if (o = t, m = u, t === "string") {\n if (!Array.isArray(a))\n throw new TypeError("A string tensor\'s data must be a string array.");\n l = a;\n } else {\n let h = Le.get(t);\n if (h === void 0)\n throw new TypeError(`Unsupported tensor type: ${t}.`);\n if (Array.isArray(a)) {\n if (t === "float16" && h === Uint16Array || t === "uint4" || t === "int4")\n throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${h.name} as data.`);\n t === "uint64" || t === "int64" ? l = h.from(a, BigInt) : l = h.from(a);\n } else if (a instanceof h)\n l = a;\n else if (a instanceof Uint8ClampedArray)\n if (t === "uint8")\n l = Uint8Array.from(a);\n else\n throw new TypeError("A Uint8ClampedArray tensor\'s data must be type of uint8");\n else if (t === "float16" && a instanceof Uint16Array && h !== Uint16Array)\n l = new globalThis.Float16Array(a.buffer, a.byteOffset, a.length);\n else\n throw new TypeError(`A ${o} tensor\'s data must be type of ${h}`);\n }\n else if (m = a, Array.isArray(t)) {\n if (t.length === 0)\n throw new TypeError("Tensor type cannot be inferred from an empty array.");\n let h = typeof t[0];\n if (h === "string")\n o = "string", l = t;\n else if (h === "boolean")\n o = "bool", l = Uint8Array.from(t);\n else\n throw new TypeError(`Invalid element type of data array: ${h}.`);\n } else if (t instanceof Uint8ClampedArray)\n o = "uint8", l = Uint8Array.from(t);\n else {\n let h = Xe.get(t.constructor);\n if (h === void 0)\n throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);\n o = h, l = t;\n }\n if (m === void 0)\n m = [l.length];\n else if (!Array.isArray(m))\n throw new TypeError("A tensor\'s dims must be a number array");\n d = m, this.cpuData = l, this.dataLocation = "cpu";\n }\n let c = Pr(d);\n if (this.cpuData && c !== this.cpuData.length && !((o === "uint4" || o === "int4") && Math.ceil(c / 2) === this.cpuData.length))\n throw new Error(`Tensor\'s size(${c}) does not match data length(${this.cpuData.length}).`);\n this.type = o, this.dims = d, this.size = c;\n }\n static async fromImage(t, a) {\n return Tr(t, a);\n }\n static fromTexture(t, a) {\n return Sr(t, a);\n }\n static fromGpuBuffer(t, a) {\n return vr(t, a);\n }\n static fromMLTensor(t, a) {\n return Or(t, a);\n }\n static fromPinnedBuffer(t, a, u) {\n return Ar(t, a, u);\n }\n toDataURL(t) {\n return yr(this, t);\n }\n toImageData(t) {\n return gr(this, t);\n }\n get data() {\n if (this.ensureValid(), !this.cpuData)\n throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");\n return this.cpuData;\n }\n get location() {\n return this.dataLocation;\n }\n get texture() {\n if (this.ensureValid(), !this.gpuTextureData)\n throw new Error("The data is not stored as a WebGL texture.");\n return this.gpuTextureData;\n }\n get gpuBuffer() {\n if (this.ensureValid(), !this.gpuBufferData)\n throw new Error("The data is not stored as a WebGPU buffer.");\n return this.gpuBufferData;\n }\n get mlTensor() {\n if (this.ensureValid(), !this.mlTensorData)\n throw new Error("The data is not stored as a WebNN MLTensor.");\n return this.mlTensorData;\n }\n async getData(t) {\n switch (this.ensureValid(), this.dataLocation) {\n case "cpu":\n case "cpu-pinned":\n return this.data;\n case "texture":\n case "gpu-buffer":\n case "ml-tensor": {\n if (!this.downloader)\n throw new Error("The current tensor is not created with a specified data downloader.");\n if (this.isDownloading)\n throw new Error("The current tensor is being downloaded.");\n try {\n this.isDownloading = true;\n let a = await this.downloader();\n return this.downloader = void 0, this.dataLocation = "cpu", this.cpuData = a, t && this.disposer && (this.disposer(), this.disposer = void 0), a;\n } finally {\n this.isDownloading = false;\n }\n }\n default:\n throw new Error(`cannot get data from location: ${this.dataLocation}`);\n }\n }\n dispose() {\n if (this.isDownloading)\n throw new Error("The current tensor is being downloaded.");\n this.disposer && (this.disposer(), this.disposer = void 0), this.cpuData = void 0, this.gpuTextureData = void 0, this.gpuBufferData = void 0, this.mlTensorData = void 0, this.downloader = void 0, this.isDownloading = void 0, this.dataLocation = "none";\n }\n ensureValid() {\n if (this.dataLocation === "none")\n throw new Error("The tensor is disposed.");\n }\n reshape(t) {\n if (this.ensureValid(), this.downloader || this.disposer)\n throw new Error("Cannot reshape a tensor that owns GPU resource.");\n return Dr(this, t);\n }\n };\n });\n var de;\n var en = N(() => {\n "use strict";\n ct();\n de = Q;\n });\n var xr;\n var Mr;\n var _e;\n var Pe;\n var De;\n var Ue;\n var tn = N(() => {\n "use strict";\n Zt();\n xr = (n, t) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.timeStamp(`${n}::ORT::${t}`);\n }, Mr = (n, t) => {\n let a = new Error().stack?.split(/\\r\\n|\\r|\\n/g) || [], u = false;\n for (let o = 0; o < a.length; o++) {\n if (u && !a[o].includes("TRACE_FUNC")) {\n let d = `FUNC_${n}::${a[o].trim().split(" ")[1]}`;\n t && (d += `::${t}`), xr("CPU", d);\n return;\n }\n a[o].includes("TRACE_FUNC") && (u = true);\n }\n }, _e = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || Mr("BEGIN", n);\n }, Pe = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || Mr("END", n);\n }, De = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.time(`ORT::${n}`);\n }, Ue = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.timeEnd(`ORT::${n}`);\n };\n });\n var lt;\n var Cr = N(() => {\n "use strict";\n Qt();\n en();\n tn();\n lt = class n {\n constructor(t) {\n this.handler = t;\n }\n async run(t, a, u) {\n _e(), De("InferenceSession.run");\n let o = {}, d = {};\n if (typeof t != "object" || t === null || t instanceof de || Array.isArray(t))\n throw new TypeError("\'feeds\' must be an object that use input names as keys and OnnxValue as corresponding values.");\n let c = true;\n if (typeof a == "object") {\n if (a === null)\n throw new TypeError("Unexpected argument[1]: cannot be null.");\n if (a instanceof de)\n throw new TypeError("\'fetches\' cannot be a Tensor");\n if (Array.isArray(a)) {\n if (a.length === 0)\n throw new TypeError("\'fetches\' cannot be an empty array.");\n c = false;\n for (let h of a) {\n if (typeof h != "string")\n throw new TypeError("\'fetches\' must be a string array or an object.");\n if (this.outputNames.indexOf(h) === -1)\n throw new RangeError(`\'fetches\' contains invalid output name: ${h}.`);\n o[h] = null;\n }\n if (typeof u == "object" && u !== null)\n d = u;\n else if (typeof u < "u")\n throw new TypeError("\'options\' must be an object.");\n } else {\n let h = false, g = Object.getOwnPropertyNames(a);\n for (let b of this.outputNames)\n if (g.indexOf(b) !== -1) {\n let y = a[b];\n (y === null || y instanceof de) && (h = true, c = false, o[b] = y);\n }\n if (h) {\n if (typeof u == "object" && u !== null)\n d = u;\n else if (typeof u < "u")\n throw new TypeError("\'options\' must be an object.");\n } else\n d = a;\n }\n } else if (typeof a < "u")\n throw new TypeError("Unexpected argument[1]: must be \'fetches\' or \'options\'.");\n for (let h of this.inputNames)\n if (typeof t[h] > "u")\n throw new Error(`input \'${h}\' is missing in \'feeds\'.`);\n if (c)\n for (let h of this.outputNames)\n o[h] = null;\n let l = await this.handler.run(t, o, d), m = {};\n for (let h in l)\n if (Object.hasOwnProperty.call(l, h)) {\n let g = l[h];\n g instanceof de ? m[h] = g : m[h] = new de(g.type, g.data, g.dims);\n }\n return Ue("InferenceSession.run"), Pe(), m;\n }\n async release() {\n return this.handler.dispose();\n }\n static async create(t, a, u, o) {\n _e(), De("InferenceSession.create");\n let d, c = {};\n if (typeof t == "string") {\n if (d = t, typeof a == "object" && a !== null)\n c = a;\n else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (t instanceof Uint8Array) {\n if (d = t, typeof a == "object" && a !== null)\n c = a;\n else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (t instanceof ArrayBuffer || typeof SharedArrayBuffer < "u" && t instanceof SharedArrayBuffer) {\n let g = t, b = 0, y = t.byteLength;\n if (typeof a == "object" && a !== null)\n c = a;\n else if (typeof a == "number") {\n if (b = a, !Number.isSafeInteger(b))\n throw new RangeError("\'byteOffset\' must be an integer.");\n if (b < 0 || b >= g.byteLength)\n throw new RangeError(`\'byteOffset\' is out of range [0, ${g.byteLength}).`);\n if (y = t.byteLength - b, typeof u == "number") {\n if (y = u, !Number.isSafeInteger(y))\n throw new RangeError("\'byteLength\' must be an integer.");\n if (y <= 0 || b + y > g.byteLength)\n throw new RangeError(`\'byteLength\' is out of range (0, ${g.byteLength - b}].`);\n if (typeof o == "object" && o !== null)\n c = o;\n else if (typeof o < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (typeof u < "u")\n throw new TypeError("\'byteLength\' must be a number.");\n } else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n d = new Uint8Array(g, b, y);\n } else\n throw new TypeError("Unexpected argument[0]: must be \'path\' or \'buffer\'.");\n let [l, m] = await dr(c), h = await l.createInferenceSessionHandler(d, m);\n return Ue("InferenceSession.create"), Pe(), new n(h);\n }\n startProfiling() {\n this.handler.startProfiling();\n }\n endProfiling() {\n this.handler.endProfiling();\n }\n get inputNames() {\n return this.handler.inputNames;\n }\n get outputNames() {\n return this.handler.outputNames;\n }\n get inputMetadata() {\n return this.handler.inputMetadata;\n }\n get outputMetadata() {\n return this.handler.outputMetadata;\n }\n };\n });\n var ts;\n var Rr = N(() => {\n "use strict";\n Cr();\n ts = lt;\n });\n var Fr = N(() => {\n "use strict";\n });\n var Nr = N(() => {\n "use strict";\n });\n var kr = N(() => {\n "use strict";\n });\n var Wr = N(() => {\n "use strict";\n });\n var nn = {};\n ut(nn, { InferenceSession: () => ts, TRACE: () => xr, TRACE_EVENT_BEGIN: () => De, TRACE_EVENT_END: () => Ue, TRACE_FUNC_BEGIN: () => _e, TRACE_FUNC_END: () => Pe, Tensor: () => de, env: () => Y, registerBackend: () => qe });\n var Te = N(() => {\n "use strict";\n pr();\n br();\n Rr();\n en();\n Fr();\n Nr();\n tn();\n kr();\n Wr();\n });\n var dt = N(() => {\n "use strict";\n });\n var Hr = {};\n ut(Hr, { default: () => ns });\n var $r;\n var zr;\n var ns;\n var jr = N(() => {\n "use strict";\n rn();\n xe();\n pt();\n $r = "ort-wasm-proxy-worker", zr = globalThis.self?.name === $r;\n zr && (self.onmessage = (n) => {\n let { type: t, in: a } = n.data;\n try {\n switch (t) {\n case "init-wasm":\n mt(a.wasm).then(() => {\n ht(a).then(() => {\n postMessage({ type: t });\n }, (u) => {\n postMessage({ type: t, err: u });\n });\n }, (u) => {\n postMessage({ type: t, err: u });\n });\n break;\n case "init-ep": {\n let { epName: u, env: o } = a;\n wt(o, u).then(() => {\n postMessage({ type: t });\n }, (d) => {\n postMessage({ type: t, err: d });\n });\n break;\n }\n case "copy-from": {\n let { buffer: u } = a, o = Qe(u);\n postMessage({ type: t, out: o });\n break;\n }\n case "create": {\n let { model: u, options: o } = a;\n bt(u, o).then((d) => {\n postMessage({ type: t, out: d });\n }, (d) => {\n postMessage({ type: t, err: d });\n });\n break;\n }\n case "release":\n yt(a), postMessage({ type: t });\n break;\n case "run": {\n let { sessionId: u, inputIndices: o, inputs: d, outputIndices: c, options: l } = a;\n gt(u, o, d, c, new Array(c.length).fill(null), l).then((m) => {\n m.some((h) => h[3] !== "cpu") ? postMessage({ type: t, err: "Proxy does not support non-cpu tensor location." }) : postMessage({ type: t, out: m }, Tt([...d, ...m]));\n }, (m) => {\n postMessage({ type: t, err: m });\n });\n break;\n }\n case "end-profiling":\n Et(a), postMessage({ type: t });\n break;\n default:\n }\n } catch (u) {\n postMessage({ type: t, err: u });\n }\n });\n ns = zr ? null : (n) => new Worker(n ?? oe, { type: "module", name: $r });\n });\n var Yr = {};\n ut(Yr, { default: () => rs });\n async function Vr(n = {}) {\n var t = n, a = !!globalThis.window, u = !!globalThis.WorkerGlobalScope, o = u && self.name?.startsWith("em-pthread");\n t.mountExternalData = (e, r) => {\n e.startsWith("./") && (e = e.substring(2)), (t.Rb || (t.Rb = /* @__PURE__ */ new Map())).set(e, r);\n }, t.unmountExternalData = () => {\n delete t.Rb;\n }, globalThis.SharedArrayBuffer ?? new WebAssembly.Memory({ initial: 0, maximum: 0, shared: true }).buffer.constructor;\n var d, c, l = (e, r) => {\n throw r;\n }, m = import_meta.url, h = "";\n if (a || u) {\n try {\n h = new URL(".", m).href;\n } catch {\n }\n u && (c = (e) => {\n var r = new XMLHttpRequest();\n return r.open("GET", e, false), r.responseType = "arraybuffer", r.send(null), new Uint8Array(r.response);\n }), d = async (e) => {\n if (k(e))\n return new Promise((i, s) => {\n var f = new XMLHttpRequest();\n f.open("GET", e, true), f.responseType = "arraybuffer", f.onload = () => {\n f.status == 200 || f.status == 0 && f.response ? i(f.response) : s(f.status);\n }, f.onerror = s, f.send(null);\n });\n var r = await fetch(e, { credentials: "same-origin" });\n if (r.ok)\n return r.arrayBuffer();\n throw Error(r.status + " : " + r.url);\n };\n }\n var g, b, y, T, I, D, z = console.log.bind(console), v = console.error.bind(console), O = z, F = v, _ = false, k = (e) => e.startsWith("file://");\n function w() {\n ge.buffer != j.buffer && ee();\n }\n if (o) {\n let e = function(r) {\n try {\n var i = r.data, s = i.Pb;\n if (s === "load") {\n let f = [];\n self.onmessage = (p) => f.push(p), D = () => {\n postMessage({ Pb: "loaded" });\n for (let p of f)\n e(p);\n self.onmessage = e;\n };\n for (let p of i.Zb)\n t[p] && !t[p].proxy || (t[p] = (...E) => {\n postMessage({ Pb: "callHandler", Yb: p, args: E });\n }, p == "print" && (O = t[p]), p == "printErr" && (F = t[p]));\n ge = i.dc, ee(), b = i.ec, Ut(), it();\n } else if (s === "run") {\n (function(f) {\n var p = (w(), W)[f + 52 >>> 2 >>> 0];\n f = (w(), W)[f + 56 >>> 2 >>> 0], sr(p, p - f), P(p);\n })(i.Ob), zt(i.Ob, 0, 0, 1, 0, 0), wn(), Ft(i.Ob), Z ||= true;\n try {\n Ao(i.bc, i.Tb);\n } catch (f) {\n if (f != "unwind")\n throw f;\n }\n } else\n i.target !== "setimmediate" && (s === "checkMailbox" ? Z && rt() : s && (F(`worker: received unknown command ${s}`), F(i)));\n } catch (f) {\n throw tr(), f;\n }\n };\n var Ss = e, Z = false;\n self.onunhandledrejection = (r) => {\n throw r.reason || r;\n }, self.onmessage = e;\n }\n var j, ne, pe, B, W, re, me, A, K, je = false;\n function ee() {\n var e = ge.buffer;\n t.HEAP8 = j = new Int8Array(e), pe = new Int16Array(e), t.HEAPU8 = ne = new Uint8Array(e), new Uint16Array(e), t.HEAP32 = B = new Int32Array(e), t.HEAPU32 = W = new Uint32Array(e), re = new Float32Array(e), me = new Float64Array(e), A = new BigInt64Array(e), new BigUint64Array(e);\n }\n function he() {\n je = true, o ? D() : Ee.Ta();\n }\n function H(e) {\n throw F(e = "Aborted(" + e + ")"), _ = true, e = new WebAssembly.RuntimeError(e + ". Build with -sASSERTIONS for more info."), I?.(e), e;\n }\n function q() {\n return { a: { R: fa, f: Io, w: Bo, e: Lo, k: _o, g: Po, S: Do, b: Uo, G: xo, ta: vn, j: Mo, L: In, Ja: Bn, pa: Ln, ra: _n, Ka: Pn, Ha: Dn, Aa: Un, Ga: xn, Y: Mn, qa: Cn, na: Rn, Ia: Fn, oa: Nn, Pa: Co, Da: Ro, la: No, ua: ko, ia: Wo, T: Go, Ca: Ft, Ma: $o, xa: zo, ya: Ho, za: jo, va: $n, wa: zn, ja: Hn, Ra: Yo, Oa: Xo, V: Qo, U: Zo, Na: Jo, F: Ko, La: ea, ma: ta, u: Vo, H: na, Q: at, ka: oa, aa: ra, Sa: aa, Ea: Yn, Fa: Jn, sa: ye, I: qn, X: Xn, Ba: Qn, W: Zn, _: ja, M: Wa, $: Ha, N: ka, v: Pa, c: pa, m: la, n: ca, q: va, ba: Ra, x: Ba, o: wa, O: Fa, D: Ga, J: Ca, ca: Ma, da: xa, A: Oa, P: Ua, ea: Da, z: La, E: Na, d: da, r: ha, i: ma, Z: Va, l: ya, p: ga, s: ba, t: Ea, y: Aa, fa: _a, B: $a, K: Ia, C: za, ga: Sa, ha: Ta, h: ia, a: ge, Qa: V } };\n }\n async function Ut() {\n function e(s, f) {\n return Ee = s.exports, Ee = function() {\n var p = Ee, E = (x) => () => x() >>> 0, S = (x) => (R) => x(R) >>> 0;\n return (p = Object.assign({}, p)).sb = E(p.sb), p.ub = S(p.ub), p.Ib = S(p.Ib), p.Jb = E(p.Jb), p.Nb = S(p.Nb), p;\n }(), mn.push(Ee.vb), s = Ee, t._OrtInit = s.Ua, t._OrtGetLastError = s.Va, t._OrtCreateSessionOptions = s.Wa, t._OrtAppendExecutionProvider = s.Xa, t._OrtAddFreeDimensionOverride = s.Ya, t._OrtAddSessionConfigEntry = s.Za, t._OrtReleaseSessionOptions = s._a, t._OrtCreateSession = s.$a, t._OrtReleaseSession = s.ab, t._OrtGetInputOutputCount = s.bb, t._OrtGetInputOutputMetadata = s.cb, t._OrtFree = s.db, t._OrtCreateTensor = s.eb, t._OrtGetTensorData = s.fb, t._OrtReleaseTensor = s.gb, t._OrtCreateRunOptions = s.hb, t._OrtAddRunConfigEntry = s.ib, t._OrtReleaseRunOptions = s.jb, t._OrtCreateBinding = s.kb, t._OrtBindInput = s.lb, t._OrtBindOutput = s.mb, t._OrtClearBoundOutputs = s.nb, t._OrtReleaseBinding = s.ob, t._OrtRunWithBinding = s.pb, t._OrtRun = s.qb, t._OrtEndProfiling = s.rb, st = s.sb, Kn = t._free = s.tb, er = t._malloc = s.ub, zt = s.xb, tr = s.yb, nr = s.zb, rr = s.Ab, Ht = s.Bb, or = s.Cb, ar = s.Db, M = s.Eb, Je = s.Fb, sr = s.Gb, P = s.Hb, jt = s.Ib, U = s.Jb, ir = s.Kb, Vt = s.Lb, ur = s.Mb, fr = s.Nb, cr = s.wb, b = f, Ee;\n }\n var r, i = q();\n return t.instantiateWasm ? new Promise((s) => {\n t.instantiateWasm(i, (f, p) => {\n s(e(f, p));\n });\n }) : o ? e(new WebAssembly.Instance(b, q()), b) : (K ??= t.locateFile ? t.locateFile ? t.locateFile("ort-wasm-simd-threaded.wasm", h) : h + "ort-wasm-simd-threaded.wasm" : new URL("ort-wasm-simd-threaded.wasm", import_meta.url).href, r = await async function(s) {\n var f = K;\n if (!g && !k(f))\n try {\n var p = fetch(f, { credentials: "same-origin" });\n return await WebAssembly.instantiateStreaming(p, s);\n } catch (E) {\n F(`wasm streaming compile failed: ${E}`), F("falling back to ArrayBuffer instantiation");\n }\n return async function(E, S) {\n try {\n var x = await async function(R) {\n if (!g)\n try {\n var X = await d(R);\n return new Uint8Array(X);\n } catch {\n }\n if (R == K && g)\n R = new Uint8Array(g);\n else {\n if (!c)\n throw "both async and sync fetching of the wasm failed";\n R = c(R);\n }\n return R;\n }(E);\n return await WebAssembly.instantiate(x, S);\n } catch (R) {\n F(`failed to asynchronously prepare wasm: ${R}`), H(R);\n }\n }(f, s);\n }(i), e(r.instance, r.module));\n }\n class Se {\n name = "ExitStatus";\n constructor(r) {\n this.message = `Program terminated with exit(${r})`, this.status = r;\n }\n }\n var ve = (e) => {\n e.terminate(), e.onmessage = () => {\n };\n }, Ve = [], Re = 0, te = null, ue = (e) => {\n ce.length == 0 && (yn(), bn(ce[0]));\n var r = ce.pop();\n if (!r)\n return 6;\n Fe.push(r), Oe[e.Ob] = r, r.Ob = e.Ob;\n var i = { Pb: "run", bc: e.ac, Tb: e.Tb, Ob: e.Ob };\n return r.postMessage(i, e.Xb), 0;\n }, se = 0, L = (e, r, ...i) => {\n var s, f = 16 * i.length, p = U(), E = jt(f), S = E >>> 3;\n for (s of i)\n typeof s == "bigint" ? ((w(), A)[S++ >>> 0] = 1n, (w(), A)[S++ >>> 0] = s) : ((w(), A)[S++ >>> 0] = 0n, (w(), me)[S++ >>> 0] = s);\n return e = nr(e, 0, f, E, r), P(p), e;\n };\n function V(e) {\n if (o)\n return L(0, 1, e);\n if (y = e, !(0 < se)) {\n for (var r of Fe)\n ve(r);\n for (r of ce)\n ve(r);\n ce = [], Fe = [], Oe = {}, _ = true;\n }\n l(0, new Se(e));\n }\n function fe(e) {\n if (o)\n return L(1, 0, e);\n ye(e);\n }\n var ye = (e) => {\n if (y = e, o)\n throw fe(e), "unwind";\n V(e);\n }, ce = [], Fe = [], mn = [], Oe = {}, hn = (e) => {\n var r = e.Ob;\n delete Oe[r], ce.push(e), Fe.splice(Fe.indexOf(e), 1), e.Ob = 0, rr(r);\n };\n function wn() {\n mn.forEach((e) => e());\n }\n var bn = (e) => new Promise((r) => {\n e.onmessage = (f) => {\n var p = f.data;\n if (f = p.Pb, p.Sb && p.Sb != st()) {\n var E = Oe[p.Sb];\n E ? E.postMessage(p, p.Xb) : F(`Internal error! Worker sent a message "${f}" to target pthread ${p.Sb}, but that thread no longer exists!`);\n } else\n f === "checkMailbox" ? rt() : f === "spawnThread" ? ue(p) : f === "cleanupThread" ? Rt(() => {\n hn(Oe[p.cc]);\n }) : f === "loaded" ? (e.loaded = true, r(e)) : p.target === "setimmediate" ? e.postMessage(p) : f === "uncaughtException" ? e.onerror(p.error) : f === "callHandler" ? t[p.Yb](...p.args) : f && F(`worker sent an unknown command ${f}`);\n }, e.onerror = (f) => {\n throw F(`worker sent an error! ${f.filename}:${f.lineno}: ${f.message}`), f;\n };\n var i, s = [];\n for (i of [])\n t.propertyIsEnumerable(i) && s.push(i);\n e.postMessage({ Pb: "load", Zb: s, dc: ge, ec: b });\n });\n function yn() {\n var e = new Worker((() => {\n let r = URL;\n return import_meta.url > "file:" && import_meta.url < "file;" ? new r("ort.wasm.bundle.min.mjs", import_meta.url) : new URL(import_meta.url);\n })(), { type: "module", workerData: "em-pthread", name: "em-pthread" });\n ce.push(e);\n }\n var ge, gn = [], C = (e) => {\n var r = gn[e];\n return r || (gn[e] = r = cr.get(e)), r;\n }, Ao = (e, r) => {\n se = 0, e = C(e)(r), 0 < se ? y = e : Ht(e);\n }, tt = [], nt = 0;\n function Io(e) {\n var r = new xt(e >>>= 0);\n return (w(), j)[r.Qb + 12 >>> 0] == 0 && (En(r, true), nt--), Tn(r, false), tt.push(r), fr(e);\n }\n var Ne = 0, Bo = () => {\n M(0, 0);\n var e = tt.pop();\n ir(e.Ub), Ne = 0;\n };\n function En(e, r) {\n r = r ? 1 : 0, (w(), j)[e.Qb + 12 >>> 0] = r;\n }\n function Tn(e, r) {\n r = r ? 1 : 0, (w(), j)[e.Qb + 13 >>> 0] = r;\n }\n class xt {\n constructor(r) {\n this.Ub = r, this.Qb = r - 24;\n }\n }\n var Mt = (e) => {\n var r = Ne;\n if (!r)\n return Je(0), 0;\n var i = new xt(r);\n (w(), W)[i.Qb + 16 >>> 2 >>> 0] = r;\n var s = (w(), W)[i.Qb + 4 >>> 2 >>> 0];\n if (!s)\n return Je(0), r;\n for (var f of e) {\n if (f === 0 || f === s)\n break;\n if (ur(f, s, i.Qb + 16))\n return Je(f), r;\n }\n return Je(s), r;\n };\n function Lo() {\n return Mt([]);\n }\n function _o(e) {\n return Mt([e >>> 0]);\n }\n function Po(e, r, i, s) {\n return Mt([e >>> 0, r >>> 0, i >>> 0, s >>> 0]);\n }\n var Do = () => {\n var e = tt.pop();\n e || H("no exception to throw");\n var r = e.Ub;\n throw (w(), j)[e.Qb + 13 >>> 0] == 0 && (tt.push(e), Tn(e, true), En(e, false), nt++), Vt(r), Ne = r;\n };\n function Uo(e, r, i) {\n var s = new xt(e >>>= 0);\n throw r >>>= 0, i >>>= 0, (w(), W)[s.Qb + 16 >>> 2 >>> 0] = 0, (w(), W)[s.Qb + 4 >>> 2 >>> 0] = r, (w(), W)[s.Qb + 8 >>> 2 >>> 0] = i, Vt(e), nt++, Ne = e;\n }\n var xo = () => nt;\n function Sn(e, r, i, s) {\n return o ? L(2, 1, e, r, i, s) : vn(e, r, i, s);\n }\n function vn(e, r, i, s) {\n if (e >>>= 0, r >>>= 0, i >>>= 0, s >>>= 0, !globalThis.SharedArrayBuffer)\n return 6;\n var f = [];\n return o && f.length === 0 ? Sn(e, r, i, s) : (e = { ac: i, Ob: e, Tb: s, Xb: f }, o ? (e.Pb = "spawnThread", postMessage(e, f), 0) : ue(e));\n }\n function Mo(e) {\n throw Ne ||= e >>> 0, Ne;\n }\n var On = globalThis.TextDecoder && new TextDecoder(), An = (e, r = 0, i, s) => {\n var f = r >>>= 0;\n if (i = f + i, s)\n s = i;\n else {\n for (; e[f] && !(f >= i); )\n ++f;\n s = f;\n }\n if (16 < s - r && e.buffer && On)\n return On.decode(e.buffer instanceof ArrayBuffer ? e.subarray(r, s) : e.slice(r, s));\n for (f = ""; r < s; )\n if (128 & (i = e[r++])) {\n var p = 63 & e[r++];\n if ((224 & i) == 192)\n f += String.fromCharCode((31 & i) << 6 | p);\n else {\n var E = 63 & e[r++];\n 65536 > (i = (240 & i) == 224 ? (15 & i) << 12 | p << 6 | E : (7 & i) << 18 | p << 12 | E << 6 | 63 & e[r++]) ? f += String.fromCharCode(i) : (i -= 65536, f += String.fromCharCode(55296 | i >> 10, 56320 | 1023 & i));\n }\n } else\n f += String.fromCharCode(i);\n return f;\n }, Ct = (e, r, i) => (e >>>= 0) ? An((w(), ne), e, r, i) : "";\n function In(e, r, i) {\n return o ? L(3, 1, e, r, i) : 0;\n }\n function Bn(e, r) {\n if (o)\n return L(4, 1, e, r);\n }\n function Ln(e, r) {\n if (o)\n return L(5, 1, e, r);\n }\n function _n(e, r, i) {\n if (o)\n return L(6, 1, e, r, i);\n }\n function Pn(e, r, i) {\n return o ? L(7, 1, e, r, i) : 0;\n }\n function Dn(e, r) {\n if (o)\n return L(8, 1, e, r);\n }\n function Un(e, r, i) {\n if (o)\n return L(9, 1, e, r, i);\n }\n function xn(e, r, i, s) {\n if (o)\n return L(10, 1, e, r, i, s);\n }\n function Mn(e, r, i, s) {\n if (o)\n return L(11, 1, e, r, i, s);\n }\n function Cn(e, r, i, s) {\n if (o)\n return L(12, 1, e, r, i, s);\n }\n function Rn(e) {\n if (o)\n return L(13, 1, e);\n }\n function Fn(e, r) {\n if (o)\n return L(14, 1, e, r);\n }\n function Nn(e, r, i) {\n if (o)\n return L(15, 1, e, r, i);\n }\n var Co = () => H("");\n function Ro(e) {\n zt(e >>> 0, !u, 1, !a, 131072, false), wn();\n }\n var Rt = (e) => {\n if (!_)\n try {\n if (e(), !(0 < se))\n try {\n o ? st() && Ht(y) : ye(y);\n } catch (r) {\n r instanceof Se || r == "unwind" || l(0, r);\n }\n } catch (r) {\n r instanceof Se || r == "unwind" || l(0, r);\n }\n }, Fo = !Atomics.waitAsync || globalThis.navigator?.userAgent && 91 > Number((navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./) || [])[2]);\n function Ft(e) {\n e >>>= 0, Fo || (Atomics.waitAsync((w(), B), e >>> 2, e).value.then(rt), e += 128, Atomics.store((w(), B), e >>> 2, 1));\n }\n var rt = () => Rt(() => {\n var e = st();\n e && (Ft(e), ar());\n });\n function No(e, r) {\n (e >>>= 0) == r >>> 0 ? setTimeout(rt) : o ? postMessage({ Sb: e, Pb: "checkMailbox" }) : (e = Oe[e]) && e.postMessage({ Pb: "checkMailbox" });\n }\n var Nt = [];\n function ko(e, r, i, s, f) {\n for (r >>>= 0, f >>>= 0, Nt.length = 0, i = f >>> 3, s = f + s >>> 3; i < s; ) {\n var p;\n p = (w(), A)[i++ >>> 0] ? (w(), A)[i++ >>> 0] : (w(), me)[i++ >>> 0], Nt.push(p);\n }\n return (r ? lr[r] : ua[e])(...Nt);\n }\n var Wo = () => {\n se = 0;\n };\n function Go(e) {\n e >>>= 0, o ? postMessage({ Pb: "cleanupThread", cc: e }) : hn(Oe[e]);\n }\n function $o(e) {\n }\n function zo(e, r) {\n e = -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e), r >>>= 0, e = new Date(1e3 * e), (w(), B)[r >>> 2 >>> 0] = e.getUTCSeconds(), (w(), B)[r + 4 >>> 2 >>> 0] = e.getUTCMinutes(), (w(), B)[r + 8 >>> 2 >>> 0] = e.getUTCHours(), (w(), B)[r + 12 >>> 2 >>> 0] = e.getUTCDate(), (w(), B)[r + 16 >>> 2 >>> 0] = e.getUTCMonth(), (w(), B)[r + 20 >>> 2 >>> 0] = e.getUTCFullYear() - 1900, (w(), B)[r + 24 >>> 2 >>> 0] = e.getUTCDay(), e = (e.getTime() - Date.UTC(e.getUTCFullYear(), 0, 1, 0, 0, 0, 0)) / 864e5 | 0, (w(), B)[r + 28 >>> 2 >>> 0] = e;\n }\n var kn = (e) => e % 4 == 0 && (e % 100 != 0 || e % 400 == 0), Wn = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335], Gn = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n function Ho(e, r) {\n e = -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e), r >>>= 0, e = new Date(1e3 * e), (w(), B)[r >>> 2 >>> 0] = e.getSeconds(), (w(), B)[r + 4 >>> 2 >>> 0] = e.getMinutes(), (w(), B)[r + 8 >>> 2 >>> 0] = e.getHours(), (w(), B)[r + 12 >>> 2 >>> 0] = e.getDate(), (w(), B)[r + 16 >>> 2 >>> 0] = e.getMonth(), (w(), B)[r + 20 >>> 2 >>> 0] = e.getFullYear() - 1900, (w(), B)[r + 24 >>> 2 >>> 0] = e.getDay();\n var i = (kn(e.getFullYear()) ? Wn : Gn)[e.getMonth()] + e.getDate() - 1 | 0;\n (w(), B)[r + 28 >>> 2 >>> 0] = i, (w(), B)[r + 36 >>> 2 >>> 0] = -60 * e.getTimezoneOffset(), i = new Date(e.getFullYear(), 6, 1).getTimezoneOffset();\n var s = new Date(e.getFullYear(), 0, 1).getTimezoneOffset();\n e = 0 | (i != s && e.getTimezoneOffset() == Math.min(s, i)), (w(), B)[r + 32 >>> 2 >>> 0] = e;\n }\n function jo(e) {\n e >>>= 0;\n var r = new Date((w(), B)[e + 20 >>> 2 >>> 0] + 1900, (w(), B)[e + 16 >>> 2 >>> 0], (w(), B)[e + 12 >>> 2 >>> 0], (w(), B)[e + 8 >>> 2 >>> 0], (w(), B)[e + 4 >>> 2 >>> 0], (w(), B)[e >>> 2 >>> 0], 0), i = (w(), B)[e + 32 >>> 2 >>> 0], s = r.getTimezoneOffset(), f = new Date(r.getFullYear(), 6, 1).getTimezoneOffset(), p = new Date(r.getFullYear(), 0, 1).getTimezoneOffset(), E = Math.min(p, f);\n return 0 > i ? (w(), B)[e + 32 >>> 2 >>> 0] = +(f != p && E == s) : 0 < i != (E == s) && (f = Math.max(p, f), r.setTime(r.getTime() + 6e4 * ((0 < i ? E : f) - s))), (w(), B)[e + 24 >>> 2 >>> 0] = r.getDay(), i = (kn(r.getFullYear()) ? Wn : Gn)[r.getMonth()] + r.getDate() - 1 | 0, (w(), B)[e + 28 >>> 2 >>> 0] = i, (w(), B)[e >>> 2 >>> 0] = r.getSeconds(), (w(), B)[e + 4 >>> 2 >>> 0] = r.getMinutes(), (w(), B)[e + 8 >>> 2 >>> 0] = r.getHours(), (w(), B)[e + 12 >>> 2 >>> 0] = r.getDate(), (w(), B)[e + 16 >>> 2 >>> 0] = r.getMonth(), (w(), B)[e + 20 >>> 2 >>> 0] = r.getYear(), e = r.getTime(), BigInt(isNaN(e) ? -1 : e / 1e3);\n }\n function $n(e, r, i, s, f, p, E) {\n return o ? L(16, 1, e, r, i, s, f, p, E) : -52;\n }\n function zn(e, r, i, s, f, p) {\n if (o)\n return L(17, 1, e, r, i, s, f, p);\n }\n var Ye = {}, Vo = () => performance.timeOrigin + performance.now();\n function Hn(e, r) {\n if (o)\n return L(18, 1, e, r);\n if (Ye[e] && (clearTimeout(Ye[e].id), delete Ye[e]), !r)\n return 0;\n var i = setTimeout(() => {\n delete Ye[e], Rt(() => or(e, performance.timeOrigin + performance.now()));\n }, r);\n return Ye[e] = { id: i, jc: r }, 0;\n }\n var Ae = (e, r, i) => {\n var s = (w(), ne);\n if (r >>>= 0, 0 < i) {\n var f = r;\n i = r + i - 1;\n for (var p = 0; p < e.length; ++p) {\n var E = e.codePointAt(p);\n if (127 >= E) {\n if (r >= i)\n break;\n s[r++ >>> 0] = E;\n } else if (2047 >= E) {\n if (r + 1 >= i)\n break;\n s[r++ >>> 0] = 192 | E >> 6, s[r++ >>> 0] = 128 | 63 & E;\n } else if (65535 >= E) {\n if (r + 2 >= i)\n break;\n s[r++ >>> 0] = 224 | E >> 12, s[r++ >>> 0] = 128 | E >> 6 & 63, s[r++ >>> 0] = 128 | 63 & E;\n } else {\n if (r + 3 >= i)\n break;\n s[r++ >>> 0] = 240 | E >> 18, s[r++ >>> 0] = 128 | E >> 12 & 63, s[r++ >>> 0] = 128 | E >> 6 & 63, s[r++ >>> 0] = 128 | 63 & E, p++;\n }\n }\n s[r >>> 0] = 0, e = r - f;\n } else\n e = 0;\n return e;\n };\n function Yo(e, r, i, s) {\n e >>>= 0, r >>>= 0, i >>>= 0, s >>>= 0;\n var f = (/* @__PURE__ */ new Date()).getFullYear(), p = new Date(f, 0, 1).getTimezoneOffset();\n f = new Date(f, 6, 1).getTimezoneOffset();\n var E = Math.max(p, f);\n (w(), W)[e >>> 2 >>> 0] = 60 * E, (w(), B)[r >>> 2 >>> 0] = +(p != f), e = (r = (S) => {\n var x = Math.abs(S);\n return `UTC${0 <= S ? "-" : "+"}${String(Math.floor(x / 60)).padStart(2, "0")}${String(x % 60).padStart(2, "0")}`;\n })(p), r = r(f), f < p ? (Ae(e, i, 17), Ae(r, s, 17)) : (Ae(e, s, 17), Ae(r, i, 17));\n }\n var Jo = () => Date.now(), qo = 1;\n function Xo(e, r, i) {\n if (i >>>= 0, !(0 <= e && 3 >= e))\n return 28;\n if (e === 0)\n e = Date.now();\n else {\n if (!qo)\n return 52;\n e = performance.timeOrigin + performance.now();\n }\n return e = Math.round(1e6 * e), (w(), A)[i >>> 3 >>> 0] = BigInt(e), 0;\n }\n var kt = [];\n function Qo(e, r, i) {\n e >>>= 0, r >>>= 0, i >>>= 0, kt.length = 0;\n for (var s; s = (w(), ne)[r++ >>> 0]; ) {\n var f = s != 105;\n i += (f &= s != 112) && i % 8 ? 4 : 0, kt.push(s == 112 ? (w(), W)[i >>> 2 >>> 0] : s == 106 ? (w(), A)[i >>> 3 >>> 0] : s == 105 ? (w(), B)[i >>> 2 >>> 0] : (w(), me)[i >>> 3 >>> 0]), i += f ? 8 : 4;\n }\n return lr[e](...kt);\n }\n var Zo = () => {\n };\n function Ko(e, r) {\n return F(Ct(e >>> 0, r >>> 0));\n }\n var ea = () => {\n throw se += 1, "unwind";\n };\n function ta() {\n return 4294901760;\n }\n var na = () => navigator.hardwareConcurrency, Ie = {}, Wt = (e) => {\n for (var r = 0, i = 0; i < e.length; ++i) {\n var s = e.charCodeAt(i);\n 127 >= s ? r++ : 2047 >= s ? r += 2 : 55296 <= s && 57343 >= s ? (r += 4, ++i) : r += 3;\n }\n return r;\n }, ot = (e) => {\n var r;\n return (r = /\\bwasm-function\\[\\d+\\]:(0x[0-9a-f]+)/.exec(e)) ? +r[1] : (r = /:(\\d+):\\d+(?:\\)|$)/.exec(e)) ? 2147483648 | +r[1] : 0;\n }, jn = (e) => {\n for (var r of e)\n (e = ot(r)) && (Ie[e] = r);\n };\n function ra() {\n var e = Error().stack.toString().split(`\n`);\n return e[0] == "Error" && e.shift(), jn(e), Ie.Vb = ot(e[3]), Ie.$b = e, Ie.Vb;\n }\n function at(e) {\n if (!(e = Ie[e >>> 0]))\n return 0;\n var r;\n if (r = /^\\s+at .*\\.wasm\\.(.*) \\(.*\\)$/.exec(e))\n e = r[1];\n else if (r = /^\\s+at (.*) \\(.*\\)$/.exec(e))\n e = r[1];\n else {\n if (!(r = /^(.+?)@/.exec(e)))\n return 0;\n e = r[1];\n }\n Kn(at.Wb ?? 0), r = Wt(e) + 1;\n var i = er(r);\n return i && Ae(e, i, r), at.Wb = i, at.Wb;\n }\n function oa(e) {\n e >>>= 0;\n var r = (w(), ne).length;\n if (e <= r || 4294901760 < e)\n return false;\n for (var i = 1; 4 >= i; i *= 2) {\n var s = r * (1 + 0.2 / i);\n s = Math.min(s, e + 100663296);\n e: {\n s = (Math.min(4294901760, 65536 * Math.ceil(Math.max(e, s) / 65536)) - ge.buffer.byteLength + 65535) / 65536 | 0;\n try {\n ge.grow(s), ee();\n var f = 1;\n break e;\n } catch {\n }\n f = void 0;\n }\n if (f)\n return true;\n }\n return false;\n }\n function aa(e, r, i) {\n if (e >>>= 0, r >>>= 0, Ie.Vb == e)\n var s = Ie.$b;\n else\n (s = Error().stack.toString().split(`\n`))[0] == "Error" && s.shift(), jn(s);\n for (var f = 3; s[f] && ot(s[f]) != e; )\n ++f;\n for (e = 0; e < i && s[e + f]; ++e)\n (w(), B)[r + 4 * e >>> 2 >>> 0] = ot(s[e + f]);\n return e;\n }\n var Gt, $t = {}, Vn = () => {\n if (!Gt) {\n var e, r = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8", _: "./this.program" };\n for (e in $t)\n $t[e] === void 0 ? delete r[e] : r[e] = $t[e];\n var i = [];\n for (e in r)\n i.push(`${e}=${r[e]}`);\n Gt = i;\n }\n return Gt;\n };\n function Yn(e, r) {\n if (o)\n return L(19, 1, e, r);\n e >>>= 0, r >>>= 0;\n var i, s = 0, f = 0;\n for (i of Vn()) {\n var p = r + s;\n (w(), W)[e + f >>> 2 >>> 0] = p, s += Ae(i, p, 1 / 0) + 1, f += 4;\n }\n return 0;\n }\n function Jn(e, r) {\n if (o)\n return L(20, 1, e, r);\n e >>>= 0, r >>>= 0;\n var i = Vn();\n for (var s of ((w(), W)[e >>> 2 >>> 0] = i.length, e = 0, i))\n e += Wt(s) + 1;\n return (w(), W)[r >>> 2 >>> 0] = e, 0;\n }\n function qn(e) {\n return o ? L(21, 1, e) : 52;\n }\n function Xn(e, r, i, s) {\n return o ? L(22, 1, e, r, i, s) : 52;\n }\n function Qn(e, r, i, s) {\n return o ? L(23, 1, e, r, i, s) : 70;\n }\n var sa = [null, [], []];\n function Zn(e, r, i, s) {\n if (o)\n return L(24, 1, e, r, i, s);\n r >>>= 0, i >>>= 0, s >>>= 0;\n for (var f = 0, p = 0; p < i; p++) {\n var E = (w(), W)[r >>> 2 >>> 0], S = (w(), W)[r + 4 >>> 2 >>> 0];\n r += 8;\n for (var x = 0; x < S; x++) {\n var R = e, X = (w(), ne)[E + x >>> 0], le = sa[R];\n X === 0 || X === 10 ? ((R === 1 ? O : F)(An(le)), le.length = 0) : le.push(X);\n }\n f += S;\n }\n return (w(), W)[s >>> 2 >>> 0] = f, 0;\n }\n function ia(e) {\n return e >>> 0;\n }\n o || function() {\n for (var e = t.numThreads - 1; e--; )\n yn();\n Ve.push(async () => {\n var r = async function() {\n if (!o)\n return Promise.all(ce.map(bn));\n }();\n Re++, await r, --Re == 0 && te && (r = te, te = null, r());\n });\n }(), o || (ge = new WebAssembly.Memory({ initial: 256, maximum: 65536, shared: true }), ee()), t.wasmBinary && (g = t.wasmBinary), t.stackSave = () => U(), t.stackRestore = (e) => P(e), t.stackAlloc = (e) => jt(e), t.setValue = function(e, r, i = "i8") {\n switch (i.endsWith("*") && (i = "*"), i) {\n case "i1":\n case "i8":\n (w(), j)[e >>> 0] = r;\n break;\n case "i16":\n (w(), pe)[e >>> 1 >>> 0] = r;\n break;\n case "i32":\n (w(), B)[e >>> 2 >>> 0] = r;\n break;\n case "i64":\n (w(), A)[e >>> 3 >>> 0] = BigInt(r);\n break;\n case "float":\n (w(), re)[e >>> 2 >>> 0] = r;\n break;\n case "double":\n (w(), me)[e >>> 3 >>> 0] = r;\n break;\n case "*":\n (w(), W)[e >>> 2 >>> 0] = r;\n break;\n default:\n H(`invalid type for setValue: ${i}`);\n }\n }, t.getValue = function(e, r = "i8") {\n switch (r.endsWith("*") && (r = "*"), r) {\n case "i1":\n case "i8":\n return (w(), j)[e >>> 0];\n case "i16":\n return (w(), pe)[e >>> 1 >>> 0];\n case "i32":\n return (w(), B)[e >>> 2 >>> 0];\n case "i64":\n return (w(), A)[e >>> 3 >>> 0];\n case "float":\n return (w(), re)[e >>> 2 >>> 0];\n case "double":\n return (w(), me)[e >>> 3 >>> 0];\n case "*":\n return (w(), W)[e >>> 2 >>> 0];\n default:\n H(`invalid type for getValue: ${r}`);\n }\n }, t.UTF8ToString = Ct, t.stringToUTF8 = Ae, t.lengthBytesUTF8 = Wt;\n var st, Kn, er, zt, tr, nr, rr, Ht, or, ar, M, Je, sr, P, jt, U, ir, Vt, ur, fr, cr, Ee, ua = [V, fe, Sn, In, Bn, Ln, _n, Pn, Dn, Un, xn, Mn, Cn, Rn, Fn, Nn, $n, zn, Hn, Yn, Jn, qn, Xn, Qn, Zn], lr = { 930988: (e, r, i, s, f) => {\n if (t === void 0 || !t.Rb)\n return 1;\n if ((e = Ct(Number(e >>> 0))).startsWith("./") && (e = e.substring(2)), !(e = t.Rb.get(e)))\n return 2;\n if (r = Number(r >>> 0), i = Number(i >>> 0), s = Number(s >>> 0), r + i > e.byteLength)\n return 3;\n try {\n let p = e.subarray(r, r + i);\n switch (f) {\n case 0:\n (w(), ne).set(p, s >>> 0);\n break;\n case 1:\n t.fc ? t.fc(s, p) : t.ic(s, p);\n break;\n default:\n return 4;\n }\n return 0;\n } catch {\n return 4;\n }\n }, 931812: () => typeof wasmOffsetConverter < "u" };\n function fa() {\n return typeof wasmOffsetConverter < "u";\n }\n function ca(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function la(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function da(e) {\n var r = U();\n try {\n C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n M(1, 0);\n }\n }\n function pa(e, r) {\n var i = U();\n try {\n return C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n M(1, 0);\n }\n }\n function ma(e, r, i) {\n var s = U();\n try {\n C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function ha(e, r) {\n var i = U();\n try {\n C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n M(1, 0);\n }\n }\n function wa(e, r, i, s, f, p, E) {\n var S = U();\n try {\n return C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function ba(e, r, i, s, f, p) {\n var E = U();\n try {\n C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function ya(e, r, i, s) {\n var f = U();\n try {\n C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function ga(e, r, i, s, f) {\n var p = U();\n try {\n C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Ea(e, r, i, s, f, p, E) {\n var S = U();\n try {\n C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function Ta(e, r, i, s, f, p, E) {\n var S = U();\n try {\n C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function Sa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function va(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Oa(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function Aa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function Ia(e, r, i, s, f, p, E, S, x, R, X, le) {\n var we = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X, le);\n } catch (be) {\n if (P(we), be !== be + 0)\n throw be;\n M(1, 0);\n }\n }\n function Ba(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function La(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n return M(1, 0), 0n;\n }\n }\n function _a(e, r, i, s, f, p, E, S, x) {\n var R = U();\n try {\n C(e)(r, i, s, f, p, E, S, x);\n } catch (X) {\n if (P(R), X !== X + 0)\n throw X;\n M(1, 0);\n }\n }\n function Pa(e) {\n var r = U();\n try {\n return C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n M(1, 0);\n }\n }\n function Da(e, r) {\n var i = U();\n try {\n return C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n return M(1, 0), 0n;\n }\n }\n function Ua(e) {\n var r = U();\n try {\n return C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n return M(1, 0), 0n;\n }\n }\n function xa(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Ma(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Ca(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function Ra(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function Fa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n return C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function Na(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n return M(1, 0), 0n;\n }\n }\n function ka(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Wa(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Ga(e, r, i, s, f, p, E, S, x, R, X, le) {\n var we = U();\n try {\n return C(e)(r, i, s, f, p, E, S, x, R, X, le);\n } catch (be) {\n if (P(we), be !== be + 0)\n throw be;\n M(1, 0);\n }\n }\n function $a(e, r, i, s, f, p, E, S, x, R, X) {\n var le = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X);\n } catch (we) {\n if (P(le), we !== we + 0)\n throw we;\n M(1, 0);\n }\n }\n function za(e, r, i, s, f, p, E, S, x, R, X, le, we, be, Ya, Ja) {\n var qa = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X, le, we, be, Ya, Ja);\n } catch (Yt) {\n if (P(qa), Yt !== Yt + 0)\n throw Yt;\n M(1, 0);\n }\n }\n function Ha(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function ja(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function Va(e, r, i, s) {\n var f = U();\n try {\n C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function it() {\n if (0 < Re)\n te = it;\n else if (o)\n T?.(t), he();\n else {\n for (var e = Ve; 0 < e.length; )\n e.shift()(t);\n 0 < Re ? te = it : (t.calledRun = true, _ || (he(), T?.(t)));\n }\n }\n return o || (Ee = await Ut(), it()), t.PTR_SIZE = 4, je ? t : new Promise((e, r) => {\n T = e, I = r;\n });\n }\n var rs;\n var os;\n var Jr = N(() => {\n "use strict";\n rs = Vr, os = globalThis.self?.name?.startsWith("em-pthread");\n os && Vr();\n });\n var Qr;\n var an;\n var as;\n var oe;\n var Zr;\n var on;\n var ss;\n var is;\n var Kr;\n var us;\n var qr;\n var eo;\n var Xr;\n var to;\n var pt = N(() => {\n "use strict";\n dt();\n Qr = typeof location > "u" ? void 0 : location.origin, an = import_meta.url > "file:" && import_meta.url < "file;", as = () => {\n if (true) {\n if (an) {\n let n = URL;\n return new URL(new n("ort.wasm.bundle.min.mjs", import_meta.url).href, Qr).href;\n }\n return import_meta.url;\n }\n }, oe = as(), Zr = () => {\n if (oe && !oe.startsWith("blob:"))\n return oe.substring(0, oe.lastIndexOf("/") + 1);\n }, on = (n, t) => {\n try {\n let a = t ?? oe;\n return (a ? new URL(n, a) : new URL(n)).origin === Qr;\n } catch {\n return false;\n }\n }, ss = (n, t) => {\n let a = t ?? oe;\n try {\n return (a ? new URL(n, a) : new URL(n)).href;\n } catch {\n return;\n }\n }, is = (n, t) => `${t ?? "./"}${n}`, Kr = async (n) => {\n let a = await (await fetch(n, { credentials: "same-origin" })).blob();\n return URL.createObjectURL(a);\n }, us = async (n) => (await import(\n /*webpackIgnore:true*/\n /*@vite-ignore*/\n n\n )).default, qr = (jr(), Xt(Hr)).default, eo = async () => {\n if (!oe)\n throw new Error("Failed to load proxy worker: cannot determine the script source URL.");\n if (on(oe))\n return [void 0, qr()];\n let n = await Kr(oe);\n return [n, qr(n)];\n }, Xr = (Jr(), Xt(Yr)).default, to = async (n, t, a, u) => {\n let o = Xr && !(n || t);\n if (o)\n if (oe)\n o = on(oe) || u && !a;\n else if (u && !a)\n o = true;\n else\n throw new Error("cannot determine the script source URL.");\n if (o)\n return [void 0, Xr];\n {\n let d = "ort-wasm-simd-threaded.mjs", c = n ?? ss(d, t), l = a && c && !on(c, t), m = l ? await Kr(c) : c ?? is(d, t);\n return [l ? m : void 0, await us(m)];\n }\n };\n });\n var sn;\n var un;\n var St;\n var no;\n var fs;\n var cs;\n var ls;\n var mt;\n var $;\n var xe = N(() => {\n "use strict";\n pt();\n un = false, St = false, no = false, fs = () => {\n if (typeof SharedArrayBuffer > "u")\n return false;\n try {\n return typeof MessageChannel < "u" && new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)), WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 5, 4, 1, 3, 1, 1, 10, 11, 1, 9, 0, 65, 0, 254, 16, 2, 0, 26, 11]));\n } catch {\n return false;\n }\n }, cs = () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 10, 30, 1, 28, 0, 65, 0, 253, 15, 253, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 186, 1, 26, 11]));\n } catch {\n return false;\n }\n }, ls = () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 19, 1, 17, 0, 65, 1, 253, 15, 65, 2, 253, 15, 65, 3, 253, 15, 253, 147, 2, 11]));\n } catch {\n return false;\n }\n }, mt = async (n) => {\n if (un)\n return Promise.resolve();\n if (St)\n throw new Error("multiple calls to \'initializeWebAssembly()\' detected.");\n if (no)\n throw new Error("previous call to \'initializeWebAssembly()\' failed.");\n St = true;\n let t = n.initTimeout, a = n.numThreads;\n if (n.simd !== false) {\n if (n.simd === "relaxed") {\n if (!ls())\n throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.");\n } else if (!cs())\n throw new Error("WebAssembly SIMD is not supported in the current environment.");\n }\n let u = fs();\n a > 1 && !u && (typeof self < "u" && !self.crossOriginIsolated && console.warn("env.wasm.numThreads is set to " + a + ", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."), console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."), n.numThreads = a = 1);\n let o = n.wasmPaths, d = typeof o == "string" ? o : void 0, c = o?.mjs, l = c?.href ?? c, m = o?.wasm, h = m?.href ?? m, g = n.wasmBinary, [b, y] = await to(l, d, a > 1, !!g || !!h), T = false, I = [];\n if (t > 0 && I.push(new Promise((D) => {\n setTimeout(() => {\n T = true, D();\n }, t);\n })), I.push(new Promise((D, z) => {\n let v = { numThreads: a };\n if (g)\n v.wasmBinary = g, v.locateFile = (O) => O;\n else if (h || d)\n v.locateFile = (O) => h ?? d + O;\n else if (l && l.indexOf("blob:") !== 0)\n v.locateFile = (O) => new URL(O, l).href;\n else if (b) {\n let O = Zr();\n O && (v.locateFile = (F) => O + F);\n }\n y(v).then((O) => {\n St = false, un = true, sn = O, D(), b && URL.revokeObjectURL(b);\n }, (O) => {\n St = false, no = true, z(O);\n });\n })), await Promise.race(I), T)\n throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`);\n }, $ = () => {\n if (un && sn)\n return sn;\n throw new Error("WebAssembly is not initialized yet.");\n };\n });\n var ae;\n var Ze;\n var G;\n var vt = N(() => {\n "use strict";\n xe();\n ae = (n, t) => {\n let a = $(), u = a.lengthBytesUTF8(n) + 1, o = a._malloc(u);\n return a.stringToUTF8(n, o, u), t.push(o), o;\n }, Ze = (n, t, a, u) => {\n if (typeof n == "object" && n !== null) {\n if (a.has(n))\n throw new Error("Circular reference in options");\n a.add(n);\n }\n Object.entries(n).forEach(([o, d]) => {\n let c = t ? t + o : o;\n if (typeof d == "object")\n Ze(d, c + ".", a, u);\n else if (typeof d == "string" || typeof d == "number")\n u(c, d.toString());\n else if (typeof d == "boolean")\n u(c, d ? "1" : "0");\n else\n throw new Error(`Can\'t handle extra config type: ${typeof d}`);\n });\n }, G = (n) => {\n let t = $(), a = t.stackSave();\n try {\n let u = t.PTR_SIZE, o = t.stackAlloc(2 * u);\n t._OrtGetLastError(o, o + u);\n let d = Number(t.getValue(o, u === 4 ? "i32" : "i64")), c = t.getValue(o + u, "*"), l = c ? t.UTF8ToString(c) : "";\n throw new Error(`${n} ERROR_CODE: ${d}, ERROR_MESSAGE: ${l}`);\n } finally {\n t.stackRestore(a);\n }\n };\n });\n var ro;\n var oo = N(() => {\n "use strict";\n xe();\n vt();\n ro = (n) => {\n let t = $(), a = 0, u = [], o = n || {};\n try {\n if (n?.logSeverityLevel === void 0)\n o.logSeverityLevel = 2;\n else if (typeof n.logSeverityLevel != "number" || !Number.isInteger(n.logSeverityLevel) || n.logSeverityLevel < 0 || n.logSeverityLevel > 4)\n throw new Error(`log severity level is not valid: ${n.logSeverityLevel}`);\n if (n?.logVerbosityLevel === void 0)\n o.logVerbosityLevel = 0;\n else if (typeof n.logVerbosityLevel != "number" || !Number.isInteger(n.logVerbosityLevel))\n throw new Error(`log verbosity level is not valid: ${n.logVerbosityLevel}`);\n n?.terminate === void 0 && (o.terminate = false);\n let d = 0;\n return n?.tag !== void 0 && (d = ae(n.tag, u)), a = t._OrtCreateRunOptions(o.logSeverityLevel, o.logVerbosityLevel, !!o.terminate, d), a === 0 && G("Can\'t create run options."), n?.extra !== void 0 && Ze(n.extra, "", /* @__PURE__ */ new WeakSet(), (c, l) => {\n let m = ae(c, u), h = ae(l, u);\n t._OrtAddRunConfigEntry(a, m, h) !== 0 && G(`Can\'t set a run config entry: ${c} - ${l}.`);\n }), [a, u];\n } catch (d) {\n throw a !== 0 && t._OrtReleaseRunOptions(a), u.forEach((c) => t._free(c)), d;\n }\n };\n });\n var ds;\n var ps;\n var ms;\n var ke;\n var hs;\n var ao;\n var so = N(() => {\n "use strict";\n xe();\n vt();\n ds = (n) => {\n switch (n) {\n case "disabled":\n return 0;\n case "basic":\n return 1;\n case "extended":\n return 2;\n case "layout":\n return 3;\n case "all":\n return 99;\n default:\n throw new Error(`unsupported graph optimization level: ${n}`);\n }\n }, ps = (n) => {\n switch (n) {\n case "sequential":\n return 0;\n case "parallel":\n return 1;\n default:\n throw new Error(`unsupported execution mode: ${n}`);\n }\n }, ms = (n) => {\n n.extra || (n.extra = {}), n.extra.session || (n.extra.session = {});\n let t = n.extra.session;\n t.use_ort_model_bytes_directly || (t.use_ort_model_bytes_directly = "1"), n.executionProviders && n.executionProviders.some((a) => (typeof a == "string" ? a : a.name) === "webgpu") && (n.enableMemPattern = false);\n }, ke = (n, t, a, u) => {\n let o = ae(t, u), d = ae(a, u);\n $()._OrtAddSessionConfigEntry(n, o, d) !== 0 && G(`Can\'t set a session config entry: ${t} - ${a}.`);\n }, hs = async (n, t, a) => {\n let u = t.executionProviders;\n for (let o of u) {\n let d = typeof o == "string" ? o : o.name, c = [];\n switch (d) {\n case "webnn":\n if (d = "WEBNN", ke(n, "session.disable_quant_qdq", "1", a), ke(n, "session.disable_qdq_constant_folding", "1", a), typeof o != "string") {\n let y = o?.deviceType;\n y && ke(n, "deviceType", y, a);\n }\n break;\n case "webgpu":\n if (d = "JS", typeof o != "string") {\n let b = o;\n if (b?.preferredLayout) {\n if (b.preferredLayout !== "NCHW" && b.preferredLayout !== "NHWC")\n throw new Error(`preferredLayout must be either \'NCHW\' or \'NHWC\': ${b.preferredLayout}`);\n ke(n, "preferredLayout", b.preferredLayout, a);\n }\n }\n break;\n case "wasm":\n case "cpu":\n continue;\n default:\n throw new Error(`not supported execution provider: ${d}`);\n }\n let l = ae(d, a), m = c.length, h = 0, g = 0;\n if (m > 0) {\n h = $()._malloc(m * $().PTR_SIZE), a.push(h), g = $()._malloc(m * $().PTR_SIZE), a.push(g);\n for (let b = 0; b < m; b++)\n $().setValue(h + b * $().PTR_SIZE, c[b][0], "*"), $().setValue(g + b * $().PTR_SIZE, c[b][1], "*");\n }\n await $()._OrtAppendExecutionProvider(n, l, h, g, m) !== 0 && G(`Can\'t append execution provider: ${d}.`);\n }\n }, ao = async (n) => {\n let t = $(), a = 0, u = [], o = n || {};\n ms(o);\n try {\n let d = ds(o.graphOptimizationLevel ?? "all"), c = ps(o.executionMode ?? "sequential"), l = typeof o.logId == "string" ? ae(o.logId, u) : 0, m = o.logSeverityLevel ?? 2;\n if (!Number.isInteger(m) || m < 0 || m > 4)\n throw new Error(`log severity level is not valid: ${m}`);\n let h = o.logVerbosityLevel ?? 0;\n if (!Number.isInteger(h) || h < 0 || h > 4)\n throw new Error(`log verbosity level is not valid: ${h}`);\n let g = typeof o.optimizedModelFilePath == "string" ? ae(o.optimizedModelFilePath, u) : 0;\n if (a = t._OrtCreateSessionOptions(d, !!o.enableCpuMemArena, !!o.enableMemPattern, c, !!o.enableProfiling, 0, l, m, h, g), a === 0 && G("Can\'t create session options."), o.executionProviders && await hs(a, o, u), o.enableGraphCapture !== void 0) {\n if (typeof o.enableGraphCapture != "boolean")\n throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);\n ke(a, "enableGraphCapture", o.enableGraphCapture.toString(), u);\n }\n if (o.freeDimensionOverrides)\n for (let [b, y] of Object.entries(o.freeDimensionOverrides)) {\n if (typeof b != "string")\n throw new Error(`free dimension override name must be a string: ${b}`);\n if (typeof y != "number" || !Number.isInteger(y) || y < 0)\n throw new Error(`free dimension override value must be a non-negative integer: ${y}`);\n let T = ae(b, u);\n t._OrtAddFreeDimensionOverride(a, T, y) !== 0 && G(`Can\'t set a free dimension override: ${b} - ${y}.`);\n }\n return o.extra !== void 0 && Ze(o.extra, "", /* @__PURE__ */ new WeakSet(), (b, y) => {\n ke(a, b, y, u);\n }), [a, u];\n } catch (d) {\n throw a !== 0 && t._OrtReleaseSessionOptions(a) !== 0 && G("Can\'t release session options."), u.forEach((c) => t._free(c)), d;\n }\n };\n });\n var We;\n var Ot;\n var Ge;\n var io;\n var uo;\n var At;\n var It;\n var fo;\n var fn = N(() => {\n "use strict";\n We = (n) => {\n switch (n) {\n case "int8":\n return 3;\n case "uint8":\n return 2;\n case "bool":\n return 9;\n case "int16":\n return 5;\n case "uint16":\n return 4;\n case "int32":\n return 6;\n case "uint32":\n return 12;\n case "float16":\n return 10;\n case "float32":\n return 1;\n case "float64":\n return 11;\n case "string":\n return 8;\n case "int64":\n return 7;\n case "uint64":\n return 13;\n case "int4":\n return 22;\n case "uint4":\n return 21;\n default:\n throw new Error(`unsupported data type: ${n}`);\n }\n }, Ot = (n) => {\n switch (n) {\n case 3:\n return "int8";\n case 2:\n return "uint8";\n case 9:\n return "bool";\n case 5:\n return "int16";\n case 4:\n return "uint16";\n case 6:\n return "int32";\n case 12:\n return "uint32";\n case 10:\n return "float16";\n case 1:\n return "float32";\n case 11:\n return "float64";\n case 8:\n return "string";\n case 7:\n return "int64";\n case 13:\n return "uint64";\n case 22:\n return "int4";\n case 21:\n return "uint4";\n default:\n throw new Error(`unsupported data type: ${n}`);\n }\n }, Ge = (n, t) => {\n let a = [-1, 4, 1, 1, 2, 2, 4, 8, -1, 1, 2, 8, 4, 8, -1, -1, -1, -1, -1, -1, -1, 0.5, 0.5][n], u = typeof t == "number" ? t : t.reduce((o, d) => o * d, 1);\n return a > 0 ? Math.ceil(u * a) : void 0;\n }, io = (n) => {\n switch (n) {\n case "float16":\n return typeof Float16Array < "u" && Float16Array.from ? Float16Array : Uint16Array;\n case "float32":\n return Float32Array;\n case "uint8":\n return Uint8Array;\n case "int8":\n return Int8Array;\n case "uint16":\n return Uint16Array;\n case "int16":\n return Int16Array;\n case "int32":\n return Int32Array;\n case "bool":\n return Uint8Array;\n case "float64":\n return Float64Array;\n case "uint32":\n return Uint32Array;\n case "int64":\n return BigInt64Array;\n case "uint64":\n return BigUint64Array;\n default:\n throw new Error(`unsupported type: ${n}`);\n }\n }, uo = (n) => {\n switch (n) {\n case "verbose":\n return 0;\n case "info":\n return 1;\n case "warning":\n return 2;\n case "error":\n return 3;\n case "fatal":\n return 4;\n default:\n throw new Error(`unsupported logging level: ${n}`);\n }\n }, At = (n) => n === "float32" || n === "float16" || n === "int32" || n === "int64" || n === "uint32" || n === "uint8" || n === "bool" || n === "uint4" || n === "int4", It = (n) => n === "float32" || n === "float16" || n === "int32" || n === "int64" || n === "uint32" || n === "uint64" || n === "int8" || n === "uint8" || n === "bool" || n === "uint4" || n === "int4", fo = (n) => {\n switch (n) {\n case "none":\n return 0;\n case "cpu":\n return 1;\n case "cpu-pinned":\n return 2;\n case "texture":\n return 3;\n case "gpu-buffer":\n return 4;\n case "ml-tensor":\n return 5;\n default:\n throw new Error(`unsupported data location: ${n}`);\n }\n };\n });\n var Ke;\n var cn = N(() => {\n "use strict";\n dt();\n Ke = async (n) => {\n if (typeof n == "string")\n if (false)\n try {\n let { readFile: t } = qt("node:fs/promises");\n return new Uint8Array(await t(n));\n } catch (t) {\n if (t.code === "ERR_FS_FILE_TOO_LARGE") {\n let { createReadStream: a } = qt("node:fs"), u = a(n), o = [];\n for await (let d of u)\n o.push(d);\n return new Uint8Array(Buffer.concat(o));\n }\n throw t;\n }\n else {\n let t = await fetch(n);\n if (!t.ok)\n throw new Error(`failed to load external data file: ${n}`);\n let a = t.headers.get("Content-Length"), u = a ? parseInt(a, 10) : 0;\n if (u < 1073741824)\n return new Uint8Array(await t.arrayBuffer());\n {\n if (!t.body)\n throw new Error(`failed to load external data file: ${n}, no response body.`);\n let o = t.body.getReader(), d;\n try {\n d = new ArrayBuffer(u);\n } catch (l) {\n if (l instanceof RangeError) {\n let m = Math.ceil(u / 65536);\n d = new WebAssembly.Memory({ initial: m, maximum: m }).buffer;\n } else\n throw l;\n }\n let c = 0;\n for (; ; ) {\n let { done: l, value: m } = await o.read();\n if (l)\n break;\n let h = m.byteLength;\n new Uint8Array(d, c, h).set(m), c += h;\n }\n return new Uint8Array(d, 0, u);\n }\n }\n else\n return n instanceof Blob ? new Uint8Array(await n.arrayBuffer()) : n instanceof Uint8Array ? n : new Uint8Array(n);\n };\n });\n var ws;\n var ht;\n var wt;\n var $e;\n var bs;\n var co;\n var Qe;\n var bt;\n var yt;\n var lo;\n var gt;\n var Et;\n var Tt;\n var rn = N(() => {\n "use strict";\n Te();\n oo();\n so();\n fn();\n xe();\n vt();\n cn();\n ws = (n, t) => {\n $()._OrtInit(n, t) !== 0 && G("Can\'t initialize onnxruntime.");\n }, ht = async (n) => {\n ws(n.wasm.numThreads, uo(n.logLevel));\n }, wt = async (n, t) => {\n $().asyncInit?.();\n let a = n.webgpu.adapter;\n if (t === "webgpu") {\n if (typeof navigator > "u" || !navigator.gpu)\n throw new Error("WebGPU is not supported in current environment");\n if (a) {\n if (typeof a.limits != "object" || typeof a.features != "object" || typeof a.requestDevice != "function")\n throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.");\n } else {\n let u = n.webgpu.powerPreference;\n if (u !== void 0 && u !== "low-power" && u !== "high-performance")\n throw new Error(`Invalid powerPreference setting: "${u}"`);\n let o = n.webgpu.forceFallbackAdapter;\n if (o !== void 0 && typeof o != "boolean")\n throw new Error(`Invalid forceFallbackAdapter setting: "${o}"`);\n if (a = await navigator.gpu.requestAdapter({ powerPreference: u, forceFallbackAdapter: o }), !a)\n throw new Error(\'Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.\');\n }\n }\n if (t === "webnn" && (typeof navigator > "u" || !navigator.ml))\n throw new Error("WebNN is not supported in current environment");\n }, $e = /* @__PURE__ */ new Map(), bs = (n) => {\n let t = $(), a = t.stackSave();\n try {\n let u = t.PTR_SIZE, o = t.stackAlloc(2 * u);\n t._OrtGetInputOutputCount(n, o, o + u) !== 0 && G("Can\'t get session input/output count.");\n let c = u === 4 ? "i32" : "i64";\n return [Number(t.getValue(o, c)), Number(t.getValue(o + u, c))];\n } finally {\n t.stackRestore(a);\n }\n }, co = (n, t) => {\n let a = $(), u = a.stackSave(), o = 0;\n try {\n let d = a.PTR_SIZE, c = a.stackAlloc(2 * d);\n a._OrtGetInputOutputMetadata(n, t, c, c + d) !== 0 && G("Can\'t get session input/output metadata.");\n let m = Number(a.getValue(c, "*"));\n o = Number(a.getValue(c + d, "*"));\n let h = a.HEAP32[o / 4];\n if (h === 0)\n return [m, 0];\n let g = a.HEAPU32[o / 4 + 1], b = [];\n for (let y = 0; y < g; y++) {\n let T = Number(a.getValue(o + 8 + y * d, "*"));\n b.push(T !== 0 ? a.UTF8ToString(T) : Number(a.getValue(o + 8 + (y + g) * d, "*")));\n }\n return [m, h, b];\n } finally {\n a.stackRestore(u), o !== 0 && a._OrtFree(o);\n }\n }, Qe = (n) => {\n let t = $(), a = t._malloc(n.byteLength);\n if (a === 0)\n throw new Error(`Can\'t create a session. failed to allocate a buffer of size ${n.byteLength}.`);\n return t.HEAPU8.set(n, a), [a, n.byteLength];\n }, bt = async (n, t) => {\n let a, u, o = $();\n Array.isArray(n) ? [a, u] = n : n.buffer === o.HEAPU8.buffer ? [a, u] = [n.byteOffset, n.byteLength] : [a, u] = Qe(n);\n let d = 0, c = 0, l = 0, m = [], h = [], g = [];\n try {\n if ([c, m] = await ao(t), t?.externalData && o.mountExternalData) {\n let _ = [];\n for (let k of t.externalData) {\n let w = typeof k == "string" ? k : k.path;\n _.push(Ke(typeof k == "string" ? k : k.data).then((Z) => {\n o.mountExternalData(w, Z);\n }));\n }\n await Promise.all(_);\n }\n for (let _ of t?.executionProviders ?? [])\n if ((typeof _ == "string" ? _ : _.name) === "webnn") {\n if (o.shouldTransferToMLTensor = false, typeof _ != "string") {\n let w = _, Z = w?.context, j = w?.gpuDevice, ne = w?.deviceType, pe = w?.powerPreference;\n Z ? o.currentContext = Z : j ? o.currentContext = await o.webnnCreateMLContext(j) : o.currentContext = await o.webnnCreateMLContext({ deviceType: ne, powerPreference: pe });\n } else\n o.currentContext = await o.webnnCreateMLContext();\n break;\n }\n d = await o._OrtCreateSession(a, u, c), o.webgpuOnCreateSession?.(d), d === 0 && G("Can\'t create a session."), o.jsepOnCreateSession?.(), o.currentContext && (o.webnnRegisterMLContext(d, o.currentContext), o.currentContext = void 0, o.shouldTransferToMLTensor = true);\n let [b, y] = bs(d), T = !!t?.enableGraphCapture, I = [], D = [], z = [], v = [], O = [];\n for (let _ = 0; _ < b; _++) {\n let [k, w, Z] = co(d, _);\n k === 0 && G("Can\'t get an input name."), h.push(k);\n let j = o.UTF8ToString(k);\n I.push(j), z.push(w === 0 ? { name: j, isTensor: false } : { name: j, isTensor: true, type: Ot(w), shape: Z });\n }\n for (let _ = 0; _ < y; _++) {\n let [k, w, Z] = co(d, _ + b);\n k === 0 && G("Can\'t get an output name."), g.push(k);\n let j = o.UTF8ToString(k);\n D.push(j), v.push(w === 0 ? { name: j, isTensor: false } : { name: j, isTensor: true, type: Ot(w), shape: Z });\n }\n return $e.set(d, [d, h, g, null, T, false]), [d, I, D, z, v];\n } catch (b) {\n throw h.forEach((y) => o._OrtFree(y)), g.forEach((y) => o._OrtFree(y)), l !== 0 && o._OrtReleaseBinding(l) !== 0 && G("Can\'t release IO binding."), d !== 0 && o._OrtReleaseSession(d) !== 0 && G("Can\'t release session."), b;\n } finally {\n o._free(a), c !== 0 && o._OrtReleaseSessionOptions(c) !== 0 && G("Can\'t release session options."), m.forEach((b) => o._free(b)), o.unmountExternalData?.();\n }\n }, yt = (n) => {\n let t = $(), a = $e.get(n);\n if (!a)\n throw new Error(`cannot release session. invalid session id: ${n}`);\n let [u, o, d, c, l] = a;\n c && (l && t._OrtClearBoundOutputs(c.handle) !== 0 && G("Can\'t clear bound outputs."), t._OrtReleaseBinding(c.handle) !== 0 && G("Can\'t release IO binding.")), t.jsepOnReleaseSession?.(n), t.webnnOnReleaseSession?.(n), t.webgpuOnReleaseSession?.(n), o.forEach((m) => t._OrtFree(m)), d.forEach((m) => t._OrtFree(m)), t._OrtReleaseSession(u) !== 0 && G("Can\'t release session."), $e.delete(n);\n }, lo = async (n, t, a, u, o, d, c = false) => {\n if (!n) {\n t.push(0);\n return;\n }\n let l = $(), m = l.PTR_SIZE, h = n[0], g = n[1], b = n[3], y = b, T, I;\n if (h === "string" && (b === "gpu-buffer" || b === "ml-tensor"))\n throw new Error("String tensor is not supported on GPU.");\n if (c && b !== "gpu-buffer")\n throw new Error(`External buffer must be provided for input/output index ${d} when enableGraphCapture is true.`);\n if (b === "gpu-buffer") {\n let v = n[2].gpuBuffer;\n I = Ge(We(h), g);\n {\n let O = l.jsepRegisterBuffer;\n if (!O)\n throw new Error(\'Tensor location "gpu-buffer" is not supported without using WebGPU.\');\n T = O(u, d, v, I);\n }\n } else if (b === "ml-tensor") {\n let v = n[2].mlTensor;\n I = Ge(We(h), g);\n let O = l.webnnRegisterMLTensor;\n if (!O)\n throw new Error(\'Tensor location "ml-tensor" is not supported without using WebNN.\');\n T = O(u, v, We(h), g);\n } else {\n let v = n[2];\n if (Array.isArray(v)) {\n I = m * v.length, T = l._malloc(I), a.push(T);\n for (let O = 0; O < v.length; O++) {\n if (typeof v[O] != "string")\n throw new TypeError(`tensor data at index ${O} is not a string`);\n l.setValue(T + O * m, ae(v[O], a), "*");\n }\n } else {\n let O = l.webnnIsGraphInput, F = l.webnnIsGraphOutput;\n if (h !== "string" && O && F) {\n let _ = l.UTF8ToString(o);\n if (O(u, _) || F(u, _)) {\n let k = We(h);\n I = Ge(k, g), y = "ml-tensor";\n let w = l.webnnCreateTemporaryTensor, Z = l.webnnUploadTensor;\n if (!w || !Z)\n throw new Error(\'Tensor location "ml-tensor" is not supported without using WebNN.\');\n let j = await w(u, k, g);\n Z(j, new Uint8Array(v.buffer, v.byteOffset, v.byteLength)), T = j;\n } else\n I = v.byteLength, T = l._malloc(I), a.push(T), l.HEAPU8.set(new Uint8Array(v.buffer, v.byteOffset, I), T);\n } else\n I = v.byteLength, T = l._malloc(I), a.push(T), l.HEAPU8.set(new Uint8Array(v.buffer, v.byteOffset, I), T);\n }\n }\n let D = l.stackSave(), z = l.stackAlloc(4 * g.length);\n try {\n g.forEach((O, F) => l.setValue(z + F * m, O, m === 4 ? "i32" : "i64"));\n let v = l._OrtCreateTensor(We(h), T, I, z, g.length, fo(y));\n v === 0 && G(`Can\'t create tensor for input/output. session=${u}, index=${d}.`), t.push(v);\n } finally {\n l.stackRestore(D);\n }\n }, gt = async (n, t, a, u, o, d) => {\n let c = $(), l = c.PTR_SIZE, m = $e.get(n);\n if (!m)\n throw new Error(`cannot run inference. invalid session id: ${n}`);\n let h = m[0], g = m[1], b = m[2], y = m[3], T = m[4], I = m[5], D = t.length, z = u.length, v = 0, O = [], F = [], _ = [], k = [], w = [], Z = c.stackSave(), j = c.stackAlloc(D * l), ne = c.stackAlloc(D * l), pe = c.stackAlloc(z * l), B = c.stackAlloc(z * l);\n try {\n [v, O] = ro(d), De("wasm prepareInputOutputTensor");\n for (let A = 0; A < D; A++)\n await lo(a[A], F, k, n, g[t[A]], t[A], T);\n for (let A = 0; A < z; A++)\n await lo(o[A], _, k, n, b[u[A]], D + u[A], T);\n Ue("wasm prepareInputOutputTensor");\n for (let A = 0; A < D; A++)\n c.setValue(j + A * l, F[A], "*"), c.setValue(ne + A * l, g[t[A]], "*");\n for (let A = 0; A < z; A++)\n c.setValue(pe + A * l, _[A], "*"), c.setValue(B + A * l, b[u[A]], "*");\n c.jsepOnRunStart?.(h), c.webnnOnRunStart?.(h);\n let W;\n W = await c._OrtRun(h, ne, j, D, B, z, pe, v), W !== 0 && G("failed to call OrtRun().");\n let re = [], me = [];\n De("wasm ProcessOutputTensor");\n for (let A = 0; A < z; A++) {\n let K = Number(c.getValue(pe + A * l, "*"));\n if (K === _[A] || w.includes(_[A])) {\n re.push(o[A]), K !== _[A] && c._OrtReleaseTensor(K) !== 0 && G("Can\'t release tensor.");\n continue;\n }\n let je = c.stackSave(), ee = c.stackAlloc(4 * l), he = false, H, q = 0;\n try {\n c._OrtGetTensorData(K, ee, ee + l, ee + 2 * l, ee + 3 * l) !== 0 && G(`Can\'t access output tensor data on index ${A}.`);\n let Se = l === 4 ? "i32" : "i64", ve = Number(c.getValue(ee, Se));\n q = c.getValue(ee + l, "*");\n let Ve = c.getValue(ee + l * 2, "*"), Re = Number(c.getValue(ee + l * 3, Se)), te = [];\n for (let L = 0; L < Re; L++)\n te.push(Number(c.getValue(Ve + L * l, Se)));\n c._OrtFree(Ve) !== 0 && G("Can\'t free memory for tensor dims.");\n let ue = te.reduce((L, V) => L * V, 1);\n H = Ot(ve);\n let se = y?.outputPreferredLocations[u[A]];\n if (H === "string") {\n if (se === "gpu-buffer" || se === "ml-tensor")\n throw new Error("String tensor is not supported on GPU.");\n let L = [];\n for (let V = 0; V < ue; V++) {\n let fe = c.getValue(q + V * l, "*"), ye = c.getValue(q + (V + 1) * l, "*"), ce = V === ue - 1 ? void 0 : ye - fe;\n L.push(c.UTF8ToString(fe, ce));\n }\n re.push([H, te, L, "cpu"]);\n } else if (se === "gpu-buffer" && ue > 0) {\n let L = c.jsepGetBuffer;\n if (!L)\n throw new Error(\'preferredLocation "gpu-buffer" is not supported without using WebGPU.\');\n let V = L(q), fe = Ge(ve, ue);\n if (fe === void 0 || !At(H))\n throw new Error(`Unsupported data type: ${H}`);\n he = true, re.push([H, te, { gpuBuffer: V, download: c.jsepCreateDownloader(V, fe, H), dispose: () => {\n c._OrtReleaseTensor(K) !== 0 && G("Can\'t release tensor.");\n } }, "gpu-buffer"]);\n } else if (se === "ml-tensor" && ue > 0) {\n let L = c.webnnEnsureTensor, V = c.webnnIsGraphInputOutputTypeSupported;\n if (!L || !V)\n throw new Error(\'preferredLocation "ml-tensor" is not supported without using WebNN.\');\n if (Ge(ve, ue) === void 0 || !It(H))\n throw new Error(`Unsupported data type: ${H}`);\n if (!V(n, H, false))\n throw new Error(`preferredLocation "ml-tensor" for ${H} output is not supported by current WebNN Context.`);\n let ye = await L(n, q, ve, te, false);\n he = true, re.push([H, te, { mlTensor: ye, download: c.webnnCreateMLTensorDownloader(q, H), dispose: () => {\n c.webnnReleaseTensorId(q), c._OrtReleaseTensor(K);\n } }, "ml-tensor"]);\n } else if (se === "ml-tensor-cpu-output" && ue > 0) {\n let L = c.webnnCreateMLTensorDownloader(q, H)(), V = re.length;\n he = true, me.push((async () => {\n let fe = [V, await L];\n return c.webnnReleaseTensorId(q), c._OrtReleaseTensor(K), fe;\n })()), re.push([H, te, [], "cpu"]);\n } else {\n let L = io(H), V = new L(ue);\n new Uint8Array(V.buffer, V.byteOffset, V.byteLength).set(c.HEAPU8.subarray(q, q + V.byteLength)), re.push([H, te, V, "cpu"]);\n }\n } finally {\n c.stackRestore(je), H === "string" && q && c._free(q), he || c._OrtReleaseTensor(K);\n }\n }\n y && !T && (c._OrtClearBoundOutputs(y.handle) !== 0 && G("Can\'t clear bound outputs."), $e.set(n, [h, g, b, y, T, false]));\n for (let [A, K] of await Promise.all(me))\n re[A][2] = K;\n return Ue("wasm ProcessOutputTensor"), re;\n } finally {\n c.webnnOnRunEnd?.(h), c.stackRestore(Z), F.forEach((W) => c._OrtReleaseTensor(W)), _.forEach((W) => c._OrtReleaseTensor(W)), k.forEach((W) => c._free(W)), v !== 0 && c._OrtReleaseRunOptions(v), O.forEach((W) => c._free(W));\n }\n }, Et = (n) => {\n let t = $(), a = $e.get(n);\n if (!a)\n throw new Error("invalid session id");\n let u = a[0], o = t._OrtEndProfiling(u);\n o === 0 && G("Can\'t get an profile file name."), t._OrtFree(o);\n }, Tt = (n) => {\n let t = [];\n for (let a of n) {\n let u = a[2];\n !Array.isArray(u) && "buffer" in u && t.push(u.buffer);\n }\n return t;\n };\n });\n var Ce;\n var ie;\n var et;\n var Lt;\n var _t;\n var Bt;\n var ln;\n var dn;\n var ze;\n var He;\n var gs;\n var po;\n var mo;\n var ho;\n var wo;\n var bo;\n var yo;\n var go;\n var pn = N(() => {\n "use strict";\n Te();\n rn();\n xe();\n pt();\n Ce = () => !!Y.wasm.proxy && typeof document < "u", et = false, Lt = false, _t = false, dn = /* @__PURE__ */ new Map(), ze = (n, t) => {\n let a = dn.get(n);\n a ? a.push(t) : dn.set(n, [t]);\n }, He = () => {\n if (et || !Lt || _t || !ie)\n throw new Error("worker not ready");\n }, gs = (n) => {\n switch (n.data.type) {\n case "init-wasm":\n et = false, n.data.err ? (_t = true, ln[1](n.data.err)) : (Lt = true, ln[0]()), Bt && (URL.revokeObjectURL(Bt), Bt = void 0);\n break;\n case "init-ep":\n case "copy-from":\n case "create":\n case "release":\n case "run":\n case "end-profiling": {\n let t = dn.get(n.data.type);\n n.data.err ? t.shift()[1](n.data.err) : t.shift()[0](n.data.out);\n break;\n }\n default:\n }\n }, po = async () => {\n if (!Lt) {\n if (et)\n throw new Error("multiple calls to \'initWasm()\' detected.");\n if (_t)\n throw new Error("previous call to \'initWasm()\' failed.");\n if (et = true, Ce())\n return new Promise((n, t) => {\n ie?.terminate(), eo().then(([a, u]) => {\n try {\n ie = u, ie.onerror = (d) => t(d), ie.onmessage = gs, ln = [n, t];\n let o = { type: "init-wasm", in: Y };\n !o.in.wasm.wasmPaths && (a || an) && (o.in.wasm.wasmPaths = { wasm: new URL("ort-wasm-simd-threaded.wasm", import_meta.url).href }), ie.postMessage(o), Bt = a;\n } catch (o) {\n t(o);\n }\n }, t);\n });\n try {\n await mt(Y.wasm), await ht(Y), Lt = true;\n } catch (n) {\n throw _t = true, n;\n } finally {\n et = false;\n }\n }\n }, mo = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("init-ep", [t, a]);\n let u = { type: "init-ep", in: { epName: n, env: Y } };\n ie.postMessage(u);\n });\n await wt(Y, n);\n }, ho = async (n) => Ce() ? (He(), new Promise((t, a) => {\n ze("copy-from", [t, a]);\n let u = { type: "copy-from", in: { buffer: n } };\n ie.postMessage(u, [n.buffer]);\n })) : Qe(n), wo = async (n, t) => {\n if (Ce()) {\n if (t?.preferredOutputLocation)\n throw new Error(\'session option "preferredOutputLocation" is not supported for proxy.\');\n return He(), new Promise((a, u) => {\n ze("create", [a, u]);\n let o = { type: "create", in: { model: n, options: { ...t } } }, d = [];\n n instanceof Uint8Array && d.push(n.buffer), ie.postMessage(o, d);\n });\n } else\n return bt(n, t);\n }, bo = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("release", [t, a]);\n let u = { type: "release", in: n };\n ie.postMessage(u);\n });\n yt(n);\n }, yo = async (n, t, a, u, o, d) => {\n if (Ce()) {\n if (a.some((c) => c[3] !== "cpu"))\n throw new Error("input tensor on GPU is not supported for proxy.");\n if (o.some((c) => c))\n throw new Error("pre-allocated output tensor is not supported for proxy.");\n return He(), new Promise((c, l) => {\n ze("run", [c, l]);\n let m = a, h = { type: "run", in: { sessionId: n, inputIndices: t, inputs: m, outputIndices: u, options: d } };\n ie.postMessage(h, Tt(m));\n });\n } else\n return gt(n, t, a, u, o, d);\n }, go = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("end-profiling", [t, a]);\n let u = { type: "end-profiling", in: n };\n ie.postMessage(u);\n });\n Et(n);\n };\n });\n var Eo;\n var Es;\n var Pt;\n var To = N(() => {\n "use strict";\n Te();\n pn();\n fn();\n dt();\n cn();\n Eo = (n, t) => {\n switch (n.location) {\n case "cpu":\n return [n.type, n.dims, n.data, "cpu"];\n case "gpu-buffer":\n return [n.type, n.dims, { gpuBuffer: n.gpuBuffer }, "gpu-buffer"];\n case "ml-tensor":\n return [n.type, n.dims, { mlTensor: n.mlTensor }, "ml-tensor"];\n default:\n throw new Error(`invalid data location: ${n.location} for ${t()}`);\n }\n }, Es = (n) => {\n switch (n[3]) {\n case "cpu":\n return new de(n[0], n[2], n[1]);\n case "gpu-buffer": {\n let t = n[0];\n if (!At(t))\n throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);\n let { gpuBuffer: a, download: u, dispose: o } = n[2];\n return de.fromGpuBuffer(a, { dataType: t, dims: n[1], download: u, dispose: o });\n }\n case "ml-tensor": {\n let t = n[0];\n if (!It(t))\n throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);\n let { mlTensor: a, download: u, dispose: o } = n[2];\n return de.fromMLTensor(a, { dataType: t, dims: n[1], download: u, dispose: o });\n }\n default:\n throw new Error(`invalid data location: ${n[3]}`);\n }\n }, Pt = class {\n async fetchModelAndCopyToWasmMemory(t) {\n return ho(await Ke(t));\n }\n async loadModel(t, a) {\n _e();\n let u;\n typeof t == "string" ? u = await this.fetchModelAndCopyToWasmMemory(t) : u = t, [this.sessionId, this.inputNames, this.outputNames, this.inputMetadata, this.outputMetadata] = await wo(u, a), Pe();\n }\n async dispose() {\n return bo(this.sessionId);\n }\n async run(t, a, u) {\n _e();\n let o = [], d = [];\n Object.entries(t).forEach((y) => {\n let T = y[0], I = y[1], D = this.inputNames.indexOf(T);\n if (D === -1)\n throw new Error(`invalid input \'${T}\'`);\n o.push(I), d.push(D);\n });\n let c = [], l = [];\n Object.entries(a).forEach((y) => {\n let T = y[0], I = y[1], D = this.outputNames.indexOf(T);\n if (D === -1)\n throw new Error(`invalid output \'${T}\'`);\n c.push(I), l.push(D);\n });\n let m = o.map((y, T) => Eo(y, () => `input "${this.inputNames[d[T]]}"`)), h = c.map((y, T) => y ? Eo(y, () => `output "${this.outputNames[l[T]]}"`) : null), g = await yo(this.sessionId, d, m, l, h, u), b = {};\n for (let y = 0; y < g.length; y++)\n b[this.outputNames[l[y]]] = c[y] ?? Es(g[y]);\n return Pe(), b;\n }\n startProfiling() {\n }\n endProfiling() {\n go(this.sessionId);\n }\n };\n });\n var vo = {};\n ut(vo, { OnnxruntimeWebAssemblyBackend: () => Dt, initializeFlags: () => So, wasmBackend: () => Ts });\n var So;\n var Dt;\n var Ts;\n var Oo = N(() => {\n "use strict";\n Te();\n pn();\n To();\n So = () => {\n (typeof Y.wasm.initTimeout != "number" || Y.wasm.initTimeout < 0) && (Y.wasm.initTimeout = 0);\n let n = Y.wasm.simd;\n if (typeof n != "boolean" && n !== void 0 && n !== "fixed" && n !== "relaxed" && (console.warn(`Property "env.wasm.simd" is set to unknown value "${n}". Reset it to \\`false\\` and ignore SIMD feature checking.`), Y.wasm.simd = false), typeof Y.wasm.proxy != "boolean" && (Y.wasm.proxy = false), typeof Y.wasm.trace != "boolean" && (Y.wasm.trace = false), typeof Y.wasm.numThreads != "number" || !Number.isInteger(Y.wasm.numThreads) || Y.wasm.numThreads <= 0)\n if (typeof self < "u" && !self.crossOriginIsolated)\n Y.wasm.numThreads = 1;\n else {\n let t = typeof navigator > "u" ? qt("node:os").cpus().length : navigator.hardwareConcurrency;\n Y.wasm.numThreads = Math.min(4, Math.ceil((t || 1) / 2));\n }\n }, Dt = class {\n async init(t) {\n So(), await po(), await mo(t);\n }\n async createInferenceSessionHandler(t, a) {\n let u = new Pt();\n return await u.loadModel(t, a), u;\n }\n }, Ts = new Dt();\n });\n Te();\n Te();\n Te();\n var Gr = "1.26.0";\n {\n let n = (Oo(), Xt(vo)).wasmBackend;\n qe("cpu", n, 10), qe("wasm", n, 10);\n }\n Object.defineProperty(Y.versions, "web", { value: Gr, enumerable: true });\n\n // src/workers/VadOnnxWorker.ts\n var CHUNK_SIZE = 320;\n var MODEL_EXTERNAL_DATA_PATH = "bcresnet_no_center_mult2_20ms.onnx.data";\n var STATE_INPUT_DIMS_PBTXT = {\n audio_input_state: [800],\n input_states_0: [1, 4, 43],\n input_states_1: [16, 2, 1],\n input_states_2: [16, 2, 1],\n input_states_3: [24, 4, 1],\n input_states_4: [24, 4, 1],\n input_states_5: [32, 8, 1],\n input_states_6: [32, 8, 1],\n input_states_7: [32, 8, 1],\n input_states_8: [32, 8, 1],\n input_states_9: [40, 16, 1],\n input_states_10: [40, 16, 1],\n input_states_11: [40, 16, 1],\n input_states_12: [40, 16, 1],\n input_states_13: [40, 4, 5],\n input_states_14: [64, 30, 1]\n };\n var BATCH_SIZE = 1;\n var STATE_INPUT_DIMS = Object.fromEntries(\n Object.entries(STATE_INPUT_DIMS_PBTXT).map(([name, dims]) => [\n name,\n [BATCH_SIZE, ...dims]\n ])\n );\n var STATE_OUTPUT_TO_INPUT = {\n audio_output_state: "audio_input_state",\n output_states_0: "input_states_0",\n output_states_1: "input_states_1",\n output_states_2: "input_states_2",\n output_states_3: "input_states_3",\n output_states_4: "input_states_4",\n output_states_5: "input_states_5",\n output_states_6: "input_states_6",\n output_states_7: "input_states_7",\n output_states_8: "input_states_8",\n output_states_9: "input_states_9",\n output_states_10: "input_states_10",\n output_states_11: "input_states_11",\n output_states_12: "input_states_12",\n output_states_13: "input_states_13",\n output_states_14: "input_states_14"\n };\n var VadOnnxWorker_default = (modelUrl, modelDataUrl, ortWasmUrl, ortMjsUrl) => {\n let session = null;\n let state = null;\n let buffer = new Float32Array(0);\n let draining = false;\n let feeds = {};\n let stateKeys = [];\n function postError(error) {\n self.postMessage({\n type: "error" /* ERROR */,\n error: error instanceof Error ? error.message : String(error)\n });\n }\n async function init() {\n Y.wasm.wasmPaths = { wasm: ortWasmUrl, mjs: ortMjsUrl };\n Y.wasm.numThreads = 1;\n const [modelRes, dataRes] = await Promise.all([\n fetch(modelUrl),\n fetch(modelDataUrl)\n ]);\n if (!modelRes.ok) {\n throw new Error(`Model fetch failed: ${modelRes.status} ${modelRes.statusText}`);\n }\n if (!dataRes.ok) {\n throw new Error(`Model data fetch failed: ${dataRes.status} ${dataRes.statusText}`);\n }\n const [modelBytes, dataBytes] = await Promise.all([\n modelRes.arrayBuffer(),\n dataRes.arrayBuffer()\n ]);\n session = await ts.create(new Uint8Array(modelBytes), {\n executionProviders: ["wasm"],\n externalData: [\n {\n path: MODEL_EXTERNAL_DATA_PATH,\n data: new Uint8Array(dataBytes)\n }\n ]\n });\n state = createZeroStateTensors(session, de);\n stateKeys = Object.keys(state);\n feeds = { audio: void 0 };\n for (const name of stateKeys) {\n feeds[name] = state[name];\n }\n }\n function appendBuffer(chunk) {\n const next = new Float32Array(buffer.length + chunk.length);\n next.set(buffer, 0);\n next.set(chunk, buffer.length);\n buffer = next;\n }\n async function drainBuffer() {\n if (draining) {\n return;\n }\n draining = true;\n try {\n while (buffer.length >= CHUNK_SIZE) {\n if (!session || !state) {\n break;\n }\n const chunk = buffer.subarray(0, CHUNK_SIZE);\n buffer = buffer.subarray(CHUNK_SIZE);\n feeds.audio = new de("float32", chunk, [1, CHUNK_SIZE]);\n for (const name of stateKeys) {\n feeds[name] = state[name];\n }\n const results = await session.run(feeds);\n updateStateFromOutputs(state, results);\n const probs = results.voice_probs?.data;\n if (!probs || probs.length < 2) {\n continue;\n }\n const speechProb = Math.max(probs[0], probs[1]);\n const silenceProb = 1 - speechProb;\n self.postMessage({\n type: "data" /* DATA */,\n data: { speechProb, silenceProb }\n });\n }\n } catch (err) {\n postError(err);\n } finally {\n draining = false;\n }\n }\n function onAudio(data) {\n appendBuffer(new Float32Array(data));\n void drainBuffer();\n }\n init().then(() => {\n self.onmessage = (event) => {\n onAudio(event.data.data);\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch(postError);\n };\n function updateStateFromOutputs(state, outputs) {\n for (const [outName, inName] of Object.entries(STATE_OUTPUT_TO_INPUT)) {\n const next = outputs[outName];\n if (next) {\n state[inName] = next;\n }\n }\n }\n function createZeroStateTensors(session, TensorCtor) {\n const state = {};\n for (const name of session.inputNames) {\n if (name === "audio") {\n continue;\n }\n const dims = STATE_INPUT_DIMS[name];\n if (!dims) {\n continue;\n }\n const size = dims.reduce((a, b) => a * b, 1);\n state[name] = new TensorCtor("float32", new Float32Array(size), dims);\n }\n return state;\n }\n return __toCommonJS(VadOnnxWorker_exports);\n})();\n/*! Bundled license information:\n\nonnxruntime-web/dist/ort.wasm.bundle.min.mjs:\n (*!\n * ONNX Runtime Web v1.26.0\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n *)\n*/\n',
|
|
4943
|
+
workerArgs: isTflite ? [import_audio_processing2.default, import_audio_processing2.default.getUrl] : [
|
|
4944
|
+
JSON.stringify(this._modelUrl),
|
|
4945
|
+
JSON.stringify(this._modelDataUrl),
|
|
4946
|
+
JSON.stringify(this._ortWasmUrl),
|
|
4947
|
+
JSON.stringify(this._ortMjsUrl)
|
|
4885
4948
|
]
|
|
4886
4949
|
});
|
|
4887
4950
|
}
|
|
@@ -4907,21 +4970,23 @@ var DEFAULT_THRESHOLD = 0.66;
|
|
|
4907
4970
|
var DEFAULT_HANGOVER_MS = 300;
|
|
4908
4971
|
var WATCHDOG_MS = 2e3;
|
|
4909
4972
|
var VadController = class {
|
|
4973
|
+
_effect = null;
|
|
4974
|
+
_sendTrack = null;
|
|
4975
|
+
_vadInputTrack = null;
|
|
4976
|
+
_threshold = DEFAULT_THRESHOLD;
|
|
4977
|
+
_hangoverMs = DEFAULT_HANGOVER_MS;
|
|
4978
|
+
_effectOptions = {};
|
|
4979
|
+
_isSpeaking = true;
|
|
4980
|
+
_lastSpeechAt = 0;
|
|
4981
|
+
_hangoverTimer = null;
|
|
4982
|
+
_watchdogTimer = null;
|
|
4983
|
+
_destroyed = false;
|
|
4984
|
+
_loggerFn = () => {
|
|
4985
|
+
};
|
|
4986
|
+
_logger = new Logger(this._loggerFn, "VAD");
|
|
4910
4987
|
constructor(sendTrack = null, options) {
|
|
4911
|
-
this._effect = null;
|
|
4912
|
-
this._sendTrack = null;
|
|
4913
|
-
this._vadInputTrack = null;
|
|
4914
|
-
this._threshold = DEFAULT_THRESHOLD;
|
|
4915
|
-
this._hangoverMs = DEFAULT_HANGOVER_MS;
|
|
4916
|
-
this._isSpeaking = true;
|
|
4917
|
-
this._lastSpeechAt = 0;
|
|
4918
|
-
this._hangoverTimer = null;
|
|
4919
|
-
this._watchdogTimer = null;
|
|
4920
|
-
this._destroyed = false;
|
|
4921
|
-
this._loggerFn = () => {
|
|
4922
|
-
};
|
|
4923
|
-
this._logger = new Logger(this._loggerFn, "VAD");
|
|
4924
4988
|
if (options) {
|
|
4989
|
+
this._applyEffectOptions(options);
|
|
4925
4990
|
this.setOptions(options);
|
|
4926
4991
|
}
|
|
4927
4992
|
this._sendTrack = sendTrack;
|
|
@@ -4934,6 +4999,23 @@ var VadController = class {
|
|
|
4934
4999
|
this._hangoverMs = options.hangoverMs;
|
|
4935
5000
|
}
|
|
4936
5001
|
}
|
|
5002
|
+
_applyEffectOptions(options) {
|
|
5003
|
+
if (options.modelType !== void 0) {
|
|
5004
|
+
this._effectOptions.modelType = options.modelType;
|
|
5005
|
+
}
|
|
5006
|
+
if (options.modelUrl !== void 0) {
|
|
5007
|
+
this._effectOptions.modelUrl = options.modelUrl;
|
|
5008
|
+
}
|
|
5009
|
+
if (options.modelDataUrl !== void 0) {
|
|
5010
|
+
this._effectOptions.modelDataUrl = options.modelDataUrl;
|
|
5011
|
+
}
|
|
5012
|
+
if (options.ortWasmUrl !== void 0) {
|
|
5013
|
+
this._effectOptions.ortWasmUrl = options.ortWasmUrl;
|
|
5014
|
+
}
|
|
5015
|
+
if (options.ortMjsUrl !== void 0) {
|
|
5016
|
+
this._effectOptions.ortMjsUrl = options.ortMjsUrl;
|
|
5017
|
+
}
|
|
5018
|
+
}
|
|
4937
5019
|
setLogger(loggerFunction, loggerName = "VAD") {
|
|
4938
5020
|
this._loggerFn = loggerFunction;
|
|
4939
5021
|
this._logger = new Logger(loggerFunction, loggerName);
|
|
@@ -4944,8 +5026,8 @@ var VadController = class {
|
|
|
4944
5026
|
this._logger.warn("EffectVadAi is not supported in this browser, VAD disabled");
|
|
4945
5027
|
return;
|
|
4946
5028
|
}
|
|
4947
|
-
this._logger.log("init: loading model ...");
|
|
4948
|
-
const effect = new EffectVadAi();
|
|
5029
|
+
this._logger.log("init: loading model ...", this._effectOptions.modelType ?? "onnx");
|
|
5030
|
+
const effect = new EffectVadAi(this._effectOptions);
|
|
4949
5031
|
effect.setLogger(this._loggerFn, "VAD");
|
|
4950
5032
|
effect.onData = (probs) => this._onProbs(probs);
|
|
4951
5033
|
this._effect = effect;
|
|
@@ -5066,16 +5148,16 @@ var VadController = class {
|
|
|
5066
5148
|
};
|
|
5067
5149
|
|
|
5068
5150
|
// src/effects/EffectVoiceChange.ts
|
|
5069
|
-
var
|
|
5151
|
+
var import_audio_processing3 = __toESM(require_wasm_bindings());
|
|
5070
5152
|
|
|
5071
5153
|
// src/worklets/VoiceChangeWorklet.ts
|
|
5072
5154
|
function voiceChangeWorkletFunction() {
|
|
5073
5155
|
class VoiceChangeWorklet extends AudioWorkletProcessor {
|
|
5156
|
+
samplesQueue = new Float32Array();
|
|
5157
|
+
lastFrameTime = 0;
|
|
5074
5158
|
// в секундах
|
|
5075
5159
|
constructor() {
|
|
5076
5160
|
super();
|
|
5077
|
-
this.samplesQueue = new Float32Array();
|
|
5078
|
-
this.lastFrameTime = 0;
|
|
5079
5161
|
this.port.postMessage({ type: "init" /* INIT */ });
|
|
5080
5162
|
this.port.onmessage = ({ data: { data } }) => {
|
|
5081
5163
|
const samplesIn = new Float32Array(data);
|
|
@@ -5118,6 +5200,18 @@ var PerformanceMonitorMode = /* @__PURE__ */ ((PerformanceMonitorMode2) => {
|
|
|
5118
5200
|
return PerformanceMonitorMode2;
|
|
5119
5201
|
})(PerformanceMonitorMode || {});
|
|
5120
5202
|
var PerformanceMonitor = class {
|
|
5203
|
+
threshold;
|
|
5204
|
+
intervalMs;
|
|
5205
|
+
mode;
|
|
5206
|
+
logPerformanceChecks;
|
|
5207
|
+
maxCountBadPerformanceBeforeCb;
|
|
5208
|
+
onBadPerformanceCb;
|
|
5209
|
+
onCheckPerformanceCb;
|
|
5210
|
+
logger = null;
|
|
5211
|
+
interval = 0;
|
|
5212
|
+
countBadPerformanceBeforeCb = 0;
|
|
5213
|
+
beginMarkTs = 0;
|
|
5214
|
+
performanceMeasures = [];
|
|
5121
5215
|
/**
|
|
5122
5216
|
* @typedef {Object} PerformanceMonitorOptions
|
|
5123
5217
|
* @param {PerformanceMonitorOptions} params
|
|
@@ -5150,11 +5244,6 @@ var PerformanceMonitor = class {
|
|
|
5150
5244
|
onBadPerformanceCb,
|
|
5151
5245
|
onCheckPerformanceCb
|
|
5152
5246
|
}) {
|
|
5153
|
-
this.logger = null;
|
|
5154
|
-
this.interval = 0;
|
|
5155
|
-
this.countBadPerformanceBeforeCb = 0;
|
|
5156
|
-
this.beginMarkTs = 0;
|
|
5157
|
-
this.performanceMeasures = [];
|
|
5158
5247
|
this.threshold = badPerformanceThreshold;
|
|
5159
5248
|
this.intervalMs = measureIntervalMs;
|
|
5160
5249
|
this.mode = mode;
|
|
@@ -5243,6 +5332,7 @@ var VoiceChangeEffectType = /* @__PURE__ */ ((VoiceChangeEffectType2) => {
|
|
|
5243
5332
|
return VoiceChangeEffectType2;
|
|
5244
5333
|
})(VoiceChangeEffectType || {});
|
|
5245
5334
|
var EffectVoiceChange = class extends WorkerAudioProcessor {
|
|
5335
|
+
mode;
|
|
5246
5336
|
/**
|
|
5247
5337
|
* @typedef {string} EffectVoiceChangeMode
|
|
5248
5338
|
* @typedef {Object} PerformanceMonitorOptions
|
|
@@ -5265,7 +5355,7 @@ var EffectVoiceChange = class extends WorkerAudioProcessor {
|
|
|
5265
5355
|
workletFunction: voiceChangeWorkletFunction,
|
|
5266
5356
|
workletName: "voiceChangeWorklet",
|
|
5267
5357
|
workerFunctionString: '"use strict";\nvar exports = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);\n\n // src/workers/VoiceChangeWorker.ts\n var VoiceChangeWorker_exports = {};\n __export(VoiceChangeWorker_exports, {\n VoiceChangeWorkerRequestType: () => VoiceChangeWorkerRequestType,\n default: () => VoiceChangeWorker_default\n });\n var VoiceChangeWorkerRequestType = /* @__PURE__ */ ((VoiceChangeWorkerRequestType2) => {\n VoiceChangeWorkerRequestType2["SET_EFFECTS"] = "set_effects";\n VoiceChangeWorkerRequestType2["DATA"] = "data";\n return VoiceChangeWorkerRequestType2;\n })(VoiceChangeWorkerRequestType || {});\n var VoiceChangeWorker_default = (createWav2lipModule, urlResolver) => {\n let Wav2lip = null;\n let effectsData = [];\n function init() {\n return createWav2lipModule({ locateFile: urlResolver }).then((module) => {\n Wav2lip = module;\n });\n }\n function setEffects(effectInputs, isPreset = false) {\n if (!Wav2lip) {\n return;\n }\n try {\n for (const effectInput of effectInputs) {\n const configValue = `${effectInput}${isPreset ? ".cfg" : ""}`;\n const configInput = new Wav2lip.ConfigInput(configValue, isPreset, "/");\n const config = new Wav2lip.Config(configInput);\n const effect = Wav2lip.EffectFactory.createAlgorithm(config);\n effectsData.push({\n configInput,\n config,\n effect\n });\n }\n } catch (error) {\n self.postMessage({\n type: "debug" /* DEBUG */,\n message: "before error " + JSON.stringify(effectsData)\n });\n postError("setEffects error:", error);\n }\n }\n function clearEffects() {\n try {\n for (const effectData of effectsData) {\n effectData.configInput.delete();\n effectData.config.delete();\n effectData.effect.delete();\n }\n } catch (error) {\n postError("clearEffects error:", error);\n }\n effectsData = [];\n }\n function postError(source, error) {\n self.postMessage({\n type: "error" /* ERROR */,\n error: typeof error === "number" && Wav2lip ? Wav2lip.getExMessage(error) : source + error\n });\n }\n function requestSamples(data) {\n if (!Wav2lip || !effectsData.length) {\n return;\n }\n try {\n let inputVec = new Wav2lip.vector$float$();\n const dataArr = new Float32Array(data);\n for (const sample of dataArr) {\n inputVec.push_back(sample);\n }\n for (const { effect } of effectsData) {\n inputVec = Wav2lip.applyEffect(effect, inputVec);\n }\n const samplesCount = inputVec?.size?.();\n if (!samplesCount) {\n return;\n }\n const resultSamples = new Float32Array(samplesCount);\n for (let i = 0; i < samplesCount; i++) {\n resultSamples[i] = inputVec.get(i);\n }\n self.postMessage({\n type: "data" /* DATA */,\n data: resultSamples.buffer\n }, [resultSamples.buffer]);\n } catch (error) {\n postError("requestSamples error:", error);\n }\n }\n init().then(() => {\n self.onmessage = ({ data: request }) => {\n switch (request.type) {\n case "set_effects" /* SET_EFFECTS */: {\n clearEffects();\n setEffects(request.effects, request.isPreset);\n break;\n }\n case "data" /* DATA */: {\n requestSamples(request.data);\n break;\n }\n }\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch((error) => postError("init error:", error));\n };\n return __toCommonJS(VoiceChangeWorker_exports);\n})();\n',
|
|
5268
|
-
workerArgs: [
|
|
5358
|
+
workerArgs: [import_audio_processing3.default, import_audio_processing3.default.getUrl]
|
|
5269
5359
|
});
|
|
5270
5360
|
}
|
|
5271
5361
|
setEffects(effects, isPreset) {
|