@openziti/libcrypto-js
Version:
The OpenSSL libcrypto library compiled to pure JavaScript
1,840 lines (1,428 loc) • 892 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var libCrypto$1 = (() => {
var _scriptName = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('index.js', document.baseURI).href));
return function (moduleArg = {}) {
var moduleRtn;
var Module = moduleArg;
var readyPromiseResolve, readyPromiseReject;
var readyPromise = new Promise((resolve, reject) => {
readyPromiseResolve = resolve;
readyPromiseReject = reject;
});
var arguments_ = {};
arguments_["foo"] = 1;
var moduleOverrides = Object.assign({}, Module);
var arguments_ = [];
var thisProgram = "./this.program";
var quit_ = (status, toThrow) => {
throw toThrow;
};
var scriptDirectory = "";
function locateFile(path) {
if (Module["locateFile"]) {
return Module["locateFile"](path, scriptDirectory);
}
return scriptDirectory + path;
}
var readAsync;
{
if (typeof document != "undefined" && document.currentScript) {
scriptDirectory = document.currentScript.src;
}
if (_scriptName) {
scriptDirectory = _scriptName;
}
if (scriptDirectory.startsWith("blob:")) {
scriptDirectory = "";
} else {
scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
}
{
readAsync = url => fetch(url, {
credentials: "same-origin"
}).then(response => {
if (response.ok) {
return response.arrayBuffer();
}
return Promise.reject(new Error(response.status + " : " + response.url));
});
}
}
var out = Module["print"] || console.log.bind(console);
var err = Module["printErr"] || console.error.bind(console);
Object.assign(Module, moduleOverrides);
moduleOverrides = null;
if (Module["arguments"]) arguments_ = Module["arguments"];
if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
var wasmBinary = Module["wasmBinary"];
var wasmMemory;
var ABORT = false;
var EXITSTATUS;
function assert(condition, text) {
if (!condition) {
abort(text);
}
}
var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAP64, HEAPF64;
function updateMemoryViews() {
var b = wasmMemory.buffer;
Module["HEAP8"] = HEAP8 = new Int8Array(b);
Module["HEAP16"] = HEAP16 = new Int16Array(b);
Module["HEAPU8"] = HEAPU8 = new Uint8Array(b);
Module["HEAPU16"] = HEAPU16 = new Uint16Array(b);
Module["HEAP32"] = HEAP32 = new Int32Array(b);
Module["HEAPU32"] = HEAPU32 = new Uint32Array(b);
Module["HEAPF32"] = HEAPF32 = new Float32Array(b);
Module["HEAPF64"] = HEAPF64 = new Float64Array(b);
Module["HEAP64"] = HEAP64 = new BigInt64Array(b);
Module["HEAPU64"] = new BigUint64Array(b);
}
var __ATPRERUN__ = [];
var __ATINIT__ = [];
var __ATMAIN__ = [];
var __ATPOSTRUN__ = [];
function preRun() {
if (Module["preRun"]) {
if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]];
while (Module["preRun"].length) {
addOnPreRun(Module["preRun"].shift());
}
}
callRuntimeCallbacks(__ATPRERUN__);
}
function initRuntime() {
callRuntimeCallbacks(__ATINIT__);
}
function preMain() {
callRuntimeCallbacks(__ATMAIN__);
}
function postRun() {
if (Module["postRun"]) {
if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]];
while (Module["postRun"].length) {
addOnPostRun(Module["postRun"].shift());
}
}
callRuntimeCallbacks(__ATPOSTRUN__);
}
function addOnPreRun(cb) {
__ATPRERUN__.unshift(cb);
}
function addOnPostRun(cb) {
__ATPOSTRUN__.unshift(cb);
}
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 dataURIPrefix = "data:application/octet-stream;base64,";
var isDataURI = filename => filename.startsWith(dataURIPrefix);
function findWasmBinary() {
if (Module["locateFile"]) {
var f = "libcrypto.JSPI.5497e3a.wasm";
if (!isDataURI(f)) {
return locateFile(f);
}
return f;
}
return new URL("libcrypto.JSPI.5497e3a.wasm", (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('index.js', document.baseURI).href))).href;
}
var wasmBinaryFile;
function getBinarySync(file) {
if (file == wasmBinaryFile && wasmBinary) {
return new Uint8Array(wasmBinary);
}
throw "both async and sync fetching of the wasm failed";
}
function getBinaryPromise(binaryFile) {
if (!wasmBinary) {
return readAsync(binaryFile).then(response => new Uint8Array(response), () => getBinarySync(binaryFile));
}
return Promise.resolve().then(() => getBinarySync(binaryFile));
}
function instantiateArrayBuffer(binaryFile, imports, receiver) {
return getBinaryPromise(binaryFile).then(binary => WebAssembly.instantiate(binary, imports)).then(receiver, reason => {
err(`failed to asynchronously prepare wasm: ${reason}`);
abort(reason);
});
}
function instantiateAsync(binary, binaryFile, imports, callback) {
if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && typeof fetch == "function") {
return fetch(binaryFile, {
credentials: "same-origin"
}).then(response => {
var result = WebAssembly.instantiateStreaming(response, imports);
return result.then(callback, function (reason) {
err(`wasm streaming compile failed: ${reason}`);
err("falling back to ArrayBuffer instantiation");
return instantiateArrayBuffer(binaryFile, imports, callback);
});
});
}
return instantiateArrayBuffer(binaryFile, imports, callback);
}
function getWasmImports() {
Asyncify.instrumentWasmImports(wasmImports);
return {
env: wasmImports,
wasi_snapshot_preview1: wasmImports
};
}
function createWasm() {
var info = getWasmImports();
function receiveInstance(instance, module) {
wasmExports = instance.exports;
wasmExports = Asyncify.instrumentWasmExports(wasmExports);
wasmMemory = wasmExports["memory"];
updateMemoryViews();
wasmTable = wasmExports["__indirect_function_table"];
removeRunDependency();
return wasmExports;
}
addRunDependency();
function receiveInstantiationResult(result) {
receiveInstance(result["instance"]);
}
if (Module["instantiateWasm"]) {
try {
return Module["instantiateWasm"](info, receiveInstance);
} catch (e) {
err(`Module.instantiateWasm callback failed with error: ${e}`);
readyPromiseReject(e);
}
}
if (!wasmBinaryFile) wasmBinaryFile = findWasmBinary();
instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject);
return {};
}
function ExitStatus(status) {
this.name = "ExitStatus";
this.message = `Program terminated with exit(${status})`;
this.status = status;
}
var callRuntimeCallbacks = callbacks => {
while (callbacks.length > 0) {
callbacks.shift()(Module);
}
};
function getValue(ptr, type = "i8") {
if (type.endsWith("*")) type = "*";
switch (type) {
case "i1":
return HEAP8[ptr];
case "i8":
return HEAP8[ptr];
case "i16":
return HEAP16[ptr >> 1];
case "i32":
return HEAP32[ptr >> 2];
case "i64":
return HEAP64[ptr >> 3];
case "float":
return HEAPF32[ptr >> 2];
case "double":
return HEAPF64[ptr >> 3];
case "*":
return HEAPU32[ptr >> 2];
default:
abort(`invalid type for getValue: ${type}`);
}
}
var noExitRuntime = Module["noExitRuntime"] || true;
function setValue(ptr, value, type = "i8") {
if (type.endsWith("*")) type = "*";
switch (type) {
case "i1":
HEAP8[ptr] = value;
break;
case "i8":
HEAP8[ptr] = value;
break;
case "i16":
HEAP16[ptr >> 1] = value;
break;
case "i32":
HEAP32[ptr >> 2] = value;
break;
case "i64":
HEAP64[ptr >> 3] = BigInt(value);
break;
case "float":
HEAPF32[ptr >> 2] = value;
break;
case "double":
HEAPF64[ptr >> 3] = value;
break;
case "*":
HEAPU32[ptr >> 2] = value;
break;
default:
abort(`invalid type for setValue: ${type}`);
}
}
var stackRestore = val => __emscripten_stack_restore(val);
var stackSave = () => _emscripten_stack_get_current();
var inetNtop4 = addr => (addr & 255) + "." + (addr >> 8 & 255) + "." + (addr >> 16 & 255) + "." + (addr >> 24 & 255);
var inetNtop6 = ints => {
var str = "";
var word = 0;
var longest = 0;
var lastzero = 0;
var zstart = 0;
var len = 0;
var i = 0;
var parts = [ints[0] & 65535, ints[0] >> 16, ints[1] & 65535, ints[1] >> 16, ints[2] & 65535, ints[2] >> 16, ints[3] & 65535, ints[3] >> 16];
var hasipv4 = true;
var v4part = "";
for (i = 0; i < 5; i++) {
if (parts[i] !== 0) {
hasipv4 = false;
break;
}
}
if (hasipv4) {
v4part = inetNtop4(parts[6] | parts[7] << 16);
if (parts[5] === -1) {
str = "::ffff:";
str += v4part;
return str;
}
if (parts[5] === 0) {
str = "::";
if (v4part === "0.0.0.0") v4part = "";
if (v4part === "0.0.0.1") v4part = "1";
str += v4part;
return str;
}
}
for (word = 0; word < 8; word++) {
if (parts[word] === 0) {
if (word - lastzero > 1) {
len = 0;
}
lastzero = word;
len++;
}
if (len > longest) {
longest = len;
zstart = word - longest + 1;
}
}
for (word = 0; word < 8; word++) {
if (longest > 1) {
if (parts[word] === 0 && word >= zstart && word < zstart + longest) {
if (word === zstart) {
str += ":";
if (zstart === 0) str += ":";
}
continue;
}
}
str += Number(_ntohs(parts[word] & 65535)).toString(16);
str += word < 7 ? ":" : "";
}
return str;
};
var readSockaddr = (sa, salen) => {
var family = HEAP16[sa >> 1];
var port = _ntohs(HEAPU16[sa + 2 >> 1]);
var addr;
switch (family) {
case 2:
if (salen !== 16) {
return {
errno: 28
};
}
addr = HEAP32[sa + 4 >> 2];
addr = inetNtop4(addr);
break;
case 10:
if (salen !== 28) {
return {
errno: 28
};
}
addr = [HEAP32[sa + 8 >> 2], HEAP32[sa + 12 >> 2], HEAP32[sa + 16 >> 2], HEAP32[sa + 20 >> 2]];
addr = inetNtop6(addr);
break;
default:
return {
errno: 5
};
}
return {
family,
addr,
port
};
};
var inetPton4 = str => {
var b = str.split(".");
for (var i = 0; i < 4; i++) {
var tmp = Number(b[i]);
if (isNaN(tmp)) return null;
b[i] = tmp;
}
return (b[0] | b[1] << 8 | b[2] << 16 | b[3] << 24) >>> 0;
};
var jstoi_q = str => parseInt(str);
var inetPton6 = str => {
var words;
var w, offset, z;
var valid6regx = /^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i;
var parts = [];
if (!valid6regx.test(str)) {
return null;
}
if (str === "::") {
return [0, 0, 0, 0, 0, 0, 0, 0];
}
if (str.startsWith("::")) {
str = str.replace("::", "Z:");
} else {
str = str.replace("::", ":Z:");
}
if (str.indexOf(".") > 0) {
str = str.replace(new RegExp("[.]", "g"), ":");
words = str.split(":");
words[words.length - 4] = jstoi_q(words[words.length - 4]) + jstoi_q(words[words.length - 3]) * 256;
words[words.length - 3] = jstoi_q(words[words.length - 2]) + jstoi_q(words[words.length - 1]) * 256;
words = words.slice(0, words.length - 2);
} else {
words = str.split(":");
}
offset = 0;
z = 0;
for (w = 0; w < words.length; w++) {
if (typeof words[w] == "string") {
if (words[w] === "Z") {
for (z = 0; z < 8 - words.length + 1; z++) {
parts[w + z] = 0;
}
offset = z - 1;
} else {
parts[w + offset] = _htons(parseInt(words[w], 16));
}
} else {
parts[w + offset] = words[w];
}
}
return [parts[1] << 16 | parts[0], parts[3] << 16 | parts[2], parts[5] << 16 | parts[4], parts[7] << 16 | parts[6]];
};
var DNS = {
address_map: {
id: 1,
addrs: {},
names: {}
},
lookup_name(name) {
var res = inetPton4(name);
if (res !== null) {
return name;
}
res = inetPton6(name);
if (res !== null) {
return name;
}
var addr;
if (DNS.address_map.addrs[name]) {
addr = DNS.address_map.addrs[name];
} else {
var id = DNS.address_map.id++;
assert(id < 65535, "exceeded max address mappings of 65535");
addr = "172.29." + (id & 255) + "." + (id & 65280);
DNS.address_map.names[addr] = name;
DNS.address_map.addrs[name] = addr;
}
return addr;
},
lookup_addr(addr) {
if (DNS.address_map.names[addr]) {
return DNS.address_map.names[addr];
}
return null;
}
};
function ___syscall_connect() {
return 0;
}
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 ___syscall_getdents64 = (fd, dirp, count) => {};
function ___syscall_getsockopt(fd, level, optname, optval, optlen, d1) {
return -50;
}
var ___syscall_socket = (domain, type, protocol) => {};
var _emscripten_get_now;
_emscripten_get_now = () => performance.now();
var checkWasiClock = clock_id => clock_id == 0 || clock_id == 1 || clock_id == 2 || clock_id == 3;
function _clock_time_get(clk_id, ignored_precision, ptime) {
if (!checkWasiClock(clk_id)) {
return 28;
}
var now;
if (clk_id === 0) {
now = Date.now();
} else {
now = _emscripten_get_now();
}
var nsec = Math.round(now * 1e3 * 1e3);
HEAP32[ptime >> 2] = nsec >>> 0;
HEAP32[ptime + 4 >> 2] = nsec / Math.pow(2, 32) >>> 0;
return 0;
}
var _emscripten_notify_memory_growth = memoryIndex => {
updateMemoryViews();
};
var handleException = e => {
if (e instanceof ExitStatus || e == "unwind") {
return EXITSTATUS;
}
quit_(1, e);
};
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 maybeExit = () => {
if (!keepRuntimeAlive()) {
try {
_exit(EXITSTATUS);
} catch (e) {
handleException(e);
}
}
};
var callUserCallback = func => {
if (ABORT) {
return;
}
try {
func();
maybeExit();
} catch (e) {
handleException(e);
}
};
var safeSetTimeout = (func, timeout) => setTimeout(() => {
callUserCallback(func);
}, timeout);
var _emscripten_sleep = ms => Asyncify.handleSleep(wakeUp => safeSetTimeout(wakeUp, ms));
_emscripten_sleep.isAsync = true;
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 stringToAscii = (str, buffer) => {
for (var i = 0; i < str.length; ++i) {
HEAP8[buffer++] = str.charCodeAt(i);
}
HEAP8[buffer] = 0;
};
var _environ_get = (__environ, environ_buf) => {
var bufSize = 0;
getEnvStrings().forEach((string, i) => {
var ptr = environ_buf + bufSize;
HEAPU32[__environ + i * 4 >> 2] = ptr;
stringToAscii(string, ptr);
bufSize += string.length + 1;
});
return 0;
};
var _environ_sizes_get = (penviron_count, penviron_buf_size) => {
var strings = getEnvStrings();
HEAPU32[penviron_count >> 2] = strings.length;
var bufSize = 0;
strings.forEach(string => bufSize += string.length + 1);
HEAPU32[penviron_buf_size >> 2] = bufSize;
return 0;
};
var _fd_close = fd => 52;
async function _fd_read(fd, iov, iovcnt, pnum) {
console.log("fd_read: entered");
if (fd < 10) {
var stream = SYSCALLS.getStreamFromFD(fd);
var num = SYSCALLS.doReadv(stream, iov, iovcnt);
HEAP32[pnum >> 2] = num;
return 0;
} else {
const wasmFD = _zitiContext._wasmFDsById.get(fd);
if (wasmFD === null) throw new Error("cannot find wasmFD");
wasmFD.socket.fd_read();
HEAP32[pnum >> 2] = 0;
return 0;
}
}
_fd_read.isAsync = true;
function _fd_seek(fd, offset, whence, newOffset) {
return 70;
}
var printCharBuffers = [null, [], []];
var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder() : undefined;
var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {
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 printChar = (stream, curr) => {
var buffer = printCharBuffers[stream];
if (curr === 0 || curr === 10) {
(stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));
buffer.length = 0;
} else {
buffer.push(curr);
}
};
var UTF8ToString = (ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
var SYSCALLS = {
varargs: undefined,
getStr(ptr) {
var ret = UTF8ToString(ptr);
return ret;
}
};
function _fd_write(fd, iov, iovcnt, pnum) {
if (fd < 10) {
var num = 0;
for (var i = 0; i < iovcnt; i++) {
var ptr = HEAP32[iov >> 2];
var len = HEAP32[iov + 4 >> 2];
iov += 8;
for (var j = 0; j < len; j++) {
printChar(fd, HEAPU8[ptr + j]);
}
num += len;
}
HEAP32[pnum >> 2] = num;
return 0;
} else {
const wasmFD = _zitiContext._wasmFDsById.get(fd);
if (wasmFD === null) throw new Error("cannot find wasmFD");
var num = 0;
for (var i = 0; i < iovcnt; i++) {
var ptr = HEAP32[iov >> 2];
var len = HEAP32[iov + 4 >> 2];
iov += 8;
var array = new Uint8Array(Module.HEAPU8.buffer, ptr, len);
wasmFD.socket.fd_write(array);
num += len;
}
HEAP32[pnum >> 2] = num;
return 0;
}
}
var zeroMemory = (address, size) => {
HEAPU8.fill(0, address, address + size);
return address;
};
var writeSockaddr = (sa, family, addr, port, addrlen) => {
switch (family) {
case 2:
addr = inetPton4(addr);
zeroMemory(sa, 16);
if (addrlen) {
HEAP32[addrlen >> 2] = 16;
}
HEAP16[sa >> 1] = family;
HEAP32[sa + 4 >> 2] = addr;
HEAP16[sa + 2 >> 1] = _htons(port);
break;
case 10:
addr = inetPton6(addr);
zeroMemory(sa, 28);
if (addrlen) {
HEAP32[addrlen >> 2] = 28;
}
HEAP32[sa >> 2] = family;
HEAP32[sa + 8 >> 2] = addr[0];
HEAP32[sa + 12 >> 2] = addr[1];
HEAP32[sa + 16 >> 2] = addr[2];
HEAP32[sa + 20 >> 2] = addr[3];
HEAP16[sa + 2 >> 1] = _htons(port);
break;
default:
return 5;
}
return 0;
};
var _getaddrinfo = (node, service, hint, out) => {
var addr = 0;
var port = 0;
var flags = 0;
var family = 0;
var type = 0;
var proto = 0;
var ai;
function allocaddrinfo(family, type, proto, canon, addr, port) {
var sa, salen, ai;
var errno;
salen = family === 10 ? 28 : 16;
addr = family === 10 ? inetNtop6(addr) : inetNtop4(addr);
sa = _malloc(salen);
errno = writeSockaddr(sa, family, addr, port);
assert(!errno);
ai = _malloc(32);
HEAP32[ai + 4 >> 2] = family;
HEAP32[ai + 8 >> 2] = type;
HEAP32[ai + 12 >> 2] = proto;
HEAPU32[ai + 24 >> 2] = canon;
HEAPU32[ai + 20 >> 2] = sa;
if (family === 10) {
HEAP32[ai + 16 >> 2] = 28;
} else {
HEAP32[ai + 16 >> 2] = 16;
}
HEAP32[ai + 28 >> 2] = 0;
return ai;
}
if (hint) {
flags = HEAP32[hint >> 2];
family = HEAP32[hint + 4 >> 2];
type = HEAP32[hint + 8 >> 2];
proto = HEAP32[hint + 12 >> 2];
}
if (type && !proto) {
proto = type === 2 ? 17 : 6;
}
if (!type && proto) {
type = proto === 17 ? 2 : 1;
}
if (proto === 0) {
proto = 6;
}
if (type === 0) {
type = 1;
}
if (!node && !service) {
return -2;
}
if (flags & ~(1 | 2 | 4 | 1024 | 8 | 16 | 32)) {
return -1;
}
if (hint !== 0 && HEAP32[hint >> 2] & 2 && !node) {
return -1;
}
if (flags & 32) {
return -2;
}
if (type !== 0 && type !== 1 && type !== 2) {
return -7;
}
if (family !== 0 && family !== 2 && family !== 10) {
return -6;
}
if (service) {
service = UTF8ToString(service);
port = parseInt(service, 10);
if (isNaN(port)) {
if (flags & 1024) {
return -2;
}
return -8;
}
}
if (!node) {
if (family === 0) {
family = 2;
}
if ((flags & 1) === 0) {
if (family === 2) {
addr = _htonl(2130706433);
} else {
addr = [0, 0, 0, 1];
}
}
ai = allocaddrinfo(family, type, proto, null, addr, port);
HEAPU32[out >> 2] = ai;
return 0;
}
node = UTF8ToString(node);
addr = inetPton4(node);
if (addr !== null) {
if (family === 0 || family === 2) {
family = 2;
} else if (family === 10 && flags & 8) {
addr = [0, 0, _htonl(65535), addr];
family = 10;
} else {
return -2;
}
} else {
addr = inetPton6(node);
if (addr !== null) {
if (family === 0 || family === 10) {
family = 10;
} else {
return -2;
}
}
}
if (addr != null) {
ai = allocaddrinfo(family, type, proto, node, addr, port);
HEAPU32[out >> 2] = ai;
return 0;
}
if (flags & 4) {
return -2;
}
node = DNS.lookup_name(node);
addr = inetPton4(node);
if (family === 0) {
family = 2;
} else if (family === 10) {
addr = [0, 0, _htonl(65535), addr];
}
ai = allocaddrinfo(family, type, proto, null, addr, port);
HEAPU32[out >> 2] = ai;
return 0;
};
var _getnameinfo = (sa, salen, node, nodelen, serv, servlen, flags) => {
var info = readSockaddr(sa, salen);
if (info.errno) {
return -6;
}
var port = info.port;
var addr = info.addr;
var overflowed = false;
if (node && nodelen) {
var lookup;
if (flags & 1 || !(lookup = DNS.lookup_addr(addr))) {
if (flags & 8) {
return -2;
}
} else {
addr = lookup;
}
var numBytesWrittenExclNull = stringToUTF8(addr, node, nodelen);
if (numBytesWrittenExclNull + 1 >= nodelen) {
overflowed = true;
}
}
if (serv && servlen) {
port = "" + port;
var numBytesWrittenExclNull = stringToUTF8(port, serv, servlen);
if (numBytesWrittenExclNull + 1 >= servlen) {
overflowed = true;
}
}
if (overflowed) {
return -12;
}
return 0;
};
function _ziti_getentropy(buf, buflen) {
let array = new Uint8Array(Module.HEAPU8.buffer, buf, buflen);
crypto.getRandomValues(array);
}
var sigToWasmTypes = sig => {
var typeNames = {
i: "i32",
j: "i64",
f: "f32",
d: "f64",
e: "externref",
p: "i32"
};
var type = {
parameters: [],
results: sig[0] == "v" ? [] : [typeNames[sig[0]]]
};
for (var i = 1; i < sig.length; ++i) {
type.parameters.push(typeNames[sig[i]]);
}
return type;
};
var Asyncify = {
instrumentWasmImports(imports) {
var importPattern = /^(invoke_.*|__asyncjs__.*)$/;
for (let [x, original] of Object.entries(imports)) {
if (typeof original == "function") {
let isAsyncifyImport = original.isAsync || importPattern.test(x);
if (isAsyncifyImport) {
imports[x] = original = new WebAssembly.Suspending(original);
}
}
}
},
instrumentWasmExports(exports) {
var exportPattern = /^(ssl_do_handshake|tls_read|main|__main_argc_argv)$/;
Asyncify.asyncExports = new Set();
var ret = {};
for (let [x, original] of Object.entries(exports)) {
if (typeof original == "function") {
let isAsyncifyExport = exportPattern.test(x);
if (isAsyncifyExport) {
Asyncify.asyncExports.add(original);
original = Asyncify.makeAsyncFunction(original);
}
ret[x] = (...args) => original(...args);
} else {
ret[x] = original;
}
}
return ret;
},
asyncExports: null,
isAsyncExport(func) {
return Asyncify.asyncExports?.has(func);
},
handleAsync: async startAsync => {
try {
return await startAsync();
} finally {}
},
handleSleep(startAsync) {
return Asyncify.handleAsync(() => new Promise(startAsync));
},
makeAsyncFunction(original) {
return WebAssembly.promising(original);
}
};
var getCFunc = ident => {
var func = Module["_" + ident];
return func;
};
var writeArrayToMemory = (array, buffer) => {
HEAP8.set(array, buffer);
};
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 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);
}
var asyncMode = opts?.async;
if (asyncMode) return ret.then(onDone);
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);
};
var uleb128Encode = (n, target) => {
if (n < 128) {
target.push(n);
} else {
target.push(n % 128 | 128, n >> 7);
}
};
var generateFuncType = (sig, target) => {
var sigRet = sig.slice(0, 1);
var sigParam = sig.slice(1);
var typeCodes = {
i: 127,
p: 127,
j: 126,
f: 125,
d: 124,
e: 111
};
target.push(96);
uleb128Encode(sigParam.length, target);
for (var i = 0; i < sigParam.length; ++i) {
target.push(typeCodes[sigParam[i]]);
}
if (sigRet == "v") {
target.push(0);
} else {
target.push(1, typeCodes[sigRet]);
}
};
var convertJsFunctionToWasm = (func, sig) => {
if (typeof WebAssembly.Function == "function") {
return new WebAssembly.Function(sigToWasmTypes(sig), func);
}
var typeSectionBody = [1];
generateFuncType(sig, typeSectionBody);
var bytes = [0, 97, 115, 109, 1, 0, 0, 0, 1];
uleb128Encode(typeSectionBody.length, bytes);
bytes.push(...typeSectionBody);
bytes.push(2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0);
var module = new WebAssembly.Module(new Uint8Array(bytes));
var instance = new WebAssembly.Instance(module, {
e: {
f: func
}
});
var wrappedFunc = instance.exports["f"];
return wrappedFunc;
};
var wasmTableMirror = [];
var wasmTable;
var getWasmTableEntry = funcPtr => {
var func = wasmTableMirror[funcPtr];
if (!func) {
if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1;
wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);
if (Asyncify.isAsyncExport(func)) {
wasmTableMirror[funcPtr] = func = Asyncify.makeAsyncFunction(func);
}
}
return func;
};
var updateTableMap = (offset, count) => {
if (functionsInTableMap) {
for (var i = offset; i < offset + count; i++) {
var item = getWasmTableEntry(i);
if (item) {
functionsInTableMap.set(item, i);
}
}
}
};
var functionsInTableMap;
var getFunctionAddress = func => {
if (!functionsInTableMap) {
functionsInTableMap = new WeakMap();
updateTableMap(0, wasmTable.length);
}
return functionsInTableMap.get(func) || 0;
};
var freeTableIndexes = [];
var getEmptyTableSlot = () => {
if (freeTableIndexes.length) {
return freeTableIndexes.pop();
}
try {
wasmTable.grow(1);
} catch (err) {
if (!(err instanceof RangeError)) {
throw err;
}
throw "Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";
}
return wasmTable.length - 1;
};
var setWasmTableEntry = (idx, func) => {
wasmTable.set(idx, func);
wasmTableMirror[idx] = wasmTable.get(idx);
};
var addFunction = (func, sig) => {
var rtn = getFunctionAddress(func);
if (rtn) {
return rtn;
}
var ret = getEmptyTableSlot();
try {
setWasmTableEntry(ret, func);
} catch (err) {
if (!(err instanceof TypeError)) {
throw err;
}
var wrapped = convertJsFunctionToWasm(func, sig);
setWasmTableEntry(ret, wrapped);
}
functionsInTableMap.set(func, ret);
return ret;
};
var wasmImports = {
__syscall_connect: ___syscall_connect,
__syscall_getdents64: ___syscall_getdents64,
__syscall_getsockopt: ___syscall_getsockopt,
__syscall_socket: ___syscall_socket,
clock_time_get: _clock_time_get,
emscripten_notify_memory_growth: _emscripten_notify_memory_growth,
emscripten_sleep: _emscripten_sleep,
environ_get: _environ_get,
environ_sizes_get: _environ_sizes_get,
fd_close: _fd_close,
fd_read: _fd_read,
fd_seek: _fd_seek,
fd_write: _fd_write,
getaddrinfo: _getaddrinfo,
getnameinfo: _getnameinfo,
ziti_getentropy: _ziti_getentropy
};
var wasmExports = createWasm();
var _malloc = Module["_malloc"] = a0 => (_malloc = Module["_malloc"] = wasmExports["malloc"])(a0);
Module["_createCertificateSigningRequest"] = (a0, a1, a2, a3, a4, a5, a6, a7) => (Module["_createCertificateSigningRequest"] = wasmExports["createCertificateSigningRequest"])(a0, a1, a2, a3, a4, a5, a6, a7);
Module["_generateKey"] = a0 => (Module["_generateKey"] = wasmExports["generateKey"])(a0);
Module["_EVP_PKEY_CTX_new_id"] = (a0, a1) => (Module["_EVP_PKEY_CTX_new_id"] = wasmExports["EVP_PKEY_CTX_new_id"])(a0, a1);
Module["_EVP_PKEY_keygen_init"] = a0 => (Module["_EVP_PKEY_keygen_init"] = wasmExports["EVP_PKEY_keygen_init"])(a0);
Module["_EVP_PKEY_keygen"] = (a0, a1) => (Module["_EVP_PKEY_keygen"] = wasmExports["EVP_PKEY_keygen"])(a0, a1);
Module["_generateECKey"] = () => (Module["_generateECKey"] = wasmExports["generateECKey"])();
Module["_EVP_PKEY_new"] = () => (Module["_EVP_PKEY_new"] = wasmExports["EVP_PKEY_new"])();
Module["_getPrivateKeyPEM"] = a0 => (Module["_getPrivateKeyPEM"] = wasmExports["getPrivateKeyPEM"])(a0);
Module["_getPublicKeyPEM"] = a0 => (Module["_getPublicKeyPEM"] = wasmExports["getPublicKeyPEM"])(a0);
Module["_cleanup"] = () => (Module["_cleanup"] = wasmExports["cleanup"])();
Module["_fd_kv_alloc"] = () => (Module["_fd_kv_alloc"] = wasmExports["fd_kv_alloc"])();
Module["_fd_kv_getItem"] = a0 => (Module["_fd_kv_getItem"] = wasmExports["fd_kv_getItem"])(a0);
Module["_fd_kv_delItem"] = a0 => (Module["_fd_kv_delItem"] = wasmExports["fd_kv_delItem"])(a0);
Module["_fd_kv_addItem"] = (a0, a1) => (Module["_fd_kv_addItem"] = wasmExports["fd_kv_addItem"])(a0, a1);
Module["_constructTLSDataQueue"] = (a0, a1) => (Module["_constructTLSDataQueue"] = wasmExports["constructTLSDataQueue"])(a0, a1);
Module["_destructTLSDataQueue"] = a0 => (Module["_destructTLSDataQueue"] = wasmExports["destructTLSDataQueue"])(a0);
Module["_isEmptyTLSData"] = a0 => (Module["_isEmptyTLSData"] = wasmExports["isEmptyTLSData"])(a0);
Module["_dequeueTLSData"] = a0 => (Module["_dequeueTLSData"] = wasmExports["dequeueTLSData"])(a0);
Module["_allocateTLSDataBuf"] = a0 => (Module["_allocateTLSDataBuf"] = wasmExports["allocateTLSDataBuf"])(a0);
Module["_freeTLSDataBuf"] = a0 => (Module["_freeTLSDataBuf"] = wasmExports["freeTLSDataBuf"])(a0);
Module["_enqueueTLSData"] = (a0, a1, a2) => (Module["_enqueueTLSData"] = wasmExports["enqueueTLSData"])(a0, a1, a2);
Module["_peekTLSData"] = a0 => (Module["_peekTLSData"] = wasmExports["peekTLSData"])(a0);
Module["_ssl_CTX_new"] = () => (Module["_ssl_CTX_new"] = wasmExports["ssl_CTX_new"])();
Module["_ssl_CTX_add_private_key"] = (a0, a1) => (Module["_ssl_CTX_add_private_key"] = wasmExports["ssl_CTX_add_private_key"])(a0, a1);
Module["_ssl_CTX_add_certificate"] = (a0, a1) => (Module["_ssl_CTX_add_certificate"] = wasmExports["ssl_CTX_add_certificate"])(a0, a1);
Module["_ssl_CTX_add_extra_chain_cert"] = (a0, a1) => (Module["_ssl_CTX_add_extra_chain_cert"] = wasmExports["ssl_CTX_add_extra_chain_cert"])(a0, a1);
Module["_ssl_CTX_add1_to_CA_list"] = (a0, a1) => (Module["_ssl_CTX_add1_to_CA_list"] = wasmExports["ssl_CTX_add1_to_CA_list"])(a0, a1);
Module["_ssl_CTX_verify_certificate_and_key"] = a0 => (Module["_ssl_CTX_verify_certificate_and_key"] = wasmExports["ssl_CTX_verify_certificate_and_key"])(a0);
Module["_ssl_new"] = a0 => (Module["_ssl_new"] = wasmExports["ssl_new"])(a0);
Module["_bio_new_ssl_connect"] = a0 => (Module["_bio_new_ssl_connect"] = wasmExports["bio_new_ssl_connect"])(a0);
Module["_bio_get_ssl"] = a0 => (Module["_bio_get_ssl"] = wasmExports["bio_get_ssl"])(a0);
Module["_bio_set_conn_hostname"] = (a0, a1) => (Module["_bio_set_conn_hostname"] = wasmExports["bio_set_conn_hostname"])(a0, a1);
Module["_bio_do_connect"] = a0 => (Module["_bio_do_connect"] = wasmExports["bio_do_connect"])(a0);
Module["_ssl_do_handshake"] = a0 => (Module["_ssl_do_handshake"] = wasmExports["ssl_do_handshake"])(a0);
Module["_ssl_get_verify_result"] = a0 => (Module["_ssl_get_verify_result"] = wasmExports["ssl_get_verify_result"])(a0);
Module["_tls_write"] = (a0, a1, a2) => (Module["_tls_write"] = wasmExports["tls_write"])(a0, a1, a2);
Module["_SSL_get_fd"] = a0 => (Module["_SSL_get_fd"] = wasmExports["SSL_get_fd"])(a0);
Module["_tls_read"] = (a0, a1, a2) => (Module["_tls_read"] = wasmExports["tls_read"])(a0, a1, a2);
Module["_ssl_set_fd"] = (a0, a1) => (Module["_ssl_set_fd"] = wasmExports["ssl_set_fd"])(a0, a1);
Module["_ssl_connect"] = a0 => (Module["_ssl_connect"] = wasmExports["ssl_connect"])(a0);
Module["_createBuffer"] = a0 => (Module["_createBuffer"] = wasmExports["createBuffer"])(a0);
Module["_destroyBuffer"] = a0 => (Module["_destroyBuffer"] = wasmExports["destroyBuffer"])(a0);
var _ntohs = a0 => (_ntohs = wasmExports["ntohs"])(a0);
Module["_BIO_new_fp"] = (a0, a1) => (Module["_BIO_new_fp"] = wasmExports["BIO_new_fp"])(a0, a1);
Module["_DSA_free"] = a0 => (Module["_DSA_free"] = wasmExports["DSA_free"])(a0);
Module["_EVP_PKEY_CTX_free"] = a0 => (Module["_EVP_PKEY_CTX_free"] = wasmExports["EVP_PKEY_CTX_free"])(a0);
Module["_EVP_PKEY_free"] = a0 => (Module["_EVP_PKEY_free"] = wasmExports["EVP_PKEY_free"])(a0);
Module["_EVP_PKEY_get1_DSA"] = a0 => (Module["_EVP_PKEY_get1_DSA"] = wasmExports["EVP_PKEY_get1_DSA"])(a0);
Module["_EVP_PKEY_paramgen_init"] = a0 => (Module["_EVP_PKEY_paramgen_init"] = wasmExports["EVP_PKEY_paramgen_init"])(a0);
Module["_EVP_PKEY_paramgen"] = (a0, a1) => (Module["_EVP_PKEY_paramgen"] = wasmExports["EVP_PKEY_paramgen"])(a0, a1);
Module["_OPENSSL_init"] = () => (Module["_OPENSSL_init"] = wasmExports["OPENSSL_init"])();
Module["_PEM_write_bio_DSAPrivateKey"] = (a0, a1, a2, a3, a4, a5, a6) => (Module["_PEM_write_bio_DSAPrivateKey"] = wasmExports["PEM_write_bio_DSAPrivateKey"])(a0, a1, a2, a3, a4, a5, a6);
Module["_RSA_new"] = () => (Module["_RSA_new"] = wasmExports["RSA_new"])();
Module["_EVP_PKEY_CTX_set_rsa_keygen_bits"] = (a0, a1) => (Module["_EVP_PKEY_CTX_set_rsa_keygen_bits"] = wasmExports["EVP_PKEY_CTX_set_rsa_keygen_bits"])(a0, a1);
Module["_SSL_is_init_finished"] = a0 => (Module["_SSL_is_init_finished"] = wasmExports["SSL_is_init_finished"])(a0);
var __initialize = Module["__initialize"] = () => (__initialize = Module["__initialize"] = wasmExports["_initialize"])();
var _htonl = a0 => (_htonl = wasmExports["htonl"])(a0);
var _htons = a0 => (_htons = wasmExports["htons"])(a0);
var __emscripten_stack_restore = a0 => (__emscripten_stack_restore = wasmExports["_emscripten_stack_restore"])(a0);
var __emscripten_stack_alloc = a0 => (__emscripten_stack_alloc = wasmExports["_emscripten_stack_alloc"])(a0);
var _emscripten_stack_get_current = () => (_emscripten_stack_get_current = wasmExports["emscripten_stack_get_current"])();
Module["_whichWASMstring"] = 1024;
Module["ccall"] = ccall;
Module["cwrap"] = cwrap;
Module["addFunction"] = addFunction;
Module["setValue"] = setValue;
Module["getValue"] = getValue;
Module["stringToUTF8"] = stringToUTF8;
Module["lengthBytesUTF8"] = lengthBytesUTF8;
var calledRun;
dependenciesFulfilled = function runCaller() {
if (!calledRun) run();
if (!calledRun) dependenciesFulfilled = runCaller;
};
function callMain(args = []) {
var entryFunction = __initialize;
try {
entryFunction();
var ret = 0;
Promise.resolve(ret).then(result => {
exitJS(result, true);
}).catch(e => {
handleException(e);
});
return ret;
} catch (e) {
return handleException(e);
}
}
function run(args = arguments_) {
if (runDependencies > 0) {
return;
}
preRun();
if (runDependencies > 0) {
return;
}
function doRun() {
if (calledRun) return;
calledRun = true;
Module["calledRun"] = true;
if (ABORT) return;
initRuntime();
preMain();
readyPromiseResolve(Module);
Module["onRuntimeInitialized"]?.();
if (shouldRunNow) callMain(args);
postRun();
}
if (Module["setStatus"]) {
Module["setStatus"]("Running...");
setTimeout(() => {
setTimeout(() => Module["setStatus"](""), 1);
doRun();
}, 1);
} else {
doRun();
}
}
if (Module["preInit"]) {
if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]];
while (Module["preInit"].length > 0) {
Module["preInit"].pop()();
}
}
var shouldRunNow = false;
if (Module["noInitialRun"]) shouldRunNow = false;
run();
moduleRtn = readyPromise;
return moduleRtn;
};
})();
var libCrypto = (() => {
var _scriptName = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('index.js', document.baseURI).href));
return function (moduleArg = {}) {
var moduleRtn;
var Module = moduleArg;
var readyPromiseResolve, readyPromiseReject;
var readyPromise = new Promise((resolve, reject) => {
readyPromiseResolve = resolve;
readyPromiseReject = reject;
});
var arguments_ = {};
arguments_["foo"] = 1;
var moduleOverrides = Object.assign({}, Module);
var arguments_ = [];
var thisProgram = "./this.program";
var quit_ = (status, toThrow) => {
throw toThrow;
};
var scriptDirectory = "";
function locateFile(path) {
return scriptDirectory + path;
}
var readAsync;
{
if (typeof document != "undefined" && document.currentScript) {
scriptDirectory = document.currentScript.src;
}
if (_scriptName) {
scriptDirectory = _scriptName;
}
if (scriptDirectory.startsWith("blob:")) {
scriptDirectory = "";
} else {
scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
}
{
readAsync = url => fetch(url, {
credentials: "same-origin"
}).then(response => {
if (response.ok) {
return response.arrayBuffer();
}
return Promise.reject(new Error(response.status + " : " + response.url));
});
}
}
var out = console.log.bind(console);
var err = console.error.bind(console);
Object.assign(Module, moduleOverrides);
moduleOverrides = null;
var wasmBinary;
var wasmMemory;
var ABORT = false;
var EXITSTATUS;
var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAP64, HEAPF64;
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);
new BigUint64Array(b);
}
var __ATPRERUN__ = [];
var __ATINIT__ = [];
var __ATMAIN__ = [];
var __ATPOSTRUN__ = [];
function preRun() {
callRuntimeCallbacks(__ATPRERUN__);
}
function initRuntime() {
callRunt