quantum-resistant-rustykey 0.4.0 → 0.5.4
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/README.md +15 -3
- package/{install → dist}/index.js +1037 -23
- package/dist/index.js.map +1 -0
- package/package.json +24 -38
- package/install/index.d.ts +0 -21
- package/install/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/vendor/mlkem.js","../src/kyber_crystals_wasm_engine.js","../src/index.ts"],"sourcesContent":["// src/build/wasm-module.js\nasync function MLKEM768Module(moduleArg = {}) {\n var moduleRtn;\n var Module = moduleArg;\n var ENVIRONMENT_IS_WEB = typeof window == \"object\";\n var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != \"undefined\";\n var ENVIRONMENT_IS_NODE = typeof process == \"object\" && process.versions?.node && process.type != \"renderer\";\n var _scriptName = import.meta.url;\n var scriptDirectory = \"\";\n var readAsync, readBinary;\n if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n try {\n scriptDirectory = new URL(\".\", _scriptName).href;\n } catch {\n }\n {\n if (ENVIRONMENT_IS_WORKER) {\n readBinary = (url) => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.responseType = \"arraybuffer\";\n xhr.send(null);\n return new Uint8Array(xhr.response);\n };\n }\n readAsync = async (url) => {\n if (isFileURI(url)) {\n return new Promise((resolve, reject) => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n xhr.responseType = \"arraybuffer\";\n xhr.onload = () => {\n if (xhr.status == 200 || xhr.status == 0 && xhr.response) {\n resolve(xhr.response);\n return;\n }\n reject(xhr.status);\n };\n xhr.onerror = reject;\n xhr.send(null);\n });\n }\n var response = await fetch(url, { credentials: \"same-origin\" });\n if (response.ok) {\n return response.arrayBuffer();\n }\n throw new Error(response.status + \" : \" + response.url);\n };\n }\n } else {\n }\n var out = console.log.bind(console);\n var err = console.error.bind(console);\n var wasmBinary;\n var ABORT = false;\n var isFileURI = (filename) => filename.startsWith(\"file://\");\n var readyPromiseResolve, readyPromiseReject;\n var wasmMemory;\n var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n var HEAP64, HEAPU64;\n var runtimeInitialized = false;\n function updateMemoryViews() {\n var b = wasmMemory.buffer;\n Module[\"HEAP8\"] = HEAP8 = new Int8Array(b);\n HEAP16 = new Int16Array(b);\n Module[\"HEAPU8\"] = HEAPU8 = new Uint8Array(b);\n HEAPU16 = new Uint16Array(b);\n HEAP32 = new Int32Array(b);\n HEAPU32 = new Uint32Array(b);\n HEAPF32 = new Float32Array(b);\n HEAPF64 = new Float64Array(b);\n HEAP64 = new BigInt64Array(b);\n HEAPU64 = new BigUint64Array(b);\n }\n function preRun() {\n }\n function initRuntime() {\n runtimeInitialized = true;\n wasmExports[\"b\"]();\n }\n function postRun() {\n }\n function abort(what) {\n what = \"Aborted(\" + what + \")\";\n err(what);\n ABORT = true;\n what += \". Build with -sASSERTIONS for more info.\";\n var e = new WebAssembly.RuntimeError(what);\n readyPromiseReject?.(e);\n throw e;\n }\n var wasmBinaryFile;\n function findWasmBinary() {\n return base64Decode(\"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CCIBIAAtABtzIAJxIAFzOgAbIAAgAy0A/AgiASAALQAccyACcSABczoAHCAAIAMtAP0IIgEgAC0AHXMgAnEgAXM6AB0gACADLQD+CCIBIAAtAB5zIAJxIAFzOgAeIAAgAiADLQD/CCIBIAAtAB9zcSABczoAHyADQdgJakIANwMAIANB0AlqQgA3AwAgA0HICWpCADcDACADQcAJakIANwMAIANCADcDuAkgA0IANwOwCSADQgA3A6gJIANCADcDoAkgA0GYCWpCADcDACADQZAJakIANwMAIANBiAlqQgA3AwAgA0GACWpCADcDACADQgA3A/gIIANCADcD8AggA0IANwPoCCADQgA3A+AIIANBAEHgCPwLAEEAIQcLJAAgBwvPAwEIfyMAIgQgBEGAFWtBYHEiBCQAIARBgAlqIgUgAhANIAUQDCAEIAUQDkEAIQUDQCAEIAZBAmoiB2otAAAgAiAHai0AAHMiByAEIAZBAWoiCWotAAAgAiAJai0AAHMiCSAEIAZqLQAAIAIgBmotAABzIgsgCHNzcyEIIAcgCSAFIAtycnIhBSAGQQNqIgZBgAlHDQALIARBAEGACfwLACAEQYAJaiIGQQBBgAz8CwAgCEEAIAVB/wFxa0EYdnNBfyEFQf8BcSAIQf8BcUYEQCAEIAMpAAA3A4AJIAQgAykAGDcDmAkgBCADKQAQNwOQCSAEIAMpAAg3A4gJIARBoAlqIgMgAhATIAQgBkHAABASIAAgBiACIARBIGoQGiABIAQpAxg3ABggASAEKQMQNwAQIAEgBCkDCDcACCABIAQpAwA3AAAgA0IANwMAIARBqAlqQgA3AwAgBEGwCWpCADcDACAEQbgJakIANwMAIARCADcDgAkgBEIANwOICSAEQgA3A5AJIARCADcDmAkgBEIANwM4IARCADcDMCAEQgA3AyggBEIANwMgIARCADcDGCAEQgA3AxAgBEIANwMIIARCADcDAEEAIQULJAAgBQuVBwIKfwR+IwAiAyADQYDPAGtBYHEiAyQAIAIpAAghDSACKQAQIQ4gAikAGCEPIAIpAAAhECADQQM6ACAgAyAPNwMYIAMgDjcDECADIA03AwggAyAQNwMAIANBwM4AaiADQSEQEiADQYgfaiADKQPITiINNwMAIANBkB9qIAMpA9BOIg43AwAgA0GYH2ogAykD2E4iDzcDACADQcgfaiANNwMAIANB0B9qIA43AwAgA0HYH2ogDzcDACADQZggaiAPNwMAIANBkCBqIA43AwAgA0GIIGogDTcDACADIA83A9geIAMgDjcD0B4gAyANNwPIHiADIAMpA8BOIg03A8AeIAMgDTcDgB8gAyANNwPAHyADIA03A4AgIANBgAI7AaAgIANBAjsB4B8gA0EBOwGgHyADQQA7AeAeIANBwCpqIgggA0HALmogA0HAMmogA0HANmoiCyADQcAeaiIGEAogA0GBBDsBoCAgA0GABDsB4B8gA0GCAjsBoB8gA0GBAjsB4B4gA0HAOmogA0HAPmogA0HAwgBqIgwgA0HAxgBqIAYQCiADQYIEOwHgHiADQcDKAGogBhAfIAZBAEGAAvwLACADQcAGaiIEIANBwApqIANBwA5qIANBwBJqIgUgA0HgzgBqIglBAEEBQQJB/wEQCyAGIANBwCJqIANBwCZqIAUgCUEDQQRBBUH/ARALIAQQBiAGEAYgA0FAayIHIAQQGCAFIAggBCAHEAIgA0HAFmogCyAEIAcQAiADQcAaaiAMIAQgBxACIAUQFyAFQYAEahAXIAVBgAhqEBcgBSAGECAgBRAMIAQQDCABIAQQDiAAIAUQDiAAQZgJaiADKQPYTjcAACAAQZAJaiADKQPQTjcAACAAQYgJaiADKQPITjcAACAAIAMpA8BONwCACSAJQgA3AwAgA0HozgBqQgA3AwAgA0HwzgBqQgA3AwAgA0H4zgBqQgA3AwAgA0IANwPATiADQgA3A8hOIANCADcD0E4gA0IANwPYTiADQQA6ACAgA0IANwMYIANCADcDECADQgA3AwggA0IANwMAIAhBAEGAJPwLACAGQQBBgAz8CwAgBEEAQYAM/AsAIAdBAEGABvwLACQAIAFBgAlqIABBoAn8CgAAIAFBoBJqIAAQEyABQdgSaiACKQA4NwAAIAFB0BJqIAIpADA3AAAgAUHIEmogAikAKDcAACABIAIpACA3AMASQQALAgALC8gDAQBBgAgLwAPs+wr9mf4T+tUFjgUfAcoAVf9uAikGtgDCA077Pvq8BT0C0/oIAX8Bw/yyBb75fv9X/fkD3AJgAvr5mwEz/935xwSMAtj99wPz+tMF5v74+QQC+P/A/mb9rvl2+34AvQWr/Kb/8f4+A2sAc/oJ/0n8cv7BAxz6K/3AAdf7pQIF+7H7rgErAksDHftnAw4GaQCmAUsCsQAV/93+NP4mBnUGCv8KA4cEbf/3/MsFpv1fBMr5hAKY/F0BogFJAWT/tf8xA0kEWwJiAioF+/pH+oABQft4/8IEyfqW/NwAXfuF+V/7BvoC+xoDGvqq/Jr83gGU/8z+5APfA74DTPryBVwGAQAAAAAAAACCgAAAAAAAAIqAAAAAAACAAIAAgAAAAICLgAAAAAAAAAEAAIAAAAAAgYAAgAAAAIAJgAAAAAAAgIoAAAAAAAAAiAAAAAAAAAAJgACAAAAAAAoAAIAAAAAAi4AAgAAAAACLAAAAAAAAgImAAAAAAACAA4AAAAAAAIACgAAAAAAAgIAAAAAAAACACoAAAAAAAAAKAACAAAAAgIGAAIAAAACAgIAAAAAAAIABAACAAAAAAAiAAIAAAACA\");\n }\n function getBinarySync(file) {\n if (ArrayBuffer.isView(file)) {\n return file;\n }\n if (readBinary) {\n return readBinary(file);\n }\n throw \"both async and sync fetching of the wasm failed\";\n }\n async function getWasmBinary(binaryFile) {\n return getBinarySync(binaryFile);\n }\n async function instantiateArrayBuffer(binaryFile, imports) {\n try {\n var binary = await getWasmBinary(binaryFile);\n var instance = await WebAssembly.instantiate(binary, imports);\n return instance;\n } catch (reason) {\n err(`failed to asynchronously prepare wasm: ${reason}`);\n abort(reason);\n }\n }\n async function instantiateAsync(binary, binaryFile, imports) {\n return instantiateArrayBuffer(binaryFile, imports);\n }\n function getWasmImports() {\n return { a: wasmImports };\n }\n async function createWasm() {\n function receiveInstance(instance, module) {\n wasmExports = instance.exports;\n wasmMemory = wasmExports[\"a\"];\n updateMemoryViews();\n assignWasmExports(wasmExports);\n return wasmExports;\n }\n function receiveInstantiationResult(result2) {\n return receiveInstance(result2[\"instance\"]);\n }\n var info = getWasmImports();\n wasmBinaryFile ??= findWasmBinary();\n var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);\n var exports = receiveInstantiationResult(result);\n return exports;\n }\n class ExitStatus {\n name = \"ExitStatus\";\n constructor(status) {\n this.message = `Program terminated with exit(${status})`;\n this.status = status;\n }\n }\n var base64Decode = (b64) => {\n var b1, b2, i2 = 0, j = 0, bLength = b64.length;\n var output = new Uint8Array((bLength * 3 >> 2) - (b64[bLength - 2] == \"=\") - (b64[bLength - 1] == \"=\"));\n for (; i2 < bLength; i2 += 4, j += 3) {\n b1 = base64ReverseLookup[b64.charCodeAt(i2 + 1)];\n b2 = base64ReverseLookup[b64.charCodeAt(i2 + 2)];\n output[j] = base64ReverseLookup[b64.charCodeAt(i2)] << 2 | b1 >> 4;\n output[j + 1] = b1 << 4 | b2 >> 2;\n output[j + 2] = b2 << 6 | base64ReverseLookup[b64.charCodeAt(i2 + 3)];\n }\n return output;\n };\n function getValue(ptr, type = \"i8\") {\n if (type.endsWith(\"*\")) type = \"*\";\n switch (type) {\n case \"i1\":\n return HEAP8[ptr];\n case \"i8\":\n return HEAP8[ptr];\n case \"i16\":\n return HEAP16[ptr >> 1];\n case \"i32\":\n return HEAP32[ptr >> 2];\n case \"i64\":\n return HEAP64[ptr >> 3];\n case \"float\":\n return HEAPF32[ptr >> 2];\n case \"double\":\n return HEAPF64[ptr >> 3];\n case \"*\":\n return HEAPU32[ptr >> 2];\n default:\n abort(`invalid type for getValue: ${type}`);\n }\n }\n function setValue(ptr, value, type = \"i8\") {\n if (type.endsWith(\"*\")) type = \"*\";\n switch (type) {\n case \"i1\":\n HEAP8[ptr] = value;\n break;\n case \"i8\":\n HEAP8[ptr] = value;\n break;\n case \"i16\":\n HEAP16[ptr >> 1] = value;\n break;\n case \"i32\":\n HEAP32[ptr >> 2] = value;\n break;\n case \"i64\":\n HEAP64[ptr >> 3] = BigInt(value);\n break;\n case \"float\":\n HEAPF32[ptr >> 2] = value;\n break;\n case \"double\":\n HEAPF64[ptr >> 3] = value;\n break;\n case \"*\":\n HEAPU32[ptr >> 2] = value;\n break;\n default:\n abort(`invalid type for setValue: ${type}`);\n }\n }\n var stackRestore = (val) => __emscripten_stack_restore(val);\n var stackSave = () => _emscripten_stack_get_current();\n var stackAlloc = (sz) => __emscripten_stack_alloc(sz);\n for (var base64ReverseLookup = new Uint8Array(123), i = 25; i >= 0; --i) {\n base64ReverseLookup[48 + i] = 52 + i;\n base64ReverseLookup[65 + i] = i;\n base64ReverseLookup[97 + i] = 26 + i;\n }\n base64ReverseLookup[43] = 62;\n base64ReverseLookup[47] = 63;\n {\n }\n Module[\"stackSave\"] = stackSave;\n Module[\"stackRestore\"] = stackRestore;\n Module[\"stackAlloc\"] = stackAlloc;\n Module[\"setValue\"] = setValue;\n Module[\"getValue\"] = getValue;\n var _mlkem768_keypair_derand, _mlkem768_enc_derand, _mlkem768_dec, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current;\n function assignWasmExports(wasmExports2) {\n Module[\"_mlkem768_keypair_derand\"] = _mlkem768_keypair_derand = wasmExports2[\"c\"];\n Module[\"_mlkem768_enc_derand\"] = _mlkem768_enc_derand = wasmExports2[\"d\"];\n Module[\"_mlkem768_dec\"] = _mlkem768_dec = wasmExports2[\"e\"];\n __emscripten_stack_restore = wasmExports2[\"f\"];\n __emscripten_stack_alloc = wasmExports2[\"g\"];\n _emscripten_stack_get_current = wasmExports2[\"h\"];\n }\n var wasmImports = {};\n function run() {\n preRun();\n function doRun() {\n Module[\"calledRun\"] = true;\n if (ABORT) return;\n initRuntime();\n readyPromiseResolve?.(Module);\n postRun();\n }\n {\n doRun();\n }\n }\n var wasmExports;\n wasmExports = await createWasm();\n run();\n if (runtimeInitialized) {\n moduleRtn = Module;\n } else {\n moduleRtn = new Promise((resolve, reject) => {\n readyPromiseResolve = resolve;\n readyPromiseReject = reject;\n });\n }\n ;\n return moduleRtn;\n}\nvar wasm_module_default = MLKEM768Module;\n\n// src/mlkem.ts\nvar ALGORITHM_NAME = \"ML-KEM-768\";\nvar JWK_ALG = \"MLKEM768\";\nvar KEY_USAGES = [\n \"encapsulateKey\",\n \"encapsulateBits\",\n \"decapsulateKey\",\n \"decapsulateBits\"\n];\nvar MlKemOperationError = class extends Error {\n constructor(message) {\n super(message);\n this.name = \"OperationError\";\n }\n};\nvar MlKemInvalidAccessError = class extends Error {\n constructor(message) {\n super(message);\n this.name = \"InvalidAccessError\";\n }\n};\nvar MlKemNotSupportedError = class extends Error {\n constructor(message) {\n super(message);\n this.name = \"NotSupportedError\";\n }\n};\nvar MlKemDataError = class extends Error {\n constructor(message) {\n super(message);\n this.name = \"DataError\";\n }\n};\nvar internalKeyData = /* @__PURE__ */ new WeakMap();\nfunction getInternalKeyData(key) {\n const keyData = internalKeyData.get(key);\n if (!keyData) {\n throw new TypeError(\"Unknown key object\");\n }\n return keyData;\n}\nvar cleanupRegistry = new FinalizationRegistry((keyData) => {\n keyData.publicKeyData.fill(0);\n keyData.privateSeedData?.fill(0);\n keyData.privateSecretKeyData?.fill(0);\n});\nfunction getPublicKeyDataRef(key) {\n const keyData = getInternalKeyData(key);\n if (!keyData.publicKeyData) {\n throw new MlKemOperationError(\"Failed to get public key data\");\n }\n return keyData.publicKeyData;\n}\nfunction getPrivateKeyDataRef(key) {\n const keyData = getInternalKeyData(key);\n if (!keyData.privateSeedData || !keyData.privateSecretKeyData) {\n throw new MlKemOperationError(\"Failed to get private key data\");\n }\n return keyData;\n}\nvar noClone = Symbol(\"CryptoKey created by mlkem-wasm cannot be cloned\");\nvar keyIdKey = \"_mlkem_wasm\";\nvar emptyToJSON = () => ({});\nfunction createKeyObject(type, extractable, usages, keyData) {\n const key = {\n type,\n extractable,\n algorithm: Object.freeze({ name: ALGORITHM_NAME }),\n usages: Object.freeze(Array.from(usages)),\n [keyIdKey]: noClone\n // to prevent structured cloning\n };\n Object.defineProperty(key, \"toJSON\", {\n value: emptyToJSON,\n writable: false,\n enumerable: false,\n configurable: false\n });\n Object.setPrototypeOf(key, CryptoKey.prototype);\n internalKeyData.set(key, keyData);\n cleanupRegistry.register(key, keyData);\n return Object.freeze(key);\n}\nfunction createPublicKey(publicKeyData, usages) {\n return createKeyObject(\"public\", true, usages, { publicKeyData });\n}\nfunction createPrivateKey(publicKeyData, privateSeedData, privateSecretKeyData, extractable, usages) {\n return createKeyObject(\"private\", extractable, usages, {\n publicKeyData,\n privateSeedData,\n privateSecretKeyData\n });\n}\nfunction _isSupportedCryptoKey(key) {\n return key instanceof CryptoKey && keyIdKey in key && key[keyIdKey] == noClone && internalKeyData.has(key);\n}\nfunction toBase64url(data) {\n return btoa(String.fromCharCode(...data)).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\nfunction fromBase64url(base64url) {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const binary = atob(base64 + \"===\".slice((base64.length + 3) % 4));\n return Uint8Array.from(binary, (c) => c.charCodeAt(0));\n}\nvar PUBLICKEY_BYTES = 1184;\nvar SECRETKEY_BYTES = 2400;\nvar CIPHERTEXT_BYTES = 1088;\nvar SHARED_SECRET_BYTES = 32;\nvar KEYPAIR_RANDOM_BYTES = 64;\nvar ENC_RANDOM_BYTES = 32;\nvar _module;\nasync function getModule() {\n if (!_module) {\n _module = await wasm_module_default();\n }\n return _module;\n}\nvar getRandomValues = crypto.getRandomValues.bind(crypto);\nfunction checkAlgorithm(algorithm) {\n const name = typeof algorithm === \"string\" ? algorithm.toUpperCase() : typeof algorithm === \"object\" && algorithm !== null && \"name\" in algorithm && typeof algorithm.name === \"string\" ? algorithm.name.toUpperCase() : null;\n if (name !== ALGORITHM_NAME) {\n throw new TypeError(\"Unsupported algorithm\");\n }\n}\nasync function internalGenerateKeyPair(coins) {\n const module = await getModule();\n const stackSave = module.stackSave();\n try {\n const pkPtr = module.stackAlloc(PUBLICKEY_BYTES);\n const skPtr = module.stackAlloc(SECRETKEY_BYTES);\n const coinsPtr = module.stackAlloc(KEYPAIR_RANDOM_BYTES);\n module.HEAPU8.set(coins, coinsPtr);\n const result = module._mlkem768_keypair_derand(pkPtr, skPtr, coinsPtr);\n if (result !== 0) {\n throw new MlKemOperationError(\"Key generation failed\");\n }\n const rawPublicKey = new Uint8Array(PUBLICKEY_BYTES);\n const rawSecretKey = new Uint8Array(SECRETKEY_BYTES);\n const rawSeed = new Uint8Array(coins);\n rawPublicKey.set(module.HEAPU8.subarray(pkPtr, pkPtr + PUBLICKEY_BYTES));\n rawSecretKey.set(module.HEAPU8.subarray(skPtr, skPtr + SECRETKEY_BYTES));\n module.HEAPU8.fill(0, pkPtr, pkPtr + PUBLICKEY_BYTES);\n module.HEAPU8.fill(0, skPtr, skPtr + SECRETKEY_BYTES);\n module.HEAPU8.fill(0, coinsPtr, coinsPtr + KEYPAIR_RANDOM_BYTES);\n return { rawPublicKey, rawSecretKey, rawSeed };\n } finally {\n module.stackRestore(stackSave);\n }\n}\nasync function generateKey(keyAlgorithm, extractable, usages) {\n checkAlgorithm(keyAlgorithm);\n if (!Array.isArray(usages) || usages.some((usage) => !KEY_USAGES.includes(usage))) {\n throw new SyntaxError(\"Invalid key usages\");\n }\n const { rawPublicKey, rawSecretKey, rawSeed } = await internalGenerateKeyPair(\n getRandomValues(new Uint8Array(KEYPAIR_RANDOM_BYTES))\n );\n const publicKey = createPublicKey(\n rawPublicKey,\n usages.filter(\n (usage) => usage === \"encapsulateKey\" || usage === \"encapsulateBits\"\n )\n );\n const privateKey = createPrivateKey(\n rawPublicKey,\n rawSeed,\n rawSecretKey,\n extractable,\n usages.filter(\n (usage) => usage === \"decapsulateKey\" || usage === \"decapsulateBits\"\n )\n );\n return {\n publicKey,\n privateKey\n };\n}\nasync function exportKey(format, key) {\n if (!(key instanceof CryptoKey)) {\n throw new TypeError(\"Expected key to be an instance of CryptoKey\");\n }\n checkAlgorithm(key.algorithm);\n if (!key.extractable) {\n throw new MlKemOperationError(\"Key is not extractable\");\n }\n if (format === \"spki\") {\n if (key.type !== \"public\") {\n throw new TypeError(\"Expected key type to be 'public'\");\n }\n return rawToDer(MLKEM768_SPKI, getPublicKeyDataRef(key)).buffer;\n }\n if (format === \"pkcs8\") {\n if (key.type !== \"private\") {\n throw new MlKemInvalidAccessError(\"Expected key type to be 'private'\");\n }\n return rawToDer(MLKEM768_PKCS8, getPrivateKeyDataRef(key).privateSeedData).buffer;\n }\n if (format === \"raw-public\") {\n if (key.type !== \"public\") {\n throw new TypeError(\"Expected key type to be 'public'\");\n }\n return new Uint8Array(getPublicKeyDataRef(key)).buffer;\n }\n if (format === \"raw-seed\") {\n if (key.type !== \"private\") {\n throw new MlKemInvalidAccessError(\"Expected key type to be 'private'\");\n }\n return new Uint8Array(getPrivateKeyDataRef(key).privateSeedData).buffer;\n }\n if (format === \"jwk\") {\n const jwk = {\n // 2.2. Set the kty attribute of jwk to \"AKP\".\n kty: \"AKP\",\n // 2.3. Set the alg attribute of jwk to the alg value corresponding to\n // the name member of normalizedAlgorithm indicated in Section 8 of\n // [draft-ietf-jose-pqc-kem-01] (Figure 1).\n alg: JWK_ALG,\n // 2.4. Set the pub attribute of jwk to the base64url encoded public\n // key corresponding to the [[handle]] internal slot of key.\n pub: toBase64url(getPublicKeyDataRef(key))\n };\n if (key.type === \"private\") {\n jwk.priv = toBase64url(getPrivateKeyDataRef(key).privateSeedData);\n }\n jwk.key_ops = key.usages;\n jwk.ext = key.extractable;\n return jwk;\n }\n throw new MlKemNotSupportedError(\"Format not supported\");\n}\nfunction bufferSourcetoUint8Array(value) {\n if (ArrayBuffer.isView(value) && value.buffer instanceof ArrayBuffer) {\n return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n } else if (value instanceof ArrayBuffer) {\n return new Uint8Array(value);\n } else {\n throw new TypeError(\"Value must be a BufferSource\");\n }\n}\nfunction bufferSourcetoUint8ArrayCopy(value) {\n return bufferSourcetoUint8Array(value).slice();\n}\nvar MLKEM768_SPKI = {\n fullLength: 1206,\n prefix: new Uint8Array([\n 48,\n 130,\n 4,\n 178,\n 48,\n 11,\n 6,\n 9,\n 96,\n 134,\n 72,\n 1,\n 101,\n 3,\n 4,\n 4,\n 2,\n 3,\n 130,\n 4,\n 161,\n 0\n ])\n};\nvar MLKEM768_PKCS8 = {\n fullLength: 86,\n prefix: new Uint8Array([\n 48,\n 84,\n 2,\n 1,\n 0,\n 48,\n 11,\n 6,\n 9,\n 96,\n 134,\n 72,\n 1,\n 101,\n 3,\n 4,\n 4,\n 2,\n 4,\n 66,\n 128,\n 64\n ])\n};\nfunction bytesEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n let diff = 0;\n for (let i = 0; i < a.length; i++) {\n diff |= a[i] ^ b[i];\n }\n return diff === 0;\n}\nfunction derToRaw(encoding, der) {\n if (der.length !== encoding.fullLength) {\n throw new MlKemDataError(\"Invalid encoding\");\n }\n const prefix = der.subarray(0, encoding.prefix.length);\n if (!bytesEqual(prefix, encoding.prefix)) {\n throw new MlKemNotSupportedError(\"Unsupported encoding\");\n }\n return der.slice(encoding.prefix.length);\n}\nfunction rawToDer(encoding, raw) {\n const der = new Uint8Array(encoding.fullLength);\n der.set(encoding.prefix);\n der.set(raw, encoding.prefix.length);\n return der;\n}\nasync function importKey(format, keyData, algorithm, extractable, usages) {\n checkAlgorithm(algorithm);\n if (format === \"spki\") {\n if (!Array.isArray(usages) || usages.some(\n (usage) => usage !== \"encapsulateKey\" && usage !== \"encapsulateBits\"\n )) {\n throw new SyntaxError(\"Invalid key usages for public key\");\n }\n const data = derToRaw(MLKEM768_SPKI, bufferSourcetoUint8Array(keyData));\n if (data.length !== PUBLICKEY_BYTES) {\n throw new MlKemDataError(\"Invalid key length\");\n }\n return createPublicKey(data, usages);\n }\n if (format === \"pkcs8\") {\n if (!Array.isArray(usages) || usages.some(\n (usage) => usage !== \"decapsulateKey\" && usage !== \"decapsulateBits\"\n )) {\n throw new SyntaxError(\"Invalid key usages for private key\");\n }\n const data = derToRaw(MLKEM768_PKCS8, bufferSourcetoUint8Array(keyData));\n if (data.length !== KEYPAIR_RANDOM_BYTES) {\n throw new MlKemDataError(\"Invalid key length\");\n }\n const { rawPublicKey, rawSecretKey, rawSeed } = await internalGenerateKeyPair(data);\n return createPrivateKey(\n rawPublicKey,\n rawSeed,\n rawSecretKey,\n extractable,\n usages\n );\n }\n if (format === \"raw-public\") {\n if (!Array.isArray(usages) || usages.some(\n (usage) => usage !== \"encapsulateKey\" && usage !== \"encapsulateBits\"\n )) {\n throw new SyntaxError(\"Invalid key usages for public key\");\n }\n const data = bufferSourcetoUint8ArrayCopy(keyData);\n return createPublicKey(data, usages);\n }\n if (format === \"raw-seed\") {\n if (!Array.isArray(usages) || usages.some(\n (usage) => usage !== \"decapsulateKey\" && usage !== \"decapsulateBits\"\n )) {\n throw new SyntaxError(\"Invalid key usages for private key\");\n }\n const data = bufferSourcetoUint8ArrayCopy(keyData);\n if (data.length !== KEYPAIR_RANDOM_BYTES) {\n throw new MlKemDataError(\"Invalid key length\");\n }\n const { rawPublicKey, rawSecretKey, rawSeed } = await internalGenerateKeyPair(data);\n return createPrivateKey(\n rawPublicKey,\n rawSeed,\n rawSecretKey,\n extractable,\n usages\n );\n }\n if (format === \"jwk\") {\n if (typeof keyData !== \"object\" || keyData === null) {\n throw new MlKemDataError(\n \"Expected keyData to be a JsonWebKey dictionary\"\n );\n }\n const jwk = keyData;\n if (jwk.priv && usages.some(\n (usage) => usage !== \"decapsulateKey\" && usage !== \"decapsulateBits\"\n )) {\n throw new SyntaxError(\"Invalid key usages for private key\");\n }\n if (!jwk.priv && usages.some(\n (usage) => usage !== \"encapsulateKey\" && usage !== \"encapsulateBits\"\n )) {\n throw new SyntaxError(\"Invalid key usages for public key\");\n }\n if (jwk.kty !== \"AKP\") {\n throw new MlKemDataError(\"Invalid key type\");\n }\n if (jwk.alg !== JWK_ALG && jwk.alg !== \"ML-KEM-768+A192KW\") {\n throw new MlKemDataError(\"Invalid algorithm\");\n }\n if (usages.length > 0 && jwk.use && jwk.use !== \"enc\") {\n throw new MlKemDataError(\"Invalid key usage\");\n }\n if (jwk.key_ops && Array.isArray(jwk.key_ops) && !Array.prototype.every.call(\n jwk.key_ops,\n (op) => KEY_USAGES.includes(op)\n ) || !Array.isArray(jwk.key_ops)) {\n throw new MlKemDataError(\"Invalid key operations\");\n }\n if (jwk.ext === false && extractable) {\n throw new MlKemDataError(\"Invalid key extractability\");\n }\n if (jwk.priv) {\n try {\n const seedData = fromBase64url(jwk.priv);\n if (seedData.length !== KEYPAIR_RANDOM_BYTES) {\n throw new MlKemDataError(\"Invalid private key length\");\n }\n const { rawPublicKey, rawSecretKey, rawSeed } = await internalGenerateKeyPair(seedData);\n const key = createPrivateKey(\n rawPublicKey,\n rawSeed,\n rawSecretKey,\n extractable,\n usages\n );\n if (toBase64url(rawPublicKey) !== jwk.pub) {\n throw new MlKemDataError(\"Invalid public key data\");\n }\n return key;\n } catch {\n throw new MlKemDataError(\"Invalid private key format\");\n }\n } else {\n try {\n const publicKeyData = fromBase64url(jwk.pub);\n if (publicKeyData.length !== PUBLICKEY_BYTES) {\n throw new MlKemDataError(\"Invalid public key data\");\n }\n return createPublicKey(publicKeyData, usages);\n } catch {\n throw new MlKemDataError(\"Invalid public key format\");\n }\n }\n }\n throw new MlKemNotSupportedError(\"Unsupported key format\");\n}\nasync function getPublicKey(key, usages) {\n if (!(key instanceof CryptoKey)) {\n throw new TypeError(\"Expected key to be an instance of CryptoKey\");\n }\n checkAlgorithm(key.algorithm);\n if (key.type !== \"private\") {\n throw new MlKemInvalidAccessError(\"Expected key type to be 'private'\");\n }\n if (!Array.isArray(usages) || usages.some(\n (usage) => usage !== \"encapsulateKey\" && usage !== \"encapsulateBits\"\n )) {\n throw new SyntaxError(\"Invalid key usages\");\n }\n const keyData = getInternalKeyData(key);\n if (!keyData.publicKeyData) {\n throw new MlKemOperationError(\"Failed to get public key data\");\n }\n return createPublicKey(new Uint8Array(keyData.publicKeyData), usages);\n}\nasync function internalEncapsulate(algorithm, encapsulationKey, usage) {\n const module = await getModule();\n checkAlgorithm(algorithm);\n if (!(encapsulationKey instanceof CryptoKey) || encapsulationKey.type !== \"public\") {\n throw new MlKemInvalidAccessError(\n \"Expected publicKey to be an instance of MlKemCryptoKey with type 'public'\"\n );\n }\n if (!encapsulationKey.usages.includes(usage)) {\n throw new MlKemInvalidAccessError(`Key usages don't include '${usage}'`);\n }\n const publicKeyData = getPublicKeyDataRef(encapsulationKey);\n if (publicKeyData.length !== PUBLICKEY_BYTES) {\n throw new MlKemOperationError(\"Invalid public key length\");\n }\n const coins = getRandomValues(new Uint8Array(ENC_RANDOM_BYTES));\n const stackSave = module.stackSave();\n try {\n const pkPtr = module.stackAlloc(PUBLICKEY_BYTES);\n const ctPtr = module.stackAlloc(CIPHERTEXT_BYTES);\n const ssPtr = module.stackAlloc(SHARED_SECRET_BYTES);\n const coinsPtr = module.stackAlloc(ENC_RANDOM_BYTES);\n module.HEAPU8.set(publicKeyData, pkPtr);\n module.HEAPU8.set(coins, coinsPtr);\n const result = module._mlkem768_enc_derand(ctPtr, ssPtr, pkPtr, coinsPtr);\n if (result !== 0) {\n throw new MlKemOperationError(\"Encapsulation failed\");\n }\n const ciphertext = new Uint8Array(CIPHERTEXT_BYTES);\n const sharedKey = new Uint8Array(SHARED_SECRET_BYTES);\n ciphertext.set(module.HEAPU8.subarray(ctPtr, ctPtr + CIPHERTEXT_BYTES));\n sharedKey.set(module.HEAPU8.subarray(ssPtr, ssPtr + SHARED_SECRET_BYTES));\n module.HEAPU8.fill(0, ctPtr, ctPtr + CIPHERTEXT_BYTES);\n module.HEAPU8.fill(0, ssPtr, ssPtr + SHARED_SECRET_BYTES);\n module.HEAPU8.fill(0, pkPtr, pkPtr + PUBLICKEY_BYTES);\n module.HEAPU8.fill(0, coinsPtr, coinsPtr + ENC_RANDOM_BYTES);\n return {\n ciphertext: ciphertext.buffer,\n sharedKey: sharedKey.buffer\n };\n } finally {\n module.stackRestore(stackSave);\n }\n}\nasync function encapsulateBits(algorithm, encapsulationKey) {\n return internalEncapsulate(algorithm, encapsulationKey, \"encapsulateBits\");\n}\nasync function encapsulateKey(encapsulationAlgorithm, encapsulationKey, sharedKeyAlgorithm, extractable, usages) {\n const { sharedKey: sharedKeyBits, ciphertext } = await internalEncapsulate(\n encapsulationAlgorithm,\n encapsulationKey,\n \"encapsulateKey\"\n );\n const sharedKey = await crypto.subtle.importKey(\n \"raw\",\n sharedKeyBits,\n sharedKeyAlgorithm,\n extractable,\n usages\n );\n return {\n sharedKey,\n ciphertext\n };\n}\nasync function internalDecapsulate(algorithm, decapsulationKey, ciphertext, usage) {\n const module = await getModule();\n checkAlgorithm(algorithm);\n if (!(decapsulationKey instanceof CryptoKey) || decapsulationKey.type !== \"private\") {\n throw new MlKemInvalidAccessError(\n \"Expected key to be an instance of MlKemCryptoKey with type 'private'\"\n );\n }\n if (!decapsulationKey.usages.includes(usage)) {\n throw new MlKemInvalidAccessError(`Key usages don't include '${usage}'`);\n }\n const secretKeyData = getPrivateKeyDataRef(decapsulationKey).privateSecretKeyData;\n if (!secretKeyData || secretKeyData.length !== SECRETKEY_BYTES) {\n throw new Error(\"Invalid secret key length\");\n }\n const ct = bufferSourcetoUint8Array(ciphertext);\n if (ct.length !== CIPHERTEXT_BYTES) {\n throw new MlKemOperationError(\"Invalid ciphertext length\");\n }\n const stackSave = module.stackSave();\n try {\n const ctPtr = module.stackAlloc(CIPHERTEXT_BYTES);\n const skPtr = module.stackAlloc(SECRETKEY_BYTES);\n const ssPtr = module.stackAlloc(SHARED_SECRET_BYTES);\n module.HEAPU8.set(ct, ctPtr);\n module.HEAPU8.set(secretKeyData, skPtr);\n const result = module._mlkem768_dec(ssPtr, ctPtr, skPtr);\n if (result !== 0) {\n throw new MlKemOperationError(\"Decapsulation failed\");\n }\n const sharedKey = new Uint8Array(SHARED_SECRET_BYTES);\n sharedKey.set(module.HEAPU8.subarray(ssPtr, ssPtr + SHARED_SECRET_BYTES));\n module.HEAPU8.fill(0, ctPtr, ctPtr + CIPHERTEXT_BYTES);\n module.HEAPU8.fill(0, skPtr, skPtr + SECRETKEY_BYTES);\n module.HEAPU8.fill(0, ssPtr, ssPtr + SHARED_SECRET_BYTES);\n return sharedKey.buffer;\n } finally {\n module.stackRestore(stackSave);\n }\n}\nasync function decapsulateBits(decapsulationAlgorithm, decapsulationKey, ciphertext) {\n return internalDecapsulate(\n decapsulationAlgorithm,\n decapsulationKey,\n ciphertext,\n \"decapsulateBits\"\n );\n}\nasync function decapsulateKey(decapsulationAlgorithm, decapsulationKey, ciphertext, sharedKeyAlgorithm, extractable, usages) {\n const sharedKeyBits = await internalDecapsulate(\n decapsulationAlgorithm,\n decapsulationKey,\n ciphertext,\n \"decapsulateKey\"\n );\n const sharedKey = await crypto.subtle.importKey(\n \"raw\",\n sharedKeyBits,\n sharedKeyAlgorithm,\n extractable,\n usages\n );\n return sharedKey;\n}\nvar mlkem = {\n generateKey,\n exportKey,\n importKey,\n getPublicKey,\n encapsulateBits,\n encapsulateKey,\n decapsulateBits,\n decapsulateKey,\n _isSupportedCryptoKey\n};\nvar mlkem_default = mlkem;\nexport {\n mlkem_default as default\n};\n","var kyber_crystals_wasm_engine = (() => {\n \n return (\nasync function(moduleArg = {}) {\n var moduleRtn;\n\nvar Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!=\"undefined\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\"&&process.type!=\"renderer\";if(ENVIRONMENT_IS_NODE){const{createRequire}=await import(\"module\");var require=createRequire(import.meta.url)}var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");var nodePath=require(\"path\");if(_scriptName.startsWith(\"file:\")){scriptDirectory=nodePath.dirname(require(\"url\").fileURLToPath(_scriptName))+\"/\"}readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:\"utf8\");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\\\/g,\"/\")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;var runtimeInitialized=false;var isFileURI=filename=>filename.startsWith(\"file://\");function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;wasmExports[\"x\"]()}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}var runDependencies=0;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module[\"locateFile\"]){return locateFile(\"kyber_crystals_wasm_engine.wasm\")}return new URL(\"kyber_crystals_wasm_engine.wasm\",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){return{a:wasmImports}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports[\"w\"];updateMemoryViews();wasmTable=wasmExports[\"y\"];removeRunDependency(\"wasm-instantiate\");return wasmExports}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(mod,inst)=>{resolve(receiveInstance(mod,inst))})})}wasmBinaryFile??=findWasmBinary();try{var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}catch(e){readyPromiseReject(e);return Promise.reject(e)}}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var noExitRuntime=true;var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var __abort_js=()=>abort(\"\");var embindRepr=v=>{if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError=Module[\"BindingError\"]=class BindingError extends Error{constructor(message){super(message);this.name=\"BindingError\"}};var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type \"${name}\" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer]:pointer=>HEAPU8[pointer];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];case 8:return signed?pointer=>HEAP64[pointer>>3]:pointer=>HEAPU64[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);var isUnsignedType=name.indexOf(\"u\")!=-1;if(isUnsignedType){maxRange=(1n<<64n)-1n}registerType(primitiveType,{name,fromWireType:value=>value,toWireType:function(destructors,value){if(typeof value!=\"bigint\"&&typeof value!=\"number\"){throw new TypeError(`Cannot convert \"${embindRepr(value)}\" to ${this.name}`)}if(typeof value==\"number\"){value=BigInt(value)}return value},argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function(pointer){return this[\"fromWireType\"](HEAPU8[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var attachFinalizer=handle=>{if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}};var delayFunction;var init_ClassHandle=()=>{let proto=ClassHandle.prototype;Object.assign(proto,{isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},isDeleted(){return!this.$$.ptr},deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}});const symbolDispose=Symbol.dispose;if(symbolDispose){proto[symbolDispose]=proto[\"delete\"]}};function ClassHandle(){}var createNamedFunction=(name,func)=>Object.defineProperty(func,\"name\",{value:name});var registeredPointers={};var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[args.length].apply(this,args)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle[\"delete\"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this[\"fromWireType\"](HEAPU32[pointer>>2])}var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var InternalError=Module[\"InternalError\"]=class InternalError extends Error{constructor(message){super(message);this.name=\"InternalError\"}};var throwInternalError=message=>{throw new InternalError(message)};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistent public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var embind__requireFunction=(signature,rawFunction,isAsync=false)=>{signature=readLatin1String(signature);function makeDynCaller(){var rtn=getWasmTableEntry(rawFunction);return rtn}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};class UnboundTypeError extends Error{}var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([\", \"]))};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(type=>typeDependencies[type]=dependentTypes);function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((dt,i)=>{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}};var __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(`Use 'new' to construct ${name}`)}if(undefined===registeredClass.constructor_body){throw new BindingError(`${name} has no accessible constructor`)}var body=registeredClass.constructor_body[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2])}return array};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function usesDestructorStack(argTypes){for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){return true}}return false}function createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync){var needsDestructorStack=usesDestructorStack(argTypes);var argCount=argTypes.length-2;var argsList=[];var argsListWired=[\"fn\"];if(isClassMethodFunc){argsListWired.push(\"thisWired\")}for(var i=0;i<argCount;++i){argsList.push(`arg${i}`);argsListWired.push(`arg${i}Wired`)}argsList=argsList.join(\",\");argsListWired=argsListWired.join(\",\");var invokerFnBody=`return function (${argsList}) {\\n`;if(needsDestructorStack){invokerFnBody+=\"var destructors = [];\\n\"}var dtorStack=needsDestructorStack?\"destructors\":\"null\";var args1=[\"humanName\",\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"retType\",\"classParam\"];if(isClassMethodFunc){invokerFnBody+=`var thisWired = classParam['toWireType'](${dtorStack}, this);\\n`}for(var i=0;i<argCount;++i){invokerFnBody+=`var arg${i}Wired = argType${i}['toWireType'](${dtorStack}, arg${i});\\n`;args1.push(`argType${i}`)}invokerFnBody+=(returns||isAsync?\"var rv = \":\"\")+`invoker(${argsListWired});\\n`;if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?\"thisWired\":\"arg\"+(i-2)+\"Wired\";if(argTypes[i].destructorFunction!==null){invokerFnBody+=`${paramName}_dtor(${paramName});\\n`;args1.push(`${paramName}_dtor`)}}}if(returns){invokerFnBody+=\"var ret = retType['fromWireType'](rv);\\n\"+\"return ret;\\n\"}else{}invokerFnBody+=\"}\\n\";return[args1,invokerFnBody]}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=usesDestructorStack(argTypes);var returns=argTypes[0].name!==\"void\";var closureArgs=[humanName,throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];for(var i=0;i<argCount-2;++i){closureArgs.push(argTypes[i+2])}if(!needsDestructorStack){for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){if(argTypes[i].destructorFunction!==null){closureArgs.push(argTypes[i].destructorFunction)}}}let[args,invokerFnBody]=createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync);var invokerFn=new Function(...args,invokerFnBody)(...closureArgs);return createNamedFunction(humanName,invokerFn)}var __embind_register_class_constructor=(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf(\"(\");if(argsIndex===-1)return signature;return signature.slice(0,argsIndex)};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync,isNonnullReturn)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker,isAsync);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith(\"@@\")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module[\"count_emval_handles\"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError(`Cannot use deleted val. handle = ${handle}`)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:\"emscripten::val\",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 8:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift}var isUnsignedType=name.includes(\"unsigned\");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name,fromWireType,toWireType,argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var EmValOptionalType=Object.assign({optional:true},EmValType);var __embind_register_optional=(rawOptionalType,rawType)=>{registerType(rawOptionalType,EmValOptionalType)};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\";var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=true;registerType(rawType,{name,fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[payload+i])}str=a.join(\"\")}_free(value);return str},toWireType(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value==\"string\";if(!(valueIsOfTypeString||ArrayBuffer.isView(value)&&value.BYTES_PER_ELEMENT==1)){throwBindingError(\"Cannot pass non-string to std::string\")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(valueIsOfTypeString){if(stdStringIsUTF8){stringToUTF8(value,ptr,length+1)}else{for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(base);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+i]=charCode}}}else{HEAPU8.set(value,ptr)}if(destructors!==null){destructors.push(_free,base)}return base},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>HEAPU16[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>HEAPU32[pointer>>2]}registerType(rawType,{name,fromWireType:value=>{var length=HEAPU32[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value==\"string\")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var __emval_take_value=(type,arg)=>{type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](arg);return Emval.toHandle(v)};var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?\"-\":\"+\";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,\"0\");var minutes=String(absOffset%60).padStart(2,\"0\");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==106?HEAP64[buf>>3]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var abortOnCannotGrowMemory=requestedSize=>{abort(\"OOM\")};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;abortOnCannotGrowMemory(requestedSize)};var ENV={};var getExecutableName=()=>thisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var getCFunc=ident=>{var func=Module[\"_\"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(ret)}if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func(...cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>{var numericArgs=!argTypes||argTypes.every(type=>type===\"number\"||type===\"boolean\");var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};embind_init_charCodes();init_ClassHandle();init_RegisteredPointer();init_emval();{if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"]}Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;var ASM_CONSTS={22048:()=>Module.getRandomValue(),22084:()=>{if(Module.getRandomValue===undefined){try{var window_=\"object\"===typeof window?window:self;var crypto_=typeof window_.crypto!==\"undefined\"?window_.crypto:window_.msCrypto;crypto_=crypto_===undefined?crypto:crypto_;var randomValuesStandard=function(){var buf=new Uint32Array(1);crypto_.getRandomValues(buf);return buf[0]>>>0};randomValuesStandard();Module.getRandomValue=randomValuesStandard}catch(e){try{var crypto=require(\"crypto\");var randomValueNodeJS=function(){var buf=crypto[\"randomBytes\"](4);return(buf[0]<<24|buf[1]<<16|buf[2]<<8|buf[3])>>>0};randomValueNodeJS();Module.getRandomValue=randomValueNodeJS}catch(e){throw\"No secure random number generator found\"}}}}};var wasmImports={j:___cxa_throw,s:__abort_js,l:__embind_register_bigint,n:__embind_register_bool,e:__embind_register_class,d:__embind_register_class_constructor,a:__embind_register_class_function,u:__embind_register_emval,k:__embind_register_float,c:__embind_register_integer,b:__embind_register_memory_view,g:__embind_register_optional,v:__embind_register_std_string,h:__embind_register_std_wstring,o:__embind_register_void,f:__emval_take_value,p:__tzset_js,m:_emscripten_asm_const_int,t:_emscripten_resize_heap,q:_environ_get,r:_environ_sizes_get,i:_exit};var wasmExports=await createWasm();var ___wasm_call_ctors=wasmExports[\"x\"];var _malloc=wasmExports[\"z\"];var _free=wasmExports[\"A\"];var ___getTypeName=wasmExports[\"B\"];var __emscripten_stack_restore=wasmExports[\"C\"];var __emscripten_stack_alloc=wasmExports[\"D\"];var _emscripten_stack_get_current=wasmExports[\"E\"];function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module[\"onRuntimeInitialized\"]?.();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}function preInit(){if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}preInit();run();moduleRtn=readyPromise;\n\n\n return moduleRtn;\n}\n);\n})();\nexport default kyber_crystals_wasm_engine;\n","import mlkem from \"./vendor/mlkem.js\";\n// @ts-ignore - Emscripten output is JS + wasm asset\nimport kyberEngine from \"./kyber_crystals_wasm_engine.js\";\nimport { IMlKem, KeyPair, EncryptResult, MaybePromise } from \"./types\";\n\nconst MLKEM_ALGORITHM = { name: \"ML-KEM-768\" } as const;\n\nfunction bytesToHexWithSpaces(bytes: Uint8Array): string {\n return Array.from(bytes, (b) => b.toString(16).padStart(2, \"0\")).join(\" \");\n}\n\nfunction hexStringToBytes(hex: string): Uint8Array {\n const cleaned = hex.trim().replace(/^0x/i, \"\");\n if (!cleaned) return new Uint8Array();\n\n const parts = cleaned.includes(\" \") ? cleaned.split(/\\s+/) : null;\n if (parts) {\n return Uint8Array.from(parts.map((p) => parseInt(p, 16)));\n }\n\n if (cleaned.length % 2 !== 0) {\n throw new TypeError(\"Hex string must have even length\");\n }\n\n const out = new Uint8Array(cleaned.length / 2);\n for (let i = 0; i < out.length; i++) {\n out[i] = parseInt(cleaned.slice(i * 2, i * 2 + 2), 16);\n }\n return out;\n}\n\nfunction bufferSourceToBytes(value: any): Uint8Array {\n if (value instanceof Uint8Array) {\n // WebCrypto expects `ArrayBuffer`, not `SharedArrayBuffer`.\n if (\n typeof SharedArrayBuffer !== \"undefined\" &&\n value.buffer instanceof SharedArrayBuffer\n )\n return new Uint8Array(value);\n return value;\n }\n\n if (value instanceof ArrayBuffer) return new Uint8Array(value);\n\n if (ArrayBuffer.isView(value)) {\n const buffer = value.buffer;\n if (\n typeof SharedArrayBuffer !== \"undefined\" &&\n buffer instanceof SharedArrayBuffer\n ) {\n // Copy into a fresh Uint8Array backed by a real ArrayBuffer.\n const view = value as ArrayBufferView;\n const u8 = new Uint8Array(view.buffer, view.byteOffset, view.byteLength);\n return new Uint8Array(u8);\n }\n return new Uint8Array(buffer, value.byteOffset, value.byteLength);\n }\n\n throw new TypeError(\"Expected a BufferSource (ArrayBuffer or typed array)\");\n}\n\nfunction bytesToArrayBuffer(bytes: Uint8Array): ArrayBuffer {\n if (\n typeof SharedArrayBuffer !== \"undefined\" &&\n bytes.buffer instanceof SharedArrayBuffer\n ) {\n return Uint8Array.from(bytes).buffer;\n }\n return bytes.buffer as ArrayBuffer;\n}\n\nasync function secretToKeyBytes(secret: any): Promise<Uint8Array> {\n const resolved = await secret;\n\n if (typeof resolved === \"string\") return hexStringToBytes(resolved);\n const bytes = bufferSourceToBytes(resolved);\n // Ensure the returned key bytes are backed by a plain ArrayBuffer.\n return new Uint8Array(bytes);\n}\n\nasync function cryptoKeyToRawHex(key: CryptoKey): Promise<string> {\n const format = key.type === \"public\" ? \"raw-public\" : \"raw-seed\";\n const raw = await mlkem.exportKey(format as any, key);\n return bytesToHexWithSpaces(bufferSourceToBytes(raw));\n}\n\nclass MlKemWrapper implements IMlKem {\n keypair(): KeyPair {\n const keyPairPromise = mlkem.generateKey(\n MLKEM_ALGORITHM,\n true, // allow export for buffer_to_string\n [\"encapsulateBits\", \"decapsulateBits\"]\n );\n\n return {\n get: (key) =>\n keyPairPromise.then((kp) => (key === \"public_key\" ? kp.publicKey : kp.privateKey)),\n };\n }\n\n encrypt(public_key: any): EncryptResult {\n const publicKeyPromise = Promise.resolve(public_key);\n const encPromise = publicKeyPromise.then((pk) =>\n mlkem.encapsulateBits(MLKEM_ALGORITHM, pk)\n );\n\n return {\n get: (key) => {\n if (key === \"cyphertext\") return encPromise.then((r) => r.ciphertext);\n if (key === \"secret\") return encPromise.then((r) => r.sharedKey);\n throw new Error(`Unknown encrypt result field: ${String(key)}`);\n },\n };\n }\n\n decrypt(cyphertext: any, private_key: any): Promise<any> {\n const ctPromise = Promise.resolve(cyphertext);\n const skPromise = Promise.resolve(private_key);\n\n return Promise.all([ctPromise, skPromise]).then(([ct, sk]) =>\n mlkem.decapsulateBits(MLKEM_ALGORITHM, sk, ct)\n );\n }\n\n buffer_to_string(buffer: any): MaybePromise<string> {\n if (buffer && typeof buffer.then === \"function\") {\n return (buffer as Promise<any>).then((b) => this.buffer_to_string(b));\n }\n\n if (buffer instanceof CryptoKey) {\n return cryptoKeyToRawHex(buffer);\n }\n\n return bytesToHexWithSpaces(bufferSourceToBytes(buffer));\n }\n\n async encryptMessage(message: string, secret: any): Promise<Uint8Array> {\n const secretBytes = await secretToKeyBytes(secret);\n const secretKeyBuffer = bytesToArrayBuffer(secretBytes);\n\n // Derive an AES-GCM key directly from the ML-KEM shared secret bytes.\n const key = await crypto.subtle.importKey(\"raw\", secretKeyBuffer, { name: \"AES-GCM\" }, false, [\n \"encrypt\",\n ]);\n\n const iv = crypto.getRandomValues(new Uint8Array(12));\n const messageBytes = new TextEncoder().encode(message);\n const encryptedData = await crypto.subtle.encrypt({ name: \"AES-GCM\", iv }, key, messageBytes);\n\n const encryptedMessage = new Uint8Array(iv.length + encryptedData.byteLength);\n encryptedMessage.set(iv, 0);\n encryptedMessage.set(new Uint8Array(encryptedData), iv.length);\n return encryptedMessage;\n }\n\n async decryptMessage(encryptedMessage: Uint8Array, secret: any): Promise<string> {\n const secretBytes = await secretToKeyBytes(secret);\n const secretKeyBuffer = bytesToArrayBuffer(secretBytes);\n\n const iv = encryptedMessage.slice(0, 12);\n const encryptedData = encryptedMessage.slice(12);\n\n const key = await crypto.subtle.importKey(\"raw\", secretKeyBuffer, { name: \"AES-GCM\" }, false, [\n \"decrypt\",\n ]);\n\n const decryptedData = await crypto.subtle.decrypt({ name: \"AES-GCM\", iv }, key, encryptedData);\n return new TextDecoder().decode(decryptedData);\n }\n\n delete(): void {\n // mlkem-wasm relies on GC for key material; no explicit deletion API is exposed.\n }\n}\n\nexport async function loadMlKem1024(): Promise<IMlKem> {\n const wasm = await kyberEngine();\n return new KyberVariantWrapper(new wasm.MlKem1024());\n}\n\nexport async function loadMlKem512(): Promise<IMlKem> {\n const wasm = await kyberEngine();\n return new KyberVariantWrapper(new wasm.MlKem512());\n}\n\nexport async function loadMlKem768(): Promise<IMlKem> {\n // Prefer the vendored Dmitry-derived implementation for 768.\n return new MlKemWrapper();\n}\n\ntype KyberRawInstance = {\n keypair(): { get(key: \"public_key\" | \"private_key\"): any };\n encrypt(public_key: any): { get(key: \"cyphertext\" | \"secret\"): any };\n decrypt(cyphertext: any, private_key: any): any;\n buffer_to_string(buffer: any): string;\n delete(): void;\n};\n\nclass KyberVariantWrapper implements IMlKem {\n constructor(private readonly instance: KyberRawInstance) {}\n\n keypair(): KeyPair {\n return this.instance.keypair();\n }\n\n encrypt(public_key: any): EncryptResult {\n return this.instance.encrypt(public_key);\n }\n\n async decrypt(cyphertext: any, private_key: any): Promise<any> {\n return this.instance.decrypt(cyphertext, private_key);\n }\n\n buffer_to_string(buffer: any): MaybePromise<string> {\n return this.instance.buffer_to_string(buffer);\n }\n\n private async toSecretBytes(secret: any): Promise<Uint8Array> {\n const resolved = await secret;\n if (typeof resolved === \"string\") return hexStringToBytes(resolved);\n try {\n return await secretToKeyBytes(resolved);\n } catch {\n // Kyber engine secrets/keys may be Embind objects; convert via its hex string helper.\n const hex = this.instance.buffer_to_string(resolved);\n return hexStringToBytes(hex);\n }\n }\n\n async encryptMessage(message: string, secret: any): Promise<Uint8Array> {\n const secretBytes = await this.toSecretBytes(secret);\n const secretKeyBuffer = bytesToArrayBuffer(secretBytes);\n\n const key = await crypto.subtle.importKey(\n \"raw\",\n secretKeyBuffer,\n { name: \"AES-GCM\" },\n false,\n [\"encrypt\"]\n );\n\n const iv = crypto.getRandomValues(new Uint8Array(12));\n const messageBytes = new TextEncoder().encode(message);\n const encryptedData = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n messageBytes\n );\n\n const encryptedMessage = new Uint8Array(iv.length + encryptedData.byteLength);\n encryptedMessage.set(iv, 0);\n encryptedMessage.set(new Uint8Array(encryptedData), iv.length);\n return encryptedMessage;\n }\n\n async decryptMessage(encryptedMessage: Uint8Array, secret: any): Promise<string> {\n const secretBytes = await this.toSecretBytes(secret);\n const secretKeyBuffer = bytesToArrayBuffer(secretBytes);\n\n const iv = encryptedMessage.slice(0, 12);\n const encryptedData = encryptedMessage.slice(12);\n\n const key = await crypto.subtle.importKey(\n \"raw\",\n secretKeyBuffer,\n { name: \"AES-GCM\" },\n false,\n [\"decrypt\"]\n );\n\n const decryptedData = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv },\n key,\n encryptedData\n );\n return new TextDecoder().decode(decryptedData);\n }\n\n delete(): void {\n this.instance.delete();\n }\n}"],"mappings":"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","names":["require","result","handle","typeConverters","ret","crypto","e"]}
|
package/package.json
CHANGED
|
@@ -1,47 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quantum-resistant-rustykey",
|
|
3
|
-
"version": "0.4
|
|
4
|
-
"description": "ML-KEM (
|
|
3
|
+
"version": "0.5.4",
|
|
4
|
+
"description": "WebAssembly ML-KEM (post-quantum) key encapsulation for Node.js and web.",
|
|
5
5
|
"license": "ISC",
|
|
6
|
-
"keywords": [
|
|
7
|
-
"post-quantum",
|
|
8
|
-
"post-quantum-cryptography",
|
|
9
|
-
"crystals-kyber",
|
|
10
|
-
"nist"
|
|
11
|
-
],
|
|
12
|
-
"author": {
|
|
13
|
-
"name": "Antony R. Mott"
|
|
14
|
-
},
|
|
15
|
-
"repository": {
|
|
16
|
-
"type": "git",
|
|
17
|
-
"url": "git+https://github.com/antonymott/quantum-resistant-rustykey.git"
|
|
18
|
-
},
|
|
19
6
|
"type": "module",
|
|
7
|
+
"sideEffects": false,
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"module": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"default": "./dist/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./kyber_crystals_wasm_engine.js": "./dist/kyber_crystals_wasm_engine.js",
|
|
17
|
+
"./kyber_crystals_wasm_engine.wasm": "./dist/kyber_crystals_wasm_engine.wasm"
|
|
18
|
+
},
|
|
20
19
|
"files": [
|
|
21
|
-
"
|
|
20
|
+
"dist/"
|
|
22
21
|
],
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"node": ">=23"
|
|
22
|
+
"scripts": {
|
|
23
|
+
"clean": "rm -rf dist",
|
|
24
|
+
"build": "tsup && node scripts/copy-assets.mjs"
|
|
27
25
|
},
|
|
28
26
|
"devDependencies": {
|
|
29
|
-
"@changesets/cli": "
|
|
30
|
-
"@
|
|
31
|
-
"tsup": "
|
|
32
|
-
"typescript": "
|
|
33
|
-
"vitest": "
|
|
34
|
-
},
|
|
35
|
-
"dependencies": {
|
|
36
|
-
"next": "15.3.3",
|
|
37
|
-
"react": "19.1.0",
|
|
38
|
-
"react-dom": "19.1.0"
|
|
39
|
-
},
|
|
40
|
-
"scripts": {
|
|
41
|
-
"pre": "emcmake cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install && cmake --build build --target install",
|
|
42
|
-
"build": "tsup",
|
|
43
|
-
"test": "vitest --coverage",
|
|
44
|
-
"lint": "tsc",
|
|
45
|
-
"release": "changeset publish"
|
|
27
|
+
"@changesets/cli": "2.30.0",
|
|
28
|
+
"@types/node": "25.5.0",
|
|
29
|
+
"tsup": "8.5.1",
|
|
30
|
+
"typescript": "6.0.2",
|
|
31
|
+
"vitest": "4.1.2"
|
|
46
32
|
}
|
|
47
|
-
}
|
|
33
|
+
}
|
package/install/index.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
interface KeyPair {
|
|
2
|
-
get(key: 'public_key' | 'private_key'): any;
|
|
3
|
-
}
|
|
4
|
-
interface EncryptResult {
|
|
5
|
-
get(key: 'cyphertext' | 'secret'): any;
|
|
6
|
-
}
|
|
7
|
-
interface IMlKem {
|
|
8
|
-
keypair(): KeyPair;
|
|
9
|
-
encrypt(public_key: any): EncryptResult;
|
|
10
|
-
decrypt(cyphertext: any, private_key: any): any;
|
|
11
|
-
buffer_to_string(buffer: any): string;
|
|
12
|
-
encryptMessage(message: string, secret: any): Promise<Uint8Array>;
|
|
13
|
-
decryptMessage(encryptedMessage: Uint8Array, secret: any): Promise<string>;
|
|
14
|
-
delete(): void;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
declare function loadMlKem1024(): Promise<IMlKem>;
|
|
18
|
-
declare function loadMlKem768(): Promise<IMlKem>;
|
|
19
|
-
declare function loadMlKem512(): Promise<IMlKem>;
|
|
20
|
-
|
|
21
|
-
export { loadMlKem1024, loadMlKem512, loadMlKem768 };
|