@vkontakte/calls-audio-effects 1.4.2-dev.4a2ab040.0 → 1.4.2-dev.b14c6627.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/audio-effects.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vkontakte/calls-audio-effects v1.4.2-dev.
|
|
3
|
-
*
|
|
2
|
+
* @vkontakte/calls-audio-effects v1.4.2-dev.b14c6627.0-dev
|
|
3
|
+
* Mon, 26 Oct 2026 11:39:33 GMT
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
var __create = Object.create;
|
|
@@ -4784,11 +4784,12 @@ var WorkerAudioProcessor = class extends AudioProcessor {
|
|
|
4784
4784
|
* @param {string} params.workletName - Зарегистрированное имя ворклета.
|
|
4785
4785
|
* @param {Function} params.workerFunction - Функция воркера.
|
|
4786
4786
|
* @param {*[]} params.workerArgs - Параметры для передачи в функцию воркера при его инциализации.
|
|
4787
|
+
* @param {string} [params.workerName] - Имя воркера, под которым он виден в DevTools.
|
|
4787
4788
|
*/
|
|
4788
4789
|
async init(params) {
|
|
4789
4790
|
await super.init(params);
|
|
4790
4791
|
this.isInitialized = false;
|
|
4791
|
-
await this.createWorker(params.workerFunctionString, params.workerArgs);
|
|
4792
|
+
await this.createWorker(params.workerFunctionString, params.workerArgs, params.workerName);
|
|
4792
4793
|
this.isInitialized = true;
|
|
4793
4794
|
}
|
|
4794
4795
|
resume() {
|
|
@@ -4821,11 +4822,12 @@ var WorkerAudioProcessor = class extends AudioProcessor {
|
|
|
4821
4822
|
return false;
|
|
4822
4823
|
}
|
|
4823
4824
|
}
|
|
4824
|
-
createWorker(workerFunctionString, workerArgs = []) {
|
|
4825
|
+
createWorker(workerFunctionString, workerArgs = [], workerName) {
|
|
4825
4826
|
return new Promise((resolve, reject) => {
|
|
4826
4827
|
this.logger.debug("worker init started");
|
|
4827
4828
|
this.worker = new Worker(
|
|
4828
|
-
createBlobObject(workerFunctionString, workerArgs)
|
|
4829
|
+
createBlobObject(workerFunctionString, workerArgs),
|
|
4830
|
+
{ name: workerName }
|
|
4829
4831
|
);
|
|
4830
4832
|
this.worker.onmessage = ({ data: response }) => {
|
|
4831
4833
|
switch (response.type) {
|
|
@@ -4887,8 +4889,9 @@ var EffectVmojiLmarksAi = class extends WorkerAudioProcessor {
|
|
|
4887
4889
|
sampleRate: VMOJI_LMARKS_AI_SAMPLE_RATE,
|
|
4888
4890
|
workletFunction: pureWorkletFunction,
|
|
4889
4891
|
workletName: "pureWorklet",
|
|
4890
|
-
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/VmojiLmarksAiWorker.ts\n var VmojiLmarksAiWorker_exports = {};\n __export(VmojiLmarksAiWorker_exports, {\n default: () => VmojiLmarksAiWorker_default\n });\n\n // src/utils/ModelLoader.ts\n var MODELS_FOLDER = "/";\n var MODELS_URL_PATH = "models/";\n async function loadModelFile(module, urlResolver, fileName) {\n const response = await fetch(urlResolver(MODELS_URL_PATH + fileName));\n if (!response.ok) {\n throw new Error(`model ${fileName} loading failed with status ${response.status}`);\n }\n const data = new Uint8Array(await response.arrayBuffer());\n module.FS_createDataFile(MODELS_FOLDER, fileName, data, true, false, true);\n }\n function unloadModelFile(module, fileName) {\n module.FS_unlink(MODELS_FOLDER + fileName);\n }\n\n // src/workers/VmojiLmarksAiWorker.ts\n var MODEL_FILE = "wav2lip_lite_rec-v4-v2.tflite";\n var VmojiLmarksAiWorker_default = (createWav2lipModule, urlResolver) => {\n let Wav2lip = null;\n let Animoji = null;\n function init() {\n return createWav2lipModule({ locateFile: urlResolver }).then(async (module) => {\n Wav2lip = module;\n await loadModelFile(module, urlResolver, MODEL_FILE);\n try {\n const configInput = new Wav2lip.ConfigInput("animoji_v4.cfg", true, "/");\n const config = new Wav2lip.Config(configInput);\n Animoji = Wav2lip.AnimojiFactory.createAlgorithm(config);\n } finally {\n unloadModelFile(module, MODEL_FILE);\n }\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 requestLmarks(data) {\n if (!Wav2lip || !Animoji) {\n return;\n }\n let inputVec;\n let lmarksVec;\n try {\n inputVec = new Wav2lip.vector$float$();\n const dataArr = new Float32Array(data);\n for (const sample of dataArr) {\n inputVec.push_back(sample);\n }\n lmarksVec = Wav2lip.animate(Animoji, inputVec);\n const lmarksCount = lmarksVec?.size?.();\n if (!lmarksCount) {\n return;\n }\n const lmarks = new Float32Array(lmarksCount);\n for (let i = 0; i < lmarksCount; i++) {\n lmarks[i] = lmarksVec.get(i);\n }\n self.postMessage({\n type: "data" /* DATA */,\n data: lmarks.buffer\n }, [lmarks.buffer]);\n } catch (error) {\n postError(error);\n } finally {\n inputVec?.delete();\n lmarksVec?.delete();\n }\n }\n init().then(() => {\n self.onmessage = (event) => {\n requestLmarks(event.data.data);\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch(postError);\n };\n return __toCommonJS(VmojiLmarksAiWorker_exports);\n})();\n',
|
|
4891
|
-
workerArgs: [import_audio_processing.default, import_audio_processing.default.getUrl]
|
|
4892
|
+
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/VmojiLmarksAiWorker.ts\n var VmojiLmarksAiWorker_exports = {};\n __export(VmojiLmarksAiWorker_exports, {\n default: () => VmojiLmarksAiWorker_default\n });\n\n // src/utils/ModelLoader.ts\n var MODELS_FOLDER = "/";\n var MODELS_URL_PATH = "models/";\n async function loadModelFile(module, urlResolver, fileName) {\n const response = await fetch(urlResolver(MODELS_URL_PATH + fileName));\n if (!response.ok) {\n throw new Error(`model ${fileName} loading failed with status ${response.status}`);\n }\n const data = new Uint8Array(await response.arrayBuffer());\n module.FS_createDataFile(MODELS_FOLDER, fileName, data, true, false, true);\n }\n function unloadModelFile(module, fileName) {\n module.FS_unlink(MODELS_FOLDER + fileName);\n }\n\n // src/utils/WasmMemoryReport.ts\n var REPORT_INTERVAL_MS = 6e4;\n function startWasmMemoryReport(module) {\n const report = () => {\n const bytes = module.HEAPU8?.buffer.byteLength ?? 0;\n self.postMessage({\n type: "debug" /* DEBUG */,\n message: `${self.name || "worker"} wasm memory: ${(bytes / 1048576).toFixed(1)} MiB`\n });\n };\n report();\n setInterval(report, REPORT_INTERVAL_MS);\n }\n\n // src/workers/VmojiLmarksAiWorker.ts\n var MODEL_FILE = "wav2lip_lite_rec-v4-v2.tflite";\n var VmojiLmarksAiWorker_default = (createWav2lipModule, urlResolver) => {\n let Wav2lip = null;\n let Animoji = null;\n function init() {\n return createWav2lipModule({ locateFile: urlResolver }).then(async (module) => {\n Wav2lip = module;\n startWasmMemoryReport(module);\n await loadModelFile(module, urlResolver, MODEL_FILE);\n try {\n const configInput = new Wav2lip.ConfigInput("animoji_v4.cfg", true, "/");\n const config = new Wav2lip.Config(configInput);\n Animoji = Wav2lip.AnimojiFactory.createAlgorithm(config);\n } finally {\n unloadModelFile(module, MODEL_FILE);\n }\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 requestLmarks(data) {\n if (!Wav2lip || !Animoji) {\n return;\n }\n let inputVec;\n let lmarksVec;\n try {\n inputVec = new Wav2lip.vector$float$();\n const dataArr = new Float32Array(data);\n for (const sample of dataArr) {\n inputVec.push_back(sample);\n }\n lmarksVec = Wav2lip.animate(Animoji, inputVec);\n const lmarksCount = lmarksVec?.size?.();\n if (!lmarksCount) {\n return;\n }\n const lmarks = new Float32Array(lmarksCount);\n for (let i = 0; i < lmarksCount; i++) {\n lmarks[i] = lmarksVec.get(i);\n }\n self.postMessage({\n type: "data" /* DATA */,\n data: lmarks.buffer\n }, [lmarks.buffer]);\n } catch (error) {\n postError(error);\n } finally {\n inputVec?.delete();\n lmarksVec?.delete();\n }\n }\n init().then(() => {\n self.onmessage = (event) => {\n requestLmarks(event.data.data);\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch(postError);\n };\n return __toCommonJS(VmojiLmarksAiWorker_exports);\n})();\n',
|
|
4893
|
+
workerArgs: [import_audio_processing.default, import_audio_processing.default.getUrl],
|
|
4894
|
+
workerName: "VmojiLmarksAiWorker"
|
|
4892
4895
|
});
|
|
4893
4896
|
}
|
|
4894
4897
|
onWorkletData(data) {
|
|
@@ -4939,13 +4942,14 @@ var EffectVadAi = class extends WorkerAudioProcessor {
|
|
|
4939
4942
|
sampleRate: VAD_SAMPLE_RATE,
|
|
4940
4943
|
workletFunction: pureWorkletFunction,
|
|
4941
4944
|
workletName: "pureWorklet",
|
|
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\n // src/utils/ModelLoader.ts\n var MODELS_FOLDER = "/";\n var MODELS_URL_PATH = "models/";\n async function loadModelFile(module, urlResolver, fileName) {\n const response = await fetch(urlResolver(MODELS_URL_PATH + fileName));\n if (!response.ok) {\n throw new Error(`model ${fileName} loading failed with status ${response.status}`);\n }\n const data = new Uint8Array(await response.arrayBuffer());\n module.FS_createDataFile(MODELS_FOLDER, fileName, data, true, false, true);\n }\n function unloadModelFile(module, fileName) {\n module.FS_unlink(MODELS_FOLDER + fileName);\n }\n\n // src/workers/VadTfliteWorker.ts\n var INPUT_SAMPLES = 320;\n var MODEL_FILE = "bcresnet_internal_state_20ms.tflite";\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(async (module) => {\n Wav2lip = module;\n await loadModelFile(module, urlResolver, MODEL_FILE);\n try {\n const configInput = new Wav2lip.ConfigInput("vad.cfg", true, "/");\n const config = new Wav2lip.Config(configInput);\n classifier = Wav2lip.AudioClassifierFactory.createAlgorithm(config);\n } finally {\n unloadModelFile(module, MODEL_FILE);\n }\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 let probs;\n try {\n for (let i = 0; i < INPUT_SAMPLES; i++) {\n inputVec.push_back(chunk[i]);\n }\n probs = Wav2lip.vadAccept(classifier, inputVec);\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 } finally {\n inputVec.delete();\n probs?.delete();\n }\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',
|
|
4945
|
+
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\n // src/utils/ModelLoader.ts\n var MODELS_FOLDER = "/";\n var MODELS_URL_PATH = "models/";\n async function loadModelFile(module, urlResolver, fileName) {\n const response = await fetch(urlResolver(MODELS_URL_PATH + fileName));\n if (!response.ok) {\n throw new Error(`model ${fileName} loading failed with status ${response.status}`);\n }\n const data = new Uint8Array(await response.arrayBuffer());\n module.FS_createDataFile(MODELS_FOLDER, fileName, data, true, false, true);\n }\n function unloadModelFile(module, fileName) {\n module.FS_unlink(MODELS_FOLDER + fileName);\n }\n\n // src/utils/WasmMemoryReport.ts\n var REPORT_INTERVAL_MS = 6e4;\n function startWasmMemoryReport(module) {\n const report = () => {\n const bytes = module.HEAPU8?.buffer.byteLength ?? 0;\n self.postMessage({\n type: "debug" /* DEBUG */,\n message: `${self.name || "worker"} wasm memory: ${(bytes / 1048576).toFixed(1)} MiB`\n });\n };\n report();\n setInterval(report, REPORT_INTERVAL_MS);\n }\n\n // src/workers/VadTfliteWorker.ts\n var INPUT_SAMPLES = 320;\n var MODEL_FILE = "bcresnet_internal_state_20ms.tflite";\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(async (module) => {\n Wav2lip = module;\n startWasmMemoryReport(module);\n await loadModelFile(module, urlResolver, MODEL_FILE);\n try {\n const configInput = new Wav2lip.ConfigInput("vad.cfg", true, "/");\n const config = new Wav2lip.Config(configInput);\n classifier = Wav2lip.AudioClassifierFactory.createAlgorithm(config);\n } finally {\n unloadModelFile(module, MODEL_FILE);\n }\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 let probs;\n try {\n for (let i = 0; i < INPUT_SAMPLES; i++) {\n inputVec.push_back(chunk[i]);\n }\n probs = Wav2lip.vadAccept(classifier, inputVec);\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 } finally {\n inputVec.delete();\n probs?.delete();\n }\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
4946
|
workerArgs: isTflite ? [import_audio_processing2.default, import_audio_processing2.default.getUrl] : [
|
|
4944
4947
|
JSON.stringify(this._modelUrl),
|
|
4945
4948
|
JSON.stringify(this._modelDataUrl),
|
|
4946
4949
|
JSON.stringify(this._ortWasmUrl),
|
|
4947
4950
|
JSON.stringify(this._ortMjsUrl)
|
|
4948
|
-
]
|
|
4951
|
+
],
|
|
4952
|
+
workerName: isTflite ? "VadTfliteWorker" : "VadOnnxWorker"
|
|
4949
4953
|
});
|
|
4950
4954
|
}
|
|
4951
4955
|
onWorkletData(data) {
|
|
@@ -5092,7 +5096,11 @@ var VadController = class {
|
|
|
5092
5096
|
this._sendTrack.enabled = true;
|
|
5093
5097
|
}
|
|
5094
5098
|
this._sendTrack = track;
|
|
5095
|
-
|
|
5099
|
+
const inputTrack = track ? track.clone() : null;
|
|
5100
|
+
if (inputTrack) {
|
|
5101
|
+
inputTrack.enabled = true;
|
|
5102
|
+
}
|
|
5103
|
+
this._replaceVadInputTrack(inputTrack);
|
|
5096
5104
|
this._effect?.setSource(this._vadInputTrack);
|
|
5097
5105
|
if (this._sendTrack) {
|
|
5098
5106
|
this._sendTrack.enabled = this._isSpeaking;
|
|
@@ -5363,8 +5371,9 @@ var EffectVoiceChange = class extends WorkerAudioProcessor {
|
|
|
5363
5371
|
isOutputStream: this.mode === "output_stream" /* OUTPUT_STREAM */,
|
|
5364
5372
|
workletFunction: voiceChangeWorkletFunction,
|
|
5365
5373
|
workletName: "voiceChangeWorklet",
|
|
5366
|
-
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\n // src/utils/ModelLoader.ts\n var MODELS_FOLDER = "/";\n var MODELS_URL_PATH = "models/";\n async function loadModelFile(module, urlResolver, fileName) {\n const response = await fetch(urlResolver(MODELS_URL_PATH + fileName));\n if (!response.ok) {\n throw new Error(`model ${fileName} loading failed with status ${response.status}`);\n }\n const data = new Uint8Array(await response.arrayBuffer());\n module.FS_createDataFile(MODELS_FOLDER, fileName, data, true, false, true);\n }\n\n // src/workers/VoiceChangeWorker.ts\n var VoiceChangeWorkerRequestType = /* @__PURE__ */ ((VoiceChangeWorkerRequestType2) => {\n VoiceChangeWorkerRequestType2["SET_EFFECTS"] = "set_effects";\n VoiceChangeWorkerRequestType2["DATA"] = "data";\n return VoiceChangeWorkerRequestType2;\n })(VoiceChangeWorkerRequestType || {});\n var DENOISE_PRESET = "denoise";\n var DENOISE_MODEL_FILE = "df2_lstm_full_silent.tflite";\n var VoiceChangeWorker_default = (createWav2lipModule, urlResolver) => {\n let Wav2lip = null;\n let effectsData = [];\n let isDenoiseModelLoaded = false;\n let denoiseModelLoading = null;\n let isPassThrough = false;\n let effectsRequestId = 0;\n function init() {\n return createWav2lipModule({ locateFile: urlResolver }).then((module) => {\n Wav2lip = module;\n });\n }\n function isDenoiseModelRequired(effectInputs, isPreset) {\n return effectInputs.some((effectInput) => isPreset ? effectInput === DENOISE_PRESET : effectInput.includes(DENOISE_MODEL_FILE));\n }\n async function loadDenoiseModel(module) {\n try {\n await loadModelFile(module, urlResolver, DENOISE_MODEL_FILE);\n isDenoiseModelLoaded = true;\n } finally {\n denoiseModelLoading = null;\n }\n }\n async function loadModels(effectInputs, isPreset) {\n if (!Wav2lip || isDenoiseModelLoaded || !isDenoiseModelRequired(effectInputs, isPreset)) {\n return;\n }\n isPassThrough = true;\n denoiseModelLoading ??= loadDenoiseModel(Wav2lip);\n await denoiseModelLoading;\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 let config;\n try {\n config = new Wav2lip.Config(configInput);\n const effect = Wav2lip.EffectFactory.createAlgorithm(config);\n effectsData.push({\n configInput,\n config,\n effect\n });\n } catch (error) {\n config?.delete();\n configInput.delete();\n throw error;\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 for (const { configInput, config, effect } of effectsData) {\n for (const wasmObject of [configInput, config, effect]) {\n try {\n wasmObject.delete();\n } catch (error) {\n postError("clearEffects error:", error);\n }\n }\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 let inputVec;\n try {\n 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 const outputVec = Wav2lip.applyEffect(effect, inputVec);\n inputVec.delete();\n inputVec = outputVec;\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 } finally {\n inputVec?.delete();\n }\n }\n init().then(() => {\n self.onmessage = ({ data: request }) => {\n switch (request.type) {\n case "set_effects" /* SET_EFFECTS */: {\n const { effects, isPreset = false } = request;\n const requestId = ++effectsRequestId;\n loadModels(effects, isPreset).then(() => {\n if (requestId === effectsRequestId) {\n clearEffects();\n setEffects(effects, isPreset);\n isPassThrough = false;\n }\n }).catch((error) => postError("setEffects error:", error));\n break;\n }\n case "data" /* DATA */: {\n if (isPassThrough && !effectsData.length) {\n self.postMessage({\n type: "data" /* DATA */,\n data: request.data\n }, [request.data]);\n break;\n }\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',
|
|
5367
|
-
workerArgs: [import_audio_processing3.default, import_audio_processing3.default.getUrl]
|
|
5374
|
+
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\n // src/utils/ModelLoader.ts\n var MODELS_FOLDER = "/";\n var MODELS_URL_PATH = "models/";\n async function loadModelFile(module, urlResolver, fileName) {\n const response = await fetch(urlResolver(MODELS_URL_PATH + fileName));\n if (!response.ok) {\n throw new Error(`model ${fileName} loading failed with status ${response.status}`);\n }\n const data = new Uint8Array(await response.arrayBuffer());\n module.FS_createDataFile(MODELS_FOLDER, fileName, data, true, false, true);\n }\n\n // src/utils/WasmMemoryReport.ts\n var REPORT_INTERVAL_MS = 6e4;\n function startWasmMemoryReport(module) {\n const report = () => {\n const bytes = module.HEAPU8?.buffer.byteLength ?? 0;\n self.postMessage({\n type: "debug" /* DEBUG */,\n message: `${self.name || "worker"} wasm memory: ${(bytes / 1048576).toFixed(1)} MiB`\n });\n };\n report();\n setInterval(report, REPORT_INTERVAL_MS);\n }\n\n // src/workers/VoiceChangeWorker.ts\n var VoiceChangeWorkerRequestType = /* @__PURE__ */ ((VoiceChangeWorkerRequestType2) => {\n VoiceChangeWorkerRequestType2["SET_EFFECTS"] = "set_effects";\n VoiceChangeWorkerRequestType2["DATA"] = "data";\n return VoiceChangeWorkerRequestType2;\n })(VoiceChangeWorkerRequestType || {});\n var DENOISE_PRESET = "denoise";\n var DENOISE_MODEL_FILE = "df2_lstm_full_silent.tflite";\n var VoiceChangeWorker_default = (createWav2lipModule, urlResolver) => {\n let Wav2lip = null;\n let effectsData = [];\n let isDenoiseModelLoaded = false;\n let denoiseModelLoading = null;\n let isPassThrough = false;\n let effectsRequestId = 0;\n function init() {\n return createWav2lipModule({ locateFile: urlResolver }).then((module) => {\n Wav2lip = module;\n startWasmMemoryReport(module);\n });\n }\n function isDenoiseModelRequired(effectInputs, isPreset) {\n return effectInputs.some((effectInput) => isPreset ? effectInput === DENOISE_PRESET : effectInput.includes(DENOISE_MODEL_FILE));\n }\n async function loadDenoiseModel(module) {\n try {\n await loadModelFile(module, urlResolver, DENOISE_MODEL_FILE);\n isDenoiseModelLoaded = true;\n } finally {\n denoiseModelLoading = null;\n }\n }\n async function loadModels(effectInputs, isPreset) {\n if (!Wav2lip || isDenoiseModelLoaded || !isDenoiseModelRequired(effectInputs, isPreset)) {\n return;\n }\n isPassThrough = true;\n denoiseModelLoading ??= loadDenoiseModel(Wav2lip);\n await denoiseModelLoading;\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 let config;\n try {\n config = new Wav2lip.Config(configInput);\n const effect = Wav2lip.EffectFactory.createAlgorithm(config);\n effectsData.push({\n configInput,\n config,\n effect\n });\n } catch (error) {\n config?.delete();\n configInput.delete();\n throw error;\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 for (const { configInput, config, effect } of effectsData) {\n for (const wasmObject of [configInput, config, effect]) {\n try {\n wasmObject.delete();\n } catch (error) {\n postError("clearEffects error:", error);\n }\n }\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 let inputVec;\n try {\n 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 const outputVec = Wav2lip.applyEffect(effect, inputVec);\n inputVec.delete();\n inputVec = outputVec;\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 } finally {\n inputVec?.delete();\n }\n }\n init().then(() => {\n self.onmessage = ({ data: request }) => {\n switch (request.type) {\n case "set_effects" /* SET_EFFECTS */: {\n const { effects, isPreset = false } = request;\n const requestId = ++effectsRequestId;\n loadModels(effects, isPreset).then(() => {\n if (requestId === effectsRequestId) {\n clearEffects();\n setEffects(effects, isPreset);\n isPassThrough = false;\n }\n }).catch((error) => postError("setEffects error:", error));\n break;\n }\n case "data" /* DATA */: {\n if (isPassThrough && !effectsData.length) {\n self.postMessage({\n type: "data" /* DATA */,\n data: request.data\n }, [request.data]);\n break;\n }\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',
|
|
5375
|
+
workerArgs: [import_audio_processing3.default, import_audio_processing3.default.getUrl],
|
|
5376
|
+
workerName: "VoiceChangeWorker"
|
|
5368
5377
|
});
|
|
5369
5378
|
}
|
|
5370
5379
|
setEffects(effects, isPreset) {
|