function instantiate(asmLibraryArg, wasmMemory) { function asmFunc(global, env) { var memory = env.memory; var buffer = memory.buffer; memory.grow = __wasm_memory_grow; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); var HEAPU8 = new global.Uint8Array(buffer); var HEAPU16 = new global.Uint16Array(buffer); var HEAPU32 = new global.Uint32Array(buffer); var HEAPF32 = new global.Float32Array(buffer); var HEAPF64 = new global.Float64Array(buffer); var Math_imul = global.Math.imul; var Math_fround = global.Math.fround; var Math_abs = global.Math.abs; var Math_clz32 = global.Math.clz32; var Math_min = global.Math.min; var Math_max = global.Math.max; var Math_floor = global.Math.floor; var Math_ceil = global.Math.ceil; var Math_sqrt = global.Math.sqrt; var abort = env.abort; var nan = global.NaN; var infinity = global.Infinity; // EMSCRIPTEN_START_FUNCS ; // EMSCRIPTEN_END_FUNCS ; function __wasm_memory_size() { return buffer.byteLength / 65536 | 0; } function __wasm_memory_grow(pagesToAdd) { pagesToAdd = pagesToAdd | 0; var oldPages = __wasm_memory_size() | 0; var newPages = oldPages + pagesToAdd | 0; if ((oldPages < newPages) && (newPages < 65536)) { var newBuffer = new ArrayBuffer(Math_imul(newPages, 65536)); var newHEAP8 = new global.Int8Array(newBuffer); newHEAP8.set(HEAP8); HEAP8 = newHEAP8; HEAP8 = new global.Int8Array(newBuffer); HEAP16 = new global.Int16Array(newBuffer); HEAP32 = new global.Int32Array(newBuffer); HEAPU8 = new global.Uint8Array(newBuffer); HEAPU16 = new global.Uint16Array(newBuffer); HEAPU32 = new global.Uint32Array(newBuffer); HEAPF32 = new global.Float32Array(newBuffer); HEAPF64 = new global.Float64Array(newBuffer); buffer = newBuffer; memory.buffer = newBuffer; } return oldPages; } return { "memory": Object.create(Object.prototype, { "grow": { "value": __wasm_memory_grow }, "buffer": { "get": function () { return buffer; } } }) }; } var bufferView = new Uint8Array(wasmMemory.buffer); for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { base64ReverseLookup[48+i] = 52+i; // '0-9' base64ReverseLookup[65+i] = i; // 'A-Z' base64ReverseLookup[97+i] = 26+i; // 'a-z' } base64ReverseLookup[43] = 62; // '+' base64ReverseLookup[47] = 63; // '/' /** @noinline Inlining this function would mean expanding the base64 string 4x times in the source code, which Closure seems to be happy to do. */ function base64DecodeToExistingUint8Array(uint8Array, offset, b64) { var b1, b2, i = 0, j = offset, bLength = b64.length, end = offset + (bLength*3>>2) - (b64[bLength-2] == '=') - (b64[bLength-1] == '='); for (; i < bLength; i += 4) { b1 = base64ReverseLookup[b64.charCodeAt(i+1)]; b2 = base64ReverseLookup[b64.charCodeAt(i+2)]; uint8Array[j++] = base64ReverseLookup[b64.charCodeAt(i)] << 2 | b1 >> 4; if (j < end) uint8Array[j++] = b1 << 4 | b2 >> 2; if (j < end) uint8Array[j++] = b2 << 6 | base64ReverseLookup[b64.charCodeAt(i+3)]; } return uint8Array; } base64DecodeToExistingUint8Array(bufferView, 1600, "YWJj"); return asmFunc({ 'Int8Array': Int8Array, 'Int16Array': Int16Array, 'Int32Array': Int32Array, 'Uint8Array': Uint8Array, 'Uint16Array': Uint16Array, 'Uint32Array': Uint32Array, 'Float32Array': Float32Array, 'Float64Array': Float64Array, 'NaN': NaN, 'Infinity': Infinity, 'Math': Math }, asmLibraryArg, wasmMemory.buffer ) }