From 00cf3ca6797d6edf27b8bd82e25bd1fe50ea311c Mon Sep 17 00:00:00 2001 From: John Plevyak Date: Fri, 22 Feb 2019 11:14:49 -0800 Subject: [PATCH] Add low level WASM Stats support. --- api/wasm/cpp/proxy_wasm_intrinsics.h | 27 + api/wasm/cpp/proxy_wasm_intrinsics.js | 4 + .../wasm/envoy_filter_http_wasm_example.wat | 20242 ++++++++++++++++ examples/wasm/envoy_wasm_example.wasm | 0 include/envoy/server/wasm_config.h | 4 + .../extensions/access_loggers/wasm/config.cc | 2 +- source/extensions/common/wasm/wasm.cc | 130 +- source/extensions/common/wasm/wasm.h | 50 +- source/extensions/common/wasm/wavm/wavm.cc | 9 + .../filters/http/wasm/wasm_filter.cc | 2 +- source/extensions/wasm/config.cc | 6 +- source/server/server.cc | 3 +- source/server/wasm_config_impl.h | 8 +- .../access_loggers/wasm/config_test.cc | 6 +- .../filters/http/wasm/config_test.cc | 1 + .../filters/http/wasm/wasm_filter_test.cc | 8 +- test/extensions/wasm/config_test.cc | 32 +- test/extensions/wasm/test_data/Makefile | 2 +- test/extensions/wasm/test_data/stats.cc | 22 + test/extensions/wasm/test_data/stats.wasm | Bin 0 -> 114614 bytes test/extensions/wasm/test_data/stats.wat | 12189 ++++++++++ test/extensions/wasm/wasm_test.cc | 51 +- 22 files changed, 32758 insertions(+), 40 deletions(-) create mode 100644 examples/wasm/envoy_filter_http_wasm_example.wat delete mode 100644 examples/wasm/envoy_wasm_example.wasm create mode 100644 test/extensions/wasm/test_data/stats.cc create mode 100644 test/extensions/wasm/test_data/stats.wasm create mode 100644 test/extensions/wasm/test_data/stats.wat diff --git a/api/wasm/cpp/proxy_wasm_intrinsics.h b/api/wasm/cpp/proxy_wasm_intrinsics.h index 84fbb37687604..200e2d7fde8dd 100644 --- a/api/wasm/cpp/proxy_wasm_intrinsics.h +++ b/api/wasm/cpp/proxy_wasm_intrinsics.h @@ -134,6 +134,19 @@ extern "C" uint32_t proxy_httpCall(const char* uri_ptr, size_t uri_size, void* h void* trailer_pairs_ptr, size_t trailer_pairs_size, uint32_t timeout_milliseconds); +// Metrics + +enum class MetricType : uint32_t { + Counter = 0, + Gauge = 1, + Histogram = 2, +}; +// Returns a metric_id which can be used to report a metric. On error returns 0. +extern "C" uint32_t proxy_defineMetric(MetricType type, const char* name_ptr, size_t name_size); +extern "C" void proxy_incrementMetric(uint32_t metric_id, int64_t offset); +extern "C" void proxy_recordMetric(uint32_t metric_id, uint64_t value); +extern "C" uint64_t proxy_getMetric(uint32_t metric_id); + // // High Level C++ API. // @@ -479,3 +492,17 @@ inline uint32_t httpCall(std::string_view uri, const HeaderStringPairs& request_ ::free(trailers_ptr); return result; } + +inline uint32_t defineMetric(MetricType type, std::string_view name) { + return proxy_defineMetric(type, name.data(), name.size()); +} + +inline void incrementMetric(uint32_t metric_id, int64_t offset) { + proxy_incrementMetric(metric_id, offset); +} + +inline void recordMetric(uint32_t metric_id, uint64_t value) { + proxy_recordMetric(metric_id, value); +} + +inline uint64_t getMetric(uint32_t metric_id) { return proxy_getMetric(metric_id); } diff --git a/api/wasm/cpp/proxy_wasm_intrinsics.js b/api/wasm/cpp/proxy_wasm_intrinsics.js index 333c28f82c705..df1c5c42a0334 100644 --- a/api/wasm/cpp/proxy_wasm_intrinsics.js +++ b/api/wasm/cpp/proxy_wasm_intrinsics.js @@ -31,4 +31,8 @@ mergeInto(LibraryManager.library, { proxy_removeResponseTrailer: function () {}, proxy_getResponseBodyBufferBytes: function () {}, proxy_httpCall: function () {}, + proxy_defineMetric: function () {}, + proxy_incrementMetric: function () {}, + proxy_recordMetric: function () {}, + proxy_getMetric: function () {}, }); diff --git a/examples/wasm/envoy_filter_http_wasm_example.wat b/examples/wasm/envoy_filter_http_wasm_example.wat new file mode 100644 index 0000000000000..42e1cda30cdef --- /dev/null +++ b/examples/wasm/envoy_filter_http_wasm_example.wat @@ -0,0 +1,20242 @@ +(module + (type $0 (func (param i32 i32))) + (type $1 (func (param i32))) + (type $2 (func (param i32 i32 i32 i32 i32))) + (type $3 (func (param i32 i32 i32) (result i32))) + (type $4 (func (param i32) (result i32))) + (type $5 (func)) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32 i32 i32))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i32 i32))) + (type $10 (func (param i32 i32 i32 i32 i32 i32 i32 i32))) + (type $11 (func (param i32 i32) (result i32))) + (type $12 (func (param i32 i32 i32 i32) (result i32))) + (type $13 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $14 (func (param i64 i32 i32) (result i32))) + (type $15 (func (param i64 i32) (result i32))) + (type $16 (func (param i32 f64 i32 i32 i32 i32) (result i32))) + (type $17 (func (param f64) (result i64))) + (type $18 (func (param f64 i32) (result f64))) + (type $19 (func (param i32 i32 i32 i32 i32 i32 i32))) + (import "env" "abort" (func $abort (param i32))) + (import "env" "abortOnCannotGrowMemory" (func $abortOnCannotGrowMemory (result i32))) + (import "env" "___cxa_allocate_exception" (func $___cxa_allocate_exception (param i32) (result i32))) + (import "env" "___cxa_throw" (func $___cxa_throw (param i32 i32 i32))) + (import "env" "___setErrNo" (func $___setErrNo (param i32))) + (import "env" "_abort" (func $_abort)) + (import "env" "_emscripten_get_heap_size" (func $_emscripten_get_heap_size (result i32))) + (import "env" "_emscripten_memcpy_big" (func $_emscripten_memcpy_big (param i32 i32 i32) (result i32))) + (import "env" "_emscripten_resize_heap" (func $_emscripten_resize_heap (param i32) (result i32))) + (import "env" "_proxy_addResponseHeader" (func $_proxy_addResponseHeader (param i32 i32 i32 i32))) + (import "env" "_proxy_getRequestBodyBufferBytes" (func $_proxy_getRequestBodyBufferBytes (param i32 i32 i32 i32))) + (import "env" "_proxy_getRequestHeaderPairs" (func $_proxy_getRequestHeaderPairs (param i32 i32))) + (import "env" "_proxy_getResponseHeaderPairs" (func $_proxy_getResponseHeaderPairs (param i32 i32))) + (import "env" "_proxy_log" (func $_proxy_log (param i32 i32 i32))) + (import "env" "_proxy_replaceResponseHeader" (func $_proxy_replaceResponseHeader (param i32 i32 i32 i32))) + (import "env" "table" (table $20 47 47 anyfunc)) + (import "env" "memory" (memory $21 256 256)) + (import "env" "__table_base" (global $22 i32)) + (import "env" "DYNAMICTOP_PTR" (global $23 i32)) + (export "__GLOBAL__sub_I_proxy_wasm_intrinsics_cc" (func $__GLOBAL__sub_I_proxy_wasm_intrinsics_cc)) + (export "___errno_location" (func $___errno_location)) + (export "_free" (func $_free)) + (export "_llvm_bswap_i32" (func $_llvm_bswap_i32)) + (export "_malloc" (func $_malloc)) + (export "_memcpy" (func $_memcpy)) + (export "_memmove" (func $_memmove)) + (export "_memset" (func $_memset)) + (export "_proxy_onConfigure" (func $_proxy_onConfigure)) + (export "_proxy_onCreate" (func $_proxy_onCreate)) + (export "_proxy_onDelete" (func $_proxy_onDelete)) + (export "_proxy_onDone" (func $_proxy_onDone)) + (export "_proxy_onHttpCallResponse" (func $_proxy_onHttpCallResponse)) + (export "_proxy_onLog" (func $_proxy_onLog)) + (export "_proxy_onRequestBody" (func $_proxy_onRequestBody)) + (export "_proxy_onRequestHeaders" (func $_proxy_onRequestHeaders)) + (export "_proxy_onRequestTrailers" (func $_proxy_onRequestTrailers)) + (export "_proxy_onResponseBody" (func $_proxy_onResponseBody)) + (export "_proxy_onResponseHeaders" (func $_proxy_onResponseHeaders)) + (export "_proxy_onResponseTrailers" (func $_proxy_onResponseTrailers)) + (export "_proxy_onStart" (func $_proxy_onStart)) + (export "_sbrk" (func $_sbrk)) + (export "dynCall_ii" (func $dynCall_ii)) + (export "dynCall_iiii" (func $dynCall_iiii)) + (export "dynCall_v" (func $dynCall_v)) + (export "dynCall_vi" (func $dynCall_vi)) + (export "dynCall_vii" (func $dynCall_vii)) + (export "dynCall_viiii" (func $dynCall_viiii)) + (export "dynCall_viiiii" (func $dynCall_viiiii)) + (export "dynCall_viiiiii" (func $dynCall_viiiiii)) + (export "establishStackSpace" (func $establishStackSpace)) + (export "setThrew" (func $setThrew)) + (export "stackAlloc" (func $stackAlloc)) + (export "stackRestore" (func $stackRestore)) + (export "stackSave" (func $stackSave)) + (global $24 (mut i32) (get_global $23)) + (global $25 (mut i32) (i32.const 0)) + (global $26 (mut i32) (i32.const 0)) + (global $27 (mut i32) (i32.const 6816)) + (global $28 (mut i32) (i32.const 5249696)) + (elem $20 (get_global $22) + $b0 $__ZN14ExampleContext16onRequestHeadersEv $__ZN7Context17onRequestTrailersEv $__ZN14ExampleContext17onResponseHeadersEv $__ZN7Context17onRequestTrailersEv $__ZNKSt11logic_error4whatEv $b0 $b0 + $b1 $__ZN14ExampleContext13onRequestBodyEmb $__ZN7Context14onResponseBodyEmb $_sn_write $__ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv $b1 $b1 $b1 + $b2 $b3 $__ZN7ContextD2Ev $__ZN14ExampleContextD0Ev $__ZN14ExampleContext7onStartEv $__ZN14ExampleContext8onCreateEv $__ZN14ExampleContext6onDoneEv $__ZN14ExampleContext5onLogEv + $__ZN14ExampleContext8onDeleteEv $__ZN7ContextD2Ev $__ZN10__cxxabiv117__class_type_infoD0Ev $__ZN7ContextD2Ev $__ZN7ContextD2Ev $__ZN10__cxxabiv117__class_type_infoD0Ev $__ZNSt11logic_errorD2Ev $__ZNSt11logic_errorD0Ev + $__ZNSt11logic_errorD0Ev $b4 $__ZN7Context11onConfigureENSt3__210unique_ptrI8WasmDataNS0_14default_deleteIS2_EEEE $b5 $__ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi $__ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi $b5 $b6 + $__ZN7Context18onHttpCallResponseEjNSt3__210unique_ptrI8WasmDataNS0_14default_deleteIS2_EEEES5_S5_ $__ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib $__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib $b7 $__ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib $__ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib $b7) + (data $21 (i32.const 1024) + "\11\00\n\00\11\11\11\00\00\00\00\05\00\00\00\00\00\00\09\00\00\00\00\0b") + (data $21 (i32.const 1056) + "\11\00\0f\n\11\11\11\03\n\07\00\01\13\09\0b\0b\00\00\09\06\0b\00\00\0b\00\06\11\00\00\00\11\11\11") + (data $21 (i32.const 1105) + "\0b") + (data $21 (i32.const 1114) + "\11\00\n\n\11\11\11\00\n\00\00\02\00\09\0b\00\00\00\09\00\0b\00\00\0b") + (data $21 (i32.const 1163) + "\0c") + (data $21 (i32.const 1175) + "\0c\00\00\00\00\0c\00\00\00\00\09\0c\00\00\00\00\00\0c\00\00\0c") + (data $21 (i32.const 1221) + "\0e") + (data $21 (i32.const 1233) + "\0d\00\00\00\04\0d\00\00\00\00\09\0e\00\00\00\00\00\0e\00\00\0e") + (data $21 (i32.const 1279) + "\10") + (data $21 (i32.const 1291) + "\0f\00\00\00\00\0f\00\00\00\00\09\10\00\00\00\00\00\10\00\00\10\00\00\12\00\00\00\12\12\12") + (data $21 (i32.const 1346) + "\12\00\00\00\12\12\12\00\00\00\00\00\00\09") + (data $21 (i32.const 1395) + "\0b") + (data $21 (i32.const 1407) + "\n\00\00\00\00\n\00\00\00\00\09\0b\00\00\00\00\00\0b\00\00\0b") + (data $21 (i32.const 1453) + "\0c") + (data $21 (i32.const 1465) + "\0c\00\00\00\00\0c\00\00\00\00\09\0c\00\00\00\00\00\0c\00\00\0c\00\000123456789ABCDEFT!\"\19\0d\01\02\03\11K\1c\0c\10\04\0b\1d\12\1e'hnopqb" + " \05\06\0f\13\14\15\1a\08\16\07($\17\18\09\n\0e\1b\1f%#\83\82}&*+<=>?CGJMXYZ[\\]^_`acdefgijklrstyz{|") + (data $21 (i32.const 1600) + "Illegal byte sequence\00Domain error\00Result not representable\00Not " + "a tty\00Permission denied\00Operation not permitted\00No such file or " + "directory\00No such process\00File exists\00Value too large for data t" + "ype\00No space left on device\00Out of memory\00Resource busy\00Interrup" + "ted system call\00Resource temporarily unavailable\00Invalid seek\00Cr" + "oss-device link\00Read-only file system\00Directory not empty\00Connec" + "tion reset by peer\00Operation timed out\00Connection refused\00Host i" + "s down\00Host is unreachable\00Address in use\00Broken pipe\00I/O error\00" + "No such device or address\00Block device required\00No such device\00N" + "ot a directory\00Is a directory\00Text file busy\00Exec format error\00I" + "nvalid argument\00Argument list too long\00Symbolic link loop\00Filena" + "me too long\00Too many open files in system\00No file descriptors av" + "ailable\00Bad file descriptor\00No child process\00Bad address\00File to" + "o large\00Too many links\00No locks available\00Resource deadlock woul" + "d occur\00State not recoverable\00Previous owner died\00Operation canc" + "eled\00Function not implemented\00No message of desired type\00Identif" + "ier removed\00Device not a stream\00No data available\00Device timeout" + "\00Out of streams resources\00Link has been severed\00Protocol error\00B" + "ad message\00File descriptor in bad state\00Not a socket\00Destination" + " address required\00Message too large\00Protocol wrong type for sock" + "et\00Protocol not available\00Protocol not supported\00Socket type not" + " supported\00Not supported\00Protocol family not supported\00Address f" + "amily not supported by protocol\00Address not available\00Network is" + " down\00Network unreachable\00Connection reset by network\00Connection" + " aborted\00No buffer space available\00Socket is connected\00Socket no" + "t connected\00Cannot send after socket shutdown\00Operation already " + "in progress\00Operation in progress\00Stale file handle\00Remote I/O e" + "rror\00Quota exceeded\00No medium found\00Wrong medium type\00No error i" + "nformation") + (data $21 (i32.const 3412) + "\02\00\00\00\03\00\00\00\05\00\00\00\07\00\00\00\0b\00\00\00\0d\00\00\00\11\00\00\00\13\00\00\00\17\00\00\00\1d\00\00\00\1f\00\00\00%\00\00\00)\00\00\00+\00\00\00/\00\00\005\00\00\00" + ";\00\00\00=\00\00\00C\00\00\00G\00\00\00I\00\00\00O\00\00\00S\00\00\00Y\00\00\00a\00\00\00e\00\00\00g\00\00\00k\00\00\00m\00\00\00q\00\00\00\7f\00\00\00\83\00\00\00" + "\89\00\00\00\8b\00\00\00\95\00\00\00\97\00\00\00\9d\00\00\00\a3\00\00\00\a7\00\00\00\ad\00\00\00\b3\00\00\00\b5\00\00\00\bf\00\00\00\c1\00\00\00\c5\00\00\00\c7\00\00\00\d3\00\00\00\01\00\00\00" + "\0b\00\00\00\0d\00\00\00\11\00\00\00\13\00\00\00\17\00\00\00\1d\00\00\00\1f\00\00\00%\00\00\00)\00\00\00+\00\00\00/\00\00\005\00\00\00;\00\00\00=\00\00\00C\00\00\00G\00\00\00" + "I\00\00\00O\00\00\00S\00\00\00Y\00\00\00a\00\00\00e\00\00\00g\00\00\00k\00\00\00m\00\00\00q\00\00\00y\00\00\00\7f\00\00\00\83\00\00\00\89\00\00\00\8b\00\00\00\8f\00\00\00" + "\95\00\00\00\97\00\00\00\9d\00\00\00\a3\00\00\00\a7\00\00\00\a9\00\00\00\ad\00\00\00\b3\00\00\00\b5\00\00\00\bb\00\00\00\bf\00\00\00\c1\00\00\00\c5\00\00\00\c7\00\00\00\d1\00\00\00\04\11\00\00" + "\1b\12\00\00,\11\00\00\n\12\00\00\d0\0e\00\00\00\00\00\00\04\11\00\00\a5\12\00\00,\11\00\00\05\13\00\00\00\0f\00\00\00\00\00\00,\11\00\00\b2\12\00\00\10\0f\00\00\00\00\00\00\04\11\00\00" + "\d3\12\00\00,\11\00\00\e0\12\00\00\f0\0e\00\00\00\00\00\00,\11\00\00'\13\00\00\e8\0e\00\00\00\00\00\00,\11\00\007\13\00\00(\0f") + (data $21 (i32.const 3916) + "\d8\0e\00\00\01\00\00\00\02\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\02\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\01") + (data $21 (i32.const 4016) + "\03") + (data $21 (i32.const 4055) + "\ff\ff\ff\ff\ff") + (data $21 (i32.const 4292) + "\8c\13") + (data $21 (i32.const 4352) + "\f0\0e\00\00\08\00\00\00\09\00\00\00\n\00\00\00\0b\00\00\00\04\00\00\00\01\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\18\0f\00\00\08\00\00\00\0c\00\00\00\n\00\00\00\0b\00\00\00\04\00\00\00" + "\02\00\00\00\03\00\00\00\02\00\00\00\00\00\00\00(\0f\00\00\0d\00\00\00\0e\00\00\00\05\00\00\00\00\00\00\008\0f\00\00\0d\00\00\00\0f\00\00\00\05\00\00\00onStart\00onCr" + "eate \00onRequestHeaders \00headers: \00onResponseHeaders \00newheader\00n" + "ewheadervalue\00location\00envoy-wasm\00onRequestBody \00onDone \00onLog \00" + "onDelete \0014ExampleContext\007Context\00allocator::allocate(size_" + "t n) 'n' exceeds maximum supported size\00-+ 0X0x\00(null)\00-0X+0X " + "0X-0x+0x 0x\00inf\00INF\00nan\00NAN\00.\00%u\00%lu\00St9exception\00N10__cxxabiv11" + "6__shim_type_infoE\00St9type_info\00N10__cxxabiv120__si_class_type_i" + "nfoE\00N10__cxxabiv117__class_type_infoE\00St11logic_error\00St12lengt" + "h_error") + + (func $stackAlloc (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + get_global $27 + set_local $1 + get_local $0 + get_global $27 + i32.add + set_global $27 + get_global $27 + i32.const 15 + i32.add + i32.const -16 + i32.and + set_global $27 + get_local $1 + ) + + (func $stackSave (type $8) + (result i32) + get_global $27 + ) + + (func $stackRestore (type $1) + (param $0 i32) + get_local $0 + set_global $27 + ) + + (func $establishStackSpace (type $0) + (param $0 i32) + (param $1 i32) + get_local $0 + set_global $27 + get_local $1 + set_global $28 + ) + + (func $setThrew (type $0) + (param $0 i32) + (param $1 i32) + get_global $25 + i32.eqz + if $if + get_local $0 + set_global $25 + get_local $1 + set_global $26 + end ;; $if + ) + + (func $__ZN7Context3NewEj (type $0) + (param $0 i32) + (param $1 i32) + (local $2 i32) + i32.const 8 + call $__Znwm + tee_local $2 + get_local $1 + i32.store offset=4 + get_local $2 + i32.const 3920 + i32.store + get_local $0 + get_local $2 + i32.store + ) + + (func $__ZN14ExampleContext7onStartEv (type $1) + (param $0 i32) + (local $1 i32) + get_global $27 + set_local $0 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $0 + i32.const 0 + i32.store offset=8 + get_local $0 + i32.const 11 + i32.add + tee_local $1 + i32.const 7 + i32.store8 + get_local $0 + i32.const 4468 + i32.load align=1 + i32.store align=1 + get_local $0 + i32.const 4472 + i32.load16_s align=1 + i32.store16 offset=4 align=1 + get_local $0 + i32.const 4474 + i32.load8_s + i32.store8 offset=6 + get_local $0 + i32.const 0 + i32.store8 offset=7 + i32.const 0 + get_local $0 + i32.const 7 + call $_proxy_log + get_local $1 + i32.load8_s + i32.const 0 + i32.ge_s + if $if + get_local $0 + set_global $27 + return + end ;; $if + get_local $0 + i32.load + call $__ZdlPv + get_local $0 + set_global $27 + ) + + (func $__ZN14ExampleContext8onCreateEv (type $1) + (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + get_global $27 + set_local $1 + get_global $27 + i32.const 32 + i32.add + set_global $27 + get_local $1 + i32.const 12 + i32.add + set_local $2 + get_local $1 + get_local $0 + i32.load offset=4 + call $__ZNSt3__29to_stringEj + get_local $2 + get_local $1 + i32.const 4476 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6insertEmPKc + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $2 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + i32.const 3 + get_local $2 + i32.load + get_local $2 + get_local $2 + i32.const 11 + i32.add + tee_local $0 + i32.load8_s + tee_local $3 + i32.const 0 + i32.lt_s + tee_local $4 + select + get_local $2 + i32.load offset=4 + get_local $3 + i32.const 255 + i32.and + get_local $4 + select + call $_proxy_log + get_local $0 + i32.load8_s + i32.const 0 + i32.lt_s + if $if + get_local $2 + i32.load + call $__ZdlPv + end ;; $if + get_local $1 + i32.load8_s offset=11 + i32.const 0 + i32.ge_s + if $if_0 + get_local $1 + set_global $27 + return + end ;; $if_0 + get_local $1 + i32.load + call $__ZdlPv + get_local $1 + set_global $27 + ) + + (func $__ZN14ExampleContext16onRequestHeadersEv (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i64) + (local $28 i64) + get_global $27 + set_local $11 + get_global $27 + i32.const 80 + i32.add + set_global $27 + get_local $11 + i32.const 60 + i32.add + set_local $4 + get_local $11 + i32.const 36 + i32.add + set_local $5 + get_local $11 + i32.const 24 + i32.add + set_local $6 + get_local $11 + i32.const 12 + i32.add + set_local $12 + get_local $11 + tee_local $8 + i32.const 48 + i32.add + tee_local $3 + i32.const 32 + call $__Znwm + tee_local $7 + i32.store + get_local $3 + i32.const -2147483616 + i32.store offset=8 + get_local $3 + i32.const 17 + i32.store offset=4 + get_local $7 + i32.const 4486 + i64.load align=1 + i64.store align=1 + get_local $7 + i32.const 4494 + i64.load align=1 + i64.store offset=8 align=1 + get_local $7 + i32.const 4502 + i32.load8_s + i32.store8 offset=16 + get_local $7 + i32.const 0 + i32.store8 offset=17 + get_local $5 + get_local $0 + i32.load offset=4 + call $__ZNSt3__29to_stringEj + get_local $4 + get_local $3 + get_local $5 + i32.load + get_local $5 + get_local $5 + i32.const 11 + i32.add + tee_local $7 + i32.load8_s + tee_local $0 + i32.const 0 + i32.lt_s + tee_local $1 + select + get_local $5 + i32.load offset=4 + get_local $0 + i32.const 255 + i32.and + get_local $1 + select + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $4 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + i32.const 1 + get_local $4 + i32.load + get_local $4 + get_local $4 + i32.const 11 + i32.add + tee_local $0 + i32.load8_s + tee_local $1 + i32.const 0 + i32.lt_s + tee_local $2 + select + get_local $4 + i32.load offset=4 + get_local $1 + i32.const 255 + i32.and + get_local $2 + select + call $_proxy_log + get_local $0 + i32.load8_s + i32.const 0 + i32.lt_s + if $if + get_local $4 + i32.load + call $__ZdlPv + end ;; $if + get_local $7 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_0 + get_local $5 + i32.load + call $__ZdlPv + end ;; $if_0 + get_local $3 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if_1 + get_local $3 + i32.load + call $__ZdlPv + end ;; $if_1 + get_local $4 + i32.const 0 + i32.store + get_local $3 + i32.const 0 + i32.store + get_local $4 + get_local $3 + call $_proxy_getRequestHeaderPairs + i32.const 8 + call $__Znwm + set_local $14 + get_local $3 + i32.load + set_local $0 + get_local $14 + get_local $4 + i32.load + tee_local $1 + i32.store + get_local $14 + get_local $0 + i32.store offset=4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 4 + i32.add + tee_local $0 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=8 + get_local $1 + if $if_2 (result i32) + block $block (result i32) + get_local $1 + i32.const 4 + i32.add + set_local $7 + get_local $1 + i32.load + tee_local $9 + if $if_3 + get_local $4 + get_local $9 + call $__ZNSt3__26vectorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEES5_EENS_9allocatorIS6_EEE8__appendEm + get_local $9 + i32.const 0 + i32.le_s + if $if_4 + get_local $4 + i32.load + set_local $1 + get_local $0 + br $block + end ;; $if_4 + i32.const 0 + set_local $2 + get_local $7 + get_local $9 + i32.const 3 + i32.shl + i32.add + set_local $10 + get_local $4 + i32.load + set_local $1 + loop $loop + get_local $7 + i32.load + set_local $13 + get_local $2 + i32.const 4 + i32.shl + get_local $1 + i32.add + get_local $10 + i32.store + get_local $2 + i32.const 4 + i32.shl + get_local $1 + i32.add + get_local $13 + i32.store offset=4 + get_local $7 + i32.load offset=4 + set_local $15 + get_local $7 + i32.const 8 + i32.add + set_local $7 + get_local $4 + i32.load + tee_local $1 + get_local $2 + i32.const 4 + i32.shl + i32.add + get_local $10 + get_local $13 + i32.const 1 + i32.add + i32.add + tee_local $10 + i32.store offset=8 + get_local $2 + i32.const 4 + i32.shl + get_local $1 + i32.add + get_local $15 + i32.store offset=12 + get_local $10 + get_local $15 + i32.const 1 + i32.add + i32.add + set_local $10 + get_local $2 + i32.const 1 + i32.add + tee_local $2 + get_local $9 + i32.ne + br_if $loop + end ;; $loop + else + i32.const 0 + set_local $1 + end ;; $if_3 + get_local $0 + end ;; $block + else + i32.const 0 + set_local $1 + get_local $0 + end ;; $if_2 + set_local $7 + get_local $5 + i64.const 0 + i64.store align=4 + get_local $5 + i32.const 0 + i32.store offset=8 + get_local $5 + i32.const 11 + i32.add + tee_local $2 + i32.const 9 + i32.store8 + get_local $5 + i32.const 4504 + i64.load align=1 + i64.store align=1 + get_local $5 + i32.const 4512 + i32.load8_s + i32.store8 offset=8 + get_local $5 + i32.const 0 + i32.store8 offset=9 + get_local $6 + get_local $7 + i32.load + get_local $1 + i32.sub + i32.const 4 + i32.shr_s + call $__ZNSt3__29to_stringEm + get_local $3 + get_local $5 + get_local $6 + i32.load + get_local $6 + get_local $6 + i32.const 11 + i32.add + tee_local $10 + i32.load8_s + tee_local $1 + i32.const 0 + i32.lt_s + tee_local $9 + select + get_local $6 + i32.load offset=4 + get_local $1 + i32.const 255 + i32.and + get_local $9 + select + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $1 + i64.load align=4 + i64.store align=4 + get_local $3 + get_local $1 + i32.load offset=8 + i32.store offset=8 + get_local $1 + i64.const 0 + i64.store align=4 + get_local $1 + i32.const 0 + i32.store offset=8 + i32.const 2 + get_local $3 + i32.load + get_local $3 + get_local $3 + i32.const 11 + i32.add + tee_local $1 + i32.load8_s + tee_local $9 + i32.const 0 + i32.lt_s + tee_local $13 + select + get_local $3 + i32.load offset=4 + get_local $9 + i32.const 255 + i32.and + get_local $13 + select + call $_proxy_log + get_local $1 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_5 + get_local $3 + i32.load + call $__ZdlPv + end ;; $if_5 + get_local $10 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_6 + get_local $6 + i32.load + call $__ZdlPv + end ;; $if_6 + get_local $2 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_7 + get_local $5 + i32.load + call $__ZdlPv + end ;; $if_7 + get_local $4 + i32.load + tee_local $1 + get_local $0 + i32.load + tee_local $20 + i32.eq + if $if_8 + get_local $1 + set_local $16 + else + block $block_0 + get_local $6 + i32.const 11 + i32.add + set_local $9 + get_local $12 + i32.const 11 + i32.add + set_local $13 + get_local $12 + i32.const 4 + i32.add + set_local $21 + get_local $6 + i32.const 8 + i32.add + set_local $22 + get_local $6 + i32.const 4 + i32.add + set_local $23 + get_local $8 + i32.const 11 + i32.add + set_local $10 + get_local $8 + i32.const 4 + i32.add + set_local $15 + get_local $3 + i32.const 11 + i32.add + set_local $19 + get_local $3 + i32.const 4 + i32.add + set_local $24 + get_local $8 + i32.const 8 + i32.add + set_local $25 + get_local $5 + i32.const 11 + i32.add + set_local $26 + block $block_1 + block $block_2 + block $block_3 + loop $loop_0 + get_local $1 + i64.load align=4 + tee_local $27 + i64.const 32 + i64.shr_u + tee_local $28 + i32.wrap/i64 + set_local $2 + get_local $6 + i64.const 0 + i64.store align=4 + get_local $6 + i32.const 0 + i32.store offset=8 + get_local $2 + i32.const -17 + i32.gt_u + br_if $block_3 + get_local $27 + i32.wrap/i64 + set_local $17 + block $block_4 + block $block_5 + get_local $2 + i32.const 11 + i32.lt_u + if $if_9 (result i32) + get_local $9 + get_local $28 + i64.store8 + get_local $2 + if $if_10 (result i32) + get_local $6 + set_local $0 + br $block_5 + else + get_local $6 + end ;; $if_10 + else + get_local $6 + get_local $2 + i32.const 16 + i32.add + i32.const -16 + i32.and + tee_local $18 + call $__Znwm + tee_local $0 + i32.store + get_local $22 + get_local $18 + i32.const -2147483648 + i32.or + i32.store + get_local $23 + get_local $2 + i32.store + br $block_5 + end ;; $if_9 + set_local $0 + br $block_4 + end ;; $block_5 + get_local $0 + get_local $17 + get_local $2 + call $_memcpy + drop + end ;; $block_4 + get_local $0 + get_local $2 + i32.add + i32.const 0 + i32.store8 + get_local $12 + i64.const 0 + i64.store align=4 + get_local $12 + i32.const 0 + i32.store offset=8 + get_local $13 + i32.const 4 + i32.store8 + get_local $12 + i32.const 540945696 + i32.store + get_local $21 + i32.const 0 + i32.store8 + get_local $5 + get_local $6 + get_local $12 + i32.const 4 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $5 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + get_local $1 + i64.load offset=8 align=4 + tee_local $27 + i64.const 32 + i64.shr_u + tee_local $28 + i32.wrap/i64 + set_local $2 + get_local $8 + i64.const 0 + i64.store align=4 + get_local $8 + i32.const 0 + i32.store offset=8 + get_local $2 + i32.const -17 + i32.gt_u + br_if $block_2 + get_local $27 + i32.wrap/i64 + set_local $17 + block $block_6 + block $block_7 + get_local $2 + i32.const 11 + i32.lt_u + if $if_11 (result i32) + get_local $10 + get_local $28 + i64.store8 + get_local $2 + if $if_12 (result i32) + get_local $8 + set_local $0 + br $block_7 + else + get_local $8 + end ;; $if_12 + else + get_local $8 + get_local $2 + i32.const 16 + i32.add + i32.const -16 + i32.and + tee_local $18 + call $__Znwm + tee_local $0 + i32.store + get_local $25 + get_local $18 + i32.const -2147483648 + i32.or + i32.store + get_local $15 + get_local $2 + i32.store + br $block_7 + end ;; $if_11 + set_local $0 + br $block_6 + end ;; $block_7 + get_local $0 + get_local $17 + get_local $2 + call $_memcpy + drop + end ;; $block_6 + get_local $0 + get_local $2 + i32.add + i32.const 0 + i32.store8 + get_local $3 + get_local $5 + get_local $8 + i32.load + get_local $8 + get_local $10 + i32.load8_s + tee_local $0 + i32.const 0 + i32.lt_s + tee_local $2 + select + get_local $15 + i32.load + get_local $0 + i32.const 255 + i32.and + get_local $2 + select + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $3 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + i32.const 2 + get_local $3 + i32.load + get_local $3 + get_local $19 + i32.load8_s + tee_local $0 + i32.const 0 + i32.lt_s + tee_local $2 + select + get_local $24 + i32.load + get_local $0 + i32.const 255 + i32.and + get_local $2 + select + call $_proxy_log + get_local $19 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_13 + get_local $3 + i32.load + call $__ZdlPv + end ;; $if_13 + get_local $10 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_14 + get_local $8 + i32.load + call $__ZdlPv + end ;; $if_14 + get_local $26 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_15 + get_local $5 + i32.load + call $__ZdlPv + end ;; $if_15 + get_local $13 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_16 + get_local $12 + i32.load + call $__ZdlPv + end ;; $if_16 + get_local $9 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_17 + get_local $6 + i32.load + call $__ZdlPv + end ;; $if_17 + get_local $1 + i32.const 16 + i32.add + tee_local $1 + get_local $20 + i32.ne + br_if $loop_0 + end ;; $loop_0 + get_local $4 + i32.load + set_local $16 + br $block_0 + end ;; $block_3 + call $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv + br $block_1 + end ;; $block_2 + call $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv + end ;; $block_1 + end ;; $block_0 + end ;; $if_8 + get_local $16 + i32.eqz + if $if_18 + get_local $14 + i32.load + call $_free + get_local $14 + call $__ZdlPv + get_local $11 + set_global $27 + i32.const 0 + return + end ;; $if_18 + get_local $7 + get_local $16 + i32.store + get_local $16 + call $__ZdlPv + get_local $14 + i32.load + call $_free + get_local $14 + call $__ZdlPv + get_local $11 + set_global $27 + i32.const 0 + ) + + (func $__ZN14ExampleContext17onResponseHeadersEv (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i64) + (local $27 i64) + get_global $27 + set_local $11 + get_global $27 + i32.const 80 + i32.add + set_global $27 + get_local $11 + i32.const 60 + i32.add + set_local $4 + get_local $11 + i32.const 36 + i32.add + set_local $5 + get_local $11 + i32.const 24 + i32.add + set_local $6 + get_local $11 + i32.const 12 + i32.add + set_local $12 + get_local $11 + tee_local $8 + i32.const 48 + i32.add + tee_local $3 + i32.const 32 + call $__Znwm + tee_local $7 + i32.store + get_local $3 + i32.const -2147483616 + i32.store offset=8 + get_local $3 + i32.const 18 + i32.store offset=4 + get_local $7 + i32.const 4514 + i64.load align=1 + i64.store align=1 + get_local $7 + i32.const 4522 + i64.load align=1 + i64.store offset=8 align=1 + get_local $7 + i32.const 4530 + i32.load16_s align=1 + i32.store16 offset=16 align=1 + get_local $7 + i32.const 0 + i32.store8 offset=18 + get_local $5 + get_local $0 + i32.load offset=4 + call $__ZNSt3__29to_stringEj + get_local $4 + get_local $3 + get_local $5 + i32.load + get_local $5 + get_local $5 + i32.const 11 + i32.add + tee_local $7 + i32.load8_s + tee_local $0 + i32.const 0 + i32.lt_s + tee_local $2 + select + get_local $5 + i32.load offset=4 + get_local $0 + i32.const 255 + i32.and + get_local $2 + select + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $4 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + i32.const 1 + get_local $4 + i32.load + get_local $4 + get_local $4 + i32.const 11 + i32.add + tee_local $0 + i32.load8_s + tee_local $2 + i32.const 0 + i32.lt_s + tee_local $1 + select + get_local $4 + i32.load offset=4 + get_local $2 + i32.const 255 + i32.and + get_local $1 + select + call $_proxy_log + get_local $0 + i32.load8_s + i32.const 0 + i32.lt_s + if $if + get_local $4 + i32.load + call $__ZdlPv + end ;; $if + get_local $7 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_0 + get_local $5 + i32.load + call $__ZdlPv + end ;; $if_0 + get_local $3 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if_1 + get_local $3 + i32.load + call $__ZdlPv + end ;; $if_1 + get_local $4 + i32.const 0 + i32.store + get_local $3 + i32.const 0 + i32.store + get_local $4 + get_local $3 + call $_proxy_getResponseHeaderPairs + i32.const 8 + call $__Znwm + set_local $14 + get_local $3 + i32.load + set_local $0 + get_local $14 + get_local $4 + i32.load + tee_local $2 + i32.store + get_local $14 + get_local $0 + i32.store offset=4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 4 + i32.add + tee_local $0 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=8 + get_local $2 + if $if_2 (result i32) + block $block (result i32) + get_local $2 + i32.const 4 + i32.add + set_local $7 + get_local $2 + i32.load + tee_local $9 + if $if_3 + get_local $4 + get_local $9 + call $__ZNSt3__26vectorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEES5_EENS_9allocatorIS6_EEE8__appendEm + get_local $9 + i32.const 0 + i32.le_s + if $if_4 + get_local $4 + i32.load + set_local $2 + get_local $0 + br $block + end ;; $if_4 + i32.const 0 + set_local $1 + get_local $7 + get_local $9 + i32.const 3 + i32.shl + i32.add + set_local $10 + get_local $4 + i32.load + set_local $2 + loop $loop + get_local $7 + i32.load + set_local $13 + get_local $1 + i32.const 4 + i32.shl + get_local $2 + i32.add + get_local $10 + i32.store + get_local $1 + i32.const 4 + i32.shl + get_local $2 + i32.add + get_local $13 + i32.store offset=4 + get_local $7 + i32.load offset=4 + set_local $15 + get_local $7 + i32.const 8 + i32.add + set_local $7 + get_local $4 + i32.load + tee_local $2 + get_local $1 + i32.const 4 + i32.shl + i32.add + get_local $10 + get_local $13 + i32.const 1 + i32.add + i32.add + tee_local $10 + i32.store offset=8 + get_local $1 + i32.const 4 + i32.shl + get_local $2 + i32.add + get_local $15 + i32.store offset=12 + get_local $10 + get_local $15 + i32.const 1 + i32.add + i32.add + set_local $10 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + get_local $9 + i32.ne + br_if $loop + end ;; $loop + else + i32.const 0 + set_local $2 + end ;; $if_3 + get_local $0 + end ;; $block + else + i32.const 0 + set_local $2 + get_local $0 + end ;; $if_2 + set_local $7 + get_local $5 + i64.const 0 + i64.store align=4 + get_local $5 + i32.const 0 + i32.store offset=8 + get_local $5 + i32.const 11 + i32.add + tee_local $1 + i32.const 9 + i32.store8 + get_local $5 + i32.const 4504 + i64.load align=1 + i64.store align=1 + get_local $5 + i32.const 4512 + i32.load8_s + i32.store8 offset=8 + get_local $5 + i32.const 0 + i32.store8 offset=9 + get_local $6 + get_local $7 + i32.load + get_local $2 + i32.sub + i32.const 4 + i32.shr_s + call $__ZNSt3__29to_stringEm + get_local $3 + get_local $5 + get_local $6 + i32.load + get_local $6 + get_local $6 + i32.const 11 + i32.add + tee_local $10 + i32.load8_s + tee_local $2 + i32.const 0 + i32.lt_s + tee_local $9 + select + get_local $6 + i32.load offset=4 + get_local $2 + i32.const 255 + i32.and + get_local $9 + select + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $2 + i64.load align=4 + i64.store align=4 + get_local $3 + get_local $2 + i32.load offset=8 + i32.store offset=8 + get_local $2 + i64.const 0 + i64.store align=4 + get_local $2 + i32.const 0 + i32.store offset=8 + i32.const 2 + get_local $3 + i32.load + get_local $3 + get_local $3 + i32.const 11 + i32.add + tee_local $2 + i32.load8_s + tee_local $9 + i32.const 0 + i32.lt_s + tee_local $13 + select + get_local $3 + i32.load offset=4 + get_local $9 + i32.const 255 + i32.and + get_local $13 + select + call $_proxy_log + get_local $2 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_5 + get_local $3 + i32.load + call $__ZdlPv + end ;; $if_5 + get_local $10 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_6 + get_local $6 + i32.load + call $__ZdlPv + end ;; $if_6 + get_local $1 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_7 + get_local $5 + i32.load + call $__ZdlPv + end ;; $if_7 + get_local $4 + i32.load + tee_local $2 + get_local $0 + i32.load + tee_local $19 + i32.ne + if $if_8 + block $block_0 + get_local $6 + i32.const 11 + i32.add + set_local $9 + get_local $12 + i32.const 11 + i32.add + set_local $13 + get_local $12 + i32.const 4 + i32.add + set_local $20 + get_local $6 + i32.const 8 + i32.add + set_local $21 + get_local $6 + i32.const 4 + i32.add + set_local $22 + get_local $8 + i32.const 11 + i32.add + set_local $10 + get_local $8 + i32.const 4 + i32.add + set_local $15 + get_local $3 + i32.const 11 + i32.add + set_local $18 + get_local $3 + i32.const 4 + i32.add + set_local $23 + get_local $8 + i32.const 8 + i32.add + set_local $24 + get_local $5 + i32.const 11 + i32.add + set_local $25 + block $block_1 + block $block_2 + loop $loop_0 + block $block_3 + get_local $2 + i64.load align=4 + tee_local $26 + i64.const 32 + i64.shr_u + tee_local $27 + i32.wrap/i64 + set_local $1 + get_local $6 + i64.const 0 + i64.store align=4 + get_local $6 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const -17 + i32.gt_u + br_if $block_3 + get_local $26 + i32.wrap/i64 + set_local $16 + block $block_4 + block $block_5 + get_local $1 + i32.const 11 + i32.lt_u + if $if_9 (result i32) + get_local $9 + get_local $27 + i64.store8 + get_local $1 + if $if_10 (result i32) + get_local $6 + set_local $0 + br $block_5 + else + get_local $6 + end ;; $if_10 + else + get_local $6 + get_local $1 + i32.const 16 + i32.add + i32.const -16 + i32.and + tee_local $17 + call $__Znwm + tee_local $0 + i32.store + get_local $21 + get_local $17 + i32.const -2147483648 + i32.or + i32.store + get_local $22 + get_local $1 + i32.store + br $block_5 + end ;; $if_9 + set_local $0 + br $block_4 + end ;; $block_5 + get_local $0 + get_local $16 + get_local $1 + call $_memcpy + drop + end ;; $block_4 + get_local $0 + get_local $1 + i32.add + i32.const 0 + i32.store8 + get_local $12 + i64.const 0 + i64.store align=4 + get_local $12 + i32.const 0 + i32.store offset=8 + get_local $13 + i32.const 4 + i32.store8 + get_local $12 + i32.const 540945696 + i32.store + get_local $20 + i32.const 0 + i32.store8 + get_local $5 + get_local $6 + get_local $12 + i32.const 4 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $5 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + get_local $2 + i64.load offset=8 align=4 + tee_local $26 + i64.const 32 + i64.shr_u + tee_local $27 + i32.wrap/i64 + set_local $1 + get_local $8 + i64.const 0 + i64.store align=4 + get_local $8 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const -17 + i32.gt_u + br_if $block_2 + get_local $26 + i32.wrap/i64 + set_local $16 + block $block_6 + block $block_7 + get_local $1 + i32.const 11 + i32.lt_u + if $if_11 (result i32) + get_local $10 + get_local $27 + i64.store8 + get_local $1 + if $if_12 (result i32) + get_local $8 + set_local $0 + br $block_7 + else + get_local $8 + end ;; $if_12 + else + get_local $8 + get_local $1 + i32.const 16 + i32.add + i32.const -16 + i32.and + tee_local $17 + call $__Znwm + tee_local $0 + i32.store + get_local $24 + get_local $17 + i32.const -2147483648 + i32.or + i32.store + get_local $15 + get_local $1 + i32.store + br $block_7 + end ;; $if_11 + set_local $0 + br $block_6 + end ;; $block_7 + get_local $0 + get_local $16 + get_local $1 + call $_memcpy + drop + end ;; $block_6 + get_local $0 + get_local $1 + i32.add + i32.const 0 + i32.store8 + get_local $3 + get_local $5 + get_local $8 + i32.load + get_local $8 + get_local $10 + i32.load8_s + tee_local $0 + i32.const 0 + i32.lt_s + tee_local $1 + select + get_local $15 + i32.load + get_local $0 + i32.const 255 + i32.and + get_local $1 + select + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $3 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + i32.const 2 + get_local $3 + i32.load + get_local $3 + get_local $18 + i32.load8_s + tee_local $0 + i32.const 0 + i32.lt_s + tee_local $1 + select + get_local $23 + i32.load + get_local $0 + i32.const 255 + i32.and + get_local $1 + select + call $_proxy_log + get_local $18 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_13 + get_local $3 + i32.load + call $__ZdlPv + end ;; $if_13 + get_local $10 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_14 + get_local $8 + i32.load + call $__ZdlPv + end ;; $if_14 + get_local $25 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_15 + get_local $5 + i32.load + call $__ZdlPv + end ;; $if_15 + get_local $13 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_16 + get_local $12 + i32.load + call $__ZdlPv + end ;; $if_16 + get_local $9 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_17 + get_local $6 + i32.load + call $__ZdlPv + end ;; $if_17 + get_local $2 + i32.const 16 + i32.add + tee_local $2 + get_local $19 + i32.ne + br_if $loop_0 + br $block_0 + end ;; $block_3 + end ;; $loop_0 + call $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv + br $block_1 + end ;; $block_2 + call $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv + end ;; $block_1 + end ;; $block_0 + end ;; $if_8 + i32.const 4533 + i32.const 9 + i32.const 4543 + i32.const 14 + call $_proxy_addResponseHeader + i32.const 4558 + i32.const 8 + i32.const 4567 + i32.const 10 + call $_proxy_replaceResponseHeader + get_local $4 + i32.load + tee_local $0 + i32.eqz + if $if_18 + get_local $14 + i32.load + call $_free + get_local $14 + call $__ZdlPv + get_local $11 + set_global $27 + i32.const 0 + return + end ;; $if_18 + get_local $7 + get_local $0 + i32.store + get_local $0 + call $__ZdlPv + get_local $14 + i32.load + call $_free + get_local $14 + call $__ZdlPv + get_local $11 + set_global $27 + i32.const 0 + ) + + (func $__ZN14ExampleContext13onRequestBodyEmb (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + get_global $27 + set_local $8 + get_global $27 + i32.const 48 + i32.add + set_global $27 + get_local $8 + tee_local $2 + i32.const 24 + i32.add + tee_local $5 + i32.const 0 + i32.store + get_local $2 + i32.const 12 + i32.add + tee_local $4 + i32.const 0 + i32.store + i32.const 0 + get_local $1 + get_local $5 + get_local $4 + call $_proxy_getRequestBodyBufferBytes + i32.const 8 + call $__Znwm + set_local $6 + get_local $4 + i32.load + set_local $3 + get_local $6 + get_local $5 + i32.load + tee_local $7 + i32.store + get_local $6 + get_local $3 + i32.store offset=4 + get_local $4 + i64.const 0 + i64.store align=4 + get_local $4 + i32.const 0 + i32.store offset=8 + get_local $4 + i32.const 16 + call $__Znwm + tee_local $0 + i32.store + get_local $4 + i32.const -2147483632 + i32.store offset=8 + get_local $4 + i32.const 14 + i32.store offset=4 + get_local $0 + i32.const 4578 + i64.load align=1 + i64.store align=1 + get_local $0 + i32.const 4586 + i32.load align=1 + i32.store offset=8 align=1 + get_local $0 + i32.const 4590 + i32.load16_s align=1 + i32.store16 offset=12 align=1 + get_local $0 + i32.const 0 + i32.store8 offset=14 + get_local $2 + i64.const 0 + i64.store align=4 + get_local $2 + i32.const 0 + i32.store offset=8 + get_local $3 + i32.const -17 + i32.gt_u + if $if + call $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv + end ;; $if + block $block + block $block_0 + get_local $3 + i32.const 11 + i32.lt_u + if $if_0 (result i32) + get_local $2 + i32.const 11 + i32.add + tee_local $1 + get_local $3 + i32.store8 + get_local $3 + if $if_1 (result i32) + get_local $2 + set_local $0 + br $block_0 + else + get_local $2 + end ;; $if_1 + else + get_local $2 + get_local $3 + i32.const 16 + i32.add + i32.const -16 + i32.and + tee_local $1 + call $__Znwm + tee_local $0 + i32.store + get_local $2 + get_local $1 + i32.const -2147483648 + i32.or + i32.store offset=8 + get_local $2 + get_local $3 + i32.store offset=4 + get_local $2 + i32.const 11 + i32.add + set_local $1 + br $block_0 + end ;; $if_0 + set_local $0 + br $block + end ;; $block_0 + get_local $0 + get_local $7 + get_local $3 + call $_memcpy + drop + end ;; $block + get_local $0 + get_local $3 + i32.add + i32.const 0 + i32.store8 + get_local $5 + get_local $4 + get_local $2 + i32.load + get_local $2 + get_local $1 + i32.load8_s + tee_local $7 + i32.const 0 + i32.lt_s + tee_local $0 + select + get_local $2 + i32.load offset=4 + get_local $7 + i32.const 255 + i32.and + get_local $0 + select + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $5 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + i32.const 4 + get_local $5 + i32.load + get_local $5 + get_local $5 + i32.const 11 + i32.add + tee_local $3 + i32.load8_s + tee_local $7 + i32.const 0 + i32.lt_s + tee_local $0 + select + get_local $5 + i32.load offset=4 + get_local $7 + i32.const 255 + i32.and + get_local $0 + select + call $_proxy_log + get_local $3 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_2 + get_local $5 + i32.load + call $__ZdlPv + end ;; $if_2 + get_local $1 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_3 + get_local $2 + i32.load + call $__ZdlPv + end ;; $if_3 + get_local $4 + i32.load8_s offset=11 + i32.const 0 + i32.ge_s + if $if_4 + get_local $6 + i32.load + call $_free + get_local $6 + call $__ZdlPv + get_local $8 + set_global $27 + i32.const 0 + return + end ;; $if_4 + get_local $4 + i32.load + call $__ZdlPv + get_local $6 + i32.load + call $_free + get_local $6 + call $__ZdlPv + get_local $8 + set_global $27 + i32.const 0 + ) + + (func $__ZN14ExampleContext6onDoneEv (type $1) + (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + get_global $27 + set_local $1 + get_global $27 + i32.const 32 + i32.add + set_global $27 + get_local $1 + i32.const 12 + i32.add + set_local $2 + get_local $1 + get_local $0 + i32.load offset=4 + call $__ZNSt3__29to_stringEj + get_local $2 + get_local $1 + i32.const 4593 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6insertEmPKc + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $2 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + i32.const 3 + get_local $2 + i32.load + get_local $2 + get_local $2 + i32.const 11 + i32.add + tee_local $0 + i32.load8_s + tee_local $3 + i32.const 0 + i32.lt_s + tee_local $4 + select + get_local $2 + i32.load offset=4 + get_local $3 + i32.const 255 + i32.and + get_local $4 + select + call $_proxy_log + get_local $0 + i32.load8_s + i32.const 0 + i32.lt_s + if $if + get_local $2 + i32.load + call $__ZdlPv + end ;; $if + get_local $1 + i32.load8_s offset=11 + i32.const 0 + i32.ge_s + if $if_0 + get_local $1 + set_global $27 + return + end ;; $if_0 + get_local $1 + i32.load + call $__ZdlPv + get_local $1 + set_global $27 + ) + + (func $__ZN14ExampleContext5onLogEv (type $1) + (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + get_global $27 + set_local $1 + get_global $27 + i32.const 32 + i32.add + set_global $27 + get_local $1 + i32.const 12 + i32.add + set_local $2 + get_local $1 + get_local $0 + i32.load offset=4 + call $__ZNSt3__29to_stringEj + get_local $2 + get_local $1 + i32.const 4601 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6insertEmPKc + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $2 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + i32.const 3 + get_local $2 + i32.load + get_local $2 + get_local $2 + i32.const 11 + i32.add + tee_local $0 + i32.load8_s + tee_local $3 + i32.const 0 + i32.lt_s + tee_local $4 + select + get_local $2 + i32.load offset=4 + get_local $3 + i32.const 255 + i32.and + get_local $4 + select + call $_proxy_log + get_local $0 + i32.load8_s + i32.const 0 + i32.lt_s + if $if + get_local $2 + i32.load + call $__ZdlPv + end ;; $if + get_local $1 + i32.load8_s offset=11 + i32.const 0 + i32.ge_s + if $if_0 + get_local $1 + set_global $27 + return + end ;; $if_0 + get_local $1 + i32.load + call $__ZdlPv + get_local $1 + set_global $27 + ) + + (func $__ZN14ExampleContext8onDeleteEv (type $1) + (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + get_global $27 + set_local $1 + get_global $27 + i32.const 32 + i32.add + set_global $27 + get_local $1 + i32.const 12 + i32.add + set_local $2 + get_local $1 + get_local $0 + i32.load offset=4 + call $__ZNSt3__29to_stringEj + get_local $2 + get_local $1 + i32.const 4608 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6insertEmPKc + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $2 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + i32.const 3 + get_local $2 + i32.load + get_local $2 + get_local $2 + i32.const 11 + i32.add + tee_local $0 + i32.load8_s + tee_local $3 + i32.const 0 + i32.lt_s + tee_local $4 + select + get_local $2 + i32.load offset=4 + get_local $3 + i32.const 255 + i32.and + get_local $4 + select + call $_proxy_log + get_local $0 + i32.load8_s + i32.const 0 + i32.lt_s + if $if + get_local $2 + i32.load + call $__ZdlPv + end ;; $if + get_local $1 + i32.load8_s offset=11 + i32.const 0 + i32.ge_s + if $if_0 + get_local $1 + set_global $27 + return + end ;; $if_0 + get_local $1 + i32.load + call $__ZdlPv + get_local $1 + set_global $27 + ) + + (func $__ZN14ExampleContextD0Ev (type $1) + (param $0 i32) + get_local $0 + call $__ZdlPv + ) + + (func $__ZN7Context11onConfigureENSt3__210unique_ptrI8WasmDataNS0_14default_deleteIS2_EEEE (type $0) + (param $0 i32) + (param $1 i32) + nop + ) + + (func $__ZN7Context17onRequestTrailersEv (type $4) + (param $0 i32) + (result i32) + i32.const 0 + ) + + (func $__ZN7Context14onResponseBodyEmb (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + i32.const 0 + ) + + (func $__ZN7Context18onHttpCallResponseEjNSt3__210unique_ptrI8WasmDataNS0_14default_deleteIS2_EEEES5_S5_ (type $2) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + nop + ) + + (func $__ZN7ContextD2Ev (type $1) + (param $0 i32) + nop + ) + + (func $__ZNSt3__26vectorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEES5_EENS_9allocatorIS6_EEE8__appendEm (type $0) + (param $0 i32) + (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + get_local $0 + i32.const 8 + i32.add + tee_local $10 + i32.load + tee_local $2 + get_local $0 + i32.const 4 + i32.add + tee_local $6 + i32.load + tee_local $3 + i32.sub + i32.const 4 + i32.shr_s + get_local $1 + i32.ge_u + if $if + get_local $3 + set_local $0 + loop $loop + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i64.const 0 + i64.store offset=8 align=4 + get_local $6 + get_local $6 + i32.load + i32.const 16 + i32.add + tee_local $0 + i32.store + get_local $1 + i32.const -1 + i32.add + tee_local $1 + br_if $loop + end ;; $loop + return + end ;; $if + get_local $1 + get_local $3 + get_local $0 + i32.load + tee_local $3 + i32.sub + tee_local $8 + i32.const 4 + i32.shr_s + tee_local $11 + i32.add + tee_local $7 + i32.const 268435455 + i32.gt_u + if $if_0 + call $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv + end ;; $if_0 + get_local $7 + get_local $2 + get_local $3 + i32.sub + tee_local $2 + i32.const 3 + i32.shr_s + tee_local $5 + get_local $5 + get_local $7 + i32.lt_u + select + i32.const 268435455 + get_local $2 + i32.const 4 + i32.shr_s + i32.const 134217727 + i32.lt_u + select + tee_local $2 + if $if_1 + get_local $2 + i32.const 268435455 + i32.gt_u + if $if_2 + i32.const 8 + call $___cxa_allocate_exception + tee_local $5 + call $__ZNSt11logic_errorC2EPKc + get_local $5 + i32.const 4456 + i32.store + get_local $5 + i32.const 3896 + i32.const 13 + call $___cxa_throw + else + get_local $2 + i32.const 4 + i32.shl + call $__Znwm + tee_local $9 + set_local $4 + end ;; $if_2 + end ;; $if_1 + get_local $2 + i32.const 4 + i32.shl + get_local $4 + i32.add + set_local $2 + get_local $11 + i32.const 4 + i32.shl + get_local $4 + i32.add + i32.const 0 + get_local $1 + i32.const 4 + i32.shl + call $_memset + drop + get_local $8 + i32.const 0 + i32.gt_s + if $if_3 + get_local $9 + get_local $3 + get_local $8 + call $_memcpy + drop + end ;; $if_3 + get_local $0 + get_local $4 + i32.store + get_local $6 + get_local $7 + i32.const 4 + i32.shl + get_local $4 + i32.add + i32.store + get_local $10 + get_local $2 + i32.store + get_local $3 + i32.eqz + if $if_4 + return + end ;; $if_4 + get_local $3 + call $__ZdlPv + ) + + (func $__GLOBAL__sub_I_proxy_wasm_intrinsics_cc (type $5) + i32.const 4944 + i64.const 0 + i64.store align=4 + i32.const 4952 + i64.const 0 + i64.store align=4 + i32.const 4960 + i32.const 1065353216 + i32.store + ) + + (func $_proxy_onConfigure (type $0) + (param $0 i32) + (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + get_global $27 + set_local $2 + get_global $27 + i32.const 16 + i32.add + set_global $27 + i32.const 0 + call $__ZL13ensureContextj + tee_local $4 + i32.load + i32.load offset=8 + set_local $5 + i32.const 8 + call $__Znwm + tee_local $3 + get_local $0 + i32.store + get_local $3 + get_local $1 + i32.store offset=4 + get_local $2 + get_local $3 + i32.store + get_local $4 + get_local $2 + get_local $5 + i32.const 1 + i32.and + i32.const 33 + i32.add + call_indirect $20 (type $0) + get_local $2 + i32.load + set_local $0 + get_local $2 + i32.const 0 + i32.store + get_local $0 + i32.eqz + if $if + get_local $2 + set_global $27 + return + end ;; $if + get_local $0 + i32.load + call $_free + get_local $0 + call $__ZdlPv + get_local $2 + set_global $27 + ) + + (func $_proxy_onCreate (type $1) + (param $0 i32) + (local $1 i32) + get_local $0 + call $__ZL13ensureContextj + tee_local $0 + i32.load + i32.load offset=16 + set_local $1 + get_local $0 + get_local $1 + i32.const 15 + i32.and + i32.const 17 + i32.add + call_indirect $20 (type $1) + ) + + (func $_proxy_onDelete (type $1) + (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + get_global $27 + set_local $3 + get_global $27 + i32.const 16 + i32.add + set_global $27 + block $block + i32.const 4948 + i32.load + tee_local $4 + i32.eqz + br_if $block + i32.const 4944 + i32.load + get_local $4 + get_local $4 + i32.const -1 + i32.add + tee_local $5 + i32.and + i32.eqz + tee_local $2 + if $if (result i32) + get_local $0 + get_local $5 + i32.and + else + get_local $4 + get_local $0 + i32.gt_u + if $if_0 (result i32) + get_local $0 + else + get_local $0 + get_local $4 + i32.rem_u + end ;; $if_0 + end ;; $if + tee_local $6 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $1 + i32.eqz + br_if $block + get_local $1 + i32.load + tee_local $1 + i32.eqz + br_if $block + block $block_0 + get_local $2 + if $if_1 + loop $loop + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $4 + i32.eq + tee_local $2 + get_local $6 + get_local $4 + get_local $5 + i32.and + i32.eq + i32.or + if $if_2 + get_local $2 + if $if_3 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block_0 + end ;; $if_3 + get_local $1 + i32.load + tee_local $1 + br_if $loop + end ;; $if_2 + end ;; $loop + else + loop $loop_0 + block $block_1 + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $2 + i32.eq + if $if_4 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block_0 + else + get_local $2 + get_local $4 + i32.ge_u + if $if_5 + get_local $2 + get_local $4 + i32.rem_u + set_local $2 + end ;; $if_5 + get_local $2 + get_local $6 + i32.ne + br_if $block_1 + end ;; $if_4 + get_local $1 + i32.load + tee_local $1 + br_if $loop_0 + end ;; $block_1 + end ;; $loop_0 + end ;; $if_1 + get_local $3 + set_global $27 + return + end ;; $block_0 + get_local $1 + i32.load offset=12 + tee_local $2 + i32.eqz + br_if $block + get_local $2 + i32.load + i32.load offset=52 + set_local $1 + get_local $2 + get_local $1 + i32.const 15 + i32.and + i32.const 17 + i32.add + call_indirect $20 (type $1) + get_local $3 + get_local $0 + i32.store + get_local $3 + call $__ZNSt3__212__hash_tableINS_17__hash_value_typeIiNS_10unique_ptrI7ContextNS_14default_deleteIS3_EEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE14__erase_uniqueIiEEmRKT_ + drop + get_local $3 + set_global $27 + return + end ;; $block + get_local $3 + set_global $27 + ) + + (func $_proxy_onDone (type $1) + (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 4948 + i32.load + tee_local $2 + i32.eqz + if $if + return + end ;; $if + i32.const 4944 + i32.load + get_local $2 + get_local $2 + i32.const -1 + i32.add + tee_local $3 + i32.and + i32.eqz + tee_local $4 + if $if_0 (result i32) + get_local $0 + get_local $3 + i32.and + else + get_local $2 + get_local $0 + i32.gt_u + if $if_1 (result i32) + get_local $0 + else + get_local $0 + get_local $2 + i32.rem_u + end ;; $if_1 + end ;; $if_0 + tee_local $5 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $1 + i32.eqz + if $if_2 + return + end ;; $if_2 + get_local $1 + i32.load + tee_local $1 + i32.eqz + if $if_3 + return + end ;; $if_3 + block $block + get_local $4 + if $if_4 + loop $loop + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $2 + i32.eq + tee_local $4 + get_local $5 + get_local $2 + get_local $3 + i32.and + i32.eq + i32.or + if $if_5 + get_local $4 + if $if_6 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block + end ;; $if_6 + get_local $1 + i32.load + tee_local $1 + br_if $loop + end ;; $if_5 + end ;; $loop + else + loop $loop_0 + block $block_0 + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $3 + i32.eq + if $if_7 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block + else + get_local $3 + get_local $2 + i32.ge_u + if $if_8 + get_local $3 + get_local $2 + i32.rem_u + set_local $3 + end ;; $if_8 + get_local $3 + get_local $5 + i32.ne + br_if $block_0 + end ;; $if_7 + get_local $1 + i32.load + tee_local $1 + br_if $loop_0 + end ;; $block_0 + end ;; $loop_0 + end ;; $if_4 + return + end ;; $block + get_local $1 + i32.load offset=12 + tee_local $0 + i32.eqz + if $if_9 + return + end ;; $if_9 + get_local $0 + i32.load + i32.load offset=44 + set_local $1 + get_local $0 + get_local $1 + i32.const 15 + i32.and + i32.const 17 + i32.add + call_indirect $20 (type $1) + ) + + (func $_proxy_onHttpCallResponse (type $10) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (param $5 i32) + (param $6 i32) + (param $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + get_global $27 + set_local $8 + get_global $27 + i32.const 16 + i32.add + set_global $27 + block $block + i32.const 4948 + i32.load + tee_local $10 + i32.eqz + br_if $block + i32.const 4944 + i32.load + get_local $10 + get_local $10 + i32.const -1 + i32.add + tee_local $11 + i32.and + i32.eqz + tee_local $15 + if $if (result i32) + get_local $0 + get_local $11 + i32.and + else + get_local $10 + get_local $0 + i32.gt_u + if $if_0 (result i32) + get_local $0 + else + get_local $0 + get_local $10 + i32.rem_u + end ;; $if_0 + end ;; $if + tee_local $12 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $9 + i32.eqz + br_if $block + get_local $9 + i32.load + tee_local $9 + i32.eqz + br_if $block + get_local $8 + i32.const 8 + i32.add + set_local $13 + get_local $8 + i32.const 4 + i32.add + set_local $14 + block $block_0 + get_local $15 + if $if_1 + loop $loop + get_local $0 + get_local $9 + i32.load offset=4 + tee_local $10 + i32.eq + tee_local $15 + get_local $12 + get_local $10 + get_local $11 + i32.and + i32.eq + i32.or + if $if_2 + get_local $15 + if $if_3 + get_local $0 + get_local $9 + i32.load offset=8 + i32.eq + br_if $block_0 + end ;; $if_3 + get_local $9 + i32.load + tee_local $9 + br_if $loop + end ;; $if_2 + end ;; $loop + else + loop $loop_0 + block $block_1 + get_local $0 + get_local $9 + i32.load offset=4 + tee_local $11 + i32.eq + if $if_4 + get_local $0 + get_local $9 + i32.load offset=8 + i32.eq + br_if $block_0 + else + get_local $11 + get_local $10 + i32.ge_u + if $if_5 + get_local $11 + get_local $10 + i32.rem_u + set_local $11 + end ;; $if_5 + get_local $11 + get_local $12 + i32.ne + br_if $block_1 + end ;; $if_4 + get_local $9 + i32.load + tee_local $9 + br_if $loop_0 + end ;; $block_1 + end ;; $loop_0 + end ;; $if_1 + get_local $8 + set_global $27 + return + end ;; $block_0 + get_local $9 + i32.load offset=12 + tee_local $0 + i32.eqz + br_if $block + get_local $0 + i32.load + i32.load offset=56 + set_local $12 + i32.const 8 + call $__Znwm + tee_local $9 + get_local $2 + i32.store + get_local $9 + get_local $3 + i32.store offset=4 + get_local $13 + get_local $9 + i32.store + i32.const 8 + call $__Znwm + tee_local $2 + get_local $4 + i32.store + get_local $2 + get_local $5 + i32.store offset=4 + get_local $14 + get_local $2 + i32.store + i32.const 8 + call $__Znwm + tee_local $2 + get_local $6 + i32.store + get_local $2 + get_local $7 + i32.store offset=4 + get_local $8 + get_local $2 + i32.store + get_local $0 + get_local $1 + get_local $13 + get_local $14 + get_local $8 + get_local $12 + i32.const 3 + i32.and + i32.const 39 + i32.add + call_indirect $20 (type $2) + get_local $8 + i32.load + set_local $0 + get_local $8 + i32.const 0 + i32.store + get_local $0 + if $if_6 + get_local $0 + i32.load + call $_free + get_local $0 + call $__ZdlPv + end ;; $if_6 + get_local $14 + i32.load + set_local $0 + get_local $14 + i32.const 0 + i32.store + get_local $0 + if $if_7 + get_local $0 + i32.load + call $_free + get_local $0 + call $__ZdlPv + end ;; $if_7 + get_local $13 + i32.load + set_local $0 + get_local $13 + i32.const 0 + i32.store + get_local $0 + i32.eqz + br_if $block + get_local $0 + i32.load + call $_free + get_local $0 + call $__ZdlPv + get_local $8 + set_global $27 + return + end ;; $block + get_local $8 + set_global $27 + ) + + (func $_proxy_onLog (type $1) + (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 4948 + i32.load + tee_local $2 + i32.eqz + if $if + return + end ;; $if + i32.const 4944 + i32.load + get_local $2 + get_local $2 + i32.const -1 + i32.add + tee_local $3 + i32.and + i32.eqz + tee_local $4 + if $if_0 (result i32) + get_local $0 + get_local $3 + i32.and + else + get_local $2 + get_local $0 + i32.gt_u + if $if_1 (result i32) + get_local $0 + else + get_local $0 + get_local $2 + i32.rem_u + end ;; $if_1 + end ;; $if_0 + tee_local $5 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $1 + i32.eqz + if $if_2 + return + end ;; $if_2 + get_local $1 + i32.load + tee_local $1 + i32.eqz + if $if_3 + return + end ;; $if_3 + block $block + get_local $4 + if $if_4 + loop $loop + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $2 + i32.eq + tee_local $4 + get_local $5 + get_local $2 + get_local $3 + i32.and + i32.eq + i32.or + if $if_5 + get_local $4 + if $if_6 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block + end ;; $if_6 + get_local $1 + i32.load + tee_local $1 + br_if $loop + end ;; $if_5 + end ;; $loop + else + loop $loop_0 + block $block_0 + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $3 + i32.eq + if $if_7 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block + else + get_local $3 + get_local $2 + i32.ge_u + if $if_8 + get_local $3 + get_local $2 + i32.rem_u + set_local $3 + end ;; $if_8 + get_local $3 + get_local $5 + i32.ne + br_if $block_0 + end ;; $if_7 + get_local $1 + i32.load + tee_local $1 + br_if $loop_0 + end ;; $block_0 + end ;; $loop_0 + end ;; $if_4 + return + end ;; $block + get_local $1 + i32.load offset=12 + tee_local $0 + i32.eqz + if $if_9 + return + end ;; $if_9 + get_local $0 + i32.load + i32.load offset=48 + set_local $1 + get_local $0 + get_local $1 + i32.const 15 + i32.and + i32.const 17 + i32.add + call_indirect $20 (type $1) + ) + + (func $_proxy_onRequestBody (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 4948 + i32.load + tee_local $4 + i32.eqz + if $if + i32.const 0 + return + end ;; $if + i32.const 4944 + i32.load + get_local $4 + get_local $4 + i32.const -1 + i32.add + tee_local $5 + i32.and + i32.eqz + tee_local $6 + if $if_0 (result i32) + get_local $0 + get_local $5 + i32.and + else + get_local $4 + get_local $0 + i32.gt_u + if $if_1 (result i32) + get_local $0 + else + get_local $0 + get_local $4 + i32.rem_u + end ;; $if_1 + end ;; $if_0 + tee_local $7 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $3 + i32.eqz + if $if_2 + i32.const 0 + return + end ;; $if_2 + get_local $3 + i32.load + tee_local $3 + i32.eqz + if $if_3 + i32.const 0 + return + end ;; $if_3 + block $block + get_local $6 + if $if_4 + loop $loop + get_local $0 + get_local $3 + i32.load offset=4 + tee_local $4 + i32.eq + tee_local $6 + get_local $7 + get_local $4 + get_local $5 + i32.and + i32.eq + i32.or + if $if_5 + get_local $6 + if $if_6 + get_local $0 + get_local $3 + i32.load offset=8 + i32.eq + br_if $block + end ;; $if_6 + get_local $3 + i32.load + tee_local $3 + br_if $loop + end ;; $if_5 + end ;; $loop + else + loop $loop_0 + block $block_0 + get_local $0 + get_local $3 + i32.load offset=4 + tee_local $5 + i32.eq + if $if_7 + get_local $0 + get_local $3 + i32.load offset=8 + i32.eq + br_if $block + else + get_local $5 + get_local $4 + i32.ge_u + if $if_8 + get_local $5 + get_local $4 + i32.rem_u + set_local $5 + end ;; $if_8 + get_local $5 + get_local $7 + i32.ne + br_if $block_0 + end ;; $if_7 + get_local $3 + i32.load + tee_local $3 + br_if $loop_0 + end ;; $block_0 + end ;; $loop_0 + end ;; $if_4 + i32.const 0 + return + end ;; $block + get_local $3 + i32.load offset=12 + tee_local $0 + i32.eqz + if $if_9 + i32.const 0 + return + end ;; $if_9 + get_local $0 + i32.load + i32.load offset=24 + set_local $3 + get_local $0 + get_local $1 + get_local $2 + i32.const 0 + i32.ne + get_local $3 + i32.const 7 + i32.and + i32.const 8 + i32.add + call_indirect $20 (type $3) + ) + + (func $_proxy_onRequestHeaders (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 4948 + i32.load + tee_local $2 + i32.eqz + if $if + i32.const 0 + return + end ;; $if + i32.const 4944 + i32.load + get_local $2 + get_local $2 + i32.const -1 + i32.add + tee_local $3 + i32.and + i32.eqz + tee_local $4 + if $if_0 (result i32) + get_local $0 + get_local $3 + i32.and + else + get_local $2 + get_local $0 + i32.gt_u + if $if_1 (result i32) + get_local $0 + else + get_local $0 + get_local $2 + i32.rem_u + end ;; $if_1 + end ;; $if_0 + tee_local $5 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $1 + i32.eqz + if $if_2 + i32.const 0 + return + end ;; $if_2 + get_local $1 + i32.load + tee_local $1 + i32.eqz + if $if_3 + i32.const 0 + return + end ;; $if_3 + block $block + get_local $4 + if $if_4 + loop $loop + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $2 + i32.eq + tee_local $4 + get_local $5 + get_local $2 + get_local $3 + i32.and + i32.eq + i32.or + if $if_5 + get_local $4 + if $if_6 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block + end ;; $if_6 + get_local $1 + i32.load + tee_local $1 + br_if $loop + end ;; $if_5 + end ;; $loop + else + loop $loop_0 + block $block_0 + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $3 + i32.eq + if $if_7 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block + else + get_local $3 + get_local $2 + i32.ge_u + if $if_8 + get_local $3 + get_local $2 + i32.rem_u + set_local $3 + end ;; $if_8 + get_local $3 + get_local $5 + i32.ne + br_if $block_0 + end ;; $if_7 + get_local $1 + i32.load + tee_local $1 + br_if $loop_0 + end ;; $block_0 + end ;; $loop_0 + end ;; $if_4 + i32.const 0 + return + end ;; $block + get_local $1 + i32.load offset=12 + tee_local $0 + i32.eqz + if $if_9 + i32.const 0 + return + end ;; $if_9 + get_local $0 + i32.load + i32.load offset=20 + set_local $1 + get_local $0 + get_local $1 + i32.const 7 + i32.and + call_indirect $20 (type $4) + ) + + (func $_proxy_onRequestTrailers (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 4948 + i32.load + tee_local $2 + i32.eqz + if $if + i32.const 0 + return + end ;; $if + i32.const 4944 + i32.load + get_local $2 + get_local $2 + i32.const -1 + i32.add + tee_local $3 + i32.and + i32.eqz + tee_local $4 + if $if_0 (result i32) + get_local $0 + get_local $3 + i32.and + else + get_local $2 + get_local $0 + i32.gt_u + if $if_1 (result i32) + get_local $0 + else + get_local $0 + get_local $2 + i32.rem_u + end ;; $if_1 + end ;; $if_0 + tee_local $5 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $1 + i32.eqz + if $if_2 + i32.const 0 + return + end ;; $if_2 + get_local $1 + i32.load + tee_local $1 + i32.eqz + if $if_3 + i32.const 0 + return + end ;; $if_3 + block $block + get_local $4 + if $if_4 + loop $loop + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $2 + i32.eq + tee_local $4 + get_local $5 + get_local $2 + get_local $3 + i32.and + i32.eq + i32.or + if $if_5 + get_local $4 + if $if_6 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block + end ;; $if_6 + get_local $1 + i32.load + tee_local $1 + br_if $loop + end ;; $if_5 + end ;; $loop + else + loop $loop_0 + block $block_0 + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $3 + i32.eq + if $if_7 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block + else + get_local $3 + get_local $2 + i32.ge_u + if $if_8 + get_local $3 + get_local $2 + i32.rem_u + set_local $3 + end ;; $if_8 + get_local $3 + get_local $5 + i32.ne + br_if $block_0 + end ;; $if_7 + get_local $1 + i32.load + tee_local $1 + br_if $loop_0 + end ;; $block_0 + end ;; $loop_0 + end ;; $if_4 + i32.const 0 + return + end ;; $block + get_local $1 + i32.load offset=12 + tee_local $0 + i32.eqz + if $if_9 + i32.const 0 + return + end ;; $if_9 + get_local $0 + i32.load + i32.load offset=28 + set_local $1 + get_local $0 + get_local $1 + i32.const 7 + i32.and + call_indirect $20 (type $4) + ) + + (func $_proxy_onResponseBody (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 4948 + i32.load + tee_local $4 + i32.eqz + if $if + i32.const 0 + return + end ;; $if + i32.const 4944 + i32.load + get_local $4 + get_local $4 + i32.const -1 + i32.add + tee_local $5 + i32.and + i32.eqz + tee_local $6 + if $if_0 (result i32) + get_local $0 + get_local $5 + i32.and + else + get_local $4 + get_local $0 + i32.gt_u + if $if_1 (result i32) + get_local $0 + else + get_local $0 + get_local $4 + i32.rem_u + end ;; $if_1 + end ;; $if_0 + tee_local $7 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $3 + i32.eqz + if $if_2 + i32.const 0 + return + end ;; $if_2 + get_local $3 + i32.load + tee_local $3 + i32.eqz + if $if_3 + i32.const 0 + return + end ;; $if_3 + block $block + get_local $6 + if $if_4 + loop $loop + get_local $0 + get_local $3 + i32.load offset=4 + tee_local $4 + i32.eq + tee_local $6 + get_local $7 + get_local $4 + get_local $5 + i32.and + i32.eq + i32.or + if $if_5 + get_local $6 + if $if_6 + get_local $0 + get_local $3 + i32.load offset=8 + i32.eq + br_if $block + end ;; $if_6 + get_local $3 + i32.load + tee_local $3 + br_if $loop + end ;; $if_5 + end ;; $loop + else + loop $loop_0 + block $block_0 + get_local $0 + get_local $3 + i32.load offset=4 + tee_local $5 + i32.eq + if $if_7 + get_local $0 + get_local $3 + i32.load offset=8 + i32.eq + br_if $block + else + get_local $5 + get_local $4 + i32.ge_u + if $if_8 + get_local $5 + get_local $4 + i32.rem_u + set_local $5 + end ;; $if_8 + get_local $5 + get_local $7 + i32.ne + br_if $block_0 + end ;; $if_7 + get_local $3 + i32.load + tee_local $3 + br_if $loop_0 + end ;; $block_0 + end ;; $loop_0 + end ;; $if_4 + i32.const 0 + return + end ;; $block + get_local $3 + i32.load offset=12 + tee_local $0 + i32.eqz + if $if_9 + i32.const 0 + return + end ;; $if_9 + get_local $0 + i32.load + i32.load offset=36 + set_local $3 + get_local $0 + get_local $1 + get_local $2 + i32.const 0 + i32.ne + get_local $3 + i32.const 7 + i32.and + i32.const 8 + i32.add + call_indirect $20 (type $3) + ) + + (func $_proxy_onResponseHeaders (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 4948 + i32.load + tee_local $2 + i32.eqz + if $if + i32.const 0 + return + end ;; $if + i32.const 4944 + i32.load + get_local $2 + get_local $2 + i32.const -1 + i32.add + tee_local $3 + i32.and + i32.eqz + tee_local $4 + if $if_0 (result i32) + get_local $0 + get_local $3 + i32.and + else + get_local $2 + get_local $0 + i32.gt_u + if $if_1 (result i32) + get_local $0 + else + get_local $0 + get_local $2 + i32.rem_u + end ;; $if_1 + end ;; $if_0 + tee_local $5 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $1 + i32.eqz + if $if_2 + i32.const 0 + return + end ;; $if_2 + get_local $1 + i32.load + tee_local $1 + i32.eqz + if $if_3 + i32.const 0 + return + end ;; $if_3 + block $block + get_local $4 + if $if_4 + loop $loop + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $2 + i32.eq + tee_local $4 + get_local $5 + get_local $2 + get_local $3 + i32.and + i32.eq + i32.or + if $if_5 + get_local $4 + if $if_6 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block + end ;; $if_6 + get_local $1 + i32.load + tee_local $1 + br_if $loop + end ;; $if_5 + end ;; $loop + else + loop $loop_0 + block $block_0 + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $3 + i32.eq + if $if_7 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block + else + get_local $3 + get_local $2 + i32.ge_u + if $if_8 + get_local $3 + get_local $2 + i32.rem_u + set_local $3 + end ;; $if_8 + get_local $3 + get_local $5 + i32.ne + br_if $block_0 + end ;; $if_7 + get_local $1 + i32.load + tee_local $1 + br_if $loop_0 + end ;; $block_0 + end ;; $loop_0 + end ;; $if_4 + i32.const 0 + return + end ;; $block + get_local $1 + i32.load offset=12 + tee_local $0 + i32.eqz + if $if_9 + i32.const 0 + return + end ;; $if_9 + get_local $0 + i32.load + i32.load offset=32 + set_local $1 + get_local $0 + get_local $1 + i32.const 7 + i32.and + call_indirect $20 (type $4) + ) + + (func $_proxy_onResponseTrailers (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 4948 + i32.load + tee_local $2 + i32.eqz + if $if + i32.const 0 + return + end ;; $if + i32.const 4944 + i32.load + get_local $2 + get_local $2 + i32.const -1 + i32.add + tee_local $3 + i32.and + i32.eqz + tee_local $4 + if $if_0 (result i32) + get_local $0 + get_local $3 + i32.and + else + get_local $2 + get_local $0 + i32.gt_u + if $if_1 (result i32) + get_local $0 + else + get_local $0 + get_local $2 + i32.rem_u + end ;; $if_1 + end ;; $if_0 + tee_local $5 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $1 + i32.eqz + if $if_2 + i32.const 0 + return + end ;; $if_2 + get_local $1 + i32.load + tee_local $1 + i32.eqz + if $if_3 + i32.const 0 + return + end ;; $if_3 + block $block + get_local $4 + if $if_4 + loop $loop + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $2 + i32.eq + tee_local $4 + get_local $5 + get_local $2 + get_local $3 + i32.and + i32.eq + i32.or + if $if_5 + get_local $4 + if $if_6 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block + end ;; $if_6 + get_local $1 + i32.load + tee_local $1 + br_if $loop + end ;; $if_5 + end ;; $loop + else + loop $loop_0 + block $block_0 + get_local $0 + get_local $1 + i32.load offset=4 + tee_local $3 + i32.eq + if $if_7 + get_local $0 + get_local $1 + i32.load offset=8 + i32.eq + br_if $block + else + get_local $3 + get_local $2 + i32.ge_u + if $if_8 + get_local $3 + get_local $2 + i32.rem_u + set_local $3 + end ;; $if_8 + get_local $3 + get_local $5 + i32.ne + br_if $block_0 + end ;; $if_7 + get_local $1 + i32.load + tee_local $1 + br_if $loop_0 + end ;; $block_0 + end ;; $loop_0 + end ;; $if_4 + i32.const 0 + return + end ;; $block + get_local $1 + i32.load offset=12 + tee_local $0 + i32.eqz + if $if_9 + i32.const 0 + return + end ;; $if_9 + get_local $0 + i32.load + i32.load offset=40 + set_local $1 + get_local $0 + get_local $1 + i32.const 7 + i32.and + call_indirect $20 (type $4) + ) + + (func $_proxy_onStart (type $5) + (local $0 i32) + (local $1 i32) + i32.const 0 + call $__ZL13ensureContextj + tee_local $0 + i32.load + i32.load offset=12 + set_local $1 + get_local $0 + get_local $1 + i32.const 15 + i32.and + i32.const 17 + i32.add + call_indirect $20 (type $1) + ) + + (func $__ZL13ensureContextj (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + get_global $27 + set_local $1 + get_global $27 + i32.const 16 + i32.add + set_global $27 + i32.const 16 + call $__Znwm + tee_local $2 + get_local $0 + i32.store offset=8 + get_local $2 + i32.const 12 + i32.add + tee_local $4 + i32.const 0 + i32.store + get_local $2 + get_local $0 + i32.store offset=4 + get_local $2 + i32.const 0 + i32.store + get_local $1 + get_local $2 + call $__ZNSt3__212__hash_tableINS_17__hash_value_typeIiNS_10unique_ptrI7ContextNS_14default_deleteIS3_EEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS7_PvEE + get_local $1 + i32.const 4 + i32.add + tee_local $5 + i32.load8_s + if $if + get_local $1 + i32.load + set_local $2 + else + get_local $4 + i32.load + set_local $3 + get_local $4 + i32.const 0 + i32.store + get_local $3 + if $if_0 + get_local $3 + i32.load + i32.load offset=4 + set_local $4 + get_local $3 + get_local $4 + i32.const 15 + i32.and + i32.const 17 + i32.add + call_indirect $20 (type $1) + end ;; $if_0 + get_local $2 + call $__ZdlPv + get_local $1 + i32.load + set_local $2 + get_local $5 + i32.load8_s + i32.eqz + if $if_1 + get_local $2 + i32.load offset=12 + set_local $0 + get_local $1 + set_global $27 + get_local $0 + return + end ;; $if_1 + end ;; $if + get_local $1 + get_local $0 + call $__ZN7Context3NewEj + get_local $1 + i32.load + set_local $3 + get_local $1 + i32.const 0 + i32.store + get_local $2 + i32.const 12 + i32.add + tee_local $4 + i32.load + set_local $0 + get_local $4 + get_local $3 + i32.store + get_local $0 + if $if_2 + get_local $0 + i32.load + i32.load offset=4 + set_local $3 + get_local $0 + get_local $3 + i32.const 15 + i32.and + i32.const 17 + i32.add + call_indirect $20 (type $1) + get_local $1 + i32.load + set_local $0 + get_local $1 + i32.const 0 + i32.store + get_local $0 + if $if_3 + get_local $0 + i32.load + i32.load offset=4 + set_local $3 + get_local $0 + get_local $3 + i32.const 15 + i32.and + i32.const 17 + i32.add + call_indirect $20 (type $1) + end ;; $if_3 + else + get_local $1 + i32.const 0 + i32.store + end ;; $if_2 + get_local $2 + i32.load offset=12 + set_local $0 + get_local $1 + set_global $27 + get_local $0 + ) + + (func $__ZNSt3__212__hash_tableINS_17__hash_value_typeIiNS_10unique_ptrI7ContextNS_14default_deleteIS3_EEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS7_PvEE (type $0) + (param $0 i32) + (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 f32) + (local $11 f32) + get_local $1 + i32.const 4 + i32.add + tee_local $7 + get_local $1 + i32.load offset=8 + tee_local $5 + i32.store + block $block + i32.const 4948 + i32.load + tee_local $3 + i32.eqz + tee_local $8 + i32.eqz + if $if + i32.const 4944 + i32.load + get_local $3 + get_local $3 + i32.const -1 + i32.add + tee_local $6 + i32.and + i32.eqz + tee_local $9 + if $if_0 (result i32) + get_local $5 + get_local $6 + i32.and + else + get_local $5 + get_local $3 + i32.lt_u + if $if_1 (result i32) + get_local $5 + else + get_local $5 + get_local $3 + i32.rem_u + end ;; $if_1 + end ;; $if_0 + tee_local $4 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $2 + if $if_2 + get_local $2 + i32.load + tee_local $2 + if $if_3 + block $block_0 + get_local $9 + if $if_4 + loop $loop + block $block_1 + get_local $2 + i32.load offset=4 + get_local $6 + i32.and + get_local $4 + i32.ne + br_if $block_0 + get_local $2 + i32.load offset=8 + get_local $5 + i32.eq + br_if $block_1 + get_local $2 + i32.load + tee_local $2 + br_if $loop + br $block_0 + end ;; $block_1 + end ;; $loop + br $block + end ;; $if_4 + loop $loop_0 + block $block_2 + get_local $2 + i32.load offset=4 + tee_local $6 + get_local $3 + i32.ge_u + if $if_5 (result i32) + get_local $6 + get_local $3 + i32.rem_u + else + get_local $6 + end ;; $if_5 + get_local $4 + i32.ne + br_if $block_0 + get_local $2 + i32.load offset=8 + get_local $5 + i32.eq + br_if $block_2 + get_local $2 + i32.load + tee_local $2 + br_if $loop_0 + br $block_0 + end ;; $block_2 + end ;; $loop_0 + br $block + end ;; $block_0 + end ;; $if_3 + end ;; $if_2 + end ;; $if + i32.const 4960 + f32.load + tee_local $10 + get_local $3 + f32.convert_u/i32 + f32.mul + i32.const 4956 + i32.load + i32.const 1 + i32.add + f32.convert_u/i32 + tee_local $11 + f32.lt + get_local $8 + i32.or + if $if_6 + block $block_3 (result i32) + i32.const 4944 + get_local $11 + get_local $10 + f32.div + f32.ceil + i32.trunc_u/f32 + tee_local $4 + get_local $3 + i32.const -1 + i32.add + get_local $3 + i32.and + i32.const 0 + i32.ne + get_local $3 + i32.const 3 + i32.lt_u + i32.or + get_local $3 + i32.const 1 + i32.shl + i32.or + tee_local $2 + get_local $2 + get_local $4 + i32.lt_u + select + call $__ZNSt3__212__hash_tableINS_17__hash_value_typeIiNS_10unique_ptrI7ContextNS_14default_deleteIS3_EEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE6rehashEm + get_local $7 + i32.load + set_local $4 + i32.const 4948 + i32.load + tee_local $2 + i32.const -1 + i32.add + tee_local $3 + get_local $2 + i32.and + i32.eqz + if $if_7 + get_local $3 + get_local $4 + i32.and + br $block_3 + end ;; $if_7 + get_local $4 + get_local $2 + i32.ge_u + if $if_8 (result i32) + get_local $4 + get_local $2 + i32.rem_u + else + get_local $4 + end ;; $if_8 + end ;; $block_3 + set_local $4 + else + get_local $3 + set_local $2 + end ;; $if_6 + i32.const 4944 + i32.load + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $3 + if $if_9 + get_local $1 + get_local $3 + i32.load + i32.store + get_local $3 + get_local $1 + i32.store + else + get_local $1 + i32.const 4952 + i32.load + i32.store + i32.const 4952 + get_local $1 + i32.store + i32.const 4944 + i32.load + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.const 4952 + i32.store + get_local $1 + i32.load + tee_local $4 + if $if_10 + get_local $4 + i32.load offset=4 + set_local $4 + i32.const 4944 + i32.load + get_local $2 + get_local $2 + i32.const -1 + i32.add + tee_local $3 + i32.and + if $if_11 (result i32) + get_local $4 + get_local $2 + i32.ge_u + if $if_12 (result i32) + get_local $4 + get_local $2 + i32.rem_u + else + get_local $4 + end ;; $if_12 + else + get_local $3 + get_local $4 + i32.and + end ;; $if_11 + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.store + end ;; $if_10 + end ;; $if_9 + i32.const 4956 + i32.const 4956 + i32.load + i32.const 1 + i32.add + i32.store + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 1 + i32.store8 offset=4 + return + end ;; $block + get_local $0 + get_local $2 + i32.store + get_local $0 + i32.const 0 + i32.store8 offset=4 + ) + + (func $__ZNSt3__212__hash_tableINS_17__hash_value_typeIiNS_10unique_ptrI7ContextNS_14default_deleteIS3_EEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE6rehashEm (type $0) + (param $0 i32) + (param $1 i32) + (local $2 i32) + (local $3 i32) + get_local $1 + i32.const 1 + i32.eq + if $if + i32.const 2 + set_local $1 + else + get_local $1 + get_local $1 + i32.const -1 + i32.add + i32.and + if $if_0 + get_local $1 + call $__ZNSt3__212__next_primeEm + set_local $1 + end ;; $if_0 + end ;; $if + get_local $1 + get_local $0 + i32.load offset=4 + tee_local $3 + i32.gt_u + if $if_1 + get_local $0 + get_local $1 + call $__ZNSt3__212__hash_tableINS_17__hash_value_typeIiNS_10unique_ptrI7ContextNS_14default_deleteIS3_EEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE8__rehashEm + return + end ;; $if_1 + get_local $1 + get_local $3 + i32.ge_u + if $if_2 + return + end ;; $if_2 + get_local $0 + i32.load offset=12 + f32.convert_u/i32 + get_local $0 + f32.load offset=16 + f32.div + f32.ceil + i32.trunc_u/f32 + set_local $2 + get_local $3 + i32.const -1 + i32.add + get_local $3 + i32.and + i32.eqz + get_local $3 + i32.const 2 + i32.gt_u + i32.and + if $if_3 (result i32) + get_local $2 + i32.const 1 + i32.const 32 + get_local $2 + i32.const -1 + i32.add + i32.clz + i32.sub + i32.shl + get_local $2 + i32.const 2 + i32.lt_u + select + else + get_local $2 + call $__ZNSt3__212__next_primeEm + end ;; $if_3 + tee_local $2 + get_local $1 + get_local $1 + get_local $2 + i32.lt_u + select + tee_local $1 + get_local $3 + i32.ge_u + if $if_4 + return + end ;; $if_4 + get_local $0 + get_local $1 + call $__ZNSt3__212__hash_tableINS_17__hash_value_typeIiNS_10unique_ptrI7ContextNS_14default_deleteIS3_EEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE8__rehashEm + ) + + (func $__ZNSt3__212__hash_tableINS_17__hash_value_typeIiNS_10unique_ptrI7ContextNS_14default_deleteIS3_EEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE8__rehashEm (type $0) + (param $0 i32) + (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + get_local $0 + i32.const 4 + i32.add + set_local $2 + get_local $1 + i32.eqz + if $if + get_local $0 + i32.load + set_local $1 + get_local $0 + i32.const 0 + i32.store + get_local $1 + if $if_0 + get_local $1 + call $__ZdlPv + end ;; $if_0 + get_local $2 + i32.const 0 + i32.store + return + end ;; $if + get_local $1 + i32.const 1073741823 + i32.gt_u + if $if_1 + i32.const 8 + call $___cxa_allocate_exception + tee_local $3 + call $__ZNSt11logic_errorC2EPKc + get_local $3 + i32.const 4456 + i32.store + get_local $3 + i32.const 3896 + i32.const 13 + call $___cxa_throw + end ;; $if_1 + get_local $1 + i32.const 2 + i32.shl + call $__Znwm + set_local $5 + get_local $0 + i32.load + set_local $3 + get_local $0 + get_local $5 + i32.store + get_local $3 + if $if_2 + get_local $3 + call $__ZdlPv + end ;; $if_2 + get_local $2 + get_local $1 + i32.store + i32.const 0 + set_local $2 + loop $loop + get_local $0 + i32.load + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.const 0 + i32.store + get_local $2 + i32.const 1 + i32.add + tee_local $2 + get_local $1 + i32.ne + br_if $loop + end ;; $loop + get_local $0 + i32.const 8 + i32.add + tee_local $2 + i32.load + tee_local $6 + i32.eqz + if $if_3 + return + end ;; $if_3 + get_local $6 + i32.load offset=4 + set_local $3 + get_local $1 + get_local $1 + i32.const -1 + i32.add + tee_local $7 + i32.and + i32.eqz + tee_local $5 + if $if_4 + get_local $3 + get_local $7 + i32.and + set_local $3 + else + get_local $3 + get_local $1 + i32.ge_u + if $if_5 + get_local $3 + get_local $1 + i32.rem_u + set_local $3 + end ;; $if_5 + end ;; $if_4 + get_local $0 + i32.load + get_local $3 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store + get_local $6 + i32.load + tee_local $2 + i32.eqz + if $if_6 + return + end ;; $if_6 + get_local $5 + if $if_7 + get_local $2 + set_local $1 + get_local $6 + set_local $5 + loop $loop_0 + get_local $3 + get_local $7 + get_local $1 + i32.load offset=4 + i32.and + tee_local $4 + i32.eq + if $if_8 (result i32) + get_local $1 + else + block $block (result i32) + get_local $0 + i32.load + get_local $4 + i32.const 2 + i32.shl + i32.add + tee_local $2 + i32.load + i32.eqz + if $if_9 + get_local $2 + get_local $5 + i32.store + get_local $4 + set_local $3 + get_local $1 + br $block + end ;; $if_9 + get_local $1 + i32.load + tee_local $2 + if $if_10 + block $block_0 + get_local $1 + i32.load offset=8 + set_local $9 + get_local $1 + set_local $6 + loop $loop_1 + get_local $9 + get_local $2 + i32.load offset=8 + i32.ne + if $if_11 + get_local $6 + set_local $2 + br $block_0 + end ;; $if_11 + get_local $2 + i32.load + tee_local $8 + if $if_12 + get_local $2 + set_local $6 + get_local $8 + set_local $2 + br $loop_1 + end ;; $if_12 + end ;; $loop_1 + end ;; $block_0 + else + get_local $1 + set_local $2 + end ;; $if_10 + get_local $5 + get_local $2 + i32.load + i32.store + get_local $2 + get_local $0 + i32.load + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.load + i32.store + get_local $0 + i32.load + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load + get_local $1 + i32.store + get_local $5 + end ;; $block + end ;; $if_8 + tee_local $2 + i32.load + tee_local $1 + if $if_13 + get_local $2 + set_local $5 + br $loop_0 + end ;; $if_13 + end ;; $loop_0 + return + end ;; $if_7 + get_local $3 + set_local $5 + loop $loop_2 + get_local $2 + i32.load offset=4 + tee_local $4 + get_local $1 + i32.ge_u + if $if_14 + get_local $4 + get_local $1 + i32.rem_u + set_local $4 + end ;; $if_14 + get_local $4 + get_local $5 + i32.eq + if $if_15 (result i32) + get_local $2 + else + block $block_1 (result i32) + get_local $0 + i32.load + get_local $4 + i32.const 2 + i32.shl + i32.add + tee_local $3 + i32.load + i32.eqz + if $if_16 + get_local $3 + get_local $6 + i32.store + get_local $4 + set_local $5 + get_local $2 + br $block_1 + end ;; $if_16 + get_local $2 + i32.load + tee_local $3 + if $if_17 + block $block_2 + get_local $2 + i32.load offset=8 + set_local $9 + get_local $2 + set_local $8 + loop $loop_3 + get_local $3 + i32.load offset=8 + get_local $9 + i32.ne + if $if_18 + get_local $8 + set_local $3 + br $block_2 + end ;; $if_18 + get_local $3 + i32.load + tee_local $7 + if $if_19 + get_local $3 + set_local $8 + get_local $7 + set_local $3 + br $loop_3 + end ;; $if_19 + end ;; $loop_3 + end ;; $block_2 + else + get_local $2 + set_local $3 + end ;; $if_17 + get_local $6 + get_local $3 + i32.load + i32.store + get_local $3 + get_local $0 + i32.load + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.load + i32.store + get_local $0 + i32.load + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load + get_local $2 + i32.store + get_local $6 + end ;; $block_1 + end ;; $if_15 + tee_local $3 + i32.load + tee_local $2 + if $if_20 + get_local $3 + set_local $6 + br $loop_2 + end ;; $if_20 + end ;; $loop_2 + ) + + (func $__ZNSt3__212__hash_tableINS_17__hash_value_typeIiNS_10unique_ptrI7ContextNS_14default_deleteIS3_EEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE14__erase_uniqueIiEEmRKT_ (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + get_local $0 + i32.load + set_local $1 + i32.const 4948 + i32.load + tee_local $3 + i32.eqz + if $if + i32.const 0 + return + end ;; $if + i32.const 4944 + i32.load + tee_local $4 + get_local $3 + get_local $3 + i32.const -1 + i32.add + tee_local $6 + i32.and + i32.eqz + tee_local $7 + if $if_0 (result i32) + get_local $1 + get_local $6 + i32.and + else + get_local $1 + get_local $3 + i32.lt_u + if $if_1 (result i32) + get_local $1 + else + get_local $1 + get_local $3 + i32.rem_u + end ;; $if_1 + end ;; $if_0 + tee_local $5 + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $0 + i32.eqz + if $if_2 + i32.const 0 + return + end ;; $if_2 + get_local $0 + i32.load + tee_local $0 + i32.eqz + if $if_3 + i32.const 0 + return + end ;; $if_3 + block $block + get_local $7 + if $if_4 + loop $loop + get_local $0 + i32.load offset=4 + tee_local $2 + get_local $1 + i32.eq + tee_local $8 + get_local $5 + get_local $2 + get_local $6 + i32.and + i32.eq + i32.or + if $if_5 + get_local $8 + if $if_6 + get_local $1 + get_local $0 + i32.load offset=8 + i32.eq + br_if $block + end ;; $if_6 + get_local $0 + i32.load + tee_local $0 + br_if $loop + end ;; $if_5 + end ;; $loop + else + loop $loop_0 + block $block_0 + get_local $1 + get_local $0 + i32.load offset=4 + tee_local $2 + i32.eq + if $if_7 + get_local $1 + get_local $0 + i32.load offset=8 + i32.eq + br_if $block + else + get_local $2 + get_local $3 + i32.ge_u + if $if_8 (result i32) + get_local $2 + get_local $3 + i32.rem_u + else + get_local $2 + end ;; $if_8 + get_local $5 + i32.ne + br_if $block_0 + end ;; $if_7 + get_local $0 + i32.load + tee_local $0 + br_if $loop_0 + end ;; $block_0 + end ;; $loop_0 + end ;; $if_4 + i32.const 0 + return + end ;; $block + get_local $7 + if $if_9 (result i32) + get_local $1 + get_local $6 + i32.and + else + get_local $1 + get_local $3 + i32.lt_u + if $if_10 (result i32) + get_local $1 + else + get_local $1 + get_local $3 + i32.rem_u + end ;; $if_10 + end ;; $if_9 + tee_local $8 + i32.const 2 + i32.shl + get_local $4 + i32.add + tee_local $5 + i32.load + set_local $2 + loop $loop_1 + get_local $2 + i32.load + tee_local $1 + get_local $0 + i32.ne + if $if_11 + get_local $1 + set_local $2 + br $loop_1 + end ;; $if_11 + end ;; $loop_1 + block $block_1 (result i32) + block $block_2 + get_local $2 + i32.const 4952 + i32.eq + br_if $block_2 + get_local $2 + i32.load offset=4 + set_local $1 + get_local $7 + if $if_12 (result i32) + get_local $1 + get_local $6 + i32.and + else + get_local $1 + get_local $3 + i32.ge_u + if $if_13 (result i32) + get_local $1 + get_local $3 + i32.rem_u + else + get_local $1 + end ;; $if_13 + end ;; $if_12 + get_local $8 + i32.ne + br_if $block_2 + get_local $0 + br $block_1 + end ;; $block_2 + get_local $0 + i32.load + tee_local $1 + if $if_14 + get_local $1 + i32.load offset=4 + set_local $1 + get_local $0 + get_local $7 + if $if_15 (result i32) + get_local $1 + get_local $6 + i32.and + else + get_local $1 + get_local $3 + i32.ge_u + if $if_16 (result i32) + get_local $1 + get_local $3 + i32.rem_u + else + get_local $1 + end ;; $if_16 + end ;; $if_15 + get_local $8 + i32.eq + br_if $block_1 + drop + end ;; $if_14 + get_local $5 + i32.const 0 + i32.store + get_local $0 + end ;; $block_1 + tee_local $1 + i32.load + tee_local $4 + set_local $5 + get_local $2 + get_local $4 + if $if_17 (result i32) + get_local $4 + i32.load offset=4 + set_local $4 + get_local $8 + get_local $7 + if $if_18 (result i32) + get_local $4 + get_local $6 + i32.and + else + get_local $4 + get_local $3 + i32.ge_u + if $if_19 (result i32) + get_local $4 + get_local $3 + i32.rem_u + else + get_local $4 + end ;; $if_19 + end ;; $if_18 + tee_local $4 + i32.ne + if $if_20 (result i32) + i32.const 4944 + i32.load + get_local $4 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store + get_local $0 + i32.load + else + get_local $5 + end ;; $if_20 + else + get_local $5 + end ;; $if_17 + i32.store + get_local $1 + i32.const 0 + i32.store + i32.const 4956 + i32.const 4956 + i32.load + i32.const -1 + i32.add + i32.store + get_local $0 + i32.eqz + if $if_21 + i32.const 1 + return + end ;; $if_21 + get_local $0 + i32.const 12 + i32.add + tee_local $1 + i32.load + set_local $2 + get_local $1 + i32.const 0 + i32.store + get_local $2 + if $if_22 + get_local $2 + get_local $2 + i32.load + i32.load offset=4 + i32.const 15 + i32.and + i32.const 17 + i32.add + call_indirect $20 (type $1) + end ;; $if_22 + get_local $0 + call $__ZdlPv + i32.const 1 + ) + + (func $___errno_location (type $8) + (result i32) + i32.const 5028 + ) + + (func $_memchr (type $11) + (param $0 i32) + (param $1 i32) + (result i32) + (local $2 i32) + block $block + block $block_0 + block $block_1 + get_local $1 + i32.const 0 + i32.ne + tee_local $2 + get_local $0 + i32.const 3 + i32.and + i32.const 0 + i32.ne + i32.and + if $if + loop $loop + get_local $0 + i32.load8_u + i32.eqz + br_if $block_1 + get_local $1 + i32.const -1 + i32.add + tee_local $1 + i32.const 0 + i32.ne + tee_local $2 + get_local $0 + i32.const 1 + i32.add + tee_local $0 + i32.const 3 + i32.and + i32.const 0 + i32.ne + i32.and + br_if $loop + end ;; $loop + end ;; $if + get_local $2 + i32.eqz + br_if $block_0 + end ;; $block_1 + get_local $0 + i32.load8_u + i32.eqz + if $if_0 + get_local $1 + if $if_1 + br $block + else + br $block_0 + end ;; $if_1 + unreachable + end ;; $if_0 + block $block_2 + block $block_3 + get_local $1 + i32.const 3 + i32.le_u + br_if $block_3 + loop $loop_0 + get_local $0 + i32.load + tee_local $2 + i32.const -16843009 + i32.add + get_local $2 + i32.const -2139062144 + i32.and + i32.const -2139062144 + i32.xor + i32.and + i32.eqz + if $if_2 + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const -4 + i32.add + tee_local $1 + i32.const 3 + i32.gt_u + br_if $loop_0 + br $block_3 + end ;; $if_2 + end ;; $loop_0 + br $block_2 + end ;; $block_3 + get_local $1 + i32.eqz + br_if $block_0 + end ;; $block_2 + loop $loop_1 + get_local $0 + i32.load8_u + i32.eqz + br_if $block + get_local $0 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const -1 + i32.add + tee_local $1 + br_if $loop_1 + end ;; $loop_1 + end ;; $block_0 + i32.const 0 + set_local $0 + end ;; $block + get_local $0 + ) + + (func $_isdigit (type $4) + (param $0 i32) + (result i32) + get_local $0 + i32.const -48 + i32.add + i32.const 10 + i32.lt_u + ) + + (func $_vsnprintf (type $12) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + get_global $27 + set_local $4 + get_global $27 + i32.const 128 + i32.add + set_global $27 + get_local $4 + i32.const 124 + i32.add + set_local $5 + get_local $4 + i32.const 3980 + i64.load align=4 + i64.store align=4 + get_local $4 + i32.const 3988 + i64.load align=4 + i64.store offset=8 align=4 + get_local $4 + i32.const 3996 + i64.load align=4 + i64.store offset=16 align=4 + get_local $4 + i32.const 4004 + i64.load align=4 + i64.store offset=24 align=4 + get_local $4 + i32.const 4012 + i64.load align=4 + i64.store offset=32 align=4 + get_local $4 + i32.const 4020 + i64.load align=4 + i64.store offset=40 align=4 + get_local $4 + i32.const 4028 + i64.load align=4 + i64.store offset=48 align=4 + get_local $4 + i32.const 4036 + i64.load align=4 + i64.store offset=56 align=4 + get_local $4 + i32.const -64 + i32.sub + i32.const 4044 + i64.load align=4 + i64.store align=4 + get_local $4 + i32.const 4052 + i64.load align=4 + i64.store offset=72 align=4 + get_local $4 + i32.const 4060 + i64.load align=4 + i64.store offset=80 align=4 + get_local $4 + i32.const 4068 + i64.load align=4 + i64.store offset=88 align=4 + get_local $4 + i32.const 4076 + i64.load align=4 + i64.store offset=96 align=4 + get_local $4 + i32.const 4084 + i64.load align=4 + i64.store offset=104 align=4 + get_local $4 + i32.const 4092 + i64.load align=4 + i64.store offset=112 align=4 + get_local $4 + i32.const 4100 + i32.load + i32.store offset=120 + block $block + block $block_0 + get_local $1 + i32.const -1 + i32.add + i32.const 2147483646 + i32.le_u + br_if $block_0 + get_local $1 + if $if (result i32) + call $___errno_location + i32.const 75 + i32.store + i32.const -1 + else + get_local $5 + set_local $0 + i32.const 1 + set_local $1 + br $block_0 + end ;; $if + set_local $0 + br $block + end ;; $block_0 + get_local $4 + i32.const -2 + get_local $0 + i32.sub + tee_local $5 + get_local $1 + get_local $1 + get_local $5 + i32.gt_u + select + tee_local $1 + i32.store offset=48 + get_local $4 + i32.const 20 + i32.add + tee_local $5 + get_local $0 + i32.store + get_local $4 + get_local $0 + i32.store offset=44 + get_local $4 + i32.const 16 + i32.add + tee_local $6 + get_local $0 + get_local $1 + i32.add + tee_local $0 + i32.store + get_local $4 + get_local $0 + i32.store offset=28 + get_local $4 + get_local $2 + get_local $3 + call $_vfprintf + set_local $0 + get_local $1 + if $if_0 + get_local $5 + i32.load + tee_local $1 + get_local $1 + get_local $6 + i32.load + i32.eq + i32.const 31 + i32.shl + i32.const 31 + i32.shr_s + i32.add + i32.const 0 + i32.store8 + end ;; $if_0 + end ;; $block + get_local $4 + set_global $27 + get_local $0 + ) + + (func $_vfprintf (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + get_global $27 + set_local $3 + get_global $27 + i32.const 224 + i32.add + set_global $27 + get_local $3 + i32.const 160 + i32.add + tee_local $4 + i64.const 0 + i64.store + get_local $4 + i64.const 0 + i64.store offset=8 + get_local $4 + i64.const 0 + i64.store offset=16 + get_local $4 + i64.const 0 + i64.store offset=24 + get_local $4 + i64.const 0 + i64.store offset=32 + get_local $3 + i32.const 208 + i32.add + tee_local $5 + get_local $2 + i32.load + i32.store + i32.const 0 + get_local $1 + get_local $5 + get_local $3 + i32.const 80 + i32.add + tee_local $2 + get_local $4 + call $_printf_core + i32.const 0 + i32.lt_s + if $if (result i32) + i32.const -1 + else + get_local $0 + i32.load offset=76 + i32.const -1 + i32.gt_s + if $if_0 (result i32) + call $___lockfile + else + i32.const 0 + end ;; $if_0 + set_local $11 + get_local $0 + i32.load + set_local $6 + get_local $0 + i32.load8_s offset=74 + i32.const 1 + i32.lt_s + if $if_1 + get_local $0 + get_local $6 + i32.const -33 + i32.and + i32.store + end ;; $if_1 + get_local $0 + i32.const 48 + i32.add + tee_local $7 + i32.load + if $if_2 + get_local $0 + get_local $1 + get_local $5 + get_local $2 + get_local $4 + call $_printf_core + set_local $1 + else + get_local $0 + i32.const 44 + i32.add + tee_local $8 + i32.load + set_local $9 + get_local $8 + get_local $3 + i32.store + get_local $0 + i32.const 28 + i32.add + tee_local $12 + get_local $3 + i32.store + get_local $0 + i32.const 20 + i32.add + tee_local $10 + get_local $3 + i32.store + get_local $7 + i32.const 80 + i32.store + get_local $0 + i32.const 16 + i32.add + tee_local $13 + get_local $3 + i32.const 80 + i32.add + i32.store + get_local $0 + get_local $1 + get_local $5 + get_local $2 + get_local $4 + call $_printf_core + set_local $1 + get_local $9 + if $if_3 + get_local $0 + i32.load offset=36 + set_local $2 + get_local $0 + i32.const 0 + i32.const 0 + get_local $2 + i32.const 7 + i32.and + i32.const 8 + i32.add + call_indirect $20 (type $3) + drop + get_local $1 + i32.const -1 + get_local $10 + i32.load + select + set_local $1 + get_local $8 + get_local $9 + i32.store + get_local $7 + i32.const 0 + i32.store + get_local $13 + i32.const 0 + i32.store + get_local $12 + i32.const 0 + i32.store + get_local $10 + i32.const 0 + i32.store + end ;; $if_3 + end ;; $if_2 + get_local $0 + get_local $0 + i32.load + tee_local $2 + get_local $6 + i32.const 32 + i32.and + i32.or + i32.store + get_local $11 + if $if_4 + call $___unlockfile + end ;; $if_4 + i32.const -1 + get_local $1 + get_local $2 + i32.const 32 + i32.and + select + end ;; $if + set_local $0 + get_local $3 + set_global $27 + get_local $0 + ) + + (func $_printf_core (type $13) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i64) + get_global $27 + set_local $17 + get_global $27 + i32.const -64 + i32.sub + set_global $27 + get_local $17 + i32.const 40 + i32.add + set_local $11 + get_local $17 + i32.const 60 + i32.add + set_local $22 + get_local $17 + i32.const 56 + i32.add + tee_local $12 + get_local $1 + i32.store + get_local $0 + i32.const 0 + i32.ne + set_local $19 + get_local $17 + i32.const 40 + i32.add + tee_local $21 + set_local $20 + get_local $17 + i32.const 39 + i32.add + set_local $23 + get_local $17 + i32.const 48 + i32.add + tee_local $24 + i32.const 4 + i32.add + set_local $25 + i32.const 0 + set_local $1 + block $block + block $block_0 + loop $loop + block $block_1 + loop $loop_0 + get_local $8 + i32.const -1 + i32.gt_s + if $if + get_local $1 + i32.const 2147483647 + get_local $8 + i32.sub + i32.gt_s + if $if_0 (result i32) + call $___errno_location + i32.const 75 + i32.store + i32.const -1 + else + get_local $1 + get_local $8 + i32.add + end ;; $if_0 + set_local $8 + end ;; $if + get_local $12 + i32.load + tee_local $10 + i32.load8_s + tee_local $9 + i32.eqz + br_if $block_0 + get_local $10 + set_local $1 + block $block_2 + block $block_3 + loop $loop_1 + block $block_4 + block $block_5 + get_local $9 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + br_table + $block_4 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 + $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 + $block_5 $block_5 $block_5 $block_5 $block_5 $block_3 + $block_5 ;; default + end ;; $block_5 + get_local $12 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.store + get_local $1 + i32.load8_s + set_local $9 + br $loop_1 + end ;; $block_4 + end ;; $loop_1 + br $block_2 + end ;; $block_3 + get_local $1 + set_local $9 + loop $loop_2 + get_local $9 + i32.load8_s offset=1 + i32.const 37 + i32.ne + br_if $block_2 + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $12 + get_local $9 + i32.const 2 + i32.add + tee_local $9 + i32.store + get_local $9 + i32.load8_s + i32.const 37 + i32.eq + br_if $loop_2 + end ;; $loop_2 + end ;; $block_2 + get_local $1 + get_local $10 + i32.sub + set_local $1 + get_local $19 + if $if_1 + get_local $0 + get_local $10 + get_local $1 + call $_out_281 + end ;; $if_1 + get_local $1 + br_if $loop_0 + end ;; $loop_0 + get_local $12 + i32.load + i32.load8_s offset=1 + call $_isdigit + i32.eqz + set_local $9 + get_local $12 + get_local $12 + i32.load + tee_local $1 + get_local $9 + if $if_2 (result i32) + i32.const -1 + set_local $14 + i32.const 1 + else + get_local $1 + i32.load8_s offset=2 + i32.const 36 + i32.eq + if $if_3 (result i32) + get_local $1 + i32.load8_s offset=1 + i32.const -48 + i32.add + set_local $14 + i32.const 1 + set_local $5 + i32.const 3 + else + i32.const -1 + set_local $14 + i32.const 1 + end ;; $if_3 + end ;; $if_2 + i32.add + tee_local $1 + i32.store + get_local $1 + i32.load8_s + tee_local $6 + i32.const -32 + i32.add + tee_local $9 + i32.const 31 + i32.gt_u + i32.const 1 + get_local $9 + i32.shl + i32.const 75913 + i32.and + i32.eqz + i32.or + if $if_4 + i32.const 0 + set_local $9 + else + i32.const 0 + set_local $6 + loop $loop_3 + get_local $6 + i32.const 1 + get_local $9 + i32.shl + i32.or + set_local $9 + get_local $12 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.store + get_local $1 + i32.load8_s + tee_local $6 + i32.const -32 + i32.add + tee_local $7 + i32.const 31 + i32.gt_u + i32.const 1 + get_local $7 + i32.shl + i32.const 75913 + i32.and + i32.eqz + i32.or + i32.eqz + if $if_5 + get_local $9 + set_local $6 + get_local $7 + set_local $9 + br $loop_3 + end ;; $if_5 + end ;; $loop_3 + end ;; $if_4 + get_local $6 + i32.const 255 + i32.and + i32.const 42 + i32.eq + if $if_6 + get_local $12 + block $block_6 (result i32) + block $block_7 + get_local $1 + i32.load8_s offset=1 + call $_isdigit + i32.eqz + br_if $block_7 + get_local $12 + i32.load + tee_local $7 + i32.load8_s offset=2 + i32.const 36 + i32.ne + br_if $block_7 + get_local $7 + i32.const 1 + i32.add + tee_local $1 + i32.load8_s + i32.const -48 + i32.add + i32.const 2 + i32.shl + get_local $4 + i32.add + i32.const 10 + i32.store + get_local $1 + i32.load8_s + i32.const -48 + i32.add + i32.const 3 + i32.shl + get_local $3 + i32.add + i64.load + i32.wrap/i64 + set_local $1 + i32.const 1 + set_local $6 + get_local $7 + i32.const 3 + i32.add + br $block_6 + end ;; $block_7 + get_local $5 + if $if_7 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_7 + get_local $19 + if $if_8 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $5 + i32.load + set_local $1 + get_local $2 + get_local $5 + i32.const 4 + i32.add + i32.store + else + i32.const 0 + set_local $1 + end ;; $if_8 + i32.const 0 + set_local $6 + get_local $12 + i32.load + i32.const 1 + i32.add + end ;; $block_6 + tee_local $5 + i32.store + i32.const 0 + get_local $1 + i32.sub + get_local $1 + get_local $1 + i32.const 0 + i32.lt_s + tee_local $1 + select + set_local $15 + get_local $9 + i32.const 8192 + i32.or + get_local $9 + get_local $1 + select + set_local $16 + get_local $6 + set_local $9 + else + get_local $12 + call $_getint_282 + tee_local $15 + i32.const 0 + i32.lt_s + if $if_9 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_9 + get_local $9 + set_local $16 + get_local $5 + set_local $9 + get_local $12 + i32.load + set_local $5 + end ;; $if_6 + get_local $5 + i32.load8_s + i32.const 46 + i32.eq + if $if_10 + block $block_8 + get_local $5 + i32.const 1 + i32.add + tee_local $1 + i32.load8_s + i32.const 42 + i32.ne + if $if_11 + get_local $12 + get_local $1 + i32.store + get_local $12 + call $_getint_282 + set_local $1 + get_local $12 + i32.load + set_local $5 + br $block_8 + end ;; $if_11 + get_local $5 + i32.load8_s offset=2 + call $_isdigit + if $if_12 + get_local $12 + i32.load + tee_local $5 + i32.load8_s offset=3 + i32.const 36 + i32.eq + if $if_13 + get_local $5 + i32.const 2 + i32.add + tee_local $1 + i32.load8_s + i32.const -48 + i32.add + i32.const 2 + i32.shl + get_local $4 + i32.add + i32.const 10 + i32.store + get_local $1 + i32.load8_s + i32.const -48 + i32.add + i32.const 3 + i32.shl + get_local $3 + i32.add + i64.load + i32.wrap/i64 + set_local $1 + get_local $12 + get_local $5 + i32.const 4 + i32.add + tee_local $5 + i32.store + br $block_8 + end ;; $if_13 + end ;; $if_12 + get_local $9 + if $if_14 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_14 + get_local $19 + if $if_15 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $5 + i32.load + set_local $1 + get_local $2 + get_local $5 + i32.const 4 + i32.add + i32.store + else + i32.const 0 + set_local $1 + end ;; $if_15 + get_local $12 + get_local $12 + i32.load + i32.const 2 + i32.add + tee_local $5 + i32.store + end ;; $block_8 + else + i32.const -1 + set_local $1 + end ;; $if_10 + i32.const 0 + set_local $13 + loop $loop_4 + get_local $5 + i32.load8_s + i32.const -65 + i32.add + i32.const 57 + i32.gt_u + if $if_16 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_16 + get_local $12 + get_local $5 + i32.const 1 + i32.add + tee_local $6 + i32.store + get_local $5 + i32.load8_s + get_local $13 + i32.const 58 + i32.mul + i32.add + i32.load8_s offset=959 + tee_local $7 + i32.const 255 + i32.and + tee_local $5 + i32.const -1 + i32.add + i32.const 8 + i32.lt_u + if $if_17 + get_local $5 + set_local $13 + get_local $6 + set_local $5 + br $loop_4 + end ;; $if_17 + end ;; $loop_4 + get_local $7 + i32.eqz + if $if_18 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_18 + get_local $14 + i32.const -1 + i32.gt_s + set_local $18 + block $block_9 + block $block_10 + get_local $7 + i32.const 19 + i32.eq + if $if_19 + get_local $18 + if $if_20 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_20 + else + block $block_11 + get_local $18 + if $if_21 + get_local $14 + i32.const 2 + i32.shl + get_local $4 + i32.add + get_local $5 + i32.store + get_local $11 + get_local $14 + i32.const 3 + i32.shl + get_local $3 + i32.add + i64.load + i64.store + br $block_11 + end ;; $if_21 + get_local $19 + i32.eqz + if $if_22 + i32.const 0 + set_local $8 + br $block_1 + end ;; $if_22 + get_local $11 + get_local $5 + get_local $2 + call $_pop_arg_284 + get_local $12 + i32.load + set_local $6 + br $block_10 + end ;; $block_11 + end ;; $if_19 + get_local $19 + br_if $block_10 + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_10 + get_local $16 + i32.const -65537 + i32.and + tee_local $7 + get_local $16 + get_local $16 + i32.const 8192 + i32.and + select + set_local $5 + block $block_12 + block $block_13 + block $block_14 + block $block_15 + block $block_16 + block $block_17 + block $block_18 + block $block_19 + block $block_20 + block $block_21 + block $block_22 + block $block_23 + block $block_24 + block $block_25 + block $block_26 + block $block_27 + block $block_28 + block $block_29 + block $block_30 + get_local $6 + i32.const -1 + i32.add + i32.load8_s + tee_local $6 + i32.const -33 + i32.and + get_local $6 + get_local $6 + i32.const 15 + i32.and + i32.const 3 + i32.eq + get_local $13 + i32.const 0 + i32.ne + i32.and + select + tee_local $6 + i32.const 65 + i32.sub + br_table + $block_20 $block_19 $block_22 $block_19 $block_20 $block_20 $block_20 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 + $block_19 $block_19 $block_21 $block_19 $block_19 $block_19 $block_19 $block_18 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 + $block_20 $block_19 $block_25 $block_27 $block_20 $block_20 $block_20 $block_19 $block_27 $block_19 $block_19 $block_19 $block_24 $block_30 $block_28 $block_29 + $block_19 $block_19 $block_23 $block_19 $block_26 $block_19 $block_19 $block_18 + $block_19 ;; default + end ;; $block_30 + block $block_31 + block $block_32 + block $block_33 + block $block_34 + block $block_35 + block $block_36 + block $block_37 + block $block_38 + get_local $13 + i32.const 255 + i32.and + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + br_table + $block_38 $block_37 $block_36 $block_35 $block_34 $block_31 $block_33 $block_32 + $block_31 ;; default + end ;; $block_38 + get_local $11 + i32.load + get_local $8 + i32.store + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_37 + get_local $11 + i32.load + get_local $8 + i32.store + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_36 + get_local $11 + i32.load + get_local $8 + i64.extend_s/i32 + i64.store + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_35 + get_local $11 + i32.load + get_local $8 + i32.store16 + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_34 + get_local $11 + i32.load + get_local $8 + i32.store8 + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_33 + get_local $11 + i32.load + get_local $8 + i32.store + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_32 + get_local $11 + i32.load + get_local $8 + i64.extend_s/i32 + i64.store + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_31 + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_29 + i32.const 120 + set_local $6 + get_local $1 + i32.const 8 + get_local $1 + i32.const 8 + i32.gt_u + select + set_local $1 + get_local $5 + i32.const 8 + i32.or + set_local $5 + br $block_18 + end ;; $block_28 + get_local $20 + get_local $11 + i64.load + tee_local $26 + get_local $21 + call $_fmt_o + tee_local $13 + i32.sub + set_local $6 + i32.const 0 + set_local $10 + i32.const 4712 + set_local $7 + get_local $1 + get_local $6 + i32.const 1 + i32.add + get_local $5 + i32.const 8 + i32.and + i32.eqz + get_local $1 + get_local $6 + i32.gt_s + i32.or + select + set_local $1 + br $block_14 + end ;; $block_27 + get_local $11 + i64.load + tee_local $26 + i64.const 0 + i64.lt_s + if $if_23 + get_local $11 + i64.const 0 + get_local $26 + i64.sub + tee_local $26 + i64.store + i32.const 1 + set_local $10 + i32.const 4712 + set_local $7 + else + get_local $5 + i32.const 2049 + i32.and + i32.const 0 + i32.ne + set_local $10 + i32.const 4713 + i32.const 4714 + i32.const 4712 + get_local $5 + i32.const 1 + i32.and + select + get_local $5 + i32.const 2048 + i32.and + select + set_local $7 + end ;; $if_23 + br $block_17 + end ;; $block_26 + i32.const 0 + set_local $10 + i32.const 4712 + set_local $7 + get_local $11 + i64.load + set_local $26 + br $block_17 + end ;; $block_25 + get_local $23 + get_local $11 + i64.load + i64.store8 + get_local $23 + set_local $6 + i32.const 0 + set_local $10 + i32.const 4712 + set_local $16 + i32.const 1 + set_local $13 + get_local $7 + set_local $5 + get_local $20 + set_local $1 + br $block_12 + end ;; $block_24 + call $___errno_location + i32.load + call $_strerror + set_local $6 + br $block_16 + end ;; $block_23 + get_local $11 + i32.load + tee_local $5 + i32.const 4722 + get_local $5 + select + set_local $6 + br $block_16 + end ;; $block_22 + get_local $24 + get_local $11 + i64.load + i64.store32 + get_local $25 + i32.const 0 + i32.store + get_local $11 + get_local $24 + i32.store + i32.const -1 + set_local $10 + br $block_15 + end ;; $block_21 + get_local $1 + if $if_24 + get_local $1 + set_local $10 + br $block_15 + else + get_local $0 + i32.const 32 + get_local $15 + i32.const 0 + get_local $5 + call $_pad_287 + i32.const 0 + set_local $1 + br $block_13 + end ;; $if_24 + unreachable + end ;; $block_20 + get_local $0 + get_local $11 + f64.load + get_local $15 + get_local $1 + get_local $5 + get_local $6 + call $_fmt_fp + set_local $1 + br $block_9 + end ;; $block_19 + get_local $10 + set_local $6 + i32.const 0 + set_local $10 + i32.const 4712 + set_local $16 + get_local $1 + set_local $13 + get_local $20 + set_local $1 + br $block_12 + end ;; $block_18 + get_local $11 + i64.load + tee_local $26 + get_local $21 + get_local $6 + i32.const 32 + i32.and + call $_fmt_x + set_local $13 + i32.const 0 + i32.const 2 + get_local $5 + i32.const 8 + i32.and + i32.eqz + get_local $26 + i64.const 0 + i64.eq + i32.or + tee_local $7 + select + set_local $10 + i32.const 4712 + get_local $6 + i32.const 4 + i32.shr_u + i32.const 4712 + i32.add + get_local $7 + select + set_local $7 + br $block_14 + end ;; $block_17 + get_local $26 + get_local $21 + call $_fmt_u + set_local $13 + br $block_14 + end ;; $block_16 + get_local $6 + get_local $1 + call $_memchr + tee_local $14 + i32.eqz + set_local $18 + i32.const 0 + set_local $10 + i32.const 4712 + set_local $16 + get_local $1 + get_local $14 + get_local $6 + i32.sub + get_local $18 + select + set_local $13 + get_local $7 + set_local $5 + get_local $1 + get_local $6 + i32.add + get_local $14 + get_local $18 + select + set_local $1 + br $block_12 + end ;; $block_15 + get_local $11 + i32.load + set_local $6 + i32.const 0 + set_local $1 + block $block_39 + block $block_40 + loop $loop_5 + get_local $6 + i32.load + tee_local $7 + if $if_25 + get_local $22 + get_local $7 + call $_wctomb + tee_local $7 + i32.const 0 + i32.lt_s + tee_local $13 + get_local $7 + get_local $10 + get_local $1 + i32.sub + i32.gt_u + i32.or + br_if $block_40 + get_local $6 + i32.const 4 + i32.add + set_local $6 + get_local $10 + get_local $1 + get_local $7 + i32.add + tee_local $1 + i32.gt_u + br_if $loop_5 + end ;; $if_25 + end ;; $loop_5 + br $block_39 + end ;; $block_40 + get_local $13 + if $if_26 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_26 + end ;; $block_39 + get_local $0 + i32.const 32 + get_local $15 + get_local $1 + get_local $5 + call $_pad_287 + get_local $1 + if $if_27 + get_local $11 + i32.load + set_local $6 + i32.const 0 + set_local $10 + loop $loop_6 + get_local $6 + i32.load + tee_local $7 + i32.eqz + br_if $block_13 + get_local $10 + get_local $22 + get_local $7 + call $_wctomb + tee_local $7 + i32.add + tee_local $10 + get_local $1 + i32.gt_s + br_if $block_13 + get_local $6 + i32.const 4 + i32.add + set_local $6 + get_local $0 + get_local $22 + get_local $7 + call $_out_281 + get_local $10 + get_local $1 + i32.lt_u + br_if $loop_6 + end ;; $loop_6 + br $block_13 + else + i32.const 0 + set_local $1 + br $block_13 + end ;; $if_27 + unreachable + end ;; $block_14 + get_local $13 + get_local $21 + get_local $26 + i64.const 0 + i64.ne + tee_local $14 + get_local $1 + i32.const 0 + i32.ne + i32.or + tee_local $18 + select + set_local $6 + get_local $7 + set_local $16 + get_local $1 + get_local $20 + get_local $13 + i32.sub + get_local $14 + i32.const 1 + i32.xor + i32.const 1 + i32.and + i32.add + tee_local $7 + get_local $1 + get_local $7 + i32.gt_s + select + i32.const 0 + get_local $18 + select + set_local $13 + get_local $5 + i32.const -65537 + i32.and + get_local $5 + get_local $1 + i32.const -1 + i32.gt_s + select + set_local $5 + get_local $20 + set_local $1 + br $block_12 + end ;; $block_13 + get_local $0 + i32.const 32 + get_local $15 + get_local $1 + get_local $5 + i32.const 8192 + i32.xor + call $_pad_287 + get_local $15 + get_local $1 + get_local $15 + get_local $1 + i32.gt_s + select + set_local $1 + br $block_9 + end ;; $block_12 + get_local $0 + i32.const 32 + get_local $10 + get_local $1 + get_local $6 + i32.sub + tee_local $14 + get_local $13 + get_local $13 + get_local $14 + i32.lt_s + select + tee_local $13 + i32.add + tee_local $7 + get_local $15 + get_local $15 + get_local $7 + i32.lt_s + select + tee_local $1 + get_local $7 + get_local $5 + call $_pad_287 + get_local $0 + get_local $16 + get_local $10 + call $_out_281 + get_local $0 + i32.const 48 + get_local $1 + get_local $7 + get_local $5 + i32.const 65536 + i32.xor + call $_pad_287 + get_local $0 + i32.const 48 + get_local $13 + get_local $14 + i32.const 0 + call $_pad_287 + get_local $0 + get_local $6 + get_local $14 + call $_out_281 + get_local $0 + i32.const 32 + get_local $1 + get_local $7 + get_local $5 + i32.const 8192 + i32.xor + call $_pad_287 + end ;; $block_9 + get_local $9 + set_local $5 + br $loop + end ;; $block_1 + end ;; $loop + br $block + end ;; $block_0 + get_local $0 + i32.eqz + if $if_28 + get_local $5 + if $if_29 (result i32) + i32.const 1 + set_local $0 + loop $loop_7 + get_local $0 + i32.const 2 + i32.shl + get_local $4 + i32.add + i32.load + tee_local $1 + if $if_30 + get_local $0 + i32.const 3 + i32.shl + get_local $3 + i32.add + get_local $1 + get_local $2 + call $_pop_arg_284 + get_local $0 + i32.const 1 + i32.add + tee_local $0 + i32.const 10 + i32.lt_u + br_if $loop_7 + i32.const 1 + set_local $8 + br $block + end ;; $if_30 + end ;; $loop_7 + loop $loop_8 (result i32) + get_local $0 + i32.const 2 + i32.shl + get_local $4 + i32.add + i32.load + if $if_31 + i32.const -1 + set_local $8 + br $block + end ;; $if_31 + get_local $0 + i32.const 1 + i32.add + tee_local $0 + i32.const 10 + i32.lt_u + br_if $loop_8 + i32.const 1 + end ;; $loop_8 + else + i32.const 0 + end ;; $if_29 + set_local $8 + end ;; $if_28 + end ;; $block + get_local $17 + set_global $27 + get_local $8 + ) + + (func $___lockfile (type $8) + (result i32) + i32.const 1 + ) + + (func $___unlockfile (type $5) + nop + ) + + (func $_out_281 (type $9) + (param $0 i32) + (param $1 i32) + (param $2 i32) + get_local $0 + i32.load + i32.const 32 + i32.and + i32.eqz + if $if + get_local $1 + get_local $2 + get_local $0 + call $___fwritex + drop + end ;; $if + ) + + (func $_getint_282 (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + get_local $0 + i32.load + i32.load8_s + call $_isdigit + if $if + loop $loop + get_local $0 + i32.load + tee_local $2 + i32.load8_s + get_local $1 + i32.const 10 + i32.mul + i32.const -48 + i32.add + i32.add + set_local $1 + get_local $0 + get_local $2 + i32.const 1 + i32.add + tee_local $2 + i32.store + get_local $2 + i32.load8_s + call $_isdigit + br_if $loop + end ;; $loop + end ;; $if + get_local $1 + ) + + (func $_pop_arg_284 (type $9) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 f64) + get_local $1 + i32.const 20 + i32.le_u + if $if + block $block + block $block_0 + block $block_1 + block $block_2 + block $block_3 + block $block_4 + block $block_5 + block $block_6 + block $block_7 + block $block_8 + block $block_9 + get_local $1 + i32.const 9 + i32.sub + br_table + $block_9 $block_8 $block_7 $block_6 $block_5 $block_4 $block_3 $block_2 $block_1 $block_0 + $block ;; default + end ;; $block_9 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i32.store + br $block + end ;; $block_8 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i64.extend_s/i32 + i64.store + br $block + end ;; $block_7 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i64.extend_u/i32 + i64.store + br $block + end ;; $block_6 + get_local $2 + i32.load + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $1 + i64.load + set_local $4 + get_local $2 + get_local $1 + i32.const 8 + i32.add + i32.store + get_local $0 + get_local $4 + i64.store + br $block + end ;; $block_5 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i32.const 65535 + i32.and + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i64.extend_s/i32 + i64.store + br $block + end ;; $block_4 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i32.const 65535 + i32.and + i64.extend_u/i32 + i64.store + br $block + end ;; $block_3 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i32.const 255 + i32.and + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i64.extend_s/i32 + i64.store + br $block + end ;; $block_2 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i32.const 255 + i32.and + i64.extend_u/i32 + i64.store + br $block + end ;; $block_1 + get_local $2 + i32.load + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $1 + f64.load + set_local $5 + get_local $2 + get_local $1 + i32.const 8 + i32.add + i32.store + get_local $0 + get_local $5 + f64.store + br $block + end ;; $block_0 + get_local $2 + i32.load + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $1 + f64.load + set_local $5 + get_local $2 + get_local $1 + i32.const 8 + i32.add + i32.store + get_local $0 + get_local $5 + f64.store + end ;; $block + end ;; $if + ) + + (func $_fmt_x (type $14) + (param $0 i64) + (param $1 i32) + (param $2 i32) + (result i32) + get_local $0 + i64.const 0 + i64.ne + if $if + loop $loop + get_local $1 + i32.const -1 + i32.add + tee_local $1 + get_local $2 + get_local $0 + i32.wrap/i64 + i32.const 15 + i32.and + i32.const 1488 + i32.add + i32.load8_u + i32.or + i32.store8 + get_local $0 + i64.const 4 + i64.shr_u + tee_local $0 + i64.const 0 + i64.ne + br_if $loop + end ;; $loop + end ;; $if + get_local $1 + ) + + (func $_fmt_o (type $15) + (param $0 i64) + (param $1 i32) + (result i32) + get_local $0 + i64.const 0 + i64.ne + if $if + loop $loop + get_local $1 + i32.const -1 + i32.add + tee_local $1 + get_local $0 + i32.wrap/i64 + i32.const 7 + i32.and + i32.const 48 + i32.or + i32.store8 + get_local $0 + i64.const 3 + i64.shr_u + tee_local $0 + i64.const 0 + i64.ne + br_if $loop + end ;; $loop + end ;; $if + get_local $1 + ) + + (func $_fmt_u (type $15) + (param $0 i64) + (param $1 i32) + (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + get_local $0 + i32.wrap/i64 + set_local $2 + get_local $0 + i64.const 4294967295 + i64.gt_u + if $if + loop $loop + get_local $1 + i32.const -1 + i32.add + tee_local $1 + get_local $0 + get_local $0 + i64.const 10 + i64.div_u + tee_local $4 + i64.const 10 + i64.mul + i64.sub + i32.wrap/i64 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store8 + get_local $0 + i64.const 42949672959 + i64.gt_u + if $if_0 + get_local $4 + set_local $0 + br $loop + end ;; $if_0 + end ;; $loop + get_local $4 + i32.wrap/i64 + set_local $2 + end ;; $if + get_local $2 + if $if_1 + loop $loop_0 + get_local $1 + i32.const -1 + i32.add + tee_local $1 + get_local $2 + get_local $2 + i32.const 10 + i32.div_u + tee_local $3 + i32.const 10 + i32.mul + i32.sub + i32.const 48 + i32.or + i32.store8 + get_local $2 + i32.const 10 + i32.ge_u + if $if_2 + get_local $3 + set_local $2 + br $loop_0 + end ;; $if_2 + end ;; $loop_0 + end ;; $if_1 + get_local $1 + ) + + (func $_strerror (type $4) + (param $0 i32) + (result i32) + get_local $0 + call $___pthread_self_43 + i32.load offset=188 + call $___strerror_l + ) + + (func $_pad_287 (type $2) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (local $5 i32) + get_global $27 + set_local $5 + get_global $27 + i32.const 256 + i32.add + set_global $27 + get_local $4 + i32.const 73728 + i32.and + i32.eqz + get_local $2 + get_local $3 + i32.gt_s + i32.and + if $if + get_local $5 + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + get_local $2 + get_local $3 + i32.sub + tee_local $1 + i32.const 256 + get_local $1 + i32.const 256 + i32.lt_u + select + call $_memset + drop + get_local $1 + i32.const 255 + i32.gt_u + if $if_0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + loop $loop + get_local $0 + get_local $5 + i32.const 256 + call $_out_281 + get_local $1 + i32.const -256 + i32.add + tee_local $1 + i32.const 255 + i32.gt_u + br_if $loop + end ;; $loop + get_local $2 + i32.const 255 + i32.and + set_local $1 + end ;; $if_0 + get_local $0 + get_local $5 + get_local $1 + call $_out_281 + end ;; $if + get_local $5 + set_global $27 + ) + + (func $_wctomb (type $11) + (param $0 i32) + (param $1 i32) + (result i32) + get_local $0 + if $if (result i32) + get_local $0 + get_local $1 + call $_wcrtomb + else + i32.const 0 + end ;; $if + ) + + (func $_fmt_fp (type $16) + (param $0 i32) + (param $1 f64) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (param $5 i32) + (result i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i64) + (local $25 i64) + (local $26 i64) + (local $27 f64) + get_global $27 + set_local $20 + get_global $27 + i32.const 560 + i32.add + set_global $27 + get_local $20 + i32.const 32 + i32.add + set_local $7 + get_local $20 + tee_local $13 + set_local $17 + get_local $13 + i32.const 536 + i32.add + tee_local $11 + i32.const 0 + i32.store + get_local $13 + i32.const 540 + i32.add + tee_local $9 + i32.const 12 + i32.add + set_local $15 + get_local $1 + call $___DOUBLE_BITS + tee_local $24 + i64.const 0 + i64.lt_s + if $if (result i32) + get_local $1 + f64.neg + tee_local $1 + call $___DOUBLE_BITS + set_local $24 + i32.const 4729 + set_local $18 + i32.const 1 + else + i32.const 4732 + i32.const 4735 + i32.const 4730 + get_local $4 + i32.const 1 + i32.and + select + get_local $4 + i32.const 2048 + i32.and + select + set_local $18 + get_local $4 + i32.const 2049 + i32.and + i32.const 0 + i32.ne + end ;; $if + set_local $19 + get_local $24 + i64.const 9218868437227405312 + i64.and + i64.const 9218868437227405312 + i64.eq + if $if_0 (result i32) + i32.const 4756 + i32.const 4760 + get_local $5 + i32.const 32 + i32.and + i32.const 0 + i32.ne + tee_local $3 + select + i32.const 4748 + i32.const 4752 + get_local $3 + select + get_local $1 + get_local $1 + f64.ne + select + set_local $5 + get_local $0 + i32.const 32 + get_local $2 + get_local $19 + i32.const 3 + i32.add + tee_local $3 + get_local $4 + i32.const -65537 + i32.and + call $_pad_287 + get_local $0 + get_local $18 + get_local $19 + call $_out_281 + get_local $0 + get_local $5 + i32.const 3 + call $_out_281 + get_local $0 + i32.const 32 + get_local $2 + get_local $3 + get_local $4 + i32.const 8192 + i32.xor + call $_pad_287 + get_local $3 + else + block $block (result i32) + get_local $1 + get_local $11 + call $_frexpl + f64.const 0x1.0000000000000p+1 + f64.mul + tee_local $1 + f64.const 0x0.0000000000000p-1023 + f64.ne + tee_local $6 + if $if_1 + get_local $11 + get_local $11 + i32.load + i32.const -1 + i32.add + i32.store + end ;; $if_1 + get_local $5 + i32.const 32 + i32.or + tee_local $14 + i32.const 97 + i32.eq + if $if_2 + get_local $18 + i32.const 9 + i32.add + get_local $18 + get_local $5 + i32.const 32 + i32.and + tee_local $12 + select + set_local $8 + i32.const 12 + get_local $3 + i32.sub + tee_local $7 + i32.eqz + get_local $3 + i32.const 11 + i32.gt_u + i32.or + i32.eqz + if $if_3 + f64.const 0x1.0000000000000p+3 + set_local $27 + loop $loop + get_local $27 + f64.const 0x1.0000000000000p+4 + f64.mul + set_local $27 + get_local $7 + i32.const -1 + i32.add + tee_local $7 + br_if $loop + end ;; $loop + get_local $8 + i32.load8_s + i32.const 45 + i32.eq + if $if_4 (result f64) + get_local $27 + get_local $1 + f64.neg + get_local $27 + f64.sub + f64.add + f64.neg + else + get_local $1 + get_local $27 + f64.add + get_local $27 + f64.sub + end ;; $if_4 + set_local $1 + end ;; $if_3 + get_local $19 + i32.const 2 + i32.or + set_local $10 + get_local $15 + i32.const 0 + get_local $11 + i32.load + tee_local $6 + i32.sub + get_local $6 + get_local $6 + i32.const 0 + i32.lt_s + select + i64.extend_s/i32 + get_local $15 + call $_fmt_u + tee_local $7 + i32.eq + if $if_5 + get_local $9 + i32.const 11 + i32.add + tee_local $7 + i32.const 48 + i32.store8 + end ;; $if_5 + get_local $7 + i32.const -1 + i32.add + get_local $6 + i32.const 31 + i32.shr_s + i32.const 2 + i32.and + i32.const 43 + i32.add + i32.store8 + get_local $7 + i32.const -2 + i32.add + tee_local $7 + get_local $5 + i32.const 15 + i32.add + i32.store8 + get_local $3 + i32.const 1 + i32.lt_s + set_local $9 + get_local $4 + i32.const 8 + i32.and + i32.eqz + set_local $11 + get_local $13 + set_local $5 + loop $loop_0 + get_local $5 + get_local $12 + get_local $1 + i32.trunc_s/f64 + tee_local $6 + i32.const 1488 + i32.add + i32.load8_u + i32.or + i32.store8 + get_local $1 + get_local $6 + f64.convert_s/i32 + f64.sub + f64.const 0x1.0000000000000p+4 + f64.mul + set_local $1 + get_local $5 + i32.const 1 + i32.add + tee_local $6 + get_local $17 + i32.sub + i32.const 1 + i32.eq + if $if_6 (result i32) + get_local $11 + get_local $9 + get_local $1 + f64.const 0x0.0000000000000p-1023 + f64.eq + i32.and + i32.and + if $if_7 (result i32) + get_local $6 + else + get_local $6 + i32.const 46 + i32.store8 + get_local $5 + i32.const 2 + i32.add + end ;; $if_7 + else + get_local $6 + end ;; $if_6 + set_local $5 + get_local $1 + f64.const 0x0.0000000000000p-1023 + f64.ne + br_if $loop_0 + end ;; $loop_0 + block $block_0 (result i32) + block $block_1 + get_local $3 + i32.eqz + br_if $block_1 + get_local $5 + i32.const -2 + get_local $17 + i32.sub + i32.add + get_local $3 + i32.ge_s + br_if $block_1 + get_local $15 + get_local $3 + i32.const 2 + i32.add + i32.add + get_local $7 + i32.sub + set_local $9 + get_local $7 + br $block_0 + end ;; $block_1 + get_local $5 + get_local $15 + get_local $17 + i32.sub + get_local $7 + i32.sub + i32.add + set_local $9 + get_local $7 + end ;; $block_0 + set_local $3 + get_local $0 + i32.const 32 + get_local $2 + get_local $9 + get_local $10 + i32.add + tee_local $6 + get_local $4 + call $_pad_287 + get_local $0 + get_local $8 + get_local $10 + call $_out_281 + get_local $0 + i32.const 48 + get_local $2 + get_local $6 + get_local $4 + i32.const 65536 + i32.xor + call $_pad_287 + get_local $0 + get_local $13 + get_local $5 + get_local $17 + i32.sub + tee_local $5 + call $_out_281 + get_local $0 + i32.const 48 + get_local $9 + get_local $5 + get_local $15 + get_local $3 + i32.sub + tee_local $3 + i32.add + i32.sub + i32.const 0 + i32.const 0 + call $_pad_287 + get_local $0 + get_local $7 + get_local $3 + call $_out_281 + get_local $0 + i32.const 32 + get_local $2 + get_local $6 + get_local $4 + i32.const 8192 + i32.xor + call $_pad_287 + get_local $6 + br $block + end ;; $if_2 + get_local $6 + if $if_8 + get_local $11 + get_local $11 + i32.load + i32.const -28 + i32.add + tee_local $8 + i32.store + get_local $1 + f64.const 0x1.0000000000000p+28 + f64.mul + set_local $1 + else + get_local $11 + i32.load + set_local $8 + end ;; $if_8 + get_local $7 + get_local $7 + i32.const 288 + i32.add + get_local $8 + i32.const 0 + i32.lt_s + select + tee_local $9 + set_local $6 + loop $loop_1 + get_local $6 + get_local $1 + i32.trunc_u/f64 + tee_local $7 + i32.store + get_local $6 + i32.const 4 + i32.add + set_local $6 + get_local $1 + get_local $7 + f64.convert_u/i32 + f64.sub + f64.const 0x1.dcd6500000000p+29 + f64.mul + tee_local $1 + f64.const 0x0.0000000000000p-1023 + f64.ne + br_if $loop_1 + end ;; $loop_1 + get_local $8 + i32.const 0 + i32.gt_s + if $if_9 + get_local $9 + set_local $7 + loop $loop_2 + get_local $8 + i32.const 29 + get_local $8 + i32.const 29 + i32.lt_s + select + set_local $12 + get_local $6 + i32.const -4 + i32.add + tee_local $8 + get_local $7 + i32.ge_u + if $if_10 + get_local $12 + i64.extend_u/i32 + set_local $25 + i32.const 0 + set_local $10 + loop $loop_3 + get_local $10 + i64.extend_u/i32 + get_local $8 + i32.load + i64.extend_u/i32 + get_local $25 + i64.shl + i64.add + tee_local $26 + i64.const 1000000000 + i64.div_u + set_local $24 + get_local $8 + get_local $26 + get_local $24 + i64.const 1000000000 + i64.mul + i64.sub + i64.store32 + get_local $24 + i32.wrap/i64 + set_local $10 + get_local $8 + i32.const -4 + i32.add + tee_local $8 + get_local $7 + i32.ge_u + br_if $loop_3 + end ;; $loop_3 + get_local $10 + if $if_11 + get_local $7 + i32.const -4 + i32.add + tee_local $7 + get_local $10 + i32.store + end ;; $if_11 + end ;; $if_10 + get_local $6 + get_local $7 + i32.gt_u + if $if_12 + block $block_2 + loop $loop_4 (result i32) + get_local $6 + i32.const -4 + i32.add + tee_local $8 + i32.load + br_if $block_2 + get_local $8 + get_local $7 + i32.gt_u + if $if_13 (result i32) + get_local $8 + set_local $6 + br $loop_4 + else + get_local $8 + end ;; $if_13 + end ;; $loop_4 + set_local $6 + end ;; $block_2 + end ;; $if_12 + get_local $11 + get_local $11 + i32.load + get_local $12 + i32.sub + tee_local $8 + i32.store + get_local $8 + i32.const 0 + i32.gt_s + br_if $loop_2 + end ;; $loop_2 + else + get_local $9 + set_local $7 + end ;; $if_9 + i32.const 6 + get_local $3 + get_local $3 + i32.const 0 + i32.lt_s + select + set_local $12 + get_local $8 + i32.const 0 + i32.lt_s + if $if_14 + get_local $12 + i32.const 25 + i32.add + i32.const 9 + i32.div_s + i32.const 1 + i32.add + set_local $16 + get_local $14 + i32.const 102 + i32.eq + set_local $21 + get_local $6 + set_local $3 + loop $loop_5 + i32.const 0 + get_local $8 + i32.sub + tee_local $6 + i32.const 9 + get_local $6 + i32.const 9 + i32.lt_s + select + set_local $10 + get_local $9 + get_local $7 + get_local $3 + i32.lt_u + if $if_15 (result i32) + i32.const 1 + get_local $10 + i32.shl + i32.const -1 + i32.add + set_local $22 + i32.const 1000000000 + get_local $10 + i32.shr_u + set_local $23 + i32.const 0 + set_local $8 + get_local $7 + set_local $6 + loop $loop_6 + get_local $6 + get_local $8 + get_local $6 + i32.load + tee_local $8 + get_local $10 + i32.shr_u + i32.add + i32.store + get_local $23 + get_local $8 + get_local $22 + i32.and + i32.mul + set_local $8 + get_local $6 + i32.const 4 + i32.add + tee_local $6 + get_local $3 + i32.lt_u + br_if $loop_6 + end ;; $loop_6 + get_local $7 + get_local $7 + i32.const 4 + i32.add + get_local $7 + i32.load + select + set_local $7 + get_local $8 + if $if_16 + get_local $3 + get_local $8 + i32.store + get_local $3 + i32.const 4 + i32.add + set_local $6 + else + get_local $3 + set_local $6 + end ;; $if_16 + get_local $7 + else + get_local $3 + set_local $6 + get_local $7 + get_local $7 + i32.const 4 + i32.add + get_local $7 + i32.load + select + end ;; $if_15 + tee_local $3 + get_local $21 + select + tee_local $7 + get_local $16 + i32.const 2 + i32.shl + i32.add + get_local $6 + get_local $6 + get_local $7 + i32.sub + i32.const 2 + i32.shr_s + get_local $16 + i32.gt_s + select + set_local $8 + get_local $11 + get_local $10 + get_local $11 + i32.load + i32.add + tee_local $6 + i32.store + get_local $6 + i32.const 0 + i32.lt_s + if $if_17 + get_local $3 + set_local $7 + get_local $8 + set_local $3 + get_local $6 + set_local $8 + br $loop_5 + end ;; $if_17 + end ;; $loop_5 + else + get_local $7 + set_local $3 + get_local $6 + set_local $8 + end ;; $if_14 + get_local $9 + set_local $11 + get_local $3 + get_local $8 + i32.lt_u + if $if_18 + get_local $11 + get_local $3 + i32.sub + i32.const 2 + i32.shr_s + i32.const 9 + i32.mul + set_local $7 + get_local $3 + i32.load + tee_local $9 + i32.const 10 + i32.ge_u + if $if_19 + i32.const 10 + set_local $6 + loop $loop_7 + get_local $7 + i32.const 1 + i32.add + set_local $7 + get_local $9 + get_local $6 + i32.const 10 + i32.mul + tee_local $6 + i32.ge_u + br_if $loop_7 + end ;; $loop_7 + end ;; $if_19 + else + i32.const 0 + set_local $7 + end ;; $if_18 + get_local $12 + i32.const 0 + get_local $7 + get_local $14 + i32.const 102 + i32.eq + select + i32.sub + get_local $14 + i32.const 103 + i32.eq + tee_local $21 + get_local $12 + i32.const 0 + i32.ne + tee_local $22 + i32.and + i32.const 31 + i32.shl + i32.const 31 + i32.shr_s + i32.add + tee_local $6 + get_local $8 + get_local $11 + i32.sub + i32.const 2 + i32.shr_s + i32.const 9 + i32.mul + i32.const -9 + i32.add + i32.lt_s + if $if_20 (result i32) + get_local $6 + i32.const 9216 + i32.add + tee_local $6 + i32.const 9 + i32.div_s + set_local $14 + get_local $6 + get_local $14 + i32.const 9 + i32.mul + i32.sub + tee_local $6 + i32.const 8 + i32.lt_s + if $if_21 + i32.const 10 + set_local $9 + loop $loop_8 + get_local $6 + i32.const 1 + i32.add + set_local $10 + get_local $9 + i32.const 10 + i32.mul + set_local $9 + get_local $6 + i32.const 7 + i32.lt_s + if $if_22 + get_local $10 + set_local $6 + br $loop_8 + end ;; $if_22 + end ;; $loop_8 + else + i32.const 10 + set_local $9 + end ;; $if_21 + get_local $14 + i32.const 2 + i32.shl + get_local $11 + i32.add + i32.const -4092 + i32.add + tee_local $6 + i32.load + tee_local $14 + get_local $9 + i32.div_u + set_local $16 + get_local $8 + get_local $6 + i32.const 4 + i32.add + i32.eq + tee_local $23 + get_local $14 + get_local $9 + get_local $16 + i32.mul + i32.sub + tee_local $10 + i32.eqz + i32.and + i32.eqz + if $if_23 + f64.const 0x1.0000000000001p+53 + f64.const 0x1.0000000000000p+53 + get_local $16 + i32.const 1 + i32.and + select + set_local $1 + f64.const 0x1.0000000000000p-1 + f64.const 0x1.0000000000000p-0 + f64.const 0x1.8000000000000p-0 + get_local $23 + get_local $10 + get_local $9 + i32.const 1 + i32.shr_u + tee_local $16 + i32.eq + i32.and + select + get_local $10 + get_local $16 + i32.lt_u + select + set_local $27 + get_local $19 + if $if_24 + get_local $27 + f64.neg + get_local $27 + get_local $18 + i32.load8_s + i32.const 45 + i32.eq + tee_local $16 + select + set_local $27 + get_local $1 + f64.neg + get_local $1 + get_local $16 + select + set_local $1 + end ;; $if_24 + get_local $6 + get_local $14 + get_local $10 + i32.sub + tee_local $10 + i32.store + get_local $1 + get_local $27 + f64.add + get_local $1 + f64.ne + if $if_25 + get_local $6 + get_local $9 + get_local $10 + i32.add + tee_local $7 + i32.store + get_local $7 + i32.const 999999999 + i32.gt_u + if $if_26 + loop $loop_9 + get_local $6 + i32.const 0 + i32.store + get_local $6 + i32.const -4 + i32.add + tee_local $6 + get_local $3 + i32.lt_u + if $if_27 + get_local $3 + i32.const -4 + i32.add + tee_local $3 + i32.const 0 + i32.store + end ;; $if_27 + get_local $6 + get_local $6 + i32.load + i32.const 1 + i32.add + tee_local $7 + i32.store + get_local $7 + i32.const 999999999 + i32.gt_u + br_if $loop_9 + end ;; $loop_9 + end ;; $if_26 + get_local $11 + get_local $3 + i32.sub + i32.const 2 + i32.shr_s + i32.const 9 + i32.mul + set_local $7 + get_local $3 + i32.load + tee_local $10 + i32.const 10 + i32.ge_u + if $if_28 + i32.const 10 + set_local $9 + loop $loop_10 + get_local $7 + i32.const 1 + i32.add + set_local $7 + get_local $10 + get_local $9 + i32.const 10 + i32.mul + tee_local $9 + i32.ge_u + br_if $loop_10 + end ;; $loop_10 + end ;; $if_28 + end ;; $if_25 + end ;; $if_23 + get_local $7 + set_local $10 + get_local $6 + i32.const 4 + i32.add + tee_local $7 + get_local $8 + get_local $8 + get_local $7 + i32.gt_u + select + set_local $6 + get_local $3 + else + get_local $7 + set_local $10 + get_local $8 + set_local $6 + get_local $3 + end ;; $if_20 + set_local $7 + get_local $6 + get_local $7 + i32.gt_u + if $if_29 (result i32) + block $block_3 (result i32) + get_local $6 + set_local $3 + loop $loop_11 (result i32) + get_local $3 + i32.const -4 + i32.add + tee_local $6 + i32.load + if $if_30 + get_local $3 + set_local $6 + i32.const 1 + br $block_3 + end ;; $if_30 + get_local $6 + get_local $7 + i32.gt_u + if $if_31 (result i32) + get_local $6 + set_local $3 + br $loop_11 + else + i32.const 0 + end ;; $if_31 + end ;; $loop_11 + end ;; $block_3 + else + i32.const 0 + end ;; $if_29 + set_local $14 + get_local $21 + if $if_32 (result i32) + get_local $22 + i32.const 1 + i32.xor + i32.const 1 + i32.and + get_local $12 + i32.add + tee_local $3 + get_local $10 + i32.gt_s + get_local $10 + i32.const -5 + i32.gt_s + i32.and + if $if_33 (result i32) + get_local $3 + i32.const -1 + i32.add + get_local $10 + i32.sub + set_local $8 + get_local $5 + i32.const -1 + i32.add + else + get_local $3 + i32.const -1 + i32.add + set_local $8 + get_local $5 + i32.const -2 + i32.add + end ;; $if_33 + set_local $5 + get_local $4 + i32.const 8 + i32.and + if $if_34 (result i32) + get_local $8 + else + get_local $14 + if $if_35 + get_local $6 + i32.const -4 + i32.add + i32.load + tee_local $12 + if $if_36 + get_local $12 + i32.const 10 + i32.rem_u + if $if_37 + i32.const 0 + set_local $3 + else + i32.const 0 + set_local $3 + i32.const 10 + set_local $9 + loop $loop_12 + get_local $3 + i32.const 1 + i32.add + set_local $3 + get_local $12 + get_local $9 + i32.const 10 + i32.mul + tee_local $9 + i32.rem_u + i32.eqz + br_if $loop_12 + end ;; $loop_12 + end ;; $if_37 + else + i32.const 9 + set_local $3 + end ;; $if_36 + else + i32.const 9 + set_local $3 + end ;; $if_35 + get_local $6 + get_local $11 + i32.sub + i32.const 2 + i32.shr_s + i32.const 9 + i32.mul + i32.const -9 + i32.add + set_local $9 + get_local $5 + i32.const 32 + i32.or + i32.const 102 + i32.eq + if $if_38 (result i32) + get_local $8 + get_local $9 + get_local $3 + i32.sub + tee_local $3 + i32.const 0 + get_local $3 + i32.const 0 + i32.gt_s + select + tee_local $3 + get_local $8 + get_local $3 + i32.lt_s + select + else + get_local $8 + get_local $9 + get_local $10 + i32.add + get_local $3 + i32.sub + tee_local $3 + i32.const 0 + get_local $3 + i32.const 0 + i32.gt_s + select + tee_local $3 + get_local $8 + get_local $3 + i32.lt_s + select + end ;; $if_38 + end ;; $if_34 + else + get_local $12 + end ;; $if_32 + set_local $3 + i32.const 0 + get_local $10 + i32.sub + set_local $9 + get_local $5 + i32.const 32 + i32.or + i32.const 102 + i32.eq + tee_local $12 + if $if_39 (result i32) + i32.const 0 + set_local $8 + get_local $10 + i32.const 0 + get_local $10 + i32.const 0 + i32.gt_s + select + else + get_local $15 + get_local $9 + get_local $10 + get_local $10 + i32.const 0 + i32.lt_s + select + i64.extend_s/i32 + get_local $15 + call $_fmt_u + tee_local $9 + i32.sub + i32.const 2 + i32.lt_s + if $if_40 + loop $loop_13 + get_local $9 + i32.const -1 + i32.add + tee_local $9 + i32.const 48 + i32.store8 + get_local $15 + get_local $9 + i32.sub + i32.const 2 + i32.lt_s + br_if $loop_13 + end ;; $loop_13 + end ;; $if_40 + get_local $9 + i32.const -1 + i32.add + get_local $10 + i32.const 31 + i32.shr_s + i32.const 2 + i32.and + i32.const 43 + i32.add + i32.store8 + get_local $9 + i32.const -2 + i32.add + tee_local $8 + get_local $5 + i32.store8 + get_local $15 + get_local $8 + i32.sub + end ;; $if_39 + set_local $5 + get_local $0 + i32.const 32 + get_local $2 + get_local $3 + get_local $19 + i32.const 1 + i32.add + i32.add + i32.const 1 + get_local $4 + i32.const 3 + i32.shr_u + i32.const 1 + i32.and + get_local $3 + i32.const 0 + i32.ne + tee_local $16 + select + i32.add + get_local $5 + i32.add + tee_local $10 + get_local $4 + call $_pad_287 + get_local $0 + get_local $18 + get_local $19 + call $_out_281 + get_local $0 + i32.const 48 + get_local $2 + get_local $10 + get_local $4 + i32.const 65536 + i32.xor + call $_pad_287 + get_local $12 + if $if_41 + get_local $13 + i32.const 9 + i32.add + tee_local $9 + set_local $8 + get_local $13 + i32.const 8 + i32.add + set_local $15 + get_local $11 + get_local $7 + get_local $7 + get_local $11 + i32.gt_u + select + tee_local $12 + set_local $7 + loop $loop_14 + get_local $7 + i32.load + i64.extend_u/i32 + get_local $9 + call $_fmt_u + set_local $5 + get_local $7 + get_local $12 + i32.eq + if $if_42 + get_local $5 + get_local $9 + i32.eq + if $if_43 + get_local $15 + i32.const 48 + i32.store8 + get_local $15 + set_local $5 + end ;; $if_43 + else + get_local $5 + get_local $13 + i32.gt_u + if $if_44 + get_local $13 + i32.const 48 + get_local $5 + get_local $17 + i32.sub + call $_memset + drop + loop $loop_15 + get_local $5 + i32.const -1 + i32.add + tee_local $5 + get_local $13 + i32.gt_u + br_if $loop_15 + end ;; $loop_15 + end ;; $if_44 + end ;; $if_42 + get_local $0 + get_local $5 + get_local $8 + get_local $5 + i32.sub + call $_out_281 + get_local $7 + i32.const 4 + i32.add + tee_local $5 + get_local $11 + i32.le_u + if $if_45 + get_local $5 + set_local $7 + br $loop_14 + end ;; $if_45 + end ;; $loop_14 + get_local $4 + i32.const 8 + i32.and + i32.eqz + get_local $16 + i32.const 1 + i32.xor + i32.and + i32.eqz + if $if_46 + get_local $0 + i32.const 4764 + i32.const 1 + call $_out_281 + end ;; $if_46 + get_local $5 + get_local $6 + i32.lt_u + get_local $3 + i32.const 0 + i32.gt_s + i32.and + if $if_47 + loop $loop_16 (result i32) + get_local $5 + i32.load + i64.extend_u/i32 + get_local $9 + call $_fmt_u + tee_local $7 + get_local $13 + i32.gt_u + if $if_48 + get_local $13 + i32.const 48 + get_local $7 + get_local $17 + i32.sub + call $_memset + drop + loop $loop_17 + get_local $7 + i32.const -1 + i32.add + tee_local $7 + get_local $13 + i32.gt_u + br_if $loop_17 + end ;; $loop_17 + end ;; $if_48 + get_local $0 + get_local $7 + get_local $3 + i32.const 9 + get_local $3 + i32.const 9 + i32.lt_s + select + call $_out_281 + get_local $3 + i32.const -9 + i32.add + set_local $7 + get_local $5 + i32.const 4 + i32.add + tee_local $5 + get_local $6 + i32.lt_u + get_local $3 + i32.const 9 + i32.gt_s + i32.and + if $if_49 (result i32) + get_local $7 + set_local $3 + br $loop_16 + else + get_local $7 + end ;; $if_49 + end ;; $loop_16 + set_local $3 + end ;; $if_47 + get_local $0 + i32.const 48 + get_local $3 + i32.const 9 + i32.add + i32.const 9 + i32.const 0 + call $_pad_287 + else + get_local $7 + get_local $6 + get_local $7 + i32.const 4 + i32.add + get_local $14 + select + tee_local $19 + i32.lt_u + get_local $3 + i32.const -1 + i32.gt_s + i32.and + if $if_50 + get_local $4 + i32.const 8 + i32.and + i32.eqz + set_local $18 + get_local $13 + i32.const 9 + i32.add + tee_local $11 + set_local $14 + i32.const 0 + get_local $17 + i32.sub + set_local $17 + get_local $13 + i32.const 8 + i32.add + set_local $12 + get_local $3 + set_local $5 + get_local $7 + set_local $6 + loop $loop_18 (result i32) + get_local $11 + get_local $6 + i32.load + i64.extend_u/i32 + get_local $11 + call $_fmt_u + tee_local $3 + i32.eq + if $if_51 + get_local $12 + i32.const 48 + i32.store8 + get_local $12 + set_local $3 + end ;; $if_51 + block $block_4 + get_local $6 + get_local $7 + i32.eq + if $if_52 + get_local $3 + i32.const 1 + i32.add + set_local $9 + get_local $0 + get_local $3 + i32.const 1 + call $_out_281 + get_local $18 + get_local $5 + i32.const 1 + i32.lt_s + i32.and + if $if_53 + get_local $9 + set_local $3 + br $block_4 + end ;; $if_53 + get_local $0 + i32.const 4764 + i32.const 1 + call $_out_281 + get_local $9 + set_local $3 + else + get_local $3 + get_local $13 + i32.le_u + br_if $block_4 + get_local $13 + i32.const 48 + get_local $3 + get_local $17 + i32.add + call $_memset + drop + loop $loop_19 + get_local $3 + i32.const -1 + i32.add + tee_local $3 + get_local $13 + i32.gt_u + br_if $loop_19 + end ;; $loop_19 + end ;; $if_52 + end ;; $block_4 + get_local $0 + get_local $3 + get_local $14 + get_local $3 + i32.sub + tee_local $3 + get_local $5 + get_local $5 + get_local $3 + i32.gt_s + select + call $_out_281 + get_local $6 + i32.const 4 + i32.add + tee_local $6 + get_local $19 + i32.lt_u + get_local $5 + get_local $3 + i32.sub + tee_local $5 + i32.const -1 + i32.gt_s + i32.and + br_if $loop_18 + get_local $5 + end ;; $loop_18 + set_local $3 + end ;; $if_50 + get_local $0 + i32.const 48 + get_local $3 + i32.const 18 + i32.add + i32.const 18 + i32.const 0 + call $_pad_287 + get_local $0 + get_local $8 + get_local $15 + get_local $8 + i32.sub + call $_out_281 + end ;; $if_41 + get_local $0 + i32.const 32 + get_local $2 + get_local $10 + get_local $4 + i32.const 8192 + i32.xor + call $_pad_287 + get_local $10 + end ;; $block + end ;; $if_0 + set_local $0 + get_local $20 + set_global $27 + get_local $2 + get_local $0 + get_local $0 + get_local $2 + i32.lt_s + select + ) + + (func $___DOUBLE_BITS (type $17) + (param $0 f64) + (result i64) + get_local $0 + i64.reinterpret/f64 + ) + + (func $_frexpl (type $18) + (param $0 f64) + (param $1 i32) + (result f64) + get_local $0 + get_local $1 + call $_frexp + ) + + (func $_frexp (type $18) + (param $0 f64) + (param $1 i32) + (result f64) + (local $2 i32) + (local $3 i64) + (local $4 i64) + block $block + block $block_0 + get_local $0 + i64.reinterpret/f64 + tee_local $3 + i64.const 52 + i64.shr_u + tee_local $4 + i32.wrap/i64 + i32.const 2047 + i32.and + tee_local $2 + if $if + get_local $2 + i32.const 2047 + i32.eq + if $if_0 + br $block + else + br $block_0 + end ;; $if_0 + unreachable + end ;; $if + get_local $1 + get_local $0 + f64.const 0x0.0000000000000p-1023 + f64.ne + if $if_1 (result i32) + get_local $0 + f64.const 0x1.0000000000000p+64 + f64.mul + get_local $1 + call $_frexp + set_local $0 + get_local $1 + i32.load + i32.const -64 + i32.add + else + i32.const 0 + end ;; $if_1 + i32.store + br $block + end ;; $block_0 + get_local $1 + get_local $4 + i32.wrap/i64 + i32.const 2047 + i32.and + i32.const -1022 + i32.add + i32.store + get_local $3 + i64.const -9218868437227405313 + i64.and + i64.const 4602678819172646912 + i64.or + f64.reinterpret/i64 + set_local $0 + end ;; $block + get_local $0 + ) + + (func $_wcrtomb (type $11) + (param $0 i32) + (param $1 i32) + (result i32) + get_local $0 + if $if (result i32) + block $block (result i32) + get_local $1 + i32.const 128 + i32.lt_u + if $if_0 + get_local $0 + get_local $1 + i32.store8 + i32.const 1 + br $block + end ;; $if_0 + call $___pthread_self_43 + i32.load offset=188 + i32.load + i32.eqz + if $if_1 + get_local $1 + i32.const -128 + i32.and + i32.const 57216 + i32.eq + if $if_2 + get_local $0 + get_local $1 + i32.store8 + i32.const 1 + br $block + else + call $___errno_location + i32.const 84 + i32.store + i32.const -1 + br $block + end ;; $if_2 + unreachable + end ;; $if_1 + get_local $1 + i32.const 2048 + i32.lt_u + if $if_3 + get_local $0 + get_local $1 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + i32.store8 + get_local $0 + get_local $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=1 + i32.const 2 + br $block + end ;; $if_3 + get_local $1 + i32.const -8192 + i32.and + i32.const 57344 + i32.eq + get_local $1 + i32.const 55296 + i32.lt_u + i32.or + if $if_4 + get_local $0 + get_local $1 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + i32.store8 + get_local $0 + get_local $1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=1 + get_local $0 + get_local $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + i32.const 3 + br $block + end ;; $if_4 + get_local $1 + i32.const -65536 + i32.add + i32.const 1048576 + i32.lt_u + if $if_5 (result i32) + get_local $0 + get_local $1 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + i32.store8 + get_local $0 + get_local $1 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=1 + get_local $0 + get_local $1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + get_local $0 + get_local $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=3 + i32.const 4 + else + call $___errno_location + i32.const 84 + i32.store + i32.const -1 + end ;; $if_5 + end ;; $block + else + i32.const 1 + end ;; $if + ) + + (func $___pthread_self_43 (type $8) + (result i32) + call $_pthread_self + ) + + (func $_pthread_self (type $8) + (result i32) + i32.const 4104 + ) + + (func $___strerror_l (type $11) + (param $0 i32) + (param $1 i32) + (result i32) + (local $2 i32) + (local $3 i32) + block $block + block $block_0 + loop $loop + get_local $2 + i32.const 1504 + i32.add + i32.load8_u + get_local $0 + i32.ne + if $if + get_local $2 + i32.const 1 + i32.add + tee_local $2 + i32.const 87 + i32.ne + br_if $loop + i32.const 87 + set_local $2 + br $block_0 + end ;; $if + end ;; $loop + get_local $2 + br_if $block_0 + i32.const 1600 + set_local $0 + br $block + end ;; $block_0 + i32.const 1600 + set_local $0 + loop $loop_0 + get_local $0 + set_local $3 + loop $loop_1 + get_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + i32.load8_s + if $if_0 + get_local $0 + set_local $3 + br $loop_1 + end ;; $if_0 + end ;; $loop_1 + get_local $2 + i32.const -1 + i32.add + tee_local $2 + br_if $loop_0 + end ;; $loop_0 + end ;; $block + get_local $0 + get_local $1 + i32.load offset=20 + call $___lctrans + ) + + (func $___lctrans (type $11) + (param $0 i32) + (param $1 i32) + (result i32) + get_local $0 + get_local $1 + call $___lctrans_impl + ) + + (func $___lctrans_impl (type $11) + (param $0 i32) + (param $1 i32) + (result i32) + (local $2 i32) + get_local $1 + if $if (result i32) + get_local $1 + i32.load + get_local $1 + i32.load offset=4 + get_local $0 + call $___mo_lookup + else + i32.const 0 + end ;; $if + tee_local $2 + get_local $0 + get_local $2 + select + ) + + (func $___mo_lookup (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load + i32.const 1794895138 + i32.add + tee_local $6 + call $_swapc + set_local $4 + get_local $0 + i32.load offset=12 + get_local $6 + call $_swapc + set_local $5 + get_local $0 + i32.load offset=16 + get_local $6 + call $_swapc + set_local $3 + get_local $4 + get_local $1 + i32.const 2 + i32.shr_u + i32.lt_u + if $if (result i32) + get_local $5 + get_local $1 + get_local $4 + i32.const 2 + i32.shl + i32.sub + tee_local $7 + i32.lt_u + get_local $3 + get_local $7 + i32.lt_u + i32.and + if $if_0 (result i32) + get_local $3 + get_local $5 + i32.or + i32.const 3 + i32.and + if $if_1 (result i32) + i32.const 0 + else + block $block (result i32) + get_local $5 + i32.const 2 + i32.shr_u + set_local $9 + get_local $3 + i32.const 2 + i32.shr_u + set_local $10 + i32.const 0 + set_local $5 + loop $loop + block $block_0 + get_local $9 + get_local $5 + get_local $4 + i32.const 1 + i32.shr_u + tee_local $7 + i32.add + tee_local $11 + i32.const 1 + i32.shl + tee_local $12 + i32.add + tee_local $3 + i32.const 2 + i32.shl + get_local $0 + i32.add + i32.load + get_local $6 + call $_swapc + set_local $8 + i32.const 0 + get_local $3 + i32.const 1 + i32.add + i32.const 2 + i32.shl + get_local $0 + i32.add + i32.load + get_local $6 + call $_swapc + tee_local $3 + get_local $1 + i32.lt_u + get_local $8 + get_local $1 + get_local $3 + i32.sub + i32.lt_u + i32.and + i32.eqz + br_if $block + drop + i32.const 0 + get_local $0 + get_local $3 + get_local $8 + i32.add + i32.add + i32.load8_s + br_if $block + drop + get_local $2 + get_local $0 + get_local $3 + i32.add + call $_strcmp + tee_local $3 + i32.eqz + br_if $block_0 + get_local $3 + i32.const 0 + i32.lt_s + set_local $3 + i32.const 0 + get_local $4 + i32.const 1 + i32.eq + br_if $block + drop + get_local $5 + get_local $11 + get_local $3 + select + set_local $5 + get_local $7 + get_local $4 + get_local $7 + i32.sub + get_local $3 + select + set_local $4 + br $loop + end ;; $block_0 + end ;; $loop + get_local $10 + get_local $12 + i32.add + tee_local $2 + i32.const 2 + i32.shl + get_local $0 + i32.add + i32.load + get_local $6 + call $_swapc + set_local $4 + get_local $2 + i32.const 1 + i32.add + i32.const 2 + i32.shl + get_local $0 + i32.add + i32.load + get_local $6 + call $_swapc + tee_local $2 + get_local $1 + i32.lt_u + get_local $4 + get_local $1 + get_local $2 + i32.sub + i32.lt_u + i32.and + if $if_2 (result i32) + i32.const 0 + get_local $0 + get_local $2 + i32.add + get_local $0 + get_local $2 + get_local $4 + i32.add + i32.add + i32.load8_s + select + else + i32.const 0 + end ;; $if_2 + end ;; $block + end ;; $if_1 + else + i32.const 0 + end ;; $if_0 + else + i32.const 0 + end ;; $if + ) + + (func $_swapc (type $11) + (param $0 i32) + (param $1 i32) + (result i32) + (local $2 i32) + get_local $1 + i32.eqz + set_local $2 + get_local $0 + get_local $0 + call $_llvm_bswap_i32 + get_local $2 + select + ) + + (func $_strcmp (type $11) + (param $0 i32) + (param $1 i32) + (result i32) + (local $2 i32) + (local $3 i32) + get_local $0 + i32.load8_s + tee_local $2 + get_local $1 + i32.load8_s + tee_local $3 + i32.ne + get_local $2 + i32.eqz + i32.or + if $if (result i32) + get_local $2 + set_local $1 + get_local $3 + else + loop $loop (result i32) + get_local $0 + i32.const 1 + i32.add + tee_local $0 + i32.load8_s + tee_local $2 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_s + tee_local $3 + i32.ne + get_local $2 + i32.eqz + i32.or + if $if_0 (result i32) + get_local $2 + set_local $1 + get_local $3 + else + br $loop + end ;; $if_0 + end ;; $loop + end ;; $if + set_local $0 + get_local $1 + i32.const 255 + i32.and + get_local $0 + i32.const 255 + i32.and + i32.sub + ) + + (func $___fwritex (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $block + block $block_0 + get_local $2 + i32.const 16 + i32.add + tee_local $4 + i32.load + tee_local $3 + br_if $block_0 + get_local $2 + call $___towrite + if $if (result i32) + i32.const 0 + else + get_local $4 + i32.load + set_local $3 + br $block_0 + end ;; $if + set_local $2 + br $block + end ;; $block_0 + get_local $3 + get_local $2 + i32.const 20 + i32.add + tee_local $5 + i32.load + tee_local $4 + i32.sub + get_local $1 + i32.lt_u + if $if_0 + get_local $2 + i32.load offset=36 + set_local $3 + get_local $2 + get_local $0 + get_local $1 + get_local $3 + i32.const 7 + i32.and + i32.const 8 + i32.add + call_indirect $20 (type $3) + set_local $2 + br $block + end ;; $if_0 + get_local $1 + i32.eqz + get_local $2 + i32.load8_s offset=75 + i32.const 0 + i32.lt_s + i32.or + if $if_1 + i32.const 0 + set_local $3 + else + block $block_1 + get_local $1 + set_local $3 + loop $loop + get_local $0 + get_local $3 + i32.const -1 + i32.add + tee_local $6 + i32.add + i32.load8_s + i32.const 10 + i32.ne + if $if_2 + get_local $6 + if $if_3 + get_local $6 + set_local $3 + br $loop + else + i32.const 0 + set_local $3 + br $block_1 + end ;; $if_3 + unreachable + end ;; $if_2 + end ;; $loop + get_local $2 + i32.load offset=36 + set_local $4 + get_local $2 + get_local $0 + get_local $3 + get_local $4 + i32.const 7 + i32.and + i32.const 8 + i32.add + call_indirect $20 (type $3) + tee_local $2 + get_local $3 + i32.lt_u + br_if $block + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $1 + get_local $3 + i32.sub + set_local $1 + get_local $5 + i32.load + set_local $4 + end ;; $block_1 + end ;; $if_1 + get_local $4 + get_local $0 + get_local $1 + call $_memcpy + drop + get_local $5 + get_local $1 + get_local $5 + i32.load + i32.add + i32.store + get_local $1 + get_local $3 + i32.add + set_local $2 + end ;; $block + get_local $2 + ) + + (func $___towrite (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + get_local $0 + i32.const 74 + i32.add + tee_local $2 + i32.load8_s + set_local $1 + get_local $2 + get_local $1 + get_local $1 + i32.const 255 + i32.add + i32.or + i32.store8 + get_local $0 + i32.load + tee_local $1 + i32.const 8 + i32.and + if $if (result i32) + get_local $0 + get_local $1 + i32.const 32 + i32.or + i32.store + i32.const -1 + else + get_local $0 + i32.const 0 + i32.store offset=8 + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=44 + tee_local $1 + i32.store offset=28 + get_local $0 + get_local $1 + i32.store offset=20 + get_local $0 + get_local $1 + get_local $0 + i32.load offset=48 + i32.add + i32.store offset=16 + i32.const 0 + end ;; $if + ) + + (func $_sn_write (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + get_local $2 + get_local $0 + i32.load offset=16 + get_local $0 + i32.const 20 + i32.add + tee_local $0 + i32.load + tee_local $4 + i32.sub + tee_local $3 + get_local $3 + get_local $2 + i32.gt_u + select + set_local $3 + get_local $4 + get_local $1 + get_local $3 + call $_memcpy + drop + get_local $0 + get_local $0 + i32.load + get_local $3 + i32.add + i32.store + get_local $2 + ) + + (func $_strlen (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $block + block $block_0 + get_local $0 + tee_local $2 + i32.const 3 + i32.and + i32.eqz + br_if $block_0 + get_local $2 + tee_local $1 + set_local $0 + block $block_1 + loop $loop + get_local $1 + i32.load8_s + i32.eqz + br_if $block_1 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + tee_local $0 + i32.const 3 + i32.and + br_if $loop + end ;; $loop + get_local $1 + set_local $0 + br $block_0 + end ;; $block_1 + br $block + end ;; $block_0 + loop $loop_0 + get_local $0 + i32.const 4 + i32.add + set_local $1 + get_local $0 + i32.load + tee_local $3 + i32.const -16843009 + i32.add + get_local $3 + i32.const -2139062144 + i32.and + i32.const -2139062144 + i32.xor + i32.and + i32.eqz + if $if + get_local $1 + set_local $0 + br $loop_0 + end ;; $if + end ;; $loop_0 + get_local $3 + i32.const 255 + i32.and + if $if_0 + loop $loop_1 + get_local $0 + i32.const 1 + i32.add + tee_local $0 + i32.load8_s + br_if $loop_1 + end ;; $loop_1 + end ;; $if_0 + end ;; $block + get_local $0 + get_local $2 + i32.sub + ) + + (func $_snprintf (type $12) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (result i32) + (local $4 i32) + get_global $27 + set_local $4 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $4 + get_local $3 + i32.store + get_local $0 + get_local $1 + get_local $2 + get_local $4 + call $_vsnprintf + set_local $0 + get_local $4 + set_global $27 + get_local $0 + ) + + (func $_malloc (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + get_global $27 + set_local $14 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $0 + i32.const 245 + i32.lt_u + if $if (result i32) + i32.const 5032 + i32.load + tee_local $7 + i32.const 16 + get_local $0 + i32.const 11 + i32.add + i32.const -8 + i32.and + get_local $0 + i32.const 11 + i32.lt_u + select + tee_local $2 + i32.const 3 + i32.shr_u + tee_local $0 + i32.shr_u + tee_local $3 + i32.const 3 + i32.and + if $if_0 + get_local $3 + i32.const 1 + i32.and + i32.const 1 + i32.xor + get_local $0 + i32.add + tee_local $1 + i32.const 3 + i32.shl + i32.const 5072 + i32.add + tee_local $2 + i32.const 8 + i32.add + tee_local $4 + i32.load + tee_local $3 + i32.const 8 + i32.add + tee_local $6 + i32.load + set_local $0 + get_local $0 + get_local $2 + i32.eq + if $if_1 + i32.const 5032 + i32.const 1 + get_local $1 + i32.shl + i32.const -1 + i32.xor + get_local $7 + i32.and + i32.store + else + i32.const 5048 + i32.load + get_local $0 + i32.gt_u + if $if_2 + call $_abort + end ;; $if_2 + get_local $3 + get_local $0 + i32.const 12 + i32.add + tee_local $5 + i32.load + i32.eq + if $if_3 + get_local $5 + get_local $2 + i32.store + get_local $4 + get_local $0 + i32.store + else + call $_abort + end ;; $if_3 + end ;; $if_1 + get_local $3 + get_local $1 + i32.const 3 + i32.shl + tee_local $0 + i32.const 3 + i32.or + i32.store offset=4 + get_local $0 + get_local $3 + i32.add + i32.const 4 + i32.add + tee_local $0 + get_local $0 + i32.load + i32.const 1 + i32.or + i32.store + get_local $14 + set_global $27 + get_local $6 + return + end ;; $if_0 + get_local $2 + i32.const 5040 + i32.load + tee_local $13 + i32.gt_u + if $if_4 (result i32) + get_local $3 + if $if_5 + get_local $3 + get_local $0 + i32.shl + i32.const 2 + get_local $0 + i32.shl + tee_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.or + i32.and + tee_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.and + i32.const -1 + i32.add + tee_local $0 + i32.const 12 + i32.shr_u + i32.const 16 + i32.and + tee_local $3 + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 5 + i32.shr_u + i32.const 8 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 2 + i32.shr_u + i32.const 4 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 1 + i32.shr_u + i32.const 2 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 1 + i32.shr_u + i32.const 1 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + i32.add + tee_local $1 + i32.const 3 + i32.shl + i32.const 5072 + i32.add + tee_local $5 + i32.const 8 + i32.add + tee_local $9 + i32.load + tee_local $0 + i32.const 8 + i32.add + tee_local $10 + i32.load + set_local $3 + get_local $3 + get_local $5 + i32.eq + if $if_6 + i32.const 5032 + i32.const 1 + get_local $1 + i32.shl + i32.const -1 + i32.xor + get_local $7 + i32.and + tee_local $4 + i32.store + else + i32.const 5048 + i32.load + get_local $3 + i32.gt_u + if $if_7 + call $_abort + end ;; $if_7 + get_local $0 + get_local $3 + i32.const 12 + i32.add + tee_local $11 + i32.load + i32.eq + if $if_8 + get_local $11 + get_local $5 + i32.store + get_local $9 + get_local $3 + i32.store + get_local $7 + set_local $4 + else + call $_abort + end ;; $if_8 + end ;; $if_6 + get_local $0 + get_local $2 + i32.const 3 + i32.or + i32.store offset=4 + get_local $0 + get_local $2 + i32.add + tee_local $7 + get_local $1 + i32.const 3 + i32.shl + tee_local $3 + get_local $2 + i32.sub + tee_local $5 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $3 + i32.add + get_local $5 + i32.store + get_local $13 + if $if_9 + i32.const 5052 + i32.load + set_local $2 + get_local $13 + i32.const 3 + i32.shr_u + tee_local $3 + i32.const 3 + i32.shl + i32.const 5072 + i32.add + set_local $0 + i32.const 1 + get_local $3 + i32.shl + tee_local $3 + get_local $4 + i32.and + if $if_10 + i32.const 5048 + i32.load + get_local $0 + i32.const 8 + i32.add + tee_local $3 + i32.load + tee_local $1 + i32.gt_u + if $if_11 + call $_abort + else + get_local $1 + set_local $6 + get_local $3 + set_local $12 + end ;; $if_11 + else + i32.const 5032 + get_local $3 + get_local $4 + i32.or + i32.store + get_local $0 + set_local $6 + get_local $0 + i32.const 8 + i32.add + set_local $12 + end ;; $if_10 + get_local $12 + get_local $2 + i32.store + get_local $6 + get_local $2 + i32.store offset=12 + get_local $2 + get_local $6 + i32.store offset=8 + get_local $2 + get_local $0 + i32.store offset=12 + end ;; $if_9 + i32.const 5040 + get_local $5 + i32.store + i32.const 5052 + get_local $7 + i32.store + get_local $14 + set_global $27 + get_local $10 + return + end ;; $if_5 + i32.const 5036 + i32.load + tee_local $12 + if $if_12 (result i32) + get_local $12 + i32.const 0 + get_local $12 + i32.sub + i32.and + i32.const -1 + i32.add + tee_local $0 + i32.const 12 + i32.shr_u + i32.const 16 + i32.and + tee_local $3 + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 5 + i32.shr_u + i32.const 8 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 2 + i32.shr_u + i32.const 4 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 1 + i32.shr_u + i32.const 2 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 1 + i32.shr_u + i32.const 1 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + i32.add + i32.const 2 + i32.shl + i32.const 5336 + i32.add + i32.load + tee_local $4 + set_local $0 + get_local $4 + i32.load offset=4 + i32.const -8 + i32.and + get_local $2 + i32.sub + set_local $10 + loop $loop + block $block + get_local $0 + i32.load offset=16 + tee_local $3 + if $if_13 + get_local $3 + set_local $0 + else + get_local $0 + i32.load offset=20 + tee_local $0 + i32.eqz + br_if $block + end ;; $if_13 + get_local $0 + get_local $4 + get_local $0 + i32.load offset=4 + i32.const -8 + i32.and + get_local $2 + i32.sub + tee_local $3 + get_local $10 + i32.lt_u + tee_local $6 + select + set_local $4 + get_local $3 + get_local $10 + get_local $6 + select + set_local $10 + br $loop + end ;; $block + end ;; $loop + i32.const 5048 + i32.load + tee_local $15 + get_local $4 + i32.gt_u + if $if_14 + call $_abort + end ;; $if_14 + get_local $2 + get_local $4 + i32.add + tee_local $8 + get_local $4 + i32.le_u + if $if_15 + call $_abort + end ;; $if_15 + get_local $4 + i32.load offset=24 + set_local $11 + get_local $4 + get_local $4 + i32.load offset=12 + tee_local $0 + i32.eq + if $if_16 + block $block_0 + get_local $4 + i32.const 20 + i32.add + tee_local $3 + i32.load + tee_local $0 + i32.eqz + if $if_17 + get_local $4 + i32.const 16 + i32.add + tee_local $3 + i32.load + tee_local $0 + i32.eqz + br_if $block_0 + end ;; $if_17 + loop $loop_0 + block $block_1 + get_local $0 + i32.const 20 + i32.add + tee_local $6 + i32.load + tee_local $9 + i32.eqz + if $if_18 + get_local $0 + i32.const 16 + i32.add + tee_local $6 + i32.load + tee_local $9 + i32.eqz + br_if $block_1 + end ;; $if_18 + get_local $6 + set_local $3 + get_local $9 + set_local $0 + br $loop_0 + end ;; $block_1 + end ;; $loop_0 + get_local $15 + get_local $3 + i32.gt_u + if $if_19 + call $_abort + else + get_local $3 + i32.const 0 + i32.store + get_local $0 + set_local $1 + end ;; $if_19 + end ;; $block_0 + else + get_local $15 + get_local $4 + i32.load offset=8 + tee_local $3 + i32.gt_u + if $if_20 + call $_abort + end ;; $if_20 + get_local $3 + i32.const 12 + i32.add + tee_local $6 + i32.load + get_local $4 + i32.ne + if $if_21 + call $_abort + end ;; $if_21 + get_local $4 + get_local $0 + i32.const 8 + i32.add + tee_local $9 + i32.load + i32.eq + if $if_22 + get_local $6 + get_local $0 + i32.store + get_local $9 + get_local $3 + i32.store + get_local $0 + set_local $1 + else + call $_abort + end ;; $if_22 + end ;; $if_16 + get_local $11 + if $if_23 + block $block_2 + get_local $4 + get_local $4 + i32.load offset=28 + tee_local $0 + i32.const 2 + i32.shl + i32.const 5336 + i32.add + tee_local $3 + i32.load + i32.eq + if $if_24 + get_local $3 + get_local $1 + i32.store + get_local $1 + i32.eqz + if $if_25 + i32.const 5036 + get_local $12 + i32.const 1 + get_local $0 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + br $block_2 + end ;; $if_25 + else + i32.const 5048 + i32.load + get_local $11 + i32.gt_u + if $if_26 + call $_abort + else + get_local $11 + i32.const 16 + i32.add + tee_local $0 + get_local $11 + i32.const 20 + i32.add + get_local $4 + get_local $0 + i32.load + i32.eq + select + get_local $1 + i32.store + get_local $1 + i32.eqz + br_if $block_2 + end ;; $if_26 + end ;; $if_24 + i32.const 5048 + i32.load + tee_local $3 + get_local $1 + i32.gt_u + if $if_27 + call $_abort + end ;; $if_27 + get_local $1 + get_local $11 + i32.store offset=24 + get_local $4 + i32.load offset=16 + tee_local $0 + if $if_28 + get_local $3 + get_local $0 + i32.gt_u + if $if_29 + call $_abort + else + get_local $1 + get_local $0 + i32.store offset=16 + get_local $0 + get_local $1 + i32.store offset=24 + end ;; $if_29 + end ;; $if_28 + get_local $4 + i32.load offset=20 + tee_local $0 + if $if_30 + i32.const 5048 + i32.load + get_local $0 + i32.gt_u + if $if_31 + call $_abort + else + get_local $1 + get_local $0 + i32.store offset=20 + get_local $0 + get_local $1 + i32.store offset=24 + end ;; $if_31 + end ;; $if_30 + end ;; $block_2 + end ;; $if_23 + get_local $10 + i32.const 16 + i32.lt_u + if $if_32 + get_local $4 + get_local $2 + get_local $10 + i32.add + tee_local $0 + i32.const 3 + i32.or + i32.store offset=4 + get_local $0 + get_local $4 + i32.add + i32.const 4 + i32.add + tee_local $0 + get_local $0 + i32.load + i32.const 1 + i32.or + i32.store + else + get_local $4 + get_local $2 + i32.const 3 + i32.or + i32.store offset=4 + get_local $8 + get_local $10 + i32.const 1 + i32.or + i32.store offset=4 + get_local $8 + get_local $10 + i32.add + get_local $10 + i32.store + get_local $13 + if $if_33 + i32.const 5052 + i32.load + set_local $2 + get_local $13 + i32.const 3 + i32.shr_u + tee_local $3 + i32.const 3 + i32.shl + i32.const 5072 + i32.add + set_local $0 + i32.const 1 + get_local $3 + i32.shl + tee_local $3 + get_local $7 + i32.and + if $if_34 + i32.const 5048 + i32.load + get_local $0 + i32.const 8 + i32.add + tee_local $3 + i32.load + tee_local $1 + i32.gt_u + if $if_35 + call $_abort + else + get_local $1 + set_local $5 + get_local $3 + set_local $16 + end ;; $if_35 + else + i32.const 5032 + get_local $3 + get_local $7 + i32.or + i32.store + get_local $0 + set_local $5 + get_local $0 + i32.const 8 + i32.add + set_local $16 + end ;; $if_34 + get_local $16 + get_local $2 + i32.store + get_local $5 + get_local $2 + i32.store offset=12 + get_local $2 + get_local $5 + i32.store offset=8 + get_local $2 + get_local $0 + i32.store offset=12 + end ;; $if_33 + i32.const 5040 + get_local $10 + i32.store + i32.const 5052 + get_local $8 + i32.store + end ;; $if_32 + get_local $14 + set_global $27 + get_local $4 + i32.const 8 + i32.add + return + else + get_local $2 + end ;; $if_12 + else + get_local $2 + end ;; $if_4 + else + get_local $0 + i32.const -65 + i32.gt_u + if $if_36 (result i32) + i32.const -1 + else + block $block_3 (result i32) + get_local $0 + i32.const 11 + i32.add + tee_local $0 + i32.const -8 + i32.and + set_local $4 + i32.const 5036 + i32.load + tee_local $6 + if $if_37 (result i32) + get_local $0 + i32.const 8 + i32.shr_u + tee_local $0 + if $if_38 (result i32) + get_local $4 + i32.const 16777215 + i32.gt_u + if $if_39 (result i32) + i32.const 31 + else + get_local $0 + get_local $0 + i32.const 1048320 + i32.add + i32.const 16 + i32.shr_u + i32.const 8 + i32.and + tee_local $1 + i32.shl + tee_local $2 + i32.const 520192 + i32.add + i32.const 16 + i32.shr_u + i32.const 4 + i32.and + set_local $0 + i32.const 14 + get_local $0 + get_local $1 + i32.or + get_local $2 + get_local $0 + i32.shl + tee_local $0 + i32.const 245760 + i32.add + i32.const 16 + i32.shr_u + i32.const 2 + i32.and + tee_local $1 + i32.or + i32.sub + get_local $0 + get_local $1 + i32.shl + i32.const 15 + i32.shr_u + i32.add + tee_local $0 + i32.const 1 + i32.shl + get_local $4 + get_local $0 + i32.const 7 + i32.add + i32.shr_u + i32.const 1 + i32.and + i32.or + end ;; $if_39 + else + i32.const 0 + end ;; $if_38 + set_local $18 + i32.const 0 + get_local $4 + i32.sub + set_local $2 + block $block_4 + block $block_5 + get_local $18 + i32.const 2 + i32.shl + i32.const 5336 + i32.add + i32.load + tee_local $0 + if $if_40 (result i32) + i32.const 0 + set_local $1 + get_local $4 + i32.const 0 + i32.const 25 + get_local $18 + i32.const 1 + i32.shr_u + i32.sub + get_local $18 + i32.const 31 + i32.eq + select + i32.shl + set_local $12 + loop $loop_1 (result i32) + get_local $0 + i32.load offset=4 + i32.const -8 + i32.and + get_local $4 + i32.sub + tee_local $16 + get_local $2 + i32.lt_u + if $if_41 + get_local $16 + if $if_42 (result i32) + get_local $16 + set_local $2 + get_local $0 + else + i32.const 0 + set_local $2 + get_local $0 + set_local $1 + br $block_5 + end ;; $if_42 + set_local $1 + end ;; $if_41 + get_local $5 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $5 + i32.eqz + get_local $5 + get_local $0 + i32.const 16 + i32.add + get_local $12 + i32.const 31 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $0 + i32.eq + i32.or + select + set_local $5 + get_local $12 + i32.const 1 + i32.shl + set_local $12 + get_local $0 + br_if $loop_1 + get_local $1 + end ;; $loop_1 + else + i32.const 0 + end ;; $if_40 + set_local $0 + get_local $0 + get_local $5 + i32.or + if $if_43 (result i32) + get_local $5 + else + get_local $4 + get_local $6 + i32.const 2 + get_local $18 + i32.shl + tee_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.or + i32.and + tee_local $1 + i32.eqz + br_if $block_3 + drop + i32.const 0 + set_local $0 + get_local $1 + i32.const 0 + get_local $1 + i32.sub + i32.and + i32.const -1 + i32.add + tee_local $1 + i32.const 12 + i32.shr_u + i32.const 16 + i32.and + tee_local $5 + get_local $1 + get_local $5 + i32.shr_u + tee_local $1 + i32.const 5 + i32.shr_u + i32.const 8 + i32.and + tee_local $5 + i32.or + get_local $1 + get_local $5 + i32.shr_u + tee_local $1 + i32.const 2 + i32.shr_u + i32.const 4 + i32.and + tee_local $5 + i32.or + get_local $1 + get_local $5 + i32.shr_u + tee_local $1 + i32.const 1 + i32.shr_u + i32.const 2 + i32.and + tee_local $5 + i32.or + get_local $1 + get_local $5 + i32.shr_u + tee_local $1 + i32.const 1 + i32.shr_u + i32.const 1 + i32.and + tee_local $5 + i32.or + get_local $1 + get_local $5 + i32.shr_u + i32.add + i32.const 2 + i32.shl + i32.const 5336 + i32.add + i32.load + end ;; $if_43 + tee_local $1 + br_if $block_5 + get_local $0 + set_local $5 + br $block_4 + end ;; $block_5 + get_local $0 + set_local $5 + get_local $2 + set_local $0 + loop $loop_2 (result i32) + get_local $1 + i32.load offset=4 + set_local $12 + get_local $1 + i32.load offset=16 + tee_local $2 + i32.eqz + if $if_44 + get_local $1 + i32.load offset=20 + set_local $2 + end ;; $if_44 + get_local $12 + i32.const -8 + i32.and + get_local $4 + i32.sub + tee_local $16 + get_local $0 + i32.lt_u + set_local $12 + get_local $16 + get_local $0 + get_local $12 + select + set_local $0 + get_local $1 + get_local $5 + get_local $12 + select + set_local $5 + get_local $2 + if $if_45 (result i32) + get_local $2 + set_local $1 + br $loop_2 + else + get_local $0 + end ;; $if_45 + end ;; $loop_2 + set_local $2 + end ;; $block_4 + get_local $5 + if $if_46 (result i32) + get_local $2 + i32.const 5040 + i32.load + get_local $4 + i32.sub + i32.lt_u + if $if_47 (result i32) + i32.const 5048 + i32.load + tee_local $17 + get_local $5 + i32.gt_u + if $if_48 + call $_abort + end ;; $if_48 + get_local $4 + get_local $5 + i32.add + tee_local $8 + get_local $5 + i32.le_u + if $if_49 + call $_abort + end ;; $if_49 + get_local $5 + i32.load offset=24 + set_local $15 + get_local $5 + get_local $5 + i32.load offset=12 + tee_local $0 + i32.eq + if $if_50 + block $block_6 + get_local $5 + i32.const 20 + i32.add + tee_local $1 + i32.load + tee_local $0 + i32.eqz + if $if_51 + get_local $5 + i32.const 16 + i32.add + tee_local $1 + i32.load + tee_local $0 + i32.eqz + br_if $block_6 + end ;; $if_51 + loop $loop_3 + block $block_7 + get_local $0 + i32.const 20 + i32.add + tee_local $9 + i32.load + tee_local $11 + i32.eqz + if $if_52 + get_local $0 + i32.const 16 + i32.add + tee_local $9 + i32.load + tee_local $11 + i32.eqz + br_if $block_7 + end ;; $if_52 + get_local $9 + set_local $1 + get_local $11 + set_local $0 + br $loop_3 + end ;; $block_7 + end ;; $loop_3 + get_local $17 + get_local $1 + i32.gt_u + if $if_53 + call $_abort + else + get_local $1 + i32.const 0 + i32.store + get_local $0 + set_local $7 + end ;; $if_53 + end ;; $block_6 + else + get_local $17 + get_local $5 + i32.load offset=8 + tee_local $1 + i32.gt_u + if $if_54 + call $_abort + end ;; $if_54 + get_local $1 + i32.const 12 + i32.add + tee_local $9 + i32.load + get_local $5 + i32.ne + if $if_55 + call $_abort + end ;; $if_55 + get_local $5 + get_local $0 + i32.const 8 + i32.add + tee_local $11 + i32.load + i32.eq + if $if_56 + get_local $9 + get_local $0 + i32.store + get_local $11 + get_local $1 + i32.store + get_local $0 + set_local $7 + else + call $_abort + end ;; $if_56 + end ;; $if_50 + get_local $15 + if $if_57 + block $block_8 + get_local $5 + get_local $5 + i32.load offset=28 + tee_local $0 + i32.const 2 + i32.shl + i32.const 5336 + i32.add + tee_local $1 + i32.load + i32.eq + if $if_58 + get_local $1 + get_local $7 + i32.store + get_local $7 + i32.eqz + if $if_59 + i32.const 5036 + get_local $6 + i32.const 1 + get_local $0 + i32.shl + i32.const -1 + i32.xor + i32.and + tee_local $3 + i32.store + br $block_8 + end ;; $if_59 + else + i32.const 5048 + i32.load + get_local $15 + i32.gt_u + if $if_60 + call $_abort + else + get_local $15 + i32.const 16 + i32.add + tee_local $0 + get_local $15 + i32.const 20 + i32.add + get_local $5 + get_local $0 + i32.load + i32.eq + select + get_local $7 + i32.store + get_local $7 + i32.eqz + if $if_61 + get_local $6 + set_local $3 + br $block_8 + end ;; $if_61 + end ;; $if_60 + end ;; $if_58 + i32.const 5048 + i32.load + tee_local $1 + get_local $7 + i32.gt_u + if $if_62 + call $_abort + end ;; $if_62 + get_local $7 + get_local $15 + i32.store offset=24 + get_local $5 + i32.load offset=16 + tee_local $0 + if $if_63 + get_local $1 + get_local $0 + i32.gt_u + if $if_64 + call $_abort + else + get_local $7 + get_local $0 + i32.store offset=16 + get_local $0 + get_local $7 + i32.store offset=24 + end ;; $if_64 + end ;; $if_63 + get_local $5 + i32.load offset=20 + tee_local $0 + if $if_65 + i32.const 5048 + i32.load + get_local $0 + i32.gt_u + if $if_66 + call $_abort + else + get_local $7 + get_local $0 + i32.store offset=20 + get_local $0 + get_local $7 + i32.store offset=24 + get_local $6 + set_local $3 + end ;; $if_66 + else + get_local $6 + set_local $3 + end ;; $if_65 + end ;; $block_8 + else + get_local $6 + set_local $3 + end ;; $if_57 + get_local $2 + i32.const 16 + i32.lt_u + if $if_67 + get_local $5 + get_local $2 + get_local $4 + i32.add + tee_local $0 + i32.const 3 + i32.or + i32.store offset=4 + get_local $0 + get_local $5 + i32.add + i32.const 4 + i32.add + tee_local $0 + get_local $0 + i32.load + i32.const 1 + i32.or + i32.store + else + block $block_9 + get_local $5 + get_local $4 + i32.const 3 + i32.or + i32.store offset=4 + get_local $8 + get_local $2 + i32.const 1 + i32.or + i32.store offset=4 + get_local $2 + get_local $8 + i32.add + get_local $2 + i32.store + get_local $2 + i32.const 3 + i32.shr_u + set_local $1 + get_local $2 + i32.const 256 + i32.lt_u + if $if_68 + get_local $1 + i32.const 3 + i32.shl + i32.const 5072 + i32.add + set_local $0 + i32.const 5032 + i32.load + tee_local $3 + i32.const 1 + get_local $1 + i32.shl + tee_local $1 + i32.and + if $if_69 + i32.const 5048 + i32.load + get_local $0 + i32.const 8 + i32.add + tee_local $3 + i32.load + tee_local $1 + i32.gt_u + if $if_70 + call $_abort + else + get_local $1 + set_local $13 + get_local $3 + set_local $19 + end ;; $if_70 + else + i32.const 5032 + get_local $1 + get_local $3 + i32.or + i32.store + get_local $0 + set_local $13 + get_local $0 + i32.const 8 + i32.add + set_local $19 + end ;; $if_69 + get_local $19 + get_local $8 + i32.store + get_local $13 + get_local $8 + i32.store offset=12 + get_local $8 + get_local $13 + i32.store offset=8 + get_local $8 + get_local $0 + i32.store offset=12 + br $block_9 + end ;; $if_68 + get_local $2 + i32.const 8 + i32.shr_u + tee_local $0 + if $if_71 (result i32) + get_local $2 + i32.const 16777215 + i32.gt_u + if $if_72 (result i32) + i32.const 31 + else + get_local $0 + get_local $0 + i32.const 1048320 + i32.add + i32.const 16 + i32.shr_u + i32.const 8 + i32.and + tee_local $1 + i32.shl + tee_local $4 + i32.const 520192 + i32.add + i32.const 16 + i32.shr_u + i32.const 4 + i32.and + set_local $0 + i32.const 14 + get_local $0 + get_local $1 + i32.or + get_local $4 + get_local $0 + i32.shl + tee_local $0 + i32.const 245760 + i32.add + i32.const 16 + i32.shr_u + i32.const 2 + i32.and + tee_local $1 + i32.or + i32.sub + get_local $0 + get_local $1 + i32.shl + i32.const 15 + i32.shr_u + i32.add + tee_local $0 + i32.const 1 + i32.shl + get_local $2 + get_local $0 + i32.const 7 + i32.add + i32.shr_u + i32.const 1 + i32.and + i32.or + end ;; $if_72 + else + i32.const 0 + end ;; $if_71 + tee_local $1 + i32.const 2 + i32.shl + i32.const 5336 + i32.add + set_local $0 + get_local $8 + get_local $1 + i32.store offset=28 + get_local $8 + i32.const 16 + i32.add + tee_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + i32.const 0 + i32.store + i32.const 1 + get_local $1 + i32.shl + tee_local $4 + get_local $3 + i32.and + i32.eqz + if $if_73 + i32.const 5036 + get_local $3 + get_local $4 + i32.or + i32.store + get_local $0 + get_local $8 + i32.store + get_local $8 + get_local $0 + i32.store offset=24 + get_local $8 + get_local $8 + i32.store offset=12 + get_local $8 + get_local $8 + i32.store offset=8 + br $block_9 + end ;; $if_73 + get_local $2 + get_local $0 + i32.load + tee_local $0 + i32.load offset=4 + i32.const -8 + i32.and + i32.eq + if $if_74 + get_local $0 + set_local $10 + else + block $block_10 + get_local $2 + i32.const 0 + i32.const 25 + get_local $1 + i32.const 1 + i32.shr_u + i32.sub + get_local $1 + i32.const 31 + i32.eq + select + i32.shl + set_local $1 + loop $loop_4 + get_local $0 + i32.const 16 + i32.add + get_local $1 + i32.const 31 + i32.shr_u + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load + tee_local $3 + if $if_75 + get_local $1 + i32.const 1 + i32.shl + set_local $1 + get_local $2 + get_local $3 + i32.load offset=4 + i32.const -8 + i32.and + i32.eq + if $if_76 + get_local $3 + set_local $10 + br $block_10 + else + get_local $3 + set_local $0 + br $loop_4 + end ;; $if_76 + unreachable + end ;; $if_75 + end ;; $loop_4 + i32.const 5048 + i32.load + get_local $4 + i32.gt_u + if $if_77 + call $_abort + else + get_local $4 + get_local $8 + i32.store + get_local $8 + get_local $0 + i32.store offset=24 + get_local $8 + get_local $8 + i32.store offset=12 + get_local $8 + get_local $8 + i32.store offset=8 + br $block_9 + end ;; $if_77 + end ;; $block_10 + end ;; $if_74 + i32.const 5048 + i32.load + tee_local $0 + get_local $10 + i32.le_u + get_local $0 + get_local $10 + i32.const 8 + i32.add + tee_local $3 + i32.load + tee_local $0 + i32.le_u + i32.and + if $if_78 + get_local $0 + get_local $8 + i32.store offset=12 + get_local $3 + get_local $8 + i32.store + get_local $8 + get_local $0 + i32.store offset=8 + get_local $8 + get_local $10 + i32.store offset=12 + get_local $8 + i32.const 0 + i32.store offset=24 + else + call $_abort + end ;; $if_78 + end ;; $block_9 + end ;; $if_67 + get_local $14 + set_global $27 + get_local $5 + i32.const 8 + i32.add + return + else + get_local $4 + end ;; $if_47 + else + get_local $4 + end ;; $if_46 + else + get_local $4 + end ;; $if_37 + end ;; $block_3 + end ;; $if_36 + end ;; $if + set_local $3 + block $block_11 + i32.const 5040 + i32.load + tee_local $1 + get_local $3 + i32.ge_u + if $if_79 + i32.const 5052 + i32.load + set_local $0 + get_local $1 + get_local $3 + i32.sub + tee_local $2 + i32.const 15 + i32.gt_u + if $if_80 + i32.const 5052 + get_local $0 + get_local $3 + i32.add + tee_local $4 + i32.store + i32.const 5040 + get_local $2 + i32.store + get_local $4 + get_local $2 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $1 + i32.add + get_local $2 + i32.store + get_local $0 + get_local $3 + i32.const 3 + i32.or + i32.store offset=4 + else + i32.const 5040 + i32.const 0 + i32.store + i32.const 5052 + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.const 3 + i32.or + i32.store offset=4 + get_local $0 + get_local $1 + i32.add + i32.const 4 + i32.add + tee_local $3 + get_local $3 + i32.load + i32.const 1 + i32.or + i32.store + end ;; $if_80 + br $block_11 + end ;; $if_79 + block $block_12 + i32.const 5044 + i32.load + tee_local $1 + get_local $3 + i32.gt_u + if $if_81 + i32.const 5044 + get_local $1 + get_local $3 + i32.sub + tee_local $1 + i32.store + br $block_12 + end ;; $if_81 + get_local $3 + i32.const 47 + i32.add + tee_local $6 + i32.const 5504 + i32.load + if $if_82 (result i32) + i32.const 5512 + i32.load + else + i32.const 5512 + i32.const 4096 + i32.store + i32.const 5508 + i32.const 4096 + i32.store + i32.const 5516 + i32.const -1 + i32.store + i32.const 5520 + i32.const -1 + i32.store + i32.const 5524 + i32.const 0 + i32.store + i32.const 5476 + i32.const 0 + i32.store + i32.const 5504 + get_local $14 + i32.const -16 + i32.and + i32.const 1431655768 + i32.xor + i32.store + i32.const 4096 + end ;; $if_82 + tee_local $0 + i32.add + tee_local $5 + i32.const 0 + get_local $0 + i32.sub + tee_local $7 + i32.and + tee_local $4 + get_local $3 + i32.le_u + if $if_83 + get_local $14 + set_global $27 + i32.const 0 + return + end ;; $if_83 + i32.const 5472 + i32.load + tee_local $0 + if $if_84 + get_local $4 + i32.const 5464 + i32.load + tee_local $2 + i32.add + tee_local $10 + get_local $2 + i32.le_u + get_local $10 + get_local $0 + i32.gt_u + i32.or + if $if_85 + get_local $14 + set_global $27 + i32.const 0 + return + end ;; $if_85 + end ;; $if_84 + get_local $3 + i32.const 48 + i32.add + set_local $10 + block $block_13 + block $block_14 + i32.const 5476 + i32.load + i32.const 4 + i32.and + if $if_86 + i32.const 0 + set_local $1 + else + block $block_15 + block $block_16 + block $block_17 + i32.const 5056 + i32.load + tee_local $0 + i32.eqz + br_if $block_17 + i32.const 5480 + set_local $2 + loop $loop_5 + block $block_18 + get_local $2 + i32.load + tee_local $13 + get_local $0 + i32.le_u + if $if_87 + get_local $13 + get_local $2 + i32.load offset=4 + i32.add + get_local $0 + i32.gt_u + br_if $block_18 + end ;; $if_87 + get_local $2 + i32.load offset=8 + tee_local $2 + br_if $loop_5 + br $block_17 + end ;; $block_18 + end ;; $loop_5 + get_local $7 + get_local $5 + get_local $1 + i32.sub + i32.and + tee_local $1 + i32.const 2147483647 + i32.lt_u + if $if_88 + get_local $2 + i32.const 4 + i32.add + set_local $5 + get_local $1 + call $_sbrk + tee_local $0 + get_local $2 + i32.load + get_local $5 + i32.load + i32.add + i32.ne + br_if $block_16 + get_local $0 + i32.const -1 + i32.ne + br_if $block_14 + else + i32.const 0 + set_local $1 + end ;; $if_88 + br $block_15 + end ;; $block_17 + i32.const 0 + call $_sbrk + tee_local $0 + i32.const -1 + i32.eq + if $if_89 (result i32) + i32.const 0 + else + i32.const 5464 + i32.load + tee_local $5 + get_local $4 + get_local $0 + i32.const 5508 + i32.load + tee_local $1 + i32.const -1 + i32.add + tee_local $2 + i32.add + i32.const 0 + get_local $1 + i32.sub + i32.and + get_local $0 + i32.sub + i32.const 0 + get_local $0 + get_local $2 + i32.and + select + i32.add + tee_local $1 + i32.add + set_local $2 + get_local $1 + i32.const 2147483647 + i32.lt_u + get_local $1 + get_local $3 + i32.gt_u + i32.and + if $if_90 (result i32) + i32.const 5472 + i32.load + tee_local $7 + if $if_91 + get_local $2 + get_local $5 + i32.le_u + get_local $2 + get_local $7 + i32.gt_u + i32.or + if $if_92 + i32.const 0 + set_local $1 + br $block_15 + end ;; $if_92 + end ;; $if_91 + get_local $0 + get_local $1 + call $_sbrk + tee_local $2 + i32.eq + br_if $block_14 + get_local $2 + set_local $0 + br $block_16 + else + i32.const 0 + end ;; $if_90 + end ;; $if_89 + set_local $1 + br $block_15 + end ;; $block_16 + get_local $0 + i32.const -1 + i32.ne + get_local $1 + i32.const 2147483647 + i32.lt_u + i32.and + get_local $10 + get_local $1 + i32.gt_u + i32.and + i32.eqz + if $if_93 + get_local $0 + i32.const -1 + i32.eq + if $if_94 + i32.const 0 + set_local $1 + br $block_15 + else + br $block_14 + end ;; $if_94 + unreachable + end ;; $if_93 + i32.const 5512 + i32.load + tee_local $2 + get_local $6 + get_local $1 + i32.sub + i32.add + i32.const 0 + get_local $2 + i32.sub + i32.and + tee_local $2 + i32.const 2147483647 + i32.ge_u + br_if $block_14 + i32.const 0 + get_local $1 + i32.sub + set_local $6 + get_local $2 + call $_sbrk + i32.const -1 + i32.eq + if $if_95 (result i32) + get_local $6 + call $_sbrk + drop + i32.const 0 + else + get_local $1 + get_local $2 + i32.add + set_local $1 + br $block_14 + end ;; $if_95 + set_local $1 + end ;; $block_15 + i32.const 5476 + i32.const 5476 + i32.load + i32.const 4 + i32.or + i32.store + end ;; $if_86 + get_local $4 + i32.const 2147483647 + i32.lt_u + if $if_96 + get_local $4 + call $_sbrk + set_local $0 + i32.const 0 + call $_sbrk + tee_local $2 + get_local $0 + i32.sub + tee_local $6 + get_local $3 + i32.const 40 + i32.add + i32.gt_u + set_local $4 + get_local $6 + get_local $1 + get_local $4 + select + set_local $1 + get_local $4 + i32.const 1 + i32.xor + get_local $0 + i32.const -1 + i32.eq + i32.or + get_local $0 + i32.const -1 + i32.ne + get_local $2 + i32.const -1 + i32.ne + i32.and + get_local $0 + get_local $2 + i32.lt_u + i32.and + i32.const 1 + i32.xor + i32.or + i32.eqz + br_if $block_14 + end ;; $if_96 + br $block_13 + end ;; $block_14 + i32.const 5464 + get_local $1 + i32.const 5464 + i32.load + i32.add + tee_local $2 + i32.store + get_local $2 + i32.const 5468 + i32.load + i32.gt_u + if $if_97 + i32.const 5468 + get_local $2 + i32.store + end ;; $if_97 + i32.const 5056 + i32.load + tee_local $6 + if $if_98 + block $block_19 + i32.const 5480 + set_local $2 + block $block_20 + block $block_21 + loop $loop_6 + get_local $0 + get_local $2 + i32.load + tee_local $4 + get_local $2 + i32.load offset=4 + tee_local $5 + i32.add + i32.eq + br_if $block_21 + get_local $2 + i32.load offset=8 + tee_local $2 + br_if $loop_6 + end ;; $loop_6 + br $block_20 + end ;; $block_21 + get_local $2 + i32.const 4 + i32.add + set_local $7 + get_local $2 + i32.load offset=12 + i32.const 8 + i32.and + i32.eqz + if $if_99 + get_local $4 + get_local $6 + i32.le_u + get_local $0 + get_local $6 + i32.gt_u + i32.and + if $if_100 + get_local $7 + get_local $1 + get_local $5 + i32.add + i32.store + get_local $6 + i32.const 0 + get_local $6 + i32.const 8 + i32.add + tee_local $0 + i32.sub + i32.const 7 + i32.and + i32.const 0 + get_local $0 + i32.const 7 + i32.and + select + tee_local $2 + i32.add + set_local $0 + get_local $1 + i32.const 5044 + i32.load + i32.add + tee_local $4 + get_local $2 + i32.sub + set_local $1 + i32.const 5056 + get_local $0 + i32.store + i32.const 5044 + get_local $1 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.or + i32.store offset=4 + get_local $4 + get_local $6 + i32.add + i32.const 40 + i32.store offset=4 + i32.const 5060 + i32.const 5520 + i32.load + i32.store + br $block_19 + end ;; $if_100 + end ;; $if_99 + end ;; $block_20 + get_local $0 + i32.const 5048 + i32.load + tee_local $2 + i32.lt_u + if $if_101 + i32.const 5048 + get_local $0 + i32.store + get_local $0 + set_local $2 + end ;; $if_101 + get_local $0 + get_local $1 + i32.add + set_local $5 + i32.const 5480 + set_local $4 + block $block_22 + block $block_23 + loop $loop_7 + get_local $5 + get_local $4 + i32.load + i32.eq + br_if $block_23 + get_local $4 + i32.load offset=8 + tee_local $4 + br_if $loop_7 + end ;; $loop_7 + br $block_22 + end ;; $block_23 + get_local $4 + i32.load offset=12 + i32.const 8 + i32.and + i32.eqz + if $if_102 + get_local $4 + get_local $0 + i32.store + get_local $4 + i32.const 4 + i32.add + tee_local $4 + get_local $1 + get_local $4 + i32.load + i32.add + i32.store + get_local $3 + get_local $0 + i32.const 0 + get_local $0 + i32.const 8 + i32.add + tee_local $0 + i32.sub + i32.const 7 + i32.and + i32.const 0 + get_local $0 + i32.const 7 + i32.and + select + i32.add + tee_local $8 + i32.add + set_local $7 + get_local $5 + i32.const 0 + get_local $5 + i32.const 8 + i32.add + tee_local $0 + i32.sub + i32.const 7 + i32.and + i32.const 0 + get_local $0 + i32.const 7 + i32.and + select + i32.add + tee_local $1 + get_local $8 + i32.sub + get_local $3 + i32.sub + set_local $4 + get_local $8 + get_local $3 + i32.const 3 + i32.or + i32.store offset=4 + get_local $1 + get_local $6 + i32.eq + if $if_103 + i32.const 5044 + get_local $4 + i32.const 5044 + i32.load + i32.add + tee_local $0 + i32.store + i32.const 5056 + get_local $7 + i32.store + get_local $7 + get_local $0 + i32.const 1 + i32.or + i32.store offset=4 + else + block $block_24 + get_local $1 + i32.const 5052 + i32.load + i32.eq + if $if_104 + i32.const 5040 + get_local $4 + i32.const 5040 + i32.load + i32.add + tee_local $0 + i32.store + i32.const 5052 + get_local $7 + i32.store + get_local $7 + get_local $0 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $7 + i32.add + get_local $0 + i32.store + br $block_24 + end ;; $if_104 + get_local $1 + i32.load offset=4 + tee_local $0 + i32.const 3 + i32.and + i32.const 1 + i32.eq + if $if_105 (result i32) + get_local $0 + i32.const -8 + i32.and + set_local $13 + get_local $0 + i32.const 3 + i32.shr_u + set_local $5 + block $block_25 + get_local $0 + i32.const 256 + i32.lt_u + if $if_106 + get_local $1 + i32.load offset=12 + set_local $3 + get_local $1 + i32.load offset=8 + tee_local $6 + get_local $5 + i32.const 3 + i32.shl + i32.const 5072 + i32.add + tee_local $0 + i32.ne + if $if_107 + block $block_26 + get_local $2 + get_local $6 + i32.gt_u + if $if_108 + call $_abort + end ;; $if_108 + get_local $1 + get_local $6 + i32.load offset=12 + i32.eq + br_if $block_26 + call $_abort + end ;; $block_26 + end ;; $if_107 + get_local $3 + get_local $6 + i32.eq + if $if_109 + i32.const 5032 + i32.const 5032 + i32.load + i32.const 1 + get_local $5 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + br $block_25 + end ;; $if_109 + get_local $0 + get_local $3 + i32.eq + if $if_110 + get_local $3 + i32.const 8 + i32.add + set_local $20 + else + block $block_27 + get_local $2 + get_local $3 + i32.gt_u + if $if_111 + call $_abort + end ;; $if_111 + get_local $1 + get_local $3 + i32.const 8 + i32.add + tee_local $0 + i32.load + i32.eq + if $if_112 + get_local $0 + set_local $20 + br $block_27 + end ;; $if_112 + call $_abort + end ;; $block_27 + end ;; $if_110 + get_local $6 + get_local $3 + i32.store offset=12 + get_local $20 + get_local $6 + i32.store + else + get_local $1 + i32.load offset=24 + set_local $10 + get_local $1 + get_local $1 + i32.load offset=12 + tee_local $0 + i32.eq + if $if_113 + block $block_28 + get_local $1 + i32.const 16 + i32.add + tee_local $3 + i32.const 4 + i32.add + tee_local $6 + i32.load + tee_local $0 + if $if_114 + get_local $6 + set_local $3 + else + get_local $3 + i32.load + tee_local $0 + i32.eqz + br_if $block_28 + end ;; $if_114 + loop $loop_8 + block $block_29 + get_local $0 + i32.const 20 + i32.add + tee_local $6 + i32.load + tee_local $5 + i32.eqz + if $if_115 + get_local $0 + i32.const 16 + i32.add + tee_local $6 + i32.load + tee_local $5 + i32.eqz + br_if $block_29 + end ;; $if_115 + get_local $6 + set_local $3 + get_local $5 + set_local $0 + br $loop_8 + end ;; $block_29 + end ;; $loop_8 + get_local $2 + get_local $3 + i32.gt_u + if $if_116 + call $_abort + else + get_local $3 + i32.const 0 + i32.store + get_local $0 + set_local $9 + end ;; $if_116 + end ;; $block_28 + else + get_local $2 + get_local $1 + i32.load offset=8 + tee_local $3 + i32.gt_u + if $if_117 + call $_abort + end ;; $if_117 + get_local $3 + i32.const 12 + i32.add + tee_local $2 + i32.load + get_local $1 + i32.ne + if $if_118 + call $_abort + end ;; $if_118 + get_local $1 + get_local $0 + i32.const 8 + i32.add + tee_local $6 + i32.load + i32.eq + if $if_119 + get_local $2 + get_local $0 + i32.store + get_local $6 + get_local $3 + i32.store + get_local $0 + set_local $9 + else + call $_abort + end ;; $if_119 + end ;; $if_113 + get_local $10 + i32.eqz + br_if $block_25 + get_local $1 + get_local $1 + i32.load offset=28 + tee_local $0 + i32.const 2 + i32.shl + i32.const 5336 + i32.add + tee_local $3 + i32.load + i32.eq + if $if_120 + block $block_30 + get_local $3 + get_local $9 + i32.store + get_local $9 + br_if $block_30 + i32.const 5036 + i32.const 5036 + i32.load + i32.const 1 + get_local $0 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + br $block_25 + end ;; $block_30 + else + i32.const 5048 + i32.load + get_local $10 + i32.gt_u + if $if_121 + call $_abort + else + get_local $10 + i32.const 16 + i32.add + tee_local $0 + get_local $10 + i32.const 20 + i32.add + get_local $1 + get_local $0 + i32.load + i32.eq + select + get_local $9 + i32.store + get_local $9 + i32.eqz + br_if $block_25 + end ;; $if_121 + end ;; $if_120 + i32.const 5048 + i32.load + tee_local $3 + get_local $9 + i32.gt_u + if $if_122 + call $_abort + end ;; $if_122 + get_local $9 + get_local $10 + i32.store offset=24 + get_local $1 + i32.const 16 + i32.add + tee_local $2 + i32.load + tee_local $0 + if $if_123 + get_local $3 + get_local $0 + i32.gt_u + if $if_124 + call $_abort + else + get_local $9 + get_local $0 + i32.store offset=16 + get_local $0 + get_local $9 + i32.store offset=24 + end ;; $if_124 + end ;; $if_123 + get_local $2 + i32.load offset=4 + tee_local $0 + i32.eqz + br_if $block_25 + i32.const 5048 + i32.load + get_local $0 + i32.gt_u + if $if_125 + call $_abort + else + get_local $9 + get_local $0 + i32.store offset=20 + get_local $0 + get_local $9 + i32.store offset=24 + end ;; $if_125 + end ;; $if_106 + end ;; $block_25 + get_local $1 + get_local $13 + i32.add + set_local $1 + get_local $4 + get_local $13 + i32.add + else + get_local $4 + end ;; $if_105 + set_local $2 + get_local $1 + i32.const 4 + i32.add + tee_local $0 + get_local $0 + i32.load + i32.const -2 + i32.and + i32.store + get_local $7 + get_local $2 + i32.const 1 + i32.or + i32.store offset=4 + get_local $2 + get_local $7 + i32.add + get_local $2 + i32.store + get_local $2 + i32.const 3 + i32.shr_u + set_local $3 + get_local $2 + i32.const 256 + i32.lt_u + if $if_126 + get_local $3 + i32.const 3 + i32.shl + i32.const 5072 + i32.add + set_local $0 + i32.const 5032 + i32.load + tee_local $1 + i32.const 1 + get_local $3 + i32.shl + tee_local $3 + i32.and + if $if_127 + block $block_31 + i32.const 5048 + i32.load + get_local $0 + i32.const 8 + i32.add + tee_local $3 + i32.load + tee_local $1 + i32.le_u + if $if_128 + get_local $1 + set_local $15 + get_local $3 + set_local $21 + br $block_31 + end ;; $if_128 + call $_abort + end ;; $block_31 + else + i32.const 5032 + get_local $1 + get_local $3 + i32.or + i32.store + get_local $0 + set_local $15 + get_local $0 + i32.const 8 + i32.add + set_local $21 + end ;; $if_127 + get_local $21 + get_local $7 + i32.store + get_local $15 + get_local $7 + i32.store offset=12 + get_local $7 + get_local $15 + i32.store offset=8 + get_local $7 + get_local $0 + i32.store offset=12 + br $block_24 + end ;; $if_126 + get_local $2 + i32.const 8 + i32.shr_u + tee_local $0 + if $if_129 (result i32) + get_local $2 + i32.const 16777215 + i32.gt_u + if $if_130 (result i32) + i32.const 31 + else + get_local $0 + get_local $0 + i32.const 1048320 + i32.add + i32.const 16 + i32.shr_u + i32.const 8 + i32.and + tee_local $3 + i32.shl + tee_local $1 + i32.const 520192 + i32.add + i32.const 16 + i32.shr_u + i32.const 4 + i32.and + set_local $0 + i32.const 14 + get_local $0 + get_local $3 + i32.or + get_local $1 + get_local $0 + i32.shl + tee_local $0 + i32.const 245760 + i32.add + i32.const 16 + i32.shr_u + i32.const 2 + i32.and + tee_local $3 + i32.or + i32.sub + get_local $0 + get_local $3 + i32.shl + i32.const 15 + i32.shr_u + i32.add + tee_local $0 + i32.const 1 + i32.shl + get_local $2 + get_local $0 + i32.const 7 + i32.add + i32.shr_u + i32.const 1 + i32.and + i32.or + end ;; $if_130 + else + i32.const 0 + end ;; $if_129 + tee_local $3 + i32.const 2 + i32.shl + i32.const 5336 + i32.add + set_local $0 + get_local $7 + get_local $3 + i32.store offset=28 + get_local $7 + i32.const 16 + i32.add + tee_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store + i32.const 5036 + i32.load + tee_local $1 + i32.const 1 + get_local $3 + i32.shl + tee_local $4 + i32.and + i32.eqz + if $if_131 + i32.const 5036 + get_local $1 + get_local $4 + i32.or + i32.store + get_local $0 + get_local $7 + i32.store + get_local $7 + get_local $0 + i32.store offset=24 + get_local $7 + get_local $7 + i32.store offset=12 + get_local $7 + get_local $7 + i32.store offset=8 + br $block_24 + end ;; $if_131 + get_local $2 + get_local $0 + i32.load + tee_local $0 + i32.load offset=4 + i32.const -8 + i32.and + i32.eq + if $if_132 + get_local $0 + set_local $11 + else + block $block_32 + get_local $2 + i32.const 0 + i32.const 25 + get_local $3 + i32.const 1 + i32.shr_u + i32.sub + get_local $3 + i32.const 31 + i32.eq + select + i32.shl + set_local $1 + loop $loop_9 + get_local $0 + i32.const 16 + i32.add + get_local $1 + i32.const 31 + i32.shr_u + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load + tee_local $3 + if $if_133 + get_local $1 + i32.const 1 + i32.shl + set_local $1 + get_local $2 + get_local $3 + i32.load offset=4 + i32.const -8 + i32.and + i32.eq + if $if_134 + get_local $3 + set_local $11 + br $block_32 + else + get_local $3 + set_local $0 + br $loop_9 + end ;; $if_134 + unreachable + end ;; $if_133 + end ;; $loop_9 + i32.const 5048 + i32.load + get_local $4 + i32.gt_u + if $if_135 + call $_abort + else + get_local $4 + get_local $7 + i32.store + get_local $7 + get_local $0 + i32.store offset=24 + get_local $7 + get_local $7 + i32.store offset=12 + get_local $7 + get_local $7 + i32.store offset=8 + br $block_24 + end ;; $if_135 + end ;; $block_32 + end ;; $if_132 + i32.const 5048 + i32.load + tee_local $0 + get_local $11 + i32.le_u + get_local $0 + get_local $11 + i32.const 8 + i32.add + tee_local $3 + i32.load + tee_local $0 + i32.le_u + i32.and + if $if_136 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $3 + get_local $7 + i32.store + get_local $7 + get_local $0 + i32.store offset=8 + get_local $7 + get_local $11 + i32.store offset=12 + get_local $7 + i32.const 0 + i32.store offset=24 + else + call $_abort + end ;; $if_136 + end ;; $block_24 + end ;; $if_103 + get_local $14 + set_global $27 + get_local $8 + i32.const 8 + i32.add + return + end ;; $if_102 + end ;; $block_22 + i32.const 5480 + set_local $2 + loop $loop_10 + block $block_33 + get_local $2 + i32.load + tee_local $4 + get_local $6 + i32.le_u + if $if_137 + get_local $4 + get_local $2 + i32.load offset=4 + i32.add + tee_local $5 + get_local $6 + i32.gt_u + br_if $block_33 + end ;; $if_137 + get_local $2 + i32.load offset=8 + set_local $2 + br $loop_10 + end ;; $block_33 + end ;; $loop_10 + get_local $5 + i32.const -47 + i32.add + tee_local $4 + i32.const 8 + i32.add + set_local $2 + get_local $6 + get_local $4 + i32.const 0 + get_local $2 + i32.sub + i32.const 7 + i32.and + i32.const 0 + get_local $2 + i32.const 7 + i32.and + select + i32.add + tee_local $2 + get_local $2 + get_local $6 + i32.const 16 + i32.add + tee_local $9 + i32.lt_u + select + tee_local $2 + i32.const 8 + i32.add + set_local $4 + i32.const 5056 + get_local $0 + i32.const 0 + get_local $0 + i32.const 8 + i32.add + tee_local $7 + i32.sub + i32.const 7 + i32.and + i32.const 0 + get_local $7 + i32.const 7 + i32.and + select + tee_local $7 + i32.add + tee_local $10 + i32.store + i32.const 5044 + get_local $1 + i32.const -40 + i32.add + tee_local $11 + get_local $7 + i32.sub + tee_local $7 + i32.store + get_local $10 + get_local $7 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $11 + i32.add + i32.const 40 + i32.store offset=4 + i32.const 5060 + i32.const 5520 + i32.load + i32.store + get_local $2 + i32.const 4 + i32.add + tee_local $7 + i32.const 27 + i32.store + get_local $4 + i32.const 5480 + i64.load align=4 + i64.store align=4 + get_local $4 + i32.const 5488 + i64.load align=4 + i64.store offset=8 align=4 + i32.const 5480 + get_local $0 + i32.store + i32.const 5484 + get_local $1 + i32.store + i32.const 5492 + i32.const 0 + i32.store + i32.const 5488 + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.add + set_local $0 + loop $loop_11 + get_local $0 + i32.const 4 + i32.add + tee_local $1 + i32.const 7 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.lt_u + if $if_138 + get_local $1 + set_local $0 + br $loop_11 + end ;; $if_138 + end ;; $loop_11 + get_local $2 + get_local $6 + i32.ne + if $if_139 + get_local $7 + get_local $7 + i32.load + i32.const -2 + i32.and + i32.store + get_local $6 + get_local $2 + get_local $6 + i32.sub + tee_local $4 + i32.const 1 + i32.or + i32.store offset=4 + get_local $2 + get_local $4 + i32.store + get_local $4 + i32.const 3 + i32.shr_u + set_local $1 + get_local $4 + i32.const 256 + i32.lt_u + if $if_140 + get_local $1 + i32.const 3 + i32.shl + i32.const 5072 + i32.add + set_local $0 + i32.const 5032 + i32.load + tee_local $2 + i32.const 1 + get_local $1 + i32.shl + tee_local $1 + i32.and + if $if_141 + i32.const 5048 + i32.load + get_local $0 + i32.const 8 + i32.add + tee_local $1 + i32.load + tee_local $2 + i32.gt_u + if $if_142 + call $_abort + else + get_local $2 + set_local $17 + get_local $1 + set_local $22 + end ;; $if_142 + else + i32.const 5032 + get_local $1 + get_local $2 + i32.or + i32.store + get_local $0 + set_local $17 + get_local $0 + i32.const 8 + i32.add + set_local $22 + end ;; $if_141 + get_local $22 + get_local $6 + i32.store + get_local $17 + get_local $6 + i32.store offset=12 + get_local $6 + get_local $17 + i32.store offset=8 + get_local $6 + get_local $0 + i32.store offset=12 + br $block_19 + end ;; $if_140 + get_local $4 + i32.const 8 + i32.shr_u + tee_local $0 + if $if_143 (result i32) + get_local $4 + i32.const 16777215 + i32.gt_u + if $if_144 (result i32) + i32.const 31 + else + get_local $0 + get_local $0 + i32.const 1048320 + i32.add + i32.const 16 + i32.shr_u + i32.const 8 + i32.and + tee_local $1 + i32.shl + tee_local $2 + i32.const 520192 + i32.add + i32.const 16 + i32.shr_u + i32.const 4 + i32.and + set_local $0 + i32.const 14 + get_local $2 + get_local $0 + i32.shl + tee_local $2 + i32.const 245760 + i32.add + i32.const 16 + i32.shr_u + i32.const 2 + i32.and + tee_local $5 + get_local $0 + get_local $1 + i32.or + i32.or + i32.sub + get_local $2 + get_local $5 + i32.shl + i32.const 15 + i32.shr_u + i32.add + tee_local $0 + i32.const 1 + i32.shl + get_local $4 + get_local $0 + i32.const 7 + i32.add + i32.shr_u + i32.const 1 + i32.and + i32.or + end ;; $if_144 + else + i32.const 0 + end ;; $if_143 + tee_local $1 + i32.const 2 + i32.shl + i32.const 5336 + i32.add + set_local $0 + get_local $6 + get_local $1 + i32.store offset=28 + get_local $6 + i32.const 0 + i32.store offset=20 + get_local $9 + i32.const 0 + i32.store + i32.const 5036 + i32.load + tee_local $2 + i32.const 1 + get_local $1 + i32.shl + tee_local $5 + i32.and + i32.eqz + if $if_145 + i32.const 5036 + get_local $2 + get_local $5 + i32.or + i32.store + get_local $0 + get_local $6 + i32.store + get_local $6 + get_local $0 + i32.store offset=24 + get_local $6 + get_local $6 + i32.store offset=12 + get_local $6 + get_local $6 + i32.store offset=8 + br $block_19 + end ;; $if_145 + get_local $0 + i32.load + tee_local $0 + i32.load offset=4 + i32.const -8 + i32.and + get_local $4 + i32.eq + if $if_146 + get_local $0 + set_local $8 + else + block $block_34 + get_local $4 + i32.const 0 + i32.const 25 + get_local $1 + i32.const 1 + i32.shr_u + i32.sub + get_local $1 + i32.const 31 + i32.eq + select + i32.shl + set_local $2 + loop $loop_12 + get_local $0 + i32.const 16 + i32.add + get_local $2 + i32.const 31 + i32.shr_u + i32.const 2 + i32.shl + i32.add + tee_local $5 + i32.load + tee_local $1 + if $if_147 + get_local $2 + i32.const 1 + i32.shl + set_local $2 + get_local $1 + i32.load offset=4 + i32.const -8 + i32.and + get_local $4 + i32.eq + if $if_148 + get_local $1 + set_local $8 + br $block_34 + else + get_local $1 + set_local $0 + br $loop_12 + end ;; $if_148 + unreachable + end ;; $if_147 + end ;; $loop_12 + i32.const 5048 + i32.load + get_local $5 + i32.gt_u + if $if_149 + call $_abort + else + get_local $5 + get_local $6 + i32.store + get_local $6 + get_local $0 + i32.store offset=24 + get_local $6 + get_local $6 + i32.store offset=12 + get_local $6 + get_local $6 + i32.store offset=8 + br $block_19 + end ;; $if_149 + end ;; $block_34 + end ;; $if_146 + i32.const 5048 + i32.load + tee_local $0 + get_local $8 + i32.le_u + get_local $0 + get_local $8 + i32.const 8 + i32.add + tee_local $1 + i32.load + tee_local $0 + i32.le_u + i32.and + if $if_150 + get_local $0 + get_local $6 + i32.store offset=12 + get_local $1 + get_local $6 + i32.store + get_local $6 + get_local $0 + i32.store offset=8 + get_local $6 + get_local $8 + i32.store offset=12 + get_local $6 + i32.const 0 + i32.store offset=24 + else + call $_abort + end ;; $if_150 + end ;; $if_139 + end ;; $block_19 + else + i32.const 5048 + i32.load + tee_local $2 + i32.eqz + get_local $0 + get_local $2 + i32.lt_u + i32.or + if $if_151 + i32.const 5048 + get_local $0 + i32.store + end ;; $if_151 + i32.const 5480 + get_local $0 + i32.store + i32.const 5484 + get_local $1 + i32.store + i32.const 5492 + i32.const 0 + i32.store + i32.const 5068 + i32.const 5504 + i32.load + i32.store + i32.const 5064 + i32.const -1 + i32.store + i32.const 5084 + i32.const 5072 + i32.store + i32.const 5080 + i32.const 5072 + i32.store + i32.const 5092 + i32.const 5080 + i32.store + i32.const 5088 + i32.const 5080 + i32.store + i32.const 5100 + i32.const 5088 + i32.store + i32.const 5096 + i32.const 5088 + i32.store + i32.const 5108 + i32.const 5096 + i32.store + i32.const 5104 + i32.const 5096 + i32.store + i32.const 5116 + i32.const 5104 + i32.store + i32.const 5112 + i32.const 5104 + i32.store + i32.const 5124 + i32.const 5112 + i32.store + i32.const 5120 + i32.const 5112 + i32.store + i32.const 5132 + i32.const 5120 + i32.store + i32.const 5128 + i32.const 5120 + i32.store + i32.const 5140 + i32.const 5128 + i32.store + i32.const 5136 + i32.const 5128 + i32.store + i32.const 5148 + i32.const 5136 + i32.store + i32.const 5144 + i32.const 5136 + i32.store + i32.const 5156 + i32.const 5144 + i32.store + i32.const 5152 + i32.const 5144 + i32.store + i32.const 5164 + i32.const 5152 + i32.store + i32.const 5160 + i32.const 5152 + i32.store + i32.const 5172 + i32.const 5160 + i32.store + i32.const 5168 + i32.const 5160 + i32.store + i32.const 5180 + i32.const 5168 + i32.store + i32.const 5176 + i32.const 5168 + i32.store + i32.const 5188 + i32.const 5176 + i32.store + i32.const 5184 + i32.const 5176 + i32.store + i32.const 5196 + i32.const 5184 + i32.store + i32.const 5192 + i32.const 5184 + i32.store + i32.const 5204 + i32.const 5192 + i32.store + i32.const 5200 + i32.const 5192 + i32.store + i32.const 5212 + i32.const 5200 + i32.store + i32.const 5208 + i32.const 5200 + i32.store + i32.const 5220 + i32.const 5208 + i32.store + i32.const 5216 + i32.const 5208 + i32.store + i32.const 5228 + i32.const 5216 + i32.store + i32.const 5224 + i32.const 5216 + i32.store + i32.const 5236 + i32.const 5224 + i32.store + i32.const 5232 + i32.const 5224 + i32.store + i32.const 5244 + i32.const 5232 + i32.store + i32.const 5240 + i32.const 5232 + i32.store + i32.const 5252 + i32.const 5240 + i32.store + i32.const 5248 + i32.const 5240 + i32.store + i32.const 5260 + i32.const 5248 + i32.store + i32.const 5256 + i32.const 5248 + i32.store + i32.const 5268 + i32.const 5256 + i32.store + i32.const 5264 + i32.const 5256 + i32.store + i32.const 5276 + i32.const 5264 + i32.store + i32.const 5272 + i32.const 5264 + i32.store + i32.const 5284 + i32.const 5272 + i32.store + i32.const 5280 + i32.const 5272 + i32.store + i32.const 5292 + i32.const 5280 + i32.store + i32.const 5288 + i32.const 5280 + i32.store + i32.const 5300 + i32.const 5288 + i32.store + i32.const 5296 + i32.const 5288 + i32.store + i32.const 5308 + i32.const 5296 + i32.store + i32.const 5304 + i32.const 5296 + i32.store + i32.const 5316 + i32.const 5304 + i32.store + i32.const 5312 + i32.const 5304 + i32.store + i32.const 5324 + i32.const 5312 + i32.store + i32.const 5320 + i32.const 5312 + i32.store + i32.const 5332 + i32.const 5320 + i32.store + i32.const 5328 + i32.const 5320 + i32.store + i32.const 5056 + get_local $0 + i32.const 0 + get_local $0 + i32.const 8 + i32.add + tee_local $2 + i32.sub + i32.const 7 + i32.and + i32.const 0 + get_local $2 + i32.const 7 + i32.and + select + tee_local $2 + i32.add + tee_local $4 + i32.store + i32.const 5044 + get_local $1 + i32.const -40 + i32.add + tee_local $1 + get_local $2 + i32.sub + tee_local $2 + i32.store + get_local $4 + get_local $2 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $1 + i32.add + i32.const 40 + i32.store offset=4 + i32.const 5060 + i32.const 5520 + i32.load + i32.store + end ;; $if_98 + i32.const 5044 + i32.load + tee_local $0 + get_local $3 + i32.gt_u + if $if_152 + i32.const 5044 + get_local $0 + get_local $3 + i32.sub + tee_local $1 + i32.store + br $block_12 + end ;; $if_152 + end ;; $block_13 + call $___errno_location + i32.const 12 + i32.store + get_local $14 + set_global $27 + i32.const 0 + return + end ;; $block_12 + i32.const 5056 + get_local $3 + i32.const 5056 + i32.load + tee_local $0 + i32.add + tee_local $2 + i32.store + get_local $2 + get_local $1 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $3 + i32.const 3 + i32.or + i32.store offset=4 + end ;; $block_11 + get_local $14 + set_global $27 + get_local $0 + i32.const 8 + i32.add + ) + + (func $_free (type $1) + (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + get_local $0 + i32.eqz + if $if + return + end ;; $if + get_local $0 + i32.const -8 + i32.add + tee_local $4 + i32.const 5048 + i32.load + tee_local $12 + i32.lt_u + if $if_0 + call $_abort + end ;; $if_0 + get_local $0 + i32.const -4 + i32.add + i32.load + tee_local $0 + i32.const 3 + i32.and + tee_local $11 + i32.const 1 + i32.eq + if $if_1 + call $_abort + end ;; $if_1 + get_local $4 + get_local $0 + i32.const -8 + i32.and + tee_local $2 + i32.add + set_local $7 + get_local $0 + i32.const 1 + i32.and + if $if_2 + get_local $2 + set_local $1 + get_local $4 + tee_local $3 + set_local $5 + else + block $block + get_local $4 + i32.load + set_local $9 + get_local $11 + i32.eqz + if $if_3 + return + end ;; $if_3 + get_local $4 + get_local $9 + i32.sub + tee_local $0 + get_local $12 + i32.lt_u + if $if_4 + call $_abort + end ;; $if_4 + get_local $2 + get_local $9 + i32.add + set_local $4 + get_local $0 + i32.const 5052 + i32.load + i32.eq + if $if_5 + get_local $7 + i32.const 4 + i32.add + tee_local $3 + i32.load + tee_local $1 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if $if_6 + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + br $block + end ;; $if_6 + i32.const 5040 + get_local $4 + i32.store + get_local $3 + get_local $1 + i32.const -2 + i32.and + i32.store + get_local $0 + get_local $4 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $4 + i32.add + get_local $4 + i32.store + return + end ;; $if_5 + get_local $9 + i32.const 3 + i32.shr_u + set_local $2 + get_local $9 + i32.const 256 + i32.lt_u + if $if_7 + get_local $0 + i32.load offset=12 + set_local $1 + get_local $0 + i32.load offset=8 + tee_local $5 + get_local $2 + i32.const 3 + i32.shl + i32.const 5072 + i32.add + tee_local $3 + i32.ne + if $if_8 + get_local $12 + get_local $5 + i32.gt_u + if $if_9 + call $_abort + end ;; $if_9 + get_local $5 + i32.load offset=12 + get_local $0 + i32.ne + if $if_10 + call $_abort + end ;; $if_10 + end ;; $if_8 + get_local $1 + get_local $5 + i32.eq + if $if_11 + i32.const 5032 + i32.const 5032 + i32.load + i32.const 1 + get_local $2 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + br $block + end ;; $if_11 + get_local $1 + get_local $3 + i32.eq + if $if_12 + get_local $1 + i32.const 8 + i32.add + set_local $6 + else + get_local $12 + get_local $1 + i32.gt_u + if $if_13 + call $_abort + end ;; $if_13 + get_local $0 + get_local $1 + i32.const 8 + i32.add + tee_local $3 + i32.load + i32.eq + if $if_14 + get_local $3 + set_local $6 + else + call $_abort + end ;; $if_14 + end ;; $if_12 + get_local $5 + get_local $1 + i32.store offset=12 + get_local $6 + get_local $5 + i32.store + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + br $block + end ;; $if_7 + get_local $0 + i32.load offset=24 + set_local $13 + get_local $0 + get_local $0 + i32.load offset=12 + tee_local $2 + i32.eq + if $if_15 + block $block_0 + get_local $0 + i32.const 16 + i32.add + tee_local $6 + i32.const 4 + i32.add + tee_local $9 + i32.load + tee_local $2 + if $if_16 + get_local $9 + set_local $6 + else + get_local $6 + i32.load + tee_local $2 + i32.eqz + br_if $block_0 + end ;; $if_16 + loop $loop + block $block_1 + get_local $2 + i32.const 20 + i32.add + tee_local $9 + i32.load + tee_local $11 + i32.eqz + if $if_17 + get_local $2 + i32.const 16 + i32.add + tee_local $9 + i32.load + tee_local $11 + i32.eqz + br_if $block_1 + end ;; $if_17 + get_local $9 + set_local $6 + get_local $11 + set_local $2 + br $loop + end ;; $block_1 + end ;; $loop + get_local $12 + get_local $6 + i32.gt_u + if $if_18 + call $_abort + else + get_local $6 + i32.const 0 + i32.store + get_local $2 + set_local $8 + end ;; $if_18 + end ;; $block_0 + else + get_local $12 + get_local $0 + i32.load offset=8 + tee_local $6 + i32.gt_u + if $if_19 + call $_abort + end ;; $if_19 + get_local $6 + i32.const 12 + i32.add + tee_local $9 + i32.load + get_local $0 + i32.ne + if $if_20 + call $_abort + end ;; $if_20 + get_local $0 + get_local $2 + i32.const 8 + i32.add + tee_local $11 + i32.load + i32.eq + if $if_21 + get_local $9 + get_local $2 + i32.store + get_local $11 + get_local $6 + i32.store + get_local $2 + set_local $8 + else + call $_abort + end ;; $if_21 + end ;; $if_15 + get_local $13 + if $if_22 + get_local $0 + get_local $0 + i32.load offset=28 + tee_local $2 + i32.const 2 + i32.shl + i32.const 5336 + i32.add + tee_local $6 + i32.load + i32.eq + if $if_23 + get_local $6 + get_local $8 + i32.store + get_local $8 + i32.eqz + if $if_24 + i32.const 5036 + i32.const 5036 + i32.load + i32.const 1 + get_local $2 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + br $block + end ;; $if_24 + else + i32.const 5048 + i32.load + get_local $13 + i32.gt_u + if $if_25 + call $_abort + else + get_local $13 + i32.const 16 + i32.add + tee_local $2 + get_local $13 + i32.const 20 + i32.add + get_local $0 + get_local $2 + i32.load + i32.eq + select + get_local $8 + i32.store + get_local $8 + i32.eqz + if $if_26 + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + br $block + end ;; $if_26 + end ;; $if_25 + end ;; $if_23 + i32.const 5048 + i32.load + tee_local $6 + get_local $8 + i32.gt_u + if $if_27 + call $_abort + end ;; $if_27 + get_local $8 + get_local $13 + i32.store offset=24 + get_local $0 + i32.const 16 + i32.add + tee_local $9 + i32.load + tee_local $2 + if $if_28 + get_local $6 + get_local $2 + i32.gt_u + if $if_29 + call $_abort + else + get_local $8 + get_local $2 + i32.store offset=16 + get_local $2 + get_local $8 + i32.store offset=24 + end ;; $if_29 + end ;; $if_28 + get_local $9 + i32.load offset=4 + tee_local $2 + if $if_30 + i32.const 5048 + i32.load + get_local $2 + i32.gt_u + if $if_31 + call $_abort + else + get_local $8 + get_local $2 + i32.store offset=20 + get_local $2 + get_local $8 + i32.store offset=24 + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + end ;; $if_31 + else + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + end ;; $if_30 + else + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + end ;; $if_22 + end ;; $block + end ;; $if_2 + get_local $5 + get_local $7 + i32.ge_u + if $if_32 + call $_abort + end ;; $if_32 + get_local $7 + i32.const 4 + i32.add + tee_local $4 + i32.load + tee_local $0 + i32.const 1 + i32.and + i32.eqz + if $if_33 + call $_abort + end ;; $if_33 + get_local $0 + i32.const 2 + i32.and + if $if_34 (result i32) + get_local $4 + get_local $0 + i32.const -2 + i32.and + i32.store + get_local $3 + get_local $1 + i32.const 1 + i32.or + i32.store offset=4 + get_local $1 + get_local $5 + i32.add + get_local $1 + i32.store + get_local $1 + else + get_local $7 + i32.const 5056 + i32.load + i32.eq + if $if_35 + i32.const 5044 + get_local $1 + i32.const 5044 + i32.load + i32.add + tee_local $0 + i32.store + i32.const 5056 + get_local $3 + i32.store + get_local $3 + get_local $0 + i32.const 1 + i32.or + i32.store offset=4 + i32.const 5052 + i32.load + get_local $3 + i32.ne + if $if_36 + return + end ;; $if_36 + i32.const 5052 + i32.const 0 + i32.store + i32.const 5040 + i32.const 0 + i32.store + return + end ;; $if_35 + get_local $7 + i32.const 5052 + i32.load + i32.eq + if $if_37 + i32.const 5040 + get_local $1 + i32.const 5040 + i32.load + i32.add + tee_local $0 + i32.store + i32.const 5052 + get_local $5 + i32.store + get_local $3 + get_local $0 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $5 + i32.add + get_local $0 + i32.store + return + end ;; $if_37 + get_local $1 + get_local $0 + i32.const -8 + i32.and + i32.add + set_local $4 + get_local $0 + i32.const 3 + i32.shr_u + set_local $6 + block $block_2 + get_local $0 + i32.const 256 + i32.lt_u + if $if_38 + get_local $7 + i32.load offset=12 + set_local $1 + get_local $7 + i32.load offset=8 + tee_local $2 + get_local $6 + i32.const 3 + i32.shl + i32.const 5072 + i32.add + tee_local $0 + i32.ne + if $if_39 + i32.const 5048 + i32.load + get_local $2 + i32.gt_u + if $if_40 + call $_abort + end ;; $if_40 + get_local $2 + i32.load offset=12 + get_local $7 + i32.ne + if $if_41 + call $_abort + end ;; $if_41 + end ;; $if_39 + get_local $1 + get_local $2 + i32.eq + if $if_42 + i32.const 5032 + i32.const 5032 + i32.load + i32.const 1 + get_local $6 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + br $block_2 + end ;; $if_42 + get_local $0 + get_local $1 + i32.eq + if $if_43 + get_local $1 + i32.const 8 + i32.add + set_local $16 + else + i32.const 5048 + i32.load + get_local $1 + i32.gt_u + if $if_44 + call $_abort + end ;; $if_44 + get_local $7 + get_local $1 + i32.const 8 + i32.add + tee_local $0 + i32.load + i32.eq + if $if_45 + get_local $0 + set_local $16 + else + call $_abort + end ;; $if_45 + end ;; $if_43 + get_local $2 + get_local $1 + i32.store offset=12 + get_local $16 + get_local $2 + i32.store + else + get_local $7 + i32.load offset=24 + set_local $8 + get_local $7 + get_local $7 + i32.load offset=12 + tee_local $0 + i32.eq + if $if_46 + block $block_3 + get_local $7 + i32.const 16 + i32.add + tee_local $1 + i32.const 4 + i32.add + tee_local $2 + i32.load + tee_local $0 + if $if_47 + get_local $2 + set_local $1 + else + get_local $1 + i32.load + tee_local $0 + i32.eqz + br_if $block_3 + end ;; $if_47 + loop $loop_0 + block $block_4 + get_local $0 + i32.const 20 + i32.add + tee_local $2 + i32.load + tee_local $6 + i32.eqz + if $if_48 + get_local $0 + i32.const 16 + i32.add + tee_local $2 + i32.load + tee_local $6 + i32.eqz + br_if $block_4 + end ;; $if_48 + get_local $2 + set_local $1 + get_local $6 + set_local $0 + br $loop_0 + end ;; $block_4 + end ;; $loop_0 + i32.const 5048 + i32.load + get_local $1 + i32.gt_u + if $if_49 + call $_abort + else + get_local $1 + i32.const 0 + i32.store + get_local $0 + set_local $10 + end ;; $if_49 + end ;; $block_3 + else + i32.const 5048 + i32.load + get_local $7 + i32.load offset=8 + tee_local $1 + i32.gt_u + if $if_50 + call $_abort + end ;; $if_50 + get_local $1 + i32.const 12 + i32.add + tee_local $2 + i32.load + get_local $7 + i32.ne + if $if_51 + call $_abort + end ;; $if_51 + get_local $7 + get_local $0 + i32.const 8 + i32.add + tee_local $6 + i32.load + i32.eq + if $if_52 + get_local $2 + get_local $0 + i32.store + get_local $6 + get_local $1 + i32.store + get_local $0 + set_local $10 + else + call $_abort + end ;; $if_52 + end ;; $if_46 + get_local $8 + if $if_53 + get_local $7 + get_local $7 + i32.load offset=28 + tee_local $0 + i32.const 2 + i32.shl + i32.const 5336 + i32.add + tee_local $1 + i32.load + i32.eq + if $if_54 + get_local $1 + get_local $10 + i32.store + get_local $10 + i32.eqz + if $if_55 + i32.const 5036 + i32.const 5036 + i32.load + i32.const 1 + get_local $0 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + br $block_2 + end ;; $if_55 + else + i32.const 5048 + i32.load + get_local $8 + i32.gt_u + if $if_56 + call $_abort + else + get_local $8 + i32.const 16 + i32.add + tee_local $0 + get_local $8 + i32.const 20 + i32.add + get_local $7 + get_local $0 + i32.load + i32.eq + select + get_local $10 + i32.store + get_local $10 + i32.eqz + br_if $block_2 + end ;; $if_56 + end ;; $if_54 + i32.const 5048 + i32.load + tee_local $1 + get_local $10 + i32.gt_u + if $if_57 + call $_abort + end ;; $if_57 + get_local $10 + get_local $8 + i32.store offset=24 + get_local $7 + i32.const 16 + i32.add + tee_local $2 + i32.load + tee_local $0 + if $if_58 + get_local $1 + get_local $0 + i32.gt_u + if $if_59 + call $_abort + else + get_local $10 + get_local $0 + i32.store offset=16 + get_local $0 + get_local $10 + i32.store offset=24 + end ;; $if_59 + end ;; $if_58 + get_local $2 + i32.load offset=4 + tee_local $0 + if $if_60 + i32.const 5048 + i32.load + get_local $0 + i32.gt_u + if $if_61 + call $_abort + else + get_local $10 + get_local $0 + i32.store offset=20 + get_local $0 + get_local $10 + i32.store offset=24 + end ;; $if_61 + end ;; $if_60 + end ;; $if_53 + end ;; $if_38 + end ;; $block_2 + get_local $3 + get_local $4 + i32.const 1 + i32.or + i32.store offset=4 + get_local $4 + get_local $5 + i32.add + get_local $4 + i32.store + get_local $3 + i32.const 5052 + i32.load + i32.eq + if $if_62 (result i32) + i32.const 5040 + get_local $4 + i32.store + return + else + get_local $4 + end ;; $if_62 + end ;; $if_34 + tee_local $5 + i32.const 3 + i32.shr_u + set_local $1 + get_local $5 + i32.const 256 + i32.lt_u + if $if_63 + get_local $1 + i32.const 3 + i32.shl + i32.const 5072 + i32.add + set_local $0 + i32.const 5032 + i32.load + tee_local $5 + i32.const 1 + get_local $1 + i32.shl + tee_local $1 + i32.and + if $if_64 + i32.const 5048 + i32.load + get_local $0 + i32.const 8 + i32.add + tee_local $1 + i32.load + tee_local $5 + i32.gt_u + if $if_65 + call $_abort + else + get_local $5 + set_local $15 + get_local $1 + set_local $17 + end ;; $if_65 + else + i32.const 5032 + get_local $1 + get_local $5 + i32.or + i32.store + get_local $0 + set_local $15 + get_local $0 + i32.const 8 + i32.add + set_local $17 + end ;; $if_64 + get_local $17 + get_local $3 + i32.store + get_local $15 + get_local $3 + i32.store offset=12 + get_local $3 + get_local $15 + i32.store offset=8 + get_local $3 + get_local $0 + i32.store offset=12 + return + end ;; $if_63 + get_local $5 + i32.const 8 + i32.shr_u + tee_local $0 + if $if_66 (result i32) + get_local $5 + i32.const 16777215 + i32.gt_u + if $if_67 (result i32) + i32.const 31 + else + get_local $0 + get_local $0 + i32.const 1048320 + i32.add + i32.const 16 + i32.shr_u + i32.const 8 + i32.and + tee_local $1 + i32.shl + tee_local $4 + i32.const 520192 + i32.add + i32.const 16 + i32.shr_u + i32.const 4 + i32.and + set_local $0 + i32.const 14 + get_local $0 + get_local $1 + i32.or + get_local $4 + get_local $0 + i32.shl + tee_local $0 + i32.const 245760 + i32.add + i32.const 16 + i32.shr_u + i32.const 2 + i32.and + tee_local $1 + i32.or + i32.sub + get_local $0 + get_local $1 + i32.shl + i32.const 15 + i32.shr_u + i32.add + tee_local $0 + i32.const 1 + i32.shl + get_local $5 + get_local $0 + i32.const 7 + i32.add + i32.shr_u + i32.const 1 + i32.and + i32.or + end ;; $if_67 + else + i32.const 0 + end ;; $if_66 + tee_local $1 + i32.const 2 + i32.shl + i32.const 5336 + i32.add + set_local $0 + get_local $3 + get_local $1 + i32.store offset=28 + get_local $3 + i32.const 0 + i32.store offset=20 + get_local $3 + i32.const 0 + i32.store offset=16 + i32.const 5036 + i32.load + tee_local $4 + i32.const 1 + get_local $1 + i32.shl + tee_local $2 + i32.and + if $if_68 + block $block_5 + get_local $5 + get_local $0 + i32.load + tee_local $0 + i32.load offset=4 + i32.const -8 + i32.and + i32.eq + if $if_69 + get_local $0 + set_local $14 + else + block $block_6 + get_local $5 + i32.const 0 + i32.const 25 + get_local $1 + i32.const 1 + i32.shr_u + i32.sub + get_local $1 + i32.const 31 + i32.eq + select + i32.shl + set_local $4 + loop $loop_1 + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.const 31 + i32.shr_u + i32.const 2 + i32.shl + i32.add + tee_local $2 + i32.load + tee_local $1 + if $if_70 + get_local $4 + i32.const 1 + i32.shl + set_local $4 + get_local $5 + get_local $1 + i32.load offset=4 + i32.const -8 + i32.and + i32.eq + if $if_71 + get_local $1 + set_local $14 + br $block_6 + else + get_local $1 + set_local $0 + br $loop_1 + end ;; $if_71 + unreachable + end ;; $if_70 + end ;; $loop_1 + i32.const 5048 + i32.load + get_local $2 + i32.gt_u + if $if_72 + call $_abort + else + get_local $2 + get_local $3 + i32.store + get_local $3 + get_local $0 + i32.store offset=24 + get_local $3 + get_local $3 + i32.store offset=12 + get_local $3 + get_local $3 + i32.store offset=8 + br $block_5 + end ;; $if_72 + end ;; $block_6 + end ;; $if_69 + i32.const 5048 + i32.load + tee_local $0 + get_local $14 + i32.le_u + get_local $0 + get_local $14 + i32.const 8 + i32.add + tee_local $1 + i32.load + tee_local $0 + i32.le_u + i32.and + if $if_73 + get_local $0 + get_local $3 + i32.store offset=12 + get_local $1 + get_local $3 + i32.store + get_local $3 + get_local $0 + i32.store offset=8 + get_local $3 + get_local $14 + i32.store offset=12 + get_local $3 + i32.const 0 + i32.store offset=24 + else + call $_abort + end ;; $if_73 + end ;; $block_5 + else + i32.const 5036 + get_local $2 + get_local $4 + i32.or + i32.store + get_local $0 + get_local $3 + i32.store + get_local $3 + get_local $0 + i32.store offset=24 + get_local $3 + get_local $3 + i32.store offset=12 + get_local $3 + get_local $3 + i32.store offset=8 + end ;; $if_68 + i32.const 5064 + i32.const 5064 + i32.load + i32.const -1 + i32.add + tee_local $0 + i32.store + get_local $0 + if $if_74 + return + end ;; $if_74 + i32.const 5488 + set_local $0 + loop $loop_2 + get_local $0 + i32.load + tee_local $3 + i32.const 8 + i32.add + set_local $0 + get_local $3 + br_if $loop_2 + end ;; $loop_2 + i32.const 5064 + i32.const -1 + i32.store + ) + + (func $__ZNSt3__212__next_primeEm (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + get_global $27 + set_local $2 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $2 + tee_local $5 + i32.const 4 + i32.add + set_local $3 + get_local $2 + i32.const 8 + i32.add + tee_local $6 + get_local $0 + i32.store + get_local $0 + i32.const 212 + i32.lt_u + if $if + i32.const 3408 + i32.const 3600 + get_local $6 + call $__ZNSt3__213__lower_boundIRNS_6__lessIjmEEPKjmEET0_S6_S6_RKT1_T_ + i32.load + set_local $0 + else + block $block + get_local $3 + get_local $0 + get_local $0 + i32.const 210 + i32.div_u + tee_local $8 + i32.const 210 + i32.mul + tee_local $2 + i32.sub + i32.store + i32.const 3600 + i32.const 3792 + get_local $3 + call $__ZNSt3__213__lower_boundIRNS_6__lessIjmEEPKjmEET0_S6_S6_RKT1_T_ + i32.const 3600 + i32.sub + i32.const 2 + i32.shr_s + set_local $7 + i32.const 0 + set_local $0 + block $block_0 + loop $loop + block $block_1 + get_local $2 + get_local $7 + i32.const 2 + i32.shl + i32.const 3600 + i32.add + i32.load + i32.add + set_local $3 + i32.const 5 + set_local $2 + block $block_2 + block $block_3 + loop $loop_0 + get_local $2 + i32.const 47 + i32.ge_u + br_if $block_3 + get_local $3 + get_local $2 + i32.const 2 + i32.shl + i32.const 3408 + i32.add + i32.load + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + br_if $block_1 + get_local $2 + i32.const 1 + i32.add + set_local $2 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.ne + br_if $loop_0 + end ;; $loop_0 + br $block_2 + end ;; $block_3 + i32.const 211 + set_local $2 + loop $loop_1 + block $block_4 + get_local $3 + get_local $2 + i32.div_u + tee_local $1 + get_local $2 + i32.lt_u + if $if_0 (result i32) + get_local $3 + set_local $0 + i32.const 1 + else + get_local $3 + get_local $1 + get_local $2 + i32.mul + i32.eq + if $if_1 (result i32) + i32.const 9 + else + get_local $3 + get_local $2 + i32.const 10 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_2 (result i32) + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + else + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_3 (result i32) + get_local $1 + set_local $2 + i32.const 9 + else + get_local $3 + get_local $2 + i32.const 12 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_4 (result i32) + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + else + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_5 (result i32) + get_local $1 + set_local $2 + i32.const 9 + else + get_local $3 + get_local $2 + i32.const 16 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_6 (result i32) + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + else + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_7 (result i32) + get_local $1 + set_local $2 + i32.const 9 + else + get_local $3 + get_local $2 + i32.const 18 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_8 (result i32) + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + else + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_9 (result i32) + get_local $1 + set_local $2 + i32.const 9 + else + get_local $3 + get_local $2 + i32.const 22 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_10 (result i32) + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + else + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_11 (result i32) + get_local $1 + set_local $2 + i32.const 9 + else + get_local $3 + get_local $2 + i32.const 28 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_12 (result i32) + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + else + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_13 (result i32) + get_local $1 + set_local $2 + i32.const 9 + else + block $block_5 (result i32) + get_local $3 + get_local $2 + i32.const 30 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_14 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_14 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_15 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_15 + get_local $3 + get_local $2 + i32.const 36 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_16 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_16 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_17 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_17 + get_local $3 + get_local $2 + i32.const 40 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_18 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_18 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_19 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_19 + get_local $3 + get_local $2 + i32.const 42 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_20 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_20 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_21 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_21 + get_local $3 + get_local $2 + i32.const 46 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_22 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_22 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_23 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_23 + get_local $3 + get_local $2 + i32.const 52 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_24 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_24 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_25 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_25 + get_local $3 + get_local $2 + i32.const 58 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_26 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_26 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_27 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_27 + get_local $3 + get_local $2 + i32.const 60 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_28 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_28 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_29 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_29 + get_local $3 + get_local $2 + i32.const 66 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_30 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_30 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.eq + if $if_31 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_31 + get_local $3 + get_local $2 + i32.const 70 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_32 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_32 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.eq + if $if_33 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_33 + get_local $3 + get_local $2 + i32.const 72 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_34 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_34 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.eq + if $if_35 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_35 + get_local $3 + get_local $2 + i32.const 78 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_36 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_36 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.eq + if $if_37 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_37 + get_local $3 + get_local $2 + i32.const 82 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_38 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_38 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.eq + if $if_39 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_39 + get_local $3 + get_local $2 + i32.const 88 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_40 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_40 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.eq + if $if_41 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_41 + get_local $3 + get_local $2 + i32.const 96 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_42 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_42 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.eq + if $if_43 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_43 + get_local $3 + get_local $2 + i32.const 100 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_44 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_44 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.eq + if $if_45 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_45 + get_local $3 + get_local $2 + i32.const 102 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_46 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_46 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.eq + if $if_47 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_47 + get_local $3 + get_local $2 + i32.const 106 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_48 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_48 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.eq + if $if_49 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_49 + get_local $3 + get_local $2 + i32.const 108 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_50 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_50 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.eq + if $if_51 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_51 + get_local $3 + get_local $2 + i32.const 112 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_52 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_52 + get_local $1 + get_local $4 + i32.mul + get_local $3 + i32.eq + if $if_53 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_53 + get_local $3 + get_local $2 + i32.const 120 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_54 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_54 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_55 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_55 + get_local $3 + get_local $2 + i32.const 126 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_56 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_56 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_57 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_57 + get_local $3 + get_local $2 + i32.const 130 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_58 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_58 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_59 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_59 + get_local $3 + get_local $2 + i32.const 136 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_60 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_60 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_61 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_61 + get_local $3 + get_local $2 + i32.const 138 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_62 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_62 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_63 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_63 + get_local $3 + get_local $2 + i32.const 142 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_64 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_64 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_65 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_65 + get_local $3 + get_local $2 + i32.const 148 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_66 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_66 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_67 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_67 + get_local $3 + get_local $2 + i32.const 150 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_68 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_68 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_69 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_69 + get_local $3 + get_local $2 + i32.const 156 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_70 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_70 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_71 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_71 + get_local $3 + get_local $2 + i32.const 162 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_72 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_72 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_73 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_73 + get_local $3 + get_local $2 + i32.const 166 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_74 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_74 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_75 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_75 + get_local $3 + get_local $2 + i32.const 168 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_76 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_76 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_77 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_77 + get_local $3 + get_local $2 + i32.const 172 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_78 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_78 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_79 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_79 + get_local $3 + get_local $2 + i32.const 178 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_80 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_80 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_81 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_81 + get_local $3 + get_local $2 + i32.const 180 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_82 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_82 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_83 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_83 + get_local $3 + get_local $2 + i32.const 186 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_84 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_84 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_85 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_85 + get_local $3 + get_local $2 + i32.const 190 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_86 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_86 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_87 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_87 + get_local $3 + get_local $2 + i32.const 192 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_88 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_88 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_89 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_89 + get_local $3 + get_local $2 + i32.const 196 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_90 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_90 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_91 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_91 + get_local $3 + get_local $2 + i32.const 198 + i32.add + tee_local $1 + i32.div_u + tee_local $4 + get_local $1 + i32.lt_u + if $if_92 + get_local $1 + set_local $2 + get_local $3 + set_local $0 + i32.const 1 + br $block_5 + end ;; $if_92 + get_local $3 + get_local $1 + get_local $4 + i32.mul + i32.eq + if $if_93 + get_local $1 + set_local $2 + i32.const 9 + br $block_5 + end ;; $if_93 + get_local $3 + get_local $2 + i32.const 208 + i32.add + tee_local $1 + i32.div_u + tee_local $9 + get_local $1 + i32.lt_u + set_local $4 + get_local $1 + get_local $2 + i32.const 210 + i32.add + get_local $4 + get_local $3 + get_local $1 + get_local $9 + i32.mul + i32.eq + tee_local $1 + i32.or + select + set_local $2 + get_local $3 + get_local $0 + get_local $4 + select + set_local $0 + i32.const 1 + i32.const 9 + i32.const 0 + get_local $1 + select + get_local $4 + select + end ;; $block_5 + end ;; $if_13 + end ;; $if_12 + end ;; $if_11 + end ;; $if_10 + end ;; $if_9 + end ;; $if_8 + end ;; $if_7 + end ;; $if_6 + end ;; $if_5 + end ;; $if_4 + end ;; $if_3 + end ;; $if_2 + end ;; $if_1 + end ;; $if_0 + tee_local $1 + i32.const 15 + i32.and + br_table + $loop_1 $block_4 $block_4 $block_4 $block_4 $block_4 $block_4 $block_4 $block_4 $block_2 + $block_4 ;; default + end ;; $block_4 + end ;; $loop_1 + get_local $1 + br_if $block_0 + end ;; $block_2 + get_local $8 + get_local $7 + i32.const 1 + i32.add + tee_local $3 + i32.const 48 + i32.eq + tee_local $1 + i32.add + tee_local $2 + set_local $8 + get_local $2 + i32.const 210 + i32.mul + set_local $2 + i32.const 0 + get_local $3 + get_local $1 + select + set_local $7 + br $loop + end ;; $block_1 + end ;; $loop + get_local $6 + get_local $3 + i32.store + get_local $3 + set_local $0 + br $block + end ;; $block_0 + get_local $6 + get_local $3 + i32.store + end ;; $block + end ;; $if + get_local $5 + set_global $27 + get_local $0 + ) + + (func $__ZNSt3__213__lower_boundIRNS_6__lessIjmEEPKjmEET0_S6_S6_RKT1_T_ (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + get_local $2 + i32.load + set_local $4 + get_local $1 + get_local $0 + i32.sub + i32.const 2 + i32.shr_s + set_local $1 + loop $loop + get_local $1 + if $if + get_local $1 + i32.const 2 + i32.div_s + tee_local $2 + i32.const 2 + i32.shl + get_local $0 + i32.add + tee_local $5 + i32.load + get_local $4 + i32.lt_u + set_local $3 + get_local $5 + i32.const 4 + i32.add + get_local $0 + get_local $3 + select + set_local $0 + get_local $1 + i32.const -1 + i32.add + get_local $2 + i32.sub + get_local $2 + get_local $3 + select + set_local $1 + br $loop + end ;; $if + end ;; $loop + get_local $0 + ) + + (func $__Znwm (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + get_local $0 + i32.const 1 + get_local $0 + select + set_local $1 + loop $loop + get_local $1 + call $_malloc + tee_local $0 + i32.eqz + if $if + call $__ZSt15get_new_handlerv + if $if_0 + i32.const 16 + call_indirect $20 (type $5) + br $loop + else + i32.const 0 + set_local $0 + end ;; $if_0 + end ;; $if + end ;; $loop + get_local $0 + ) + + (func $__ZdlPv (type $1) + (param $0 i32) + get_local $0 + call $_free + ) + + (func $__ZNSt3__218__libcpp_refstringC2EPKc (type $0) + (param $0 i32) + (param $1 i32) + (local $2 i32) + (local $3 i32) + get_local $1 + call $_strlen + tee_local $3 + i32.const 13 + i32.add + call $__Znwm + tee_local $2 + get_local $3 + i32.store + get_local $2 + get_local $3 + i32.store offset=4 + get_local $2 + i32.const 0 + i32.store offset=8 + get_local $2 + call $__ZNSt3__215__refstring_imp12_GLOBAL__N_113data_from_repEPNS1_9_Rep_baseE + tee_local $2 + get_local $1 + get_local $3 + i32.const 1 + i32.add + call $_memcpy + drop + get_local $0 + get_local $2 + i32.store + ) + + (func $__ZNSt3__215__refstring_imp12_GLOBAL__N_113data_from_repEPNS1_9_Rep_baseE (type $4) + (param $0 i32) + (result i32) + get_local $0 + i32.const 12 + i32.add + ) + + (func $__ZNSt11logic_errorC2EPKc (type $1) + (param $0 i32) + get_local $0 + i32.const 4436 + i32.store + get_local $0 + i32.const 4 + i32.add + i32.const 4644 + call $__ZNSt3__218__libcpp_refstringC2EPKc + ) + + (func $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv (type $5) + call $_abort + ) + + (func $__ZNSt3__211char_traitsIcE4copyEPcPKcm (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + get_local $2 + if $if + get_local $0 + get_local $1 + get_local $2 + call $_memcpy + drop + end ;; $if + get_local $0 + ) + + (func $__ZNSt3__211char_traitsIcE6assignERcRKc (type $0) + (param $0 i32) + (param $1 i32) + get_local $0 + get_local $1 + i32.load8_s + i32.store8 + ) + + (func $__ZNSt3__211char_traitsIcE6lengthEPKc (type $4) + (param $0 i32) + (result i32) + get_local $0 + call $_strlen + ) + + (func $__ZNSt3__211char_traitsIcE6assignEPcmc (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + get_local $1 + if $if + get_local $0 + get_local $2 + call $__ZNSt3__211char_traitsIcE11to_int_typeEc + i32.const 255 + i32.and + get_local $1 + call $_memset + drop + end ;; $if + get_local $0 + ) + + (func $__ZNSt3__211char_traitsIcE11to_int_typeEc (type $4) + (param $0 i32) + (result i32) + get_local $0 + i32.const 255 + i32.and + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev (type $1) + (param $0 i32) + get_local $0 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if + get_local $0 + i32.load + call $__ZdlPv + end ;; $if + ) + + (func $__ZNSt3__211char_traitsIcE4moveEPcPKcm (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + get_local $2 + if $if + get_local $0 + get_local $1 + get_local $2 + call $_memmove + drop + end ;; $if + get_local $0 + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE21__grow_by_and_replaceEmmmmmmPKc (type $19) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (param $5 i32) + (param $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + get_global $27 + set_local $7 + get_global $27 + i32.const 16 + i32.add + set_global $27 + i32.const -18 + get_local $1 + i32.sub + get_local $2 + i32.lt_u + if $if + call $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv + end ;; $if + get_local $0 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if_0 (result i32) + get_local $0 + i32.load + else + get_local $0 + end ;; $if_0 + set_local $8 + get_local $1 + i32.const 2147483623 + i32.lt_u + if $if_1 (result i32) + i32.const 11 + get_local $1 + i32.const 1 + i32.shl + tee_local $9 + get_local $1 + get_local $2 + i32.add + tee_local $2 + get_local $2 + get_local $9 + i32.lt_u + select + tee_local $2 + i32.const 16 + i32.add + i32.const -16 + i32.and + get_local $2 + i32.const 11 + i32.lt_u + select + else + i32.const -17 + end ;; $if_1 + tee_local $9 + call $__Znwm + set_local $2 + get_local $4 + if $if_2 + get_local $2 + get_local $8 + get_local $4 + call $__ZNSt3__211char_traitsIcE4copyEPcPKcm + drop + end ;; $if_2 + get_local $5 + if $if_3 + get_local $2 + get_local $4 + i32.add + get_local $6 + get_local $5 + call $__ZNSt3__211char_traitsIcE4copyEPcPKcm + drop + end ;; $if_3 + get_local $3 + get_local $4 + i32.sub + tee_local $6 + if $if_4 + get_local $5 + get_local $2 + get_local $4 + i32.add + i32.add + get_local $4 + get_local $8 + i32.add + get_local $6 + call $__ZNSt3__211char_traitsIcE4copyEPcPKcm + drop + end ;; $if_4 + get_local $1 + i32.const 10 + i32.ne + if $if_5 + get_local $8 + call $__ZdlPv + end ;; $if_5 + get_local $0 + get_local $2 + i32.store + get_local $0 + get_local $9 + i32.const -2147483648 + i32.or + i32.store offset=8 + get_local $0 + get_local $3 + get_local $5 + i32.add + tee_local $0 + i32.store offset=4 + get_local $7 + i32.const 0 + i32.store8 + get_local $0 + get_local $2 + i32.add + get_local $7 + call $__ZNSt3__211char_traitsIcE6assignERcRKc + get_local $7 + set_global $27 + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc (type $0) + (param $0 i32) + (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + get_global $27 + set_local $2 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $0 + i32.const 11 + i32.add + tee_local $4 + i32.load8_s + tee_local $3 + i32.const 0 + i32.lt_s + tee_local $5 + if $if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $3 + i32.const 255 + i32.and + end ;; $if + tee_local $3 + get_local $1 + i32.lt_u + if $if_0 + get_local $0 + get_local $1 + get_local $3 + i32.sub + i32.const 0 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEmc + drop + else + get_local $5 + if $if_1 + get_local $1 + get_local $0 + i32.load + i32.add + set_local $3 + get_local $2 + i32.const 0 + i32.store8 + get_local $3 + get_local $2 + call $__ZNSt3__211char_traitsIcE6assignERcRKc + get_local $0 + get_local $1 + i32.store offset=4 + else + get_local $2 + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + get_local $2 + call $__ZNSt3__211char_traitsIcE6assignERcRKc + get_local $4 + get_local $1 + i32.store8 + end ;; $if_1 + end ;; $if_0 + get_local $2 + set_global $27 + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEmc (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + get_global $27 + set_local $5 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $1 + if $if + get_local $0 + i32.const 11 + i32.add + tee_local $6 + i32.load8_s + tee_local $4 + i32.const 0 + i32.lt_s + if $if_0 (result i32) + get_local $0 + i32.load offset=4 + set_local $3 + get_local $0 + i32.load offset=8 + i32.const 2147483647 + i32.and + i32.const -1 + i32.add + else + get_local $4 + i32.const 255 + i32.and + set_local $3 + i32.const 10 + end ;; $if_0 + tee_local $7 + get_local $3 + i32.sub + get_local $1 + i32.lt_u + if $if_1 + get_local $0 + get_local $7 + get_local $1 + get_local $3 + i32.add + get_local $7 + i32.sub + get_local $3 + get_local $3 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEmmmmmm + get_local $6 + i32.load8_s + set_local $4 + end ;; $if_1 + get_local $3 + get_local $4 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.lt_s + if $if_2 (result i32) + get_local $0 + i32.load + else + get_local $0 + end ;; $if_2 + tee_local $4 + i32.add + get_local $1 + get_local $2 + call $__ZNSt3__211char_traitsIcE6assignEPcmc + drop + get_local $1 + get_local $3 + i32.add + set_local $1 + get_local $6 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_3 + get_local $0 + get_local $1 + i32.store offset=4 + else + get_local $6 + get_local $1 + i32.store8 + end ;; $if_3 + get_local $5 + i32.const 0 + i32.store8 + get_local $1 + get_local $4 + i32.add + get_local $5 + call $__ZNSt3__211char_traitsIcE6assignERcRKc + end ;; $if + get_local $5 + set_global $27 + get_local $0 + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEmmmmmm (type $2) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (local $5 i32) + (local $6 i32) + i32.const -17 + get_local $1 + i32.sub + get_local $2 + i32.lt_u + if $if + call $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv + end ;; $if + get_local $0 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if_0 (result i32) + get_local $0 + i32.load + else + get_local $0 + end ;; $if_0 + set_local $6 + get_local $1 + i32.const 2147483623 + i32.lt_u + if $if_1 (result i32) + i32.const 11 + get_local $1 + i32.const 1 + i32.shl + tee_local $5 + get_local $1 + get_local $2 + i32.add + tee_local $2 + get_local $2 + get_local $5 + i32.lt_u + select + tee_local $2 + i32.const 16 + i32.add + i32.const -16 + i32.and + get_local $2 + i32.const 11 + i32.lt_u + select + else + i32.const -17 + end ;; $if_1 + tee_local $2 + call $__Znwm + set_local $5 + get_local $4 + if $if_2 + get_local $5 + get_local $6 + get_local $4 + call $__ZNSt3__211char_traitsIcE4copyEPcPKcm + drop + end ;; $if_2 + get_local $3 + get_local $4 + i32.sub + tee_local $3 + if $if_3 + get_local $4 + get_local $5 + i32.add + get_local $4 + get_local $6 + i32.add + get_local $3 + call $__ZNSt3__211char_traitsIcE4copyEPcPKcm + drop + end ;; $if_3 + get_local $1 + i32.const 10 + i32.ne + if $if_4 + get_local $6 + call $__ZdlPv + end ;; $if_4 + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $2 + i32.const -2147483648 + i32.or + i32.store offset=8 + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + get_global $27 + set_local $5 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $0 + i32.const 11 + i32.add + tee_local $7 + i32.load8_s + tee_local $4 + i32.const 0 + i32.lt_s + tee_local $6 + if $if (result i32) + get_local $0 + i32.load offset=4 + set_local $3 + get_local $0 + i32.load offset=8 + i32.const 2147483647 + i32.and + i32.const -1 + i32.add + else + get_local $4 + i32.const 255 + i32.and + set_local $3 + i32.const 10 + end ;; $if + tee_local $4 + get_local $3 + i32.sub + get_local $2 + i32.lt_u + if $if_0 + get_local $0 + get_local $4 + get_local $2 + get_local $3 + i32.add + get_local $4 + i32.sub + get_local $3 + get_local $3 + get_local $2 + get_local $1 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE21__grow_by_and_replaceEmmmmmmPKc + else + get_local $2 + if $if_1 + get_local $3 + get_local $6 + if $if_2 (result i32) + get_local $0 + i32.load + else + get_local $0 + end ;; $if_2 + tee_local $6 + i32.add + get_local $1 + get_local $2 + call $__ZNSt3__211char_traitsIcE4copyEPcPKcm + drop + get_local $2 + get_local $3 + i32.add + set_local $1 + get_local $7 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_3 + get_local $0 + get_local $1 + i32.store offset=4 + else + get_local $7 + get_local $1 + i32.store8 + end ;; $if_3 + get_local $5 + i32.const 0 + i32.store8 + get_local $1 + get_local $6 + i32.add + get_local $5 + call $__ZNSt3__211char_traitsIcE6assignERcRKc + end ;; $if_1 + end ;; $if_0 + get_local $5 + set_global $27 + get_local $0 + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6insertEmPKcm (type $12) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + get_global $27 + set_local $7 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $0 + i32.const 11 + i32.add + tee_local $8 + i32.load8_s + tee_local $4 + i32.const 0 + i32.lt_s + tee_local $5 + if $if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $4 + i32.const 255 + i32.and + end ;; $if + tee_local $6 + get_local $1 + i32.lt_u + if $if_0 + call $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv + end ;; $if_0 + get_local $5 + if $if_1 (result i32) + get_local $0 + i32.load offset=8 + i32.const 2147483647 + i32.and + i32.const -1 + i32.add + else + i32.const 10 + end ;; $if_1 + tee_local $4 + get_local $6 + i32.sub + get_local $3 + i32.lt_u + if $if_2 + get_local $0 + get_local $4 + get_local $3 + get_local $6 + i32.add + get_local $4 + i32.sub + get_local $6 + get_local $1 + get_local $3 + get_local $2 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE21__grow_by_and_replaceEmmmmmmPKc + else + get_local $3 + if $if_3 + get_local $1 + get_local $5 + if $if_4 (result i32) + get_local $0 + i32.load + else + get_local $0 + end ;; $if_4 + tee_local $4 + i32.add + set_local $5 + get_local $6 + get_local $1 + i32.sub + tee_local $1 + if $if_5 + get_local $2 + get_local $3 + i32.add + get_local $2 + get_local $5 + get_local $2 + i32.le_u + get_local $4 + get_local $6 + i32.add + get_local $2 + i32.gt_u + i32.and + select + set_local $2 + get_local $3 + get_local $5 + i32.add + get_local $5 + get_local $1 + call $__ZNSt3__211char_traitsIcE4moveEPcPKcm + drop + end ;; $if_5 + get_local $5 + get_local $2 + get_local $3 + call $__ZNSt3__211char_traitsIcE4moveEPcPKcm + drop + get_local $3 + get_local $6 + i32.add + set_local $1 + get_local $8 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_6 + get_local $0 + get_local $1 + i32.store offset=4 + else + get_local $8 + get_local $1 + i32.store8 + end ;; $if_6 + get_local $7 + i32.const 0 + i32.store8 + get_local $1 + get_local $4 + i32.add + get_local $7 + call $__ZNSt3__211char_traitsIcE6assignERcRKc + end ;; $if_3 + end ;; $if_2 + get_local $7 + set_global $27 + get_local $0 + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6insertEmPKc (type $11) + (param $0 i32) + (param $1 i32) + (result i32) + get_local $0 + i32.const 0 + get_local $1 + get_local $1 + call $__ZNSt3__211char_traitsIcE6lengthEPKc + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6insertEmPKcm + ) + + (func $__ZNSt3__29to_stringEj (type $0) + (param $0 i32) + (param $1 i32) + (local $2 i32) + get_global $27 + set_local $2 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $2 + call $__ZNKSt3__212_GLOBAL__N_114initial_stringINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEjLb0EEclEv + get_local $0 + get_local $2 + get_local $1 + call $__ZNSt3__212_GLOBAL__N_19as_stringINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPFiPcmPKczEjEET_T0_SD_PKNSD_10value_typeET1_ + get_local $2 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev + get_local $2 + set_global $27 + ) + + (func $__ZNKSt3__212_GLOBAL__N_114initial_stringINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEjLb0EEclEv (type $1) + (param $0 i32) + (local $1 i32) + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + loop $loop + get_local $1 + i32.const 3 + i32.ne + if $if + get_local $1 + i32.const 2 + i32.shl + get_local $0 + i32.add + i32.const 0 + i32.store + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $loop + end ;; $if + end ;; $loop + get_local $0 + get_local $0 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if_0 (result i32) + get_local $0 + i32.load offset=8 + i32.const 2147483647 + i32.and + i32.const -1 + i32.add + else + i32.const 10 + end ;; $if_0 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc + ) + + (func $__ZNSt3__212_GLOBAL__N_19as_stringINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPFiPcmPKczEjEET_T0_SD_PKNSD_10value_typeET1_ (type $9) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + get_global $27 + set_local $5 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $1 + i32.const 11 + i32.add + tee_local $6 + i32.load8_s + tee_local $3 + i32.const 0 + i32.lt_s + if $if (result i32) + get_local $1 + i32.load offset=4 + else + get_local $3 + i32.const 255 + i32.and + end ;; $if + set_local $4 + loop $loop + block $block + get_local $3 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.lt_s + if $if_0 (result i32) + get_local $1 + i32.load + else + get_local $1 + end ;; $if_0 + set_local $3 + get_local $5 + get_local $2 + i32.store + get_local $1 + get_local $3 + get_local $4 + i32.const 1 + i32.add + i32.const 4766 + get_local $5 + call $_snprintf + tee_local $3 + i32.const -1 + i32.gt_s + if $if_1 (result i32) + get_local $3 + get_local $4 + i32.le_u + br_if $block + get_local $3 + else + get_local $4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end ;; $if_1 + tee_local $4 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc + get_local $6 + i32.load8_s + set_local $3 + br $loop + end ;; $block + end ;; $loop + get_local $1 + get_local $3 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc + get_local $0 + get_local $1 + i64.load align=4 + i64.store align=4 + get_local $0 + get_local $1 + i32.load offset=8 + i32.store offset=8 + i32.const 0 + set_local $0 + loop $loop_0 + get_local $0 + i32.const 3 + i32.ne + if $if_2 + get_local $0 + i32.const 2 + i32.shl + get_local $1 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $loop_0 + end ;; $if_2 + end ;; $loop_0 + get_local $5 + set_global $27 + ) + + (func $__ZNSt3__29to_stringEm (type $0) + (param $0 i32) + (param $1 i32) + (local $2 i32) + get_global $27 + set_local $2 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $2 + call $__ZNKSt3__212_GLOBAL__N_114initial_stringINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEjLb0EEclEv + get_local $0 + get_local $2 + get_local $1 + call $__ZNSt3__212_GLOBAL__N_19as_stringINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPFiPcmPKczEmEET_T0_SD_PKNSD_10value_typeET1_ + get_local $2 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev + get_local $2 + set_global $27 + ) + + (func $__ZNSt3__212_GLOBAL__N_19as_stringINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPFiPcmPKczEmEET_T0_SD_PKNSD_10value_typeET1_ (type $9) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + get_global $27 + set_local $5 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $1 + i32.const 11 + i32.add + tee_local $6 + i32.load8_s + tee_local $3 + i32.const 0 + i32.lt_s + if $if (result i32) + get_local $1 + i32.load offset=4 + else + get_local $3 + i32.const 255 + i32.and + end ;; $if + set_local $4 + loop $loop + block $block + get_local $3 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.lt_s + if $if_0 (result i32) + get_local $1 + i32.load + else + get_local $1 + end ;; $if_0 + set_local $3 + get_local $5 + get_local $2 + i32.store + get_local $1 + get_local $3 + get_local $4 + i32.const 1 + i32.add + i32.const 4769 + get_local $5 + call $_snprintf + tee_local $3 + i32.const -1 + i32.gt_s + if $if_1 (result i32) + get_local $3 + get_local $4 + i32.le_u + br_if $block + get_local $3 + else + get_local $4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end ;; $if_1 + tee_local $4 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc + get_local $6 + i32.load8_s + set_local $3 + br $loop + end ;; $block + end ;; $loop + get_local $1 + get_local $3 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc + get_local $0 + get_local $1 + i64.load align=4 + i64.store align=4 + get_local $0 + get_local $1 + i32.load offset=8 + i32.store offset=8 + i32.const 0 + set_local $0 + loop $loop_0 + get_local $0 + i32.const 3 + i32.ne + if $if_2 + get_local $0 + i32.const 2 + i32.shl + get_local $1 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $loop_0 + end ;; $if_2 + end ;; $loop_0 + get_local $5 + set_global $27 + ) + + (func $__ZN10__cxxabiv117__class_type_infoD0Ev (type $1) + (param $0 i32) + get_local $0 + call $__ZN7ContextD2Ev + get_local $0 + call $__ZdlPv + ) + + (func $__ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + get_global $27 + set_local $3 + get_global $27 + i32.const -64 + i32.sub + set_global $27 + get_local $0 + get_local $1 + call $__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b + if $if (result i32) + i32.const 1 + else + get_local $1 + if $if_0 (result i32) + get_local $1 + call $___dynamic_cast + tee_local $1 + if $if_1 (result i32) + get_local $3 + i32.const 4 + i32.add + tee_local $4 + i64.const 0 + i64.store align=4 + get_local $4 + i64.const 0 + i64.store offset=8 align=4 + get_local $4 + i64.const 0 + i64.store offset=16 align=4 + get_local $4 + i64.const 0 + i64.store offset=24 align=4 + get_local $4 + i64.const 0 + i64.store offset=32 align=4 + get_local $4 + i64.const 0 + i64.store offset=40 align=4 + get_local $4 + i32.const 0 + i32.store offset=48 + get_local $3 + get_local $1 + i32.store + get_local $3 + get_local $0 + i32.store offset=8 + get_local $3 + i32.const -1 + i32.store offset=12 + get_local $3 + i32.const 1 + i32.store offset=48 + get_local $1 + i32.load + i32.load offset=28 + set_local $0 + get_local $1 + get_local $3 + get_local $2 + i32.load + i32.const 1 + get_local $0 + i32.const 3 + i32.and + i32.const 35 + i32.add + call_indirect $20 (type $6) + get_local $3 + i32.load offset=24 + i32.const 1 + i32.eq + if $if_2 (result i32) + get_local $2 + get_local $3 + i32.load offset=16 + i32.store + i32.const 1 + else + i32.const 0 + end ;; $if_2 + else + i32.const 0 + end ;; $if_1 + else + i32.const 0 + end ;; $if_0 + end ;; $if + set_local $0 + get_local $3 + set_global $27 + get_local $0 + ) + + (func $__ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib (type $7) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (param $5 i32) + get_local $0 + get_local $1 + i32.load offset=8 + call $__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b + if $if + get_local $1 + get_local $2 + get_local $3 + get_local $4 + call $__ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i + end ;; $if + ) + + (func $__ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib (type $2) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + get_local $0 + get_local $1 + i32.load offset=8 + call $__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b + if $if + get_local $1 + get_local $2 + get_local $3 + call $__ZNK10__cxxabiv117__class_type_info29process_static_type_below_dstEPNS_19__dynamic_cast_infoEPKvi + else + get_local $0 + get_local $1 + i32.load + call $__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b + if $if_0 + block $block + get_local $1 + i32.load offset=16 + get_local $2 + i32.ne + if $if_1 + get_local $1 + i32.const 20 + i32.add + tee_local $0 + i32.load + get_local $2 + i32.ne + if $if_2 + get_local $1 + get_local $3 + i32.store offset=32 + get_local $0 + get_local $2 + i32.store + get_local $1 + i32.const 40 + i32.add + tee_local $0 + get_local $0 + i32.load + i32.const 1 + i32.add + i32.store + get_local $1 + i32.load offset=36 + i32.const 1 + i32.eq + if $if_3 + get_local $1 + i32.load offset=24 + i32.const 2 + i32.eq + if $if_4 + get_local $1 + i32.const 1 + i32.store8 offset=54 + end ;; $if_4 + end ;; $if_3 + get_local $1 + i32.const 4 + i32.store offset=44 + br $block + end ;; $if_2 + end ;; $if_1 + get_local $3 + i32.const 1 + i32.eq + if $if_5 + get_local $1 + i32.const 1 + i32.store offset=32 + end ;; $if_5 + end ;; $block + end ;; $if_0 + end ;; $if + ) + + (func $__ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi (type $6) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + get_local $0 + get_local $1 + i32.load offset=8 + call $__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b + if $if + get_local $1 + get_local $2 + get_local $3 + call $__ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi + end ;; $if + ) + + (func $__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b (type $11) + (param $0 i32) + (param $1 i32) + (result i32) + get_local $0 + get_local $1 + i32.eq + ) + + (func $__ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi (type $9) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (local $3 i32) + (local $4 i32) + get_local $0 + i32.const 16 + i32.add + tee_local $3 + i32.load + tee_local $4 + if $if + block $block + get_local $1 + get_local $4 + i32.ne + if $if_0 + get_local $0 + i32.const 36 + i32.add + tee_local $3 + get_local $3 + i32.load + i32.const 1 + i32.add + i32.store + get_local $0 + i32.const 2 + i32.store offset=24 + get_local $0 + i32.const 1 + i32.store8 offset=54 + br $block + end ;; $if_0 + get_local $0 + i32.const 24 + i32.add + tee_local $3 + i32.load + i32.const 2 + i32.eq + if $if_1 + get_local $3 + get_local $2 + i32.store + end ;; $if_1 + end ;; $block + else + get_local $3 + get_local $1 + i32.store + get_local $0 + get_local $2 + i32.store offset=24 + get_local $0 + i32.const 1 + i32.store offset=36 + end ;; $if + ) + + (func $__ZNK10__cxxabiv117__class_type_info29process_static_type_below_dstEPNS_19__dynamic_cast_infoEPKvi (type $9) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (local $3 i32) + get_local $1 + get_local $0 + i32.load offset=4 + i32.eq + if $if + get_local $0 + i32.const 28 + i32.add + tee_local $3 + i32.load + i32.const 1 + i32.ne + if $if_0 + get_local $3 + get_local $2 + i32.store + end ;; $if_0 + end ;; $if + ) + + (func $__ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i (type $6) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (local $4 i32) + get_local $0 + i32.const 1 + i32.store8 offset=53 + get_local $2 + get_local $0 + i32.load offset=4 + i32.eq + if $if + block $block + get_local $0 + i32.const 1 + i32.store8 offset=52 + get_local $0 + i32.const 16 + i32.add + tee_local $4 + i32.load + tee_local $2 + i32.eqz + if $if_0 + get_local $4 + get_local $1 + i32.store + get_local $0 + get_local $3 + i32.store offset=24 + get_local $0 + i32.const 1 + i32.store offset=36 + get_local $0 + i32.load offset=48 + i32.const 1 + i32.eq + get_local $3 + i32.const 1 + i32.eq + i32.and + i32.eqz + br_if $block + get_local $0 + i32.const 1 + i32.store8 offset=54 + br $block + end ;; $if_0 + get_local $1 + get_local $2 + i32.ne + if $if_1 + get_local $0 + i32.const 36 + i32.add + tee_local $4 + get_local $4 + i32.load + i32.const 1 + i32.add + i32.store + get_local $0 + i32.const 1 + i32.store8 offset=54 + br $block + end ;; $if_1 + get_local $0 + i32.const 24 + i32.add + tee_local $1 + i32.load + tee_local $4 + i32.const 2 + i32.eq + if $if_2 + get_local $1 + get_local $3 + i32.store + else + get_local $4 + set_local $3 + end ;; $if_2 + get_local $0 + i32.load offset=48 + i32.const 1 + i32.eq + get_local $3 + i32.const 1 + i32.eq + i32.and + if $if_3 + get_local $0 + i32.const 1 + i32.store8 offset=54 + end ;; $if_3 + end ;; $block + end ;; $if + ) + + (func $___dynamic_cast (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + get_global $27 + set_local $1 + get_global $27 + i32.const -64 + i32.sub + set_global $27 + get_local $0 + get_local $0 + i32.load + tee_local $3 + i32.const -8 + i32.add + i32.load + i32.add + set_local $4 + get_local $3 + i32.const -4 + i32.add + i32.load + set_local $2 + get_local $1 + i32.const 3824 + i32.store + get_local $1 + get_local $0 + i32.store offset=4 + get_local $1 + i32.const 3840 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 20 + i32.add + set_local $8 + get_local $1 + i32.const 24 + i32.add + set_local $5 + get_local $1 + i32.const 28 + i32.add + set_local $6 + get_local $1 + i32.const 32 + i32.add + set_local $7 + get_local $1 + i32.const 40 + i32.add + set_local $3 + get_local $1 + i32.const 16 + i32.add + tee_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i64.const 0 + i64.store offset=8 align=4 + get_local $0 + i64.const 0 + i64.store offset=16 align=4 + get_local $0 + i64.const 0 + i64.store offset=24 align=4 + get_local $0 + i32.const 0 + i32.store offset=32 + get_local $0 + i32.const 0 + i32.store16 offset=36 + get_local $0 + i32.const 0 + i32.store8 offset=38 + get_local $2 + i32.const 3824 + call $__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b + if $if (result i32) + get_local $1 + i32.const 1 + i32.store offset=48 + get_local $2 + get_local $1 + get_local $4 + get_local $4 + i32.const 1 + i32.const 0 + get_local $2 + i32.load + i32.load offset=20 + i32.const 3 + i32.and + i32.const 43 + i32.add + call_indirect $20 (type $7) + get_local $4 + i32.const 0 + get_local $5 + i32.load + i32.const 1 + i32.eq + select + else + block $block (result i32) + get_local $2 + get_local $1 + get_local $4 + i32.const 1 + i32.const 0 + get_local $2 + i32.load + i32.load offset=24 + i32.const 3 + i32.and + i32.const 39 + i32.add + call_indirect $20 (type $2) + block $block_0 + block $block_1 + block $block_2 + get_local $1 + i32.const 36 + i32.add + i32.load + br_table + $block_2 $block_0 + $block_1 ;; default + end ;; $block_2 + get_local $8 + i32.load + i32.const 0 + get_local $3 + i32.load + i32.const 1 + i32.eq + get_local $6 + i32.load + i32.const 1 + i32.eq + i32.and + get_local $7 + i32.load + i32.const 1 + i32.eq + i32.and + select + br $block + end ;; $block_1 + i32.const 0 + br $block + end ;; $block_0 + get_local $5 + i32.load + i32.const 1 + i32.ne + if $if_0 + i32.const 0 + get_local $3 + i32.load + i32.eqz + get_local $6 + i32.load + i32.const 1 + i32.eq + i32.and + get_local $7 + i32.load + i32.const 1 + i32.eq + i32.and + i32.eqz + br_if $block + drop + end ;; $if_0 + get_local $0 + i32.load + end ;; $block + end ;; $if + set_local $0 + get_local $1 + set_global $27 + get_local $0 + ) + + (func $__ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib (type $7) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (param $5 i32) + (local $6 i32) + get_local $0 + get_local $1 + i32.load offset=8 + call $__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b + if $if + get_local $1 + get_local $2 + get_local $3 + get_local $4 + call $__ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i + else + get_local $0 + i32.load offset=8 + tee_local $0 + i32.load + i32.load offset=20 + set_local $6 + get_local $0 + get_local $1 + get_local $2 + get_local $3 + get_local $4 + get_local $5 + get_local $6 + i32.const 3 + i32.and + i32.const 43 + i32.add + call_indirect $20 (type $7) + end ;; $if + ) + + (func $__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib (type $2) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + get_local $0 + get_local $1 + i32.load offset=8 + call $__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b + if $if + get_local $1 + get_local $2 + get_local $3 + call $__ZNK10__cxxabiv117__class_type_info29process_static_type_below_dstEPNS_19__dynamic_cast_infoEPKvi + else + block $block + get_local $0 + get_local $1 + i32.load + call $__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b + i32.eqz + if $if_0 + get_local $0 + i32.load offset=8 + tee_local $0 + i32.load + i32.load offset=24 + set_local $5 + get_local $0 + get_local $1 + get_local $2 + get_local $3 + get_local $4 + get_local $5 + i32.const 3 + i32.and + i32.const 39 + i32.add + call_indirect $20 (type $2) + br $block + end ;; $if_0 + get_local $1 + i32.load offset=16 + get_local $2 + i32.ne + if $if_1 + get_local $1 + i32.const 20 + i32.add + tee_local $5 + i32.load + get_local $2 + i32.ne + if $if_2 + get_local $1 + get_local $3 + i32.store offset=32 + get_local $1 + i32.const 44 + i32.add + tee_local $3 + i32.load + i32.const 4 + i32.eq + br_if $block + get_local $1 + i32.const 52 + i32.add + tee_local $6 + i32.const 0 + i32.store8 + get_local $1 + i32.const 53 + i32.add + tee_local $7 + i32.const 0 + i32.store8 + get_local $0 + i32.load offset=8 + tee_local $0 + i32.load + i32.load offset=20 + set_local $8 + get_local $0 + get_local $1 + get_local $2 + get_local $2 + i32.const 1 + get_local $4 + get_local $8 + i32.const 3 + i32.and + i32.const 43 + i32.add + call_indirect $20 (type $7) + get_local $3 + block $block_0 (result i32) + block $block_1 + get_local $7 + i32.load8_s + if $if_3 (result i32) + get_local $6 + i32.load8_s + br_if $block_1 + i32.const 1 + else + i32.const 0 + end ;; $if_3 + set_local $0 + get_local $5 + get_local $2 + i32.store + get_local $1 + i32.const 40 + i32.add + tee_local $2 + get_local $2 + i32.load + i32.const 1 + i32.add + i32.store + get_local $1 + i32.load offset=36 + i32.const 1 + i32.eq + if $if_4 + get_local $1 + i32.load offset=24 + i32.const 2 + i32.eq + if $if_5 + get_local $1 + i32.const 1 + i32.store8 offset=54 + get_local $0 + br_if $block_1 + i32.const 4 + br $block_0 + end ;; $if_5 + end ;; $if_4 + get_local $0 + br_if $block_1 + i32.const 4 + br $block_0 + end ;; $block_1 + i32.const 3 + end ;; $block_0 + i32.store + br $block + end ;; $if_2 + end ;; $if_1 + get_local $3 + i32.const 1 + i32.eq + if $if_6 + get_local $1 + i32.const 1 + i32.store offset=32 + end ;; $if_6 + end ;; $block + end ;; $if + ) + + (func $__ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi (type $6) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (local $4 i32) + get_local $0 + get_local $1 + i32.load offset=8 + call $__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b + if $if + get_local $1 + get_local $2 + get_local $3 + call $__ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi + else + get_local $0 + i32.load offset=8 + tee_local $0 + i32.load + i32.load offset=28 + set_local $4 + get_local $0 + get_local $1 + get_local $2 + get_local $3 + get_local $4 + i32.const 3 + i32.and + i32.const 35 + i32.add + call_indirect $20 (type $6) + end ;; $if + ) + + (func $__ZNSt11logic_errorD2Ev (type $1) + (param $0 i32) + get_local $0 + i32.const 4436 + i32.store + get_local $0 + i32.const 4 + i32.add + call $__ZNSt3__218__libcpp_refstringD2Ev + ) + + (func $__ZNSt11logic_errorD0Ev (type $1) + (param $0 i32) + get_local $0 + call $__ZNSt11logic_errorD2Ev + get_local $0 + call $__ZdlPv + ) + + (func $__ZNKSt11logic_error4whatEv (type $4) + (param $0 i32) + (result i32) + get_local $0 + i32.const 4 + i32.add + call $__ZNKSt3__218__libcpp_refstring5c_strEv + ) + + (func $__ZNKSt3__218__libcpp_refstring5c_strEv (type $4) + (param $0 i32) + (result i32) + get_local $0 + i32.load + ) + + (func $__ZNSt3__218__libcpp_refstringD2Ev (type $1) + (param $0 i32) + (local $1 i32) + (local $2 i32) + call $___lockfile + if $if + get_local $0 + i32.load + call $__ZNSt3__215__refstring_imp12_GLOBAL__N_113rep_from_dataEPKc_123 + tee_local $1 + i32.const 8 + i32.add + tee_local $2 + i32.load + set_local $0 + get_local $2 + get_local $0 + i32.const -1 + i32.add + i32.store + get_local $0 + i32.const -1 + i32.add + i32.const 0 + i32.lt_s + if $if_0 + get_local $1 + call $__ZdlPv + end ;; $if_0 + end ;; $if + ) + + (func $__ZNSt3__215__refstring_imp12_GLOBAL__N_113rep_from_dataEPKc_123 (type $4) + (param $0 i32) + (result i32) + get_local $0 + i32.const -12 + i32.add + ) + + (func $__ZSt15get_new_handlerv (type $8) + (result i32) + (local $0 i32) + i32.const 5528 + i32.const 5528 + i32.load + tee_local $0 + i32.store + get_local $0 + ) + + (func $_llvm_bswap_i32 (type $4) + (param $0 i32) + (result i32) + get_local $0 + i32.const 255 + i32.and + i32.const 24 + i32.shl + get_local $0 + i32.const 8 + i32.shr_s + i32.const 255 + i32.and + i32.const 16 + i32.shl + i32.or + get_local $0 + i32.const 16 + i32.shr_s + i32.const 255 + i32.and + i32.const 8 + i32.shl + i32.or + get_local $0 + i32.const 24 + i32.shr_u + i32.or + ) + + (func $_memcpy (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + get_local $2 + i32.const 8192 + i32.ge_s + if $if + get_local $0 + get_local $1 + get_local $2 + call $_emscripten_memcpy_big + drop + get_local $0 + return + end ;; $if + get_local $0 + set_local $4 + get_local $0 + get_local $2 + i32.add + set_local $3 + get_local $0 + i32.const 3 + i32.and + get_local $1 + i32.const 3 + i32.and + i32.eq + if $if_0 + loop $loop + get_local $0 + i32.const 3 + i32.and + if $if_1 + get_local $2 + i32.eqz + if $if_2 + get_local $4 + return + end ;; $if_2 + get_local $0 + get_local $1 + i32.load8_s + i32.store8 + get_local $0 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $loop + end ;; $if_1 + end ;; $loop + get_local $3 + i32.const -4 + i32.and + tee_local $2 + i32.const -64 + i32.add + set_local $5 + loop $loop_0 + get_local $0 + get_local $5 + i32.le_s + if $if_3 + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + get_local $1 + i32.load offset=4 + i32.store offset=4 + get_local $0 + get_local $1 + i32.load offset=8 + i32.store offset=8 + get_local $0 + get_local $1 + i32.load offset=12 + i32.store offset=12 + get_local $0 + get_local $1 + i32.load offset=16 + i32.store offset=16 + get_local $0 + get_local $1 + i32.load offset=20 + i32.store offset=20 + get_local $0 + get_local $1 + i32.load offset=24 + i32.store offset=24 + get_local $0 + get_local $1 + i32.load offset=28 + i32.store offset=28 + get_local $0 + get_local $1 + i32.load offset=32 + i32.store offset=32 + get_local $0 + get_local $1 + i32.load offset=36 + i32.store offset=36 + get_local $0 + get_local $1 + i32.load offset=40 + i32.store offset=40 + get_local $0 + get_local $1 + i32.load offset=44 + i32.store offset=44 + get_local $0 + get_local $1 + i32.load offset=48 + i32.store offset=48 + get_local $0 + get_local $1 + i32.load offset=52 + i32.store offset=52 + get_local $0 + get_local $1 + i32.load offset=56 + i32.store offset=56 + get_local $0 + get_local $1 + i32.load offset=60 + i32.store offset=60 + get_local $0 + i32.const -64 + i32.sub + set_local $0 + get_local $1 + i32.const -64 + i32.sub + set_local $1 + br $loop_0 + end ;; $if_3 + end ;; $loop_0 + loop $loop_1 + get_local $0 + get_local $2 + i32.lt_s + if $if_4 + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + br $loop_1 + end ;; $if_4 + end ;; $loop_1 + else + get_local $3 + i32.const 4 + i32.sub + set_local $2 + loop $loop_2 + get_local $0 + get_local $2 + i32.lt_s + if $if_5 + get_local $0 + get_local $1 + i32.load8_s + i32.store8 + get_local $0 + get_local $1 + i32.load8_s offset=1 + i32.store8 offset=1 + get_local $0 + get_local $1 + i32.load8_s offset=2 + i32.store8 offset=2 + get_local $0 + get_local $1 + i32.load8_s offset=3 + i32.store8 offset=3 + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + br $loop_2 + end ;; $if_5 + end ;; $loop_2 + end ;; $if_0 + loop $loop_3 + get_local $0 + get_local $3 + i32.lt_s + if $if_6 + get_local $0 + get_local $1 + i32.load8_s + i32.store8 + get_local $0 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $loop_3 + end ;; $if_6 + end ;; $loop_3 + get_local $4 + ) + + (func $_memmove (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + get_local $1 + get_local $0 + i32.lt_s + get_local $0 + get_local $1 + get_local $2 + i32.add + i32.lt_s + i32.and + if $if + get_local $1 + get_local $2 + i32.add + set_local $1 + get_local $0 + tee_local $3 + get_local $2 + i32.add + set_local $0 + loop $loop + get_local $2 + i32.const 0 + i32.gt_s + if $if_0 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + i32.const 1 + i32.sub + tee_local $0 + get_local $1 + i32.const 1 + i32.sub + tee_local $1 + i32.load8_s + i32.store8 + br $loop + end ;; $if_0 + end ;; $loop + get_local $3 + set_local $0 + else + get_local $0 + get_local $1 + get_local $2 + call $_memcpy + drop + end ;; $if + get_local $0 + ) + + (func $_memset (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + get_local $0 + get_local $2 + i32.add + set_local $4 + get_local $1 + i32.const 255 + i32.and + set_local $1 + get_local $2 + i32.const 67 + i32.ge_s + if $if + loop $loop + get_local $0 + i32.const 3 + i32.and + if $if_0 + get_local $0 + get_local $1 + i32.store8 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $loop + end ;; $if_0 + end ;; $loop + get_local $4 + i32.const -4 + i32.and + tee_local $5 + i32.const -64 + i32.add + set_local $6 + get_local $1 + i32.const 8 + i32.shl + get_local $1 + i32.or + get_local $1 + i32.const 16 + i32.shl + i32.or + get_local $1 + i32.const 24 + i32.shl + i32.or + set_local $3 + loop $loop_0 + get_local $0 + get_local $6 + i32.le_s + if $if_1 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $3 + i32.store offset=4 + get_local $0 + get_local $3 + i32.store offset=8 + get_local $0 + get_local $3 + i32.store offset=12 + get_local $0 + get_local $3 + i32.store offset=16 + get_local $0 + get_local $3 + i32.store offset=20 + get_local $0 + get_local $3 + i32.store offset=24 + get_local $0 + get_local $3 + i32.store offset=28 + get_local $0 + get_local $3 + i32.store offset=32 + get_local $0 + get_local $3 + i32.store offset=36 + get_local $0 + get_local $3 + i32.store offset=40 + get_local $0 + get_local $3 + i32.store offset=44 + get_local $0 + get_local $3 + i32.store offset=48 + get_local $0 + get_local $3 + i32.store offset=52 + get_local $0 + get_local $3 + i32.store offset=56 + get_local $0 + get_local $3 + i32.store offset=60 + get_local $0 + i32.const -64 + i32.sub + set_local $0 + br $loop_0 + end ;; $if_1 + end ;; $loop_0 + loop $loop_1 + get_local $0 + get_local $5 + i32.lt_s + if $if_2 + get_local $0 + get_local $3 + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + br $loop_1 + end ;; $if_2 + end ;; $loop_1 + end ;; $if + loop $loop_2 + get_local $0 + get_local $4 + i32.lt_s + if $if_3 + get_local $0 + get_local $1 + i32.store8 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $loop_2 + end ;; $if_3 + end ;; $loop_2 + get_local $4 + get_local $2 + i32.sub + ) + + (func $_sbrk (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + get_local $0 + get_global $24 + i32.load + tee_local $2 + i32.add + tee_local $1 + get_local $2 + i32.lt_s + get_local $0 + i32.const 0 + i32.gt_s + i32.and + get_local $1 + i32.const 0 + i32.lt_s + i32.or + if $if + call $abortOnCannotGrowMemory + drop + i32.const 12 + call $___setErrNo + i32.const -1 + return + end ;; $if + get_local $1 + call $_emscripten_get_heap_size + i32.le_s + if $if_0 + get_global $24 + get_local $1 + i32.store + else + get_local $1 + call $_emscripten_resize_heap + i32.eqz + if $if_1 + i32.const 12 + call $___setErrNo + i32.const -1 + return + end ;; $if_1 + end ;; $if_0 + get_local $2 + ) + + (func $dynCall_ii (type $11) + (param $0 i32) + (param $1 i32) + (result i32) + get_local $1 + get_local $0 + i32.const 7 + i32.and + call_indirect $20 (type $4) + ) + + (func $dynCall_iiii (type $12) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (result i32) + get_local $1 + get_local $2 + get_local $3 + get_local $0 + i32.const 7 + i32.and + i32.const 8 + i32.add + call_indirect $20 (type $3) + ) + + (func $dynCall_v (type $1) + (param $0 i32) + i32.const 16 + call_indirect $20 (type $5) + ) + + (func $dynCall_vi (type $0) + (param $0 i32) + (param $1 i32) + get_local $1 + get_local $0 + i32.const 15 + i32.and + i32.const 17 + i32.add + call_indirect $20 (type $1) + ) + + (func $dynCall_vii (type $9) + (param $0 i32) + (param $1 i32) + (param $2 i32) + get_local $1 + get_local $2 + get_local $0 + i32.const 1 + i32.and + i32.const 33 + i32.add + call_indirect $20 (type $0) + ) + + (func $dynCall_viiii (type $2) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + get_local $1 + get_local $2 + get_local $3 + get_local $4 + get_local $0 + i32.const 3 + i32.and + i32.const 35 + i32.add + call_indirect $20 (type $6) + ) + + (func $dynCall_viiiii (type $7) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (param $5 i32) + get_local $1 + get_local $2 + get_local $3 + get_local $4 + get_local $5 + get_local $0 + i32.const 3 + i32.and + i32.const 39 + i32.add + call_indirect $20 (type $2) + ) + + (func $dynCall_viiiiii (type $19) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (param $5 i32) + (param $6 i32) + get_local $1 + get_local $2 + get_local $3 + get_local $4 + get_local $5 + get_local $6 + get_local $0 + i32.const 3 + i32.and + i32.const 43 + i32.add + call_indirect $20 (type $7) + ) + + (func $b0 (type $4) + (param $0 i32) + (result i32) + i32.const 0 + call $abort + i32.const 0 + ) + + (func $b1 (type $3) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + i32.const 1 + call $abort + i32.const 0 + ) + + (func $b2 (type $5) + i32.const 2 + call $abort + ) + + (func $b3 (type $1) + (param $0 i32) + i32.const 3 + call $abort + ) + + (func $b4 (type $0) + (param $0 i32) + (param $1 i32) + i32.const 4 + call $abort + ) + + (func $b5 (type $6) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + i32.const 5 + call $abort + ) + + (func $b6 (type $2) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + i32.const 6 + call $abort + ) + + (func $b7 (type $7) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (param $5 i32) + i32.const 7 + call $abort + ) + ;; User section "emscripten_metadata": + ;; "\00\00\00\01\a0-/" + ) \ No newline at end of file diff --git a/examples/wasm/envoy_wasm_example.wasm b/examples/wasm/envoy_wasm_example.wasm deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/include/envoy/server/wasm_config.h b/include/envoy/server/wasm_config.h index cd0e6c93f15d9..3c3e8a3f051d6 100644 --- a/include/envoy/server/wasm_config.h +++ b/include/envoy/server/wasm_config.h @@ -37,6 +37,10 @@ class WasmFactoryContext { * @return Api::Api& a reference to the api object. */ virtual Api::Api& api() PURE; + /** + * @return Stats::ScopeSharedPtr shared by all VMs. + */ + virtual Stats::ScopeSharedPtr scope() PURE; }; /** diff --git a/source/extensions/access_loggers/wasm/config.cc b/source/extensions/access_loggers/wasm/config.cc index cc50a4e59789b..d302f79589bd5 100644 --- a/source/extensions/access_loggers/wasm/config.cc +++ b/source/extensions/access_loggers/wasm/config.cc @@ -33,7 +33,7 @@ WasmAccessLogFactory::createAccessLogInstance(const Protobuf::Message& proto_con // Create a base WASM to verify that the code loads before setting/cloning the for the // individual threads. auto base_wasm = Common::Wasm::createWasm(id, config.vm_config(), context.clusterManager(), - context.dispatcher(), context.api()); + context.dispatcher(), context.api(), context.scope()); // NB: the Slot set() call doesn't complete inline, so all arguments must outlive this call. tls_slot->set([base_wasm, configuration](Event::Dispatcher& dispatcher) { auto result = Common::Wasm::createThreadLocalWasm(*base_wasm, *configuration, dispatcher); diff --git a/source/extensions/common/wasm/wasm.cc b/source/extensions/common/wasm/wasm.cc index df773659f5174..8d3a0a5d78854 100644 --- a/source/extensions/common/wasm/wasm.cc +++ b/source/extensions/common/wasm/wasm.cc @@ -438,6 +438,30 @@ uint32_t httpCallHandler(void* raw_context, uint32_t uri_ptr, uint32_t uri_size, return context->httpCall(uri, headers, body, trailers, timeout_milliseconds); } +uint32_t defineMetricHandler(void* raw_context, uint32_t metric_type, uint32_t name_ptr, + uint32_t name_size) { + if (metric_type > static_cast(Context::MetricType::Max)) + return 0; + auto context = WASM_CONTEXT(raw_context); + auto name = context->wasmVm()->getMemory(name_ptr, name_size); + return context->defineMetric(static_cast(metric_type), name); +} + +void incrementMetricHandler(void* raw_context, uint32_t metric_id, int64_t offset) { + auto context = WASM_CONTEXT(raw_context); + context->incrementMetric(metric_id, offset); +} + +void recordMetricHandler(void* raw_context, uint32_t metric_id, uint64_t value) { + auto context = WASM_CONTEXT(raw_context); + context->recordMetric(metric_id, value); +} + +uint64_t getMetricHandler(void* raw_context, uint32_t metric_id) { + auto context = WASM_CONTEXT(raw_context); + return context->getMetric(metric_id); +} + uint32_t getTotalMemoryHandler(void*) { return 0x7FFFFFFF; } uint32_t _emscripten_get_heap_sizeHandler(void*) { return 0x7FFFFFFF; } void _llvm_trapHandler(void*) { throw WasmException("emscripten llvm_trap"); } @@ -928,10 +952,96 @@ void Context::onHttpCallResponse(uint32_t token, const Pairs& response_headers, trailers_ptr, trailers_size); } +uint32_t Context::defineMetric(MetricType type, absl::string_view name) { + switch (type) { + case MetricType::Counter: { + auto id = wasm_->nextCounterMetricId(); + wasm_->counters_.emplace(id, &wasm_->scope_.counter(std::string( + name))); // This is inefficient, but it is the Scope API. + return id; + } + case MetricType::Gauge: { + auto id = wasm_->nextGaugeMetricId(); + wasm_->gauges_.emplace(id, &wasm_->scope_.gauge(std::string( + name))); // This is inefficient, but it is the Scope API. + return id; + } + case MetricType::Histogram: { + auto id = wasm_->nextHistogramMetricId(); + wasm_->histograms_.emplace(id, &wasm_->scope_.histogram(std::string( + name))); // This is inefficient, but it is the Scope API. + return id; + } + } + return 0; +} + +void Context::incrementMetric(uint32_t metric_id, int64_t offset) { + auto type = static_cast(metric_id & Wasm::kMetricTypeMask); + if (type == MetricType::Counter) { + auto it = wasm_->counters_.find(metric_id); + if (it != wasm_->counters_.end()) { + if (offset > 0) + it->second->add(offset); + } + } else if (type == MetricType::Gauge) { + auto it = wasm_->gauges_.find(metric_id); + if (it != wasm_->gauges_.end()) { + if (offset > 0) + it->second->add(offset); + else + it->second->sub(-offset); + } + } +} + +void Context::recordMetric(uint32_t metric_id, uint64_t value) { + switch (static_cast(metric_id & Wasm::kMetricTypeMask)) { + case MetricType::Counter: { + auto it = wasm_->counters_.find(metric_id); + if (it != wasm_->counters_.end()) { + it->second->add(value); + } + break; + } + case MetricType::Gauge: { + auto it = wasm_->gauges_.find(metric_id); + if (it != wasm_->gauges_.end()) { + it->second->set(value); + } + break; + } + case MetricType::Histogram: { + auto it = wasm_->histograms_.find(metric_id); + if (it != wasm_->histograms_.end()) { + it->second->recordValue(value); + } + break; + } + } +} + +uint64_t Context::getMetric(uint32_t metric_id) { + auto type = static_cast(metric_id & Wasm::kMetricTypeMask); + if (type == MetricType::Counter) { + auto it = wasm_->counters_.find(metric_id); + if (it != wasm_->counters_.end()) { + return it->second->value(); + } + } else if (type == MetricType::Gauge) { + auto it = wasm_->gauges_.find(metric_id); + if (it != wasm_->gauges_.end()) { + return it->second->value(); + } + } + return 0; +} + Wasm::Wasm(absl::string_view vm, absl::string_view id, absl::string_view initial_configuration, - Upstream::ClusterManager& cluster_manager, Event::Dispatcher& dispatcher) - : cluster_manager_(cluster_manager), dispatcher_(dispatcher), - initial_configuration_(initial_configuration) { + Upstream::ClusterManager& cluster_manager, Event::Dispatcher& dispatcher, + Stats::Scope& scope, Stats::ScopeSharedPtr owned_scope) + : cluster_manager_(cluster_manager), dispatcher_(dispatcher), scope_(scope), + owned_scope_(owned_scope), initial_configuration_(initial_configuration) { wasm_vm_ = Common::Wasm::createWasmVm(vm); id_ = std::string(id); if (wasm_vm_) { @@ -992,6 +1102,11 @@ Wasm::Wasm(absl::string_view vm, absl::string_view id, absl::string_view initial _REGISTER_PROXY(httpCall); _REGISTER_PROXY(setTickPeriodMilliseconds); + + _REGISTER_PROXY(defineMetric); + _REGISTER_PROXY(incrementMetric); + _REGISTER_PROXY(recordMetric); + _REGISTER_PROXY(getMetric); #undef _REGISTER_PROXY } } @@ -1020,7 +1135,7 @@ void Wasm::getFunctions() { Wasm::Wasm(const Wasm& wasm) : std::enable_shared_from_this(), cluster_manager_(wasm.cluster_manager_), - dispatcher_(wasm.dispatcher_) { + dispatcher_(wasm.dispatcher_), scope_(wasm.scope_), owned_scope_(wasm.owned_scope_) { wasm_vm_ = wasm.wasmVm()->clone(); general_context_ = createContext(); getFunctions(); @@ -1224,9 +1339,10 @@ std::unique_ptr createWasmVm(absl::string_view wasm_vm) { std::shared_ptr createWasm(absl::string_view id, const envoy::config::wasm::v2::VmConfig& vm_config, Upstream::ClusterManager& cluster_manager, - Event::Dispatcher& dispatcher, Api::Api& api) { + Event::Dispatcher& dispatcher, Api::Api& api, Stats::Scope& scope, + Stats::ScopeSharedPtr scope_ptr) { auto wasm = std::make_shared(vm_config.vm(), id, vm_config.initial_configuration(), - cluster_manager, dispatcher); + cluster_manager, dispatcher, scope, scope_ptr); const auto& code = Config::DataSource::read(vm_config.code(), true, api); const auto& path = Config::DataSource::getPath(vm_config.code()) .value_or(code.empty() ? EMPTY_STRING : INLINE_STRING); @@ -1248,7 +1364,7 @@ std::shared_ptr createThreadLocalWasm(Wasm& base_wasm, absl::string_view c } else { wasm = std::make_shared(base_wasm.wasmVm()->vm(), base_wasm.id(), base_wasm.initial_configuration(), base_wasm.clusterManager(), - dispatcher); + dispatcher, base_wasm.scope()); if (!wasm->initialize(base_wasm.code(), base_wasm.id(), base_wasm.allow_precompiled())) { throw WasmException("Failed to initialize WASM code"); } diff --git a/source/extensions/common/wasm/wasm.h b/source/extensions/common/wasm/wasm.h index 06f61a6b107e6..b914b70254211 100644 --- a/source/extensions/common/wasm/wasm.h +++ b/source/extensions/common/wasm/wasm.h @@ -8,6 +8,8 @@ #include "envoy/config/wasm/v2/wasm.pb.validate.h" #include "envoy/http/filter.h" #include "envoy/server/wasm.h" +#include "envoy/stats/scope.h" +#include "envoy/stats/stats.h" #include "envoy/thread_local/thread_local.h" #include "envoy/upstream/cluster_manager.h" @@ -196,6 +198,18 @@ class Context : public Http::StreamFilter, virtual void httpRespond(const Pairs& response_headers, absl::string_view body, const Pairs& response_trailers); + // Stats/Metrics + enum class MetricType : uint32_t { + Counter = 0, + Gauge = 1, + Histogram = 2, + Max = 2, + }; + virtual uint32_t defineMetric(MetricType type, absl::string_view name); + virtual void incrementMetric(uint32_t metric_id, int64_t offset); + virtual void recordMetric(uint32_t metric_id, uint64_t value); + virtual uint64_t getMetric(uint32_t metric_id); + // Connection virtual bool isSsl(); @@ -253,7 +267,8 @@ class Wasm : public Envoy::Server::Wasm, public std::enable_shared_from_this { public: Wasm(absl::string_view vm, absl::string_view id, absl::string_view initial_configuration, - Upstream::ClusterManager& cluster_manager, Event::Dispatcher& dispatcher); + Upstream::ClusterManager& cluster_manager, Event::Dispatcher& dispatcher, + Stats::Scope& scope, Stats::ScopeSharedPtr owned_scope = nullptr); Wasm(const Wasm& other); ~Wasm() {} @@ -268,6 +283,7 @@ class Wasm : public Envoy::Server::Wasm, WasmVm* wasmVm() const { return wasm_vm_.get(); } Context* generalContext() const { return general_context_.get(); } Upstream::ClusterManager& clusterManager() const { return cluster_manager_; } + Stats::Scope& scope() const { return scope_; } std::shared_ptr createContext() { return std::make_shared(this); } @@ -296,11 +312,30 @@ class Wasm : public Envoy::Server::Wasm, private: friend class Context; + static constexpr uint32_t kMetricTypeMask = 0x3; + static constexpr uint32_t kMetricTypeCounter = 0x0; + static constexpr uint32_t kMetricTypeGauge = 0x1; + static constexpr uint32_t kMetricTypeHistogram = 0x2; + static constexpr uint32_t kMetricIdIncrement = 0x4; + + bool isCounterMetricId(uint32_t metric_id) { + return (metric_id & kMetricTypeMask) == kMetricTypeCounter; + } + bool isGaugeMetricId(uint32_t metric_id) { + return (metric_id & kMetricTypeMask) == kMetricTypeGauge; + } + bool isHistogramMetricId(uint32_t metric_id) { + return (metric_id & kMetricTypeMask) == kMetricTypeHistogram; + } + uint32_t nextCounterMetricId() { return next_counter_metric_id_ += kMetricIdIncrement; } + uint32_t nextGaugeMetricId() { return next_gauge_metric_id_ += kMetricIdIncrement; } + uint32_t nextHistogramMetricId() { return next_histogram_metric_id_ += kMetricIdIncrement; } void getFunctions(); Upstream::ClusterManager& cluster_manager_; Event::Dispatcher& dispatcher_; + Stats::Scope& scope_; std::string id_; std::string context_id_filter_state_data_name_; uint32_t next_context_id_ = 0; @@ -309,6 +344,8 @@ class Wasm : public Envoy::Server::Wasm, std::function tick_; std::chrono::milliseconds tick_period_; Event::TimerPtr timer_; + Stats::ScopeSharedPtr + owned_scope_; // When scope_ is not owned by a higher level (e.g. for WASM services). // Calls into the VM. WasmCall0Void onStart_; @@ -338,6 +375,14 @@ class Wasm : public Envoy::Server::Wasm, std::string code_; std::string initial_configuration_; bool allow_precompiled_ = false; + + // Stats/Metrics + uint32_t next_counter_metric_id_ = kMetricTypeCounter; + uint32_t next_gauge_metric_id_ = kMetricTypeGauge; + uint32_t next_histogram_metric_id_ = kMetricTypeHistogram; + absl::flat_hash_map counters_; + absl::flat_hash_map gauges_; + absl::flat_hash_map histograms_; }; inline WasmVm* Context::wasmVm() const { return wasm_->wasmVm(); } @@ -456,7 +501,8 @@ std::unique_ptr createWasmVm(absl::string_view vm); std::shared_ptr createWasm(absl::string_view id, const envoy::config::wasm::v2::VmConfig& vm_config, Upstream::ClusterManager& cluster_manager, - Event::Dispatcher& dispatcher, Api::Api& api); + Event::Dispatcher& dispatcher, Api::Api& api, Stats::Scope& scope, + Stats::ScopeSharedPtr owned_scope = nullptr); // Create a ThreadLocal VM from an existing VM (e.g. from createWasm() above). std::shared_ptr createThreadLocalWasm(Wasm& base_wasm, absl::string_view configuration, diff --git a/source/extensions/common/wasm/wavm/wavm.cc b/source/extensions/common/wasm/wavm/wavm.cc index 49b2c4ce1e5cb..5cc13229b1215 100644 --- a/source/extensions/common/wasm/wavm/wavm.cc +++ b/source/extensions/common/wasm/wavm/wavm.cc @@ -411,6 +411,15 @@ template void registerCallbackWavm(WasmVm* vm, absl::string_view functionName, + U64 (*f)(void*, U32)); +template void registerCallbackWavm(WasmVm* vm, + absl::string_view functionName, + void (*f)(void*, U32, I64)); +template void registerCallbackWavm(WasmVm* vm, + absl::string_view functionName, + void (*f)(void*, U32, U64)); + template IR::FunctionType inferStdFunctionType(std::function*) { diff --git a/source/extensions/filters/http/wasm/wasm_filter.cc b/source/extensions/filters/http/wasm/wasm_filter.cc index 16c8ee3181872..c0bf6e1414fe4 100644 --- a/source/extensions/filters/http/wasm/wasm_filter.cc +++ b/source/extensions/filters/http/wasm/wasm_filter.cc @@ -23,7 +23,7 @@ FilterConfig::FilterConfig(const envoy::config::filter::http::wasm::v2::Wasm& co // Create a base WASM to verify that the code loads before setting/cloning the for the // individual threads. auto base_wasm = Common::Wasm::createWasm(id, config.vm_config(), context.clusterManager(), - context.dispatcher(), context.api()); + context.dispatcher(), context.api(), context.scope()); // NB: the Slot set() call doesn't complete inline, so all arguments must outlive this call. tls_slot_->set([base_wasm, configuration](Event::Dispatcher& dispatcher) { auto result = diff --git a/source/extensions/wasm/config.cc b/source/extensions/wasm/config.cc index 601c4208acba9..22a90dabf03b7 100644 --- a/source/extensions/wasm/config.cc +++ b/source/extensions/wasm/config.cc @@ -20,9 +20,9 @@ Server::WasmSharedPtr WasmFactory::createWasm(const envoy::config::wasm::v2::Was Server::Configuration::WasmFactoryContext& context) { // Create a base WASM to verify that the code loads before setting/cloning the for the individual // threads. - auto base_wasm = - Common::Wasm::createWasm(config.id(), config.vm_config(), context.clusterManager(), - context.dispatcher(), context.api()); + auto base_wasm = Common::Wasm::createWasm(config.id(), config.vm_config(), + context.clusterManager(), context.dispatcher(), + context.api(), *context.scope(), context.scope()); if (config.singleton()) { // Return the WASM VM which will be stored as a singleton by the Server. return base_wasm; diff --git a/source/server/server.cc b/source/server/server.cc index c878f6a95d113..371b0a33dd044 100644 --- a/source/server/server.cc +++ b/source/server/server.cc @@ -320,8 +320,9 @@ void InstanceImpl::initialize(Options& options, if (bootstrap_.wasm_service_size() > 0) { auto factory = Registry::FactoryRegistry::getFactory("envoy.wasm"); if (factory) { + auto scope = Stats::ScopeSharedPtr(stats_store_.createScope("wasm.")); Configuration::WasmFactoryContextImpl wasm_factory_context(clusterManager(), *dispatcher_, - thread_local_, api()); + thread_local_, api(), scope); for (auto& config : bootstrap_.wasm_service()) { auto wasm = factory->createWasm(config, wasm_factory_context); if (wasm) { diff --git a/source/server/wasm_config_impl.h b/source/server/wasm_config_impl.h index a9f7f7ffdd1a2..8843e74de48b1 100644 --- a/source/server/wasm_config_impl.h +++ b/source/server/wasm_config_impl.h @@ -10,19 +10,23 @@ namespace Configuration { class WasmFactoryContextImpl : public WasmFactoryContext { public: WasmFactoryContextImpl(Upstream::ClusterManager& cluster_manager, Event::Dispatcher& dispatcher, - ThreadLocal::SlotAllocator& tls, Api::Api& api) - : cluster_manager_(cluster_manager), dispatcher_(dispatcher), tls_(tls), api_(api) {} + ThreadLocal::SlotAllocator& tls, Api::Api& api, + Stats::ScopeSharedPtr scope) + : cluster_manager_(cluster_manager), dispatcher_(dispatcher), tls_(tls), api_(api), + scope_(scope) {} Upstream::ClusterManager& clusterManager() override { return cluster_manager_; } Event::Dispatcher& dispatcher() override { return dispatcher_; } ThreadLocal::SlotAllocator& threadLocal() override { return tls_; } Api::Api& api() override { return api_; } + Stats::ScopeSharedPtr scope() override { return scope_; } private: Upstream::ClusterManager& cluster_manager_; Event::Dispatcher& dispatcher_; ThreadLocal::SlotAllocator& tls_; Api::Api& api_; + Stats::ScopeSharedPtr scope_; }; } // namespace Configuration diff --git a/test/extensions/access_loggers/wasm/config_test.cc b/test/extensions/access_loggers/wasm/config_test.cc index 1e49fa0b57755..bf4a7a48c6fb4 100644 --- a/test/extensions/access_loggers/wasm/config_test.cc +++ b/test/extensions/access_loggers/wasm/config_test.cc @@ -31,11 +31,13 @@ class TestContext : public Common::Wasm::Context { class TestFactoryContext : public NiceMock { public: - TestFactoryContext(Api::Api& api) : api_(api) {} + TestFactoryContext(Api::Api& api, Stats::Scope& scope) : api_(api), scope_(scope) {} Api::Api& api() override { return api_; } + Stats::Scope& scope() override { return scope_; } private: Api::Api& api_; + Stats::Scope& scope_; }; TEST(WasmAccessLogConfigTest, CreateWasmFromEmpty) { @@ -70,7 +72,7 @@ TEST(WasmAccessLogConfigTest, CreateWasmFromWASM) { AccessLog::FilterPtr filter; Stats::IsolatedStoreImpl stats_store; Api::ApiPtr api = Api::createApiForTest(stats_store); - TestFactoryContext context(*api); + TestFactoryContext context(*api, stats_store); AccessLog::InstanceSharedPtr instance = factory->createAccessLogInstance(config, std::move(filter), context); diff --git a/test/extensions/filters/http/wasm/config_test.cc b/test/extensions/filters/http/wasm/config_test.cc index 133411b5d4678..97a3050d7f3a7 100644 --- a/test/extensions/filters/http/wasm/config_test.cc +++ b/test/extensions/filters/http/wasm/config_test.cc @@ -24,6 +24,7 @@ class WasmFilterConfigTest : public testing::Test { protected: WasmFilterConfigTest() : api_(Api::createApiForTest(stats_store_)) { ON_CALL(context_, api()).WillByDefault(ReturnRef(*api_)); + ON_CALL(context_, scope()).WillByDefault(ReturnRef(stats_store_)); } NiceMock context_; diff --git a/test/extensions/filters/http/wasm/wasm_filter_test.cc b/test/extensions/filters/http/wasm/wasm_filter_test.cc index e54b0462209a9..0282ea6bbe12f 100644 --- a/test/extensions/filters/http/wasm/wasm_filter_test.cc +++ b/test/extensions/filters/http/wasm/wasm_filter_test.cc @@ -51,10 +51,10 @@ class WasmHttpFilterTest : public testing::Test { envoy::config::filter::http::wasm::v2::Wasm proto_config; proto_config.mutable_vm_config()->set_vm("envoy.wasm.vm.wavm"); proto_config.mutable_vm_config()->mutable_code()->set_inline_bytes(code); - Stats::IsolatedStoreImpl stats_store; - Api::ApiPtr api = Api::createApiForTest(stats_store); + Api::ApiPtr api = Api::createApiForTest(stats_store_); + scope_ = Stats::ScopeSharedPtr(stats_store_.createScope("wasm.")); wasm_ = Extensions::Common::Wasm::createWasm(proto_config.id(), proto_config.vm_config(), - cluster_manager_, dispatcher_, *api); + cluster_manager_, dispatcher_, *api, *scope_); } void setupFilter() { @@ -62,6 +62,8 @@ class WasmHttpFilterTest : public testing::Test { filter_ = std::make_unique(wasm_.get()); } + Stats::IsolatedStoreImpl stats_store_; + Stats::ScopeSharedPtr scope_; NiceMock tls_; NiceMock dispatcher_; Upstream::MockClusterManager cluster_manager_; diff --git a/test/extensions/wasm/config_test.cc b/test/extensions/wasm/config_test.cc index 20f604a7247c0..c0780ba16d15e 100644 --- a/test/extensions/wasm/config_test.cc +++ b/test/extensions/wasm/config_test.cc @@ -34,7 +34,9 @@ TEST(WasmFactoryTest, CreateWasmFromWASM) { ThreadLocal::MockInstance tls; Stats::IsolatedStoreImpl stats_store; Api::ApiPtr api = Api::createApiForTest(stats_store); - Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api, + scope); auto wasm = factory->createWasm(config, context); EXPECT_NE(wasm, nullptr); } @@ -53,7 +55,9 @@ TEST(WasmFactoryTest, CreateWasmFromPrecompiledWASM) { ThreadLocal::MockInstance tls; Stats::IsolatedStoreImpl stats_store; Api::ApiPtr api = Api::createApiForTest(stats_store); - Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api, + scope); auto wasm = factory->createWasm(config, context); EXPECT_NE(wasm, nullptr); } @@ -72,7 +76,9 @@ TEST(WasmFactoryTest, CreateWasmFromWASMPerThread) { testing::NiceMock tls; Stats::IsolatedStoreImpl stats_store; Api::ApiPtr api = Api::createApiForTest(stats_store); - Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api, + scope); auto wasm = factory->createWasm(config, context); EXPECT_EQ(wasm, nullptr); } @@ -91,7 +97,9 @@ TEST(WasmFactoryTest, CreateWasmFromWAT) { ThreadLocal::MockInstance tls; Stats::IsolatedStoreImpl stats_store; Api::ApiPtr api = Api::createApiForTest(stats_store); - Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api, + scope); auto wasm = factory->createWasm(config, context); EXPECT_NE(wasm, nullptr); } @@ -126,7 +134,9 @@ TEST(WasmFactoryTest, CreateWasmFromInlineWAT) { ThreadLocal::MockInstance tls; Stats::IsolatedStoreImpl stats_store; Api::ApiPtr api = Api::createApiForTest(stats_store); - Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api, + scope); auto wasm = factory->createWasm(config, context); EXPECT_NE(wasm, nullptr); } @@ -161,7 +171,9 @@ TEST(WasmFactoryTest, CreateWasmFromInlineWATWithAlias) { ThreadLocal::MockInstance tls; Stats::IsolatedStoreImpl stats_store; Api::ApiPtr api = Api::createApiForTest(stats_store); - Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api, + scope); auto wasm = factory->createWasm(config, context); EXPECT_NE(wasm, nullptr); } @@ -196,7 +208,9 @@ TEST(WasmFactoryTest, CreateWasmFromInlineWATWithUnderscoreAlias) { ThreadLocal::MockInstance tls; Stats::IsolatedStoreImpl stats_store; Api::ApiPtr api = Api::createApiForTest(stats_store); - Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api, + scope); auto wasm = factory->createWasm(config, context); EXPECT_NE(wasm, nullptr); } @@ -231,7 +245,9 @@ TEST(WasmFactoryTest, MissingImport) { ThreadLocal::MockInstance tls; Stats::IsolatedStoreImpl stats_store; Api::ApiPtr api = Api::createApiForTest(stats_store); - Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + Server::Configuration::WasmFactoryContextImpl context(cluster_manager, dispatcher, tls, *api, + scope); Server::WasmSharedPtr wasm; EXPECT_THROW_WITH_MESSAGE( wasm = factory->createWasm(config, context), Extensions::Common::Wasm::WasmException, diff --git a/test/extensions/wasm/test_data/Makefile b/test/extensions/wasm/test_data/Makefile index cfbead4fc2537..dc0a796e68b4c 100644 --- a/test/extensions/wasm/test_data/Makefile +++ b/test/extensions/wasm/test_data/Makefile @@ -1,5 +1,5 @@ NO_CONTEXT = true -all: logging.wasm bad_signature.wasm segv.wasm +all: logging.wasm bad_signature.wasm segv.wasm stats.wasm include ../../../../api/wasm/cpp/Makefile.base diff --git a/test/extensions/wasm/test_data/stats.cc b/test/extensions/wasm/test_data/stats.cc new file mode 100644 index 0000000000000..a3af8f2333c71 --- /dev/null +++ b/test/extensions/wasm/test_data/stats.cc @@ -0,0 +1,22 @@ +// NOLINT(namespace-envoy) +#include + +#include "proxy_wasm_intrinsics.h" + +extern "C" EMSCRIPTEN_KEEPALIVE void proxy_onStart() { + auto c = defineMetric(MetricType::Counter, "test_counter"); + auto g = defineMetric(MetricType::Gauge, "test_gauges"); + auto h = defineMetric(MetricType::Histogram, "test_histogram"); + + incrementMetric(c, 1); + recordMetric(g, 2); + recordMetric(h, 3); + + logTrace(std::string("get counter = ") + std::to_string(getMetric(c))); + incrementMetric(c, 1); + logDebug(std::string("get counter = ") + std::to_string(getMetric(c))); + recordMetric(c, 3); + logInfo(std::string("get counter = ") + std::to_string(getMetric(c))); + logWarn(std::string("get gauge = ") + std::to_string(getMetric(g))); + logError(std::string("get histogram = ") + std::to_string(getMetric(h))); +} diff --git a/test/extensions/wasm/test_data/stats.wasm b/test/extensions/wasm/test_data/stats.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7c82310f8696f2a1befeb198cd6a17ddb6be5b2f GIT binary patch literal 114614 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 z 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[\\]^_`acdefgijklrstyz{|") + (data $21 (i32.const 1600) + "Illegal byte sequence\00Domain error\00Result not representable\00Not " + "a tty\00Permission denied\00Operation not permitted\00No such file or " + "directory\00No such process\00File exists\00Value too large for data t" + "ype\00No space left on device\00Out of memory\00Resource busy\00Interrup" + "ted system call\00Resource temporarily unavailable\00Invalid seek\00Cr" + "oss-device link\00Read-only file system\00Directory not empty\00Connec" + "tion reset by peer\00Operation timed out\00Connection refused\00Host i" + "s down\00Host is unreachable\00Address in use\00Broken pipe\00I/O error\00" + "No such device or address\00Block device required\00No such device\00N" + "ot a directory\00Is a directory\00Text file busy\00Exec format error\00I" + "nvalid argument\00Argument list too long\00Symbolic link loop\00Filena" + "me too long\00Too many open files in system\00No file descriptors av" + "ailable\00Bad file descriptor\00No child process\00Bad address\00File to" + "o large\00Too many links\00No locks available\00Resource deadlock woul" + "d occur\00State not recoverable\00Previous owner died\00Operation canc" + "eled\00Function not implemented\00No message of desired type\00Identif" + "ier removed\00Device not a stream\00No data available\00Device timeout" + "\00Out of streams resources\00Link has been severed\00Protocol error\00B" + "ad message\00File descriptor in bad state\00Not a socket\00Destination" + " address required\00Message too large\00Protocol wrong type for sock" + "et\00Protocol not available\00Protocol not supported\00Socket type not" + " supported\00Not supported\00Protocol family not supported\00Address f" + "amily not supported by protocol\00Address not available\00Network is" + " down\00Network unreachable\00Connection reset by network\00Connection" + " aborted\00No buffer space available\00Socket is connected\00Socket no" + "t connected\00Cannot send after socket shutdown\00Operation already " + "in progress\00Operation in progress\00Stale file handle\00Remote I/O e" + "rror\00Quota exceeded\00No medium found\00Wrong medium type\00No error i" + "nformation") + (data $21 (i32.const 3444) + "\01") + (data $21 (i32.const 3483) + "\ff\ff\ff\ff\ff") + (data $21 (i32.const 3720) + "x\0f") + (data $21 (i32.const 3776) + "test_counter\00test_gauges\00test_histogram\00get counter = \00get gauge" + " = \00get histogram = \00-+ 0X0x\00(null)\00-0X+0X 0X-0x+0x 0x\00inf\00INF" + "\00nan\00NAN\00.\00%llu") + + (func $stackAlloc (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + get_global $27 + set_local $1 + get_local $0 + get_global $27 + i32.add + set_global $27 + get_global $27 + i32.const 15 + i32.add + i32.const -16 + i32.and + set_global $27 + get_local $1 + ) + + (func $stackSave (type $3) + (result i32) + get_global $27 + ) + + (func $stackRestore (type $2) + (param $0 i32) + get_local $0 + set_global $27 + ) + + (func $establishStackSpace (type $8) + (param $0 i32) + (param $1 i32) + get_local $0 + set_global $27 + get_local $1 + set_global $28 + ) + + (func $setThrew (type $8) + (param $0 i32) + (param $1 i32) + get_global $25 + i32.eqz + if $if + get_local $0 + set_global $25 + get_local $1 + set_global $26 + end ;; $if + ) + + (func $_proxy_onStart (type $1) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + get_global $27 + set_local $3 + get_global $27 + i32.const 48 + i32.add + set_global $27 + get_local $3 + i32.const 24 + i32.add + set_local $2 + get_local $3 + i32.const 12 + i32.add + set_local $4 + i32.const 0 + i32.const 3776 + i32.const 12 + call $_proxy_defineMetric + set_local $0 + i32.const 1 + i32.const 3789 + i32.const 11 + call $_proxy_defineMetric + set_local $5 + i32.const 2 + i32.const 3801 + i32.const 14 + call $_proxy_defineMetric + set_local $8 + get_local $0 + i64.const 1 + call $_proxy_incrementMetric + get_local $5 + i64.const 2 + call $_proxy_recordMetric + get_local $8 + i64.const 3 + call $_proxy_recordMetric + get_local $4 + i32.const 16 + call $__Znwm + tee_local $1 + i32.store + get_local $4 + i32.const -2147483632 + i32.store offset=8 + get_local $4 + i32.const 14 + i32.store offset=4 + get_local $1 + i32.const 3816 + i64.load align=1 + i64.store align=1 + get_local $1 + i32.const 3824 + i32.load align=1 + i32.store offset=8 align=1 + get_local $1 + i32.const 3828 + i32.load16_s align=1 + i32.store16 offset=12 align=1 + get_local $1 + i32.const 0 + i32.store8 offset=14 + get_local $3 + get_local $0 + call $_proxy_getMetric + call $__ZNSt3__29to_stringEy + get_local $2 + get_local $4 + get_local $3 + i32.load + get_local $3 + get_local $3 + i32.const 11 + i32.add + tee_local $6 + i32.load8_s + tee_local $1 + i32.const 0 + i32.lt_s + tee_local $7 + select + get_local $3 + i32.load offset=4 + get_local $1 + i32.const 255 + i32.and + get_local $7 + select + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $1 + i64.load align=4 + i64.store align=4 + get_local $2 + get_local $1 + i32.load offset=8 + i32.store offset=8 + get_local $1 + i64.const 0 + i64.store align=4 + get_local $1 + i32.const 0 + i32.store offset=8 + i32.const 0 + get_local $2 + i32.load + get_local $2 + get_local $2 + i32.const 11 + i32.add + tee_local $1 + i32.load8_s + tee_local $7 + i32.const 0 + i32.lt_s + tee_local $9 + select + get_local $2 + i32.load offset=4 + get_local $7 + i32.const 255 + i32.and + get_local $9 + select + call $_proxy_log + get_local $1 + i32.load8_s + i32.const 0 + i32.lt_s + if $if + get_local $2 + i32.load + call $__ZdlPv + end ;; $if + get_local $6 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_0 + get_local $3 + i32.load + call $__ZdlPv + end ;; $if_0 + get_local $4 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if_1 + get_local $4 + i32.load + call $__ZdlPv + end ;; $if_1 + get_local $0 + i64.const 1 + call $_proxy_incrementMetric + get_local $4 + i32.const 16 + call $__Znwm + tee_local $1 + i32.store + get_local $4 + i32.const -2147483632 + i32.store offset=8 + get_local $4 + i32.const 14 + i32.store offset=4 + get_local $1 + i32.const 3816 + i64.load align=1 + i64.store align=1 + get_local $1 + i32.const 3824 + i32.load align=1 + i32.store offset=8 align=1 + get_local $1 + i32.const 3828 + i32.load16_s align=1 + i32.store16 offset=12 align=1 + get_local $1 + i32.const 0 + i32.store8 offset=14 + get_local $3 + get_local $0 + call $_proxy_getMetric + call $__ZNSt3__29to_stringEy + get_local $2 + get_local $4 + get_local $3 + i32.load + get_local $3 + get_local $3 + i32.const 11 + i32.add + tee_local $6 + i32.load8_s + tee_local $1 + i32.const 0 + i32.lt_s + tee_local $7 + select + get_local $3 + i32.load offset=4 + get_local $1 + i32.const 255 + i32.and + get_local $7 + select + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $1 + i64.load align=4 + i64.store align=4 + get_local $2 + get_local $1 + i32.load offset=8 + i32.store offset=8 + get_local $1 + i64.const 0 + i64.store align=4 + get_local $1 + i32.const 0 + i32.store offset=8 + i32.const 1 + get_local $2 + i32.load + get_local $2 + get_local $2 + i32.const 11 + i32.add + tee_local $1 + i32.load8_s + tee_local $7 + i32.const 0 + i32.lt_s + tee_local $9 + select + get_local $2 + i32.load offset=4 + get_local $7 + i32.const 255 + i32.and + get_local $9 + select + call $_proxy_log + get_local $1 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_2 + get_local $2 + i32.load + call $__ZdlPv + end ;; $if_2 + get_local $6 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_3 + get_local $3 + i32.load + call $__ZdlPv + end ;; $if_3 + get_local $4 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if_4 + get_local $4 + i32.load + call $__ZdlPv + end ;; $if_4 + get_local $0 + i64.const 3 + call $_proxy_recordMetric + get_local $4 + i32.const 16 + call $__Znwm + tee_local $1 + i32.store + get_local $4 + i32.const -2147483632 + i32.store offset=8 + get_local $4 + i32.const 14 + i32.store offset=4 + get_local $1 + i32.const 3816 + i64.load align=1 + i64.store align=1 + get_local $1 + i32.const 3824 + i32.load align=1 + i32.store offset=8 align=1 + get_local $1 + i32.const 3828 + i32.load16_s align=1 + i32.store16 offset=12 align=1 + get_local $1 + i32.const 0 + i32.store8 offset=14 + get_local $3 + get_local $0 + call $_proxy_getMetric + call $__ZNSt3__29to_stringEy + get_local $2 + get_local $4 + get_local $3 + i32.load + get_local $3 + get_local $3 + i32.const 11 + i32.add + tee_local $1 + i32.load8_s + tee_local $0 + i32.const 0 + i32.lt_s + tee_local $6 + select + get_local $3 + i32.load offset=4 + get_local $0 + i32.const 255 + i32.and + get_local $6 + select + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $2 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + i32.const 2 + get_local $2 + i32.load + get_local $2 + get_local $2 + i32.const 11 + i32.add + tee_local $0 + i32.load8_s + tee_local $6 + i32.const 0 + i32.lt_s + tee_local $7 + select + get_local $2 + i32.load offset=4 + get_local $6 + i32.const 255 + i32.and + get_local $7 + select + call $_proxy_log + get_local $0 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_5 + get_local $2 + i32.load + call $__ZdlPv + end ;; $if_5 + get_local $1 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_6 + get_local $3 + i32.load + call $__ZdlPv + end ;; $if_6 + get_local $4 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if_7 + get_local $4 + i32.load + call $__ZdlPv + end ;; $if_7 + get_local $4 + i32.const 16 + call $__Znwm + tee_local $0 + i32.store + get_local $4 + i32.const -2147483632 + i32.store offset=8 + get_local $4 + i32.const 12 + i32.store offset=4 + get_local $0 + i32.const 3831 + i64.load align=1 + i64.store align=1 + get_local $0 + i32.const 3839 + i32.load align=1 + i32.store offset=8 align=1 + get_local $0 + i32.const 0 + i32.store8 offset=12 + get_local $3 + get_local $5 + call $_proxy_getMetric + call $__ZNSt3__29to_stringEy + get_local $2 + get_local $4 + get_local $3 + i32.load + get_local $3 + get_local $3 + i32.const 11 + i32.add + tee_local $1 + i32.load8_s + tee_local $0 + i32.const 0 + i32.lt_s + tee_local $5 + select + get_local $3 + i32.load offset=4 + get_local $0 + i32.const 255 + i32.and + get_local $5 + select + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $2 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + i32.const 3 + get_local $2 + i32.load + get_local $2 + get_local $2 + i32.const 11 + i32.add + tee_local $0 + i32.load8_s + tee_local $5 + i32.const 0 + i32.lt_s + tee_local $6 + select + get_local $2 + i32.load offset=4 + get_local $5 + i32.const 255 + i32.and + get_local $6 + select + call $_proxy_log + get_local $0 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_8 + get_local $2 + i32.load + call $__ZdlPv + end ;; $if_8 + get_local $1 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_9 + get_local $3 + i32.load + call $__ZdlPv + end ;; $if_9 + get_local $4 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if_10 + get_local $4 + i32.load + call $__ZdlPv + end ;; $if_10 + get_local $4 + i32.const 32 + call $__Znwm + tee_local $0 + i32.store + get_local $4 + i32.const -2147483616 + i32.store offset=8 + get_local $4 + i32.const 16 + i32.store offset=4 + get_local $0 + i32.const 3844 + i64.load align=1 + i64.store align=1 + get_local $0 + i32.const 3852 + i64.load align=1 + i64.store offset=8 align=1 + get_local $0 + i32.const 0 + i32.store8 offset=16 + get_local $3 + get_local $8 + call $_proxy_getMetric + call $__ZNSt3__29to_stringEy + get_local $2 + get_local $4 + get_local $3 + i32.load + get_local $3 + get_local $3 + i32.const 11 + i32.add + tee_local $1 + i32.load8_s + tee_local $0 + i32.const 0 + i32.lt_s + tee_local $5 + select + get_local $3 + i32.load offset=4 + get_local $0 + i32.const 255 + i32.and + get_local $5 + select + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm + tee_local $0 + i64.load align=4 + i64.store align=4 + get_local $2 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + i32.const 4 + get_local $2 + i32.load + get_local $2 + get_local $2 + i32.const 11 + i32.add + tee_local $0 + i32.load8_s + tee_local $5 + i32.const 0 + i32.lt_s + tee_local $8 + select + get_local $2 + i32.load offset=4 + get_local $5 + i32.const 255 + i32.and + get_local $8 + select + call $_proxy_log + get_local $0 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_11 + get_local $2 + i32.load + call $__ZdlPv + end ;; $if_11 + get_local $1 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_12 + get_local $3 + i32.load + call $__ZdlPv + end ;; $if_12 + get_local $4 + i32.load8_s offset=11 + i32.const 0 + i32.ge_s + if $if_13 + get_local $3 + set_global $27 + return + end ;; $if_13 + get_local $4 + i32.load + call $__ZdlPv + get_local $3 + set_global $27 + ) + + (func $___errno_location (type $3) + (result i32) + i32.const 3984 + ) + + (func $_memchr (type $9) + (param $0 i32) + (param $1 i32) + (result i32) + (local $2 i32) + block $block + block $block_0 + block $block_1 + get_local $1 + i32.const 0 + i32.ne + tee_local $2 + get_local $0 + i32.const 3 + i32.and + i32.const 0 + i32.ne + i32.and + if $if + loop $loop + get_local $0 + i32.load8_u + i32.eqz + br_if $block_1 + get_local $1 + i32.const -1 + i32.add + tee_local $1 + i32.const 0 + i32.ne + tee_local $2 + get_local $0 + i32.const 1 + i32.add + tee_local $0 + i32.const 3 + i32.and + i32.const 0 + i32.ne + i32.and + br_if $loop + end ;; $loop + end ;; $if + get_local $2 + i32.eqz + br_if $block_0 + end ;; $block_1 + get_local $0 + i32.load8_u + i32.eqz + if $if_0 + get_local $1 + if $if_1 + br $block + else + br $block_0 + end ;; $if_1 + unreachable + end ;; $if_0 + block $block_2 + block $block_3 + get_local $1 + i32.const 3 + i32.le_u + br_if $block_3 + loop $loop_0 + get_local $0 + i32.load + tee_local $2 + i32.const -16843009 + i32.add + get_local $2 + i32.const -2139062144 + i32.and + i32.const -2139062144 + i32.xor + i32.and + i32.eqz + if $if_2 + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const -4 + i32.add + tee_local $1 + i32.const 3 + i32.gt_u + br_if $loop_0 + br $block_3 + end ;; $if_2 + end ;; $loop_0 + br $block_2 + end ;; $block_3 + get_local $1 + i32.eqz + br_if $block_0 + end ;; $block_2 + loop $loop_1 + get_local $0 + i32.load8_u + i32.eqz + br_if $block + get_local $0 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const -1 + i32.add + tee_local $1 + br_if $loop_1 + end ;; $loop_1 + end ;; $block_0 + i32.const 0 + set_local $0 + end ;; $block + get_local $0 + ) + + (func $_isdigit (type $4) + (param $0 i32) + (result i32) + get_local $0 + i32.const -48 + i32.add + i32.const 10 + i32.lt_u + ) + + (func $_vsnprintf (type $10) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + get_global $27 + set_local $4 + get_global $27 + i32.const 128 + i32.add + set_global $27 + get_local $4 + i32.const 124 + i32.add + set_local $5 + get_local $4 + i32.const 3408 + i64.load align=4 + i64.store align=4 + get_local $4 + i32.const 3416 + i64.load align=4 + i64.store offset=8 align=4 + get_local $4 + i32.const 3424 + i64.load align=4 + i64.store offset=16 align=4 + get_local $4 + i32.const 3432 + i64.load align=4 + i64.store offset=24 align=4 + get_local $4 + i32.const 3440 + i64.load align=4 + i64.store offset=32 align=4 + get_local $4 + i32.const 3448 + i64.load align=4 + i64.store offset=40 align=4 + get_local $4 + i32.const 3456 + i64.load align=4 + i64.store offset=48 align=4 + get_local $4 + i32.const 3464 + i64.load align=4 + i64.store offset=56 align=4 + get_local $4 + i32.const -64 + i32.sub + i32.const 3472 + i64.load align=4 + i64.store align=4 + get_local $4 + i32.const 3480 + i64.load align=4 + i64.store offset=72 align=4 + get_local $4 + i32.const 3488 + i64.load align=4 + i64.store offset=80 align=4 + get_local $4 + i32.const 3496 + i64.load align=4 + i64.store offset=88 align=4 + get_local $4 + i32.const 3504 + i64.load align=4 + i64.store offset=96 align=4 + get_local $4 + i32.const 3512 + i64.load align=4 + i64.store offset=104 align=4 + get_local $4 + i32.const 3520 + i64.load align=4 + i64.store offset=112 align=4 + get_local $4 + i32.const 3528 + i32.load + i32.store offset=120 + block $block + block $block_0 + get_local $1 + i32.const -1 + i32.add + i32.const 2147483646 + i32.le_u + br_if $block_0 + get_local $1 + if $if (result i32) + call $___errno_location + i32.const 75 + i32.store + i32.const -1 + else + get_local $5 + set_local $0 + i32.const 1 + set_local $1 + br $block_0 + end ;; $if + set_local $0 + br $block + end ;; $block_0 + get_local $4 + i32.const -2 + get_local $0 + i32.sub + tee_local $5 + get_local $1 + get_local $1 + get_local $5 + i32.gt_u + select + tee_local $1 + i32.store offset=48 + get_local $4 + i32.const 20 + i32.add + tee_local $5 + get_local $0 + i32.store + get_local $4 + get_local $0 + i32.store offset=44 + get_local $4 + i32.const 16 + i32.add + tee_local $6 + get_local $0 + get_local $1 + i32.add + tee_local $0 + i32.store + get_local $4 + get_local $0 + i32.store offset=28 + get_local $4 + get_local $2 + get_local $3 + call $_vfprintf + set_local $0 + get_local $1 + if $if_0 + get_local $5 + i32.load + tee_local $1 + get_local $1 + get_local $6 + i32.load + i32.eq + i32.const 31 + i32.shl + i32.const 31 + i32.shr_s + i32.add + i32.const 0 + i32.store8 + end ;; $if_0 + end ;; $block + get_local $4 + set_global $27 + get_local $0 + ) + + (func $_vfprintf (type $0) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + get_global $27 + set_local $3 + get_global $27 + i32.const 224 + i32.add + set_global $27 + get_local $3 + i32.const 160 + i32.add + tee_local $4 + i64.const 0 + i64.store + get_local $4 + i64.const 0 + i64.store offset=8 + get_local $4 + i64.const 0 + i64.store offset=16 + get_local $4 + i64.const 0 + i64.store offset=24 + get_local $4 + i64.const 0 + i64.store offset=32 + get_local $3 + i32.const 208 + i32.add + tee_local $5 + get_local $2 + i32.load + i32.store + i32.const 0 + get_local $1 + get_local $5 + get_local $3 + i32.const 80 + i32.add + tee_local $2 + get_local $4 + call $_printf_core + i32.const 0 + i32.lt_s + if $if (result i32) + i32.const -1 + else + get_local $0 + i32.load offset=76 + i32.const -1 + i32.gt_s + if $if_0 (result i32) + call $___lockfile + else + i32.const 0 + end ;; $if_0 + set_local $11 + get_local $0 + i32.load + set_local $6 + get_local $0 + i32.load8_s offset=74 + i32.const 1 + i32.lt_s + if $if_1 + get_local $0 + get_local $6 + i32.const -33 + i32.and + i32.store + end ;; $if_1 + get_local $0 + i32.const 48 + i32.add + tee_local $7 + i32.load + if $if_2 + get_local $0 + get_local $1 + get_local $5 + get_local $2 + get_local $4 + call $_printf_core + set_local $1 + else + get_local $0 + i32.const 44 + i32.add + tee_local $8 + i32.load + set_local $9 + get_local $8 + get_local $3 + i32.store + get_local $0 + i32.const 28 + i32.add + tee_local $12 + get_local $3 + i32.store + get_local $0 + i32.const 20 + i32.add + tee_local $10 + get_local $3 + i32.store + get_local $7 + i32.const 80 + i32.store + get_local $0 + i32.const 16 + i32.add + tee_local $13 + get_local $3 + i32.const 80 + i32.add + i32.store + get_local $0 + get_local $1 + get_local $5 + get_local $2 + get_local $4 + call $_printf_core + set_local $1 + get_local $9 + if $if_3 + get_local $0 + i32.load offset=36 + set_local $2 + get_local $0 + i32.const 0 + i32.const 0 + get_local $2 + i32.const 1 + i32.and + call_indirect $20 (type $0) + drop + get_local $1 + i32.const -1 + get_local $10 + i32.load + select + set_local $1 + get_local $8 + get_local $9 + i32.store + get_local $7 + i32.const 0 + i32.store + get_local $13 + i32.const 0 + i32.store + get_local $12 + i32.const 0 + i32.store + get_local $10 + i32.const 0 + i32.store + end ;; $if_3 + end ;; $if_2 + get_local $0 + get_local $0 + i32.load + tee_local $2 + get_local $6 + i32.const 32 + i32.and + i32.or + i32.store + get_local $11 + if $if_4 + call $___unlockfile + end ;; $if_4 + i32.const -1 + get_local $1 + get_local $2 + i32.const 32 + i32.and + select + end ;; $if + set_local $0 + get_local $3 + set_global $27 + get_local $0 + ) + + (func $_printf_core (type $11) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i64) + get_global $27 + set_local $17 + get_global $27 + i32.const -64 + i32.sub + set_global $27 + get_local $17 + i32.const 40 + i32.add + set_local $11 + get_local $17 + i32.const 60 + i32.add + set_local $22 + get_local $17 + i32.const 56 + i32.add + tee_local $12 + get_local $1 + i32.store + get_local $0 + i32.const 0 + i32.ne + set_local $19 + get_local $17 + i32.const 40 + i32.add + tee_local $21 + set_local $20 + get_local $17 + i32.const 39 + i32.add + set_local $23 + get_local $17 + i32.const 48 + i32.add + tee_local $24 + i32.const 4 + i32.add + set_local $25 + i32.const 0 + set_local $1 + block $block + block $block_0 + loop $loop + block $block_1 + loop $loop_0 + get_local $8 + i32.const -1 + i32.gt_s + if $if + get_local $1 + i32.const 2147483647 + get_local $8 + i32.sub + i32.gt_s + if $if_0 (result i32) + call $___errno_location + i32.const 75 + i32.store + i32.const -1 + else + get_local $1 + get_local $8 + i32.add + end ;; $if_0 + set_local $8 + end ;; $if + get_local $12 + i32.load + tee_local $10 + i32.load8_s + tee_local $9 + i32.eqz + br_if $block_0 + get_local $10 + set_local $1 + block $block_2 + block $block_3 + loop $loop_1 + block $block_4 + block $block_5 + get_local $9 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + br_table + $block_4 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 + $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 $block_5 + $block_5 $block_5 $block_5 $block_5 $block_5 $block_3 + $block_5 ;; default + end ;; $block_5 + get_local $12 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.store + get_local $1 + i32.load8_s + set_local $9 + br $loop_1 + end ;; $block_4 + end ;; $loop_1 + br $block_2 + end ;; $block_3 + get_local $1 + set_local $9 + loop $loop_2 + get_local $9 + i32.load8_s offset=1 + i32.const 37 + i32.ne + br_if $block_2 + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $12 + get_local $9 + i32.const 2 + i32.add + tee_local $9 + i32.store + get_local $9 + i32.load8_s + i32.const 37 + i32.eq + br_if $loop_2 + end ;; $loop_2 + end ;; $block_2 + get_local $1 + get_local $10 + i32.sub + set_local $1 + get_local $19 + if $if_1 + get_local $0 + get_local $10 + get_local $1 + call $_out_281 + end ;; $if_1 + get_local $1 + br_if $loop_0 + end ;; $loop_0 + get_local $12 + i32.load + i32.load8_s offset=1 + call $_isdigit + i32.eqz + set_local $9 + get_local $12 + get_local $12 + i32.load + tee_local $1 + get_local $9 + if $if_2 (result i32) + i32.const -1 + set_local $14 + i32.const 1 + else + get_local $1 + i32.load8_s offset=2 + i32.const 36 + i32.eq + if $if_3 (result i32) + get_local $1 + i32.load8_s offset=1 + i32.const -48 + i32.add + set_local $14 + i32.const 1 + set_local $5 + i32.const 3 + else + i32.const -1 + set_local $14 + i32.const 1 + end ;; $if_3 + end ;; $if_2 + i32.add + tee_local $1 + i32.store + get_local $1 + i32.load8_s + tee_local $6 + i32.const -32 + i32.add + tee_local $9 + i32.const 31 + i32.gt_u + i32.const 1 + get_local $9 + i32.shl + i32.const 75913 + i32.and + i32.eqz + i32.or + if $if_4 + i32.const 0 + set_local $9 + else + i32.const 0 + set_local $6 + loop $loop_3 + get_local $6 + i32.const 1 + get_local $9 + i32.shl + i32.or + set_local $9 + get_local $12 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.store + get_local $1 + i32.load8_s + tee_local $6 + i32.const -32 + i32.add + tee_local $7 + i32.const 31 + i32.gt_u + i32.const 1 + get_local $7 + i32.shl + i32.const 75913 + i32.and + i32.eqz + i32.or + i32.eqz + if $if_5 + get_local $9 + set_local $6 + get_local $7 + set_local $9 + br $loop_3 + end ;; $if_5 + end ;; $loop_3 + end ;; $if_4 + get_local $6 + i32.const 255 + i32.and + i32.const 42 + i32.eq + if $if_6 + get_local $12 + block $block_6 (result i32) + block $block_7 + get_local $1 + i32.load8_s offset=1 + call $_isdigit + i32.eqz + br_if $block_7 + get_local $12 + i32.load + tee_local $7 + i32.load8_s offset=2 + i32.const 36 + i32.ne + br_if $block_7 + get_local $7 + i32.const 1 + i32.add + tee_local $1 + i32.load8_s + i32.const -48 + i32.add + i32.const 2 + i32.shl + get_local $4 + i32.add + i32.const 10 + i32.store + get_local $1 + i32.load8_s + i32.const -48 + i32.add + i32.const 3 + i32.shl + get_local $3 + i32.add + i64.load + i32.wrap/i64 + set_local $1 + i32.const 1 + set_local $6 + get_local $7 + i32.const 3 + i32.add + br $block_6 + end ;; $block_7 + get_local $5 + if $if_7 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_7 + get_local $19 + if $if_8 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $5 + i32.load + set_local $1 + get_local $2 + get_local $5 + i32.const 4 + i32.add + i32.store + else + i32.const 0 + set_local $1 + end ;; $if_8 + i32.const 0 + set_local $6 + get_local $12 + i32.load + i32.const 1 + i32.add + end ;; $block_6 + tee_local $5 + i32.store + i32.const 0 + get_local $1 + i32.sub + get_local $1 + get_local $1 + i32.const 0 + i32.lt_s + tee_local $1 + select + set_local $15 + get_local $9 + i32.const 8192 + i32.or + get_local $9 + get_local $1 + select + set_local $16 + get_local $6 + set_local $9 + else + get_local $12 + call $_getint_282 + tee_local $15 + i32.const 0 + i32.lt_s + if $if_9 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_9 + get_local $9 + set_local $16 + get_local $5 + set_local $9 + get_local $12 + i32.load + set_local $5 + end ;; $if_6 + get_local $5 + i32.load8_s + i32.const 46 + i32.eq + if $if_10 + block $block_8 + get_local $5 + i32.const 1 + i32.add + tee_local $1 + i32.load8_s + i32.const 42 + i32.ne + if $if_11 + get_local $12 + get_local $1 + i32.store + get_local $12 + call $_getint_282 + set_local $1 + get_local $12 + i32.load + set_local $5 + br $block_8 + end ;; $if_11 + get_local $5 + i32.load8_s offset=2 + call $_isdigit + if $if_12 + get_local $12 + i32.load + tee_local $5 + i32.load8_s offset=3 + i32.const 36 + i32.eq + if $if_13 + get_local $5 + i32.const 2 + i32.add + tee_local $1 + i32.load8_s + i32.const -48 + i32.add + i32.const 2 + i32.shl + get_local $4 + i32.add + i32.const 10 + i32.store + get_local $1 + i32.load8_s + i32.const -48 + i32.add + i32.const 3 + i32.shl + get_local $3 + i32.add + i64.load + i32.wrap/i64 + set_local $1 + get_local $12 + get_local $5 + i32.const 4 + i32.add + tee_local $5 + i32.store + br $block_8 + end ;; $if_13 + end ;; $if_12 + get_local $9 + if $if_14 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_14 + get_local $19 + if $if_15 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $5 + i32.load + set_local $1 + get_local $2 + get_local $5 + i32.const 4 + i32.add + i32.store + else + i32.const 0 + set_local $1 + end ;; $if_15 + get_local $12 + get_local $12 + i32.load + i32.const 2 + i32.add + tee_local $5 + i32.store + end ;; $block_8 + else + i32.const -1 + set_local $1 + end ;; $if_10 + i32.const 0 + set_local $13 + loop $loop_4 + get_local $5 + i32.load8_s + i32.const -65 + i32.add + i32.const 57 + i32.gt_u + if $if_16 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_16 + get_local $12 + get_local $5 + i32.const 1 + i32.add + tee_local $6 + i32.store + get_local $5 + i32.load8_s + get_local $13 + i32.const 58 + i32.mul + i32.add + i32.load8_s offset=959 + tee_local $7 + i32.const 255 + i32.and + tee_local $5 + i32.const -1 + i32.add + i32.const 8 + i32.lt_u + if $if_17 + get_local $5 + set_local $13 + get_local $6 + set_local $5 + br $loop_4 + end ;; $if_17 + end ;; $loop_4 + get_local $7 + i32.eqz + if $if_18 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_18 + get_local $14 + i32.const -1 + i32.gt_s + set_local $18 + block $block_9 + block $block_10 + get_local $7 + i32.const 19 + i32.eq + if $if_19 + get_local $18 + if $if_20 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_20 + else + block $block_11 + get_local $18 + if $if_21 + get_local $14 + i32.const 2 + i32.shl + get_local $4 + i32.add + get_local $5 + i32.store + get_local $11 + get_local $14 + i32.const 3 + i32.shl + get_local $3 + i32.add + i64.load + i64.store + br $block_11 + end ;; $if_21 + get_local $19 + i32.eqz + if $if_22 + i32.const 0 + set_local $8 + br $block_1 + end ;; $if_22 + get_local $11 + get_local $5 + get_local $2 + call $_pop_arg_284 + get_local $12 + i32.load + set_local $6 + br $block_10 + end ;; $block_11 + end ;; $if_19 + get_local $19 + br_if $block_10 + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_10 + get_local $16 + i32.const -65537 + i32.and + tee_local $7 + get_local $16 + get_local $16 + i32.const 8192 + i32.and + select + set_local $5 + block $block_12 + block $block_13 + block $block_14 + block $block_15 + block $block_16 + block $block_17 + block $block_18 + block $block_19 + block $block_20 + block $block_21 + block $block_22 + block $block_23 + block $block_24 + block $block_25 + block $block_26 + block $block_27 + block $block_28 + block $block_29 + block $block_30 + get_local $6 + i32.const -1 + i32.add + i32.load8_s + tee_local $6 + i32.const -33 + i32.and + get_local $6 + get_local $6 + i32.const 15 + i32.and + i32.const 3 + i32.eq + get_local $13 + i32.const 0 + i32.ne + i32.and + select + tee_local $6 + i32.const 65 + i32.sub + br_table + $block_20 $block_19 $block_22 $block_19 $block_20 $block_20 $block_20 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 + $block_19 $block_19 $block_21 $block_19 $block_19 $block_19 $block_19 $block_18 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 $block_19 + $block_20 $block_19 $block_25 $block_27 $block_20 $block_20 $block_20 $block_19 $block_27 $block_19 $block_19 $block_19 $block_24 $block_30 $block_28 $block_29 + $block_19 $block_19 $block_23 $block_19 $block_26 $block_19 $block_19 $block_18 + $block_19 ;; default + end ;; $block_30 + block $block_31 + block $block_32 + block $block_33 + block $block_34 + block $block_35 + block $block_36 + block $block_37 + block $block_38 + get_local $13 + i32.const 255 + i32.and + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + br_table + $block_38 $block_37 $block_36 $block_35 $block_34 $block_31 $block_33 $block_32 + $block_31 ;; default + end ;; $block_38 + get_local $11 + i32.load + get_local $8 + i32.store + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_37 + get_local $11 + i32.load + get_local $8 + i32.store + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_36 + get_local $11 + i32.load + get_local $8 + i64.extend_s/i32 + i64.store + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_35 + get_local $11 + i32.load + get_local $8 + i32.store16 + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_34 + get_local $11 + i32.load + get_local $8 + i32.store8 + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_33 + get_local $11 + i32.load + get_local $8 + i32.store + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_32 + get_local $11 + i32.load + get_local $8 + i64.extend_s/i32 + i64.store + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_31 + i32.const 0 + set_local $1 + br $block_9 + end ;; $block_29 + i32.const 120 + set_local $6 + get_local $1 + i32.const 8 + get_local $1 + i32.const 8 + i32.gt_u + select + set_local $1 + get_local $5 + i32.const 8 + i32.or + set_local $5 + br $block_18 + end ;; $block_28 + get_local $20 + get_local $11 + i64.load + tee_local $26 + get_local $21 + call $_fmt_o + tee_local $13 + i32.sub + set_local $6 + i32.const 0 + set_local $10 + i32.const 3861 + set_local $7 + get_local $1 + get_local $6 + i32.const 1 + i32.add + get_local $5 + i32.const 8 + i32.and + i32.eqz + get_local $1 + get_local $6 + i32.gt_s + i32.or + select + set_local $1 + br $block_14 + end ;; $block_27 + get_local $11 + i64.load + tee_local $26 + i64.const 0 + i64.lt_s + if $if_23 + get_local $11 + i64.const 0 + get_local $26 + i64.sub + tee_local $26 + i64.store + i32.const 1 + set_local $10 + i32.const 3861 + set_local $7 + else + get_local $5 + i32.const 2049 + i32.and + i32.const 0 + i32.ne + set_local $10 + i32.const 3862 + i32.const 3863 + i32.const 3861 + get_local $5 + i32.const 1 + i32.and + select + get_local $5 + i32.const 2048 + i32.and + select + set_local $7 + end ;; $if_23 + br $block_17 + end ;; $block_26 + i32.const 0 + set_local $10 + i32.const 3861 + set_local $7 + get_local $11 + i64.load + set_local $26 + br $block_17 + end ;; $block_25 + get_local $23 + get_local $11 + i64.load + i64.store8 + get_local $23 + set_local $6 + i32.const 0 + set_local $10 + i32.const 3861 + set_local $16 + i32.const 1 + set_local $13 + get_local $7 + set_local $5 + get_local $20 + set_local $1 + br $block_12 + end ;; $block_24 + call $___errno_location + i32.load + call $_strerror + set_local $6 + br $block_16 + end ;; $block_23 + get_local $11 + i32.load + tee_local $5 + i32.const 3871 + get_local $5 + select + set_local $6 + br $block_16 + end ;; $block_22 + get_local $24 + get_local $11 + i64.load + i64.store32 + get_local $25 + i32.const 0 + i32.store + get_local $11 + get_local $24 + i32.store + i32.const -1 + set_local $10 + br $block_15 + end ;; $block_21 + get_local $1 + if $if_24 + get_local $1 + set_local $10 + br $block_15 + else + get_local $0 + i32.const 32 + get_local $15 + i32.const 0 + get_local $5 + call $_pad_287 + i32.const 0 + set_local $1 + br $block_13 + end ;; $if_24 + unreachable + end ;; $block_20 + get_local $0 + get_local $11 + f64.load + get_local $15 + get_local $1 + get_local $5 + get_local $6 + call $_fmt_fp + set_local $1 + br $block_9 + end ;; $block_19 + get_local $10 + set_local $6 + i32.const 0 + set_local $10 + i32.const 3861 + set_local $16 + get_local $1 + set_local $13 + get_local $20 + set_local $1 + br $block_12 + end ;; $block_18 + get_local $11 + i64.load + tee_local $26 + get_local $21 + get_local $6 + i32.const 32 + i32.and + call $_fmt_x + set_local $13 + i32.const 0 + i32.const 2 + get_local $5 + i32.const 8 + i32.and + i32.eqz + get_local $26 + i64.const 0 + i64.eq + i32.or + tee_local $7 + select + set_local $10 + i32.const 3861 + get_local $6 + i32.const 4 + i32.shr_u + i32.const 3861 + i32.add + get_local $7 + select + set_local $7 + br $block_14 + end ;; $block_17 + get_local $26 + get_local $21 + call $_fmt_u + set_local $13 + br $block_14 + end ;; $block_16 + get_local $6 + get_local $1 + call $_memchr + tee_local $14 + i32.eqz + set_local $18 + i32.const 0 + set_local $10 + i32.const 3861 + set_local $16 + get_local $1 + get_local $14 + get_local $6 + i32.sub + get_local $18 + select + set_local $13 + get_local $7 + set_local $5 + get_local $1 + get_local $6 + i32.add + get_local $14 + get_local $18 + select + set_local $1 + br $block_12 + end ;; $block_15 + get_local $11 + i32.load + set_local $6 + i32.const 0 + set_local $1 + block $block_39 + block $block_40 + loop $loop_5 + get_local $6 + i32.load + tee_local $7 + if $if_25 + get_local $22 + get_local $7 + call $_wctomb + tee_local $7 + i32.const 0 + i32.lt_s + tee_local $13 + get_local $7 + get_local $10 + get_local $1 + i32.sub + i32.gt_u + i32.or + br_if $block_40 + get_local $6 + i32.const 4 + i32.add + set_local $6 + get_local $10 + get_local $1 + get_local $7 + i32.add + tee_local $1 + i32.gt_u + br_if $loop_5 + end ;; $if_25 + end ;; $loop_5 + br $block_39 + end ;; $block_40 + get_local $13 + if $if_26 + i32.const -1 + set_local $8 + br $block_1 + end ;; $if_26 + end ;; $block_39 + get_local $0 + i32.const 32 + get_local $15 + get_local $1 + get_local $5 + call $_pad_287 + get_local $1 + if $if_27 + get_local $11 + i32.load + set_local $6 + i32.const 0 + set_local $10 + loop $loop_6 + get_local $6 + i32.load + tee_local $7 + i32.eqz + br_if $block_13 + get_local $10 + get_local $22 + get_local $7 + call $_wctomb + tee_local $7 + i32.add + tee_local $10 + get_local $1 + i32.gt_s + br_if $block_13 + get_local $6 + i32.const 4 + i32.add + set_local $6 + get_local $0 + get_local $22 + get_local $7 + call $_out_281 + get_local $10 + get_local $1 + i32.lt_u + br_if $loop_6 + end ;; $loop_6 + br $block_13 + else + i32.const 0 + set_local $1 + br $block_13 + end ;; $if_27 + unreachable + end ;; $block_14 + get_local $13 + get_local $21 + get_local $26 + i64.const 0 + i64.ne + tee_local $14 + get_local $1 + i32.const 0 + i32.ne + i32.or + tee_local $18 + select + set_local $6 + get_local $7 + set_local $16 + get_local $1 + get_local $20 + get_local $13 + i32.sub + get_local $14 + i32.const 1 + i32.xor + i32.const 1 + i32.and + i32.add + tee_local $7 + get_local $1 + get_local $7 + i32.gt_s + select + i32.const 0 + get_local $18 + select + set_local $13 + get_local $5 + i32.const -65537 + i32.and + get_local $5 + get_local $1 + i32.const -1 + i32.gt_s + select + set_local $5 + get_local $20 + set_local $1 + br $block_12 + end ;; $block_13 + get_local $0 + i32.const 32 + get_local $15 + get_local $1 + get_local $5 + i32.const 8192 + i32.xor + call $_pad_287 + get_local $15 + get_local $1 + get_local $15 + get_local $1 + i32.gt_s + select + set_local $1 + br $block_9 + end ;; $block_12 + get_local $0 + i32.const 32 + get_local $10 + get_local $1 + get_local $6 + i32.sub + tee_local $14 + get_local $13 + get_local $13 + get_local $14 + i32.lt_s + select + tee_local $13 + i32.add + tee_local $7 + get_local $15 + get_local $15 + get_local $7 + i32.lt_s + select + tee_local $1 + get_local $7 + get_local $5 + call $_pad_287 + get_local $0 + get_local $16 + get_local $10 + call $_out_281 + get_local $0 + i32.const 48 + get_local $1 + get_local $7 + get_local $5 + i32.const 65536 + i32.xor + call $_pad_287 + get_local $0 + i32.const 48 + get_local $13 + get_local $14 + i32.const 0 + call $_pad_287 + get_local $0 + get_local $6 + get_local $14 + call $_out_281 + get_local $0 + i32.const 32 + get_local $1 + get_local $7 + get_local $5 + i32.const 8192 + i32.xor + call $_pad_287 + end ;; $block_9 + get_local $9 + set_local $5 + br $loop + end ;; $block_1 + end ;; $loop + br $block + end ;; $block_0 + get_local $0 + i32.eqz + if $if_28 + get_local $5 + if $if_29 (result i32) + i32.const 1 + set_local $0 + loop $loop_7 + get_local $0 + i32.const 2 + i32.shl + get_local $4 + i32.add + i32.load + tee_local $1 + if $if_30 + get_local $0 + i32.const 3 + i32.shl + get_local $3 + i32.add + get_local $1 + get_local $2 + call $_pop_arg_284 + get_local $0 + i32.const 1 + i32.add + tee_local $0 + i32.const 10 + i32.lt_u + br_if $loop_7 + i32.const 1 + set_local $8 + br $block + end ;; $if_30 + end ;; $loop_7 + loop $loop_8 (result i32) + get_local $0 + i32.const 2 + i32.shl + get_local $4 + i32.add + i32.load + if $if_31 + i32.const -1 + set_local $8 + br $block + end ;; $if_31 + get_local $0 + i32.const 1 + i32.add + tee_local $0 + i32.const 10 + i32.lt_u + br_if $loop_8 + i32.const 1 + end ;; $loop_8 + else + i32.const 0 + end ;; $if_29 + set_local $8 + end ;; $if_28 + end ;; $block + get_local $17 + set_global $27 + get_local $8 + ) + + (func $___lockfile (type $3) + (result i32) + i32.const 1 + ) + + (func $___unlockfile (type $1) + nop + ) + + (func $_out_281 (type $7) + (param $0 i32) + (param $1 i32) + (param $2 i32) + get_local $0 + i32.load + i32.const 32 + i32.and + i32.eqz + if $if + get_local $1 + get_local $2 + get_local $0 + call $___fwritex + drop + end ;; $if + ) + + (func $_getint_282 (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + get_local $0 + i32.load + i32.load8_s + call $_isdigit + if $if + loop $loop + get_local $0 + i32.load + tee_local $2 + i32.load8_s + get_local $1 + i32.const 10 + i32.mul + i32.const -48 + i32.add + i32.add + set_local $1 + get_local $0 + get_local $2 + i32.const 1 + i32.add + tee_local $2 + i32.store + get_local $2 + i32.load8_s + call $_isdigit + br_if $loop + end ;; $loop + end ;; $if + get_local $1 + ) + + (func $_pop_arg_284 (type $7) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 f64) + get_local $1 + i32.const 20 + i32.le_u + if $if + block $block + block $block_0 + block $block_1 + block $block_2 + block $block_3 + block $block_4 + block $block_5 + block $block_6 + block $block_7 + block $block_8 + block $block_9 + get_local $1 + i32.const 9 + i32.sub + br_table + $block_9 $block_8 $block_7 $block_6 $block_5 $block_4 $block_3 $block_2 $block_1 $block_0 + $block ;; default + end ;; $block_9 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i32.store + br $block + end ;; $block_8 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i64.extend_s/i32 + i64.store + br $block + end ;; $block_7 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i64.extend_u/i32 + i64.store + br $block + end ;; $block_6 + get_local $2 + i32.load + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $1 + i64.load + set_local $4 + get_local $2 + get_local $1 + i32.const 8 + i32.add + i32.store + get_local $0 + get_local $4 + i64.store + br $block + end ;; $block_5 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i32.const 65535 + i32.and + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i64.extend_s/i32 + i64.store + br $block + end ;; $block_4 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i32.const 65535 + i32.and + i64.extend_u/i32 + i64.store + br $block + end ;; $block_3 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i32.const 255 + i32.and + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i64.extend_s/i32 + i64.store + br $block + end ;; $block_2 + get_local $2 + i32.load + i32.const 3 + i32.add + i32.const -4 + i32.and + tee_local $1 + i32.load + set_local $3 + get_local $2 + get_local $1 + i32.const 4 + i32.add + i32.store + get_local $0 + get_local $3 + i32.const 255 + i32.and + i64.extend_u/i32 + i64.store + br $block + end ;; $block_1 + get_local $2 + i32.load + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $1 + f64.load + set_local $5 + get_local $2 + get_local $1 + i32.const 8 + i32.add + i32.store + get_local $0 + get_local $5 + f64.store + br $block + end ;; $block_0 + get_local $2 + i32.load + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $1 + f64.load + set_local $5 + get_local $2 + get_local $1 + i32.const 8 + i32.add + i32.store + get_local $0 + get_local $5 + f64.store + end ;; $block + end ;; $if + ) + + (func $_fmt_x (type $12) + (param $0 i64) + (param $1 i32) + (param $2 i32) + (result i32) + get_local $0 + i64.const 0 + i64.ne + if $if + loop $loop + get_local $1 + i32.const -1 + i32.add + tee_local $1 + get_local $2 + get_local $0 + i32.wrap/i64 + i32.const 15 + i32.and + i32.const 1488 + i32.add + i32.load8_u + i32.or + i32.store8 + get_local $0 + i64.const 4 + i64.shr_u + tee_local $0 + i64.const 0 + i64.ne + br_if $loop + end ;; $loop + end ;; $if + get_local $1 + ) + + (func $_fmt_o (type $13) + (param $0 i64) + (param $1 i32) + (result i32) + get_local $0 + i64.const 0 + i64.ne + if $if + loop $loop + get_local $1 + i32.const -1 + i32.add + tee_local $1 + get_local $0 + i32.wrap/i64 + i32.const 7 + i32.and + i32.const 48 + i32.or + i32.store8 + get_local $0 + i64.const 3 + i64.shr_u + tee_local $0 + i64.const 0 + i64.ne + br_if $loop + end ;; $loop + end ;; $if + get_local $1 + ) + + (func $_fmt_u (type $13) + (param $0 i64) + (param $1 i32) + (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + get_local $0 + i32.wrap/i64 + set_local $2 + get_local $0 + i64.const 4294967295 + i64.gt_u + if $if + loop $loop + get_local $1 + i32.const -1 + i32.add + tee_local $1 + get_local $0 + get_local $0 + i64.const 10 + i64.div_u + tee_local $4 + i64.const 10 + i64.mul + i64.sub + i32.wrap/i64 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store8 + get_local $0 + i64.const 42949672959 + i64.gt_u + if $if_0 + get_local $4 + set_local $0 + br $loop + end ;; $if_0 + end ;; $loop + get_local $4 + i32.wrap/i64 + set_local $2 + end ;; $if + get_local $2 + if $if_1 + loop $loop_0 + get_local $1 + i32.const -1 + i32.add + tee_local $1 + get_local $2 + get_local $2 + i32.const 10 + i32.div_u + tee_local $3 + i32.const 10 + i32.mul + i32.sub + i32.const 48 + i32.or + i32.store8 + get_local $2 + i32.const 10 + i32.ge_u + if $if_2 + get_local $3 + set_local $2 + br $loop_0 + end ;; $if_2 + end ;; $loop_0 + end ;; $if_1 + get_local $1 + ) + + (func $_strerror (type $4) + (param $0 i32) + (result i32) + get_local $0 + call $___pthread_self_43 + i32.load offset=188 + call $___strerror_l + ) + + (func $_pad_287 (type $14) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (local $5 i32) + get_global $27 + set_local $5 + get_global $27 + i32.const 256 + i32.add + set_global $27 + get_local $4 + i32.const 73728 + i32.and + i32.eqz + get_local $2 + get_local $3 + i32.gt_s + i32.and + if $if + get_local $5 + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + get_local $2 + get_local $3 + i32.sub + tee_local $1 + i32.const 256 + get_local $1 + i32.const 256 + i32.lt_u + select + call $_memset + drop + get_local $1 + i32.const 255 + i32.gt_u + if $if_0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + loop $loop + get_local $0 + get_local $5 + i32.const 256 + call $_out_281 + get_local $1 + i32.const -256 + i32.add + tee_local $1 + i32.const 255 + i32.gt_u + br_if $loop + end ;; $loop + get_local $2 + i32.const 255 + i32.and + set_local $1 + end ;; $if_0 + get_local $0 + get_local $5 + get_local $1 + call $_out_281 + end ;; $if + get_local $5 + set_global $27 + ) + + (func $_wctomb (type $9) + (param $0 i32) + (param $1 i32) + (result i32) + get_local $0 + if $if (result i32) + get_local $0 + get_local $1 + call $_wcrtomb + else + i32.const 0 + end ;; $if + ) + + (func $_fmt_fp (type $15) + (param $0 i32) + (param $1 f64) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (param $5 i32) + (result i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i64) + (local $25 i64) + (local $26 i64) + (local $27 f64) + get_global $27 + set_local $20 + get_global $27 + i32.const 560 + i32.add + set_global $27 + get_local $20 + i32.const 32 + i32.add + set_local $7 + get_local $20 + tee_local $13 + set_local $17 + get_local $13 + i32.const 536 + i32.add + tee_local $11 + i32.const 0 + i32.store + get_local $13 + i32.const 540 + i32.add + tee_local $9 + i32.const 12 + i32.add + set_local $15 + get_local $1 + call $___DOUBLE_BITS + tee_local $24 + i64.const 0 + i64.lt_s + if $if (result i32) + get_local $1 + f64.neg + tee_local $1 + call $___DOUBLE_BITS + set_local $24 + i32.const 3878 + set_local $18 + i32.const 1 + else + i32.const 3881 + i32.const 3884 + i32.const 3879 + get_local $4 + i32.const 1 + i32.and + select + get_local $4 + i32.const 2048 + i32.and + select + set_local $18 + get_local $4 + i32.const 2049 + i32.and + i32.const 0 + i32.ne + end ;; $if + set_local $19 + get_local $24 + i64.const 9218868437227405312 + i64.and + i64.const 9218868437227405312 + i64.eq + if $if_0 (result i32) + i32.const 3905 + i32.const 3909 + get_local $5 + i32.const 32 + i32.and + i32.const 0 + i32.ne + tee_local $3 + select + i32.const 3897 + i32.const 3901 + get_local $3 + select + get_local $1 + get_local $1 + f64.ne + select + set_local $5 + get_local $0 + i32.const 32 + get_local $2 + get_local $19 + i32.const 3 + i32.add + tee_local $3 + get_local $4 + i32.const -65537 + i32.and + call $_pad_287 + get_local $0 + get_local $18 + get_local $19 + call $_out_281 + get_local $0 + get_local $5 + i32.const 3 + call $_out_281 + get_local $0 + i32.const 32 + get_local $2 + get_local $3 + get_local $4 + i32.const 8192 + i32.xor + call $_pad_287 + get_local $3 + else + block $block (result i32) + get_local $1 + get_local $11 + call $_frexpl + f64.const 0x1.0000000000000p+1 + f64.mul + tee_local $1 + f64.const 0x0.0000000000000p-1023 + f64.ne + tee_local $6 + if $if_1 + get_local $11 + get_local $11 + i32.load + i32.const -1 + i32.add + i32.store + end ;; $if_1 + get_local $5 + i32.const 32 + i32.or + tee_local $14 + i32.const 97 + i32.eq + if $if_2 + get_local $18 + i32.const 9 + i32.add + get_local $18 + get_local $5 + i32.const 32 + i32.and + tee_local $12 + select + set_local $8 + i32.const 12 + get_local $3 + i32.sub + tee_local $7 + i32.eqz + get_local $3 + i32.const 11 + i32.gt_u + i32.or + i32.eqz + if $if_3 + f64.const 0x1.0000000000000p+3 + set_local $27 + loop $loop + get_local $27 + f64.const 0x1.0000000000000p+4 + f64.mul + set_local $27 + get_local $7 + i32.const -1 + i32.add + tee_local $7 + br_if $loop + end ;; $loop + get_local $8 + i32.load8_s + i32.const 45 + i32.eq + if $if_4 (result f64) + get_local $27 + get_local $1 + f64.neg + get_local $27 + f64.sub + f64.add + f64.neg + else + get_local $1 + get_local $27 + f64.add + get_local $27 + f64.sub + end ;; $if_4 + set_local $1 + end ;; $if_3 + get_local $19 + i32.const 2 + i32.or + set_local $10 + get_local $15 + i32.const 0 + get_local $11 + i32.load + tee_local $6 + i32.sub + get_local $6 + get_local $6 + i32.const 0 + i32.lt_s + select + i64.extend_s/i32 + get_local $15 + call $_fmt_u + tee_local $7 + i32.eq + if $if_5 + get_local $9 + i32.const 11 + i32.add + tee_local $7 + i32.const 48 + i32.store8 + end ;; $if_5 + get_local $7 + i32.const -1 + i32.add + get_local $6 + i32.const 31 + i32.shr_s + i32.const 2 + i32.and + i32.const 43 + i32.add + i32.store8 + get_local $7 + i32.const -2 + i32.add + tee_local $7 + get_local $5 + i32.const 15 + i32.add + i32.store8 + get_local $3 + i32.const 1 + i32.lt_s + set_local $9 + get_local $4 + i32.const 8 + i32.and + i32.eqz + set_local $11 + get_local $13 + set_local $5 + loop $loop_0 + get_local $5 + get_local $12 + get_local $1 + i32.trunc_s/f64 + tee_local $6 + i32.const 1488 + i32.add + i32.load8_u + i32.or + i32.store8 + get_local $1 + get_local $6 + f64.convert_s/i32 + f64.sub + f64.const 0x1.0000000000000p+4 + f64.mul + set_local $1 + get_local $5 + i32.const 1 + i32.add + tee_local $6 + get_local $17 + i32.sub + i32.const 1 + i32.eq + if $if_6 (result i32) + get_local $11 + get_local $9 + get_local $1 + f64.const 0x0.0000000000000p-1023 + f64.eq + i32.and + i32.and + if $if_7 (result i32) + get_local $6 + else + get_local $6 + i32.const 46 + i32.store8 + get_local $5 + i32.const 2 + i32.add + end ;; $if_7 + else + get_local $6 + end ;; $if_6 + set_local $5 + get_local $1 + f64.const 0x0.0000000000000p-1023 + f64.ne + br_if $loop_0 + end ;; $loop_0 + block $block_0 (result i32) + block $block_1 + get_local $3 + i32.eqz + br_if $block_1 + get_local $5 + i32.const -2 + get_local $17 + i32.sub + i32.add + get_local $3 + i32.ge_s + br_if $block_1 + get_local $15 + get_local $3 + i32.const 2 + i32.add + i32.add + get_local $7 + i32.sub + set_local $9 + get_local $7 + br $block_0 + end ;; $block_1 + get_local $5 + get_local $15 + get_local $17 + i32.sub + get_local $7 + i32.sub + i32.add + set_local $9 + get_local $7 + end ;; $block_0 + set_local $3 + get_local $0 + i32.const 32 + get_local $2 + get_local $9 + get_local $10 + i32.add + tee_local $6 + get_local $4 + call $_pad_287 + get_local $0 + get_local $8 + get_local $10 + call $_out_281 + get_local $0 + i32.const 48 + get_local $2 + get_local $6 + get_local $4 + i32.const 65536 + i32.xor + call $_pad_287 + get_local $0 + get_local $13 + get_local $5 + get_local $17 + i32.sub + tee_local $5 + call $_out_281 + get_local $0 + i32.const 48 + get_local $9 + get_local $5 + get_local $15 + get_local $3 + i32.sub + tee_local $3 + i32.add + i32.sub + i32.const 0 + i32.const 0 + call $_pad_287 + get_local $0 + get_local $7 + get_local $3 + call $_out_281 + get_local $0 + i32.const 32 + get_local $2 + get_local $6 + get_local $4 + i32.const 8192 + i32.xor + call $_pad_287 + get_local $6 + br $block + end ;; $if_2 + get_local $6 + if $if_8 + get_local $11 + get_local $11 + i32.load + i32.const -28 + i32.add + tee_local $8 + i32.store + get_local $1 + f64.const 0x1.0000000000000p+28 + f64.mul + set_local $1 + else + get_local $11 + i32.load + set_local $8 + end ;; $if_8 + get_local $7 + get_local $7 + i32.const 288 + i32.add + get_local $8 + i32.const 0 + i32.lt_s + select + tee_local $9 + set_local $6 + loop $loop_1 + get_local $6 + get_local $1 + i32.trunc_u/f64 + tee_local $7 + i32.store + get_local $6 + i32.const 4 + i32.add + set_local $6 + get_local $1 + get_local $7 + f64.convert_u/i32 + f64.sub + f64.const 0x1.dcd6500000000p+29 + f64.mul + tee_local $1 + f64.const 0x0.0000000000000p-1023 + f64.ne + br_if $loop_1 + end ;; $loop_1 + get_local $8 + i32.const 0 + i32.gt_s + if $if_9 + get_local $9 + set_local $7 + loop $loop_2 + get_local $8 + i32.const 29 + get_local $8 + i32.const 29 + i32.lt_s + select + set_local $12 + get_local $6 + i32.const -4 + i32.add + tee_local $8 + get_local $7 + i32.ge_u + if $if_10 + get_local $12 + i64.extend_u/i32 + set_local $25 + i32.const 0 + set_local $10 + loop $loop_3 + get_local $10 + i64.extend_u/i32 + get_local $8 + i32.load + i64.extend_u/i32 + get_local $25 + i64.shl + i64.add + tee_local $26 + i64.const 1000000000 + i64.div_u + set_local $24 + get_local $8 + get_local $26 + get_local $24 + i64.const 1000000000 + i64.mul + i64.sub + i64.store32 + get_local $24 + i32.wrap/i64 + set_local $10 + get_local $8 + i32.const -4 + i32.add + tee_local $8 + get_local $7 + i32.ge_u + br_if $loop_3 + end ;; $loop_3 + get_local $10 + if $if_11 + get_local $7 + i32.const -4 + i32.add + tee_local $7 + get_local $10 + i32.store + end ;; $if_11 + end ;; $if_10 + get_local $6 + get_local $7 + i32.gt_u + if $if_12 + block $block_2 + loop $loop_4 (result i32) + get_local $6 + i32.const -4 + i32.add + tee_local $8 + i32.load + br_if $block_2 + get_local $8 + get_local $7 + i32.gt_u + if $if_13 (result i32) + get_local $8 + set_local $6 + br $loop_4 + else + get_local $8 + end ;; $if_13 + end ;; $loop_4 + set_local $6 + end ;; $block_2 + end ;; $if_12 + get_local $11 + get_local $11 + i32.load + get_local $12 + i32.sub + tee_local $8 + i32.store + get_local $8 + i32.const 0 + i32.gt_s + br_if $loop_2 + end ;; $loop_2 + else + get_local $9 + set_local $7 + end ;; $if_9 + i32.const 6 + get_local $3 + get_local $3 + i32.const 0 + i32.lt_s + select + set_local $12 + get_local $8 + i32.const 0 + i32.lt_s + if $if_14 + get_local $12 + i32.const 25 + i32.add + i32.const 9 + i32.div_s + i32.const 1 + i32.add + set_local $16 + get_local $14 + i32.const 102 + i32.eq + set_local $21 + get_local $6 + set_local $3 + loop $loop_5 + i32.const 0 + get_local $8 + i32.sub + tee_local $6 + i32.const 9 + get_local $6 + i32.const 9 + i32.lt_s + select + set_local $10 + get_local $9 + get_local $7 + get_local $3 + i32.lt_u + if $if_15 (result i32) + i32.const 1 + get_local $10 + i32.shl + i32.const -1 + i32.add + set_local $22 + i32.const 1000000000 + get_local $10 + i32.shr_u + set_local $23 + i32.const 0 + set_local $8 + get_local $7 + set_local $6 + loop $loop_6 + get_local $6 + get_local $8 + get_local $6 + i32.load + tee_local $8 + get_local $10 + i32.shr_u + i32.add + i32.store + get_local $23 + get_local $8 + get_local $22 + i32.and + i32.mul + set_local $8 + get_local $6 + i32.const 4 + i32.add + tee_local $6 + get_local $3 + i32.lt_u + br_if $loop_6 + end ;; $loop_6 + get_local $7 + get_local $7 + i32.const 4 + i32.add + get_local $7 + i32.load + select + set_local $7 + get_local $8 + if $if_16 + get_local $3 + get_local $8 + i32.store + get_local $3 + i32.const 4 + i32.add + set_local $6 + else + get_local $3 + set_local $6 + end ;; $if_16 + get_local $7 + else + get_local $3 + set_local $6 + get_local $7 + get_local $7 + i32.const 4 + i32.add + get_local $7 + i32.load + select + end ;; $if_15 + tee_local $3 + get_local $21 + select + tee_local $7 + get_local $16 + i32.const 2 + i32.shl + i32.add + get_local $6 + get_local $6 + get_local $7 + i32.sub + i32.const 2 + i32.shr_s + get_local $16 + i32.gt_s + select + set_local $8 + get_local $11 + get_local $10 + get_local $11 + i32.load + i32.add + tee_local $6 + i32.store + get_local $6 + i32.const 0 + i32.lt_s + if $if_17 + get_local $3 + set_local $7 + get_local $8 + set_local $3 + get_local $6 + set_local $8 + br $loop_5 + end ;; $if_17 + end ;; $loop_5 + else + get_local $7 + set_local $3 + get_local $6 + set_local $8 + end ;; $if_14 + get_local $9 + set_local $11 + get_local $3 + get_local $8 + i32.lt_u + if $if_18 + get_local $11 + get_local $3 + i32.sub + i32.const 2 + i32.shr_s + i32.const 9 + i32.mul + set_local $7 + get_local $3 + i32.load + tee_local $9 + i32.const 10 + i32.ge_u + if $if_19 + i32.const 10 + set_local $6 + loop $loop_7 + get_local $7 + i32.const 1 + i32.add + set_local $7 + get_local $9 + get_local $6 + i32.const 10 + i32.mul + tee_local $6 + i32.ge_u + br_if $loop_7 + end ;; $loop_7 + end ;; $if_19 + else + i32.const 0 + set_local $7 + end ;; $if_18 + get_local $12 + i32.const 0 + get_local $7 + get_local $14 + i32.const 102 + i32.eq + select + i32.sub + get_local $14 + i32.const 103 + i32.eq + tee_local $21 + get_local $12 + i32.const 0 + i32.ne + tee_local $22 + i32.and + i32.const 31 + i32.shl + i32.const 31 + i32.shr_s + i32.add + tee_local $6 + get_local $8 + get_local $11 + i32.sub + i32.const 2 + i32.shr_s + i32.const 9 + i32.mul + i32.const -9 + i32.add + i32.lt_s + if $if_20 (result i32) + get_local $6 + i32.const 9216 + i32.add + tee_local $6 + i32.const 9 + i32.div_s + set_local $14 + get_local $6 + get_local $14 + i32.const 9 + i32.mul + i32.sub + tee_local $6 + i32.const 8 + i32.lt_s + if $if_21 + i32.const 10 + set_local $9 + loop $loop_8 + get_local $6 + i32.const 1 + i32.add + set_local $10 + get_local $9 + i32.const 10 + i32.mul + set_local $9 + get_local $6 + i32.const 7 + i32.lt_s + if $if_22 + get_local $10 + set_local $6 + br $loop_8 + end ;; $if_22 + end ;; $loop_8 + else + i32.const 10 + set_local $9 + end ;; $if_21 + get_local $14 + i32.const 2 + i32.shl + get_local $11 + i32.add + i32.const -4092 + i32.add + tee_local $6 + i32.load + tee_local $14 + get_local $9 + i32.div_u + set_local $16 + get_local $8 + get_local $6 + i32.const 4 + i32.add + i32.eq + tee_local $23 + get_local $14 + get_local $9 + get_local $16 + i32.mul + i32.sub + tee_local $10 + i32.eqz + i32.and + i32.eqz + if $if_23 + f64.const 0x1.0000000000001p+53 + f64.const 0x1.0000000000000p+53 + get_local $16 + i32.const 1 + i32.and + select + set_local $1 + f64.const 0x1.0000000000000p-1 + f64.const 0x1.0000000000000p-0 + f64.const 0x1.8000000000000p-0 + get_local $23 + get_local $10 + get_local $9 + i32.const 1 + i32.shr_u + tee_local $16 + i32.eq + i32.and + select + get_local $10 + get_local $16 + i32.lt_u + select + set_local $27 + get_local $19 + if $if_24 + get_local $27 + f64.neg + get_local $27 + get_local $18 + i32.load8_s + i32.const 45 + i32.eq + tee_local $16 + select + set_local $27 + get_local $1 + f64.neg + get_local $1 + get_local $16 + select + set_local $1 + end ;; $if_24 + get_local $6 + get_local $14 + get_local $10 + i32.sub + tee_local $10 + i32.store + get_local $1 + get_local $27 + f64.add + get_local $1 + f64.ne + if $if_25 + get_local $6 + get_local $9 + get_local $10 + i32.add + tee_local $7 + i32.store + get_local $7 + i32.const 999999999 + i32.gt_u + if $if_26 + loop $loop_9 + get_local $6 + i32.const 0 + i32.store + get_local $6 + i32.const -4 + i32.add + tee_local $6 + get_local $3 + i32.lt_u + if $if_27 + get_local $3 + i32.const -4 + i32.add + tee_local $3 + i32.const 0 + i32.store + end ;; $if_27 + get_local $6 + get_local $6 + i32.load + i32.const 1 + i32.add + tee_local $7 + i32.store + get_local $7 + i32.const 999999999 + i32.gt_u + br_if $loop_9 + end ;; $loop_9 + end ;; $if_26 + get_local $11 + get_local $3 + i32.sub + i32.const 2 + i32.shr_s + i32.const 9 + i32.mul + set_local $7 + get_local $3 + i32.load + tee_local $10 + i32.const 10 + i32.ge_u + if $if_28 + i32.const 10 + set_local $9 + loop $loop_10 + get_local $7 + i32.const 1 + i32.add + set_local $7 + get_local $10 + get_local $9 + i32.const 10 + i32.mul + tee_local $9 + i32.ge_u + br_if $loop_10 + end ;; $loop_10 + end ;; $if_28 + end ;; $if_25 + end ;; $if_23 + get_local $7 + set_local $10 + get_local $6 + i32.const 4 + i32.add + tee_local $7 + get_local $8 + get_local $8 + get_local $7 + i32.gt_u + select + set_local $6 + get_local $3 + else + get_local $7 + set_local $10 + get_local $8 + set_local $6 + get_local $3 + end ;; $if_20 + set_local $7 + get_local $6 + get_local $7 + i32.gt_u + if $if_29 (result i32) + block $block_3 (result i32) + get_local $6 + set_local $3 + loop $loop_11 (result i32) + get_local $3 + i32.const -4 + i32.add + tee_local $6 + i32.load + if $if_30 + get_local $3 + set_local $6 + i32.const 1 + br $block_3 + end ;; $if_30 + get_local $6 + get_local $7 + i32.gt_u + if $if_31 (result i32) + get_local $6 + set_local $3 + br $loop_11 + else + i32.const 0 + end ;; $if_31 + end ;; $loop_11 + end ;; $block_3 + else + i32.const 0 + end ;; $if_29 + set_local $14 + get_local $21 + if $if_32 (result i32) + get_local $22 + i32.const 1 + i32.xor + i32.const 1 + i32.and + get_local $12 + i32.add + tee_local $3 + get_local $10 + i32.gt_s + get_local $10 + i32.const -5 + i32.gt_s + i32.and + if $if_33 (result i32) + get_local $3 + i32.const -1 + i32.add + get_local $10 + i32.sub + set_local $8 + get_local $5 + i32.const -1 + i32.add + else + get_local $3 + i32.const -1 + i32.add + set_local $8 + get_local $5 + i32.const -2 + i32.add + end ;; $if_33 + set_local $5 + get_local $4 + i32.const 8 + i32.and + if $if_34 (result i32) + get_local $8 + else + get_local $14 + if $if_35 + get_local $6 + i32.const -4 + i32.add + i32.load + tee_local $12 + if $if_36 + get_local $12 + i32.const 10 + i32.rem_u + if $if_37 + i32.const 0 + set_local $3 + else + i32.const 0 + set_local $3 + i32.const 10 + set_local $9 + loop $loop_12 + get_local $3 + i32.const 1 + i32.add + set_local $3 + get_local $12 + get_local $9 + i32.const 10 + i32.mul + tee_local $9 + i32.rem_u + i32.eqz + br_if $loop_12 + end ;; $loop_12 + end ;; $if_37 + else + i32.const 9 + set_local $3 + end ;; $if_36 + else + i32.const 9 + set_local $3 + end ;; $if_35 + get_local $6 + get_local $11 + i32.sub + i32.const 2 + i32.shr_s + i32.const 9 + i32.mul + i32.const -9 + i32.add + set_local $9 + get_local $5 + i32.const 32 + i32.or + i32.const 102 + i32.eq + if $if_38 (result i32) + get_local $8 + get_local $9 + get_local $3 + i32.sub + tee_local $3 + i32.const 0 + get_local $3 + i32.const 0 + i32.gt_s + select + tee_local $3 + get_local $8 + get_local $3 + i32.lt_s + select + else + get_local $8 + get_local $9 + get_local $10 + i32.add + get_local $3 + i32.sub + tee_local $3 + i32.const 0 + get_local $3 + i32.const 0 + i32.gt_s + select + tee_local $3 + get_local $8 + get_local $3 + i32.lt_s + select + end ;; $if_38 + end ;; $if_34 + else + get_local $12 + end ;; $if_32 + set_local $3 + i32.const 0 + get_local $10 + i32.sub + set_local $9 + get_local $5 + i32.const 32 + i32.or + i32.const 102 + i32.eq + tee_local $12 + if $if_39 (result i32) + i32.const 0 + set_local $8 + get_local $10 + i32.const 0 + get_local $10 + i32.const 0 + i32.gt_s + select + else + get_local $15 + get_local $9 + get_local $10 + get_local $10 + i32.const 0 + i32.lt_s + select + i64.extend_s/i32 + get_local $15 + call $_fmt_u + tee_local $9 + i32.sub + i32.const 2 + i32.lt_s + if $if_40 + loop $loop_13 + get_local $9 + i32.const -1 + i32.add + tee_local $9 + i32.const 48 + i32.store8 + get_local $15 + get_local $9 + i32.sub + i32.const 2 + i32.lt_s + br_if $loop_13 + end ;; $loop_13 + end ;; $if_40 + get_local $9 + i32.const -1 + i32.add + get_local $10 + i32.const 31 + i32.shr_s + i32.const 2 + i32.and + i32.const 43 + i32.add + i32.store8 + get_local $9 + i32.const -2 + i32.add + tee_local $8 + get_local $5 + i32.store8 + get_local $15 + get_local $8 + i32.sub + end ;; $if_39 + set_local $5 + get_local $0 + i32.const 32 + get_local $2 + get_local $3 + get_local $19 + i32.const 1 + i32.add + i32.add + i32.const 1 + get_local $4 + i32.const 3 + i32.shr_u + i32.const 1 + i32.and + get_local $3 + i32.const 0 + i32.ne + tee_local $16 + select + i32.add + get_local $5 + i32.add + tee_local $10 + get_local $4 + call $_pad_287 + get_local $0 + get_local $18 + get_local $19 + call $_out_281 + get_local $0 + i32.const 48 + get_local $2 + get_local $10 + get_local $4 + i32.const 65536 + i32.xor + call $_pad_287 + get_local $12 + if $if_41 + get_local $13 + i32.const 9 + i32.add + tee_local $9 + set_local $8 + get_local $13 + i32.const 8 + i32.add + set_local $15 + get_local $11 + get_local $7 + get_local $7 + get_local $11 + i32.gt_u + select + tee_local $12 + set_local $7 + loop $loop_14 + get_local $7 + i32.load + i64.extend_u/i32 + get_local $9 + call $_fmt_u + set_local $5 + get_local $7 + get_local $12 + i32.eq + if $if_42 + get_local $5 + get_local $9 + i32.eq + if $if_43 + get_local $15 + i32.const 48 + i32.store8 + get_local $15 + set_local $5 + end ;; $if_43 + else + get_local $5 + get_local $13 + i32.gt_u + if $if_44 + get_local $13 + i32.const 48 + get_local $5 + get_local $17 + i32.sub + call $_memset + drop + loop $loop_15 + get_local $5 + i32.const -1 + i32.add + tee_local $5 + get_local $13 + i32.gt_u + br_if $loop_15 + end ;; $loop_15 + end ;; $if_44 + end ;; $if_42 + get_local $0 + get_local $5 + get_local $8 + get_local $5 + i32.sub + call $_out_281 + get_local $7 + i32.const 4 + i32.add + tee_local $5 + get_local $11 + i32.le_u + if $if_45 + get_local $5 + set_local $7 + br $loop_14 + end ;; $if_45 + end ;; $loop_14 + get_local $4 + i32.const 8 + i32.and + i32.eqz + get_local $16 + i32.const 1 + i32.xor + i32.and + i32.eqz + if $if_46 + get_local $0 + i32.const 3913 + i32.const 1 + call $_out_281 + end ;; $if_46 + get_local $5 + get_local $6 + i32.lt_u + get_local $3 + i32.const 0 + i32.gt_s + i32.and + if $if_47 + loop $loop_16 (result i32) + get_local $5 + i32.load + i64.extend_u/i32 + get_local $9 + call $_fmt_u + tee_local $7 + get_local $13 + i32.gt_u + if $if_48 + get_local $13 + i32.const 48 + get_local $7 + get_local $17 + i32.sub + call $_memset + drop + loop $loop_17 + get_local $7 + i32.const -1 + i32.add + tee_local $7 + get_local $13 + i32.gt_u + br_if $loop_17 + end ;; $loop_17 + end ;; $if_48 + get_local $0 + get_local $7 + get_local $3 + i32.const 9 + get_local $3 + i32.const 9 + i32.lt_s + select + call $_out_281 + get_local $3 + i32.const -9 + i32.add + set_local $7 + get_local $5 + i32.const 4 + i32.add + tee_local $5 + get_local $6 + i32.lt_u + get_local $3 + i32.const 9 + i32.gt_s + i32.and + if $if_49 (result i32) + get_local $7 + set_local $3 + br $loop_16 + else + get_local $7 + end ;; $if_49 + end ;; $loop_16 + set_local $3 + end ;; $if_47 + get_local $0 + i32.const 48 + get_local $3 + i32.const 9 + i32.add + i32.const 9 + i32.const 0 + call $_pad_287 + else + get_local $7 + get_local $6 + get_local $7 + i32.const 4 + i32.add + get_local $14 + select + tee_local $19 + i32.lt_u + get_local $3 + i32.const -1 + i32.gt_s + i32.and + if $if_50 + get_local $4 + i32.const 8 + i32.and + i32.eqz + set_local $18 + get_local $13 + i32.const 9 + i32.add + tee_local $11 + set_local $14 + i32.const 0 + get_local $17 + i32.sub + set_local $17 + get_local $13 + i32.const 8 + i32.add + set_local $12 + get_local $3 + set_local $5 + get_local $7 + set_local $6 + loop $loop_18 (result i32) + get_local $11 + get_local $6 + i32.load + i64.extend_u/i32 + get_local $11 + call $_fmt_u + tee_local $3 + i32.eq + if $if_51 + get_local $12 + i32.const 48 + i32.store8 + get_local $12 + set_local $3 + end ;; $if_51 + block $block_4 + get_local $6 + get_local $7 + i32.eq + if $if_52 + get_local $3 + i32.const 1 + i32.add + set_local $9 + get_local $0 + get_local $3 + i32.const 1 + call $_out_281 + get_local $18 + get_local $5 + i32.const 1 + i32.lt_s + i32.and + if $if_53 + get_local $9 + set_local $3 + br $block_4 + end ;; $if_53 + get_local $0 + i32.const 3913 + i32.const 1 + call $_out_281 + get_local $9 + set_local $3 + else + get_local $3 + get_local $13 + i32.le_u + br_if $block_4 + get_local $13 + i32.const 48 + get_local $3 + get_local $17 + i32.add + call $_memset + drop + loop $loop_19 + get_local $3 + i32.const -1 + i32.add + tee_local $3 + get_local $13 + i32.gt_u + br_if $loop_19 + end ;; $loop_19 + end ;; $if_52 + end ;; $block_4 + get_local $0 + get_local $3 + get_local $14 + get_local $3 + i32.sub + tee_local $3 + get_local $5 + get_local $5 + get_local $3 + i32.gt_s + select + call $_out_281 + get_local $6 + i32.const 4 + i32.add + tee_local $6 + get_local $19 + i32.lt_u + get_local $5 + get_local $3 + i32.sub + tee_local $5 + i32.const -1 + i32.gt_s + i32.and + br_if $loop_18 + get_local $5 + end ;; $loop_18 + set_local $3 + end ;; $if_50 + get_local $0 + i32.const 48 + get_local $3 + i32.const 18 + i32.add + i32.const 18 + i32.const 0 + call $_pad_287 + get_local $0 + get_local $8 + get_local $15 + get_local $8 + i32.sub + call $_out_281 + end ;; $if_41 + get_local $0 + i32.const 32 + get_local $2 + get_local $10 + get_local $4 + i32.const 8192 + i32.xor + call $_pad_287 + get_local $10 + end ;; $block + end ;; $if_0 + set_local $0 + get_local $20 + set_global $27 + get_local $2 + get_local $0 + get_local $0 + get_local $2 + i32.lt_s + select + ) + + (func $___DOUBLE_BITS (type $16) + (param $0 f64) + (result i64) + get_local $0 + i64.reinterpret/f64 + ) + + (func $_frexpl (type $17) + (param $0 f64) + (param $1 i32) + (result f64) + get_local $0 + get_local $1 + call $_frexp + ) + + (func $_frexp (type $17) + (param $0 f64) + (param $1 i32) + (result f64) + (local $2 i32) + (local $3 i64) + (local $4 i64) + block $block + block $block_0 + get_local $0 + i64.reinterpret/f64 + tee_local $3 + i64.const 52 + i64.shr_u + tee_local $4 + i32.wrap/i64 + i32.const 2047 + i32.and + tee_local $2 + if $if + get_local $2 + i32.const 2047 + i32.eq + if $if_0 + br $block + else + br $block_0 + end ;; $if_0 + unreachable + end ;; $if + get_local $1 + get_local $0 + f64.const 0x0.0000000000000p-1023 + f64.ne + if $if_1 (result i32) + get_local $0 + f64.const 0x1.0000000000000p+64 + f64.mul + get_local $1 + call $_frexp + set_local $0 + get_local $1 + i32.load + i32.const -64 + i32.add + else + i32.const 0 + end ;; $if_1 + i32.store + br $block + end ;; $block_0 + get_local $1 + get_local $4 + i32.wrap/i64 + i32.const 2047 + i32.and + i32.const -1022 + i32.add + i32.store + get_local $3 + i64.const -9218868437227405313 + i64.and + i64.const 4602678819172646912 + i64.or + f64.reinterpret/i64 + set_local $0 + end ;; $block + get_local $0 + ) + + (func $_wcrtomb (type $9) + (param $0 i32) + (param $1 i32) + (result i32) + get_local $0 + if $if (result i32) + block $block (result i32) + get_local $1 + i32.const 128 + i32.lt_u + if $if_0 + get_local $0 + get_local $1 + i32.store8 + i32.const 1 + br $block + end ;; $if_0 + call $___pthread_self_43 + i32.load offset=188 + i32.load + i32.eqz + if $if_1 + get_local $1 + i32.const -128 + i32.and + i32.const 57216 + i32.eq + if $if_2 + get_local $0 + get_local $1 + i32.store8 + i32.const 1 + br $block + else + call $___errno_location + i32.const 84 + i32.store + i32.const -1 + br $block + end ;; $if_2 + unreachable + end ;; $if_1 + get_local $1 + i32.const 2048 + i32.lt_u + if $if_3 + get_local $0 + get_local $1 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + i32.store8 + get_local $0 + get_local $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=1 + i32.const 2 + br $block + end ;; $if_3 + get_local $1 + i32.const -8192 + i32.and + i32.const 57344 + i32.eq + get_local $1 + i32.const 55296 + i32.lt_u + i32.or + if $if_4 + get_local $0 + get_local $1 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + i32.store8 + get_local $0 + get_local $1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=1 + get_local $0 + get_local $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + i32.const 3 + br $block + end ;; $if_4 + get_local $1 + i32.const -65536 + i32.add + i32.const 1048576 + i32.lt_u + if $if_5 (result i32) + get_local $0 + get_local $1 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + i32.store8 + get_local $0 + get_local $1 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=1 + get_local $0 + get_local $1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + get_local $0 + get_local $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=3 + i32.const 4 + else + call $___errno_location + i32.const 84 + i32.store + i32.const -1 + end ;; $if_5 + end ;; $block + else + i32.const 1 + end ;; $if + ) + + (func $___pthread_self_43 (type $3) + (result i32) + call $_pthread_self + ) + + (func $_pthread_self (type $3) + (result i32) + i32.const 3532 + ) + + (func $___strerror_l (type $9) + (param $0 i32) + (param $1 i32) + (result i32) + (local $2 i32) + (local $3 i32) + block $block + block $block_0 + loop $loop + get_local $2 + i32.const 1504 + i32.add + i32.load8_u + get_local $0 + i32.ne + if $if + get_local $2 + i32.const 1 + i32.add + tee_local $2 + i32.const 87 + i32.ne + br_if $loop + i32.const 87 + set_local $2 + br $block_0 + end ;; $if + end ;; $loop + get_local $2 + br_if $block_0 + i32.const 1600 + set_local $0 + br $block + end ;; $block_0 + i32.const 1600 + set_local $0 + loop $loop_0 + get_local $0 + set_local $3 + loop $loop_1 + get_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + i32.load8_s + if $if_0 + get_local $0 + set_local $3 + br $loop_1 + end ;; $if_0 + end ;; $loop_1 + get_local $2 + i32.const -1 + i32.add + tee_local $2 + br_if $loop_0 + end ;; $loop_0 + end ;; $block + get_local $0 + get_local $1 + i32.load offset=20 + call $___lctrans + ) + + (func $___lctrans (type $9) + (param $0 i32) + (param $1 i32) + (result i32) + get_local $0 + get_local $1 + call $___lctrans_impl + ) + + (func $___lctrans_impl (type $9) + (param $0 i32) + (param $1 i32) + (result i32) + (local $2 i32) + get_local $1 + if $if (result i32) + get_local $1 + i32.load + get_local $1 + i32.load offset=4 + get_local $0 + call $___mo_lookup + else + i32.const 0 + end ;; $if + tee_local $2 + get_local $0 + get_local $2 + select + ) + + (func $___mo_lookup (type $0) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load + i32.const 1794895138 + i32.add + tee_local $6 + call $_swapc + set_local $4 + get_local $0 + i32.load offset=12 + get_local $6 + call $_swapc + set_local $5 + get_local $0 + i32.load offset=16 + get_local $6 + call $_swapc + set_local $3 + get_local $4 + get_local $1 + i32.const 2 + i32.shr_u + i32.lt_u + if $if (result i32) + get_local $5 + get_local $1 + get_local $4 + i32.const 2 + i32.shl + i32.sub + tee_local $7 + i32.lt_u + get_local $3 + get_local $7 + i32.lt_u + i32.and + if $if_0 (result i32) + get_local $3 + get_local $5 + i32.or + i32.const 3 + i32.and + if $if_1 (result i32) + i32.const 0 + else + block $block (result i32) + get_local $5 + i32.const 2 + i32.shr_u + set_local $9 + get_local $3 + i32.const 2 + i32.shr_u + set_local $10 + i32.const 0 + set_local $5 + loop $loop + block $block_0 + get_local $9 + get_local $5 + get_local $4 + i32.const 1 + i32.shr_u + tee_local $7 + i32.add + tee_local $11 + i32.const 1 + i32.shl + tee_local $12 + i32.add + tee_local $3 + i32.const 2 + i32.shl + get_local $0 + i32.add + i32.load + get_local $6 + call $_swapc + set_local $8 + i32.const 0 + get_local $3 + i32.const 1 + i32.add + i32.const 2 + i32.shl + get_local $0 + i32.add + i32.load + get_local $6 + call $_swapc + tee_local $3 + get_local $1 + i32.lt_u + get_local $8 + get_local $1 + get_local $3 + i32.sub + i32.lt_u + i32.and + i32.eqz + br_if $block + drop + i32.const 0 + get_local $0 + get_local $3 + get_local $8 + i32.add + i32.add + i32.load8_s + br_if $block + drop + get_local $2 + get_local $0 + get_local $3 + i32.add + call $_strcmp + tee_local $3 + i32.eqz + br_if $block_0 + get_local $3 + i32.const 0 + i32.lt_s + set_local $3 + i32.const 0 + get_local $4 + i32.const 1 + i32.eq + br_if $block + drop + get_local $5 + get_local $11 + get_local $3 + select + set_local $5 + get_local $7 + get_local $4 + get_local $7 + i32.sub + get_local $3 + select + set_local $4 + br $loop + end ;; $block_0 + end ;; $loop + get_local $10 + get_local $12 + i32.add + tee_local $2 + i32.const 2 + i32.shl + get_local $0 + i32.add + i32.load + get_local $6 + call $_swapc + set_local $4 + get_local $2 + i32.const 1 + i32.add + i32.const 2 + i32.shl + get_local $0 + i32.add + i32.load + get_local $6 + call $_swapc + tee_local $2 + get_local $1 + i32.lt_u + get_local $4 + get_local $1 + get_local $2 + i32.sub + i32.lt_u + i32.and + if $if_2 (result i32) + i32.const 0 + get_local $0 + get_local $2 + i32.add + get_local $0 + get_local $2 + get_local $4 + i32.add + i32.add + i32.load8_s + select + else + i32.const 0 + end ;; $if_2 + end ;; $block + end ;; $if_1 + else + i32.const 0 + end ;; $if_0 + else + i32.const 0 + end ;; $if + ) + + (func $_swapc (type $9) + (param $0 i32) + (param $1 i32) + (result i32) + (local $2 i32) + get_local $1 + i32.eqz + set_local $2 + get_local $0 + get_local $0 + call $_llvm_bswap_i32 + get_local $2 + select + ) + + (func $_strcmp (type $9) + (param $0 i32) + (param $1 i32) + (result i32) + (local $2 i32) + (local $3 i32) + get_local $0 + i32.load8_s + tee_local $2 + get_local $1 + i32.load8_s + tee_local $3 + i32.ne + get_local $2 + i32.eqz + i32.or + if $if (result i32) + get_local $2 + set_local $1 + get_local $3 + else + loop $loop (result i32) + get_local $0 + i32.const 1 + i32.add + tee_local $0 + i32.load8_s + tee_local $2 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_s + tee_local $3 + i32.ne + get_local $2 + i32.eqz + i32.or + if $if_0 (result i32) + get_local $2 + set_local $1 + get_local $3 + else + br $loop + end ;; $if_0 + end ;; $loop + end ;; $if + set_local $0 + get_local $1 + i32.const 255 + i32.and + get_local $0 + i32.const 255 + i32.and + i32.sub + ) + + (func $___fwritex (type $0) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $block + block $block_0 + get_local $2 + i32.const 16 + i32.add + tee_local $4 + i32.load + tee_local $3 + br_if $block_0 + get_local $2 + call $___towrite + if $if (result i32) + i32.const 0 + else + get_local $4 + i32.load + set_local $3 + br $block_0 + end ;; $if + set_local $2 + br $block + end ;; $block_0 + get_local $3 + get_local $2 + i32.const 20 + i32.add + tee_local $5 + i32.load + tee_local $4 + i32.sub + get_local $1 + i32.lt_u + if $if_0 + get_local $2 + i32.load offset=36 + set_local $3 + get_local $2 + get_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.and + call_indirect $20 (type $0) + set_local $2 + br $block + end ;; $if_0 + get_local $1 + i32.eqz + get_local $2 + i32.load8_s offset=75 + i32.const 0 + i32.lt_s + i32.or + if $if_1 + i32.const 0 + set_local $3 + else + block $block_1 + get_local $1 + set_local $3 + loop $loop + get_local $0 + get_local $3 + i32.const -1 + i32.add + tee_local $6 + i32.add + i32.load8_s + i32.const 10 + i32.ne + if $if_2 + get_local $6 + if $if_3 + get_local $6 + set_local $3 + br $loop + else + i32.const 0 + set_local $3 + br $block_1 + end ;; $if_3 + unreachable + end ;; $if_2 + end ;; $loop + get_local $2 + i32.load offset=36 + set_local $4 + get_local $2 + get_local $0 + get_local $3 + get_local $4 + i32.const 1 + i32.and + call_indirect $20 (type $0) + tee_local $2 + get_local $3 + i32.lt_u + br_if $block + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $1 + get_local $3 + i32.sub + set_local $1 + get_local $5 + i32.load + set_local $4 + end ;; $block_1 + end ;; $if_1 + get_local $4 + get_local $0 + get_local $1 + call $_memcpy + drop + get_local $5 + get_local $1 + get_local $5 + i32.load + i32.add + i32.store + get_local $1 + get_local $3 + i32.add + set_local $2 + end ;; $block + get_local $2 + ) + + (func $___towrite (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + get_local $0 + i32.const 74 + i32.add + tee_local $2 + i32.load8_s + set_local $1 + get_local $2 + get_local $1 + get_local $1 + i32.const 255 + i32.add + i32.or + i32.store8 + get_local $0 + i32.load + tee_local $1 + i32.const 8 + i32.and + if $if (result i32) + get_local $0 + get_local $1 + i32.const 32 + i32.or + i32.store + i32.const -1 + else + get_local $0 + i32.const 0 + i32.store offset=8 + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=44 + tee_local $1 + i32.store offset=28 + get_local $0 + get_local $1 + i32.store offset=20 + get_local $0 + get_local $1 + get_local $0 + i32.load offset=48 + i32.add + i32.store offset=16 + i32.const 0 + end ;; $if + ) + + (func $_sn_write (type $0) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + get_local $2 + get_local $0 + i32.load offset=16 + get_local $0 + i32.const 20 + i32.add + tee_local $0 + i32.load + tee_local $4 + i32.sub + tee_local $3 + get_local $3 + get_local $2 + i32.gt_u + select + set_local $3 + get_local $4 + get_local $1 + get_local $3 + call $_memcpy + drop + get_local $0 + get_local $0 + i32.load + get_local $3 + i32.add + i32.store + get_local $2 + ) + + (func $_snprintf (type $0) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + get_global $27 + set_local $3 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $3 + get_local $2 + i32.store + get_local $0 + get_local $1 + i32.const 3915 + get_local $3 + call $_vsnprintf + set_local $0 + get_local $3 + set_global $27 + get_local $0 + ) + + (func $_malloc (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + get_global $27 + set_local $14 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $0 + i32.const 245 + i32.lt_u + if $if (result i32) + i32.const 3988 + i32.load + tee_local $7 + i32.const 16 + get_local $0 + i32.const 11 + i32.add + i32.const -8 + i32.and + get_local $0 + i32.const 11 + i32.lt_u + select + tee_local $2 + i32.const 3 + i32.shr_u + tee_local $0 + i32.shr_u + tee_local $3 + i32.const 3 + i32.and + if $if_0 + get_local $3 + i32.const 1 + i32.and + i32.const 1 + i32.xor + get_local $0 + i32.add + tee_local $1 + i32.const 3 + i32.shl + i32.const 4028 + i32.add + tee_local $2 + i32.const 8 + i32.add + tee_local $4 + i32.load + tee_local $3 + i32.const 8 + i32.add + tee_local $6 + i32.load + set_local $0 + get_local $0 + get_local $2 + i32.eq + if $if_1 + i32.const 3988 + i32.const 1 + get_local $1 + i32.shl + i32.const -1 + i32.xor + get_local $7 + i32.and + i32.store + else + i32.const 4004 + i32.load + get_local $0 + i32.gt_u + if $if_2 + call $_abort + end ;; $if_2 + get_local $3 + get_local $0 + i32.const 12 + i32.add + tee_local $5 + i32.load + i32.eq + if $if_3 + get_local $5 + get_local $2 + i32.store + get_local $4 + get_local $0 + i32.store + else + call $_abort + end ;; $if_3 + end ;; $if_1 + get_local $3 + get_local $1 + i32.const 3 + i32.shl + tee_local $0 + i32.const 3 + i32.or + i32.store offset=4 + get_local $0 + get_local $3 + i32.add + i32.const 4 + i32.add + tee_local $0 + get_local $0 + i32.load + i32.const 1 + i32.or + i32.store + get_local $14 + set_global $27 + get_local $6 + return + end ;; $if_0 + get_local $2 + i32.const 3996 + i32.load + tee_local $13 + i32.gt_u + if $if_4 (result i32) + get_local $3 + if $if_5 + get_local $3 + get_local $0 + i32.shl + i32.const 2 + get_local $0 + i32.shl + tee_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.or + i32.and + tee_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.and + i32.const -1 + i32.add + tee_local $0 + i32.const 12 + i32.shr_u + i32.const 16 + i32.and + tee_local $3 + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 5 + i32.shr_u + i32.const 8 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 2 + i32.shr_u + i32.const 4 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 1 + i32.shr_u + i32.const 2 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 1 + i32.shr_u + i32.const 1 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + i32.add + tee_local $1 + i32.const 3 + i32.shl + i32.const 4028 + i32.add + tee_local $5 + i32.const 8 + i32.add + tee_local $9 + i32.load + tee_local $0 + i32.const 8 + i32.add + tee_local $10 + i32.load + set_local $3 + get_local $3 + get_local $5 + i32.eq + if $if_6 + i32.const 3988 + i32.const 1 + get_local $1 + i32.shl + i32.const -1 + i32.xor + get_local $7 + i32.and + tee_local $4 + i32.store + else + i32.const 4004 + i32.load + get_local $3 + i32.gt_u + if $if_7 + call $_abort + end ;; $if_7 + get_local $0 + get_local $3 + i32.const 12 + i32.add + tee_local $11 + i32.load + i32.eq + if $if_8 + get_local $11 + get_local $5 + i32.store + get_local $9 + get_local $3 + i32.store + get_local $7 + set_local $4 + else + call $_abort + end ;; $if_8 + end ;; $if_6 + get_local $0 + get_local $2 + i32.const 3 + i32.or + i32.store offset=4 + get_local $0 + get_local $2 + i32.add + tee_local $7 + get_local $1 + i32.const 3 + i32.shl + tee_local $3 + get_local $2 + i32.sub + tee_local $5 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $3 + i32.add + get_local $5 + i32.store + get_local $13 + if $if_9 + i32.const 4008 + i32.load + set_local $2 + get_local $13 + i32.const 3 + i32.shr_u + tee_local $3 + i32.const 3 + i32.shl + i32.const 4028 + i32.add + set_local $0 + i32.const 1 + get_local $3 + i32.shl + tee_local $3 + get_local $4 + i32.and + if $if_10 + i32.const 4004 + i32.load + get_local $0 + i32.const 8 + i32.add + tee_local $3 + i32.load + tee_local $1 + i32.gt_u + if $if_11 + call $_abort + else + get_local $1 + set_local $6 + get_local $3 + set_local $12 + end ;; $if_11 + else + i32.const 3988 + get_local $3 + get_local $4 + i32.or + i32.store + get_local $0 + set_local $6 + get_local $0 + i32.const 8 + i32.add + set_local $12 + end ;; $if_10 + get_local $12 + get_local $2 + i32.store + get_local $6 + get_local $2 + i32.store offset=12 + get_local $2 + get_local $6 + i32.store offset=8 + get_local $2 + get_local $0 + i32.store offset=12 + end ;; $if_9 + i32.const 3996 + get_local $5 + i32.store + i32.const 4008 + get_local $7 + i32.store + get_local $14 + set_global $27 + get_local $10 + return + end ;; $if_5 + i32.const 3992 + i32.load + tee_local $12 + if $if_12 (result i32) + get_local $12 + i32.const 0 + get_local $12 + i32.sub + i32.and + i32.const -1 + i32.add + tee_local $0 + i32.const 12 + i32.shr_u + i32.const 16 + i32.and + tee_local $3 + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 5 + i32.shr_u + i32.const 8 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 2 + i32.shr_u + i32.const 4 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 1 + i32.shr_u + i32.const 2 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + tee_local $0 + i32.const 1 + i32.shr_u + i32.const 1 + i32.and + tee_local $3 + i32.or + get_local $0 + get_local $3 + i32.shr_u + i32.add + i32.const 2 + i32.shl + i32.const 4292 + i32.add + i32.load + tee_local $4 + set_local $0 + get_local $4 + i32.load offset=4 + i32.const -8 + i32.and + get_local $2 + i32.sub + set_local $10 + loop $loop + block $block + get_local $0 + i32.load offset=16 + tee_local $3 + if $if_13 + get_local $3 + set_local $0 + else + get_local $0 + i32.load offset=20 + tee_local $0 + i32.eqz + br_if $block + end ;; $if_13 + get_local $0 + get_local $4 + get_local $0 + i32.load offset=4 + i32.const -8 + i32.and + get_local $2 + i32.sub + tee_local $3 + get_local $10 + i32.lt_u + tee_local $6 + select + set_local $4 + get_local $3 + get_local $10 + get_local $6 + select + set_local $10 + br $loop + end ;; $block + end ;; $loop + i32.const 4004 + i32.load + tee_local $15 + get_local $4 + i32.gt_u + if $if_14 + call $_abort + end ;; $if_14 + get_local $2 + get_local $4 + i32.add + tee_local $8 + get_local $4 + i32.le_u + if $if_15 + call $_abort + end ;; $if_15 + get_local $4 + i32.load offset=24 + set_local $11 + get_local $4 + get_local $4 + i32.load offset=12 + tee_local $0 + i32.eq + if $if_16 + block $block_0 + get_local $4 + i32.const 20 + i32.add + tee_local $3 + i32.load + tee_local $0 + i32.eqz + if $if_17 + get_local $4 + i32.const 16 + i32.add + tee_local $3 + i32.load + tee_local $0 + i32.eqz + br_if $block_0 + end ;; $if_17 + loop $loop_0 + block $block_1 + get_local $0 + i32.const 20 + i32.add + tee_local $6 + i32.load + tee_local $9 + i32.eqz + if $if_18 + get_local $0 + i32.const 16 + i32.add + tee_local $6 + i32.load + tee_local $9 + i32.eqz + br_if $block_1 + end ;; $if_18 + get_local $6 + set_local $3 + get_local $9 + set_local $0 + br $loop_0 + end ;; $block_1 + end ;; $loop_0 + get_local $15 + get_local $3 + i32.gt_u + if $if_19 + call $_abort + else + get_local $3 + i32.const 0 + i32.store + get_local $0 + set_local $1 + end ;; $if_19 + end ;; $block_0 + else + get_local $15 + get_local $4 + i32.load offset=8 + tee_local $3 + i32.gt_u + if $if_20 + call $_abort + end ;; $if_20 + get_local $3 + i32.const 12 + i32.add + tee_local $6 + i32.load + get_local $4 + i32.ne + if $if_21 + call $_abort + end ;; $if_21 + get_local $4 + get_local $0 + i32.const 8 + i32.add + tee_local $9 + i32.load + i32.eq + if $if_22 + get_local $6 + get_local $0 + i32.store + get_local $9 + get_local $3 + i32.store + get_local $0 + set_local $1 + else + call $_abort + end ;; $if_22 + end ;; $if_16 + get_local $11 + if $if_23 + block $block_2 + get_local $4 + get_local $4 + i32.load offset=28 + tee_local $0 + i32.const 2 + i32.shl + i32.const 4292 + i32.add + tee_local $3 + i32.load + i32.eq + if $if_24 + get_local $3 + get_local $1 + i32.store + get_local $1 + i32.eqz + if $if_25 + i32.const 3992 + get_local $12 + i32.const 1 + get_local $0 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + br $block_2 + end ;; $if_25 + else + i32.const 4004 + i32.load + get_local $11 + i32.gt_u + if $if_26 + call $_abort + else + get_local $11 + i32.const 16 + i32.add + tee_local $0 + get_local $11 + i32.const 20 + i32.add + get_local $4 + get_local $0 + i32.load + i32.eq + select + get_local $1 + i32.store + get_local $1 + i32.eqz + br_if $block_2 + end ;; $if_26 + end ;; $if_24 + i32.const 4004 + i32.load + tee_local $3 + get_local $1 + i32.gt_u + if $if_27 + call $_abort + end ;; $if_27 + get_local $1 + get_local $11 + i32.store offset=24 + get_local $4 + i32.load offset=16 + tee_local $0 + if $if_28 + get_local $3 + get_local $0 + i32.gt_u + if $if_29 + call $_abort + else + get_local $1 + get_local $0 + i32.store offset=16 + get_local $0 + get_local $1 + i32.store offset=24 + end ;; $if_29 + end ;; $if_28 + get_local $4 + i32.load offset=20 + tee_local $0 + if $if_30 + i32.const 4004 + i32.load + get_local $0 + i32.gt_u + if $if_31 + call $_abort + else + get_local $1 + get_local $0 + i32.store offset=20 + get_local $0 + get_local $1 + i32.store offset=24 + end ;; $if_31 + end ;; $if_30 + end ;; $block_2 + end ;; $if_23 + get_local $10 + i32.const 16 + i32.lt_u + if $if_32 + get_local $4 + get_local $2 + get_local $10 + i32.add + tee_local $0 + i32.const 3 + i32.or + i32.store offset=4 + get_local $0 + get_local $4 + i32.add + i32.const 4 + i32.add + tee_local $0 + get_local $0 + i32.load + i32.const 1 + i32.or + i32.store + else + get_local $4 + get_local $2 + i32.const 3 + i32.or + i32.store offset=4 + get_local $8 + get_local $10 + i32.const 1 + i32.or + i32.store offset=4 + get_local $8 + get_local $10 + i32.add + get_local $10 + i32.store + get_local $13 + if $if_33 + i32.const 4008 + i32.load + set_local $2 + get_local $13 + i32.const 3 + i32.shr_u + tee_local $3 + i32.const 3 + i32.shl + i32.const 4028 + i32.add + set_local $0 + i32.const 1 + get_local $3 + i32.shl + tee_local $3 + get_local $7 + i32.and + if $if_34 + i32.const 4004 + i32.load + get_local $0 + i32.const 8 + i32.add + tee_local $3 + i32.load + tee_local $1 + i32.gt_u + if $if_35 + call $_abort + else + get_local $1 + set_local $5 + get_local $3 + set_local $16 + end ;; $if_35 + else + i32.const 3988 + get_local $3 + get_local $7 + i32.or + i32.store + get_local $0 + set_local $5 + get_local $0 + i32.const 8 + i32.add + set_local $16 + end ;; $if_34 + get_local $16 + get_local $2 + i32.store + get_local $5 + get_local $2 + i32.store offset=12 + get_local $2 + get_local $5 + i32.store offset=8 + get_local $2 + get_local $0 + i32.store offset=12 + end ;; $if_33 + i32.const 3996 + get_local $10 + i32.store + i32.const 4008 + get_local $8 + i32.store + end ;; $if_32 + get_local $14 + set_global $27 + get_local $4 + i32.const 8 + i32.add + return + else + get_local $2 + end ;; $if_12 + else + get_local $2 + end ;; $if_4 + else + get_local $0 + i32.const -65 + i32.gt_u + if $if_36 (result i32) + i32.const -1 + else + block $block_3 (result i32) + get_local $0 + i32.const 11 + i32.add + tee_local $0 + i32.const -8 + i32.and + set_local $4 + i32.const 3992 + i32.load + tee_local $6 + if $if_37 (result i32) + get_local $0 + i32.const 8 + i32.shr_u + tee_local $0 + if $if_38 (result i32) + get_local $4 + i32.const 16777215 + i32.gt_u + if $if_39 (result i32) + i32.const 31 + else + get_local $0 + get_local $0 + i32.const 1048320 + i32.add + i32.const 16 + i32.shr_u + i32.const 8 + i32.and + tee_local $1 + i32.shl + tee_local $2 + i32.const 520192 + i32.add + i32.const 16 + i32.shr_u + i32.const 4 + i32.and + set_local $0 + i32.const 14 + get_local $0 + get_local $1 + i32.or + get_local $2 + get_local $0 + i32.shl + tee_local $0 + i32.const 245760 + i32.add + i32.const 16 + i32.shr_u + i32.const 2 + i32.and + tee_local $1 + i32.or + i32.sub + get_local $0 + get_local $1 + i32.shl + i32.const 15 + i32.shr_u + i32.add + tee_local $0 + i32.const 1 + i32.shl + get_local $4 + get_local $0 + i32.const 7 + i32.add + i32.shr_u + i32.const 1 + i32.and + i32.or + end ;; $if_39 + else + i32.const 0 + end ;; $if_38 + set_local $18 + i32.const 0 + get_local $4 + i32.sub + set_local $2 + block $block_4 + block $block_5 + get_local $18 + i32.const 2 + i32.shl + i32.const 4292 + i32.add + i32.load + tee_local $0 + if $if_40 (result i32) + i32.const 0 + set_local $1 + get_local $4 + i32.const 0 + i32.const 25 + get_local $18 + i32.const 1 + i32.shr_u + i32.sub + get_local $18 + i32.const 31 + i32.eq + select + i32.shl + set_local $12 + loop $loop_1 (result i32) + get_local $0 + i32.load offset=4 + i32.const -8 + i32.and + get_local $4 + i32.sub + tee_local $16 + get_local $2 + i32.lt_u + if $if_41 + get_local $16 + if $if_42 (result i32) + get_local $16 + set_local $2 + get_local $0 + else + i32.const 0 + set_local $2 + get_local $0 + set_local $1 + br $block_5 + end ;; $if_42 + set_local $1 + end ;; $if_41 + get_local $5 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $5 + i32.eqz + get_local $5 + get_local $0 + i32.const 16 + i32.add + get_local $12 + i32.const 31 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + tee_local $0 + i32.eq + i32.or + select + set_local $5 + get_local $12 + i32.const 1 + i32.shl + set_local $12 + get_local $0 + br_if $loop_1 + get_local $1 + end ;; $loop_1 + else + i32.const 0 + end ;; $if_40 + set_local $0 + get_local $0 + get_local $5 + i32.or + if $if_43 (result i32) + get_local $5 + else + get_local $4 + get_local $6 + i32.const 2 + get_local $18 + i32.shl + tee_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.or + i32.and + tee_local $1 + i32.eqz + br_if $block_3 + drop + i32.const 0 + set_local $0 + get_local $1 + i32.const 0 + get_local $1 + i32.sub + i32.and + i32.const -1 + i32.add + tee_local $1 + i32.const 12 + i32.shr_u + i32.const 16 + i32.and + tee_local $5 + get_local $1 + get_local $5 + i32.shr_u + tee_local $1 + i32.const 5 + i32.shr_u + i32.const 8 + i32.and + tee_local $5 + i32.or + get_local $1 + get_local $5 + i32.shr_u + tee_local $1 + i32.const 2 + i32.shr_u + i32.const 4 + i32.and + tee_local $5 + i32.or + get_local $1 + get_local $5 + i32.shr_u + tee_local $1 + i32.const 1 + i32.shr_u + i32.const 2 + i32.and + tee_local $5 + i32.or + get_local $1 + get_local $5 + i32.shr_u + tee_local $1 + i32.const 1 + i32.shr_u + i32.const 1 + i32.and + tee_local $5 + i32.or + get_local $1 + get_local $5 + i32.shr_u + i32.add + i32.const 2 + i32.shl + i32.const 4292 + i32.add + i32.load + end ;; $if_43 + tee_local $1 + br_if $block_5 + get_local $0 + set_local $5 + br $block_4 + end ;; $block_5 + get_local $0 + set_local $5 + get_local $2 + set_local $0 + loop $loop_2 (result i32) + get_local $1 + i32.load offset=4 + set_local $12 + get_local $1 + i32.load offset=16 + tee_local $2 + i32.eqz + if $if_44 + get_local $1 + i32.load offset=20 + set_local $2 + end ;; $if_44 + get_local $12 + i32.const -8 + i32.and + get_local $4 + i32.sub + tee_local $16 + get_local $0 + i32.lt_u + set_local $12 + get_local $16 + get_local $0 + get_local $12 + select + set_local $0 + get_local $1 + get_local $5 + get_local $12 + select + set_local $5 + get_local $2 + if $if_45 (result i32) + get_local $2 + set_local $1 + br $loop_2 + else + get_local $0 + end ;; $if_45 + end ;; $loop_2 + set_local $2 + end ;; $block_4 + get_local $5 + if $if_46 (result i32) + get_local $2 + i32.const 3996 + i32.load + get_local $4 + i32.sub + i32.lt_u + if $if_47 (result i32) + i32.const 4004 + i32.load + tee_local $17 + get_local $5 + i32.gt_u + if $if_48 + call $_abort + end ;; $if_48 + get_local $4 + get_local $5 + i32.add + tee_local $8 + get_local $5 + i32.le_u + if $if_49 + call $_abort + end ;; $if_49 + get_local $5 + i32.load offset=24 + set_local $15 + get_local $5 + get_local $5 + i32.load offset=12 + tee_local $0 + i32.eq + if $if_50 + block $block_6 + get_local $5 + i32.const 20 + i32.add + tee_local $1 + i32.load + tee_local $0 + i32.eqz + if $if_51 + get_local $5 + i32.const 16 + i32.add + tee_local $1 + i32.load + tee_local $0 + i32.eqz + br_if $block_6 + end ;; $if_51 + loop $loop_3 + block $block_7 + get_local $0 + i32.const 20 + i32.add + tee_local $9 + i32.load + tee_local $11 + i32.eqz + if $if_52 + get_local $0 + i32.const 16 + i32.add + tee_local $9 + i32.load + tee_local $11 + i32.eqz + br_if $block_7 + end ;; $if_52 + get_local $9 + set_local $1 + get_local $11 + set_local $0 + br $loop_3 + end ;; $block_7 + end ;; $loop_3 + get_local $17 + get_local $1 + i32.gt_u + if $if_53 + call $_abort + else + get_local $1 + i32.const 0 + i32.store + get_local $0 + set_local $7 + end ;; $if_53 + end ;; $block_6 + else + get_local $17 + get_local $5 + i32.load offset=8 + tee_local $1 + i32.gt_u + if $if_54 + call $_abort + end ;; $if_54 + get_local $1 + i32.const 12 + i32.add + tee_local $9 + i32.load + get_local $5 + i32.ne + if $if_55 + call $_abort + end ;; $if_55 + get_local $5 + get_local $0 + i32.const 8 + i32.add + tee_local $11 + i32.load + i32.eq + if $if_56 + get_local $9 + get_local $0 + i32.store + get_local $11 + get_local $1 + i32.store + get_local $0 + set_local $7 + else + call $_abort + end ;; $if_56 + end ;; $if_50 + get_local $15 + if $if_57 + block $block_8 + get_local $5 + get_local $5 + i32.load offset=28 + tee_local $0 + i32.const 2 + i32.shl + i32.const 4292 + i32.add + tee_local $1 + i32.load + i32.eq + if $if_58 + get_local $1 + get_local $7 + i32.store + get_local $7 + i32.eqz + if $if_59 + i32.const 3992 + get_local $6 + i32.const 1 + get_local $0 + i32.shl + i32.const -1 + i32.xor + i32.and + tee_local $3 + i32.store + br $block_8 + end ;; $if_59 + else + i32.const 4004 + i32.load + get_local $15 + i32.gt_u + if $if_60 + call $_abort + else + get_local $15 + i32.const 16 + i32.add + tee_local $0 + get_local $15 + i32.const 20 + i32.add + get_local $5 + get_local $0 + i32.load + i32.eq + select + get_local $7 + i32.store + get_local $7 + i32.eqz + if $if_61 + get_local $6 + set_local $3 + br $block_8 + end ;; $if_61 + end ;; $if_60 + end ;; $if_58 + i32.const 4004 + i32.load + tee_local $1 + get_local $7 + i32.gt_u + if $if_62 + call $_abort + end ;; $if_62 + get_local $7 + get_local $15 + i32.store offset=24 + get_local $5 + i32.load offset=16 + tee_local $0 + if $if_63 + get_local $1 + get_local $0 + i32.gt_u + if $if_64 + call $_abort + else + get_local $7 + get_local $0 + i32.store offset=16 + get_local $0 + get_local $7 + i32.store offset=24 + end ;; $if_64 + end ;; $if_63 + get_local $5 + i32.load offset=20 + tee_local $0 + if $if_65 + i32.const 4004 + i32.load + get_local $0 + i32.gt_u + if $if_66 + call $_abort + else + get_local $7 + get_local $0 + i32.store offset=20 + get_local $0 + get_local $7 + i32.store offset=24 + get_local $6 + set_local $3 + end ;; $if_66 + else + get_local $6 + set_local $3 + end ;; $if_65 + end ;; $block_8 + else + get_local $6 + set_local $3 + end ;; $if_57 + get_local $2 + i32.const 16 + i32.lt_u + if $if_67 + get_local $5 + get_local $2 + get_local $4 + i32.add + tee_local $0 + i32.const 3 + i32.or + i32.store offset=4 + get_local $0 + get_local $5 + i32.add + i32.const 4 + i32.add + tee_local $0 + get_local $0 + i32.load + i32.const 1 + i32.or + i32.store + else + block $block_9 + get_local $5 + get_local $4 + i32.const 3 + i32.or + i32.store offset=4 + get_local $8 + get_local $2 + i32.const 1 + i32.or + i32.store offset=4 + get_local $2 + get_local $8 + i32.add + get_local $2 + i32.store + get_local $2 + i32.const 3 + i32.shr_u + set_local $1 + get_local $2 + i32.const 256 + i32.lt_u + if $if_68 + get_local $1 + i32.const 3 + i32.shl + i32.const 4028 + i32.add + set_local $0 + i32.const 3988 + i32.load + tee_local $3 + i32.const 1 + get_local $1 + i32.shl + tee_local $1 + i32.and + if $if_69 + i32.const 4004 + i32.load + get_local $0 + i32.const 8 + i32.add + tee_local $3 + i32.load + tee_local $1 + i32.gt_u + if $if_70 + call $_abort + else + get_local $1 + set_local $13 + get_local $3 + set_local $19 + end ;; $if_70 + else + i32.const 3988 + get_local $1 + get_local $3 + i32.or + i32.store + get_local $0 + set_local $13 + get_local $0 + i32.const 8 + i32.add + set_local $19 + end ;; $if_69 + get_local $19 + get_local $8 + i32.store + get_local $13 + get_local $8 + i32.store offset=12 + get_local $8 + get_local $13 + i32.store offset=8 + get_local $8 + get_local $0 + i32.store offset=12 + br $block_9 + end ;; $if_68 + get_local $2 + i32.const 8 + i32.shr_u + tee_local $0 + if $if_71 (result i32) + get_local $2 + i32.const 16777215 + i32.gt_u + if $if_72 (result i32) + i32.const 31 + else + get_local $0 + get_local $0 + i32.const 1048320 + i32.add + i32.const 16 + i32.shr_u + i32.const 8 + i32.and + tee_local $1 + i32.shl + tee_local $4 + i32.const 520192 + i32.add + i32.const 16 + i32.shr_u + i32.const 4 + i32.and + set_local $0 + i32.const 14 + get_local $0 + get_local $1 + i32.or + get_local $4 + get_local $0 + i32.shl + tee_local $0 + i32.const 245760 + i32.add + i32.const 16 + i32.shr_u + i32.const 2 + i32.and + tee_local $1 + i32.or + i32.sub + get_local $0 + get_local $1 + i32.shl + i32.const 15 + i32.shr_u + i32.add + tee_local $0 + i32.const 1 + i32.shl + get_local $2 + get_local $0 + i32.const 7 + i32.add + i32.shr_u + i32.const 1 + i32.and + i32.or + end ;; $if_72 + else + i32.const 0 + end ;; $if_71 + tee_local $1 + i32.const 2 + i32.shl + i32.const 4292 + i32.add + set_local $0 + get_local $8 + get_local $1 + i32.store offset=28 + get_local $8 + i32.const 16 + i32.add + tee_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + i32.const 0 + i32.store + i32.const 1 + get_local $1 + i32.shl + tee_local $4 + get_local $3 + i32.and + i32.eqz + if $if_73 + i32.const 3992 + get_local $3 + get_local $4 + i32.or + i32.store + get_local $0 + get_local $8 + i32.store + get_local $8 + get_local $0 + i32.store offset=24 + get_local $8 + get_local $8 + i32.store offset=12 + get_local $8 + get_local $8 + i32.store offset=8 + br $block_9 + end ;; $if_73 + get_local $2 + get_local $0 + i32.load + tee_local $0 + i32.load offset=4 + i32.const -8 + i32.and + i32.eq + if $if_74 + get_local $0 + set_local $10 + else + block $block_10 + get_local $2 + i32.const 0 + i32.const 25 + get_local $1 + i32.const 1 + i32.shr_u + i32.sub + get_local $1 + i32.const 31 + i32.eq + select + i32.shl + set_local $1 + loop $loop_4 + get_local $0 + i32.const 16 + i32.add + get_local $1 + i32.const 31 + i32.shr_u + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load + tee_local $3 + if $if_75 + get_local $1 + i32.const 1 + i32.shl + set_local $1 + get_local $2 + get_local $3 + i32.load offset=4 + i32.const -8 + i32.and + i32.eq + if $if_76 + get_local $3 + set_local $10 + br $block_10 + else + get_local $3 + set_local $0 + br $loop_4 + end ;; $if_76 + unreachable + end ;; $if_75 + end ;; $loop_4 + i32.const 4004 + i32.load + get_local $4 + i32.gt_u + if $if_77 + call $_abort + else + get_local $4 + get_local $8 + i32.store + get_local $8 + get_local $0 + i32.store offset=24 + get_local $8 + get_local $8 + i32.store offset=12 + get_local $8 + get_local $8 + i32.store offset=8 + br $block_9 + end ;; $if_77 + end ;; $block_10 + end ;; $if_74 + i32.const 4004 + i32.load + tee_local $0 + get_local $10 + i32.le_u + get_local $0 + get_local $10 + i32.const 8 + i32.add + tee_local $3 + i32.load + tee_local $0 + i32.le_u + i32.and + if $if_78 + get_local $0 + get_local $8 + i32.store offset=12 + get_local $3 + get_local $8 + i32.store + get_local $8 + get_local $0 + i32.store offset=8 + get_local $8 + get_local $10 + i32.store offset=12 + get_local $8 + i32.const 0 + i32.store offset=24 + else + call $_abort + end ;; $if_78 + end ;; $block_9 + end ;; $if_67 + get_local $14 + set_global $27 + get_local $5 + i32.const 8 + i32.add + return + else + get_local $4 + end ;; $if_47 + else + get_local $4 + end ;; $if_46 + else + get_local $4 + end ;; $if_37 + end ;; $block_3 + end ;; $if_36 + end ;; $if + set_local $3 + block $block_11 + i32.const 3996 + i32.load + tee_local $1 + get_local $3 + i32.ge_u + if $if_79 + i32.const 4008 + i32.load + set_local $0 + get_local $1 + get_local $3 + i32.sub + tee_local $2 + i32.const 15 + i32.gt_u + if $if_80 + i32.const 4008 + get_local $0 + get_local $3 + i32.add + tee_local $4 + i32.store + i32.const 3996 + get_local $2 + i32.store + get_local $4 + get_local $2 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $1 + i32.add + get_local $2 + i32.store + get_local $0 + get_local $3 + i32.const 3 + i32.or + i32.store offset=4 + else + i32.const 3996 + i32.const 0 + i32.store + i32.const 4008 + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.const 3 + i32.or + i32.store offset=4 + get_local $0 + get_local $1 + i32.add + i32.const 4 + i32.add + tee_local $3 + get_local $3 + i32.load + i32.const 1 + i32.or + i32.store + end ;; $if_80 + br $block_11 + end ;; $if_79 + block $block_12 + i32.const 4000 + i32.load + tee_local $1 + get_local $3 + i32.gt_u + if $if_81 + i32.const 4000 + get_local $1 + get_local $3 + i32.sub + tee_local $1 + i32.store + br $block_12 + end ;; $if_81 + get_local $3 + i32.const 47 + i32.add + tee_local $6 + i32.const 4460 + i32.load + if $if_82 (result i32) + i32.const 4468 + i32.load + else + i32.const 4468 + i32.const 4096 + i32.store + i32.const 4464 + i32.const 4096 + i32.store + i32.const 4472 + i32.const -1 + i32.store + i32.const 4476 + i32.const -1 + i32.store + i32.const 4480 + i32.const 0 + i32.store + i32.const 4432 + i32.const 0 + i32.store + i32.const 4460 + get_local $14 + i32.const -16 + i32.and + i32.const 1431655768 + i32.xor + i32.store + i32.const 4096 + end ;; $if_82 + tee_local $0 + i32.add + tee_local $5 + i32.const 0 + get_local $0 + i32.sub + tee_local $7 + i32.and + tee_local $4 + get_local $3 + i32.le_u + if $if_83 + get_local $14 + set_global $27 + i32.const 0 + return + end ;; $if_83 + i32.const 4428 + i32.load + tee_local $0 + if $if_84 + get_local $4 + i32.const 4420 + i32.load + tee_local $2 + i32.add + tee_local $10 + get_local $2 + i32.le_u + get_local $10 + get_local $0 + i32.gt_u + i32.or + if $if_85 + get_local $14 + set_global $27 + i32.const 0 + return + end ;; $if_85 + end ;; $if_84 + get_local $3 + i32.const 48 + i32.add + set_local $10 + block $block_13 + block $block_14 + i32.const 4432 + i32.load + i32.const 4 + i32.and + if $if_86 + i32.const 0 + set_local $1 + else + block $block_15 + block $block_16 + block $block_17 + i32.const 4012 + i32.load + tee_local $0 + i32.eqz + br_if $block_17 + i32.const 4436 + set_local $2 + loop $loop_5 + block $block_18 + get_local $2 + i32.load + tee_local $13 + get_local $0 + i32.le_u + if $if_87 + get_local $13 + get_local $2 + i32.load offset=4 + i32.add + get_local $0 + i32.gt_u + br_if $block_18 + end ;; $if_87 + get_local $2 + i32.load offset=8 + tee_local $2 + br_if $loop_5 + br $block_17 + end ;; $block_18 + end ;; $loop_5 + get_local $7 + get_local $5 + get_local $1 + i32.sub + i32.and + tee_local $1 + i32.const 2147483647 + i32.lt_u + if $if_88 + get_local $2 + i32.const 4 + i32.add + set_local $5 + get_local $1 + call $_sbrk + tee_local $0 + get_local $2 + i32.load + get_local $5 + i32.load + i32.add + i32.ne + br_if $block_16 + get_local $0 + i32.const -1 + i32.ne + br_if $block_14 + else + i32.const 0 + set_local $1 + end ;; $if_88 + br $block_15 + end ;; $block_17 + i32.const 0 + call $_sbrk + tee_local $0 + i32.const -1 + i32.eq + if $if_89 (result i32) + i32.const 0 + else + i32.const 4420 + i32.load + tee_local $5 + get_local $4 + get_local $0 + i32.const 4464 + i32.load + tee_local $1 + i32.const -1 + i32.add + tee_local $2 + i32.add + i32.const 0 + get_local $1 + i32.sub + i32.and + get_local $0 + i32.sub + i32.const 0 + get_local $0 + get_local $2 + i32.and + select + i32.add + tee_local $1 + i32.add + set_local $2 + get_local $1 + i32.const 2147483647 + i32.lt_u + get_local $1 + get_local $3 + i32.gt_u + i32.and + if $if_90 (result i32) + i32.const 4428 + i32.load + tee_local $7 + if $if_91 + get_local $2 + get_local $5 + i32.le_u + get_local $2 + get_local $7 + i32.gt_u + i32.or + if $if_92 + i32.const 0 + set_local $1 + br $block_15 + end ;; $if_92 + end ;; $if_91 + get_local $0 + get_local $1 + call $_sbrk + tee_local $2 + i32.eq + br_if $block_14 + get_local $2 + set_local $0 + br $block_16 + else + i32.const 0 + end ;; $if_90 + end ;; $if_89 + set_local $1 + br $block_15 + end ;; $block_16 + get_local $0 + i32.const -1 + i32.ne + get_local $1 + i32.const 2147483647 + i32.lt_u + i32.and + get_local $10 + get_local $1 + i32.gt_u + i32.and + i32.eqz + if $if_93 + get_local $0 + i32.const -1 + i32.eq + if $if_94 + i32.const 0 + set_local $1 + br $block_15 + else + br $block_14 + end ;; $if_94 + unreachable + end ;; $if_93 + i32.const 4468 + i32.load + tee_local $2 + get_local $6 + get_local $1 + i32.sub + i32.add + i32.const 0 + get_local $2 + i32.sub + i32.and + tee_local $2 + i32.const 2147483647 + i32.ge_u + br_if $block_14 + i32.const 0 + get_local $1 + i32.sub + set_local $6 + get_local $2 + call $_sbrk + i32.const -1 + i32.eq + if $if_95 (result i32) + get_local $6 + call $_sbrk + drop + i32.const 0 + else + get_local $1 + get_local $2 + i32.add + set_local $1 + br $block_14 + end ;; $if_95 + set_local $1 + end ;; $block_15 + i32.const 4432 + i32.const 4432 + i32.load + i32.const 4 + i32.or + i32.store + end ;; $if_86 + get_local $4 + i32.const 2147483647 + i32.lt_u + if $if_96 + get_local $4 + call $_sbrk + set_local $0 + i32.const 0 + call $_sbrk + tee_local $2 + get_local $0 + i32.sub + tee_local $6 + get_local $3 + i32.const 40 + i32.add + i32.gt_u + set_local $4 + get_local $6 + get_local $1 + get_local $4 + select + set_local $1 + get_local $4 + i32.const 1 + i32.xor + get_local $0 + i32.const -1 + i32.eq + i32.or + get_local $0 + i32.const -1 + i32.ne + get_local $2 + i32.const -1 + i32.ne + i32.and + get_local $0 + get_local $2 + i32.lt_u + i32.and + i32.const 1 + i32.xor + i32.or + i32.eqz + br_if $block_14 + end ;; $if_96 + br $block_13 + end ;; $block_14 + i32.const 4420 + get_local $1 + i32.const 4420 + i32.load + i32.add + tee_local $2 + i32.store + get_local $2 + i32.const 4424 + i32.load + i32.gt_u + if $if_97 + i32.const 4424 + get_local $2 + i32.store + end ;; $if_97 + i32.const 4012 + i32.load + tee_local $6 + if $if_98 + block $block_19 + i32.const 4436 + set_local $2 + block $block_20 + block $block_21 + loop $loop_6 + get_local $0 + get_local $2 + i32.load + tee_local $4 + get_local $2 + i32.load offset=4 + tee_local $5 + i32.add + i32.eq + br_if $block_21 + get_local $2 + i32.load offset=8 + tee_local $2 + br_if $loop_6 + end ;; $loop_6 + br $block_20 + end ;; $block_21 + get_local $2 + i32.const 4 + i32.add + set_local $7 + get_local $2 + i32.load offset=12 + i32.const 8 + i32.and + i32.eqz + if $if_99 + get_local $4 + get_local $6 + i32.le_u + get_local $0 + get_local $6 + i32.gt_u + i32.and + if $if_100 + get_local $7 + get_local $1 + get_local $5 + i32.add + i32.store + get_local $6 + i32.const 0 + get_local $6 + i32.const 8 + i32.add + tee_local $0 + i32.sub + i32.const 7 + i32.and + i32.const 0 + get_local $0 + i32.const 7 + i32.and + select + tee_local $2 + i32.add + set_local $0 + get_local $1 + i32.const 4000 + i32.load + i32.add + tee_local $4 + get_local $2 + i32.sub + set_local $1 + i32.const 4012 + get_local $0 + i32.store + i32.const 4000 + get_local $1 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.or + i32.store offset=4 + get_local $4 + get_local $6 + i32.add + i32.const 40 + i32.store offset=4 + i32.const 4016 + i32.const 4476 + i32.load + i32.store + br $block_19 + end ;; $if_100 + end ;; $if_99 + end ;; $block_20 + get_local $0 + i32.const 4004 + i32.load + tee_local $2 + i32.lt_u + if $if_101 + i32.const 4004 + get_local $0 + i32.store + get_local $0 + set_local $2 + end ;; $if_101 + get_local $0 + get_local $1 + i32.add + set_local $5 + i32.const 4436 + set_local $4 + block $block_22 + block $block_23 + loop $loop_7 + get_local $5 + get_local $4 + i32.load + i32.eq + br_if $block_23 + get_local $4 + i32.load offset=8 + tee_local $4 + br_if $loop_7 + end ;; $loop_7 + br $block_22 + end ;; $block_23 + get_local $4 + i32.load offset=12 + i32.const 8 + i32.and + i32.eqz + if $if_102 + get_local $4 + get_local $0 + i32.store + get_local $4 + i32.const 4 + i32.add + tee_local $4 + get_local $1 + get_local $4 + i32.load + i32.add + i32.store + get_local $3 + get_local $0 + i32.const 0 + get_local $0 + i32.const 8 + i32.add + tee_local $0 + i32.sub + i32.const 7 + i32.and + i32.const 0 + get_local $0 + i32.const 7 + i32.and + select + i32.add + tee_local $8 + i32.add + set_local $7 + get_local $5 + i32.const 0 + get_local $5 + i32.const 8 + i32.add + tee_local $0 + i32.sub + i32.const 7 + i32.and + i32.const 0 + get_local $0 + i32.const 7 + i32.and + select + i32.add + tee_local $1 + get_local $8 + i32.sub + get_local $3 + i32.sub + set_local $4 + get_local $8 + get_local $3 + i32.const 3 + i32.or + i32.store offset=4 + get_local $1 + get_local $6 + i32.eq + if $if_103 + i32.const 4000 + get_local $4 + i32.const 4000 + i32.load + i32.add + tee_local $0 + i32.store + i32.const 4012 + get_local $7 + i32.store + get_local $7 + get_local $0 + i32.const 1 + i32.or + i32.store offset=4 + else + block $block_24 + get_local $1 + i32.const 4008 + i32.load + i32.eq + if $if_104 + i32.const 3996 + get_local $4 + i32.const 3996 + i32.load + i32.add + tee_local $0 + i32.store + i32.const 4008 + get_local $7 + i32.store + get_local $7 + get_local $0 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $7 + i32.add + get_local $0 + i32.store + br $block_24 + end ;; $if_104 + get_local $1 + i32.load offset=4 + tee_local $0 + i32.const 3 + i32.and + i32.const 1 + i32.eq + if $if_105 (result i32) + get_local $0 + i32.const -8 + i32.and + set_local $13 + get_local $0 + i32.const 3 + i32.shr_u + set_local $5 + block $block_25 + get_local $0 + i32.const 256 + i32.lt_u + if $if_106 + get_local $1 + i32.load offset=12 + set_local $3 + get_local $1 + i32.load offset=8 + tee_local $6 + get_local $5 + i32.const 3 + i32.shl + i32.const 4028 + i32.add + tee_local $0 + i32.ne + if $if_107 + block $block_26 + get_local $2 + get_local $6 + i32.gt_u + if $if_108 + call $_abort + end ;; $if_108 + get_local $1 + get_local $6 + i32.load offset=12 + i32.eq + br_if $block_26 + call $_abort + end ;; $block_26 + end ;; $if_107 + get_local $3 + get_local $6 + i32.eq + if $if_109 + i32.const 3988 + i32.const 3988 + i32.load + i32.const 1 + get_local $5 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + br $block_25 + end ;; $if_109 + get_local $0 + get_local $3 + i32.eq + if $if_110 + get_local $3 + i32.const 8 + i32.add + set_local $20 + else + block $block_27 + get_local $2 + get_local $3 + i32.gt_u + if $if_111 + call $_abort + end ;; $if_111 + get_local $1 + get_local $3 + i32.const 8 + i32.add + tee_local $0 + i32.load + i32.eq + if $if_112 + get_local $0 + set_local $20 + br $block_27 + end ;; $if_112 + call $_abort + end ;; $block_27 + end ;; $if_110 + get_local $6 + get_local $3 + i32.store offset=12 + get_local $20 + get_local $6 + i32.store + else + get_local $1 + i32.load offset=24 + set_local $10 + get_local $1 + get_local $1 + i32.load offset=12 + tee_local $0 + i32.eq + if $if_113 + block $block_28 + get_local $1 + i32.const 16 + i32.add + tee_local $3 + i32.const 4 + i32.add + tee_local $6 + i32.load + tee_local $0 + if $if_114 + get_local $6 + set_local $3 + else + get_local $3 + i32.load + tee_local $0 + i32.eqz + br_if $block_28 + end ;; $if_114 + loop $loop_8 + block $block_29 + get_local $0 + i32.const 20 + i32.add + tee_local $6 + i32.load + tee_local $5 + i32.eqz + if $if_115 + get_local $0 + i32.const 16 + i32.add + tee_local $6 + i32.load + tee_local $5 + i32.eqz + br_if $block_29 + end ;; $if_115 + get_local $6 + set_local $3 + get_local $5 + set_local $0 + br $loop_8 + end ;; $block_29 + end ;; $loop_8 + get_local $2 + get_local $3 + i32.gt_u + if $if_116 + call $_abort + else + get_local $3 + i32.const 0 + i32.store + get_local $0 + set_local $9 + end ;; $if_116 + end ;; $block_28 + else + get_local $2 + get_local $1 + i32.load offset=8 + tee_local $3 + i32.gt_u + if $if_117 + call $_abort + end ;; $if_117 + get_local $3 + i32.const 12 + i32.add + tee_local $2 + i32.load + get_local $1 + i32.ne + if $if_118 + call $_abort + end ;; $if_118 + get_local $1 + get_local $0 + i32.const 8 + i32.add + tee_local $6 + i32.load + i32.eq + if $if_119 + get_local $2 + get_local $0 + i32.store + get_local $6 + get_local $3 + i32.store + get_local $0 + set_local $9 + else + call $_abort + end ;; $if_119 + end ;; $if_113 + get_local $10 + i32.eqz + br_if $block_25 + get_local $1 + get_local $1 + i32.load offset=28 + tee_local $0 + i32.const 2 + i32.shl + i32.const 4292 + i32.add + tee_local $3 + i32.load + i32.eq + if $if_120 + block $block_30 + get_local $3 + get_local $9 + i32.store + get_local $9 + br_if $block_30 + i32.const 3992 + i32.const 3992 + i32.load + i32.const 1 + get_local $0 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + br $block_25 + end ;; $block_30 + else + i32.const 4004 + i32.load + get_local $10 + i32.gt_u + if $if_121 + call $_abort + else + get_local $10 + i32.const 16 + i32.add + tee_local $0 + get_local $10 + i32.const 20 + i32.add + get_local $1 + get_local $0 + i32.load + i32.eq + select + get_local $9 + i32.store + get_local $9 + i32.eqz + br_if $block_25 + end ;; $if_121 + end ;; $if_120 + i32.const 4004 + i32.load + tee_local $3 + get_local $9 + i32.gt_u + if $if_122 + call $_abort + end ;; $if_122 + get_local $9 + get_local $10 + i32.store offset=24 + get_local $1 + i32.const 16 + i32.add + tee_local $2 + i32.load + tee_local $0 + if $if_123 + get_local $3 + get_local $0 + i32.gt_u + if $if_124 + call $_abort + else + get_local $9 + get_local $0 + i32.store offset=16 + get_local $0 + get_local $9 + i32.store offset=24 + end ;; $if_124 + end ;; $if_123 + get_local $2 + i32.load offset=4 + tee_local $0 + i32.eqz + br_if $block_25 + i32.const 4004 + i32.load + get_local $0 + i32.gt_u + if $if_125 + call $_abort + else + get_local $9 + get_local $0 + i32.store offset=20 + get_local $0 + get_local $9 + i32.store offset=24 + end ;; $if_125 + end ;; $if_106 + end ;; $block_25 + get_local $1 + get_local $13 + i32.add + set_local $1 + get_local $4 + get_local $13 + i32.add + else + get_local $4 + end ;; $if_105 + set_local $2 + get_local $1 + i32.const 4 + i32.add + tee_local $0 + get_local $0 + i32.load + i32.const -2 + i32.and + i32.store + get_local $7 + get_local $2 + i32.const 1 + i32.or + i32.store offset=4 + get_local $2 + get_local $7 + i32.add + get_local $2 + i32.store + get_local $2 + i32.const 3 + i32.shr_u + set_local $3 + get_local $2 + i32.const 256 + i32.lt_u + if $if_126 + get_local $3 + i32.const 3 + i32.shl + i32.const 4028 + i32.add + set_local $0 + i32.const 3988 + i32.load + tee_local $1 + i32.const 1 + get_local $3 + i32.shl + tee_local $3 + i32.and + if $if_127 + block $block_31 + i32.const 4004 + i32.load + get_local $0 + i32.const 8 + i32.add + tee_local $3 + i32.load + tee_local $1 + i32.le_u + if $if_128 + get_local $1 + set_local $15 + get_local $3 + set_local $21 + br $block_31 + end ;; $if_128 + call $_abort + end ;; $block_31 + else + i32.const 3988 + get_local $1 + get_local $3 + i32.or + i32.store + get_local $0 + set_local $15 + get_local $0 + i32.const 8 + i32.add + set_local $21 + end ;; $if_127 + get_local $21 + get_local $7 + i32.store + get_local $15 + get_local $7 + i32.store offset=12 + get_local $7 + get_local $15 + i32.store offset=8 + get_local $7 + get_local $0 + i32.store offset=12 + br $block_24 + end ;; $if_126 + get_local $2 + i32.const 8 + i32.shr_u + tee_local $0 + if $if_129 (result i32) + get_local $2 + i32.const 16777215 + i32.gt_u + if $if_130 (result i32) + i32.const 31 + else + get_local $0 + get_local $0 + i32.const 1048320 + i32.add + i32.const 16 + i32.shr_u + i32.const 8 + i32.and + tee_local $3 + i32.shl + tee_local $1 + i32.const 520192 + i32.add + i32.const 16 + i32.shr_u + i32.const 4 + i32.and + set_local $0 + i32.const 14 + get_local $0 + get_local $3 + i32.or + get_local $1 + get_local $0 + i32.shl + tee_local $0 + i32.const 245760 + i32.add + i32.const 16 + i32.shr_u + i32.const 2 + i32.and + tee_local $3 + i32.or + i32.sub + get_local $0 + get_local $3 + i32.shl + i32.const 15 + i32.shr_u + i32.add + tee_local $0 + i32.const 1 + i32.shl + get_local $2 + get_local $0 + i32.const 7 + i32.add + i32.shr_u + i32.const 1 + i32.and + i32.or + end ;; $if_130 + else + i32.const 0 + end ;; $if_129 + tee_local $3 + i32.const 2 + i32.shl + i32.const 4292 + i32.add + set_local $0 + get_local $7 + get_local $3 + i32.store offset=28 + get_local $7 + i32.const 16 + i32.add + tee_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store + i32.const 3992 + i32.load + tee_local $1 + i32.const 1 + get_local $3 + i32.shl + tee_local $4 + i32.and + i32.eqz + if $if_131 + i32.const 3992 + get_local $1 + get_local $4 + i32.or + i32.store + get_local $0 + get_local $7 + i32.store + get_local $7 + get_local $0 + i32.store offset=24 + get_local $7 + get_local $7 + i32.store offset=12 + get_local $7 + get_local $7 + i32.store offset=8 + br $block_24 + end ;; $if_131 + get_local $2 + get_local $0 + i32.load + tee_local $0 + i32.load offset=4 + i32.const -8 + i32.and + i32.eq + if $if_132 + get_local $0 + set_local $11 + else + block $block_32 + get_local $2 + i32.const 0 + i32.const 25 + get_local $3 + i32.const 1 + i32.shr_u + i32.sub + get_local $3 + i32.const 31 + i32.eq + select + i32.shl + set_local $1 + loop $loop_9 + get_local $0 + i32.const 16 + i32.add + get_local $1 + i32.const 31 + i32.shr_u + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load + tee_local $3 + if $if_133 + get_local $1 + i32.const 1 + i32.shl + set_local $1 + get_local $2 + get_local $3 + i32.load offset=4 + i32.const -8 + i32.and + i32.eq + if $if_134 + get_local $3 + set_local $11 + br $block_32 + else + get_local $3 + set_local $0 + br $loop_9 + end ;; $if_134 + unreachable + end ;; $if_133 + end ;; $loop_9 + i32.const 4004 + i32.load + get_local $4 + i32.gt_u + if $if_135 + call $_abort + else + get_local $4 + get_local $7 + i32.store + get_local $7 + get_local $0 + i32.store offset=24 + get_local $7 + get_local $7 + i32.store offset=12 + get_local $7 + get_local $7 + i32.store offset=8 + br $block_24 + end ;; $if_135 + end ;; $block_32 + end ;; $if_132 + i32.const 4004 + i32.load + tee_local $0 + get_local $11 + i32.le_u + get_local $0 + get_local $11 + i32.const 8 + i32.add + tee_local $3 + i32.load + tee_local $0 + i32.le_u + i32.and + if $if_136 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $3 + get_local $7 + i32.store + get_local $7 + get_local $0 + i32.store offset=8 + get_local $7 + get_local $11 + i32.store offset=12 + get_local $7 + i32.const 0 + i32.store offset=24 + else + call $_abort + end ;; $if_136 + end ;; $block_24 + end ;; $if_103 + get_local $14 + set_global $27 + get_local $8 + i32.const 8 + i32.add + return + end ;; $if_102 + end ;; $block_22 + i32.const 4436 + set_local $2 + loop $loop_10 + block $block_33 + get_local $2 + i32.load + tee_local $4 + get_local $6 + i32.le_u + if $if_137 + get_local $4 + get_local $2 + i32.load offset=4 + i32.add + tee_local $5 + get_local $6 + i32.gt_u + br_if $block_33 + end ;; $if_137 + get_local $2 + i32.load offset=8 + set_local $2 + br $loop_10 + end ;; $block_33 + end ;; $loop_10 + get_local $5 + i32.const -47 + i32.add + tee_local $4 + i32.const 8 + i32.add + set_local $2 + get_local $6 + get_local $4 + i32.const 0 + get_local $2 + i32.sub + i32.const 7 + i32.and + i32.const 0 + get_local $2 + i32.const 7 + i32.and + select + i32.add + tee_local $2 + get_local $2 + get_local $6 + i32.const 16 + i32.add + tee_local $9 + i32.lt_u + select + tee_local $2 + i32.const 8 + i32.add + set_local $4 + i32.const 4012 + get_local $0 + i32.const 0 + get_local $0 + i32.const 8 + i32.add + tee_local $7 + i32.sub + i32.const 7 + i32.and + i32.const 0 + get_local $7 + i32.const 7 + i32.and + select + tee_local $7 + i32.add + tee_local $10 + i32.store + i32.const 4000 + get_local $1 + i32.const -40 + i32.add + tee_local $11 + get_local $7 + i32.sub + tee_local $7 + i32.store + get_local $10 + get_local $7 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $11 + i32.add + i32.const 40 + i32.store offset=4 + i32.const 4016 + i32.const 4476 + i32.load + i32.store + get_local $2 + i32.const 4 + i32.add + tee_local $7 + i32.const 27 + i32.store + get_local $4 + i32.const 4436 + i64.load align=4 + i64.store align=4 + get_local $4 + i32.const 4444 + i64.load align=4 + i64.store offset=8 align=4 + i32.const 4436 + get_local $0 + i32.store + i32.const 4440 + get_local $1 + i32.store + i32.const 4448 + i32.const 0 + i32.store + i32.const 4444 + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.add + set_local $0 + loop $loop_11 + get_local $0 + i32.const 4 + i32.add + tee_local $1 + i32.const 7 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.lt_u + if $if_138 + get_local $1 + set_local $0 + br $loop_11 + end ;; $if_138 + end ;; $loop_11 + get_local $2 + get_local $6 + i32.ne + if $if_139 + get_local $7 + get_local $7 + i32.load + i32.const -2 + i32.and + i32.store + get_local $6 + get_local $2 + get_local $6 + i32.sub + tee_local $4 + i32.const 1 + i32.or + i32.store offset=4 + get_local $2 + get_local $4 + i32.store + get_local $4 + i32.const 3 + i32.shr_u + set_local $1 + get_local $4 + i32.const 256 + i32.lt_u + if $if_140 + get_local $1 + i32.const 3 + i32.shl + i32.const 4028 + i32.add + set_local $0 + i32.const 3988 + i32.load + tee_local $2 + i32.const 1 + get_local $1 + i32.shl + tee_local $1 + i32.and + if $if_141 + i32.const 4004 + i32.load + get_local $0 + i32.const 8 + i32.add + tee_local $1 + i32.load + tee_local $2 + i32.gt_u + if $if_142 + call $_abort + else + get_local $2 + set_local $17 + get_local $1 + set_local $22 + end ;; $if_142 + else + i32.const 3988 + get_local $1 + get_local $2 + i32.or + i32.store + get_local $0 + set_local $17 + get_local $0 + i32.const 8 + i32.add + set_local $22 + end ;; $if_141 + get_local $22 + get_local $6 + i32.store + get_local $17 + get_local $6 + i32.store offset=12 + get_local $6 + get_local $17 + i32.store offset=8 + get_local $6 + get_local $0 + i32.store offset=12 + br $block_19 + end ;; $if_140 + get_local $4 + i32.const 8 + i32.shr_u + tee_local $0 + if $if_143 (result i32) + get_local $4 + i32.const 16777215 + i32.gt_u + if $if_144 (result i32) + i32.const 31 + else + get_local $0 + get_local $0 + i32.const 1048320 + i32.add + i32.const 16 + i32.shr_u + i32.const 8 + i32.and + tee_local $1 + i32.shl + tee_local $2 + i32.const 520192 + i32.add + i32.const 16 + i32.shr_u + i32.const 4 + i32.and + set_local $0 + i32.const 14 + get_local $2 + get_local $0 + i32.shl + tee_local $2 + i32.const 245760 + i32.add + i32.const 16 + i32.shr_u + i32.const 2 + i32.and + tee_local $5 + get_local $0 + get_local $1 + i32.or + i32.or + i32.sub + get_local $2 + get_local $5 + i32.shl + i32.const 15 + i32.shr_u + i32.add + tee_local $0 + i32.const 1 + i32.shl + get_local $4 + get_local $0 + i32.const 7 + i32.add + i32.shr_u + i32.const 1 + i32.and + i32.or + end ;; $if_144 + else + i32.const 0 + end ;; $if_143 + tee_local $1 + i32.const 2 + i32.shl + i32.const 4292 + i32.add + set_local $0 + get_local $6 + get_local $1 + i32.store offset=28 + get_local $6 + i32.const 0 + i32.store offset=20 + get_local $9 + i32.const 0 + i32.store + i32.const 3992 + i32.load + tee_local $2 + i32.const 1 + get_local $1 + i32.shl + tee_local $5 + i32.and + i32.eqz + if $if_145 + i32.const 3992 + get_local $2 + get_local $5 + i32.or + i32.store + get_local $0 + get_local $6 + i32.store + get_local $6 + get_local $0 + i32.store offset=24 + get_local $6 + get_local $6 + i32.store offset=12 + get_local $6 + get_local $6 + i32.store offset=8 + br $block_19 + end ;; $if_145 + get_local $0 + i32.load + tee_local $0 + i32.load offset=4 + i32.const -8 + i32.and + get_local $4 + i32.eq + if $if_146 + get_local $0 + set_local $8 + else + block $block_34 + get_local $4 + i32.const 0 + i32.const 25 + get_local $1 + i32.const 1 + i32.shr_u + i32.sub + get_local $1 + i32.const 31 + i32.eq + select + i32.shl + set_local $2 + loop $loop_12 + get_local $0 + i32.const 16 + i32.add + get_local $2 + i32.const 31 + i32.shr_u + i32.const 2 + i32.shl + i32.add + tee_local $5 + i32.load + tee_local $1 + if $if_147 + get_local $2 + i32.const 1 + i32.shl + set_local $2 + get_local $1 + i32.load offset=4 + i32.const -8 + i32.and + get_local $4 + i32.eq + if $if_148 + get_local $1 + set_local $8 + br $block_34 + else + get_local $1 + set_local $0 + br $loop_12 + end ;; $if_148 + unreachable + end ;; $if_147 + end ;; $loop_12 + i32.const 4004 + i32.load + get_local $5 + i32.gt_u + if $if_149 + call $_abort + else + get_local $5 + get_local $6 + i32.store + get_local $6 + get_local $0 + i32.store offset=24 + get_local $6 + get_local $6 + i32.store offset=12 + get_local $6 + get_local $6 + i32.store offset=8 + br $block_19 + end ;; $if_149 + end ;; $block_34 + end ;; $if_146 + i32.const 4004 + i32.load + tee_local $0 + get_local $8 + i32.le_u + get_local $0 + get_local $8 + i32.const 8 + i32.add + tee_local $1 + i32.load + tee_local $0 + i32.le_u + i32.and + if $if_150 + get_local $0 + get_local $6 + i32.store offset=12 + get_local $1 + get_local $6 + i32.store + get_local $6 + get_local $0 + i32.store offset=8 + get_local $6 + get_local $8 + i32.store offset=12 + get_local $6 + i32.const 0 + i32.store offset=24 + else + call $_abort + end ;; $if_150 + end ;; $if_139 + end ;; $block_19 + else + i32.const 4004 + i32.load + tee_local $2 + i32.eqz + get_local $0 + get_local $2 + i32.lt_u + i32.or + if $if_151 + i32.const 4004 + get_local $0 + i32.store + end ;; $if_151 + i32.const 4436 + get_local $0 + i32.store + i32.const 4440 + get_local $1 + i32.store + i32.const 4448 + i32.const 0 + i32.store + i32.const 4024 + i32.const 4460 + i32.load + i32.store + i32.const 4020 + i32.const -1 + i32.store + i32.const 4040 + i32.const 4028 + i32.store + i32.const 4036 + i32.const 4028 + i32.store + i32.const 4048 + i32.const 4036 + i32.store + i32.const 4044 + i32.const 4036 + i32.store + i32.const 4056 + i32.const 4044 + i32.store + i32.const 4052 + i32.const 4044 + i32.store + i32.const 4064 + i32.const 4052 + i32.store + i32.const 4060 + i32.const 4052 + i32.store + i32.const 4072 + i32.const 4060 + i32.store + i32.const 4068 + i32.const 4060 + i32.store + i32.const 4080 + i32.const 4068 + i32.store + i32.const 4076 + i32.const 4068 + i32.store + i32.const 4088 + i32.const 4076 + i32.store + i32.const 4084 + i32.const 4076 + i32.store + i32.const 4096 + i32.const 4084 + i32.store + i32.const 4092 + i32.const 4084 + i32.store + i32.const 4104 + i32.const 4092 + i32.store + i32.const 4100 + i32.const 4092 + i32.store + i32.const 4112 + i32.const 4100 + i32.store + i32.const 4108 + i32.const 4100 + i32.store + i32.const 4120 + i32.const 4108 + i32.store + i32.const 4116 + i32.const 4108 + i32.store + i32.const 4128 + i32.const 4116 + i32.store + i32.const 4124 + i32.const 4116 + i32.store + i32.const 4136 + i32.const 4124 + i32.store + i32.const 4132 + i32.const 4124 + i32.store + i32.const 4144 + i32.const 4132 + i32.store + i32.const 4140 + i32.const 4132 + i32.store + i32.const 4152 + i32.const 4140 + i32.store + i32.const 4148 + i32.const 4140 + i32.store + i32.const 4160 + i32.const 4148 + i32.store + i32.const 4156 + i32.const 4148 + i32.store + i32.const 4168 + i32.const 4156 + i32.store + i32.const 4164 + i32.const 4156 + i32.store + i32.const 4176 + i32.const 4164 + i32.store + i32.const 4172 + i32.const 4164 + i32.store + i32.const 4184 + i32.const 4172 + i32.store + i32.const 4180 + i32.const 4172 + i32.store + i32.const 4192 + i32.const 4180 + i32.store + i32.const 4188 + i32.const 4180 + i32.store + i32.const 4200 + i32.const 4188 + i32.store + i32.const 4196 + i32.const 4188 + i32.store + i32.const 4208 + i32.const 4196 + i32.store + i32.const 4204 + i32.const 4196 + i32.store + i32.const 4216 + i32.const 4204 + i32.store + i32.const 4212 + i32.const 4204 + i32.store + i32.const 4224 + i32.const 4212 + i32.store + i32.const 4220 + i32.const 4212 + i32.store + i32.const 4232 + i32.const 4220 + i32.store + i32.const 4228 + i32.const 4220 + i32.store + i32.const 4240 + i32.const 4228 + i32.store + i32.const 4236 + i32.const 4228 + i32.store + i32.const 4248 + i32.const 4236 + i32.store + i32.const 4244 + i32.const 4236 + i32.store + i32.const 4256 + i32.const 4244 + i32.store + i32.const 4252 + i32.const 4244 + i32.store + i32.const 4264 + i32.const 4252 + i32.store + i32.const 4260 + i32.const 4252 + i32.store + i32.const 4272 + i32.const 4260 + i32.store + i32.const 4268 + i32.const 4260 + i32.store + i32.const 4280 + i32.const 4268 + i32.store + i32.const 4276 + i32.const 4268 + i32.store + i32.const 4288 + i32.const 4276 + i32.store + i32.const 4284 + i32.const 4276 + i32.store + i32.const 4012 + get_local $0 + i32.const 0 + get_local $0 + i32.const 8 + i32.add + tee_local $2 + i32.sub + i32.const 7 + i32.and + i32.const 0 + get_local $2 + i32.const 7 + i32.and + select + tee_local $2 + i32.add + tee_local $4 + i32.store + i32.const 4000 + get_local $1 + i32.const -40 + i32.add + tee_local $1 + get_local $2 + i32.sub + tee_local $2 + i32.store + get_local $4 + get_local $2 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $1 + i32.add + i32.const 40 + i32.store offset=4 + i32.const 4016 + i32.const 4476 + i32.load + i32.store + end ;; $if_98 + i32.const 4000 + i32.load + tee_local $0 + get_local $3 + i32.gt_u + if $if_152 + i32.const 4000 + get_local $0 + get_local $3 + i32.sub + tee_local $1 + i32.store + br $block_12 + end ;; $if_152 + end ;; $block_13 + call $___errno_location + i32.const 12 + i32.store + get_local $14 + set_global $27 + i32.const 0 + return + end ;; $block_12 + i32.const 4012 + get_local $3 + i32.const 4012 + i32.load + tee_local $0 + i32.add + tee_local $2 + i32.store + get_local $2 + get_local $1 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $3 + i32.const 3 + i32.or + i32.store offset=4 + end ;; $block_11 + get_local $14 + set_global $27 + get_local $0 + i32.const 8 + i32.add + ) + + (func $_free (type $2) + (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + get_local $0 + i32.eqz + if $if + return + end ;; $if + get_local $0 + i32.const -8 + i32.add + tee_local $4 + i32.const 4004 + i32.load + tee_local $12 + i32.lt_u + if $if_0 + call $_abort + end ;; $if_0 + get_local $0 + i32.const -4 + i32.add + i32.load + tee_local $0 + i32.const 3 + i32.and + tee_local $11 + i32.const 1 + i32.eq + if $if_1 + call $_abort + end ;; $if_1 + get_local $4 + get_local $0 + i32.const -8 + i32.and + tee_local $2 + i32.add + set_local $7 + get_local $0 + i32.const 1 + i32.and + if $if_2 + get_local $2 + set_local $1 + get_local $4 + tee_local $3 + set_local $5 + else + block $block + get_local $4 + i32.load + set_local $9 + get_local $11 + i32.eqz + if $if_3 + return + end ;; $if_3 + get_local $4 + get_local $9 + i32.sub + tee_local $0 + get_local $12 + i32.lt_u + if $if_4 + call $_abort + end ;; $if_4 + get_local $2 + get_local $9 + i32.add + set_local $4 + get_local $0 + i32.const 4008 + i32.load + i32.eq + if $if_5 + get_local $7 + i32.const 4 + i32.add + tee_local $3 + i32.load + tee_local $1 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if $if_6 + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + br $block + end ;; $if_6 + i32.const 3996 + get_local $4 + i32.store + get_local $3 + get_local $1 + i32.const -2 + i32.and + i32.store + get_local $0 + get_local $4 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $4 + i32.add + get_local $4 + i32.store + return + end ;; $if_5 + get_local $9 + i32.const 3 + i32.shr_u + set_local $2 + get_local $9 + i32.const 256 + i32.lt_u + if $if_7 + get_local $0 + i32.load offset=12 + set_local $1 + get_local $0 + i32.load offset=8 + tee_local $5 + get_local $2 + i32.const 3 + i32.shl + i32.const 4028 + i32.add + tee_local $3 + i32.ne + if $if_8 + get_local $12 + get_local $5 + i32.gt_u + if $if_9 + call $_abort + end ;; $if_9 + get_local $5 + i32.load offset=12 + get_local $0 + i32.ne + if $if_10 + call $_abort + end ;; $if_10 + end ;; $if_8 + get_local $1 + get_local $5 + i32.eq + if $if_11 + i32.const 3988 + i32.const 3988 + i32.load + i32.const 1 + get_local $2 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + br $block + end ;; $if_11 + get_local $1 + get_local $3 + i32.eq + if $if_12 + get_local $1 + i32.const 8 + i32.add + set_local $6 + else + get_local $12 + get_local $1 + i32.gt_u + if $if_13 + call $_abort + end ;; $if_13 + get_local $0 + get_local $1 + i32.const 8 + i32.add + tee_local $3 + i32.load + i32.eq + if $if_14 + get_local $3 + set_local $6 + else + call $_abort + end ;; $if_14 + end ;; $if_12 + get_local $5 + get_local $1 + i32.store offset=12 + get_local $6 + get_local $5 + i32.store + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + br $block + end ;; $if_7 + get_local $0 + i32.load offset=24 + set_local $13 + get_local $0 + get_local $0 + i32.load offset=12 + tee_local $2 + i32.eq + if $if_15 + block $block_0 + get_local $0 + i32.const 16 + i32.add + tee_local $6 + i32.const 4 + i32.add + tee_local $9 + i32.load + tee_local $2 + if $if_16 + get_local $9 + set_local $6 + else + get_local $6 + i32.load + tee_local $2 + i32.eqz + br_if $block_0 + end ;; $if_16 + loop $loop + block $block_1 + get_local $2 + i32.const 20 + i32.add + tee_local $9 + i32.load + tee_local $11 + i32.eqz + if $if_17 + get_local $2 + i32.const 16 + i32.add + tee_local $9 + i32.load + tee_local $11 + i32.eqz + br_if $block_1 + end ;; $if_17 + get_local $9 + set_local $6 + get_local $11 + set_local $2 + br $loop + end ;; $block_1 + end ;; $loop + get_local $12 + get_local $6 + i32.gt_u + if $if_18 + call $_abort + else + get_local $6 + i32.const 0 + i32.store + get_local $2 + set_local $8 + end ;; $if_18 + end ;; $block_0 + else + get_local $12 + get_local $0 + i32.load offset=8 + tee_local $6 + i32.gt_u + if $if_19 + call $_abort + end ;; $if_19 + get_local $6 + i32.const 12 + i32.add + tee_local $9 + i32.load + get_local $0 + i32.ne + if $if_20 + call $_abort + end ;; $if_20 + get_local $0 + get_local $2 + i32.const 8 + i32.add + tee_local $11 + i32.load + i32.eq + if $if_21 + get_local $9 + get_local $2 + i32.store + get_local $11 + get_local $6 + i32.store + get_local $2 + set_local $8 + else + call $_abort + end ;; $if_21 + end ;; $if_15 + get_local $13 + if $if_22 + get_local $0 + get_local $0 + i32.load offset=28 + tee_local $2 + i32.const 2 + i32.shl + i32.const 4292 + i32.add + tee_local $6 + i32.load + i32.eq + if $if_23 + get_local $6 + get_local $8 + i32.store + get_local $8 + i32.eqz + if $if_24 + i32.const 3992 + i32.const 3992 + i32.load + i32.const 1 + get_local $2 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + br $block + end ;; $if_24 + else + i32.const 4004 + i32.load + get_local $13 + i32.gt_u + if $if_25 + call $_abort + else + get_local $13 + i32.const 16 + i32.add + tee_local $2 + get_local $13 + i32.const 20 + i32.add + get_local $0 + get_local $2 + i32.load + i32.eq + select + get_local $8 + i32.store + get_local $8 + i32.eqz + if $if_26 + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + br $block + end ;; $if_26 + end ;; $if_25 + end ;; $if_23 + i32.const 4004 + i32.load + tee_local $6 + get_local $8 + i32.gt_u + if $if_27 + call $_abort + end ;; $if_27 + get_local $8 + get_local $13 + i32.store offset=24 + get_local $0 + i32.const 16 + i32.add + tee_local $9 + i32.load + tee_local $2 + if $if_28 + get_local $6 + get_local $2 + i32.gt_u + if $if_29 + call $_abort + else + get_local $8 + get_local $2 + i32.store offset=16 + get_local $2 + get_local $8 + i32.store offset=24 + end ;; $if_29 + end ;; $if_28 + get_local $9 + i32.load offset=4 + tee_local $2 + if $if_30 + i32.const 4004 + i32.load + get_local $2 + i32.gt_u + if $if_31 + call $_abort + else + get_local $8 + get_local $2 + i32.store offset=20 + get_local $2 + get_local $8 + i32.store offset=24 + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + end ;; $if_31 + else + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + end ;; $if_30 + else + get_local $4 + set_local $1 + get_local $0 + tee_local $3 + set_local $5 + end ;; $if_22 + end ;; $block + end ;; $if_2 + get_local $5 + get_local $7 + i32.ge_u + if $if_32 + call $_abort + end ;; $if_32 + get_local $7 + i32.const 4 + i32.add + tee_local $4 + i32.load + tee_local $0 + i32.const 1 + i32.and + i32.eqz + if $if_33 + call $_abort + end ;; $if_33 + get_local $0 + i32.const 2 + i32.and + if $if_34 (result i32) + get_local $4 + get_local $0 + i32.const -2 + i32.and + i32.store + get_local $3 + get_local $1 + i32.const 1 + i32.or + i32.store offset=4 + get_local $1 + get_local $5 + i32.add + get_local $1 + i32.store + get_local $1 + else + get_local $7 + i32.const 4012 + i32.load + i32.eq + if $if_35 + i32.const 4000 + get_local $1 + i32.const 4000 + i32.load + i32.add + tee_local $0 + i32.store + i32.const 4012 + get_local $3 + i32.store + get_local $3 + get_local $0 + i32.const 1 + i32.or + i32.store offset=4 + i32.const 4008 + i32.load + get_local $3 + i32.ne + if $if_36 + return + end ;; $if_36 + i32.const 4008 + i32.const 0 + i32.store + i32.const 3996 + i32.const 0 + i32.store + return + end ;; $if_35 + get_local $7 + i32.const 4008 + i32.load + i32.eq + if $if_37 + i32.const 3996 + get_local $1 + i32.const 3996 + i32.load + i32.add + tee_local $0 + i32.store + i32.const 4008 + get_local $5 + i32.store + get_local $3 + get_local $0 + i32.const 1 + i32.or + i32.store offset=4 + get_local $0 + get_local $5 + i32.add + get_local $0 + i32.store + return + end ;; $if_37 + get_local $1 + get_local $0 + i32.const -8 + i32.and + i32.add + set_local $4 + get_local $0 + i32.const 3 + i32.shr_u + set_local $6 + block $block_2 + get_local $0 + i32.const 256 + i32.lt_u + if $if_38 + get_local $7 + i32.load offset=12 + set_local $1 + get_local $7 + i32.load offset=8 + tee_local $2 + get_local $6 + i32.const 3 + i32.shl + i32.const 4028 + i32.add + tee_local $0 + i32.ne + if $if_39 + i32.const 4004 + i32.load + get_local $2 + i32.gt_u + if $if_40 + call $_abort + end ;; $if_40 + get_local $2 + i32.load offset=12 + get_local $7 + i32.ne + if $if_41 + call $_abort + end ;; $if_41 + end ;; $if_39 + get_local $1 + get_local $2 + i32.eq + if $if_42 + i32.const 3988 + i32.const 3988 + i32.load + i32.const 1 + get_local $6 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + br $block_2 + end ;; $if_42 + get_local $0 + get_local $1 + i32.eq + if $if_43 + get_local $1 + i32.const 8 + i32.add + set_local $16 + else + i32.const 4004 + i32.load + get_local $1 + i32.gt_u + if $if_44 + call $_abort + end ;; $if_44 + get_local $7 + get_local $1 + i32.const 8 + i32.add + tee_local $0 + i32.load + i32.eq + if $if_45 + get_local $0 + set_local $16 + else + call $_abort + end ;; $if_45 + end ;; $if_43 + get_local $2 + get_local $1 + i32.store offset=12 + get_local $16 + get_local $2 + i32.store + else + get_local $7 + i32.load offset=24 + set_local $8 + get_local $7 + get_local $7 + i32.load offset=12 + tee_local $0 + i32.eq + if $if_46 + block $block_3 + get_local $7 + i32.const 16 + i32.add + tee_local $1 + i32.const 4 + i32.add + tee_local $2 + i32.load + tee_local $0 + if $if_47 + get_local $2 + set_local $1 + else + get_local $1 + i32.load + tee_local $0 + i32.eqz + br_if $block_3 + end ;; $if_47 + loop $loop_0 + block $block_4 + get_local $0 + i32.const 20 + i32.add + tee_local $2 + i32.load + tee_local $6 + i32.eqz + if $if_48 + get_local $0 + i32.const 16 + i32.add + tee_local $2 + i32.load + tee_local $6 + i32.eqz + br_if $block_4 + end ;; $if_48 + get_local $2 + set_local $1 + get_local $6 + set_local $0 + br $loop_0 + end ;; $block_4 + end ;; $loop_0 + i32.const 4004 + i32.load + get_local $1 + i32.gt_u + if $if_49 + call $_abort + else + get_local $1 + i32.const 0 + i32.store + get_local $0 + set_local $10 + end ;; $if_49 + end ;; $block_3 + else + i32.const 4004 + i32.load + get_local $7 + i32.load offset=8 + tee_local $1 + i32.gt_u + if $if_50 + call $_abort + end ;; $if_50 + get_local $1 + i32.const 12 + i32.add + tee_local $2 + i32.load + get_local $7 + i32.ne + if $if_51 + call $_abort + end ;; $if_51 + get_local $7 + get_local $0 + i32.const 8 + i32.add + tee_local $6 + i32.load + i32.eq + if $if_52 + get_local $2 + get_local $0 + i32.store + get_local $6 + get_local $1 + i32.store + get_local $0 + set_local $10 + else + call $_abort + end ;; $if_52 + end ;; $if_46 + get_local $8 + if $if_53 + get_local $7 + get_local $7 + i32.load offset=28 + tee_local $0 + i32.const 2 + i32.shl + i32.const 4292 + i32.add + tee_local $1 + i32.load + i32.eq + if $if_54 + get_local $1 + get_local $10 + i32.store + get_local $10 + i32.eqz + if $if_55 + i32.const 3992 + i32.const 3992 + i32.load + i32.const 1 + get_local $0 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + br $block_2 + end ;; $if_55 + else + i32.const 4004 + i32.load + get_local $8 + i32.gt_u + if $if_56 + call $_abort + else + get_local $8 + i32.const 16 + i32.add + tee_local $0 + get_local $8 + i32.const 20 + i32.add + get_local $7 + get_local $0 + i32.load + i32.eq + select + get_local $10 + i32.store + get_local $10 + i32.eqz + br_if $block_2 + end ;; $if_56 + end ;; $if_54 + i32.const 4004 + i32.load + tee_local $1 + get_local $10 + i32.gt_u + if $if_57 + call $_abort + end ;; $if_57 + get_local $10 + get_local $8 + i32.store offset=24 + get_local $7 + i32.const 16 + i32.add + tee_local $2 + i32.load + tee_local $0 + if $if_58 + get_local $1 + get_local $0 + i32.gt_u + if $if_59 + call $_abort + else + get_local $10 + get_local $0 + i32.store offset=16 + get_local $0 + get_local $10 + i32.store offset=24 + end ;; $if_59 + end ;; $if_58 + get_local $2 + i32.load offset=4 + tee_local $0 + if $if_60 + i32.const 4004 + i32.load + get_local $0 + i32.gt_u + if $if_61 + call $_abort + else + get_local $10 + get_local $0 + i32.store offset=20 + get_local $0 + get_local $10 + i32.store offset=24 + end ;; $if_61 + end ;; $if_60 + end ;; $if_53 + end ;; $if_38 + end ;; $block_2 + get_local $3 + get_local $4 + i32.const 1 + i32.or + i32.store offset=4 + get_local $4 + get_local $5 + i32.add + get_local $4 + i32.store + get_local $3 + i32.const 4008 + i32.load + i32.eq + if $if_62 (result i32) + i32.const 3996 + get_local $4 + i32.store + return + else + get_local $4 + end ;; $if_62 + end ;; $if_34 + tee_local $5 + i32.const 3 + i32.shr_u + set_local $1 + get_local $5 + i32.const 256 + i32.lt_u + if $if_63 + get_local $1 + i32.const 3 + i32.shl + i32.const 4028 + i32.add + set_local $0 + i32.const 3988 + i32.load + tee_local $5 + i32.const 1 + get_local $1 + i32.shl + tee_local $1 + i32.and + if $if_64 + i32.const 4004 + i32.load + get_local $0 + i32.const 8 + i32.add + tee_local $1 + i32.load + tee_local $5 + i32.gt_u + if $if_65 + call $_abort + else + get_local $5 + set_local $15 + get_local $1 + set_local $17 + end ;; $if_65 + else + i32.const 3988 + get_local $1 + get_local $5 + i32.or + i32.store + get_local $0 + set_local $15 + get_local $0 + i32.const 8 + i32.add + set_local $17 + end ;; $if_64 + get_local $17 + get_local $3 + i32.store + get_local $15 + get_local $3 + i32.store offset=12 + get_local $3 + get_local $15 + i32.store offset=8 + get_local $3 + get_local $0 + i32.store offset=12 + return + end ;; $if_63 + get_local $5 + i32.const 8 + i32.shr_u + tee_local $0 + if $if_66 (result i32) + get_local $5 + i32.const 16777215 + i32.gt_u + if $if_67 (result i32) + i32.const 31 + else + get_local $0 + get_local $0 + i32.const 1048320 + i32.add + i32.const 16 + i32.shr_u + i32.const 8 + i32.and + tee_local $1 + i32.shl + tee_local $4 + i32.const 520192 + i32.add + i32.const 16 + i32.shr_u + i32.const 4 + i32.and + set_local $0 + i32.const 14 + get_local $0 + get_local $1 + i32.or + get_local $4 + get_local $0 + i32.shl + tee_local $0 + i32.const 245760 + i32.add + i32.const 16 + i32.shr_u + i32.const 2 + i32.and + tee_local $1 + i32.or + i32.sub + get_local $0 + get_local $1 + i32.shl + i32.const 15 + i32.shr_u + i32.add + tee_local $0 + i32.const 1 + i32.shl + get_local $5 + get_local $0 + i32.const 7 + i32.add + i32.shr_u + i32.const 1 + i32.and + i32.or + end ;; $if_67 + else + i32.const 0 + end ;; $if_66 + tee_local $1 + i32.const 2 + i32.shl + i32.const 4292 + i32.add + set_local $0 + get_local $3 + get_local $1 + i32.store offset=28 + get_local $3 + i32.const 0 + i32.store offset=20 + get_local $3 + i32.const 0 + i32.store offset=16 + i32.const 3992 + i32.load + tee_local $4 + i32.const 1 + get_local $1 + i32.shl + tee_local $2 + i32.and + if $if_68 + block $block_5 + get_local $5 + get_local $0 + i32.load + tee_local $0 + i32.load offset=4 + i32.const -8 + i32.and + i32.eq + if $if_69 + get_local $0 + set_local $14 + else + block $block_6 + get_local $5 + i32.const 0 + i32.const 25 + get_local $1 + i32.const 1 + i32.shr_u + i32.sub + get_local $1 + i32.const 31 + i32.eq + select + i32.shl + set_local $4 + loop $loop_1 + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.const 31 + i32.shr_u + i32.const 2 + i32.shl + i32.add + tee_local $2 + i32.load + tee_local $1 + if $if_70 + get_local $4 + i32.const 1 + i32.shl + set_local $4 + get_local $5 + get_local $1 + i32.load offset=4 + i32.const -8 + i32.and + i32.eq + if $if_71 + get_local $1 + set_local $14 + br $block_6 + else + get_local $1 + set_local $0 + br $loop_1 + end ;; $if_71 + unreachable + end ;; $if_70 + end ;; $loop_1 + i32.const 4004 + i32.load + get_local $2 + i32.gt_u + if $if_72 + call $_abort + else + get_local $2 + get_local $3 + i32.store + get_local $3 + get_local $0 + i32.store offset=24 + get_local $3 + get_local $3 + i32.store offset=12 + get_local $3 + get_local $3 + i32.store offset=8 + br $block_5 + end ;; $if_72 + end ;; $block_6 + end ;; $if_69 + i32.const 4004 + i32.load + tee_local $0 + get_local $14 + i32.le_u + get_local $0 + get_local $14 + i32.const 8 + i32.add + tee_local $1 + i32.load + tee_local $0 + i32.le_u + i32.and + if $if_73 + get_local $0 + get_local $3 + i32.store offset=12 + get_local $1 + get_local $3 + i32.store + get_local $3 + get_local $0 + i32.store offset=8 + get_local $3 + get_local $14 + i32.store offset=12 + get_local $3 + i32.const 0 + i32.store offset=24 + else + call $_abort + end ;; $if_73 + end ;; $block_5 + else + i32.const 3992 + get_local $2 + get_local $4 + i32.or + i32.store + get_local $0 + get_local $3 + i32.store + get_local $3 + get_local $0 + i32.store offset=24 + get_local $3 + get_local $3 + i32.store offset=12 + get_local $3 + get_local $3 + i32.store offset=8 + end ;; $if_68 + i32.const 4020 + i32.const 4020 + i32.load + i32.const -1 + i32.add + tee_local $0 + i32.store + get_local $0 + if $if_74 + return + end ;; $if_74 + i32.const 4444 + set_local $0 + loop $loop_2 + get_local $0 + i32.load + tee_local $3 + i32.const 8 + i32.add + set_local $0 + get_local $3 + br_if $loop_2 + end ;; $loop_2 + i32.const 4020 + i32.const -1 + i32.store + ) + + (func $__Znwm (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + get_local $0 + i32.const 1 + get_local $0 + select + set_local $1 + loop $loop + get_local $1 + call $_malloc + tee_local $0 + i32.eqz + if $if + call $__ZSt15get_new_handlerv + if $if_0 + i32.const 2 + call_indirect $20 (type $1) + br $loop + else + i32.const 0 + set_local $0 + end ;; $if_0 + end ;; $if + end ;; $loop + get_local $0 + ) + + (func $__ZdlPv (type $2) + (param $0 i32) + get_local $0 + call $_free + ) + + (func $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv (type $1) + call $_abort + ) + + (func $__ZNSt3__211char_traitsIcE4copyEPcPKcm (type $0) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + get_local $2 + if $if + get_local $0 + get_local $1 + get_local $2 + call $_memcpy + drop + end ;; $if + get_local $0 + ) + + (func $__ZNSt3__211char_traitsIcE6assignERcRKc (type $8) + (param $0 i32) + (param $1 i32) + get_local $0 + get_local $1 + i32.load8_s + i32.store8 + ) + + (func $__ZNSt3__211char_traitsIcE6assignEPcmc (type $0) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + get_local $1 + if $if + get_local $0 + get_local $2 + call $__ZNSt3__211char_traitsIcE11to_int_typeEc + i32.const 255 + i32.and + get_local $1 + call $_memset + drop + end ;; $if + get_local $0 + ) + + (func $__ZNSt3__211char_traitsIcE11to_int_typeEc (type $4) + (param $0 i32) + (result i32) + get_local $0 + i32.const 255 + i32.and + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev (type $2) + (param $0 i32) + get_local $0 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if + get_local $0 + i32.load + call $__ZdlPv + end ;; $if + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE21__grow_by_and_replaceEmmmmmmPKc (type $18) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (param $5 i32) + (param $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + get_global $27 + set_local $7 + get_global $27 + i32.const 16 + i32.add + set_global $27 + i32.const -18 + get_local $1 + i32.sub + get_local $2 + i32.lt_u + if $if + call $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv + end ;; $if + get_local $0 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if_0 (result i32) + get_local $0 + i32.load + else + get_local $0 + end ;; $if_0 + set_local $8 + get_local $1 + i32.const 2147483623 + i32.lt_u + if $if_1 (result i32) + i32.const 11 + get_local $1 + i32.const 1 + i32.shl + tee_local $9 + get_local $1 + get_local $2 + i32.add + tee_local $2 + get_local $2 + get_local $9 + i32.lt_u + select + tee_local $2 + i32.const 16 + i32.add + i32.const -16 + i32.and + get_local $2 + i32.const 11 + i32.lt_u + select + else + i32.const -17 + end ;; $if_1 + tee_local $9 + call $__Znwm + set_local $2 + get_local $4 + if $if_2 + get_local $2 + get_local $8 + get_local $4 + call $__ZNSt3__211char_traitsIcE4copyEPcPKcm + drop + end ;; $if_2 + get_local $5 + if $if_3 + get_local $2 + get_local $4 + i32.add + get_local $6 + get_local $5 + call $__ZNSt3__211char_traitsIcE4copyEPcPKcm + drop + end ;; $if_3 + get_local $3 + get_local $4 + i32.sub + tee_local $6 + if $if_4 + get_local $5 + get_local $2 + get_local $4 + i32.add + i32.add + get_local $4 + get_local $8 + i32.add + get_local $6 + call $__ZNSt3__211char_traitsIcE4copyEPcPKcm + drop + end ;; $if_4 + get_local $1 + i32.const 10 + i32.ne + if $if_5 + get_local $8 + call $__ZdlPv + end ;; $if_5 + get_local $0 + get_local $2 + i32.store + get_local $0 + get_local $9 + i32.const -2147483648 + i32.or + i32.store offset=8 + get_local $0 + get_local $3 + get_local $5 + i32.add + tee_local $0 + i32.store offset=4 + get_local $7 + i32.const 0 + i32.store8 + get_local $0 + get_local $2 + i32.add + get_local $7 + call $__ZNSt3__211char_traitsIcE6assignERcRKc + get_local $7 + set_global $27 + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc (type $8) + (param $0 i32) + (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + get_global $27 + set_local $2 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $0 + i32.const 11 + i32.add + tee_local $4 + i32.load8_s + tee_local $3 + i32.const 0 + i32.lt_s + tee_local $5 + if $if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $3 + i32.const 255 + i32.and + end ;; $if + tee_local $3 + get_local $1 + i32.lt_u + if $if_0 + get_local $0 + get_local $1 + get_local $3 + i32.sub + i32.const 0 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEmc + drop + else + get_local $5 + if $if_1 + get_local $1 + get_local $0 + i32.load + i32.add + set_local $3 + get_local $2 + i32.const 0 + i32.store8 + get_local $3 + get_local $2 + call $__ZNSt3__211char_traitsIcE6assignERcRKc + get_local $0 + get_local $1 + i32.store offset=4 + else + get_local $2 + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + get_local $2 + call $__ZNSt3__211char_traitsIcE6assignERcRKc + get_local $4 + get_local $1 + i32.store8 + end ;; $if_1 + end ;; $if_0 + get_local $2 + set_global $27 + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEmc (type $0) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + get_global $27 + set_local $5 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $1 + if $if + get_local $0 + i32.const 11 + i32.add + tee_local $6 + i32.load8_s + tee_local $4 + i32.const 0 + i32.lt_s + if $if_0 (result i32) + get_local $0 + i32.load offset=4 + set_local $3 + get_local $0 + i32.load offset=8 + i32.const 2147483647 + i32.and + i32.const -1 + i32.add + else + get_local $4 + i32.const 255 + i32.and + set_local $3 + i32.const 10 + end ;; $if_0 + tee_local $7 + get_local $3 + i32.sub + get_local $1 + i32.lt_u + if $if_1 + get_local $0 + get_local $7 + get_local $1 + get_local $3 + i32.add + get_local $7 + i32.sub + get_local $3 + get_local $3 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEmmmmmm + get_local $6 + i32.load8_s + set_local $4 + end ;; $if_1 + get_local $3 + get_local $4 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.lt_s + if $if_2 (result i32) + get_local $0 + i32.load + else + get_local $0 + end ;; $if_2 + tee_local $4 + i32.add + get_local $1 + get_local $2 + call $__ZNSt3__211char_traitsIcE6assignEPcmc + drop + get_local $1 + get_local $3 + i32.add + set_local $1 + get_local $6 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_3 + get_local $0 + get_local $1 + i32.store offset=4 + else + get_local $6 + get_local $1 + i32.store8 + end ;; $if_3 + get_local $5 + i32.const 0 + i32.store8 + get_local $1 + get_local $4 + i32.add + get_local $5 + call $__ZNSt3__211char_traitsIcE6assignERcRKc + end ;; $if + get_local $5 + set_global $27 + get_local $0 + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEmmmmmm (type $14) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (param $4 i32) + (local $5 i32) + (local $6 i32) + i32.const -17 + get_local $1 + i32.sub + get_local $2 + i32.lt_u + if $if + call $__ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv + end ;; $if + get_local $0 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if_0 (result i32) + get_local $0 + i32.load + else + get_local $0 + end ;; $if_0 + set_local $6 + get_local $1 + i32.const 2147483623 + i32.lt_u + if $if_1 (result i32) + i32.const 11 + get_local $1 + i32.const 1 + i32.shl + tee_local $5 + get_local $1 + get_local $2 + i32.add + tee_local $2 + get_local $2 + get_local $5 + i32.lt_u + select + tee_local $2 + i32.const 16 + i32.add + i32.const -16 + i32.and + get_local $2 + i32.const 11 + i32.lt_u + select + else + i32.const -17 + end ;; $if_1 + tee_local $2 + call $__Znwm + set_local $5 + get_local $4 + if $if_2 + get_local $5 + get_local $6 + get_local $4 + call $__ZNSt3__211char_traitsIcE4copyEPcPKcm + drop + end ;; $if_2 + get_local $3 + get_local $4 + i32.sub + tee_local $3 + if $if_3 + get_local $4 + get_local $5 + i32.add + get_local $4 + get_local $6 + i32.add + get_local $3 + call $__ZNSt3__211char_traitsIcE4copyEPcPKcm + drop + end ;; $if_3 + get_local $1 + i32.const 10 + i32.ne + if $if_4 + get_local $6 + call $__ZdlPv + end ;; $if_4 + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $2 + i32.const -2147483648 + i32.or + i32.store offset=8 + ) + + (func $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcm (type $0) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + get_global $27 + set_local $5 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $0 + i32.const 11 + i32.add + tee_local $7 + i32.load8_s + tee_local $4 + i32.const 0 + i32.lt_s + tee_local $6 + if $if (result i32) + get_local $0 + i32.load offset=4 + set_local $3 + get_local $0 + i32.load offset=8 + i32.const 2147483647 + i32.and + i32.const -1 + i32.add + else + get_local $4 + i32.const 255 + i32.and + set_local $3 + i32.const 10 + end ;; $if + tee_local $4 + get_local $3 + i32.sub + get_local $2 + i32.lt_u + if $if_0 + get_local $0 + get_local $4 + get_local $2 + get_local $3 + i32.add + get_local $4 + i32.sub + get_local $3 + get_local $3 + get_local $2 + get_local $1 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE21__grow_by_and_replaceEmmmmmmPKc + else + get_local $2 + if $if_1 + get_local $3 + get_local $6 + if $if_2 (result i32) + get_local $0 + i32.load + else + get_local $0 + end ;; $if_2 + tee_local $6 + i32.add + get_local $1 + get_local $2 + call $__ZNSt3__211char_traitsIcE4copyEPcPKcm + drop + get_local $2 + get_local $3 + i32.add + set_local $1 + get_local $7 + i32.load8_s + i32.const 0 + i32.lt_s + if $if_3 + get_local $0 + get_local $1 + i32.store offset=4 + else + get_local $7 + get_local $1 + i32.store8 + end ;; $if_3 + get_local $5 + i32.const 0 + i32.store8 + get_local $1 + get_local $6 + i32.add + get_local $5 + call $__ZNSt3__211char_traitsIcE6assignERcRKc + end ;; $if_1 + end ;; $if_0 + get_local $5 + set_global $27 + get_local $0 + ) + + (func $__ZNSt3__29to_stringEy (type $6) + (param $0 i32) + (param $1 i64) + (local $2 i32) + get_global $27 + set_local $2 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $2 + call $__ZNKSt3__212_GLOBAL__N_114initial_stringINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEyLb0EEclEv + get_local $0 + get_local $2 + get_local $1 + call $__ZNSt3__212_GLOBAL__N_19as_stringINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPFiPcmPKczEyEET_T0_SD_PKNSD_10value_typeET1_ + get_local $2 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev + get_local $2 + set_global $27 + ) + + (func $__ZNKSt3__212_GLOBAL__N_114initial_stringINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEyLb0EEclEv (type $2) + (param $0 i32) + (local $1 i32) + get_local $0 + i64.const 0 + i64.store align=4 + get_local $0 + i32.const 0 + i32.store offset=8 + loop $loop + get_local $1 + i32.const 3 + i32.ne + if $if + get_local $1 + i32.const 2 + i32.shl + get_local $0 + i32.add + i32.const 0 + i32.store + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $loop + end ;; $if + end ;; $loop + get_local $0 + get_local $0 + i32.load8_s offset=11 + i32.const 0 + i32.lt_s + if $if_0 (result i32) + get_local $0 + i32.load offset=8 + i32.const 2147483647 + i32.and + i32.const -1 + i32.add + else + i32.const 10 + end ;; $if_0 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc + ) + + (func $__ZNSt3__212_GLOBAL__N_19as_stringINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPFiPcmPKczEyEET_T0_SD_PKNSD_10value_typeET1_ (type $19) + (param $0 i32) + (param $1 i32) + (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + get_global $27 + set_local $5 + get_global $27 + i32.const 16 + i32.add + set_global $27 + get_local $1 + i32.const 11 + i32.add + tee_local $6 + i32.load8_s + tee_local $3 + i32.const 0 + i32.lt_s + if $if (result i32) + get_local $1 + i32.load offset=4 + else + get_local $3 + i32.const 255 + i32.and + end ;; $if + set_local $4 + loop $loop + block $block + get_local $3 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.lt_s + if $if_0 (result i32) + get_local $1 + i32.load + else + get_local $1 + end ;; $if_0 + set_local $3 + get_local $5 + get_local $2 + i64.store + get_local $1 + get_local $3 + get_local $4 + i32.const 1 + i32.add + get_local $5 + call $_snprintf + tee_local $3 + i32.const -1 + i32.gt_s + if $if_1 (result i32) + get_local $3 + get_local $4 + i32.le_u + br_if $block + get_local $3 + else + get_local $4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end ;; $if_1 + tee_local $4 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc + get_local $6 + i32.load8_s + set_local $3 + br $loop + end ;; $block + end ;; $loop + get_local $1 + get_local $3 + call $__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc + get_local $0 + get_local $1 + i64.load align=4 + i64.store align=4 + get_local $0 + get_local $1 + i32.load offset=8 + i32.store offset=8 + i32.const 0 + set_local $0 + loop $loop_0 + get_local $0 + i32.const 3 + i32.ne + if $if_2 + get_local $0 + i32.const 2 + i32.shl + get_local $1 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $loop_0 + end ;; $if_2 + end ;; $loop_0 + get_local $5 + set_global $27 + ) + + (func $__ZSt15get_new_handlerv (type $3) + (result i32) + (local $0 i32) + i32.const 4484 + i32.const 4484 + i32.load + tee_local $0 + i32.store + get_local $0 + ) + + (func $_llvm_bswap_i32 (type $4) + (param $0 i32) + (result i32) + get_local $0 + i32.const 255 + i32.and + i32.const 24 + i32.shl + get_local $0 + i32.const 8 + i32.shr_s + i32.const 255 + i32.and + i32.const 16 + i32.shl + i32.or + get_local $0 + i32.const 16 + i32.shr_s + i32.const 255 + i32.and + i32.const 8 + i32.shl + i32.or + get_local $0 + i32.const 24 + i32.shr_u + i32.or + ) + + (func $_memcpy (type $0) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + get_local $2 + i32.const 8192 + i32.ge_s + if $if + get_local $0 + get_local $1 + get_local $2 + call $_emscripten_memcpy_big + drop + get_local $0 + return + end ;; $if + get_local $0 + set_local $4 + get_local $0 + get_local $2 + i32.add + set_local $3 + get_local $0 + i32.const 3 + i32.and + get_local $1 + i32.const 3 + i32.and + i32.eq + if $if_0 + loop $loop + get_local $0 + i32.const 3 + i32.and + if $if_1 + get_local $2 + i32.eqz + if $if_2 + get_local $4 + return + end ;; $if_2 + get_local $0 + get_local $1 + i32.load8_s + i32.store8 + get_local $0 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $loop + end ;; $if_1 + end ;; $loop + get_local $3 + i32.const -4 + i32.and + tee_local $2 + i32.const -64 + i32.add + set_local $5 + loop $loop_0 + get_local $0 + get_local $5 + i32.le_s + if $if_3 + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + get_local $1 + i32.load offset=4 + i32.store offset=4 + get_local $0 + get_local $1 + i32.load offset=8 + i32.store offset=8 + get_local $0 + get_local $1 + i32.load offset=12 + i32.store offset=12 + get_local $0 + get_local $1 + i32.load offset=16 + i32.store offset=16 + get_local $0 + get_local $1 + i32.load offset=20 + i32.store offset=20 + get_local $0 + get_local $1 + i32.load offset=24 + i32.store offset=24 + get_local $0 + get_local $1 + i32.load offset=28 + i32.store offset=28 + get_local $0 + get_local $1 + i32.load offset=32 + i32.store offset=32 + get_local $0 + get_local $1 + i32.load offset=36 + i32.store offset=36 + get_local $0 + get_local $1 + i32.load offset=40 + i32.store offset=40 + get_local $0 + get_local $1 + i32.load offset=44 + i32.store offset=44 + get_local $0 + get_local $1 + i32.load offset=48 + i32.store offset=48 + get_local $0 + get_local $1 + i32.load offset=52 + i32.store offset=52 + get_local $0 + get_local $1 + i32.load offset=56 + i32.store offset=56 + get_local $0 + get_local $1 + i32.load offset=60 + i32.store offset=60 + get_local $0 + i32.const -64 + i32.sub + set_local $0 + get_local $1 + i32.const -64 + i32.sub + set_local $1 + br $loop_0 + end ;; $if_3 + end ;; $loop_0 + loop $loop_1 + get_local $0 + get_local $2 + i32.lt_s + if $if_4 + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + br $loop_1 + end ;; $if_4 + end ;; $loop_1 + else + get_local $3 + i32.const 4 + i32.sub + set_local $2 + loop $loop_2 + get_local $0 + get_local $2 + i32.lt_s + if $if_5 + get_local $0 + get_local $1 + i32.load8_s + i32.store8 + get_local $0 + get_local $1 + i32.load8_s offset=1 + i32.store8 offset=1 + get_local $0 + get_local $1 + i32.load8_s offset=2 + i32.store8 offset=2 + get_local $0 + get_local $1 + i32.load8_s offset=3 + i32.store8 offset=3 + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + br $loop_2 + end ;; $if_5 + end ;; $loop_2 + end ;; $if_0 + loop $loop_3 + get_local $0 + get_local $3 + i32.lt_s + if $if_6 + get_local $0 + get_local $1 + i32.load8_s + i32.store8 + get_local $0 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $loop_3 + end ;; $if_6 + end ;; $loop_3 + get_local $4 + ) + + (func $_memset (type $0) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + get_local $0 + get_local $2 + i32.add + set_local $4 + get_local $1 + i32.const 255 + i32.and + set_local $1 + get_local $2 + i32.const 67 + i32.ge_s + if $if + loop $loop + get_local $0 + i32.const 3 + i32.and + if $if_0 + get_local $0 + get_local $1 + i32.store8 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $loop + end ;; $if_0 + end ;; $loop + get_local $4 + i32.const -4 + i32.and + tee_local $5 + i32.const -64 + i32.add + set_local $6 + get_local $1 + i32.const 8 + i32.shl + get_local $1 + i32.or + get_local $1 + i32.const 16 + i32.shl + i32.or + get_local $1 + i32.const 24 + i32.shl + i32.or + set_local $3 + loop $loop_0 + get_local $0 + get_local $6 + i32.le_s + if $if_1 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $3 + i32.store offset=4 + get_local $0 + get_local $3 + i32.store offset=8 + get_local $0 + get_local $3 + i32.store offset=12 + get_local $0 + get_local $3 + i32.store offset=16 + get_local $0 + get_local $3 + i32.store offset=20 + get_local $0 + get_local $3 + i32.store offset=24 + get_local $0 + get_local $3 + i32.store offset=28 + get_local $0 + get_local $3 + i32.store offset=32 + get_local $0 + get_local $3 + i32.store offset=36 + get_local $0 + get_local $3 + i32.store offset=40 + get_local $0 + get_local $3 + i32.store offset=44 + get_local $0 + get_local $3 + i32.store offset=48 + get_local $0 + get_local $3 + i32.store offset=52 + get_local $0 + get_local $3 + i32.store offset=56 + get_local $0 + get_local $3 + i32.store offset=60 + get_local $0 + i32.const -64 + i32.sub + set_local $0 + br $loop_0 + end ;; $if_1 + end ;; $loop_0 + loop $loop_1 + get_local $0 + get_local $5 + i32.lt_s + if $if_2 + get_local $0 + get_local $3 + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + br $loop_1 + end ;; $if_2 + end ;; $loop_1 + end ;; $if + loop $loop_2 + get_local $0 + get_local $4 + i32.lt_s + if $if_3 + get_local $0 + get_local $1 + i32.store8 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $loop_2 + end ;; $if_3 + end ;; $loop_2 + get_local $4 + get_local $2 + i32.sub + ) + + (func $_sbrk (type $4) + (param $0 i32) + (result i32) + (local $1 i32) + (local $2 i32) + get_local $0 + get_global $24 + i32.load + tee_local $2 + i32.add + tee_local $1 + get_local $2 + i32.lt_s + get_local $0 + i32.const 0 + i32.gt_s + i32.and + get_local $1 + i32.const 0 + i32.lt_s + i32.or + if $if + call $abortOnCannotGrowMemory + drop + i32.const 12 + call $___setErrNo + i32.const -1 + return + end ;; $if + get_local $1 + call $_emscripten_get_heap_size + i32.le_s + if $if_0 + get_global $24 + get_local $1 + i32.store + else + get_local $1 + call $_emscripten_resize_heap + i32.eqz + if $if_1 + i32.const 12 + call $___setErrNo + i32.const -1 + return + end ;; $if_1 + end ;; $if_0 + get_local $2 + ) + + (func $dynCall_iiii (type $10) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (param $3 i32) + (result i32) + get_local $1 + get_local $2 + get_local $3 + get_local $0 + i32.const 1 + i32.and + call_indirect $20 (type $0) + ) + + (func $dynCall_v (type $2) + (param $0 i32) + i32.const 2 + call_indirect $20 (type $1) + ) + + (func $b0 (type $0) + (param $0 i32) + (param $1 i32) + (param $2 i32) + (result i32) + i32.const 0 + call $abort + i32.const 0 + ) + + (func $b1 (type $1) + i32.const 1 + call $abort + ) + ;; User section "emscripten_metadata": + ;; "\00\00\00\01\90%\03" + ) \ No newline at end of file diff --git a/test/extensions/wasm/wasm_test.cc b/test/extensions/wasm/wasm_test.cc index c484463e841b6..5bea97c684439 100644 --- a/test/extensions/wasm/wasm_test.cc +++ b/test/extensions/wasm/wasm_test.cc @@ -34,8 +34,9 @@ TEST(WasmTest, Logging) { Event::SimulatedTimeSystem time_system; Upstream::MockClusterManager cluster_manager; Event::DispatcherImpl dispatcher(time_system, *api); - auto wasm = std::make_unique("envoy.wasm.vm.wavm", "", "", - cluster_manager, dispatcher); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + auto wasm = std::make_unique( + "envoy.wasm.vm.wavm", "", "", cluster_manager, dispatcher, *scope, scope); EXPECT_NE(wasm, nullptr); const auto code = TestEnvironment::readFileToStringForTest( TestEnvironment::substitute("{{ test_rundir }}/test/extensions/wasm/test_data/logging.wasm")); @@ -61,8 +62,9 @@ TEST(WasmTest, BadSignature) { Event::SimulatedTimeSystem time_system; Upstream::MockClusterManager cluster_manager; Event::DispatcherImpl dispatcher(time_system, *api); - auto wasm = std::make_shared("envoy.wasm.vm.wavm", "", "", - cluster_manager, dispatcher); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + auto wasm = std::make_shared( + "envoy.wasm.vm.wavm", "", "", cluster_manager, dispatcher, *scope, scope); EXPECT_NE(wasm, nullptr); const auto code = TestEnvironment::readFileToStringForTest(TestEnvironment::substitute( "{{ test_rundir }}/test/extensions/wasm/test_data/bad_signature.wasm")); @@ -79,8 +81,9 @@ TEST(WasmTest, Segv) { Upstream::MockClusterManager cluster_manager; Event::SimulatedTimeSystem time_system; Event::DispatcherImpl dispatcher(time_system, *api); - auto wasm = std::make_shared("envoy.wasm.vm.wavm", "", "", - cluster_manager, dispatcher); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + auto wasm = std::make_shared( + "envoy.wasm.vm.wavm", "", "", cluster_manager, dispatcher, *scope, scope); EXPECT_NE(wasm, nullptr); const auto code = TestEnvironment::readFileToStringForTest( TestEnvironment::substitute("{{ test_rundir }}/test/extensions/wasm/test_data/segv.wasm")); @@ -99,8 +102,9 @@ TEST(WasmTest, DivByZero) { Upstream::MockClusterManager cluster_manager; Event::SimulatedTimeSystem time_system; Event::DispatcherImpl dispatcher(time_system, *api); - auto wasm = std::make_shared("envoy.wasm.vm.wavm", "", "", - cluster_manager, dispatcher); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + auto wasm = std::make_shared( + "envoy.wasm.vm.wavm", "", "", cluster_manager, dispatcher, *scope, scope); EXPECT_NE(wasm, nullptr); const auto code = TestEnvironment::readFileToStringForTest( TestEnvironment::substitute("{{ test_rundir }}/test/extensions/wasm/test_data/segv.wasm")); @@ -111,7 +115,36 @@ TEST(WasmTest, DivByZero) { wasm->setGeneralContext(std::move(context)); wasm->wasmVm()->start(wasm->generalContext()); EXPECT_THROW_WITH_REGEX(wasm->generalContext()->onLog(), Extensions::Common::Wasm::WasmException, - "wavm.integerDivideByZeroOrOverflow.*"); + "wavm.integerDivideByZeroOrOverflow.*"); +} + +TEST(WasmTest, Stats) { + Stats::IsolatedStoreImpl stats_store; + Api::ApiPtr api = Api::createApiForTest(stats_store); + Event::SimulatedTimeSystem time_system; + Upstream::MockClusterManager cluster_manager; + Event::DispatcherImpl dispatcher(time_system, *api); + auto scope = Stats::ScopeSharedPtr(stats_store.createScope("wasm.")); + auto wasm = std::make_unique( + "envoy.wasm.vm.wavm", "", "", cluster_manager, dispatcher, *scope, scope); + EXPECT_NE(wasm, nullptr); + const auto code = TestEnvironment::readFileToStringForTest( + TestEnvironment::substitute("{{ test_rundir }}/test/extensions/wasm/test_data/stats.wasm")); + EXPECT_FALSE(code.empty()); + auto context = std::make_unique(wasm.get()); + + EXPECT_CALL(*context, scriptLog(spdlog::level::trace, Eq("get counter = 1"))); + EXPECT_CALL(*context, scriptLog(spdlog::level::debug, Eq("get counter = 2"))); + // recordMetric on a Counter is the same as increment. + EXPECT_CALL(*context, scriptLog(spdlog::level::info, Eq("get counter = 5"))); + EXPECT_CALL(*context, scriptLog(spdlog::level::warn, Eq("get gauge = 2"))); + // Get is not supported on histograms. + EXPECT_CALL(*context, scriptLog(spdlog::level::err, Eq("get histogram = 0"))); + + EXPECT_TRUE(wasm->initialize(code, "", false)); + // NB: Must be done after initialize has created the context. + wasm->setGeneralContext(std::move(context)); + wasm->start(); } } // namespace Wasm