summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/test/env.js1
-rw-r--r--scripts/test/node-esm-loader.mjs8
-rwxr-xr-xscripts/test/wasm2js.py80
-rw-r--r--src/passes/I64ToI32Lowering.cpp40
-rw-r--r--src/passes/RemoveNonJSOps.cpp32
-rw-r--r--src/passes/wasm-intrinsics.wast25
-rw-r--r--src/wasm2js.h42
-rw-r--r--test/binaryen.js/emit_asmjs.js.txt1
-rw-r--r--test/passes/remove-non-js-ops.txt15
-rw-r--r--test/wasm2js/br.2asm.js35
-rw-r--r--test/wasm2js/comments.2asm.js31
-rw-r--r--test/wasm2js/conversions-modified.2asm.js14
-rw-r--r--test/wasm2js/emscripten.2asm.js29
-rw-r--r--test/wasm2js/endianness.2asm.js14
-rw-r--r--test/wasm2js/f64.2asm.js20
-rw-r--r--test/wasm2js/float-ops.2asm.js20
-rw-r--r--test/wasm2js/float_literals-modified.2asm.js182
-rw-r--r--test/wasm2js/float_misc.2asm.js20
-rw-r--r--test/wasm2js/func_ptrs.2asm.js120
-rw-r--r--test/wasm2js/i64.2asm.js160
-rw-r--r--test/wasm2js/int_exprs.2asm.js7427
-rw-r--r--test/wasm2js/left-to-right.2asm.js186
-rw-r--r--test/wasm2js/reinterpret.2asm.js14
-rw-r--r--test/wasm2js/traps.2asm.js976
-rw-r--r--test/wasm2js/unaligned.2asm.js14
25 files changed, 9017 insertions, 489 deletions
diff --git a/scripts/test/env.js b/scripts/test/env.js
new file mode 100644
index 000000000..8079b551a
--- /dev/null
+++ b/scripts/test/env.js
@@ -0,0 +1 @@
+export const __tempMemory__ = 0;
diff --git a/scripts/test/node-esm-loader.mjs b/scripts/test/node-esm-loader.mjs
index 73ff47800..8cd722822 100644
--- a/scripts/test/node-esm-loader.mjs
+++ b/scripts/test/node-esm-loader.mjs
@@ -16,14 +16,16 @@ export function resolve(specifier, parentModuleURL = baseURL, defaultResolve) {
format: 'builtin'
};
}
- // Resolve the 'spectest' module to our special module which has some builtins
- if (specifier == 'spectest') {
- const resolved = new URL('./scripts/test/spectest.js', parentModuleURL);
+ // Resolve the 'spectest' and 'env' modules to our custom implementations of
+ // various builtins.
+ if (specifier == 'spectest' || specifier == 'env') {
+ const resolved = new URL('./scripts/test/' + specifier + '.js', parentModuleURL);
return {
url: resolved.href,
format: 'esm'
};
}
+
const resolved = new URL(specifier, parentModuleURL);
return {
url: resolved.href,
diff --git a/scripts/test/wasm2js.py b/scripts/test/wasm2js.py
index 2892da278..1cad83a1b 100755
--- a/scripts/test/wasm2js.py
+++ b/scripts/test/wasm2js.py
@@ -16,7 +16,7 @@
import os
-from support import run_command
+from support import run_command, split_wast
from shared import (
WASM2JS, MOZJS, NODEJS, fail_if_not_identical, options, tests,
fail_if_not_identical_to_file
@@ -51,36 +51,46 @@ def test_wasm2js_output():
print '..', wasm
- cmd = WASM2JS + [os.path.join(options.binaryen_test, wasm)]
- if 'emscripten' in wasm:
- cmd += ['--emscripten']
- out = run_command(cmd)
- fail_if_not_identical_to_file(out, expected_file)
+ t = os.path.join(options.binaryen_test, wasm)
- if not NODEJS and not MOZJS:
- print 'No JS interpreters. Skipping spec tests.'
- continue
+ all_out = []
- open('a.2asm.mjs', 'w').write(out)
+ for module, asserts in split_wast(t):
+ with open('split.wast', 'w') as o:
+ o.write(module + '\n'.join(asserts))
- cmd += ['--allow-asserts']
- out = run_command(cmd)
+ cmd = WASM2JS + ['split.wast']
+ if 'emscripten' in wasm:
+ cmd += ['--emscripten']
+ out = run_command(cmd)
+ all_out.append(out)
- open('a.2asm.asserts.mjs', 'w').write(out)
+ if not NODEJS and not MOZJS:
+ print 'No JS interpreters. Skipping spec tests.'
+ continue
- # verify asm.js is valid js, note that we're using --experimental-modules
- # to enable ESM syntax and we're also passing a custom loader to handle the
- # `spectest` module in our tests.
- if NODEJS:
- node = [NODEJS, '--experimental-modules', '--loader', './scripts/test/node-esm-loader.mjs']
- cmd = node[:]
- cmd.append('a.2asm.mjs')
+ open('a.2asm.mjs', 'w').write(out)
+
+ cmd += ['--allow-asserts']
out = run_command(cmd)
- fail_if_not_identical(out, '')
- cmd = node[:]
- cmd.append('a.2asm.asserts.mjs')
- out = run_command(cmd, expected_err='', err_ignore='The ESM module loader is experimental')
- fail_if_not_identical(out, '')
+
+ open('a.2asm.asserts.mjs', 'w').write(out)
+
+ # verify asm.js is valid js, note that we're using --experimental-modules
+ # to enable ESM syntax and we're also passing a custom loader to handle the
+ # `spectest` and `env` modules in our tests.
+ if NODEJS:
+ node = [NODEJS, '--experimental-modules', '--loader', './scripts/test/node-esm-loader.mjs']
+ cmd = node[:]
+ cmd.append('a.2asm.mjs')
+ out = run_command(cmd)
+ fail_if_not_identical(out, '')
+ cmd = node[:]
+ cmd.append('a.2asm.asserts.mjs')
+ out = run_command(cmd, expected_err='', err_ignore='The ESM module loader is experimental')
+ fail_if_not_identical(out, '')
+
+ fail_if_not_identical_to_file(''.join(all_out), expected_file)
def test_asserts_output():
@@ -130,12 +140,22 @@ def update_wasm2js_tests():
print '..', wasm
- cmd = WASM2JS + [os.path.join('test', wasm)]
- if 'emscripten' in wasm:
- cmd += ['--emscripten']
- out = run_command(cmd)
+ t = os.path.join(options.binaryen_test, wasm)
+
+ all_out = []
+
+ for module, asserts in split_wast(t):
+ with open('split.wast', 'w') as o:
+ o.write(module + '\n'.join(asserts))
+
+ cmd = WASM2JS + ['split.wast']
+ if 'emscripten' in wasm:
+ cmd += ['--emscripten']
+ out = run_command(cmd)
+ all_out.append(out)
+
with open(expected_file, 'w') as o:
- o.write(out)
+ o.write(''.join(all_out))
for wasm in assert_tests:
print '..', wasm
diff --git a/src/passes/I64ToI32Lowering.cpp b/src/passes/I64ToI32Lowering.cpp
index ae69ec19d..208aac9ea 100644
--- a/src/passes/I64ToI32Lowering.cpp
+++ b/src/passes/I64ToI32Lowering.cpp
@@ -600,16 +600,17 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> {
// our f64 through memory at address 0
TempVar highBits = getTemp();
Block *result = builder->blockify(
- builder->makeStore(8, 0, 8, builder->makeConst(Literal(int32_t(0))), curr->value, f64),
+ builder->makeStore(8, 0, 8, makeGetTempMemory(), curr->value, f64),
builder->makeSetLocal(
highBits,
- builder->makeLoad(4, true, 4, 4, builder->makeConst(Literal(int32_t(0))), i32)
+ builder->makeLoad(4, true, 4, 4, makeGetTempMemory(), i32)
),
- builder->makeLoad(4, true, 0, 4, builder->makeConst(Literal(int32_t(0))), i32)
+ builder->makeLoad(4, true, 0, 4, makeGetTempMemory(), i32)
);
setOutParam(result, std::move(highBits));
replaceCurrent(result);
- ensureMinimalMemory();
+ MemoryUtils::ensureExists(getModule()->memory);
+ ensureTempMemoryGlobal();
}
void lowerReinterpretInt64(Unary* curr) {
@@ -617,18 +618,33 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> {
// our i64 through memory at address 0
TempVar highBits = fetchOutParam(curr->value);
Block *result = builder->blockify(
- builder->makeStore(4, 0, 4, builder->makeConst(Literal(int32_t(0))), curr->value, i32),
- builder->makeStore(4, 4, 4, builder->makeConst(Literal(int32_t(0))), builder->makeGetLocal(highBits, i32), i32),
- builder->makeLoad(8, true, 0, 8, builder->makeConst(Literal(int32_t(0))), f64)
+ builder->makeStore(4, 0, 4, makeGetTempMemory(), curr->value, i32),
+ builder->makeStore(4, 4, 4, makeGetTempMemory(), builder->makeGetLocal(highBits, i32), i32),
+ builder->makeLoad(8, true, 0, 8, makeGetTempMemory(), f64)
);
replaceCurrent(result);
- ensureMinimalMemory();
+ MemoryUtils::ensureExists(getModule()->memory);
+ ensureTempMemoryGlobal();
}
- // Ensure memory exists with a minimal size, enough for round-tripping operations on
- // address 0, which we need for reinterpret operations.
- void ensureMinimalMemory() {
- MemoryUtils::ensureExists(getModule()->memory);
+ Name tempMemory = "__tempMemory__";
+
+ void ensureTempMemoryGlobal() {
+ // Ensure the existence of an imported global, __tempMemory__, which points to 8
+ // bytes of scratch memory we can use for roundtrip purposes.
+ if (!getModule()->getGlobalOrNull(tempMemory)) {
+ auto global = make_unique<Global>();
+ global->name = tempMemory;
+ global->type = i32;
+ global->mutable_ = false;
+ global->module = ENV;
+ global->base = tempMemory;
+ getModule()->addGlobal(global.release());
+ }
+ }
+
+ Expression* makeGetTempMemory() {
+ return builder->makeGetGlobal(tempMemory, i32);
}
void lowerTruncFloatToInt(Unary *curr) {
diff --git a/src/passes/RemoveNonJSOps.cpp b/src/passes/RemoveNonJSOps.cpp
index 342f59eba..a98189584 100644
--- a/src/passes/RemoveNonJSOps.cpp
+++ b/src/passes/RemoveNonJSOps.cpp
@@ -43,6 +43,7 @@ namespace wasm {
struct RemoveNonJSOpsPass : public WalkerPass<PostWalker<RemoveNonJSOpsPass>> {
std::unique_ptr<Builder> builder;
std::unordered_set<Name> neededIntrinsics;
+ std::set<std::pair<Name, Type>> neededImportedGlobals;
bool isFunctionParallel() override { return false; }
@@ -101,6 +102,21 @@ struct RemoveNonJSOpsPass : public WalkerPass<PostWalker<RemoveNonJSOpsPass>> {
// Intrinsics may use memory, so ensure the module has one.
MemoryUtils::ensureExists(module->memory);
+
+ // Add missing globals
+ for (auto& pair : neededImportedGlobals) {
+ auto name = pair.first;
+ auto type = pair.second;
+ if (!getModule()->getGlobalOrNull(name)) {
+ auto global = make_unique<Global>();
+ global->name = name;
+ global->type = type;
+ global->mutable_ = false;
+ global->module = ENV;
+ global->base = name;
+ module->addGlobal(global.release());
+ }
+ }
}
void addNeededFunctions(Module &m, Name name, std::set<Name> &needed) {
@@ -121,7 +137,7 @@ struct RemoveNonJSOpsPass : public WalkerPass<PostWalker<RemoveNonJSOpsPass>> {
PostWalker<RemoveNonJSOpsPass>::doWalkFunction(func);
}
- void visitLoad(Load *curr) {
+ void visitLoad(Load* curr) {
if (curr->align == 0 || curr->align >= curr->bytes) {
return;
}
@@ -143,7 +159,7 @@ struct RemoveNonJSOpsPass : public WalkerPass<PostWalker<RemoveNonJSOpsPass>> {
}
}
- void visitStore(Store *curr) {
+ void visitStore(Store* curr) {
if (curr->align == 0 || curr->align >= curr->bytes) {
return;
}
@@ -165,7 +181,7 @@ struct RemoveNonJSOpsPass : public WalkerPass<PostWalker<RemoveNonJSOpsPass>> {
}
}
- void visitBinary(Binary *curr) {
+ void visitBinary(Binary* curr) {
Name name;
switch (curr->op) {
case CopySignFloat32:
@@ -207,7 +223,7 @@ struct RemoveNonJSOpsPass : public WalkerPass<PostWalker<RemoveNonJSOpsPass>> {
replaceCurrent(builder->makeCall(name, {curr->left, curr->right}, curr->type));
}
- void rewriteCopysign(Binary *curr) {
+ void rewriteCopysign(Binary* curr) {
Literal signBit, otherBits;
UnaryOp int2float, float2int;
BinaryOp bitAnd, bitOr;
@@ -259,7 +275,7 @@ struct RemoveNonJSOpsPass : public WalkerPass<PostWalker<RemoveNonJSOpsPass>> {
);
}
- void visitUnary(Unary *curr) {
+ void visitUnary(Unary* curr) {
Name functionCall;
switch (curr->op) {
case NearestFloat32:
@@ -295,9 +311,13 @@ struct RemoveNonJSOpsPass : public WalkerPass<PostWalker<RemoveNonJSOpsPass>> {
neededIntrinsics.insert(functionCall);
replaceCurrent(builder->makeCall(functionCall, {curr->value}, curr->type));
}
+
+ void visitGetGlobal(GetGlobal* curr) {
+ neededImportedGlobals.insert(std::make_pair(curr->name, curr->type));
+ }
};
-Pass *createRemoveNonJSOpsPass() {
+Pass* createRemoveNonJSOpsPass() {
return new RemoveNonJSOpsPass();
}
diff --git a/src/passes/wasm-intrinsics.wast b/src/passes/wasm-intrinsics.wast
index 26687508d..a8ee5be0b 100644
--- a/src/passes/wasm-intrinsics.wast
+++ b/src/passes/wasm-intrinsics.wast
@@ -5,6 +5,13 @@
;; these pretty early so they can continue to be optimized by further passes
;; (aka inlining and whatnot)
;;
+;; LOCAL MODS done by hand afterwards:
+;; * Remove hardcoded address 1024 (apparently a free memory location rustc
+;; thinks is ok to use?); add a global __tempMemory__ which is used for that
+;; purpose.
+;; * Fix function type of __wasm_ctz_i64, which was wrong somehow,
+;; i32, i32 => i32 instead of i64 => i64
+;;
;; [1]: https://gist.github.com/alexcrichton/e7ea67bcdd17ce4b6254e66f77165690
(module
@@ -13,7 +20,9 @@
(type $2 (func (param f64) (result f64)))
(type $3 (func (param i32) (result i32)))
(type $4 (func (param i32 i32) (result i32)))
+ (type $5 (func (param i64) (result i64)))
(import "env" "memory" (memory $0 17))
+ (import "env" "__tempMemory__" (global $__tempMemory__ i32))
(export "__wasm_i64_sdiv" (func $__wasm_i64_sdiv))
(export "__wasm_i64_udiv" (func $__wasm_i64_udiv))
(export "__wasm_i64_srem" (func $__wasm_i64_srem))
@@ -128,7 +137,7 @@
)
)
(i64.load
- (i32.const 1024)
+ (global.get $__tempMemory__)
)
)
;; lowering of the i64.mul instruction, return $var0 * $var$1
@@ -192,7 +201,7 @@
(i32.const 32)
)
;; lowering of the i64.ctz instruction, counting the number of zeros in $var$0
- (func $__wasm_ctz_i64 (; 8 ;) (type $4) (param $var$0 i64) (result i64)
+ (func $__wasm_ctz_i64 (; 8 ;) (type $5) (param $var$0 i64) (result i64)
(if
(i32.eqz
(i64.eqz
@@ -571,7 +580,7 @@
)
)
(i64.store
- (i32.const 1024)
+ (global.get $__tempMemory__)
(i64.extend_i32_u
(i32.sub
(local.tee $var$2
@@ -633,7 +642,7 @@
)
)
(i64.store
- (i32.const 1024)
+ (global.get $__tempMemory__)
(i64.or
(i64.shl
(i64.extend_i32_u
@@ -714,7 +723,7 @@
(br $label$3)
)
(i64.store
- (i32.const 1024)
+ (global.get $__tempMemory__)
(i64.shl
(i64.extend_i32_u
(i32.sub
@@ -757,7 +766,7 @@
(br $label$2)
)
(i64.store
- (i32.const 1024)
+ (global.get $__tempMemory__)
(i64.extend_i32_u
(i32.and
(local.get $var$4)
@@ -889,7 +898,7 @@
)
)
(i64.store
- (i32.const 1024)
+ (global.get $__tempMemory__)
(local.get $var$5)
)
(return
@@ -903,7 +912,7 @@
)
)
(i64.store
- (i32.const 1024)
+ (global.get $__tempMemory__)
(local.get $var$0)
)
(local.set $var$0
diff --git a/src/wasm2js.h b/src/wasm2js.h
index 19c12a501..fab39267d 100644
--- a/src/wasm2js.h
+++ b/src/wasm2js.h
@@ -486,12 +486,16 @@ void Wasm2JSBuilder::addGlobalImport(Ref ast, Global* import) {
Ref theVar = ValueBuilder::makeVar();
ast->push_back(theVar);
Ref module = ValueBuilder::makeName(ENV); // TODO: handle nested module imports
+ Ref value = ValueBuilder::makeDot(
+ module,
+ fromName(import->base, NameScope::Top)
+ );
+ if (import->type == i32) {
+ value = makeAsmCoercion(value, ASM_INT);
+ }
ValueBuilder::appendToVar(theVar,
fromName(import->name, NameScope::Top),
- ValueBuilder::makeDot(
- module,
- fromName(import->base, NameScope::Top)
- )
+ value
);
}
@@ -2053,7 +2057,6 @@ void Wasm2JSGlue::emitPreES6() {
ImportInfo imports(wasm);
ModuleUtils::iterImportedGlobals(wasm, [&](Global* import) {
- Fatal() << "non-function imports aren't supported yet\n";
noteImport(import->module, import->base);
});
ModuleUtils::iterImportedFunctions(wasm, [&](Function* import) {
@@ -2074,23 +2077,20 @@ void Wasm2JSGlue::emitPost() {
void Wasm2JSGlue::emitPostEmscripten() {
emitMemory("wasmMemory.buffer", "writeSegment");
- out << "return asmFunc(\n"
- << " {\n"
- << " 'env': asmLibraryArg,\n"
- << " 'global': {\n"
- << " 'Int8Array': Int8Array,\n"
- << " 'Int16Array': Int16Array,\n"
- << " 'Int32Array': Int32Array,\n"
- << " 'Uint8Array': Uint8Array,\n"
- << " 'Uint16Array': Uint16Array,\n"
- << " 'Uint32Array': Uint32Array,\n"
- << " 'Float32Array': Float32Array,\n"
- << " 'Float64Array': Float64Array,\n"
- << " 'NaN': NaN,\n"
- << " 'Infinity': Infinity,\n"
- << " 'Math': Math\n"
- << " }\n"
+ out << "return asmFunc({\n"
+ << " 'Int8Array': Int8Array,\n"
+ << " 'Int16Array': Int16Array,\n"
+ << " 'Int32Array': Int32Array,\n"
+ << " 'Uint8Array': Uint8Array,\n"
+ << " 'Uint16Array': Uint16Array,\n"
+ << " 'Uint32Array': Uint32Array,\n"
+ << " 'Float32Array': Float32Array,\n"
+ << " 'Float64Array': Float64Array,\n"
+ << " 'NaN': NaN,\n"
+ << " 'Infinity': Infinity,\n"
+ << " 'Math': Math\n"
<< " },\n"
+ << " asmLibraryArg,\n"
<< " wasmMemory.buffer\n"
<< ")"
<< "\n"
diff --git a/test/binaryen.js/emit_asmjs.js.txt b/test/binaryen.js/emit_asmjs.js.txt
index 5d959fbdc..e16bf2fca 100644
--- a/test/binaryen.js/emit_asmjs.js.txt
+++ b/test/binaryen.js/emit_asmjs.js.txt
@@ -1,3 +1,4 @@
+
function asmFunc(global, env, buffer) {
"use asm";
var HEAP8 = new global.Int8Array(buffer);
diff --git a/test/passes/remove-non-js-ops.txt b/test/passes/remove-non-js-ops.txt
index 59977b859..711c37991 100644
--- a/test/passes/remove-non-js-ops.txt
+++ b/test/passes/remove-non-js-ops.txt
@@ -6,6 +6,7 @@
(type $4 (func (param f64) (result f64)))
(type $5 (func (param f32) (result f32)))
(type $6 (func (param i32) (result i32)))
+ (import "env" "__tempMemory__" (global $__tempMemory__ i32))
(memory $0 1)
(func $copysign64 (; 0 ;) (type $0) (param $0 f64) (param $1 f64) (result f64)
(f64.reinterpret_i64
@@ -399,7 +400,7 @@
)
)
(i64.store
- (i32.const 1024)
+ (global.get $__tempMemory__)
(i64.extend_i32_u
(i32.sub
(local.tee $var$2
@@ -461,7 +462,7 @@
)
)
(i64.store
- (i32.const 1024)
+ (global.get $__tempMemory__)
(i64.or
(i64.shl
(i64.extend_i32_u
@@ -542,7 +543,7 @@
(br $label$3)
)
(i64.store
- (i32.const 1024)
+ (global.get $__tempMemory__)
(i64.shl
(i64.extend_i32_u
(i32.sub
@@ -585,7 +586,7 @@
(br $label$2)
)
(i64.store
- (i32.const 1024)
+ (global.get $__tempMemory__)
(i64.extend_i32_u
(i32.and
(local.get $var$4)
@@ -717,7 +718,7 @@
)
)
(i64.store
- (i32.const 1024)
+ (global.get $__tempMemory__)
(local.get $var$5)
)
(return
@@ -731,7 +732,7 @@
)
)
(i64.store
- (i32.const 1024)
+ (global.get $__tempMemory__)
(local.get $var$0)
)
(local.set $var$0
@@ -792,7 +793,7 @@
)
)
(i64.load
- (i32.const 1024)
+ (global.get $__tempMemory__)
)
)
(func $__wasm_nearest_f32 (; 27 ;) (param $var$0 f32) (result f32)
diff --git a/test/wasm2js/br.2asm.js b/test/wasm2js/br.2asm.js
index 62cafe37c..ba323f2d6 100644
--- a/test/wasm2js/br.2asm.js
+++ b/test/wasm2js/br.2asm.js
@@ -722,3 +722,38 @@ export const nested_br_if_value = retasmFunc.nested_br_if_value;
export const nested_br_if_value_cond = retasmFunc.nested_br_if_value_cond;
export const nested_br_table_value = retasmFunc.nested_br_table_value;
export const nested_br_table_value_index = retasmFunc.nested_br_table_value_index;
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function type_arg_num_vs_void() {
+
+ }
+
+ return {
+
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
diff --git a/test/wasm2js/comments.2asm.js b/test/wasm2js/comments.2asm.js
index d515f48f4..243239f6c 100644
--- a/test/wasm2js/comments.2asm.js
+++ b/test/wasm2js/comments.2asm.js
@@ -29,3 +29,34 @@ function asmFunc(global, env, buffer) {
const memasmFunc = new ArrayBuffer(65536);
const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var i64toi32_i32$HIGH_BITS = 0;
+ return {
+
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
diff --git a/test/wasm2js/conversions-modified.2asm.js b/test/wasm2js/conversions-modified.2asm.js
index a9dd9f0cb..3d6044a01 100644
--- a/test/wasm2js/conversions-modified.2asm.js
+++ b/test/wasm2js/conversions-modified.2asm.js
@@ -1,3 +1,4 @@
+import { __tempMemory__ } from 'env';
function asmFunc(global, env, buffer) {
"use asm";
@@ -21,6 +22,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
+ var __tempMemory__ = env.__tempMemory__ | 0;
var i64toi32_i32$HIGH_BITS = 0;
function $0(x) {
x = x | 0;
@@ -193,13 +195,13 @@ function asmFunc(global, env, buffer) {
x$hi = x$hi | 0;
var i64toi32_i32$0 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0;
i64toi32_i32$0 = x$hi;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = x;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$0;
HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1;
- return +(+HEAPF64[0 >> 3]);
+ return +(+HEAPF64[__tempMemory__ >> 3]);
}
function $23(x) {
@@ -210,11 +212,11 @@ function asmFunc(global, env, buffer) {
function $24(x) {
x = +x;
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = x;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
diff --git a/test/wasm2js/emscripten.2asm.js b/test/wasm2js/emscripten.2asm.js
index 94f961c95..63e5a5923 100644
--- a/test/wasm2js/emscripten.2asm.js
+++ b/test/wasm2js/emscripten.2asm.js
@@ -73,23 +73,20 @@ const writeSegment = (
)(wasmMemory.buffer);
writeSegment(1024, "aGVsbG8sIHdvcmxkIQoAAJwMAAAtKyAgIDBYMHgAKG51bGwpAAAAAAAAAAAAAAAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAETCQsLAAAJBgsAAAsABhEAAAAREREAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAANAAAABA0AAAAACQ4AAAAAAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAASEhIAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAKAAAAAAoAAAAACQsAAAAAAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGLTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYAbmFuAE5BTgAuAA==");
writeSegment(1600, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=");
-return asmFunc(
- {
- 'env': asmLibraryArg,
- 'global': {
- 'Int8Array': Int8Array,
- 'Int16Array': Int16Array,
- 'Int32Array': Int32Array,
- 'Uint8Array': Uint8Array,
- 'Uint16Array': Uint16Array,
- 'Uint32Array': Uint32Array,
- 'Float32Array': Float32Array,
- 'Float64Array': Float64Array,
- 'NaN': NaN,
- 'Infinity': Infinity,
- 'Math': Math
- }
+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
)
diff --git a/test/wasm2js/endianness.2asm.js b/test/wasm2js/endianness.2asm.js
index 8d63eeac2..88619536f 100644
--- a/test/wasm2js/endianness.2asm.js
+++ b/test/wasm2js/endianness.2asm.js
@@ -1,3 +1,4 @@
+import { __tempMemory__ } from 'env';
function asmFunc(global, env, buffer) {
"use asm";
@@ -21,6 +22,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
+ var __tempMemory__ = env.__tempMemory__ | 0;
var i64toi32_i32$HIGH_BITS = 0;
function i16_store_little(address, value) {
address = address | 0;
@@ -190,11 +192,11 @@ function asmFunc(global, env, buffer) {
function $15(value) {
value = +value;
var i64toi32_i32$0 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = value;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64_store_little(0 | 0, HEAP32[0 >> 2] | 0 | 0, i64toi32_i32$0 | 0);
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64_store_little(0 | 0, HEAP32[__tempMemory__ >> 2] | 0 | 0, i64toi32_i32$0 | 0);
return +(+HEAPF64[0 >> 3]);
}
@@ -279,13 +281,13 @@ function asmFunc(global, env, buffer) {
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
i64toi32_i32$0 = i64_load_little(0 | 0) | 0;
i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$1;
HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1;
- return +(+HEAPF64[0 >> 3]);
+ return +(+HEAPF64[__tempMemory__ >> 3]);
}
return {
diff --git a/test/wasm2js/f64.2asm.js b/test/wasm2js/f64.2asm.js
index 83aad0565..9ede1bfb5 100644
--- a/test/wasm2js/f64.2asm.js
+++ b/test/wasm2js/f64.2asm.js
@@ -1,3 +1,4 @@
+import { __tempMemory__ } from 'env';
function asmFunc(global, env, buffer) {
"use asm";
@@ -21,6 +22,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
+ var __tempMemory__ = env.__tempMemory__ | 0;
var i64toi32_i32$HIGH_BITS = 0;
function $0(x, y) {
x = +x;
@@ -97,21 +99,21 @@ function asmFunc(global, env, buffer) {
x = +x;
y = +y;
var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $4_1 = 0, $4$hi = 0, $7_1 = 0, $7$hi = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0, wasm2js_i32$1 = 0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = x;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$2 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$2 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$1 = 2147483647;
i64toi32_i32$3 = 4294967295;
i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0;
$4_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0;
$4$hi = i64toi32_i32$1;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = y;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$1 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$0 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$2 = 2147483648;
i64toi32_i32$3 = 0;
i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0;
@@ -122,13 +124,13 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$0 = $7$hi;
i64toi32_i32$3 = $7_1;
i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$1 | i64toi32_i32$3 | 0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$0;
HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1;
- return +(+HEAPF64[0 >> 3]);
+ return +(+HEAPF64[__tempMemory__ >> 3]);
}
function __wasm_nearest_f64(var$0) {
diff --git a/test/wasm2js/float-ops.2asm.js b/test/wasm2js/float-ops.2asm.js
index 7bbf81de9..06bdd9b21 100644
--- a/test/wasm2js/float-ops.2asm.js
+++ b/test/wasm2js/float-ops.2asm.js
@@ -1,3 +1,4 @@
+import { __tempMemory__ } from 'env';
function asmFunc(global, env, buffer) {
"use asm";
@@ -21,6 +22,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
+ var __tempMemory__ = env.__tempMemory__ | 0;
var i64toi32_i32$HIGH_BITS = 0;
function dummy() {
@@ -214,21 +216,21 @@ function asmFunc(global, env, buffer) {
$0 = +$0;
$1_1 = +$1_1;
var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $4_1 = 0, $4$hi = 0, $7_1 = 0, $7$hi = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0, wasm2js_i32$1 = 0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = $0;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$2 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$2 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$1 = 2147483647;
i64toi32_i32$3 = 4294967295;
i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0;
$4_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0;
$4$hi = i64toi32_i32$1;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = $1_1;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$1 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$0 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$2 = 2147483648;
i64toi32_i32$3 = 0;
i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0;
@@ -239,13 +241,13 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$0 = $7$hi;
i64toi32_i32$3 = $7_1;
i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$1 | i64toi32_i32$3 | 0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$0;
HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1;
- return +(+HEAPF64[0 >> 3]);
+ return +(+HEAPF64[__tempMemory__ >> 3]);
}
function copysign32($0, $1_1) {
diff --git a/test/wasm2js/float_literals-modified.2asm.js b/test/wasm2js/float_literals-modified.2asm.js
index 4bff08e88..c93840e9c 100644
--- a/test/wasm2js/float_literals-modified.2asm.js
+++ b/test/wasm2js/float_literals-modified.2asm.js
@@ -1,3 +1,4 @@
+import { __tempMemory__ } from 'env';
function asmFunc(global, env, buffer) {
"use asm";
@@ -21,6 +22,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
+ var __tempMemory__ = env.__tempMemory__ | 0;
var i64toi32_i32$HIGH_BITS = 0;
function $0() {
return (HEAPF32[0] = Math_fround(nan), HEAP32[0] | 0) | 0;
@@ -144,330 +146,330 @@ function asmFunc(global, env, buffer) {
function $30() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = nan;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $31() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = nan;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $32() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = -nan;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $33() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = nan;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $34() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = nan;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $35() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = -nan;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $36() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = nan;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $37() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = nan;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $38() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = -nan;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $39() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = infinity;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $40() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = infinity;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $41() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = -infinity;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $42() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 0.0;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $43() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 0.0;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $44() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = -0.0;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $45() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 6.283185307179586;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $46() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 5.0e-324;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $47() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 2.2250738585072014e-308;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $48() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 2.225073858507201e-308;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $49() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 1797693134862315708145274.0e284;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $50() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 1267650600228229401496703.0e6;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $51() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 0.0;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $52() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 0.0;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $53() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = -0.0;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $54() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 6.283185307179586;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $55() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 5.0e-324;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $56() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 2.2250738585072014e-308;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $57() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 2.225073858507201e-308;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $58() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 1797693134862315708145274.0e284;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
function $59() {
var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 1.e+100;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$1 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
return i64toi32_i32$1 | 0;
}
diff --git a/test/wasm2js/float_misc.2asm.js b/test/wasm2js/float_misc.2asm.js
index c654b4060..6eae19361 100644
--- a/test/wasm2js/float_misc.2asm.js
+++ b/test/wasm2js/float_misc.2asm.js
@@ -1,3 +1,4 @@
+import { __tempMemory__ } from 'env';
function asmFunc(global, env, buffer) {
"use asm";
@@ -21,6 +22,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
+ var __tempMemory__ = env.__tempMemory__ | 0;
var i64toi32_i32$HIGH_BITS = 0;
function $0(x, y) {
x = Math_fround(x);
@@ -142,21 +144,21 @@ function asmFunc(global, env, buffer) {
x = +x;
y = +y;
var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $4_1 = 0, $4$hi = 0, $7_1 = 0, $7$hi = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0, wasm2js_i32$1 = 0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = x;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$2 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$2 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$1 = 2147483647;
i64toi32_i32$3 = 4294967295;
i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0;
$4_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0;
$4$hi = i64toi32_i32$1;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = y;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$1 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$0 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$2 = 2147483648;
i64toi32_i32$3 = 0;
i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0;
@@ -167,13 +169,13 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$0 = $7$hi;
i64toi32_i32$3 = $7_1;
i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$1 | i64toi32_i32$3 | 0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$0;
HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1;
- return +(+HEAPF64[0 >> 3]);
+ return +(+HEAPF64[__tempMemory__ >> 3]);
}
function $22(x) {
diff --git a/test/wasm2js/func_ptrs.2asm.js b/test/wasm2js/func_ptrs.2asm.js
index 6841925db..53f330061 100644
--- a/test/wasm2js/func_ptrs.2asm.js
+++ b/test/wasm2js/func_ptrs.2asm.js
@@ -65,3 +65,123 @@ export const one = retasmFunc.one;
export const two = retasmFunc.two;
export const three = retasmFunc.three;
export const four = retasmFunc.four;
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function t1() {
+ return 1 | 0;
+ }
+
+ function t2() {
+ return 2 | 0;
+ }
+
+ function t3() {
+ return 3 | 0;
+ }
+
+ function u1() {
+ return 4 | 0;
+ }
+
+ function u2() {
+ return 5 | 0;
+ }
+
+ function $5(i) {
+ i = i | 0;
+ var wasm2js_i32$0 = 0, wasm2js_i32$1 = 0;
+ wasm2js_i32$1 = i;
+ wasm2js_i32$0 = FUNCTION_TABLE_i[wasm2js_i32$1 & 7]() | 0;
+ return wasm2js_i32$0 | 0;
+ }
+
+ function $6(i) {
+ i = i | 0;
+ var wasm2js_i32$0 = 0, wasm2js_i32$1 = 0;
+ wasm2js_i32$1 = i;
+ wasm2js_i32$0 = FUNCTION_TABLE_i[wasm2js_i32$1 & 7]() | 0;
+ return wasm2js_i32$0 | 0;
+ }
+
+ var FUNCTION_TABLE_i = [t1, t2, t3, u1, u2, t1, t3, t1];
+ return {
+ callt: $5,
+ callu: $6
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const callt = retasmFunc.callt;
+export const callu = retasmFunc.callu;
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function t1() {
+ return 1 | 0;
+ }
+
+ function t2() {
+ return 2 | 0;
+ }
+
+ function $2(i) {
+ i = i | 0;
+ var wasm2js_i32$0 = 0, wasm2js_i32$1 = 0;
+ wasm2js_i32$1 = i;
+ wasm2js_i32$0 = FUNCTION_TABLE_i[wasm2js_i32$1 & 1]() | 0;
+ return wasm2js_i32$0 | 0;
+ }
+
+ var FUNCTION_TABLE_i = [t1, t2];
+ return {
+ callt: $2
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const callt = retasmFunc.callt;
diff --git a/test/wasm2js/i64.2asm.js b/test/wasm2js/i64.2asm.js
index 4352850ee..7f4bfbe09 100644
--- a/test/wasm2js/i64.2asm.js
+++ b/test/wasm2js/i64.2asm.js
@@ -1,3 +1,4 @@
+import { __tempMemory__ } from 'env';
function asmFunc(global, env, buffer) {
"use asm";
@@ -21,6 +22,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
+ var __tempMemory__ = env.__tempMemory__ | 0;
var i64toi32_i32$HIGH_BITS = 0;
function $0(x, x$hi, y, y$hi) {
x = x | 0;
@@ -779,7 +781,7 @@ function asmFunc(global, env, buffer) {
var$0$hi = var$0$hi | 0;
var$1 = var$1 | 0;
var$1$hi = var$1$hi | 0;
- var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, var$8$hi = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, var$7$hi = 0, $50 = 0, $63$hi = 0, $65 = 0, $65$hi = 0, $66 = 0, $120$hi = 0, $129$hi = 0, $134$hi = 0, var$8 = 0, $140 = 0, $140$hi = 0, $142$hi = 0, $144 = 0, $144$hi = 0, $151 = 0, $151$hi = 0, $154$hi = 0, var$7 = 0, $165$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
label$1 : {
label$2 : {
label$3 : {
@@ -798,12 +800,12 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$1 = 0;
- $38 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$2 = $38;
+ var$2 = $40;
if (var$2) block : {
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
@@ -815,12 +817,12 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$2 = 0;
- $39 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $39;
+ var$4 = $41;
if ((var$4 | 0) == (0 | 0)) break label$9;
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
if (var$2 >>> 0 <= 31 >>> 0) break label$8;
@@ -837,7 +839,7 @@ function asmFunc(global, env, buffer) {
var$3 = var$1;
var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = 1024;
+ i64toi32_i32$2 = __tempMemory__;
wasm2js_i32$0 = i64toi32_i32$2;
wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
@@ -856,17 +858,18 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = 0;
- $40 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
- var$3 = $40;
+ var$3 = $42;
i64toi32_i32$1 = var$0$hi;
if ((var$0 | 0) == (0 | 0)) break label$7;
if ((var$3 | 0) == (0 | 0)) break label$6;
var$4 = var$3 + 4294967295 | 0;
if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
i64toi32_i32$1 = 0;
i64toi32_i32$2 = var$4 & var$2 | 0;
i64toi32_i32$3 = 0;
@@ -874,28 +877,28 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $41 = 0;
+ $43 = 0;
} else {
i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
}
- $63$hi = i64toi32_i32$3;
+ $65$hi = i64toi32_i32$3;
i64toi32_i32$3 = var$0$hi;
i64toi32_i32$1 = var$0;
i64toi32_i32$2 = 0;
i64toi32_i32$0 = 4294967295;
i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $41;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- $66 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- i64toi32_i32$3 = 1024;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
wasm2js_i32$0 = i64toi32_i32$3;
- wasm2js_i32$1 = $66;
+ wasm2js_i32$1 = $68;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
wasm2js_i32$0 = i64toi32_i32$3;
wasm2js_i32$1 = i64toi32_i32$1;
@@ -916,6 +919,7 @@ function asmFunc(global, env, buffer) {
var$2 = var$2 + 1 | 0;
break label$3;
};
+ $93 = __tempMemory__;
var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
i64toi32_i32$3 = 0;
i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
@@ -924,14 +928,14 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $42 = 0;
+ $44 = 0;
} else {
i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $42 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
}
- i64toi32_i32$2 = 1024;
+ i64toi32_i32$2 = $93;
wasm2js_i32$0 = i64toi32_i32$2;
- wasm2js_i32$1 = $42;
+ wasm2js_i32$1 = $44;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
wasm2js_i32$0 = i64toi32_i32$2;
wasm2js_i32$1 = i64toi32_i32$1;
@@ -947,7 +951,7 @@ function asmFunc(global, env, buffer) {
};
i64toi32_i32$2 = var$0$hi;
i64toi32_i32$2 = 0;
- i64toi32_i32$1 = 1024;
+ i64toi32_i32$1 = __tempMemory__;
wasm2js_i32$0 = i64toi32_i32$1;
wasm2js_i32$1 = var$4 & var$0 | 0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
@@ -957,20 +961,20 @@ function asmFunc(global, env, buffer) {
if ((var$3 | 0) == (1 | 0)) break label$1;
i64toi32_i32$2 = var$0$hi;
i64toi32_i32$2 = 0;
- $120$hi = i64toi32_i32$2;
+ $124$hi = i64toi32_i32$2;
i64toi32_i32$2 = var$0$hi;
i64toi32_i32$3 = var$0;
- i64toi32_i32$1 = $120$hi;
+ i64toi32_i32$1 = $124$hi;
i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = 0;
- $43 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $43 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
- i64toi32_i32$3 = $43;
+ i64toi32_i32$3 = $45;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
return i64toi32_i32$3 | 0;
};
@@ -979,37 +983,37 @@ function asmFunc(global, env, buffer) {
};
i64toi32_i32$3 = var$0$hi;
i64toi32_i32$3 = 0;
- $129$hi = i64toi32_i32$3;
+ $133$hi = i64toi32_i32$3;
i64toi32_i32$3 = var$0$hi;
i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = $129$hi;
+ i64toi32_i32$1 = $133$hi;
i64toi32_i32$0 = var$2 & 63 | 0;
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = 0;
- $44 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
- $44 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$5 = $44;
+ var$5 = $46;
var$5$hi = i64toi32_i32$1;
i64toi32_i32$1 = var$0$hi;
i64toi32_i32$1 = 0;
- $134$hi = i64toi32_i32$1;
+ $138$hi = i64toi32_i32$1;
i64toi32_i32$1 = var$0$hi;
i64toi32_i32$3 = var$0;
- i64toi32_i32$2 = $134$hi;
+ i64toi32_i32$2 = $138$hi;
i64toi32_i32$0 = var$3 & 63 | 0;
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
- $45 = 0;
+ $47 = 0;
} else {
i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $45 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
}
- var$0 = $45;
+ var$0 = $47;
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) block3 : {
@@ -1030,13 +1034,13 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $46 = 0;
+ $48 = 0;
} else {
i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $46 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
}
- $140 = $46;
- $140$hi = i64toi32_i32$1;
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
i64toi32_i32$1 = var$0$hi;
i64toi32_i32$5 = var$0;
i64toi32_i32$2 = 0;
@@ -1044,21 +1048,21 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = 0;
- $47 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
} else {
i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $47 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
}
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $47;
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
i64toi32_i32$5 = var$8$hi;
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$5 = var$8$hi;
@@ -1075,12 +1079,12 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $48 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
} else {
i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $48 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
}
- var$6 = $48;
+ var$6 = $50;
var$6$hi = i64toi32_i32$2;
i64toi32_i32$2 = var$1$hi;
i64toi32_i32$2 = var$6$hi;
@@ -1088,12 +1092,12 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$5 = var$1$hi;
i64toi32_i32$0 = var$1;
i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
@@ -1107,15 +1111,15 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $49 = 0;
+ $51 = 0;
} else {
i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
}
- $154$hi = i64toi32_i32$2;
+ $158$hi = i64toi32_i32$2;
i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $49;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
i64toi32_i32$5 = var$7$hi;
i64toi32_i32$0 = var$7;
i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
@@ -1138,7 +1142,7 @@ function asmFunc(global, env, buffer) {
};
};
i64toi32_i32$3 = var$5$hi;
- i64toi32_i32$2 = 1024;
+ i64toi32_i32$2 = __tempMemory__;
wasm2js_i32$0 = i64toi32_i32$2;
wasm2js_i32$1 = var$5;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
@@ -1152,15 +1156,15 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $50 = 0;
+ $52 = 0;
} else {
i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $50 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
}
- $165$hi = i64toi32_i32$2;
+ $170$hi = i64toi32_i32$2;
i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$2 = $165$hi;
- i64toi32_i32$3 = $50;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
i64toi32_i32$5 = var$6$hi;
i64toi32_i32$0 = var$6;
i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
@@ -1169,7 +1173,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3 | 0;
};
i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = 1024;
+ i64toi32_i32$5 = __tempMemory__;
wasm2js_i32$0 = i64toi32_i32$5;
wasm2js_i32$1 = var$0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
@@ -1304,7 +1308,7 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$1 = var$1$hi;
i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
- i64toi32_i32$2 = 1024;
+ i64toi32_i32$2 = __tempMemory__;
i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0;
i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24);
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
diff --git a/test/wasm2js/int_exprs.2asm.js b/test/wasm2js/int_exprs.2asm.js
index e6a010a68..d9f08eaee 100644
--- a/test/wasm2js/int_exprs.2asm.js
+++ b/test/wasm2js/int_exprs.2asm.js
@@ -115,3 +115,7430 @@ export const i32_no_fold_cmp_s_offset = retasmFunc.i32_no_fold_cmp_s_offset;
export const i32_no_fold_cmp_u_offset = retasmFunc.i32_no_fold_cmp_u_offset;
export const i64_no_fold_cmp_s_offset = retasmFunc.i64_no_fold_cmp_s_offset;
export const i64_no_fold_cmp_u_offset = retasmFunc.i64_no_fold_cmp_u_offset;
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = x;
+ i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ return {
+ i64_no_fold_wrap_extend_s: $0
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i64_no_fold_wrap_extend_s = retasmFunc.i64_no_fold_wrap_extend_s;
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return x | 0;
+ }
+
+ return {
+ i64_no_fold_wrap_extend_u: $0
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i64_no_fold_wrap_extend_u = retasmFunc.i64_no_fold_wrap_extend_u;
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x << 1 | 0) >> 1 | 0 | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return (x << 1 | 0) >>> 1 | 0 | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $7 = 0, $8 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$2 = x;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 1;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $7 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
+ $7 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$0 = $7;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 1;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$1 >> 31 | 0;
+ $8 = i64toi32_i32$1 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >> i64toi32_i32$4 | 0;
+ $8 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$0 = $8;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$2;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $7 = 0, $8 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$2 = x;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 1;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $7 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
+ $7 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$0 = $7;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 1;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $8 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $8 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$0 = $8;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$2;
+ return i64toi32_i32$0 | 0;
+ }
+
+ return {
+ i32_no_fold_shl_shr_s: $0,
+ i32_no_fold_shl_shr_u: $1,
+ i64_no_fold_shl_shr_s: $2,
+ i64_no_fold_shl_shr_u: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_no_fold_shl_shr_s = retasmFunc.i32_no_fold_shl_shr_s;
+export const i32_no_fold_shl_shr_u = retasmFunc.i32_no_fold_shl_shr_u;
+export const i64_no_fold_shl_shr_s = retasmFunc.i64_no_fold_shl_shr_s;
+export const i64_no_fold_shl_shr_u = retasmFunc.i64_no_fold_shl_shr_u;
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x >> 1 | 0) << 1 | 0 | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return (x >>> 1 | 0) << 1 | 0 | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, $7 = 0, $8 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$2 = x;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 1;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $7 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $7 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$0 = $7;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 1;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0;
+ $8 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $8 = i64toi32_i32$0 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$0 = $8;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$2;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, $7 = 0, $8 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$2 = x;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 1;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $7 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $7 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$0 = $7;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 1;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0;
+ $8 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $8 = i64toi32_i32$0 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$0 = $8;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$2;
+ return i64toi32_i32$0 | 0;
+ }
+
+ return {
+ i32_no_fold_shr_s_shl: $0,
+ i32_no_fold_shr_u_shl: $1,
+ i64_no_fold_shr_s_shl: $2,
+ i64_no_fold_shr_u_shl: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_no_fold_shr_s_shl = retasmFunc.i32_no_fold_shr_s_shl;
+export const i32_no_fold_shr_u_shl = retasmFunc.i32_no_fold_shr_u_shl;
+export const i64_no_fold_shr_s_shl = retasmFunc.i64_no_fold_shr_s_shl;
+export const i64_no_fold_shr_u_shl = retasmFunc.i64_no_fold_shr_u_shl;
+import { __tempMemory__ } from 'env';
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var __tempMemory__ = env.__tempMemory__ | 0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return Math_imul((x | 0) / (6 | 0) | 0, 6) | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return Math_imul((x >>> 0) / (6 >>> 0) | 0, 6) | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $4 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_sdiv(x | 0, i64toi32_i32$0 | 0, 6 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ $4 = i64toi32_i32$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_mul($4 | 0, i64toi32_i32$0 | 0, 6 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $4 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_udiv(x | 0, i64toi32_i32$0 | 0, 6 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ $4 = i64toi32_i32$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_mul($4 | 0, i64toi32_i32$0 | 0, 6 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, var$2 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, var$3 = 0, var$4 = 0, var$5 = 0, $21 = 0, $22 = 0, var$6 = 0, $24 = 0, $17 = 0, $18 = 0, $23 = 0, $29 = 0, $45 = 0, $56$hi = 0, $62$hi = 0;
+ i64toi32_i32$0 = var$1$hi;
+ var$2 = var$1;
+ var$4 = var$2 >>> 16 | 0;
+ i64toi32_i32$0 = var$0$hi;
+ var$3 = var$0;
+ var$5 = var$3 >>> 16 | 0;
+ $17 = Math_imul(var$4, var$5);
+ $18 = var$2;
+ i64toi32_i32$2 = var$3;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $21 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ $23 = $17 + Math_imul($18, $21) | 0;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $22 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $22 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ $29 = $23 + Math_imul($22, var$3) | 0;
+ var$2 = var$2 & 65535 | 0;
+ var$3 = var$3 & 65535 | 0;
+ var$6 = Math_imul(var$2, var$3);
+ var$2 = (var$6 >>> 16 | 0) + Math_imul(var$2, var$5) | 0;
+ $45 = $29 + (var$2 >>> 16 | 0) | 0;
+ var$2 = (var$2 & 65535 | 0) + Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $45 + (var$2 >>> 16 | 0) | 0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $24 = 0;
+ } else {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $24 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ $56$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ $62$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $56$hi;
+ i64toi32_i32$2 = $24;
+ i64toi32_i32$1 = $62$hi;
+ i64toi32_i32$3 = var$2 << 16 | 0 | (var$6 & 65535 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ i64toi32_i32$2 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, $21 = 0, $22 = 0, $23 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17 = 0, $17$hi = 0, $23$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $21 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $21;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $22 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $22 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$2 = $22;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$5 = var$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_udiv($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17 = i64toi32_i32$1;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$1 >> 31 | 0;
+ $23 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ $23 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$5 | 0) | 0;
+ }
+ var$0 = $23;
+ var$0$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $17$hi;
+ i64toi32_i32$1 = $17;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$4 | 0;
+ $23$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = $23$hi;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$0 = i64toi32_i32$4 - i64toi32_i32$0 | 0;
+ i64toi32_i32$2 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $40;
+ if (var$2) block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if ((var$3 | 0) == (0 | 0)) break label$11;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $41;
+ if ((var$4 | 0) == (0 | 0)) break label$9;
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) break label$8;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $42;
+ i64toi32_i32$1 = var$0$hi;
+ if ((var$0 | 0) == (0 | 0)) break label$7;
+ if ((var$3 | 0) == (0 | 0)) break label$6;
+ var$4 = var$3 + 4294967295 | 0;
+ if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $65$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = $68;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ };
+ var$4 = var$3 + 4294967295 | 0;
+ if ((var$4 & var$3 | 0 | 0) == (0 | 0)) break label$5;
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ };
+ $93 = __tempMemory__;
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$2 = $93;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = $44;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) break label$4;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = var$4 & var$0 | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = i64toi32_i32$2;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ if ((var$3 | 0) == (1 | 0)) break label$1;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $124$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $124$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $45;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $133$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $133$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $46;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $138$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $138$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $47;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = 4294967295;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : do {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $50;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $158$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + 4294967295 | 0;
+ if (var$2) continue label$15;
+ break label$15;
+ } while (1);
+ break label$13;
+ };
+ };
+ i64toi32_i32$3 = var$5$hi;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$5;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $170$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = var$0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_mul(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_sdiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_udiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) return 31 - Math_clz32((var$0 + 4294967295 | 0) ^ var$0 | 0) | 0 | 0;
+ return 32 | 0;
+ }
+
+ return {
+ i32_no_fold_div_s_mul: $0,
+ i32_no_fold_div_u_mul: $1,
+ i64_no_fold_div_s_mul: $2,
+ i64_no_fold_div_u_mul: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_no_fold_div_s_mul = retasmFunc.i32_no_fold_div_s_mul;
+export const i32_no_fold_div_u_mul = retasmFunc.i32_no_fold_div_u_mul;
+export const i64_no_fold_div_s_mul = retasmFunc.i64_no_fold_div_s_mul;
+export const i64_no_fold_div_u_mul = retasmFunc.i64_no_fold_div_u_mul;
+import { __tempMemory__ } from 'env';
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var __tempMemory__ = env.__tempMemory__ | 0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (Math_imul(x, 6) | 0) / (6 | 0) | 0 | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return (Math_imul(x, 6) >>> 0) / (6 >>> 0) | 0 | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $4 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_mul(x | 0, i64toi32_i32$0 | 0, 6 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ $4 = i64toi32_i32$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_sdiv($4 | 0, i64toi32_i32$0 | 0, 6 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $4 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_mul(x | 0, i64toi32_i32$0 | 0, 6 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ $4 = i64toi32_i32$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_udiv($4 | 0, i64toi32_i32$0 | 0, 6 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, var$2 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, var$3 = 0, var$4 = 0, var$5 = 0, $21 = 0, $22 = 0, var$6 = 0, $24 = 0, $17 = 0, $18 = 0, $23 = 0, $29 = 0, $45 = 0, $56$hi = 0, $62$hi = 0;
+ i64toi32_i32$0 = var$1$hi;
+ var$2 = var$1;
+ var$4 = var$2 >>> 16 | 0;
+ i64toi32_i32$0 = var$0$hi;
+ var$3 = var$0;
+ var$5 = var$3 >>> 16 | 0;
+ $17 = Math_imul(var$4, var$5);
+ $18 = var$2;
+ i64toi32_i32$2 = var$3;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $21 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ $23 = $17 + Math_imul($18, $21) | 0;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $22 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $22 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ $29 = $23 + Math_imul($22, var$3) | 0;
+ var$2 = var$2 & 65535 | 0;
+ var$3 = var$3 & 65535 | 0;
+ var$6 = Math_imul(var$2, var$3);
+ var$2 = (var$6 >>> 16 | 0) + Math_imul(var$2, var$5) | 0;
+ $45 = $29 + (var$2 >>> 16 | 0) | 0;
+ var$2 = (var$2 & 65535 | 0) + Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = $45 + (var$2 >>> 16 | 0) | 0;
+ i64toi32_i32$0 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $24 = 0;
+ } else {
+ i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
+ $24 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ }
+ $56$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = 0;
+ $62$hi = i64toi32_i32$0;
+ i64toi32_i32$0 = $56$hi;
+ i64toi32_i32$2 = $24;
+ i64toi32_i32$1 = $62$hi;
+ i64toi32_i32$3 = var$2 << 16 | 0 | (var$6 & 65535 | 0) | 0;
+ i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
+ i64toi32_i32$2 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, $21 = 0, $22 = 0, $23 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17 = 0, $17$hi = 0, $23$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $21 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $21;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $22 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $22 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$2 = $22;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$5 = var$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_udiv($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17 = i64toi32_i32$1;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$1 >> 31 | 0;
+ $23 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ $23 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$5 | 0) | 0;
+ }
+ var$0 = $23;
+ var$0$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $17$hi;
+ i64toi32_i32$1 = $17;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$4 | 0;
+ $23$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = $23$hi;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$0 = i64toi32_i32$4 - i64toi32_i32$0 | 0;
+ i64toi32_i32$2 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $40;
+ if (var$2) block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if ((var$3 | 0) == (0 | 0)) break label$11;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $41;
+ if ((var$4 | 0) == (0 | 0)) break label$9;
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) break label$8;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $42;
+ i64toi32_i32$1 = var$0$hi;
+ if ((var$0 | 0) == (0 | 0)) break label$7;
+ if ((var$3 | 0) == (0 | 0)) break label$6;
+ var$4 = var$3 + 4294967295 | 0;
+ if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $65$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = $68;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ };
+ var$4 = var$3 + 4294967295 | 0;
+ if ((var$4 & var$3 | 0 | 0) == (0 | 0)) break label$5;
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ };
+ $93 = __tempMemory__;
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$2 = $93;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = $44;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) break label$4;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = var$4 & var$0 | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = i64toi32_i32$2;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ if ((var$3 | 0) == (1 | 0)) break label$1;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $124$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $124$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $45;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $133$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $133$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $46;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $138$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $138$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $47;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = 4294967295;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : do {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $50;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $158$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + 4294967295 | 0;
+ if (var$2) continue label$15;
+ break label$15;
+ } while (1);
+ break label$13;
+ };
+ };
+ i64toi32_i32$3 = var$5$hi;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$5;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $170$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = var$0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_mul(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_sdiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_udiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) return 31 - Math_clz32((var$0 + 4294967295 | 0) ^ var$0 | 0) | 0 | 0;
+ return 32 | 0;
+ }
+
+ return {
+ i32_no_fold_mul_div_s: $0,
+ i32_no_fold_mul_div_u: $1,
+ i64_no_fold_mul_div_s: $2,
+ i64_no_fold_mul_div_u: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_no_fold_mul_div_s = retasmFunc.i32_no_fold_mul_div_s;
+export const i32_no_fold_mul_div_u = retasmFunc.i32_no_fold_mul_div_u;
+export const i64_no_fold_mul_div_s = retasmFunc.i64_no_fold_mul_div_s;
+export const i64_no_fold_mul_div_u = retasmFunc.i64_no_fold_mul_div_u;
+import { __tempMemory__ } from 'env';
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var __tempMemory__ = env.__tempMemory__ | 0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x | 0) / (2 | 0) | 0 | 0;
+ }
+
+ function $1(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_sdiv(x | 0, i64toi32_i32$0 | 0, 2 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, $21 = 0, $22 = 0, $23 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17 = 0, $17$hi = 0, $23$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $21 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $21;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $22 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $22 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$2 = $22;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$5 = var$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_udiv($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17 = i64toi32_i32$1;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$1 >> 31 | 0;
+ $23 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ $23 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$5 | 0) | 0;
+ }
+ var$0 = $23;
+ var$0$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $17$hi;
+ i64toi32_i32$1 = $17;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$4 | 0;
+ $23$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = $23$hi;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$0 = i64toi32_i32$4 - i64toi32_i32$0 | 0;
+ i64toi32_i32$2 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function __wasm_i64_sdiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $40;
+ if (var$2) block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if ((var$3 | 0) == (0 | 0)) break label$11;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $41;
+ if ((var$4 | 0) == (0 | 0)) break label$9;
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) break label$8;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $42;
+ i64toi32_i32$1 = var$0$hi;
+ if ((var$0 | 0) == (0 | 0)) break label$7;
+ if ((var$3 | 0) == (0 | 0)) break label$6;
+ var$4 = var$3 + 4294967295 | 0;
+ if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $65$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = $68;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ };
+ var$4 = var$3 + 4294967295 | 0;
+ if ((var$4 & var$3 | 0 | 0) == (0 | 0)) break label$5;
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ };
+ $93 = __tempMemory__;
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$2 = $93;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = $44;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) break label$4;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = var$4 & var$0 | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = i64toi32_i32$2;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ if ((var$3 | 0) == (1 | 0)) break label$1;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $124$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $124$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $45;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $133$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $133$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $46;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $138$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $138$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $47;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = 4294967295;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : do {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $50;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $158$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + 4294967295 | 0;
+ if (var$2) continue label$15;
+ break label$15;
+ } while (1);
+ break label$13;
+ };
+ };
+ i64toi32_i32$3 = var$5$hi;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$5;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $170$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = var$0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_udiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) return 31 - Math_clz32((var$0 + 4294967295 | 0) ^ var$0 | 0) | 0 | 0;
+ return 32 | 0;
+ }
+
+ return {
+ i32_no_fold_div_s_2: $0,
+ i64_no_fold_div_s_2: $1
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_no_fold_div_s_2 = retasmFunc.i32_no_fold_div_s_2;
+export const i64_no_fold_div_s_2 = retasmFunc.i64_no_fold_div_s_2;
+import { __tempMemory__ } from 'env';
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var __tempMemory__ = env.__tempMemory__ | 0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x | 0) % (2 | 0) | 0 | 0;
+ }
+
+ function $1(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_srem(x | 0, i64toi32_i32$0 | 0, 2 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, var$2 = 0, $20 = 0, $21 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17$hi = 0, $19$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $20 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $20 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $20;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $21 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $21 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$0 = $21;
+ var$0$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_urem($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$2$hi;
+ i64toi32_i32$4 = $17$hi;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ $19$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$1 = $19$hi;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = var$2$hi;
+ i64toi32_i32$5 = i64toi32_i32$4 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$2 | 0;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$0 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$4 | 0;
+ }
+
+ function __wasm_i64_srem(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $40;
+ if (var$2) block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if ((var$3 | 0) == (0 | 0)) break label$11;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $41;
+ if ((var$4 | 0) == (0 | 0)) break label$9;
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) break label$8;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $42;
+ i64toi32_i32$1 = var$0$hi;
+ if ((var$0 | 0) == (0 | 0)) break label$7;
+ if ((var$3 | 0) == (0 | 0)) break label$6;
+ var$4 = var$3 + 4294967295 | 0;
+ if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $65$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = $68;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ };
+ var$4 = var$3 + 4294967295 | 0;
+ if ((var$4 & var$3 | 0 | 0) == (0 | 0)) break label$5;
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ };
+ $93 = __tempMemory__;
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$2 = $93;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = $44;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) break label$4;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = var$4 & var$0 | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = i64toi32_i32$2;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ if ((var$3 | 0) == (1 | 0)) break label$1;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $124$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $124$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $45;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $133$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $133$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $46;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $138$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $138$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $47;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = 4294967295;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : do {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $50;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $158$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + 4294967295 | 0;
+ if (var$2) continue label$15;
+ break label$15;
+ } while (1);
+ break label$13;
+ };
+ };
+ i64toi32_i32$3 = var$5$hi;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$5;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $170$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = var$0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_urem(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, wasm2js_i32$0 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$2 = __tempMemory__;
+ i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0;
+ i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24);
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) return 31 - Math_clz32((var$0 + 4294967295 | 0) ^ var$0 | 0) | 0 | 0;
+ return 32 | 0;
+ }
+
+ return {
+ i32_no_fold_rem_s_2: $0,
+ i64_no_fold_rem_s_2: $1
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_no_fold_rem_s_2 = retasmFunc.i32_no_fold_rem_s_2;
+export const i64_no_fold_rem_s_2 = retasmFunc.i64_no_fold_rem_s_2;
+import { __tempMemory__ } from 'env';
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var __tempMemory__ = env.__tempMemory__ | 0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x | 0) / (0 | 0) | 0 | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return (x >>> 0) / (0 >>> 0) | 0 | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_sdiv(x | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_udiv(x | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, $21 = 0, $22 = 0, $23 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17 = 0, $17$hi = 0, $23$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $21 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $21;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $22 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $22 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$2 = $22;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$5 = var$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_udiv($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17 = i64toi32_i32$1;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$1 >> 31 | 0;
+ $23 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ $23 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$5 | 0) | 0;
+ }
+ var$0 = $23;
+ var$0$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $17$hi;
+ i64toi32_i32$1 = $17;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$4 | 0;
+ $23$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = $23$hi;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$0 = i64toi32_i32$4 - i64toi32_i32$0 | 0;
+ i64toi32_i32$2 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $40;
+ if (var$2) block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if ((var$3 | 0) == (0 | 0)) break label$11;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $41;
+ if ((var$4 | 0) == (0 | 0)) break label$9;
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) break label$8;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $42;
+ i64toi32_i32$1 = var$0$hi;
+ if ((var$0 | 0) == (0 | 0)) break label$7;
+ if ((var$3 | 0) == (0 | 0)) break label$6;
+ var$4 = var$3 + 4294967295 | 0;
+ if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $65$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = $68;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ };
+ var$4 = var$3 + 4294967295 | 0;
+ if ((var$4 & var$3 | 0 | 0) == (0 | 0)) break label$5;
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ };
+ $93 = __tempMemory__;
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$2 = $93;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = $44;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) break label$4;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = var$4 & var$0 | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = i64toi32_i32$2;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ if ((var$3 | 0) == (1 | 0)) break label$1;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $124$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $124$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $45;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $133$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $133$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $46;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $138$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $138$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $47;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = 4294967295;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : do {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $50;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $158$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + 4294967295 | 0;
+ if (var$2) continue label$15;
+ break label$15;
+ } while (1);
+ break label$13;
+ };
+ };
+ i64toi32_i32$3 = var$5$hi;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$5;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $170$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = var$0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_sdiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_udiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) return 31 - Math_clz32((var$0 + 4294967295 | 0) ^ var$0 | 0) | 0 | 0;
+ return 32 | 0;
+ }
+
+ return {
+ i32_div_s_3: $0,
+ i32_div_u_3: $1,
+ i64_div_s_3: $2,
+ i64_div_u_3: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_div_s_3 = retasmFunc.i32_div_s_3;
+export const i32_div_u_3 = retasmFunc.i32_div_u_3;
+export const i64_div_s_3 = retasmFunc.i64_div_s_3;
+export const i64_div_u_3 = retasmFunc.i64_div_u_3;
+import { __tempMemory__ } from 'env';
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var __tempMemory__ = env.__tempMemory__ | 0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x | 0) / (3 | 0) | 0 | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return (x >>> 0) / (3 >>> 0) | 0 | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_sdiv(x | 0, i64toi32_i32$0 | 0, 3 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_udiv(x | 0, i64toi32_i32$0 | 0, 3 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, $21 = 0, $22 = 0, $23 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17 = 0, $17$hi = 0, $23$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $21 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $21;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $22 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $22 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$2 = $22;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$5 = var$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_udiv($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17 = i64toi32_i32$1;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$1 >> 31 | 0;
+ $23 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ $23 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$5 | 0) | 0;
+ }
+ var$0 = $23;
+ var$0$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $17$hi;
+ i64toi32_i32$1 = $17;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$4 | 0;
+ $23$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = $23$hi;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$0 = i64toi32_i32$4 - i64toi32_i32$0 | 0;
+ i64toi32_i32$2 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $40;
+ if (var$2) block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if ((var$3 | 0) == (0 | 0)) break label$11;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $41;
+ if ((var$4 | 0) == (0 | 0)) break label$9;
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) break label$8;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $42;
+ i64toi32_i32$1 = var$0$hi;
+ if ((var$0 | 0) == (0 | 0)) break label$7;
+ if ((var$3 | 0) == (0 | 0)) break label$6;
+ var$4 = var$3 + 4294967295 | 0;
+ if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $65$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = $68;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ };
+ var$4 = var$3 + 4294967295 | 0;
+ if ((var$4 & var$3 | 0 | 0) == (0 | 0)) break label$5;
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ };
+ $93 = __tempMemory__;
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$2 = $93;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = $44;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) break label$4;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = var$4 & var$0 | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = i64toi32_i32$2;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ if ((var$3 | 0) == (1 | 0)) break label$1;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $124$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $124$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $45;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $133$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $133$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $46;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $138$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $138$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $47;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = 4294967295;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : do {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $50;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $158$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + 4294967295 | 0;
+ if (var$2) continue label$15;
+ break label$15;
+ } while (1);
+ break label$13;
+ };
+ };
+ i64toi32_i32$3 = var$5$hi;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$5;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $170$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = var$0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_sdiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_udiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) return 31 - Math_clz32((var$0 + 4294967295 | 0) ^ var$0 | 0) | 0 | 0;
+ return 32 | 0;
+ }
+
+ return {
+ i32_div_s_3: $0,
+ i32_div_u_3: $1,
+ i64_div_s_3: $2,
+ i64_div_u_3: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_div_s_3 = retasmFunc.i32_div_s_3;
+export const i32_div_u_3 = retasmFunc.i32_div_u_3;
+export const i64_div_s_3 = retasmFunc.i64_div_s_3;
+export const i64_div_u_3 = retasmFunc.i64_div_u_3;
+import { __tempMemory__ } from 'env';
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var __tempMemory__ = env.__tempMemory__ | 0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x | 0) / (5 | 0) | 0 | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return (x >>> 0) / (5 >>> 0) | 0 | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_sdiv(x | 0, i64toi32_i32$0 | 0, 5 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_udiv(x | 0, i64toi32_i32$0 | 0, 5 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, $21 = 0, $22 = 0, $23 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17 = 0, $17$hi = 0, $23$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $21 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $21;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $22 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $22 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$2 = $22;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$5 = var$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_udiv($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17 = i64toi32_i32$1;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$1 >> 31 | 0;
+ $23 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ $23 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$5 | 0) | 0;
+ }
+ var$0 = $23;
+ var$0$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $17$hi;
+ i64toi32_i32$1 = $17;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$4 | 0;
+ $23$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = $23$hi;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$0 = i64toi32_i32$4 - i64toi32_i32$0 | 0;
+ i64toi32_i32$2 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $40;
+ if (var$2) block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if ((var$3 | 0) == (0 | 0)) break label$11;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $41;
+ if ((var$4 | 0) == (0 | 0)) break label$9;
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) break label$8;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $42;
+ i64toi32_i32$1 = var$0$hi;
+ if ((var$0 | 0) == (0 | 0)) break label$7;
+ if ((var$3 | 0) == (0 | 0)) break label$6;
+ var$4 = var$3 + 4294967295 | 0;
+ if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $65$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = $68;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ };
+ var$4 = var$3 + 4294967295 | 0;
+ if ((var$4 & var$3 | 0 | 0) == (0 | 0)) break label$5;
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ };
+ $93 = __tempMemory__;
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$2 = $93;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = $44;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) break label$4;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = var$4 & var$0 | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = i64toi32_i32$2;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ if ((var$3 | 0) == (1 | 0)) break label$1;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $124$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $124$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $45;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $133$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $133$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $46;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $138$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $138$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $47;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = 4294967295;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : do {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $50;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $158$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + 4294967295 | 0;
+ if (var$2) continue label$15;
+ break label$15;
+ } while (1);
+ break label$13;
+ };
+ };
+ i64toi32_i32$3 = var$5$hi;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$5;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $170$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = var$0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_sdiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_udiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) return 31 - Math_clz32((var$0 + 4294967295 | 0) ^ var$0 | 0) | 0 | 0;
+ return 32 | 0;
+ }
+
+ return {
+ i32_div_s_5: $0,
+ i32_div_u_5: $1,
+ i64_div_s_5: $2,
+ i64_div_u_5: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_div_s_5 = retasmFunc.i32_div_s_5;
+export const i32_div_u_5 = retasmFunc.i32_div_u_5;
+export const i64_div_s_5 = retasmFunc.i64_div_s_5;
+export const i64_div_u_5 = retasmFunc.i64_div_u_5;
+import { __tempMemory__ } from 'env';
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var __tempMemory__ = env.__tempMemory__ | 0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x | 0) / (7 | 0) | 0 | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return (x >>> 0) / (7 >>> 0) | 0 | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_sdiv(x | 0, i64toi32_i32$0 | 0, 7 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_udiv(x | 0, i64toi32_i32$0 | 0, 7 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, $21 = 0, $22 = 0, $23 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17 = 0, $17$hi = 0, $23$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $21 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $21;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $22 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $22 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$2 = $22;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$5 = var$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_udiv($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17 = i64toi32_i32$1;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$1 >> 31 | 0;
+ $23 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >> i64toi32_i32$5 | 0;
+ $23 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$5 | 0) | 0;
+ }
+ var$0 = $23;
+ var$0$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $17$hi;
+ i64toi32_i32$1 = $17;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$4 | 0;
+ $23$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$0$hi;
+ i64toi32_i32$4 = $23$hi;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$0 = i64toi32_i32$4 - i64toi32_i32$0 | 0;
+ i64toi32_i32$2 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $40;
+ if (var$2) block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if ((var$3 | 0) == (0 | 0)) break label$11;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $41;
+ if ((var$4 | 0) == (0 | 0)) break label$9;
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) break label$8;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $42;
+ i64toi32_i32$1 = var$0$hi;
+ if ((var$0 | 0) == (0 | 0)) break label$7;
+ if ((var$3 | 0) == (0 | 0)) break label$6;
+ var$4 = var$3 + 4294967295 | 0;
+ if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $65$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = $68;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ };
+ var$4 = var$3 + 4294967295 | 0;
+ if ((var$4 & var$3 | 0 | 0) == (0 | 0)) break label$5;
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ };
+ $93 = __tempMemory__;
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$2 = $93;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = $44;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) break label$4;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = var$4 & var$0 | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = i64toi32_i32$2;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ if ((var$3 | 0) == (1 | 0)) break label$1;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $124$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $124$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $45;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $133$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $133$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $46;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $138$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $138$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $47;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = 4294967295;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : do {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $50;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $158$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + 4294967295 | 0;
+ if (var$2) continue label$15;
+ break label$15;
+ } while (1);
+ break label$13;
+ };
+ };
+ i64toi32_i32$3 = var$5$hi;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$5;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $170$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = var$0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_sdiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_udiv(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) return 31 - Math_clz32((var$0 + 4294967295 | 0) ^ var$0 | 0) | 0 | 0;
+ return 32 | 0;
+ }
+
+ return {
+ i32_div_s_7: $0,
+ i32_div_u_7: $1,
+ i64_div_s_7: $2,
+ i64_div_u_7: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_div_s_7 = retasmFunc.i32_div_s_7;
+export const i32_div_u_7 = retasmFunc.i32_div_u_7;
+export const i64_div_s_7 = retasmFunc.i64_div_s_7;
+export const i64_div_u_7 = retasmFunc.i64_div_u_7;
+import { __tempMemory__ } from 'env';
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var __tempMemory__ = env.__tempMemory__ | 0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x | 0) % (3 | 0) | 0 | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return (x >>> 0) % (3 >>> 0) | 0 | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_srem(x | 0, i64toi32_i32$0 | 0, 3 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_urem(x | 0, i64toi32_i32$0 | 0, 3 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, var$2 = 0, $20 = 0, $21 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17$hi = 0, $19$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $20 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $20 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $20;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $21 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $21 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$0 = $21;
+ var$0$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_urem($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$2$hi;
+ i64toi32_i32$4 = $17$hi;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ $19$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$1 = $19$hi;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = var$2$hi;
+ i64toi32_i32$5 = i64toi32_i32$4 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$2 | 0;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$0 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$4 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $40;
+ if (var$2) block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if ((var$3 | 0) == (0 | 0)) break label$11;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $41;
+ if ((var$4 | 0) == (0 | 0)) break label$9;
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) break label$8;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $42;
+ i64toi32_i32$1 = var$0$hi;
+ if ((var$0 | 0) == (0 | 0)) break label$7;
+ if ((var$3 | 0) == (0 | 0)) break label$6;
+ var$4 = var$3 + 4294967295 | 0;
+ if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $65$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = $68;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ };
+ var$4 = var$3 + 4294967295 | 0;
+ if ((var$4 & var$3 | 0 | 0) == (0 | 0)) break label$5;
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ };
+ $93 = __tempMemory__;
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$2 = $93;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = $44;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) break label$4;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = var$4 & var$0 | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = i64toi32_i32$2;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ if ((var$3 | 0) == (1 | 0)) break label$1;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $124$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $124$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $45;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $133$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $133$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $46;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $138$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $138$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $47;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = 4294967295;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : do {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $50;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $158$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + 4294967295 | 0;
+ if (var$2) continue label$15;
+ break label$15;
+ } while (1);
+ break label$13;
+ };
+ };
+ i64toi32_i32$3 = var$5$hi;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$5;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $170$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = var$0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_srem(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_urem(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, wasm2js_i32$0 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$2 = __tempMemory__;
+ i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0;
+ i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24);
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) return 31 - Math_clz32((var$0 + 4294967295 | 0) ^ var$0 | 0) | 0 | 0;
+ return 32 | 0;
+ }
+
+ return {
+ i32_rem_s_3: $0,
+ i32_rem_u_3: $1,
+ i64_rem_s_3: $2,
+ i64_rem_u_3: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_rem_s_3 = retasmFunc.i32_rem_s_3;
+export const i32_rem_u_3 = retasmFunc.i32_rem_u_3;
+export const i64_rem_s_3 = retasmFunc.i64_rem_s_3;
+export const i64_rem_u_3 = retasmFunc.i64_rem_u_3;
+import { __tempMemory__ } from 'env';
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var __tempMemory__ = env.__tempMemory__ | 0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x | 0) % (5 | 0) | 0 | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return (x >>> 0) % (5 >>> 0) | 0 | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_srem(x | 0, i64toi32_i32$0 | 0, 5 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_urem(x | 0, i64toi32_i32$0 | 0, 5 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, var$2 = 0, $20 = 0, $21 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17$hi = 0, $19$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $20 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $20 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $20;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $21 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $21 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$0 = $21;
+ var$0$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_urem($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$2$hi;
+ i64toi32_i32$4 = $17$hi;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ $19$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$1 = $19$hi;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = var$2$hi;
+ i64toi32_i32$5 = i64toi32_i32$4 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$2 | 0;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$0 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$4 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $40;
+ if (var$2) block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if ((var$3 | 0) == (0 | 0)) break label$11;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $41;
+ if ((var$4 | 0) == (0 | 0)) break label$9;
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) break label$8;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $42;
+ i64toi32_i32$1 = var$0$hi;
+ if ((var$0 | 0) == (0 | 0)) break label$7;
+ if ((var$3 | 0) == (0 | 0)) break label$6;
+ var$4 = var$3 + 4294967295 | 0;
+ if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $65$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = $68;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ };
+ var$4 = var$3 + 4294967295 | 0;
+ if ((var$4 & var$3 | 0 | 0) == (0 | 0)) break label$5;
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ };
+ $93 = __tempMemory__;
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$2 = $93;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = $44;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) break label$4;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = var$4 & var$0 | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = i64toi32_i32$2;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ if ((var$3 | 0) == (1 | 0)) break label$1;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $124$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $124$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $45;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $133$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $133$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $46;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $138$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $138$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $47;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = 4294967295;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : do {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $50;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $158$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + 4294967295 | 0;
+ if (var$2) continue label$15;
+ break label$15;
+ } while (1);
+ break label$13;
+ };
+ };
+ i64toi32_i32$3 = var$5$hi;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$5;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $170$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = var$0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_srem(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_urem(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, wasm2js_i32$0 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$2 = __tempMemory__;
+ i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0;
+ i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24);
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) return 31 - Math_clz32((var$0 + 4294967295 | 0) ^ var$0 | 0) | 0 | 0;
+ return 32 | 0;
+ }
+
+ return {
+ i32_rem_s_5: $0,
+ i32_rem_u_5: $1,
+ i64_rem_s_5: $2,
+ i64_rem_u_5: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_rem_s_5 = retasmFunc.i32_rem_s_5;
+export const i32_rem_u_5 = retasmFunc.i32_rem_u_5;
+export const i64_rem_s_5 = retasmFunc.i64_rem_s_5;
+export const i64_rem_u_5 = retasmFunc.i64_rem_u_5;
+import { __tempMemory__ } from 'env';
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var __tempMemory__ = env.__tempMemory__ | 0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = x | 0;
+ return (x | 0) % (7 | 0) | 0 | 0;
+ }
+
+ function $1(x) {
+ x = x | 0;
+ return (x >>> 0) % (7 >>> 0) | 0 | 0;
+ }
+
+ function $2(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_srem(x | 0, i64toi32_i32$0 | 0, 7 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function $3(x, x$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$1 = __wasm_i64_urem(x | 0, i64toi32_i32$0 | 0, 7 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, var$2 = 0, $20 = 0, $21 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17$hi = 0, $19$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $20 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $20 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $20;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $21 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $21 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$0 = $21;
+ var$0$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_urem($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$2$hi;
+ i64toi32_i32$4 = $17$hi;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ $19$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$1 = $19$hi;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = var$2$hi;
+ i64toi32_i32$5 = i64toi32_i32$4 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$2 | 0;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$0 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$4 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $40;
+ if (var$2) block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if ((var$3 | 0) == (0 | 0)) break label$11;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $41;
+ if ((var$4 | 0) == (0 | 0)) break label$9;
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) break label$8;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $42;
+ i64toi32_i32$1 = var$0$hi;
+ if ((var$0 | 0) == (0 | 0)) break label$7;
+ if ((var$3 | 0) == (0 | 0)) break label$6;
+ var$4 = var$3 + 4294967295 | 0;
+ if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $65$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = $68;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ };
+ var$4 = var$3 + 4294967295 | 0;
+ if ((var$4 & var$3 | 0 | 0) == (0 | 0)) break label$5;
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ };
+ $93 = __tempMemory__;
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$2 = $93;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = $44;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) break label$4;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = var$4 & var$0 | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = i64toi32_i32$2;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ if ((var$3 | 0) == (1 | 0)) break label$1;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $124$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $124$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $45;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $133$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $133$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $46;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $138$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $138$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $47;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = 4294967295;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : do {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $50;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $158$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + 4294967295 | 0;
+ if (var$2) continue label$15;
+ break label$15;
+ } while (1);
+ break label$13;
+ };
+ };
+ i64toi32_i32$3 = var$5$hi;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$5;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $170$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = var$0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_srem(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_urem(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, wasm2js_i32$0 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$2 = __tempMemory__;
+ i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0;
+ i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24);
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) return 31 - Math_clz32((var$0 + 4294967295 | 0) ^ var$0 | 0) | 0 | 0;
+ return 32 | 0;
+ }
+
+ return {
+ i32_rem_s_7: $0,
+ i32_rem_u_7: $1,
+ i64_rem_s_7: $2,
+ i64_rem_u_7: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const i32_rem_s_7 = retasmFunc.i32_rem_s_7;
+export const i32_rem_u_7 = retasmFunc.i32_rem_u_7;
+export const i64_rem_s_7 = retasmFunc.i64_rem_s_7;
+export const i64_rem_u_7 = retasmFunc.i64_rem_u_7;
diff --git a/test/wasm2js/left-to-right.2asm.js b/test/wasm2js/left-to-right.2asm.js
index e70eff986..4d3f16859 100644
--- a/test/wasm2js/left-to-right.2asm.js
+++ b/test/wasm2js/left-to-right.2asm.js
@@ -1,3 +1,4 @@
+import { __tempMemory__ } from 'env';
function asmFunc(global, env, buffer) {
"use asm";
@@ -21,6 +22,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
+ var __tempMemory__ = env.__tempMemory__ | 0;
var i64toi32_i32$HIGH_BITS = 0;
function i32_t0($0, $1) {
$0 = $0 | 0;
@@ -1187,23 +1189,25 @@ function asmFunc(global, env, buffer) {
}
function $115() {
- var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $2 = 0, $2$hi = 0, $5 = 0, $5$hi = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0, wasm2js_i32$1 = 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $0 = 0.0, $2 = 0, $2$hi = 0, $3 = 0.0, $5 = 0, $5$hi = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0, wasm2js_i32$1 = 0;
reset();
- wasm2js_i32$0 = 0;
- wasm2js_f64$0 = +f64_left();
+ $0 = +f64_left();
+ wasm2js_i32$0 = __tempMemory__;
+ wasm2js_f64$0 = $0;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$2 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$2 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$1 = 2147483647;
i64toi32_i32$3 = 4294967295;
i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0;
$2 = i64toi32_i32$2 & i64toi32_i32$3 | 0;
$2$hi = i64toi32_i32$1;
- wasm2js_i32$0 = 0;
- wasm2js_f64$0 = +f64_right();
+ $3 = +f64_right();
+ wasm2js_i32$0 = __tempMemory__;
+ wasm2js_f64$0 = $3;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$1 = HEAP32[(0 + 4 | 0) >> 2] | 0;
- i64toi32_i32$0 = HEAP32[0 >> 2] | 0;
+ i64toi32_i32$1 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[__tempMemory__ >> 2] | 0;
i64toi32_i32$2 = 2147483648;
i64toi32_i32$3 = 0;
i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0;
@@ -1214,13 +1218,13 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$0 = $5$hi;
i64toi32_i32$3 = $5;
i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$1 | i64toi32_i32$3 | 0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$0;
HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1;
- +HEAPF64[0 >> 3];
+ +HEAPF64[__tempMemory__ >> 3];
return get() | 0 | 0;
}
@@ -1618,7 +1622,7 @@ function asmFunc(global, env, buffer) {
var$0$hi = var$0$hi | 0;
var$1 = var$1 | 0;
var$1$hi = var$1$hi | 0;
- var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $38_1 = 0, $39_1 = 0, $40_1 = 0, $41_1 = 0, $42_1 = 0, $43_1 = 0, $44_1 = 0, $45_1 = 0, var$8$hi = 0, $46_1 = 0, $47_1 = 0, $48_1 = 0, $49_1 = 0, var$7$hi = 0, $50_1 = 0, $63$hi = 0, $65_1 = 0, $65$hi = 0, $66_1 = 0, $120$hi = 0, $129$hi = 0, $134$hi = 0, var$8 = 0, $140 = 0, $140$hi = 0, $142$hi = 0, $144 = 0, $144$hi = 0, $151 = 0, $151$hi = 0, $154$hi = 0, var$7 = 0, $165$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40_1 = 0, $41_1 = 0, $42_1 = 0, $43_1 = 0, $44_1 = 0, $45_1 = 0, $46_1 = 0, $47_1 = 0, var$8$hi = 0, $48_1 = 0, $49_1 = 0, $50_1 = 0, $51_1 = 0, var$7$hi = 0, $52_1 = 0, $60_1 = 0, $65$hi = 0, $67_1 = 0, $67$hi = 0, $68_1 = 0, $93_1 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
label$1 : {
label$2 : {
label$3 : {
@@ -1637,12 +1641,12 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$1 = 0;
- $38_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $38_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ $40_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$2 = $38_1;
+ var$2 = $40_1;
if (var$2) block : {
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
@@ -1654,12 +1658,12 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$2 = 0;
- $39_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $39_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ $41_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $39_1;
+ var$4 = $41_1;
if ((var$4 | 0) == (0 | 0)) break label$9;
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
if (var$2 >>> 0 <= 31 >>> 0) break label$8;
@@ -1676,7 +1680,7 @@ function asmFunc(global, env, buffer) {
var$3 = var$1;
var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = 1024;
+ i64toi32_i32$2 = __tempMemory__;
wasm2js_i32$0 = i64toi32_i32$2;
wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
@@ -1695,17 +1699,18 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = 0;
- $40_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $40_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ $42_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
- var$3 = $40_1;
+ var$3 = $42_1;
i64toi32_i32$1 = var$0$hi;
if ((var$0 | 0) == (0 | 0)) break label$7;
if ((var$3 | 0) == (0 | 0)) break label$6;
var$4 = var$3 + 4294967295 | 0;
if (var$4 & var$3 | 0) break label$6;
+ $60_1 = __tempMemory__;
i64toi32_i32$1 = 0;
i64toi32_i32$2 = var$4 & var$2 | 0;
i64toi32_i32$3 = 0;
@@ -1713,28 +1718,28 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $41_1 = 0;
+ $43_1 = 0;
} else {
i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $41_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
}
- $63$hi = i64toi32_i32$3;
+ $65$hi = i64toi32_i32$3;
i64toi32_i32$3 = var$0$hi;
i64toi32_i32$1 = var$0;
i64toi32_i32$2 = 0;
i64toi32_i32$0 = 4294967295;
i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65_1 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $41_1;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65_1;
+ $67_1 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43_1;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67_1;
i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- $66_1 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- i64toi32_i32$3 = 1024;
+ $68_1 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60_1;
wasm2js_i32$0 = i64toi32_i32$3;
- wasm2js_i32$1 = $66_1;
+ wasm2js_i32$1 = $68_1;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
wasm2js_i32$0 = i64toi32_i32$3;
wasm2js_i32$1 = i64toi32_i32$1;
@@ -1755,6 +1760,7 @@ function asmFunc(global, env, buffer) {
var$2 = var$2 + 1 | 0;
break label$3;
};
+ $93_1 = __tempMemory__;
var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
i64toi32_i32$3 = 0;
i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
@@ -1763,14 +1769,14 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $42_1 = 0;
+ $44_1 = 0;
} else {
i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $42_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
}
- i64toi32_i32$2 = 1024;
+ i64toi32_i32$2 = $93_1;
wasm2js_i32$0 = i64toi32_i32$2;
- wasm2js_i32$1 = $42_1;
+ wasm2js_i32$1 = $44_1;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
wasm2js_i32$0 = i64toi32_i32$2;
wasm2js_i32$1 = i64toi32_i32$1;
@@ -1786,7 +1792,7 @@ function asmFunc(global, env, buffer) {
};
i64toi32_i32$2 = var$0$hi;
i64toi32_i32$2 = 0;
- i64toi32_i32$1 = 1024;
+ i64toi32_i32$1 = __tempMemory__;
wasm2js_i32$0 = i64toi32_i32$1;
wasm2js_i32$1 = var$4 & var$0 | 0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
@@ -1796,20 +1802,20 @@ function asmFunc(global, env, buffer) {
if ((var$3 | 0) == (1 | 0)) break label$1;
i64toi32_i32$2 = var$0$hi;
i64toi32_i32$2 = 0;
- $120$hi = i64toi32_i32$2;
+ $124$hi = i64toi32_i32$2;
i64toi32_i32$2 = var$0$hi;
i64toi32_i32$3 = var$0;
- i64toi32_i32$1 = $120$hi;
+ i64toi32_i32$1 = $124$hi;
i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = 0;
- $43_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $43_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ $45_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
- i64toi32_i32$3 = $43_1;
+ i64toi32_i32$3 = $45_1;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
return i64toi32_i32$3 | 0;
};
@@ -1818,37 +1824,37 @@ function asmFunc(global, env, buffer) {
};
i64toi32_i32$3 = var$0$hi;
i64toi32_i32$3 = 0;
- $129$hi = i64toi32_i32$3;
+ $133$hi = i64toi32_i32$3;
i64toi32_i32$3 = var$0$hi;
i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = $129$hi;
+ i64toi32_i32$1 = $133$hi;
i64toi32_i32$0 = var$2 & 63 | 0;
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = 0;
- $44_1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46_1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
- $44_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ $46_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$5 = $44_1;
+ var$5 = $46_1;
var$5$hi = i64toi32_i32$1;
i64toi32_i32$1 = var$0$hi;
i64toi32_i32$1 = 0;
- $134$hi = i64toi32_i32$1;
+ $138$hi = i64toi32_i32$1;
i64toi32_i32$1 = var$0$hi;
i64toi32_i32$3 = var$0;
- i64toi32_i32$2 = $134$hi;
+ i64toi32_i32$2 = $138$hi;
i64toi32_i32$0 = var$3 & 63 | 0;
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
- $45_1 = 0;
+ $47_1 = 0;
} else {
i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $45_1 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47_1 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
}
- var$0 = $45_1;
+ var$0 = $47_1;
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) block3 : {
@@ -1869,13 +1875,13 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $46_1 = 0;
+ $48_1 = 0;
} else {
i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $46_1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48_1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
}
- $140 = $46_1;
- $140$hi = i64toi32_i32$1;
+ $144 = $48_1;
+ $144$hi = i64toi32_i32$1;
i64toi32_i32$1 = var$0$hi;
i64toi32_i32$5 = var$0;
i64toi32_i32$2 = 0;
@@ -1883,21 +1889,21 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = 0;
- $47_1 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49_1 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
} else {
i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $47_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ $49_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
}
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $47_1;
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49_1;
i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
i64toi32_i32$5 = var$8$hi;
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$5 = var$8$hi;
@@ -1914,12 +1920,12 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $48_1 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50_1 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
} else {
i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $48_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ $50_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
}
- var$6 = $48_1;
+ var$6 = $50_1;
var$6$hi = i64toi32_i32$2;
i64toi32_i32$2 = var$1$hi;
i64toi32_i32$2 = var$6$hi;
@@ -1927,12 +1933,12 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$5 = var$1$hi;
i64toi32_i32$0 = var$1;
i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
@@ -1946,15 +1952,15 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $49_1 = 0;
+ $51_1 = 0;
} else {
i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $49_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
}
- $154$hi = i64toi32_i32$2;
+ $158$hi = i64toi32_i32$2;
i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $49_1;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51_1;
i64toi32_i32$5 = var$7$hi;
i64toi32_i32$0 = var$7;
i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
@@ -1977,7 +1983,7 @@ function asmFunc(global, env, buffer) {
};
};
i64toi32_i32$3 = var$5$hi;
- i64toi32_i32$2 = 1024;
+ i64toi32_i32$2 = __tempMemory__;
wasm2js_i32$0 = i64toi32_i32$2;
wasm2js_i32$1 = var$5;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
@@ -1991,15 +1997,15 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $50_1 = 0;
+ $52_1 = 0;
} else {
i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $50_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
}
- $165$hi = i64toi32_i32$2;
+ $170$hi = i64toi32_i32$2;
i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$2 = $165$hi;
- i64toi32_i32$3 = $50_1;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52_1;
i64toi32_i32$5 = var$6$hi;
i64toi32_i32$0 = var$6;
i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
@@ -2008,7 +2014,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3 | 0;
};
i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = 1024;
+ i64toi32_i32$5 = __tempMemory__;
wasm2js_i32$0 = i64toi32_i32$5;
wasm2js_i32$1 = var$0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
@@ -2101,7 +2107,7 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$1 = var$1$hi;
i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
- i64toi32_i32$2 = 1024;
+ i64toi32_i32$2 = __tempMemory__;
i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0;
i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24);
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
diff --git a/test/wasm2js/reinterpret.2asm.js b/test/wasm2js/reinterpret.2asm.js
index f0915fa8e..47521bb91 100644
--- a/test/wasm2js/reinterpret.2asm.js
+++ b/test/wasm2js/reinterpret.2asm.js
@@ -1,3 +1,4 @@
+import { __tempMemory__ } from 'env';
function asmFunc(global, env, buffer) {
"use asm";
@@ -21,6 +22,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
+ var __tempMemory__ = env.__tempMemory__ | 0;
var i64toi32_i32$HIGH_BITS = 0;
function dummy() {
@@ -36,20 +38,20 @@ function asmFunc(global, env, buffer) {
$0$hi = $0$hi | 0;
var i64toi32_i32$0 = 0, $3$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f64$0 = 0.0;
i64toi32_i32$0 = $0$hi;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = $0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$0;
HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1;
- wasm2js_i32$0 = 0;
- wasm2js_f64$0 = +HEAPF64[0 >> 3];
+ wasm2js_i32$0 = __tempMemory__;
+ wasm2js_f64$0 = +HEAPF64[__tempMemory__ >> 3];
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
$3$hi = i64toi32_i32$0;
i64toi32_i32$0 = $0$hi;
i64toi32_i32$0 = $3$hi;
- return (HEAP32[0 >> 2] | 0 | 0) == ($0 | 0) & (i64toi32_i32$0 | 0) == ($0$hi | 0) | 0 | 0;
+ return (HEAP32[__tempMemory__ >> 2] | 0 | 0) == ($0 | 0) & (i64toi32_i32$0 | 0) == ($0$hi | 0) | 0 | 0;
}
return {
diff --git a/test/wasm2js/traps.2asm.js b/test/wasm2js/traps.2asm.js
index 603d08e3e..026f20abc 100644
--- a/test/wasm2js/traps.2asm.js
+++ b/test/wasm2js/traps.2asm.js
@@ -1,3 +1,4 @@
+import { __tempMemory__ } from 'env';
function asmFunc(global, env, buffer) {
"use asm";
@@ -21,6 +22,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
+ var __tempMemory__ = env.__tempMemory__ | 0;
var i64toi32_i32$HIGH_BITS = 0;
function $0(x, y) {
x = x | 0;
@@ -185,7 +187,7 @@ function asmFunc(global, env, buffer) {
var$0$hi = var$0$hi | 0;
var$1 = var$1 | 0;
var$1$hi = var$1$hi | 0;
- var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, var$8$hi = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, var$7$hi = 0, $50 = 0, $63$hi = 0, $65 = 0, $65$hi = 0, $66 = 0, $120$hi = 0, $129$hi = 0, $134$hi = 0, var$8 = 0, $140 = 0, $140$hi = 0, $142$hi = 0, $144 = 0, $144$hi = 0, $151 = 0, $151$hi = 0, $154$hi = 0, var$7 = 0, $165$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
label$1 : {
label$2 : {
label$3 : {
@@ -204,12 +206,12 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$1 = 0;
- $38 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$2 = $38;
+ var$2 = $40;
if (var$2) block : {
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
@@ -221,12 +223,12 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
i64toi32_i32$2 = 0;
- $39 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
}
- var$4 = $39;
+ var$4 = $41;
if ((var$4 | 0) == (0 | 0)) break label$9;
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
if (var$2 >>> 0 <= 31 >>> 0) break label$8;
@@ -243,7 +245,7 @@ function asmFunc(global, env, buffer) {
var$3 = var$1;
var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
i64toi32_i32$1 = 0;
- i64toi32_i32$2 = 1024;
+ i64toi32_i32$2 = __tempMemory__;
wasm2js_i32$0 = i64toi32_i32$2;
wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
@@ -262,17 +264,18 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = 0;
- $40 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
- var$3 = $40;
+ var$3 = $42;
i64toi32_i32$1 = var$0$hi;
if ((var$0 | 0) == (0 | 0)) break label$7;
if ((var$3 | 0) == (0 | 0)) break label$6;
var$4 = var$3 + 4294967295 | 0;
if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
i64toi32_i32$1 = 0;
i64toi32_i32$2 = var$4 & var$2 | 0;
i64toi32_i32$3 = 0;
@@ -280,28 +283,28 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $41 = 0;
+ $43 = 0;
} else {
i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
}
- $63$hi = i64toi32_i32$3;
+ $65$hi = i64toi32_i32$3;
i64toi32_i32$3 = var$0$hi;
i64toi32_i32$1 = var$0;
i64toi32_i32$2 = 0;
i64toi32_i32$0 = 4294967295;
i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
- $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
- $65$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $63$hi;
- i64toi32_i32$3 = $41;
- i64toi32_i32$1 = $65$hi;
- i64toi32_i32$0 = $65;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
- $66 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
- i64toi32_i32$3 = 1024;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
wasm2js_i32$0 = i64toi32_i32$3;
- wasm2js_i32$1 = $66;
+ wasm2js_i32$1 = $68;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
wasm2js_i32$0 = i64toi32_i32$3;
wasm2js_i32$1 = i64toi32_i32$1;
@@ -322,6 +325,7 @@ function asmFunc(global, env, buffer) {
var$2 = var$2 + 1 | 0;
break label$3;
};
+ $93 = __tempMemory__;
var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
i64toi32_i32$3 = 0;
i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
@@ -330,14 +334,14 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $42 = 0;
+ $44 = 0;
} else {
i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $42 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
}
- i64toi32_i32$2 = 1024;
+ i64toi32_i32$2 = $93;
wasm2js_i32$0 = i64toi32_i32$2;
- wasm2js_i32$1 = $42;
+ wasm2js_i32$1 = $44;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
wasm2js_i32$0 = i64toi32_i32$2;
wasm2js_i32$1 = i64toi32_i32$1;
@@ -353,7 +357,7 @@ function asmFunc(global, env, buffer) {
};
i64toi32_i32$2 = var$0$hi;
i64toi32_i32$2 = 0;
- i64toi32_i32$1 = 1024;
+ i64toi32_i32$1 = __tempMemory__;
wasm2js_i32$0 = i64toi32_i32$1;
wasm2js_i32$1 = var$4 & var$0 | 0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
@@ -363,20 +367,20 @@ function asmFunc(global, env, buffer) {
if ((var$3 | 0) == (1 | 0)) break label$1;
i64toi32_i32$2 = var$0$hi;
i64toi32_i32$2 = 0;
- $120$hi = i64toi32_i32$2;
+ $124$hi = i64toi32_i32$2;
i64toi32_i32$2 = var$0$hi;
i64toi32_i32$3 = var$0;
- i64toi32_i32$1 = $120$hi;
+ i64toi32_i32$1 = $124$hi;
i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = 0;
- $43 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
- $43 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
}
- i64toi32_i32$3 = $43;
+ i64toi32_i32$3 = $45;
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
return i64toi32_i32$3 | 0;
};
@@ -385,37 +389,37 @@ function asmFunc(global, env, buffer) {
};
i64toi32_i32$3 = var$0$hi;
i64toi32_i32$3 = 0;
- $129$hi = i64toi32_i32$3;
+ $133$hi = i64toi32_i32$3;
i64toi32_i32$3 = var$0$hi;
i64toi32_i32$2 = var$0;
- i64toi32_i32$1 = $129$hi;
+ i64toi32_i32$1 = $133$hi;
i64toi32_i32$0 = var$2 & 63 | 0;
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = 0;
- $44 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
} else {
i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
- $44 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
}
- var$5 = $44;
+ var$5 = $46;
var$5$hi = i64toi32_i32$1;
i64toi32_i32$1 = var$0$hi;
i64toi32_i32$1 = 0;
- $134$hi = i64toi32_i32$1;
+ $138$hi = i64toi32_i32$1;
i64toi32_i32$1 = var$0$hi;
i64toi32_i32$3 = var$0;
- i64toi32_i32$2 = $134$hi;
+ i64toi32_i32$2 = $138$hi;
i64toi32_i32$0 = var$3 & 63 | 0;
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
- $45 = 0;
+ $47 = 0;
} else {
i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
- $45 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
}
- var$0 = $45;
+ var$0 = $47;
var$0$hi = i64toi32_i32$2;
label$13 : {
if (var$2) block3 : {
@@ -436,13 +440,13 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
- $46 = 0;
+ $48 = 0;
} else {
i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
- $46 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
}
- $140 = $46;
- $140$hi = i64toi32_i32$1;
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
i64toi32_i32$1 = var$0$hi;
i64toi32_i32$5 = var$0;
i64toi32_i32$2 = 0;
@@ -450,21 +454,21 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = 0;
- $47 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
} else {
i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
- $47 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
}
- $142$hi = i64toi32_i32$2;
- i64toi32_i32$2 = $140$hi;
- i64toi32_i32$1 = $140;
- i64toi32_i32$5 = $142$hi;
- i64toi32_i32$0 = $47;
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
var$5$hi = i64toi32_i32$5;
- $144 = var$5;
- $144$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
i64toi32_i32$5 = var$8$hi;
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$5 = var$8$hi;
@@ -481,12 +485,12 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
- $48 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
} else {
i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
- $48 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
}
- var$6 = $48;
+ var$6 = $50;
var$6$hi = i64toi32_i32$2;
i64toi32_i32$2 = var$1$hi;
i64toi32_i32$2 = var$6$hi;
@@ -494,12 +498,12 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$5 = var$1$hi;
i64toi32_i32$0 = var$1;
i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
- $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
- $151$hi = i64toi32_i32$5;
- i64toi32_i32$5 = $144$hi;
- i64toi32_i32$2 = $144;
- i64toi32_i32$4 = $151$hi;
- i64toi32_i32$0 = $151;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
@@ -513,15 +517,15 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $49 = 0;
+ $51 = 0;
} else {
i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
}
- $154$hi = i64toi32_i32$2;
+ $158$hi = i64toi32_i32$2;
i64toi32_i32$2 = var$7$hi;
- i64toi32_i32$2 = $154$hi;
- i64toi32_i32$3 = $49;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
i64toi32_i32$5 = var$7$hi;
i64toi32_i32$0 = var$7;
i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
@@ -544,7 +548,7 @@ function asmFunc(global, env, buffer) {
};
};
i64toi32_i32$3 = var$5$hi;
- i64toi32_i32$2 = 1024;
+ i64toi32_i32$2 = __tempMemory__;
wasm2js_i32$0 = i64toi32_i32$2;
wasm2js_i32$1 = var$5;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
@@ -558,15 +562,15 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
- $50 = 0;
+ $52 = 0;
} else {
i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
- $50 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
}
- $165$hi = i64toi32_i32$2;
+ $170$hi = i64toi32_i32$2;
i64toi32_i32$2 = var$6$hi;
- i64toi32_i32$2 = $165$hi;
- i64toi32_i32$3 = $50;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
i64toi32_i32$5 = var$6$hi;
i64toi32_i32$0 = var$6;
i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
@@ -575,7 +579,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3 | 0;
};
i64toi32_i32$3 = var$0$hi;
- i64toi32_i32$5 = 1024;
+ i64toi32_i32$5 = __tempMemory__;
wasm2js_i32$0 = i64toi32_i32$5;
wasm2js_i32$1 = var$0;
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
@@ -644,3 +648,821 @@ export const no_dce_i32_div_s = retasmFunc.no_dce_i32_div_s;
export const no_dce_i32_div_u = retasmFunc.no_dce_i32_div_u;
export const no_dce_i64_div_s = retasmFunc.no_dce_i64_div_s;
export const no_dce_i64_div_u = retasmFunc.no_dce_i64_div_u;
+import { __tempMemory__ } from 'env';
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var __tempMemory__ = env.__tempMemory__ | 0;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x, y) {
+ x = x | 0;
+ y = y | 0;
+ return (x | 0) % (y | 0) | 0 | 0;
+ }
+
+ function $1(x, y) {
+ x = x | 0;
+ y = y | 0;
+ return (x >>> 0) % (y >>> 0) | 0 | 0;
+ }
+
+ function $2(x, x$hi, y, y$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ y = y | 0;
+ y$hi = y$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$0 = y$hi;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = y$hi;
+ i64toi32_i32$1 = __wasm_i64_srem(x | 0, i64toi32_i32$0 | 0, y | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function $3(x, x$hi, y, y$hi) {
+ x = x | 0;
+ x$hi = x$hi | 0;
+ y = y | 0;
+ y$hi = y$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$0 = y$hi;
+ i64toi32_i32$0 = x$hi;
+ i64toi32_i32$1 = y$hi;
+ i64toi32_i32$1 = __wasm_i64_urem(x | 0, i64toi32_i32$0 | 0, y | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, var$2$hi = 0, i64toi32_i32$6 = 0, var$2 = 0, $20 = 0, $21 = 0, $7$hi = 0, $9 = 0, $9$hi = 0, $14$hi = 0, $16$hi = 0, $17$hi = 0, $19$hi = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0;
+ $20 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >> i64toi32_i32$4 | 0;
+ $20 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $20;
+ var$2$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$0 = var$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $7$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $7$hi;
+ i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$0 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0;
+ $9 = i64toi32_i32$4;
+ $9$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$2 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 63;
+ i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0;
+ $21 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$5 >> i64toi32_i32$0 | 0;
+ $21 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0;
+ }
+ var$0 = $21;
+ var$0$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0;
+ $14$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$2 = $14$hi;
+ i64toi32_i32$1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$5 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$5 | 0;
+ i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0;
+ $16$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = $9$hi;
+ i64toi32_i32$1 = $16$hi;
+ i64toi32_i32$1 = __wasm_i64_urem($9 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$HIGH_BITS;
+ $17$hi = i64toi32_i32$4;
+ i64toi32_i32$4 = var$2$hi;
+ i64toi32_i32$4 = $17$hi;
+ i64toi32_i32$2 = i64toi32_i32$1;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$3 = var$2;
+ i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$1 | 0;
+ $19$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$2$hi;
+ i64toi32_i32$1 = $19$hi;
+ i64toi32_i32$4 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0;
+ i64toi32_i32$2 = var$2$hi;
+ i64toi32_i32$5 = i64toi32_i32$4 - i64toi32_i32$3 | 0;
+ i64toi32_i32$6 = i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0;
+ i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$2 | 0;
+ i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$0 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$4 | 0;
+ }
+
+ function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, var$8$hi = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, var$7$hi = 0, $52 = 0, $60 = 0, $65$hi = 0, $67 = 0, $67$hi = 0, $68 = 0, $93 = 0, $124$hi = 0, $133$hi = 0, $138$hi = 0, var$8 = 0, $144 = 0, $144$hi = 0, $146$hi = 0, $148 = 0, $148$hi = 0, $155 = 0, $155$hi = 0, $158$hi = 0, var$7 = 0, $170$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
+ label$1 : {
+ label$2 : {
+ label$3 : {
+ label$4 : {
+ label$5 : {
+ label$6 : {
+ label$7 : {
+ label$8 : {
+ label$9 : {
+ label$10 : {
+ label$11 : {
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $40 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
+ $40 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$2 = $40;
+ if (var$2) block : {
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ if ((var$3 | 0) == (0 | 0)) break label$11;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$3 = 32;
+ i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $41 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
+ $41 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$4 = $41;
+ if ((var$4 | 0) == (0 | 0)) break label$9;
+ var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 <= 31 >>> 0) break label$8;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = 0;
+ if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) break label$2;
+ i64toi32_i32$1 = var$0$hi;
+ var$2 = var$0;
+ i64toi32_i32$1 = var$1$hi;
+ var$3 = var$1;
+ var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$0 - Math_imul(var$2, var$3) | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$2;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$3 = var$1;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$3 = $42;
+ i64toi32_i32$1 = var$0$hi;
+ if ((var$0 | 0) == (0 | 0)) break label$7;
+ if ((var$3 | 0) == (0 | 0)) break label$6;
+ var$4 = var$3 + 4294967295 | 0;
+ if (var$4 & var$3 | 0) break label$6;
+ $60 = __tempMemory__;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4 & var$2 | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $43 = 0;
+ } else {
+ i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $43 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ $65$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$1 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0;
+ $67 = i64toi32_i32$1 & i64toi32_i32$0 | 0;
+ $67$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $65$hi;
+ i64toi32_i32$3 = $43;
+ i64toi32_i32$1 = $67$hi;
+ i64toi32_i32$0 = $67;
+ i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0;
+ $68 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$3 = $60;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = $68;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$3;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ };
+ var$4 = var$3 + 4294967295 | 0;
+ if ((var$4 & var$3 | 0 | 0) == (0 | 0)) break label$5;
+ var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
+ var$3 = 0 - var$2 | 0;
+ break label$3;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ break label$3;
+ };
+ $93 = __tempMemory__;
+ var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 32;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $44 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $44 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ }
+ i64toi32_i32$2 = $93;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = $44;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$1;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$2 = var$4;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ };
+ var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0;
+ if (var$2 >>> 0 < 31 >>> 0) break label$4;
+ break label$2;
+ };
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$1 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = var$4 & var$0 | 0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$1;
+ wasm2js_i32$1 = i64toi32_i32$2;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ if ((var$3 | 0) == (1 | 0)) break label$1;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$2 = 0;
+ $124$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$1 = $124$hi;
+ i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $45 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0;
+ $45 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ i64toi32_i32$3 = $45;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$3 | 0;
+ };
+ var$3 = 63 - var$2 | 0;
+ var$2 = var$2 + 1 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$3 = 0;
+ $133$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$2 = var$0;
+ i64toi32_i32$1 = $133$hi;
+ i64toi32_i32$0 = var$2 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = 0;
+ $46 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ } else {
+ i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0;
+ $46 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
+ }
+ var$5 = $46;
+ var$5$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$1 = 0;
+ $138$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$3 = var$0;
+ i64toi32_i32$2 = $138$hi;
+ i64toi32_i32$0 = var$3 & 63 | 0;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ $47 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0;
+ $47 = i64toi32_i32$3 << i64toi32_i32$4 | 0;
+ }
+ var$0 = $47;
+ var$0$hi = i64toi32_i32$2;
+ label$13 : {
+ if (var$2) block3 : {
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$1 = var$1;
+ i64toi32_i32$3 = 4294967295;
+ i64toi32_i32$0 = 4294967295;
+ i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0;
+ i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0;
+ if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0;
+ var$8 = i64toi32_i32$4;
+ var$8$hi = i64toi32_i32$5;
+ label$15 : do {
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$2 = var$5;
+ i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ $48 = 0;
+ } else {
+ i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0;
+ $48 = i64toi32_i32$2 << i64toi32_i32$3 | 0;
+ }
+ $144 = $48;
+ $144$hi = i64toi32_i32$1;
+ i64toi32_i32$1 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = 0;
+ $49 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0;
+ $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0;
+ }
+ $146$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = $144$hi;
+ i64toi32_i32$1 = $144;
+ i64toi32_i32$5 = $146$hi;
+ i64toi32_i32$0 = $49;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0;
+ var$5$hi = i64toi32_i32$5;
+ $148 = var$5;
+ $148$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$5 = var$5$hi;
+ i64toi32_i32$5 = var$8$hi;
+ i64toi32_i32$2 = var$8;
+ i64toi32_i32$1 = var$5$hi;
+ i64toi32_i32$0 = var$5;
+ i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0;
+ i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0;
+ i64toi32_i32$5 = i64toi32_i32$3;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 63;
+ i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0;
+ $50 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ } else {
+ i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0;
+ $50 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0;
+ }
+ var$6 = $50;
+ var$6$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$1$hi;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$4 = var$6;
+ i64toi32_i32$5 = var$1$hi;
+ i64toi32_i32$0 = var$1;
+ i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0;
+ $155 = i64toi32_i32$4 & i64toi32_i32$0 | 0;
+ $155$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = $148$hi;
+ i64toi32_i32$2 = $148;
+ i64toi32_i32$4 = $155$hi;
+ i64toi32_i32$0 = $155;
+ i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0;
+ i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0;
+ i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0;
+ i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0;
+ var$5 = i64toi32_i32$1;
+ var$5$hi = i64toi32_i32$3;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $51 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $51 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $158$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$7$hi;
+ i64toi32_i32$2 = $158$hi;
+ i64toi32_i32$3 = $51;
+ i64toi32_i32$5 = var$7$hi;
+ i64toi32_i32$0 = var$7;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ var$0$hi = i64toi32_i32$5;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$2 = var$6;
+ i64toi32_i32$3 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0;
+ var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0;
+ var$6$hi = i64toi32_i32$3;
+ var$7 = var$6;
+ var$7$hi = i64toi32_i32$3;
+ var$2 = var$2 + 4294967295 | 0;
+ if (var$2) continue label$15;
+ break label$15;
+ } while (1);
+ break label$13;
+ };
+ };
+ i64toi32_i32$3 = var$5$hi;
+ i64toi32_i32$2 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = var$5;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$2;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = 1;
+ i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0;
+ if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) {
+ i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ $52 = 0;
+ } else {
+ i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0;
+ $52 = i64toi32_i32$5 << i64toi32_i32$4 | 0;
+ }
+ $170$hi = i64toi32_i32$2;
+ i64toi32_i32$2 = var$6$hi;
+ i64toi32_i32$2 = $170$hi;
+ i64toi32_i32$3 = $52;
+ i64toi32_i32$5 = var$6$hi;
+ i64toi32_i32$0 = var$6;
+ i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0;
+ i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
+ return i64toi32_i32$3 | 0;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = __tempMemory__;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = var$0;
+ HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
+ wasm2js_i32$0 = i64toi32_i32$5;
+ wasm2js_i32$1 = i64toi32_i32$3;
+ (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
+ i64toi32_i32$3 = 0;
+ var$0 = 0;
+ var$0$hi = i64toi32_i32$3;
+ };
+ i64toi32_i32$3 = var$0$hi;
+ i64toi32_i32$5 = var$0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$3;
+ return i64toi32_i32$5 | 0;
+ }
+
+ function __wasm_i64_srem(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
+ return i64toi32_i32$1 | 0;
+ }
+
+ function __wasm_i64_urem(var$0, var$0$hi, var$1, var$1$hi) {
+ var$0 = var$0 | 0;
+ var$0$hi = var$0$hi | 0;
+ var$1 = var$1 | 0;
+ var$1$hi = var$1$hi | 0;
+ var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, wasm2js_i32$0 = 0;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$0 = var$1$hi;
+ i64toi32_i32$0 = var$0$hi;
+ i64toi32_i32$1 = var$1$hi;
+ i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
+ i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$2 = __tempMemory__;
+ i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0;
+ i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24);
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function __wasm_ctz_i32(var$0) {
+ var$0 = var$0 | 0;
+ if (var$0) return 31 - Math_clz32((var$0 + 4294967295 | 0) ^ var$0 | 0) | 0 | 0;
+ return 32 | 0;
+ }
+
+ return {
+ no_dce_i32_rem_s: $0,
+ no_dce_i32_rem_u: $1,
+ no_dce_i64_rem_s: $2,
+ no_dce_i64_rem_u: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const no_dce_i32_rem_s = retasmFunc.no_dce_i32_rem_s;
+export const no_dce_i32_rem_u = retasmFunc.no_dce_i32_rem_u;
+export const no_dce_i64_rem_s = retasmFunc.no_dce_i64_rem_s;
+export const no_dce_i64_rem_u = retasmFunc.no_dce_i64_rem_u;
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(x) {
+ x = Math_fround(x);
+ return ~~x | 0;
+ }
+
+ function $1(x) {
+ x = Math_fround(x);
+ return ~~x >>> 0 | 0;
+ }
+
+ function $2(x) {
+ x = +x;
+ return ~~x | 0;
+ }
+
+ function $3(x) {
+ x = +x;
+ return ~~x >>> 0 | 0;
+ }
+
+ function $4(x) {
+ x = Math_fround(x);
+ var i64toi32_i32$0 = Math_fround(0), $4_1 = 0, $5_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = x;
+ if (Math_fround(Math_abs(i64toi32_i32$0)) >= Math_fround(1.0)) {
+ if (i64toi32_i32$0 > Math_fround(0.0)) $4_1 = ~~Math_fround(Math_min(Math_fround(Math_floor(Math_fround(i64toi32_i32$0 / Math_fround(4294967296.0)))), Math_fround(Math_fround(4294967296.0) - Math_fround(1.0)))) >>> 0; else $4_1 = ~~Math_fround(Math_ceil(Math_fround(Math_fround(i64toi32_i32$0 - Math_fround(~~i64toi32_i32$0 >>> 0 >>> 0)) / Math_fround(4294967296.0)))) >>> 0;
+ $5_1 = $4_1;
+ } else $5_1 = 0;
+ i64toi32_i32$1 = $5_1;
+ i64toi32_i32$2 = ~~i64toi32_i32$0 >>> 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function $5(x) {
+ x = Math_fround(x);
+ var i64toi32_i32$0 = Math_fround(0), $4_1 = 0, $5_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = x;
+ if (Math_fround(Math_abs(i64toi32_i32$0)) >= Math_fround(1.0)) {
+ if (i64toi32_i32$0 > Math_fround(0.0)) $4_1 = ~~Math_fround(Math_min(Math_fround(Math_floor(Math_fround(i64toi32_i32$0 / Math_fround(4294967296.0)))), Math_fround(Math_fround(4294967296.0) - Math_fround(1.0)))) >>> 0; else $4_1 = ~~Math_fround(Math_ceil(Math_fround(Math_fround(i64toi32_i32$0 - Math_fround(~~i64toi32_i32$0 >>> 0 >>> 0)) / Math_fround(4294967296.0)))) >>> 0;
+ $5_1 = $4_1;
+ } else $5_1 = 0;
+ i64toi32_i32$1 = $5_1;
+ i64toi32_i32$2 = ~~i64toi32_i32$0 >>> 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function $6(x) {
+ x = +x;
+ var i64toi32_i32$0 = 0.0, $4_1 = 0, $5_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = x;
+ if (Math_abs(i64toi32_i32$0) >= 1.0) {
+ if (i64toi32_i32$0 > 0.0) $4_1 = ~~Math_min(Math_floor(i64toi32_i32$0 / 4294967296.0), 4294967296.0 - 1.0) >>> 0; else $4_1 = ~~Math_ceil((i64toi32_i32$0 - +(~~i64toi32_i32$0 >>> 0 >>> 0)) / 4294967296.0) >>> 0;
+ $5_1 = $4_1;
+ } else $5_1 = 0;
+ i64toi32_i32$1 = $5_1;
+ i64toi32_i32$2 = ~~i64toi32_i32$0 >>> 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ }
+
+ function $7(x) {
+ x = +x;
+ var i64toi32_i32$0 = 0.0, $4_1 = 0, $5_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0;
+ i64toi32_i32$0 = x;
+ if (Math_abs(i64toi32_i32$0) >= 1.0) {
+ if (i64toi32_i32$0 > 0.0) $4_1 = ~~Math_min(Math_floor(i64toi32_i32$0 / 4294967296.0), 4294967296.0 - 1.0) >>> 0; else $4_1 = ~~Math_ceil((i64toi32_i32$0 - +(~~i64toi32_i32$0 >>> 0 >>> 0)) / 4294967296.0) >>> 0;
+ $5_1 = $4_1;
+ } else $5_1 = 0;
+ i64toi32_i32$1 = $5_1;
+ i64toi32_i32$2 = ~~i64toi32_i32$0 >>> 0;
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$2 | 0;
+ }
+
+ return {
+ no_dce_i32_trunc_s_f32: $0,
+ no_dce_i32_trunc_u_f32: $1,
+ no_dce_i32_trunc_s_f64: $2,
+ no_dce_i32_trunc_u_f64: $3,
+ no_dce_i64_trunc_s_f32: $4,
+ no_dce_i64_trunc_u_f32: $5,
+ no_dce_i64_trunc_s_f64: $6,
+ no_dce_i64_trunc_u_f64: $7
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const no_dce_i32_trunc_s_f32 = retasmFunc.no_dce_i32_trunc_s_f32;
+export const no_dce_i32_trunc_u_f32 = retasmFunc.no_dce_i32_trunc_u_f32;
+export const no_dce_i32_trunc_s_f64 = retasmFunc.no_dce_i32_trunc_s_f64;
+export const no_dce_i32_trunc_u_f64 = retasmFunc.no_dce_i32_trunc_u_f64;
+export const no_dce_i64_trunc_s_f32 = retasmFunc.no_dce_i64_trunc_s_f32;
+export const no_dce_i64_trunc_u_f32 = retasmFunc.no_dce_i64_trunc_u_f32;
+export const no_dce_i64_trunc_s_f64 = retasmFunc.no_dce_i64_trunc_s_f64;
+export const no_dce_i64_trunc_u_f64 = retasmFunc.no_dce_i64_trunc_u_f64;
+
+function asmFunc(global, env, buffer) {
+ "use asm";
+ 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;
+ var i64toi32_i32$HIGH_BITS = 0;
+ function $0(i) {
+ i = i | 0;
+ return HEAP32[i >> 2] | 0 | 0;
+ }
+
+ function $1(i) {
+ i = i | 0;
+ var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0;
+ i64toi32_i32$2 = i;
+ i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0;
+ i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24);
+ i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
+ return i64toi32_i32$0 | 0;
+ }
+
+ function $2(i) {
+ i = i | 0;
+ return Math_fround(Math_fround(HEAPF32[i >> 2]));
+ }
+
+ function $3(i) {
+ i = i | 0;
+ return +(+HEAPF64[i >> 3]);
+ }
+
+ return {
+ no_dce_i32_load: $0,
+ no_dce_i64_load: $1,
+ no_dce_f32_load: $2,
+ no_dce_f64_load: $3
+ };
+}
+
+const memasmFunc = new ArrayBuffer(65536);
+const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc);
+export const no_dce_i32_load = retasmFunc.no_dce_i32_load;
+export const no_dce_i64_load = retasmFunc.no_dce_i64_load;
+export const no_dce_f32_load = retasmFunc.no_dce_f32_load;
+export const no_dce_f64_load = retasmFunc.no_dce_f64_load;
diff --git a/test/wasm2js/unaligned.2asm.js b/test/wasm2js/unaligned.2asm.js
index 7cd350b7f..e30a43f05 100644
--- a/test/wasm2js/unaligned.2asm.js
+++ b/test/wasm2js/unaligned.2asm.js
@@ -1,3 +1,4 @@
+import { __tempMemory__ } from 'env';
function asmFunc(global, env, buffer) {
"use asm";
@@ -21,6 +22,7 @@ function asmFunc(global, env, buffer) {
var abort = env.abort;
var nan = global.NaN;
var infinity = global.Infinity;
+ var __tempMemory__ = env.__tempMemory__ | 0;
var i64toi32_i32$HIGH_BITS = 0;
function $0() {
var wasm2js_i32$0 = 0;
@@ -45,13 +47,13 @@ function asmFunc(global, env, buffer) {
var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0;
i64toi32_i32$2 = 0;
i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24);
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = (wasm2js_i32$2 = i64toi32_i32$2, HEAPU8[wasm2js_i32$2 >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$2 + 1 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$2 + 2 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$2 + 3 | 0) >> 0] | 0 | 0) << 24);
HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_i32$1 = i64toi32_i32$1;
HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1;
- return +(+HEAPF64[0 >> 3]);
+ return +(+HEAPF64[__tempMemory__ >> 3]);
}
function $4() {
@@ -81,13 +83,13 @@ function asmFunc(global, env, buffer) {
function $7() {
var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0;
- wasm2js_i32$0 = 0;
+ wasm2js_i32$0 = __tempMemory__;
wasm2js_f64$0 = 0.0;
HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0;
- i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0;
+ i64toi32_i32$0 = HEAP32[(__tempMemory__ + 4 | 0) >> 2] | 0;
i64toi32_i32$1 = 0;
wasm2js_i32$0 = i64toi32_i32$1;
- wasm2js_i32$1 = HEAP32[0 >> 2] | 0;
+ wasm2js_i32$1 = HEAP32[__tempMemory__ >> 2] | 0;
(wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[wasm2js_i32$2 >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 1 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 2 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 3 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0;
wasm2js_i32$0 = i64toi32_i32$1;
wasm2js_i32$1 = i64toi32_i32$0;