quantum-resistant-rustykey 0.0.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  **Note**: 🚧 WORK IN PROGRESS...do not pnpm install 🚧
2
2
 
3
- # Quantum-Resistant RustyKey
3
+ # Quantum-Resistant RustyKey®
4
4
 
5
5
  A WebAssembly implementation of ML-KEM (Quantum-Resistant Signatures) for both Node.js and web environments. This is an improved version of the NIST winner's standard implementation, patched to withstand side-channel attacks.
6
6
 
@@ -11,8 +11,49 @@ A WebAssembly implementation of ML-KEM (Quantum-Resistant Signatures) for both N
11
11
 
12
12
 
13
13
  ## About
14
-
15
- A WASM implementation of "Cryptographic Suite for Algebraic Lattices" (CRYSTALS) based on hard problems over module lattices, designed to withstand attacks by large quantum computers, and selected among the winners of the [NIST post-quantum cryptography project](https://pq-crystals.org/index.shtml)
14
+ You use this quantum-resistant RustyKey® npm package mainly for secure key exchange, specifically as a Key Encapsulation Mechanism (KEM). It's designed to securely establish a shared secret between two parties, which is then used for encryption with a symmetric algorithm like AES. While Kyber can be used for encryption, its primary function is to encapsulate and transmit a session key, not the data itself.
15
+
16
+ Here's a more detailed explanation:
17
+ Key Exchange (KEM):
18
+ - to facilitate the secure exchange of a shared secret key between two parties. This shared key is then used to encrypt and decrypt data using a separate, symmetric encryption algorithm.
19
+ Not Direct Encryption:
20
+ - doesn't directly encrypt the data itself. It's designed to securely encapsulate a session key, which is then used to encrypt the actual data using a symmetric encryption algorithm.
21
+ Hybrid Approach:
22
+ - often used in a hybrid approach, combining it with symmetric encryption algorithms like AES for stronger security. Used to securely exchange a session key, then used to encrypt the data using AES.
23
+ Post-Quantum Security:
24
+ - a post-quantum cryptosystem, meaning it is designed to be secure against attacks from quantum computers. This makes it a valuable tool for securing communication in the future when quantum computers become more powerful.
25
+
26
+ In essence, RustyKey® quantum-resistant npm package creates a secure handshake, establishing a shared secret key that can then be used to encrypt and decrypt data with a more efficient symmetric encryption algorithm
27
+
28
+ ## Web Assembly implementation
29
+ ### Pros
30
+ #### Highly secure
31
+ Wasm operates within a sandboxed environment, isolating it from the host system. This prevents malicious code within the Wasm module from directly accessing sensitive data or compromising system resources. JavaScript, while also sandboxed, has a larger attack surface due to its dynamic nature and access to a wider range of APIs.
32
+ #### Reduced Attack Surface
33
+ Since Wasm modules have limited access to system resources and APIs, their attack surface is smaller than that of JavaScript. This makes it more difficult for attackers to exploit vulnerabilities.
34
+ #### fast
35
+ (mostly!) as Web Assembly (WASM) implementations of algorithms offer near-native performance due to WASM's low-level of bytecode, which itself is usually orders of magnitude faster than JavaScript for computationally intensive tasks.
36
+ #### Controlled Imports
37
+ Wasm modules have explicit import declarations, defining the exact functions they can access from the host environment (usually JavaScript). This allows for fine-grained control over the module's capabilities. In contrast, JavaScript has more implicit access to APIs, making it harder to restrict its behavior.
38
+ #### Static Analysis
39
+ Wasm's binary format allows for static analysis and code validation. This enables browsers to verify the module's structure and behavior before execution, reducing the risk of introducing vulnerabilities. JavaScript, being dynamically typed and interpreted, is more challenging to analyze statically.
40
+ #### Compilation and Validation
41
+ Wasm code is compiled into a low-level bytecode that is validated before execution. This process helps to identify and prevent many types of vulnerabilities that are common in JavaScript, such as buffer overflows.
42
+
43
+ ### Cons
44
+ #### Complex
45
+ WASM is more complex to work with than JavaScript, and requires a build process to compile code into WASM modules and manual memory management, which is why this package exists...to make it easier for developers and end-users to incorporate the benefits of increased security and faster speed into their authentication, authorization and other encryption/decryption workflows.
46
+ #### No Direct DOM Access
47
+ WASM cannot directly manipulate the DOM. It relies on JavaScript to interact with the DOM, which adds complexity and can affect performance when frequent DOM interactions are needed.
48
+ #### Garbage Collection
49
+ WASM relies on JavaScript for garbage collection, which can be less efficient compared to languages with native garbage collection.
50
+ #### Limited API Access
51
+ WASM has limited access to browser and Node.js APIs compared to JavaScript, requiring JavaScript to act as a bridge for these interactions.
52
+ #### Data Transfer Overhead
53
+ Passing data between WASM and JavaScript can incur performance overhead due to serialization and deserialization.
54
+
55
+ ### Algorithm source
56
+ Based on a suite of "Cryptographic Suite for Algebraic Lattices" (CRYSTALS) based on hard problems over module lattices, designed to withstand attacks by large quantum computers, and selected among the winners of the [NIST post-quantum cryptography project](https://pq-crystals.org/index.shtml)
16
57
 
17
58
  | Package | Registry | Description |
18
59
  |---------|----------|-------------|
@@ -50,16 +91,16 @@ async function main() {
50
91
  console.log("Private Key:", privateKey);
51
92
 
52
93
  // Encrypt a message
53
- const message = "Hello, quantum-resistant world!";
54
- const encrypt = mlkem.encrypt(keypair.get('public_key'));
55
- const ciphertext = mlkem.buffer_to_string(encrypt.get('cyphertext'));
56
- const secret = mlkem.buffer_to_string(encrypt.get('secret'));
57
- console.log("Ciphertext:", ciphertext);
58
- console.log("Secret:", secret);
94
+ const message = "Hello, this is a secret message!";
95
+ var encrypt = mlkem.encrypt(keypair.get('public_key'))
96
+ const sharedSecret = encrypt.get('secret')
97
+ const encryptedMessage = await mlkem.encryptMessage(message, sharedSecret)
98
+ console.log("Encrypted message: ", encryptedMessage)
59
99
 
60
100
  // Decrypt the message
61
- const decrypted = mlkem.decrypt(encrypt.get('cyphertext'), keypair.get('private_key'));
62
- console.log("Decrypted:", mlkem.buffer_to_string(decrypted));
101
+ var decryptedSharedSecret = mlkem.decrypt(encrypt.get('cyphertext'), keypair.get('private_key'))
102
+ const decryptedMessage = await mlkem.decryptMessage(encryptedMessage, decryptedSharedSecret)
103
+ console.log("Decrypted message: ", decryptedMessage)
63
104
  } catch (error) {
64
105
  console.error("Error:", error);
65
106
  }
@@ -68,73 +109,6 @@ async function main() {
68
109
  main();
69
110
  ```
70
111
 
71
- ### Web Environment
72
-
73
- ```typescript
74
- import { loadMlKem1024, loadMlKem768, loadMlKem512 } from 'quantum-resistant-rustykey';
75
-
76
- // Example usage in a web application
77
- async function handleEncryption() {
78
- try {
79
- // Load the desired ML-KEM variant
80
- const mlkem = await loadMlKem1024(); // Options: loadMlKem1024, loadMlKem768, loadMlKem512
81
-
82
- // Generate key pair
83
- const keypair = mlkem.keypair();
84
- const publicKey = mlkem.buffer_to_string(keypair.get('public_key'));
85
- const privateKey = mlkem.buffer_to_string(keypair.get('private_key'));
86
-
87
- // Store keys securely (e.g., in IndexedDB or secure storage)
88
- await storeKeys(publicKey, privateKey);
89
-
90
- // Encrypt user data
91
- const userData = {
92
- username: "user123",
93
- email: "user@example.com"
94
- };
95
-
96
- const encrypt = mlkem.encrypt(keypair.get('public_key'));
97
- const ciphertext = mlkem.buffer_to_string(encrypt.get('cyphertext'));
98
- const secret = mlkem.buffer_to_string(encrypt.get('secret'));
99
-
100
- // Send encrypted data to server
101
- await sendToServer(ciphertext, secret);
102
- } catch (error) {
103
- console.error("Encryption error:", error);
104
- }
105
- }
106
-
107
- // Example secure storage implementation
108
- async function storeKeys(publicKey: string, privateKey: string) {
109
- // Implement secure storage (e.g., IndexedDB, Web Crypto API)
110
- // This is just a placeholder - implement proper secure storage
111
- localStorage.setItem('mlkem_publicKey', publicKey);
112
- localStorage.setItem('mlkem_privateKey', privateKey);
113
- }
114
-
115
- // Example server communication
116
- async function sendToServer(ciphertext: string, secret: string) {
117
- // Implement server communication
118
- // This is just a placeholder - implement proper API calls
119
- const response = await fetch('/api/secure-data', {
120
- method: 'POST',
121
- headers: {
122
- 'Content-Type': 'application/json',
123
- },
124
- body: JSON.stringify({ ciphertext, secret }),
125
- });
126
- return response.json();
127
- }
128
-
129
- // Initialize the application
130
- document.addEventListener('DOMContentLoaded', () => {
131
- const encryptButton = document.getElementById('encrypt-button');
132
- if (encryptButton) {
133
- encryptButton.addEventListener('click', handleEncryption);
134
- }
135
- });
136
- ```
137
-
138
112
  ### Security Considerations for Web Usage
139
113
 
140
114
  When using ML-KEM in a web environment, consider the following security best practices:
@@ -9,6 +9,8 @@ interface IMlKem {
9
9
  encrypt(public_key: any): EncryptResult;
10
10
  decrypt(cyphertext: any, private_key: any): any;
11
11
  buffer_to_string(buffer: any): string;
12
+ encryptMessage(message: string, secret: any): Promise<Uint8Array>;
13
+ decryptMessage(encryptedMessage: Uint8Array, secret: any): Promise<string>;
12
14
  delete(): void;
13
15
  }
14
16
 
package/install/index.js CHANGED
@@ -1719,7 +1719,7 @@ var kyber_crystals_wasm_engine = /* @__PURE__ */ (() => {
1719
1719
  try {
1720
1720
  var window_ = "object" === typeof window ? window : self;
1721
1721
  var crypto_ = typeof window_.crypto !== "undefined" ? window_.crypto : window_.msCrypto;
1722
- crypto_ = crypto_ === void 0 ? crypto : crypto_;
1722
+ crypto_ = crypto_ === void 0 ? crypto2 : crypto_;
1723
1723
  var randomValuesStandard = function() {
1724
1724
  var buf = new Uint32Array(1);
1725
1725
  crypto_.getRandomValues(buf);
@@ -1729,9 +1729,9 @@ var kyber_crystals_wasm_engine = /* @__PURE__ */ (() => {
1729
1729
  Module.getRandomValue = randomValuesStandard;
1730
1730
  } catch (e) {
1731
1731
  try {
1732
- var crypto = require2("crypto");
1732
+ var crypto2 = require2("crypto");
1733
1733
  var randomValueNodeJS = function() {
1734
- var buf = crypto["randomBytes"](4);
1734
+ var buf = crypto2["randomBytes"](4);
1735
1735
  return (buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3]) >>> 0;
1736
1736
  };
1737
1737
  randomValueNodeJS();
@@ -1812,6 +1812,47 @@ var MlKemWrapper = class {
1812
1812
  buffer_to_string(buffer) {
1813
1813
  return this.instance.buffer_to_string(buffer);
1814
1814
  }
1815
+ async encryptMessage(message, secret) {
1816
+ const sharedSecret = this.buffer_to_string(secret);
1817
+ const sharedSecretBuffer = new Uint8Array(sharedSecret.trim().split(" ").map((x) => parseInt(x, 16)));
1818
+ const messageBytes = new TextEncoder().encode(message);
1819
+ const key = await crypto.subtle.importKey(
1820
+ "raw",
1821
+ sharedSecretBuffer,
1822
+ { name: "AES-GCM" },
1823
+ false,
1824
+ ["encrypt"]
1825
+ );
1826
+ const iv = crypto.getRandomValues(new Uint8Array(12));
1827
+ const encryptedData = await crypto.subtle.encrypt(
1828
+ { name: "AES-GCM", iv },
1829
+ key,
1830
+ messageBytes
1831
+ );
1832
+ const encryptedMessage = new Uint8Array(iv.length + encryptedData.byteLength);
1833
+ encryptedMessage.set(iv);
1834
+ encryptedMessage.set(new Uint8Array(encryptedData), iv.length);
1835
+ return encryptedMessage;
1836
+ }
1837
+ async decryptMessage(encryptedMessage, secret) {
1838
+ const sharedSecret = this.buffer_to_string(secret);
1839
+ const sharedSecretBuffer = new Uint8Array(sharedSecret.trim().split(" ").map((x) => parseInt(x, 16)));
1840
+ const iv = encryptedMessage.slice(0, 12);
1841
+ const encryptedData = encryptedMessage.slice(12);
1842
+ const key = await crypto.subtle.importKey(
1843
+ "raw",
1844
+ sharedSecretBuffer,
1845
+ { name: "AES-GCM" },
1846
+ false,
1847
+ ["decrypt"]
1848
+ );
1849
+ const decryptedData = await crypto.subtle.decrypt(
1850
+ { name: "AES-GCM", iv },
1851
+ key,
1852
+ encryptedData
1853
+ );
1854
+ return new TextDecoder().decode(decryptedData);
1855
+ }
1815
1856
  delete() {
1816
1857
  this.instance.delete();
1817
1858
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/kyber_crystals_wasm_engine.js","../src/index.ts"],"sourcesContent":["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&&registeredClass.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 { IMlKem, KeyPair, EncryptResult, KemVariant } from './types';\n\n// @ts-ignore\nimport kyber from './kyber_crystals_wasm_engine.js';\n\n// Embind class declarations\ndeclare class MlKem1024 {\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}\ndeclare class MlKem768 extends MlKem1024 {}\ndeclare class MlKem512 extends MlKem1024 {}\n\ntype RawInstance = MlKem1024 | MlKem768 | MlKem512;\n\nclass MlKemWrapper implements IMlKem {\n constructor(private readonly instance: RawInstance) {}\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 decrypt(cyphertext: any, private_key: any): any {\n return this.instance.decrypt(cyphertext, private_key);\n }\n\n buffer_to_string(buffer: any): string {\n return this.instance.buffer_to_string(buffer);\n }\n\n delete(): void {\n this.instance.delete();\n }\n}\n\nexport async function loadMlKem1024(): Promise<IMlKem> {\n const wasm = await kyber();\n\n return new MlKemWrapper(new wasm.MlKem1024());\n}\n\nexport async function loadMlKem768(): Promise<IMlKem> {\n const wasm = await kyber();\n \n return new MlKemWrapper(new wasm.MlKem768());\n}\n\nexport async function loadMlKem512(): Promise<IMlKem> {\n const wasm = await kyber();\n \n return new MlKemWrapper(new wasm.MlKem512());\n}"],"mappings":"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","names":["require","result","handle","typeConverters","ret","e"]}
1
+ {"version":3,"sources":["../src/kyber_crystals_wasm_engine.js","../src/index.ts"],"sourcesContent":["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&&registeredClass.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 { IMlKem, KeyPair, EncryptResult, KemVariant } from './types';\n\n// @ts-ignore\nimport kyber from './kyber_crystals_wasm_engine.js';\n\n// Embind class declarations\ndeclare class MlKem1024 {\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 encryptMessage(message: string, secret: any): Promise<Uint8Array>;\n decryptMessage(encryptedMessage: Uint8Array, secret: any): Promise<string>;\n delete(): void;\n}\ndeclare class MlKem768 extends MlKem1024 {}\ndeclare class MlKem512 extends MlKem1024 {}\n\ntype RawInstance = MlKem1024 | MlKem768 | MlKem512;\n\nclass MlKemWrapper implements IMlKem {\n constructor(private readonly instance: RawInstance) {}\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 decrypt(cyphertext: any, private_key: any): any {\n return this.instance.decrypt(cyphertext, private_key);\n }\n\n buffer_to_string(buffer: any): string {\n return this.instance.buffer_to_string(buffer);\n }\n\n async encryptMessage(message: string, secret: any): Promise<Uint8Array> {\n const sharedSecret = this.buffer_to_string(secret);\n const sharedSecretBuffer = new Uint8Array(sharedSecret.trim().split(' ').map(x => parseInt(x, 16)))\n\n // Convert the message to bytes\n const messageBytes = new TextEncoder().encode(message);\n // Convert the secret to a key using SHA-256\n const key = await crypto.subtle.importKey(\n 'raw',\n sharedSecretBuffer,\n { name: 'AES-GCM' },\n false,\n ['encrypt']\n );\n // Generate a random IV\n const iv = crypto.getRandomValues(new Uint8Array(12));\n // Encrypt the message\n const encryptedData = await crypto.subtle.encrypt(\n { name: 'AES-GCM', iv },\n key,\n messageBytes\n );\n // Combine IV and encrypted data\n const encryptedMessage = new Uint8Array(iv.length + encryptedData.byteLength);\n encryptedMessage.set(iv);\n encryptedMessage.set(new Uint8Array(encryptedData), iv.length);\n return encryptedMessage;\n }\n\n async decryptMessage(encryptedMessage: Uint8Array, secret: any): Promise<string> {\n const sharedSecret = this.buffer_to_string(secret);\n const sharedSecretBuffer = new Uint8Array(sharedSecret.trim().split(' ').map(x => parseInt(x, 16)))\n\n // Extract IV and encrypted data\n const iv = encryptedMessage.slice(0, 12);\n const encryptedData = encryptedMessage.slice(12);\n // Convert the secret to a key using SHA-256\n const key = await crypto.subtle.importKey(\n 'raw',\n sharedSecretBuffer,\n { name: 'AES-GCM' },\n false,\n ['decrypt']\n );\n // Decrypt the message\n const decryptedData = await crypto.subtle.decrypt(\n { name: 'AES-GCM', iv },\n key,\n encryptedData\n );\n // Convert back to string\n return new TextDecoder().decode(decryptedData);\n }\n\n delete(): void {\n this.instance.delete();\n }\n}\n\nexport async function loadMlKem1024(): Promise<IMlKem> {\n const wasm = await kyber();\n return new MlKemWrapper(new wasm.MlKem1024());\n}\n\nexport async function loadMlKem768(): Promise<IMlKem> {\n const wasm = await kyber();\n return new MlKemWrapper(new wasm.MlKem768());\n}\n\nexport async function loadMlKem512(): Promise<IMlKem> {\n const wasm = await kyber();\n return new MlKemWrapper(new wasm.MlKem512());\n}"],"mappings":"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","names":["require","result","handle","typeConverters","ret","crypto","e"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quantum-resistant-rustykey",
3
- "version": "0.0.3",
3
+ "version": "0.2.0",
4
4
  "description": "ML-KEM (QRS) compiled to WebAssembly",
5
5
  "license": "ISC",
6
6
  "keywords": [