diff --git a/cspell.config.yaml b/cspell.config.yaml index d5413fba27..9de293f811 100644 --- a/cspell.config.yaml +++ b/cspell.config.yaml @@ -330,6 +330,7 @@ words: - wthread - xbridge - xchain + - xfloat - ximinez - XMACRO - xrpkuwait diff --git a/src/libxrpl/tx/wasm/WasmVM.cpp b/src/libxrpl/tx/wasm/WasmVM.cpp index c3c724cd43..9bf1b9be45 100644 --- a/src/libxrpl/tx/wasm/WasmVM.cpp +++ b/src/libxrpl/tx/wasm/WasmVM.cpp @@ -30,76 +30,76 @@ static void setCommonHostFunctions(HostFunctions* hfs, ImportVec& i) { // clang-format off - WASM_IMPORT_FUNC2(i, getLedgerSqn, "get_ledger_sqn", hfs, 60); - WASM_IMPORT_FUNC2(i, getParentLedgerTime, "get_parent_ledger_time", hfs, 60); - WASM_IMPORT_FUNC2(i, getParentLedgerHash, "get_parent_ledger_hash", hfs, 60); - WASM_IMPORT_FUNC2(i, getBaseFee, "get_base_fee", hfs, 60); - WASM_IMPORT_FUNC2(i, isAmendmentEnabled, "amendment_enabled", hfs, 100); + WASM_IMPORT_FUNC2(i, getLedgerSqn, "ldgr_index", hfs, 60); + WASM_IMPORT_FUNC2(i, getParentLedgerTime, "parent_ldgr_time", hfs, 60); + WASM_IMPORT_FUNC2(i, getParentLedgerHash, "parent_ldgr_hash", hfs, 60); + WASM_IMPORT_FUNC2(i, getBaseFee, "base_fee", hfs, 60); + WASM_IMPORT_FUNC2(i, isAmendmentEnabled, "amendment_enabled", hfs, 100); - WASM_IMPORT_FUNC2(i, cacheLedgerObj, "cache_ledger_obj", hfs, 5'000); - WASM_IMPORT_FUNC2(i, getTxField, "get_tx_field", hfs, 70); - WASM_IMPORT_FUNC2(i, getCurrentLedgerObjField, "get_current_ledger_obj_field", hfs, 70); - WASM_IMPORT_FUNC2(i, getLedgerObjField, "get_ledger_obj_field", hfs, 70); - WASM_IMPORT_FUNC2(i, getTxNestedField, "get_tx_nested_field", hfs, 110); - WASM_IMPORT_FUNC2(i, getCurrentLedgerObjNestedField, "get_current_ledger_obj_nested_field", hfs, 110); - WASM_IMPORT_FUNC2(i, getLedgerObjNestedField, "get_ledger_obj_nested_field", hfs, 110); - WASM_IMPORT_FUNC2(i, getTxArrayLen, "get_tx_array_len", hfs, 40); - WASM_IMPORT_FUNC2(i, getCurrentLedgerObjArrayLen, "get_current_ledger_obj_array_len", hfs, 40); - WASM_IMPORT_FUNC2(i, getLedgerObjArrayLen, "get_ledger_obj_array_len", hfs, 40); - WASM_IMPORT_FUNC2(i, getTxNestedArrayLen, "get_tx_nested_array_len", hfs, 70); - WASM_IMPORT_FUNC2(i, getCurrentLedgerObjNestedArrayLen, "get_current_ledger_obj_nested_array_len", hfs, 70); - WASM_IMPORT_FUNC2(i, getLedgerObjNestedArrayLen, "get_ledger_obj_nested_array_len", hfs, 70); + WASM_IMPORT_FUNC2(i, cacheLedgerObj, "cache_le", hfs, 5'000); + WASM_IMPORT_FUNC2(i, getTxField, "tx_field", hfs, 70); + WASM_IMPORT_FUNC2(i, getCurrentLedgerObjField, "home_le_field", hfs, 70); + WASM_IMPORT_FUNC2(i, getLedgerObjField, "le_field", hfs, 70); + WASM_IMPORT_FUNC2(i, getTxNestedField, "tx_inner", hfs, 110); + WASM_IMPORT_FUNC2(i, getCurrentLedgerObjNestedField, "home_le_inner", hfs, 110); + WASM_IMPORT_FUNC2(i, getLedgerObjNestedField, "le_inner", hfs, 110); + WASM_IMPORT_FUNC2(i, getTxArrayLen, "tx_arr_len", hfs, 40); + WASM_IMPORT_FUNC2(i, getCurrentLedgerObjArrayLen, "home_le_arr_len", hfs, 40); + WASM_IMPORT_FUNC2(i, getLedgerObjArrayLen, "le_arr_len", hfs, 40); + WASM_IMPORT_FUNC2(i, getTxNestedArrayLen, "tx_inner_arr_len", hfs, 70); + WASM_IMPORT_FUNC2(i, getCurrentLedgerObjNestedArrayLen, "home_le_inner_arr_len", hfs, 70); + WASM_IMPORT_FUNC2(i, getLedgerObjNestedArrayLen, "le_inner_arr_len", hfs, 70); - WASM_IMPORT_FUNC2(i, checkSignature, "check_sig", hfs, 300); - WASM_IMPORT_FUNC2(i, computeSha512HalfHash, "compute_sha512_half", hfs, 2000); + WASM_IMPORT_FUNC2(i, checkSignature, "check_sig", hfs, 300); + WASM_IMPORT_FUNC2(i, computeSha512HalfHash, "sha512_half", hfs, 2000); - WASM_IMPORT_FUNC2(i, accountKeylet, "account_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, ammKeylet, "amm_keylet", hfs, 450); - WASM_IMPORT_FUNC2(i, checkKeylet, "check_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, credentialKeylet, "credential_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, delegateKeylet, "delegate_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, depositPreauthKeylet, "deposit_preauth_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, didKeylet, "did_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, escrowKeylet, "escrow_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, lineKeylet, "line_keylet", hfs, 400); - WASM_IMPORT_FUNC2(i, mptIssuanceKeylet, "mpt_issuance_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, mptokenKeylet, "mptoken_keylet", hfs, 500); - WASM_IMPORT_FUNC2(i, nftOfferKeylet, "nft_offer_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, offerKeylet, "offer_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, oracleKeylet, "oracle_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, paychanKeylet, "paychan_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, permissionedDomainKeylet, "permissioned_domain_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, signersKeylet, "signers_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, ticketKeylet, "ticket_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, vaultKeylet, "vault_keylet", hfs, 350); + WASM_IMPORT_FUNC2(i, accountKeylet, "accountroot_id", hfs, 350); + WASM_IMPORT_FUNC2(i, ammKeylet, "amm_id", hfs, 450); + WASM_IMPORT_FUNC2(i, checkKeylet, "check_id", hfs, 350); + WASM_IMPORT_FUNC2(i, credentialKeylet, "credential_id", hfs, 350); + WASM_IMPORT_FUNC2(i, delegateKeylet, "delegate_id", hfs, 350); + WASM_IMPORT_FUNC2(i, depositPreauthKeylet, "deposit_preauth_id", hfs, 350); + WASM_IMPORT_FUNC2(i, didKeylet, "did_id", hfs, 350); + WASM_IMPORT_FUNC2(i, escrowKeylet, "escrow_id", hfs, 350); + WASM_IMPORT_FUNC2(i, lineKeylet, "trustline_id", hfs, 400); + WASM_IMPORT_FUNC2(i, mptIssuanceKeylet, "mpt_issuance_id", hfs, 350); + WASM_IMPORT_FUNC2(i, mptokenKeylet, "mptoken_id", hfs, 500); + WASM_IMPORT_FUNC2(i, nftOfferKeylet, "nft_offer_id", hfs, 350); + WASM_IMPORT_FUNC2(i, offerKeylet, "offer_id", hfs, 350); + WASM_IMPORT_FUNC2(i, oracleKeylet, "oracle_id", hfs, 350); + WASM_IMPORT_FUNC2(i, paychanKeylet, "paychan_id", hfs, 350); + WASM_IMPORT_FUNC2(i, permissionedDomainKeylet, "permissioned_domain_id", hfs, 350); + WASM_IMPORT_FUNC2(i, signersKeylet, "signers_id", hfs, 350); + WASM_IMPORT_FUNC2(i, ticketKeylet, "ticket_id", hfs, 350); + WASM_IMPORT_FUNC2(i, vaultKeylet, "vault_id", hfs, 350); - WASM_IMPORT_FUNC2(i, getNFT, "get_nft", hfs, 5'000); - WASM_IMPORT_FUNC2(i, getNFTIssuer, "get_nft_issuer", hfs, 70); - WASM_IMPORT_FUNC2(i, getNFTTaxon, "get_nft_taxon", hfs, 60); - WASM_IMPORT_FUNC2(i, getNFTFlags, "get_nft_flags", hfs, 60); - WASM_IMPORT_FUNC2(i, getNFTTransferFee, "get_nft_transfer_fee", hfs, 60); - WASM_IMPORT_FUNC2(i, getNFTSerial, "get_nft_serial", hfs, 60); + WASM_IMPORT_FUNC2(i, getNFT, "nft_uri", hfs, 5'000); + WASM_IMPORT_FUNC2(i, getNFTIssuer, "nft_issuer", hfs, 70); + WASM_IMPORT_FUNC2(i, getNFTTaxon, "nft_taxon", hfs, 60); + WASM_IMPORT_FUNC2(i, getNFTFlags, "nft_flags", hfs, 60); + WASM_IMPORT_FUNC2(i, getNFTTransferFee, "nft_xfer_fee", hfs, 60); + WASM_IMPORT_FUNC2(i, getNFTSerial, "nft_serial", hfs, 60); - WASM_IMPORT_FUNC (i, trace, hfs, 500); - WASM_IMPORT_FUNC2(i, traceNum, "trace_num", hfs, 500); - WASM_IMPORT_FUNC2(i, traceAccount, "trace_account", hfs, 500); - WASM_IMPORT_FUNC2(i, traceFloat, "trace_opaque_float", hfs, 500); - WASM_IMPORT_FUNC2(i, traceAmount, "trace_amount", hfs, 500); + WASM_IMPORT_FUNC (i, trace, hfs, 500); + WASM_IMPORT_FUNC2(i, traceNum, "trace_num", hfs, 500); + WASM_IMPORT_FUNC2(i, traceAccount, "trace_acct", hfs, 500); + WASM_IMPORT_FUNC2(i, traceFloat, "trace_xfloat", hfs, 500); + WASM_IMPORT_FUNC2(i, traceAmount, "trace_amt", hfs, 500); - WASM_IMPORT_FUNC2(i, floatFromInt, "float_from_int", hfs, 100); - WASM_IMPORT_FUNC2(i, floatFromUint, "float_from_uint", hfs, 130); - WASM_IMPORT_FUNC2(i, floatFromSTAmount, "float_from_stamount", hfs, 150); - WASM_IMPORT_FUNC2(i, floatFromSTNumber, "float_from_stnumber", hfs, 150); - WASM_IMPORT_FUNC2(i, floatToInt, "float_to_int", hfs, 130); - WASM_IMPORT_FUNC2(i, floatToMantExp, "float_to_mant_exp", hfs, 130); - WASM_IMPORT_FUNC2(i, floatFromMantExp, "float_from_mant_exp", hfs, 100); - WASM_IMPORT_FUNC2(i, floatCompare, "float_compare", hfs, 80); - WASM_IMPORT_FUNC2(i, floatAdd, "float_add", hfs, 160); - WASM_IMPORT_FUNC2(i, floatSubtract, "float_subtract", hfs, 160); - WASM_IMPORT_FUNC2(i, floatMultiply, "float_multiply", hfs, 300); - WASM_IMPORT_FUNC2(i, floatDivide, "float_divide", hfs, 300); - WASM_IMPORT_FUNC2(i, floatRoot, "float_root", hfs, 5'500); - WASM_IMPORT_FUNC2(i, floatPower, "float_pow", hfs, 5'500); + WASM_IMPORT_FUNC2(i, floatFromInt, "float_from_int", hfs, 100); + WASM_IMPORT_FUNC2(i, floatFromUint, "float_from_uint", hfs, 130); + WASM_IMPORT_FUNC2(i, floatFromSTAmount, "float_from_stamount", hfs, 150); + WASM_IMPORT_FUNC2(i, floatFromSTNumber, "float_from_stnumber", hfs, 150); + WASM_IMPORT_FUNC2(i, floatToInt, "float_to_int", hfs, 130); + WASM_IMPORT_FUNC2(i, floatToMantExp, "float_to_mant_exp", hfs, 130); + WASM_IMPORT_FUNC2(i, floatFromMantExp, "float_from_mant_exp", hfs, 100); + WASM_IMPORT_FUNC2(i, floatCompare, "float_cmp", hfs, 80); + WASM_IMPORT_FUNC2(i, floatAdd, "float_add", hfs, 160); + WASM_IMPORT_FUNC2(i, floatSubtract, "float_sub", hfs, 160); + WASM_IMPORT_FUNC2(i, floatMultiply, "float_mult", hfs, 300); + WASM_IMPORT_FUNC2(i, floatDivide, "float_div", hfs, 300); + WASM_IMPORT_FUNC2(i, floatRoot, "float_root", hfs, 5'500); + WASM_IMPORT_FUNC2(i, floatPower, "float_pow", hfs, 5'500); // clang-format on } @@ -109,7 +109,7 @@ createWasmImport(HostFunctions& hfs) ImportVec i; setCommonHostFunctions(&hfs, i); - WASM_IMPORT_FUNC2(i, updateData, "update_data", &hfs, 1000); + WASM_IMPORT_FUNC2(i, updateData, "set_data", &hfs, 1000); return i; } diff --git a/src/test/app/HostFuncImpl_test.cpp b/src/test/app/HostFuncImpl_test.cpp index 04d3429bfe..413e6b78c6 100644 --- a/src/test/app/HostFuncImpl_test.cpp +++ b/src/test/app/HostFuncImpl_test.cpp @@ -352,7 +352,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getLedgerSqn_wrap, - &import.at("get_ledger_sqn"), + &import.at("ldgr_index"), params, result, 0, @@ -385,7 +385,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getParentLedgerTime_wrap, - &import.at("get_parent_ledger_time"), + &import.at("parent_ldgr_time"), params, result, 0, @@ -420,7 +420,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getParentLedgerHash_wrap, - &import.at("get_parent_ledger_hash"), + &import.at("parent_ldgr_hash"), params, result, 0, @@ -455,13 +455,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getBaseFee(); { WasmValVec params(2), result(1); - auto* trap = - ww(getBaseFee_wrap, - &import.at("get_base_fee"), - params, - result, - 0, - sizeof(std::uint32_t)); + auto* trap = ww( + getBaseFee_wrap, &import.at("base_fee"), params, result, 0, sizeof(std::uint32_t)); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == sizeof(std::uint32_t)) && @@ -580,7 +575,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); auto* trap = ww(cacheLedgerObj_wrap, - &import.at("cache_ledger_obj"), + &import.at("cache_le"), params, result, 0, @@ -598,7 +593,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); auto* trap = ww(cacheLedgerObj_wrap, - &import.at("cache_ledger_obj"), + &import.at("cache_le"), params, result, 0, @@ -616,7 +611,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, dummyEscrow.key.data(), uint256::size()); auto* trap = ww(cacheLedgerObj_wrap, - &import.at("cache_ledger_obj"), + &import.at("cache_le"), params, result, 0, @@ -635,7 +630,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); auto* trap = ww(cacheLedgerObj_wrap, - &import.at("cache_ledger_obj"), + &import.at("cache_le"), params, result, 0, @@ -654,7 +649,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); auto* trap = ww(cacheLedgerObj_wrap, - &import.at("cache_ledger_obj"), + &import.at("cache_le"), params, result, 0, @@ -675,7 +670,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); auto* trap = ww(cacheLedgerObj_wrap, - &import.at("cache_ledger_obj"), + &import.at("cache_le"), params, result, 0, @@ -703,7 +698,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); auto* trap = ww(cacheLedgerObj_wrap, - &import.at("cache_ledger_obj"), + &import.at("cache_le"), params, result, 0, @@ -724,7 +719,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); auto* trap = ww(cacheLedgerObj_wrap, - &import.at("cache_ledger_obj"), + &import.at("cache_le"), params, result, 0, @@ -775,7 +770,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, sfAccount.getCode(), @@ -793,7 +788,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, sfOwner.getCode(), @@ -811,7 +806,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, sfTransactionType.getCode(), @@ -830,7 +825,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, sfOfferSequence.getCode(), @@ -849,7 +844,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, sfDestination.getCode(), @@ -866,7 +861,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, sfMemos.getCode(), @@ -883,7 +878,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, sfCredentialIDs.getCode(), @@ -901,7 +896,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, kSfInvalid.getCode(), @@ -918,7 +913,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, kSfGeneric.getCode(), @@ -950,7 +945,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, sfAsset.getCode(), @@ -970,7 +965,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, sfAsset2.getCode(), @@ -1005,7 +1000,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, sfAsset.getCode(), @@ -1026,7 +1021,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, sfAsset2.getCode(), @@ -1061,7 +1056,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getTxField_wrap, - &import.at("get_tx_field"), + &import.at("tx_field"), params, result, sfAssetScale.getCode(), @@ -1110,7 +1105,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getCurrentLedgerObjField_wrap, - &import.at("get_current_ledger_obj_field"), + &import.at("home_le_field"), params, result, sfAccount.getCode(), @@ -1131,7 +1126,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getCurrentLedgerObjField_wrap, - &import.at("get_current_ledger_obj_field"), + &import.at("home_le_field"), params, result, sfAmount.getCode(), @@ -1152,7 +1147,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getCurrentLedgerObjField_wrap, - &import.at("get_current_ledger_obj_field"), + &import.at("home_le_field"), params, result, sfPreviousTxnID.getCode(), @@ -1173,7 +1168,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getCurrentLedgerObjField_wrap, - &import.at("get_current_ledger_obj_field"), + &import.at("home_le_field"), params, result, sfOwner.getCode(), @@ -1198,7 +1193,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getCurrentLedgerObjField_wrap, - &import2.at("get_current_ledger_obj_field"), + &import2.at("home_le_field"), params, result, sfAccount.getCode(), @@ -1240,14 +1235,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); - auto* trap = - ww(cacheLedgerObj_wrap, - &import.at("cache_ledger_obj"), - params, - result, - 0, - uint256::size(), - 1); + auto* trap = ww( + cacheLedgerObj_wrap, &import.at("cache_le"), params, result, 0, uint256::size(), 1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 1); @@ -1258,7 +1247,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getLedgerObjField_wrap, - &import.at("get_ledger_obj_field"), + &import.at("le_field"), params, result, 1, @@ -1280,7 +1269,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getLedgerObjField_wrap, - &import.at("get_ledger_obj_field"), + &import.at("le_field"), params, result, 1, @@ -1302,7 +1291,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getLedgerObjField_wrap, - &import.at("get_ledger_obj_field"), + &import.at("le_field"), params, result, 0, @@ -1320,7 +1309,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getLedgerObjField_wrap, - &import.at("get_ledger_obj_field"), + &import.at("le_field"), params, result, 257, @@ -1338,7 +1327,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getLedgerObjField_wrap, - &import.at("get_ledger_obj_field"), + &import.at("le_field"), params, result, 2, @@ -1356,7 +1345,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getLedgerObjField_wrap, - &import.at("get_ledger_obj_field"), + &import.at("le_field"), params, result, 1, @@ -1416,7 +1405,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getTxNestedField_wrap, - &import.at("get_tx_nested_field"), + &import.at("tx_inner"), params, result, 0, @@ -1446,7 +1435,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getTxNestedField_wrap, - &import.at("get_tx_nested_field"), + &import.at("tx_inner"), params, result, 0, @@ -1473,7 +1462,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getTxNestedField_wrap, - &import.at("get_tx_nested_field"), + &import.at("tx_inner"), params, result, 0, @@ -1501,7 +1490,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getTxNestedField_wrap, - &import.at("get_tx_nested_field"), + &import.at("tx_inner"), params, result, 0, @@ -1526,7 +1515,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxNestedField(locator); auto* trap = ww(getTxNestedField_wrap, - &import.at("get_tx_nested_field"), + &import.at("tx_inner"), params, result, 0, @@ -1655,14 +1644,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = - ww(getTxNestedField_wrap, - &import.at("get_tx_nested_field"), - params, - result, - 0, - 3, - 256, - 256); + ww(getTxNestedField_wrap, &import.at("tx_inner"), params, result, 0, 3, 256, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -1704,7 +1686,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getCurrentLedgerObjNestedField_wrap, - &import.at("get_current_ledger_obj_nested_field"), + &import.at("home_le_inner"), params, result, 0, @@ -1729,7 +1711,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getCurrentLedgerObjNestedField(locator); auto* trap = ww(getCurrentLedgerObjNestedField_wrap, - &import.at("get_current_ledger_obj_nested_field"), + &import.at("home_le_inner"), params, result, 0, @@ -1764,7 +1746,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getCurrentLedgerObjNestedField_wrap, - &import.at("get_current_ledger_obj_nested_field"), + &import.at("home_le_inner"), params, result, 0, @@ -1786,7 +1768,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getCurrentLedgerObjNestedField_wrap, - &import.at("get_current_ledger_obj_nested_field"), + &import.at("home_le_inner"), params, result, 0, @@ -1814,7 +1796,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getCurrentLedgerObjNestedField_wrap, - &import2.at("get_current_ledger_obj_nested_field"), + &import2.at("home_le_inner"), params, result, 0, @@ -1858,14 +1840,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, signerListKeylet.key.data(), uint256::size()); - auto* trap = - ww(cacheLedgerObj_wrap, - &import.at("cache_ledger_obj"), - params, - result, - 0, - uint256::size(), - 1); + auto* trap = ww( + cacheLedgerObj_wrap, &import.at("cache_le"), params, result, 0, uint256::size(), 1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 1); } @@ -1879,7 +1855,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(getLedgerObjNestedField_wrap, - &import.at("get_ledger_obj_nested_field"), + &import.at("le_inner"), params, result, 1, @@ -1906,7 +1882,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(getLedgerObjNestedField_wrap, - &import.at("get_ledger_obj_nested_field"), + &import.at("le_inner"), params, result, 1, @@ -1933,7 +1909,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(getLedgerObjNestedField_wrap, - &import.at("get_ledger_obj_nested_field"), + &import.at("le_inner"), params, result, 1, @@ -1961,7 +1937,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(getLedgerObjNestedField_wrap, - &import.at("get_ledger_obj_nested_field"), + &import.at("le_inner"), params, result, 1, @@ -1989,7 +1965,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(getLedgerObjNestedField_wrap, - &import.at("get_ledger_obj_nested_field"), + &import.at("le_inner"), params, result, slot, @@ -2061,7 +2037,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(getLedgerObjNestedField_wrap, - &import.at("get_ledger_obj_nested_field"), + &import.at("le_inner"), params, result, 1, @@ -2123,11 +2099,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(1), result(1); auto* trap = - ww(getTxArrayLen_wrap, - &import.at("get_tx_array_len"), - params, - result, - sfMemos.getCode()); + ww(getTxArrayLen_wrap, &import.at("tx_arr_len"), params, result, sfMemos.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECT(result[0].of.i32 > 0)) @@ -2138,12 +2110,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxArrayLen(sfAccount); { WasmValVec params(1), result(1); - auto* trap = - ww(getTxArrayLen_wrap, - &import.at("get_tx_array_len"), - params, - result, - sfAccount.getCode()); + auto* trap = ww( + getTxArrayLen_wrap, &import.at("tx_arr_len"), params, result, sfAccount.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); BEAST_EXPECT(result[0].of.i32 == static_cast(HostFunctionError::NoArray)); @@ -2153,12 +2121,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxArrayLen(sfSigners); { WasmValVec params(1), result(1); - auto* trap = - ww(getTxArrayLen_wrap, - &import.at("get_tx_array_len"), - params, - result, - sfSigners.getCode()); + auto* trap = ww( + getTxArrayLen_wrap, &import.at("tx_arr_len"), params, result, sfSigners.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); BEAST_EXPECT( @@ -2171,7 +2135,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(1), result(1); auto* trap = ww(getTxArrayLen_wrap, - &import.at("get_tx_array_len"), + &import.at("tx_arr_len"), params, result, sfCredentialIDs.getCode()); @@ -2210,7 +2174,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(1), result(1); auto* trap = ww(getCurrentLedgerObjArrayLen_wrap, - &import.at("get_current_ledger_obj_array_len"), + &import.at("home_le_arr_len"), params, result, sfSignerEntries.getCode()); @@ -2225,7 +2189,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(1), result(1); auto* trap = ww(getCurrentLedgerObjArrayLen_wrap, - &import.at("get_current_ledger_obj_array_len"), + &import.at("home_le_arr_len"), params, result, sfMemos.getCode()); @@ -2241,7 +2205,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(1), result(1); auto* trap = ww(getCurrentLedgerObjArrayLen_wrap, - &import.at("get_current_ledger_obj_array_len"), + &import.at("home_le_arr_len"), params, result, sfAccount.getCode()); @@ -2262,7 +2226,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(1), result(1); auto* trap = ww(getCurrentLedgerObjArrayLen_wrap, - &import2.at("get_current_ledger_obj_array_len"), + &import2.at("home_le_arr_len"), params, result, sfMemos.getCode()); @@ -2301,14 +2265,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, signerListKeylet.key.data(), uint256::size()); - auto* trap = - ww(cacheLedgerObj_wrap, - &import.at("cache_ledger_obj"), - params, - result, - 0, - uint256::size(), - 1); + auto* trap = ww( + cacheLedgerObj_wrap, &import.at("cache_le"), params, result, 0, uint256::size(), 1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 1); } @@ -2318,7 +2276,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getLedgerObjArrayLen_wrap, - &import.at("get_ledger_obj_array_len"), + &import.at("le_arr_len"), params, result, 1, @@ -2336,7 +2294,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getLedgerObjArrayLen_wrap, - &import.at("get_ledger_obj_array_len"), + &import.at("le_arr_len"), params, result, 0, @@ -2352,7 +2310,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getLedgerObjArrayLen_wrap, - &import.at("get_ledger_obj_array_len"), + &import.at("le_arr_len"), params, result, 1, @@ -2368,7 +2326,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getLedgerObjArrayLen_wrap, - &import.at("get_ledger_obj_array_len"), + &import.at("le_arr_len"), params, result, 2, @@ -2384,7 +2342,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getLedgerObjArrayLen_wrap, - &import.at("get_ledger_obj_array_len"), + &import.at("le_arr_len"), params, result, 1, @@ -2429,7 +2387,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getTxNestedArrayLen_wrap, - &import.at("get_tx_nested_array_len"), + &import.at("tx_inner_arr_len"), params, result, 0, @@ -2449,7 +2407,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getTxNestedArrayLen_wrap, - &import.at("get_tx_nested_array_len"), + &import.at("tx_inner_arr_len"), params, result, 0, @@ -2497,7 +2455,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getCurrentLedgerObjNestedArrayLen_wrap, - &import.at("get_current_ledger_obj_nested_array_len"), + &import.at("home_le_inner_arr_len"), params, result, 0, @@ -2517,7 +2475,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getCurrentLedgerObjNestedArrayLen_wrap, - &import.at("get_current_ledger_obj_nested_array_len"), + &import.at("home_le_inner_arr_len"), params, result, 0, @@ -2547,7 +2505,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getCurrentLedgerObjNestedArrayLen_wrap, - &import2.at("get_current_ledger_obj_nested_array_len"), + &import2.at("home_le_inner_arr_len"), params, result, 0, @@ -2587,14 +2545,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, signerListKeylet.key.data(), uint256::size()); - auto* trap = - ww(cacheLedgerObj_wrap, - &import.at("cache_ledger_obj"), - params, - result, - 0, - uint256::size(), - 1); + auto* trap = ww( + cacheLedgerObj_wrap, &import.at("cache_le"), params, result, 0, uint256::size(), 1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 1); } @@ -2607,7 +2559,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getLedgerObjNestedArrayLen_wrap, - &import.at("get_ledger_obj_nested_array_len"), + &import.at("le_inner_arr_len"), params, result, 1, @@ -2628,7 +2580,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getLedgerObjNestedArrayLen_wrap, - &import.at("get_ledger_obj_nested_array_len"), + &import.at("le_inner_arr_len"), params, result, slot, @@ -2664,7 +2616,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(3), result(1); auto* trap = ww(getLedgerObjNestedArrayLen_wrap, - &import.at("get_ledger_obj_nested_array_len"), + &import.at("le_inner_arr_len"), params, result, 1, @@ -2710,7 +2662,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, data.data(), data.size()); WasmValVec params(2), result(1); auto* trap = - ww(updateData_wrap, &import.at("update_data"), params, result, 0, data.size()); + ww(updateData_wrap, &import.at("set_data"), params, result, 0, data.size()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == data.size()); @@ -2724,7 +2676,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, bigData.data(), bigData.size()); WasmValVec params(2), result(1); auto* trap = - ww(updateData_wrap, &import.at("update_data"), params, result, 0, bigData.size()); + ww(updateData_wrap, &import.at("set_data"), params, result, 0, bigData.size()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -2934,7 +2886,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(computeSha512HalfHash_wrap, - &import.at("compute_sha512_half"), + &import.at("sha512_half"), params, result, 0, @@ -2982,7 +2934,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto const expected = keylet::account(masterID); WasmValVec params(4), result(1); auto* trap = ww( - accountKeylet_wrap, &imp.at("account_keylet"), params, result, masterID, 1024, 32); + accountKeylet_wrap, &imp.at("accountroot_id"), params, result, masterID, 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 2); @@ -2991,7 +2943,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(accountKeylet_wrap, - &imp.at("account_keylet"), + &imp.at("accountroot_id"), params, result, xrpAccount(), @@ -3006,15 +2958,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto const expected = keylet::amm(xrpIssue(), usdIssue); WasmValVec params(6), result(1); - auto* trap = - ww(ammKeylet_wrap, - &imp.at("amm_keylet"), - params, - result, - xrpIssue(), - usdIssue, - 1024, - 32); + auto* trap = ww( + ammKeylet_wrap, &imp.at("amm_id"), params, result, xrpIssue(), usdIssue, 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); @@ -3023,7 +2968,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(ammKeylet_wrap, - &imp.at("amm_keylet"), + &imp.at("amm_id"), params, result, xrpIssue(), @@ -3034,15 +2979,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidParams)); - auto* trap3 = - ww(ammKeylet_wrap, - &imp.at("amm_keylet"), - params, - result, - baseMpt, - xrpIssue(), - 1024, - 32); + auto* trap3 = ww( + ammKeylet_wrap, &imp.at("amm_id"), params, result, baseMpt, xrpIssue(), 1024, 32); BEAST_EXPECT( !trap3 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidParams)); @@ -3053,7 +2991,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(checkKeylet_wrap, - &imp.at("check_keylet"), + &imp.at("check_id"), params, result, masterID, @@ -3068,7 +3006,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(checkKeylet_wrap, - &imp.at("check_keylet"), + &imp.at("check_id"), params, result, xrpAccount(), @@ -3088,7 +3026,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(8), result(1); auto* trap = ww(credentialKeylet_wrap, - &imp.at("credential_keylet"), + &imp.at("credential_id"), params, result, masterID, @@ -3109,7 +3047,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite static_assert(longCredTypeStr.size() > kMaxCredentialTypeLength); auto* trap2 = ww(credentialKeylet_wrap, - &imp.at("credential_keylet"), + &imp.at("credential_id"), params, result, masterID, @@ -3123,7 +3061,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap3 = ww(credentialKeylet_wrap, - &imp.at("credential_keylet"), + &imp.at("credential_id"), params, result, xrpAccount(), @@ -3137,7 +3075,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap4 = ww(credentialKeylet_wrap, - &imp.at("credential_keylet"), + &imp.at("credential_id"), params, result, masterID, @@ -3153,8 +3091,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::did(masterID); WasmValVec params(4), result(1); - auto* trap = - ww(didKeylet_wrap, &imp.at("did_keylet"), params, result, masterID, 1024, 32); + auto* trap = ww(didKeylet_wrap, &imp.at("did_id"), params, result, masterID, 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 2); @@ -3162,7 +3099,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite } auto* trap2 = - ww(didKeylet_wrap, &imp.at("did_keylet"), params, result, xrpAccount(), 1024, 32); + ww(didKeylet_wrap, &imp.at("did_id"), params, result, xrpAccount(), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -3173,7 +3110,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(delegateKeylet_wrap, - &imp.at("delegate_keylet"), + &imp.at("delegate_id"), params, result, masterID, @@ -3188,7 +3125,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(delegateKeylet_wrap, - &imp.at("delegate_keylet"), + &imp.at("delegate_id"), params, result, masterID, @@ -3201,7 +3138,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap3 = ww(delegateKeylet_wrap, - &imp.at("delegate_keylet"), + &imp.at("delegate_id"), params, result, masterID, @@ -3214,7 +3151,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap4 = ww(delegateKeylet_wrap, - &imp.at("delegate_keylet"), + &imp.at("delegate_id"), params, result, xrpAccount(), @@ -3231,7 +3168,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(depositPreauthKeylet_wrap, - &imp.at("deposit_preauth_keylet"), + &imp.at("deposit_preauth_id"), params, result, masterID, @@ -3246,7 +3183,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(depositPreauthKeylet_wrap, - &imp.at("deposit_preauth_keylet"), + &imp.at("deposit_preauth_id"), params, result, masterID, @@ -3259,7 +3196,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap3 = ww(depositPreauthKeylet_wrap, - &imp.at("deposit_preauth_keylet"), + &imp.at("deposit_preauth_id"), params, result, masterID, @@ -3272,7 +3209,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap4 = ww(depositPreauthKeylet_wrap, - &imp.at("deposit_preauth_keylet"), + &imp.at("deposit_preauth_id"), params, result, xrpAccount(), @@ -3289,7 +3226,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(escrowKeylet_wrap, - &imp.at("escrow_keylet"), + &imp.at("escrow_id"), params, result, masterID, @@ -3304,7 +3241,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(escrowKeylet_wrap, - &imp.at("escrow_keylet"), + &imp.at("escrow_id"), params, result, xrpAccount(), @@ -3322,7 +3259,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(8), result(1); auto* trap = ww(lineKeylet_wrap, - &imp.at("line_keylet"), + &imp.at("trustline_id"), params, result, masterID, @@ -3338,7 +3275,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(lineKeylet_wrap, - &imp.at("line_keylet"), + &imp.at("trustline_id"), params, result, masterID, @@ -3352,7 +3289,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap3 = ww(lineKeylet_wrap, - &imp.at("line_keylet"), + &imp.at("trustline_id"), params, result, masterID, @@ -3366,7 +3303,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap4 = ww(lineKeylet_wrap, - &imp.at("line_keylet"), + &imp.at("trustline_id"), params, result, xrpAccount(), @@ -3380,7 +3317,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap5 = ww(lineKeylet_wrap, - &imp.at("line_keylet"), + &imp.at("trustline_id"), params, result, masterID, @@ -3398,7 +3335,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(mptIssuanceKeylet_wrap, - &imp.at("mpt_issuance_keylet"), + &imp.at("mpt_issuance_id"), params, result, masterID, @@ -3413,7 +3350,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(mptIssuanceKeylet_wrap, - &imp.at("mpt_issuance_keylet"), + &imp.at("mpt_issuance_id"), params, result, xrpAccount(), @@ -3430,7 +3367,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(mptokenKeylet_wrap, - &imp.at("mptoken_keylet"), + &imp.at("mptoken_id"), params, result, baseMpt, @@ -3445,7 +3382,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(mptokenKeylet_wrap, - &imp.at("mptoken_keylet"), + &imp.at("mptoken_id"), params, result, MPTID{}, @@ -3458,7 +3395,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap3 = ww(mptokenKeylet_wrap, - &imp.at("mptoken_keylet"), + &imp.at("mptoken_id"), params, result, baseMpt, @@ -3475,7 +3412,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(nftOfferKeylet_wrap, - &imp.at("nft_offer_keylet"), + &imp.at("nft_offer_id"), params, result, masterID, @@ -3490,7 +3427,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(nftOfferKeylet_wrap, - &imp.at("nft_offer_keylet"), + &imp.at("nft_offer_id"), params, result, xrpAccount(), @@ -3507,7 +3444,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(offerKeylet_wrap, - &imp.at("offer_keylet"), + &imp.at("offer_id"), params, result, masterID, @@ -3522,7 +3459,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(offerKeylet_wrap, - &imp.at("offer_keylet"), + &imp.at("offer_id"), params, result, xrpAccount(), @@ -3539,7 +3476,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(oracleKeylet_wrap, - &imp.at("oracle_keylet"), + &imp.at("oracle_id"), params, result, masterID, @@ -3554,7 +3491,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(oracleKeylet_wrap, - &imp.at("oracle_keylet"), + &imp.at("oracle_id"), params, result, xrpAccount(), @@ -3571,7 +3508,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(8), result(1); auto* trap = ww(paychanKeylet_wrap, - &imp.at("paychan_keylet"), + &imp.at("paychan_id"), params, result, masterID, @@ -3587,7 +3524,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(paychanKeylet_wrap, - &imp.at("paychan_keylet"), + &imp.at("paychan_id"), params, result, masterID, @@ -3601,7 +3538,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap3 = ww(paychanKeylet_wrap, - &imp.at("paychan_keylet"), + &imp.at("paychan_id"), params, result, masterID, @@ -3615,7 +3552,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap4 = ww(paychanKeylet_wrap, - &imp.at("paychan_keylet"), + &imp.at("paychan_id"), params, result, xrpAccount(), @@ -3633,7 +3570,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(permissionedDomainKeylet_wrap, - &imp.at("permissioned_domain_keylet"), + &imp.at("permissioned_domain_id"), params, result, masterID, @@ -3648,7 +3585,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(permissionedDomainKeylet_wrap, - &imp.at("permissioned_domain_keylet"), + &imp.at("permissioned_domain_id"), params, result, xrpAccount(), @@ -3663,22 +3600,16 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::signers(masterID); WasmValVec params(4), result(1); - auto* trap = ww( - signersKeylet_wrap, &imp.at("signers_keylet"), params, result, masterID, 1024, 32); + auto* trap = + ww(signersKeylet_wrap, &imp.at("signers_id"), params, result, masterID, 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 2); BEAST_EXPECT(compareKeylet(actual, expected)); } - auto* trap2 = - ww(signersKeylet_wrap, - &imp.at("signers_keylet"), - params, - result, - xrpAccount(), - 1024, - 32); + auto* trap2 = ww( + signersKeylet_wrap, &imp.at("signers_id"), params, result, xrpAccount(), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -3689,7 +3620,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(ticketKeylet_wrap, - &imp.at("ticket_keylet"), + &imp.at("ticket_id"), params, result, masterID, @@ -3704,7 +3635,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(ticketKeylet_wrap, - &imp.at("ticket_keylet"), + &imp.at("ticket_id"), params, result, xrpAccount(), @@ -3721,7 +3652,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(vaultKeylet_wrap, - &imp.at("vault_keylet"), + &imp.at("vault_id"), params, result, masterID, @@ -3736,7 +3667,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto* trap2 = ww(vaultKeylet_wrap, - &imp.at("vault_keylet"), + &imp.at("vault_id"), params, result, xrpAccount(), @@ -3787,7 +3718,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(getNFT_wrap, - &import.at("get_nft"), + &import.at("nft_uri"), params, result, 0, @@ -3814,7 +3745,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(getNFT_wrap, - &import.at("get_nft"), + &import.at("nft_uri"), params, result, 0, @@ -3837,7 +3768,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(getNFT_wrap, - &import.at("get_nft"), + &import.at("nft_uri"), params, result, 0, @@ -3860,7 +3791,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(getNFT_wrap, - &import.at("get_nft"), + &import.at("nft_uri"), params, result, 0, @@ -3882,7 +3813,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(6), result(1); auto* trap = ww(getNFT_wrap, - &import.at("get_nft"), + &import.at("nft_uri"), params, result, 0, @@ -3927,7 +3858,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getNFTIssuer_wrap, - &import.at("get_nft_issuer"), + &import.at("nft_issuer"), params, result, 0, @@ -3951,7 +3882,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getNFTIssuer_wrap, - &import.at("get_nft_issuer"), + &import.at("nft_issuer"), params, result, 0, @@ -3992,7 +3923,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getNFTTaxon_wrap, - &import.at("get_nft_taxon"), + &import.at("nft_taxon"), params, result, 0, @@ -4034,8 +3965,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getNFTFlags(nftId); vrt.setBytes(0, nftId.data(), uint256::size()); WasmValVec params(2), result(1); - auto* trap = ww( - getNFTFlags_wrap, &import.at("get_nft_flags"), params, result, 0, uint256::size()); + auto* trap = + ww(getNFTFlags_wrap, &import.at("nft_flags"), params, result, 0, uint256::size()); if (BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32)) BEAST_EXPECT(result[0].of.i32 == tfTransferable); @@ -4047,8 +3978,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite uint256 zeroId; vrt.setBytes(0, zeroId.data(), uint256::size()); WasmValVec params(2), result(1); - auto* trap = ww( - getNFTFlags_wrap, &import.at("get_nft_flags"), params, result, 0, uint256::size()); + auto* trap = + ww(getNFTFlags_wrap, &import.at("nft_flags"), params, result, 0, uint256::size()); if (BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32)) BEAST_EXPECT(result[0].of.i32 == 0); @@ -4084,7 +4015,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getNFTTransferFee_wrap, - &import.at("get_nft_transfer_fee"), + &import.at("nft_xfer_fee"), params, result, 0, @@ -4102,7 +4033,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(2), result(1); auto* trap = ww(getNFTTransferFee_wrap, - &import.at("get_nft_transfer_fee"), + &import.at("nft_xfer_fee"), params, result, 0, @@ -4143,7 +4074,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getNFTSerial_wrap, - &import.at("get_nft_serial"), + &import.at("nft_serial"), params, result, 0, @@ -4166,7 +4097,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(getNFTSerial_wrap, - &import.at("get_nft_serial"), + &import.at("nft_serial"), params, result, 0, @@ -4398,7 +4329,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(traceAccount_wrap, - &import.at("trace_account"), + &import.at("trace_acct"), params, result, 0, @@ -4439,7 +4370,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(traceAccount_wrap, - &import.at("trace_account"), + &import.at("trace_acct"), params, result, 0, @@ -4484,7 +4415,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(traceAmount_wrap, - &import.at("trace_amount"), + &import.at("trace_amt"), params, result, 0, @@ -4514,7 +4445,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(traceAmount_wrap, - &import.at("trace_amount"), + &import.at("trace_amt"), params, result, 0, @@ -4539,7 +4470,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(traceAmount_wrap, - &import.at("trace_amount"), + &import.at("trace_amt"), params, result, 0, @@ -4577,7 +4508,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(traceAmount_wrap, - &import.at("trace_amount"), + &import.at("trace_amt"), params, result, 0, @@ -4705,7 +4636,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(traceFloat_wrap, - &import.at("trace_opaque_float"), + &import.at("trace_xfloat"), params, result, 0, @@ -4724,7 +4655,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(traceFloat_wrap, - &import.at("trace_opaque_float"), + &import.at("trace_xfloat"), params, result, 0, @@ -4760,7 +4691,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = ww(traceFloat_wrap, - &import.at("trace_opaque_float"), + &import.at("trace_xfloat"), params, result, 0, @@ -5014,7 +4945,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(floatFromMantExp_wrap, - &import.at("float_compare"), + &import.at("float_cmp"), params, result, 1ll, @@ -5034,7 +4965,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(floatFromMantExp_wrap, - &import.at("float_compare"), + &import.at("float_cmp"), params, result, 1ll, @@ -5054,7 +4985,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(floatFromMantExp_wrap, - &import.at("float_compare"), + &import.at("float_cmp"), params, result, 1ll, @@ -5074,7 +5005,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(floatFromMantExp_wrap, - &import.at("float_compare"), + &import.at("float_cmp"), params, result, 1ll, @@ -5094,7 +5025,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(floatFromMantExp_wrap, - &import.at("float_compare"), + &import.at("float_cmp"), params, result, 1ll, @@ -5114,7 +5045,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(floatFromMantExp_wrap, - &import.at("float_compare"), + &import.at("float_cmp"), params, result, -1ll, @@ -5134,7 +5065,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(floatFromMantExp_wrap, - &import.at("float_compare"), + &import.at("float_cmp"), params, result, 1ll, @@ -5154,7 +5085,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(floatFromMantExp_wrap, - &import.at("float_compare"), + &import.at("float_cmp"), params, result, static_cast(STAmount::kMaxValue), @@ -5174,7 +5105,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(floatFromMantExp_wrap, - &import.at("float_compare"), + &import.at("float_cmp"), params, result, 1ll, @@ -5194,7 +5125,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(floatFromMantExp_wrap, - &import.at("float_compare"), + &import.at("float_cmp"), params, result, 10ll, @@ -5214,7 +5145,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(5), result(1); auto* trap = ww(floatFromMantExp_wrap, - &import.at("float_compare"), + &import.at("float_cmp"), params, result, 1ll, @@ -5370,7 +5301,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(7), result(1); auto* trap = ww(floatAdd_wrap, - &import.at("float_subtract"), + &import.at("float_sub"), params, result, 0, @@ -5392,7 +5323,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(7), result(1); auto* trap = ww(floatAdd_wrap, - &import.at("float_subtract"), + &import.at("float_sub"), params, result, 0, @@ -5416,7 +5347,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, invalid.data(), invalid.size()); auto* trap = ww(floatAdd_wrap, - &import.at("float_subtract"), + &import.at("float_sub"), params, result, 0, @@ -5441,7 +5372,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, floatMaxExp.data(), floatMaxExp.size()); auto* trap = ww(floatAdd_wrap, - &import.at("float_subtract"), + &import.at("float_sub"), params, result, 0, @@ -5465,7 +5396,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, floatIntZero.data(), floatIntZero.size()); auto* trap = ww(floatAdd_wrap, - &import.at("float_subtract"), + &import.at("float_sub"), params, result, 0, @@ -5490,7 +5421,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, floatIntMin.data(), floatIntMin.size()); auto* trap = ww(floatAdd_wrap, - &import.at("float_subtract"), + &import.at("float_sub"), params, result, 0, @@ -5686,7 +5617,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(7), result(1); auto* trap = ww(floatMultiply_wrap, - &import.at("float_multiply"), + &import.at("float_mult"), params, result, 0, @@ -5708,7 +5639,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(7), result(1); auto* trap = ww(floatMultiply_wrap, - &import.at("float_multiply"), + &import.at("float_mult"), params, result, 0, @@ -5732,7 +5663,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, invalid.data(), invalid.size()); auto* trap = ww(floatMultiply_wrap, - &import.at("float_multiply"), + &import.at("float_mult"), params, result, 0, @@ -5756,7 +5687,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, float1More.data(), float1More.size()); auto* trap = ww(floatMultiply_wrap, - &import.at("float_multiply"), + &import.at("float_mult"), params, result, 0, @@ -5780,7 +5711,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, float1.data(), float1.size()); auto* trap = ww(floatMultiply_wrap, - &import.at("float_multiply"), + &import.at("float_mult"), params, result, 0, @@ -5804,7 +5735,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, floatMaxIOU.data(), floatMaxIOU.size()); auto* trap = ww(floatMultiply_wrap, - &import.at("float_multiply"), + &import.at("float_mult"), params, result, 0, @@ -5828,7 +5759,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, floatPreMaxExp.data(), floatPreMaxExp.size()); auto* trap = ww(floatMultiply_wrap, - &import.at("float_multiply"), + &import.at("float_mult"), params, result, 0, @@ -5867,7 +5798,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(7), result(1); auto* trap = ww(floatDivide_wrap, - &import.at("float_divide"), + &import.at("float_div"), params, result, 0, @@ -5889,7 +5820,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(7), result(1); auto* trap = ww(floatDivide_wrap, - &import.at("float_divide"), + &import.at("float_div"), params, result, 0, @@ -5912,7 +5843,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, invalid.data(), invalid.size()); auto* trap = ww(floatDivide_wrap, - &import.at("float_divide"), + &import.at("float_div"), params, result, 0, @@ -5935,7 +5866,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, floatIntZero.data(), floatIntZero.size()); auto* trap = ww(floatDivide_wrap, - &import.at("float_divide"), + &import.at("float_div"), params, result, 0, @@ -5962,7 +5893,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, y->data(), y->size()); auto* trap = ww(floatDivide_wrap, - &import.at("float_divide"), + &import.at("float_div"), params, result, 0, @@ -5986,7 +5917,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, float1.data(), float1.size()); auto* trap = ww(floatDivide_wrap, - &import.at("float_divide"), + &import.at("float_div"), params, result, 0, @@ -6009,7 +5940,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(floatSize, float10.data(), float10.size()); auto* trap = ww(floatDivide_wrap, - &import.at("float_divide"), + &import.at("float_div"), params, result, 0, @@ -7412,7 +7343,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // 3 parameters instead of 2 auto* trap = ww(getLedgerSqn_wrap, - &import.at("get_ledger_sqn"), + &import.at("ldgr_index"), params, result, 0, diff --git a/src/test/app/Wasm_test.cpp b/src/test/app/Wasm_test.cpp index c1879d1fe9..0d1ddd6d16 100644 --- a/src/test/app/Wasm_test.cpp +++ b/src/test/app/Wasm_test.cpp @@ -287,7 +287,7 @@ struct Wasm_test : public beast::unit_test::Suite Env env{*this}; TestLedgerDataProvider hfs(env); ImportVec imports; - WASM_IMPORT_FUNC2(imports, getLedgerSqn, "get_ledger_sqn", &hfs, 33); + WASM_IMPORT_FUNC2(imports, getLedgerSqn, "ldgr_index", &hfs, 33); auto& engine = WasmEngine::instance(); auto re = @@ -316,8 +316,8 @@ struct Wasm_test : public beast::unit_test::Suite Env env{*this}; TestLedgerDataProvider hfs(env); ImportVec imports; - WASM_IMPORT_FUNC2(imports, getLedgerSqn, "get_ledger_sqn", &hfs, 33); - WASM_IMPORT_FUNC2(imports, getParentLedgerHash, "get_parent_ledger_hash", &hfs, 60); + WASM_IMPORT_FUNC2(imports, getLedgerSqn, "ldgr_index", &hfs, 33); + WASM_IMPORT_FUNC2(imports, getParentLedgerHash, "parent_ldgr_hash", &hfs, 60); auto& engine = WasmEngine::instance(); // Test exp_func1() - should return 1 @@ -329,7 +329,7 @@ struct Wasm_test : public beast::unit_test::Suite impExpWasm, hfs, 1'000'000, "exp_func2", wasmParams(5), imports, env.journal); checkResult(re, 10, 52); - // Test test_imports() - should call get_ledger_sqn and get_parent_ledger_hash + // Test test_imports() - should call ldgr_index and parent_ldgr_hash re = engine.run(impExpWasm, hfs, 1'000'000, "test_imports", {}, imports, env.journal); // Should return the ledger sequence number (3 by default in test env) checkResult(re, 3, 294); @@ -337,15 +337,15 @@ struct Wasm_test : public beast::unit_test::Suite // Test corrupted import/export sections - invert each byte and expect failure testcase("Wasm import/export section corruption"); { - // Import section(#2): bytes [26, 79) - 53 bytes - // Export section(#7): bytes [90, 141) - 51 bytes + // Import section(#2): bytes [26, 69) - 43 bytes + // Export section(#7): bytes [80, 131) - 51 bytes auto [importStart, importEnd] = getSection(impExpWasm, 2); auto [exportStart, exportEnd] = getSection(impExpWasm, 7); BEAST_EXPECTS(importStart == 26, std::to_string(importStart)); - BEAST_EXPECTS(importEnd == 79, std::to_string(importEnd)); - BEAST_EXPECTS(exportStart == 90, std::to_string(exportStart)); - BEAST_EXPECTS(exportEnd == 141, std::to_string(exportEnd)); + BEAST_EXPECTS(importEnd == 69, std::to_string(importEnd)); + BEAST_EXPECTS(exportStart == 80, std::to_string(exportStart)); + BEAST_EXPECTS(exportEnd == 131, std::to_string(exportEnd)); auto testInv = [&](unsigned i) { auto corruptedWasm = impExpWasm; @@ -380,7 +380,7 @@ struct Wasm_test : public beast::unit_test::Suite auto const re = engine.run(fibWasm, hfs, 10'000'000, "fib", wasmParams(10)); - checkResult(re, 55, 1'137); + checkResult(re, 55, 1'184); } void @@ -577,7 +577,7 @@ struct Wasm_test : public beast::unit_test::Suite auto const lgrSqnWasm = hexToBytes(kLedgerSqnWasmHex); TestLedgerDataProvider hfs(env); ImportVec imports; - WASM_IMPORT_FUNC2(imports, getLedgerSqn, "get_ledger_sqn2", &hfs); + WASM_IMPORT_FUNC2(imports, getLedgerSqn, "ldgr_index2", &hfs); auto& engine = WasmEngine::instance(); @@ -592,8 +592,8 @@ struct Wasm_test : public beast::unit_test::Suite auto const lgrSqnWasm = hexToBytes(kLedgerSqnWasmHex); TestLedgerDataProvider hfs(env); ImportVec imports; - WASM_IMPORT_FUNC2(imports, getLedgerSqn, "get_ledger_sqn", &hfs); - imports["get_ledger_sqn"].first = nullptr; + WASM_IMPORT_FUNC2(imports, getLedgerSqn, "ldgr_index", &hfs); + imports["ldgr_index"].first = nullptr; auto& engine = WasmEngine::instance(); @@ -641,7 +641,7 @@ struct Wasm_test : public beast::unit_test::Suite TestHostFunctions hfs(env, 0); auto re = runEscrowWasm(float0Wasm, hfs, 100'000, funcName, {}); - checkResult(re, 1, 4'309); + checkResult(re, 1, 3'784); env.close(); } } @@ -658,7 +658,7 @@ struct Wasm_test : public beast::unit_test::Suite auto const codecovWasm = hexToBytes(kCodecovTestsWasmHex); TestHostFunctions hfs(env, 0); - auto const allowance = 220'169; + auto const allowance = 204'624; auto re = runEscrowWasm(codecovWasm, hfs, allowance, escrowFunctionName, {}); checkResult(re, 1, allowance); diff --git a/src/test/app/wasm_fixtures/all_host_functions/Cargo.lock b/src/test/app/wasm_fixtures/all_host_functions/Cargo.lock index dc4aa73edb..48771d1506 100644 --- a/src/test/app/wasm_fixtures/all_host_functions/Cargo.lock +++ b/src/test/app/wasm_fixtures/all_host_functions/Cargo.lock @@ -44,9 +44,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -64,9 +64,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -74,24 +74,24 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.177" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.41" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -109,9 +109,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.108" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -120,9 +120,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -135,15 +135,15 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "version_check" @@ -152,9 +152,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "xrpl-address-macro" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=u32-buffer#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +name = "xrpl-macros" +version = "0.1.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#9822d645870908a79d87a57b0244caa6359cb9cf" dependencies = [ "bs58", "quote", @@ -164,8 +164,8 @@ dependencies = [ [[package]] name = "xrpl-wasm-stdlib" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=u32-buffer#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +version = "0.8.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#9822d645870908a79d87a57b0244caa6359cb9cf" dependencies = [ - "xrpl-address-macro", + "xrpl-macros", ] diff --git a/src/test/app/wasm_fixtures/all_host_functions/Cargo.toml b/src/test/app/wasm_fixtures/all_host_functions/Cargo.toml index 102eb32cc0..fb0c44562a 100644 --- a/src/test/app/wasm_fixtures/all_host_functions/Cargo.toml +++ b/src/test/app/wasm_fixtures/all_host_functions/Cargo.toml @@ -10,7 +10,7 @@ edition = "2024" crate-type = ["cdylib"] [dependencies] -xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", branch = "u32-buffer" } +xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", branch = "renames" } [profile.dev] panic = "abort" diff --git a/src/test/app/wasm_fixtures/all_host_functions/src/lib.rs b/src/test/app/wasm_fixtures/all_host_functions/src/lib.rs index 444fcaddfa..e24a58a20c 100644 --- a/src/test/app/wasm_fixtures/all_host_functions/src/lib.rs +++ b/src/test/app/wasm_fixtures/all_host_functions/src/lib.rs @@ -98,7 +98,7 @@ fn test_ledger_header_functions() -> i32 { // Test 1.1: get_ledger_sqn() - should return current ledger sequence number let mut sqn_buffer = [0u8; 4]; - let sqn_result = unsafe { host::get_ledger_sqn(sqn_buffer.as_mut_ptr(), sqn_buffer.len()) }; + let sqn_result = unsafe { host::ldgr_index(sqn_buffer.as_mut_ptr(), sqn_buffer.len()) }; if sqn_result <= 0 { let _ = trace_num("ERROR: get_ledger_sqn failed:", sqn_result as i64); @@ -110,7 +110,7 @@ fn test_ledger_header_functions() -> i32 { // Test 1.2: get_parent_ledger_time() - should return parent ledger timestamp let mut time_buffer = [0u8; 4]; let time_result = - unsafe { host::get_parent_ledger_time(time_buffer.as_mut_ptr(), time_buffer.len()) }; + unsafe { host::parent_ldgr_time(time_buffer.as_mut_ptr(), time_buffer.len()) }; if time_result <= 0 { let _ = trace_num("ERROR: get_parent_ledger_time failed:", time_result as i64); @@ -122,7 +122,7 @@ fn test_ledger_header_functions() -> i32 { // Test 1.3: get_parent_ledger_hash() - should return parent ledger hash (32 bytes) let mut hash_buffer = [0u8; 32]; let hash_result = - unsafe { host::get_parent_ledger_hash(hash_buffer.as_mut_ptr(), hash_buffer.len()) }; + unsafe { host::parent_ldgr_hash(hash_buffer.as_mut_ptr(), hash_buffer.len()) }; if hash_result != 32 { let _ = trace_num( @@ -146,8 +146,8 @@ fn test_transaction_data_functions() -> i32 { // Test with Account field (required, 20 bytes) let mut account_buffer = [0u8; 20]; let account_len = unsafe { - host::get_tx_field( - sfield::Account, + host::tx_field( + sfield::Account.into(), account_buffer.as_mut_ptr(), account_buffer.len(), ) @@ -165,8 +165,13 @@ fn test_transaction_data_functions() -> i32 { // Test with Fee field (XRP amount - 8 bytes in new serialized format) // New format: XRP amounts are always 8 bytes (positive: value | cPositive flag, negative: just value) let mut fee_buffer = [0u8; 8]; - let fee_len = - unsafe { host::get_tx_field(sfield::Fee, fee_buffer.as_mut_ptr(), fee_buffer.len()) }; + let fee_len = unsafe { + host::tx_field( + sfield::Fee.into(), + fee_buffer.as_mut_ptr(), + fee_buffer.len(), + ) + }; if fee_len != 8 { let _ = trace_num( @@ -184,8 +189,13 @@ fn test_transaction_data_functions() -> i32 { // Test with Sequence field (required, 4 bytes uint32) let mut seq_buffer = [0u8; 4]; - let seq_len = - unsafe { host::get_tx_field(sfield::Sequence, seq_buffer.as_mut_ptr(), seq_buffer.len()) }; + let seq_len = unsafe { + host::tx_field( + sfield::Sequence.into(), + seq_buffer.as_mut_ptr(), + seq_buffer.len(), + ) + }; if seq_len != 4 { let _ = trace_num( @@ -203,7 +213,7 @@ fn test_transaction_data_functions() -> i32 { let locator = [0x01, 0x00]; // Simple locator for first element let mut nested_buffer = [0u8; 32]; let nested_result = unsafe { - host::get_tx_nested_field( + host::tx_inner( locator.as_ptr(), locator.len(), nested_buffer.as_mut_ptr(), @@ -227,15 +237,14 @@ fn test_transaction_data_functions() -> i32 { } // Test 2.3: get_tx_array_len() - Get array length - let signers_len = unsafe { host::get_tx_array_len(sfield::Signers) }; + let signers_len = unsafe { host::tx_arr_len(sfield::Signers.into()) }; let _ = trace_num("Signers array length:", signers_len as i64); - let memos_len = unsafe { host::get_tx_array_len(sfield::Memos) }; + let memos_len = unsafe { host::tx_arr_len(sfield::Memos.into()) }; let _ = trace_num("Memos array length:", memos_len as i64); // Test 2.4: get_tx_nested_array_len() - Get nested array length with locator - let nested_array_len = - unsafe { host::get_tx_nested_array_len(locator.as_ptr(), locator.len()) }; + let nested_array_len = unsafe { host::tx_inner_arr_len(locator.as_ptr(), locator.len()) }; if nested_array_len < 0 { let _ = trace_num( @@ -259,8 +268,8 @@ fn test_current_ledger_object_functions() -> i32 { // Test with Balance field (XRP amount - 8 bytes in new serialized format) let mut balance_buffer = [0u8; 8]; let balance_result = unsafe { - host::get_current_ledger_obj_field( - sfield::Balance, + host::home_le_field( + sfield::Balance.into(), balance_buffer.as_mut_ptr(), balance_buffer.len(), ) @@ -297,8 +306,8 @@ fn test_current_ledger_object_functions() -> i32 { // Test with Account field let mut current_account_buffer = [0u8; 20]; let current_account_result = unsafe { - host::get_current_ledger_obj_field( - sfield::Account, + host::home_le_field( + sfield::Account.into(), current_account_buffer.as_mut_ptr(), current_account_buffer.len(), ) @@ -317,7 +326,7 @@ fn test_current_ledger_object_functions() -> i32 { let locator = [0x01, 0x00]; // Simple locator let mut current_nested_buffer = [0u8; 32]; let current_nested_result = unsafe { - host::get_current_ledger_obj_nested_field( + host::home_le_inner( locator.as_ptr(), locator.len(), current_nested_buffer.as_mut_ptr(), @@ -340,7 +349,7 @@ fn test_current_ledger_object_functions() -> i32 { } // Test 3.3: get_current_ledger_obj_array_len() - Array length in current object - let current_array_len = unsafe { host::get_current_ledger_obj_array_len(sfield::Signers) }; + let current_array_len = unsafe { host::home_le_arr_len(sfield::Signers.into()) }; let _ = trace_num( "Current object Signers array length:", current_array_len as i64, @@ -348,7 +357,7 @@ fn test_current_ledger_object_functions() -> i32 { // Test 3.4: get_current_ledger_obj_nested_array_len() - Nested array length let current_nested_array_len = - unsafe { host::get_current_ledger_obj_nested_array_len(locator.as_ptr(), locator.len()) }; + unsafe { host::home_le_inner_arr_len(locator.as_ptr(), locator.len()) }; if current_nested_array_len < 0 { let _ = trace_num( @@ -379,7 +388,7 @@ fn test_any_ledger_object_functions() -> i32 { // Test 4.1: cache_ledger_obj() - Cache a ledger object let mut keylet_buffer = [0u8; 32]; let keylet_result = unsafe { - host::account_keylet( + host::accountroot_id( account_id.0.as_ptr(), account_id.0.len(), keylet_buffer.as_mut_ptr(), @@ -389,14 +398,13 @@ fn test_any_ledger_object_functions() -> i32 { if keylet_result != 32 { let _ = trace_num( - "ERROR: account_keylet failed for caching test:", + "ERROR: accountroot_id failed for caching test:", keylet_result as i64, ); return -401; // Keylet generation failed for caching test } - let cache_result = - unsafe { host::cache_ledger_obj(keylet_buffer.as_ptr(), keylet_result as usize, 0) }; + let cache_result = unsafe { host::cache_le(keylet_buffer.as_ptr(), keylet_result as usize, 0) }; if cache_result <= 0 { let _ = trace_num( @@ -411,9 +419,9 @@ fn test_any_ledger_object_functions() -> i32 { // Test get_ledger_obj_field with invalid slot let field_result = unsafe { - host::get_ledger_obj_field( + host::le_field( 1, - sfield::Balance, + sfield::Balance.into(), test_buffer.as_mut_ptr(), test_buffer.len(), ) @@ -428,7 +436,7 @@ fn test_any_ledger_object_functions() -> i32 { // Test get_ledger_obj_nested_field with invalid slot let locator = [0x01, 0x00]; let nested_result = unsafe { - host::get_ledger_obj_nested_field( + host::le_inner( 1, locator.as_ptr(), locator.len(), @@ -444,7 +452,7 @@ fn test_any_ledger_object_functions() -> i32 { } // Test get_ledger_obj_array_len with invalid slot - let array_result = unsafe { host::get_ledger_obj_array_len(1, sfield::Signers) }; + let array_result = unsafe { host::le_arr_len(1, sfield::Signers.into()) }; if array_result < 0 { let _ = trace_num( "INFO: get_ledger_obj_array_len failed as expected:", @@ -454,7 +462,7 @@ fn test_any_ledger_object_functions() -> i32 { // Test get_ledger_obj_nested_array_len with invalid slot let nested_array_result = - unsafe { host::get_ledger_obj_nested_array_len(1, locator.as_ptr(), locator.len()) }; + unsafe { host::le_inner_arr_len(1, locator.as_ptr(), locator.len()) }; if nested_array_result < 0 { let _ = trace_num( "INFO: get_ledger_obj_nested_array_len failed as expected:", @@ -473,9 +481,9 @@ fn test_any_ledger_object_functions() -> i32 { // Test 4.2: get_ledger_obj_field() - Access field from cached object let mut cached_balance_buffer = [0u8; 8]; let cached_balance_result = unsafe { - host::get_ledger_obj_field( + host::le_field( slot, - sfield::Balance, + sfield::Balance.into(), cached_balance_buffer.as_mut_ptr(), cached_balance_buffer.len(), ) @@ -512,7 +520,7 @@ fn test_any_ledger_object_functions() -> i32 { let locator = [0x01, 0x00]; let mut cached_nested_buffer = [0u8; 32]; let cached_nested_result = unsafe { - host::get_ledger_obj_nested_field( + host::le_inner( slot, locator.as_ptr(), locator.len(), @@ -536,7 +544,7 @@ fn test_any_ledger_object_functions() -> i32 { } // Test 4.4: get_ledger_obj_array_len() - Array length from cached object - let cached_array_len = unsafe { host::get_ledger_obj_array_len(slot, sfield::Signers) }; + let cached_array_len = unsafe { host::le_arr_len(slot, sfield::Signers.into()) }; let _ = trace_num( "Cached object Signers array length:", cached_array_len as i64, @@ -544,7 +552,7 @@ fn test_any_ledger_object_functions() -> i32 { // Test 4.5: get_ledger_obj_nested_array_len() - Nested array length from cached object let cached_nested_array_len = - unsafe { host::get_ledger_obj_nested_array_len(slot, locator.as_ptr(), locator.len()) }; + unsafe { host::le_inner_arr_len(slot, locator.as_ptr(), locator.len()) }; if cached_nested_array_len < 0 { let _ = trace_num( @@ -570,30 +578,30 @@ fn test_keylet_generation_functions() -> i32 { let escrow_finish = EscrowFinish; let account_id = escrow_finish.get_account().unwrap(); - // Test 5.1: account_keylet() - Generate keylet for account - let mut account_keylet_buffer = [0u8; 32]; - let account_keylet_result = unsafe { - host::account_keylet( + // Test 5.1: accountroot_id() - Generate keylet for account + let mut accountroot_id_buffer = [0u8; 32]; + let accountroot_id_result = unsafe { + host::accountroot_id( account_id.0.as_ptr(), account_id.0.len(), - account_keylet_buffer.as_mut_ptr(), - account_keylet_buffer.len(), + accountroot_id_buffer.as_mut_ptr(), + accountroot_id_buffer.len(), ) }; - if account_keylet_result != 32 { + if accountroot_id_result != 32 { let _ = trace_num( - "ERROR: account_keylet failed:", - account_keylet_result as i64, + "ERROR: accountroot_id failed:", + accountroot_id_result as i64, ); return -501; // Account keylet generation failed } - let _ = trace_data("Account keylet:", &account_keylet_buffer, DataRepr::AsHex); + let _ = trace_data("Account keylet:", &accountroot_id_buffer, DataRepr::AsHex); // Test 5.2: credential_keylet() - Generate keylet for credential let mut credential_keylet_buffer = [0u8; 32]; let credential_keylet_result = unsafe { - host::credential_keylet( + host::credential_id( account_id.0.as_ptr(), // Subject account_id.0.len(), account_id.0.as_ptr(), // Issuer - same account for test @@ -624,7 +632,7 @@ fn test_keylet_generation_functions() -> i32 { let sequence_number: i32 = 1000; let sequence_number_bytes = sequence_number.to_be_bytes(); let escrow_keylet_result = unsafe { - host::escrow_keylet( + host::escrow_id( account_id.0.as_ptr(), account_id.0.len(), sequence_number_bytes.as_ptr(), @@ -645,7 +653,7 @@ fn test_keylet_generation_functions() -> i32 { let document_id: i32 = 42; let document_id_bytes = document_id.to_be_bytes(); let oracle_keylet_result = unsafe { - host::oracle_keylet( + host::oracle_id( account_id.0.as_ptr(), account_id.0.len(), document_id_bytes.as_ptr(), @@ -674,7 +682,7 @@ fn test_utility_functions() -> i32 { let test_data = b"Hello, XRPL WASM world!"; let mut hash_output = [0u8; 32]; let hash_result = unsafe { - host::compute_sha512_half( + host::sha512_half( test_data.as_ptr(), test_data.len(), hash_output.as_mut_ptr(), @@ -695,7 +703,7 @@ fn test_utility_functions() -> i32 { let nft_id = [0u8; 32]; // Dummy NFT ID for testing let mut nft_buffer = [0u8; 256]; let nft_result = unsafe { - host::get_nft( + host::nft_uri( account_id.0.as_ptr(), account_id.0.len(), nft_id.as_ptr(), @@ -766,7 +774,7 @@ fn test_data_update_functions() -> i32 { // Test 7.1: update_data() - Update current ledger entry data let update_payload = b"Updated ledger entry data from WASM test"; - let update_result = unsafe { host::update_data(update_payload.as_ptr(), update_payload.len()) }; + let update_result = unsafe { host::set_data(update_payload.as_ptr(), update_payload.len()) }; if update_result != update_payload.len() as i32 { let _ = trace_num("ERROR: update_data failed:", update_result as i64); diff --git a/src/test/app/wasm_fixtures/all_keylets/Cargo.lock b/src/test/app/wasm_fixtures/all_keylets/Cargo.lock index d45ec0df78..5da5b26f66 100644 --- a/src/test/app/wasm_fixtures/all_keylets/Cargo.lock +++ b/src/test/app/wasm_fixtures/all_keylets/Cargo.lock @@ -44,9 +44,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -64,9 +64,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -74,24 +74,24 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.177" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.41" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -109,9 +109,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.108" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -120,9 +120,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -135,15 +135,15 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "version_check" @@ -152,9 +152,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "xrpl-address-macro" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=u32-buffer#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +name = "xrpl-macros" +version = "0.1.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#21c522f34a24b460297ebb6be1822680459bf37e" dependencies = [ "bs58", "quote", @@ -164,8 +164,8 @@ dependencies = [ [[package]] name = "xrpl-wasm-stdlib" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=u32-buffer#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +version = "0.8.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#21c522f34a24b460297ebb6be1822680459bf37e" dependencies = [ - "xrpl-address-macro", + "xrpl-macros", ] diff --git a/src/test/app/wasm_fixtures/all_keylets/Cargo.toml b/src/test/app/wasm_fixtures/all_keylets/Cargo.toml index abd232e636..ad53fd62b1 100644 --- a/src/test/app/wasm_fixtures/all_keylets/Cargo.toml +++ b/src/test/app/wasm_fixtures/all_keylets/Cargo.toml @@ -15,7 +15,7 @@ opt-level = 's' panic = "abort" [dependencies] -xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", branch = "u32-buffer" } +xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", branch = "renames" } [profile.dev] panic = "abort" diff --git a/src/test/app/wasm_fixtures/all_keylets/src/lib.rs b/src/test/app/wasm_fixtures/all_keylets/src/lib.rs index e3d9ab1b19..3a1e2cb498 100644 --- a/src/test/app/wasm_fixtures/all_keylets/src/lib.rs +++ b/src/test/app/wasm_fixtures/all_keylets/src/lib.rs @@ -4,39 +4,38 @@ extern crate std; use crate::host::{Error, Result, Result::Err, Result::Ok}; +use xrpl_std::core::keylets; use xrpl_std::core::ledger_objects::current_escrow::get_current_escrow; use xrpl_std::core::ledger_objects::current_escrow::CurrentEscrow; use xrpl_std::core::ledger_objects::ledger_object; use xrpl_std::core::ledger_objects::traits::CurrentEscrowFields; -use xrpl_std::core::types::account_id::AccountID; +use xrpl_std::core::ledger_objects::LedgerObjectFieldGetter; use xrpl_std::core::types::currency::Currency; use xrpl_std::core::types::issue::{IouIssue, Issue, XrpIssue}; -use xrpl_std::core::types::keylets; use xrpl_std::core::types::mpt_id::MptId; -use xrpl_std::core::types::uint::Hash256; use xrpl_std::host; -use xrpl_std::host::trace::{trace, trace_account, trace_data, trace_num, DataRepr}; +use xrpl_std::host::trace::{trace, trace_acct, trace_data, trace_num, DataRepr}; use xrpl_std::sfield; -#[unsafe(no_mangle)] -pub fn object_exists( +pub fn object_exists( keylet_result: Result, keylet_type: &str, - field: i32, + sfield: sfield::SField, ) -> Result { + let field = CODE; match keylet_result { Ok(keylet) => { let _ = trace_data(keylet_type, &keylet, DataRepr::AsHex); - let slot = unsafe { host::cache_ledger_obj(keylet.as_ptr(), keylet.len(), 0) }; + let slot = unsafe { host::cache_le(keylet.as_ptr(), keylet.len(), 0) }; if slot <= 0 { let _ = trace_num("Error: ", slot.into()); return Err(Error::from_code(slot)); } if field == 0 { let new_field = sfield::PreviousTxnID; - let _ = trace_num("Getting field: ", new_field.into()); - match ledger_object::get_field::(slot, new_field) { + let _ = trace_num("Getting field: ", new_field.clone().into()); + match ledger_object::get_field(slot, new_field) { Ok(data) => { let _ = trace_data("Field data: ", &data.0, DataRepr::AsHex); } @@ -47,9 +46,9 @@ pub fn object_exists( } } else { let _ = trace_num("Getting field: ", field.into()); - match ledger_object::get_field::(slot, field) { - Ok(data) => { - let _ = trace_data("Field data: ", &data.0, DataRepr::AsHex); + match ledger_object::get_field(slot, sfield) { + Ok(_data) => { + let _ = trace("Field data: retrieved"); } Err(result_code) => { let _ = trace_num("Error getting field: ", result_code.into()); @@ -74,10 +73,10 @@ pub extern "C" fn finish() -> i32 { let escrow: CurrentEscrow = get_current_escrow(); let account = escrow.get_account().unwrap_or_panic(); - let _ = trace_account("Account:", &account); + let _ = trace_acct("Account:", &account); let destination = escrow.get_destination().unwrap_or_panic(); - let _ = trace_account("Destination:", &destination); + let _ = trace_acct("Destination:", &destination); let mut seq = 5; @@ -99,82 +98,78 @@ pub extern "C" fn finish() -> i32 { }; } - let account_keylet = keylets::account_keylet(&account); - check_object_exists!(account_keylet, "Account", sfield::Account); + let accountroot_id = keylets::accountroot_id(&account); + check_object_exists!(accountroot_id, "Account", sfield::Account); let currency_code: &[u8; 3] = b"USD"; let currency: Currency = Currency::from(*currency_code); - let line_keylet = keylets::line_keylet(&account, &destination, ¤cy); - check_object_exists!(line_keylet, "Trustline", sfield::Generic); + let trustline_id = keylets::trustline_id(&account, &destination, ¤cy); + check_object_exists!(trustline_id, "Trustline", sfield::Generic); seq += 1; let asset1 = Issue::XRP(XrpIssue {}); let asset2 = Issue::IOU(IouIssue::new(destination, currency)); - check_object_exists!( - keylets::amm_keylet(&asset1, &asset2), - "AMM", - sfield::Account - ); + check_object_exists!(keylets::amm_id(&asset1, &asset2), "AMM", sfield::Account); - let check_keylet = keylets::check_keylet(&account, seq); - check_object_exists!(check_keylet, "Check", sfield::Account); + let check_id = keylets::check_id(&account, seq); + check_object_exists!(check_id, "Check", sfield::Account); seq += 1; let cred_type: &[u8] = b"termsandconditions"; - let credential_keylet = keylets::credential_keylet(&account, &account, cred_type); - check_object_exists!(credential_keylet, "Credential", sfield::Subject); + let credential_id = keylets::credential_id(&account, &account, cred_type); + check_object_exists!(credential_id, "Credential", sfield::Subject); seq += 1; - let delegate_keylet = keylets::delegate_keylet(&account, &destination); - check_object_exists!(delegate_keylet, "Delegate", sfield::Account); + let delegate_id = keylets::delegate_id(&account, &destination); + check_object_exists!(delegate_id, "Delegate", sfield::Account); seq += 1; - let deposit_preauth_keylet = keylets::deposit_preauth_keylet(&account, &destination); - check_object_exists!(deposit_preauth_keylet, "DepositPreauth", sfield::Account); + let deposit_preauth_id = keylets::deposit_preauth_id(&account, &destination); + check_object_exists!(deposit_preauth_id, "DepositPreauth", sfield::Account); seq += 1; - let did_keylet = keylets::did_keylet(&account); - check_object_exists!(did_keylet, "DID", sfield::Account); + let did_id = keylets::did_id(&account); + check_object_exists!(did_id, "DID", sfield::Account); seq += 1; - let escrow_keylet = keylets::escrow_keylet(&account, seq); - check_object_exists!(escrow_keylet, "Escrow", sfield::Account); + let escrow_id = keylets::escrow_id(&account, seq); + check_object_exists!(escrow_id, "Escrow", sfield::Account); seq += 1; - let mpt_issuance_keylet = keylets::mpt_issuance_keylet(&account, seq); + let mpt_issuance_id = keylets::mpt_issuance_id(&account, seq); let mpt_id = MptId::new(seq.try_into().unwrap(), account); - check_object_exists!(mpt_issuance_keylet, "MPTIssuance", sfield::Issuer); + check_object_exists!(mpt_issuance_id, "MPTIssuance", sfield::Issuer); seq += 1; - let mptoken_keylet = keylets::mptoken_keylet(&mpt_id, &destination); - check_object_exists!(mptoken_keylet, "MPToken", sfield::Account); + let mptoken_id = keylets::mptoken_id(&mpt_id, &destination); + check_object_exists!(mptoken_id, "MPToken", sfield::Account); - let nft_offer_keylet = keylets::nft_offer_keylet(&destination, 6); - check_object_exists!(nft_offer_keylet, "NFTokenOffer", sfield::Owner); + let nft_offer_id = keylets::nft_offer_id(&destination, 6); + check_object_exists!(nft_offer_id, "NFTokenOffer", sfield::Owner); - let offer_keylet = keylets::offer_keylet(&account, seq); - check_object_exists!(offer_keylet, "Offer", sfield::Account); + let offer_id = keylets::offer_id(&account, seq); + check_object_exists!(offer_id, "Offer", sfield::Account); seq += 1; - let paychan_keylet = keylets::paychan_keylet(&account, &destination, seq); - check_object_exists!(paychan_keylet, "PayChannel", sfield::Account); + let paychan_id = keylets::paychan_id(&account, &destination, seq); + check_object_exists!(paychan_id, "PayChannel", sfield::Account); seq += 1; - let pd_keylet = keylets::permissioned_domain_keylet(&account, seq); - check_object_exists!(pd_keylet, "PermissionedDomain", sfield::Owner); + let pd_id = keylets::permissioned_domain_id(&account, seq); + check_object_exists!(pd_id, "PermissionedDomain", sfield::Owner); seq += 1; - let signers_keylet = keylets::signers_keylet(&account); - check_object_exists!(signers_keylet, "SignerList", sfield::Generic); + let signers_id = keylets::signers_id(&account); + check_object_exists!(signers_id, "SignerList", sfield::Generic); seq += 1; seq += 1; // ticket sequence number is one greater - let ticket_keylet = keylets::ticket_keylet(&account, seq); - check_object_exists!(ticket_keylet, "Ticket", sfield::Account); + let ticket_id = keylets::ticket_id(&account, seq); + check_object_exists!(ticket_id, "Ticket", sfield::Account); seq += 1; - let vault_keylet = keylets::vault_keylet(&account, seq); - check_object_exists!(vault_keylet, "Vault", sfield::Account); + let vault_id = keylets::vault_id(&account, seq); + check_object_exists!(vault_id, "Vault", sfield::Account); // seq += 1; 1 // All keylets exist, finish the escrow. diff --git a/src/test/app/wasm_fixtures/bad_align.c b/src/test/app/wasm_fixtures/bad_align.c index cc291c70f1..560245e762 100644 --- a/src/test/app/wasm_fixtures/bad_align.c +++ b/src/test/app/wasm_fixtures/bad_align.c @@ -1,8 +1,8 @@ #include int32_t float_from_uint(uint8_t const *, int32_t, uint8_t *, int32_t, int32_t); -int32_t check_keylet(uint8_t const *, int32_t, uint8_t const *, int32_t, - uint8_t *, int32_t); +int32_t check_id(uint8_t const *, int32_t, uint8_t const *, int32_t, uint8_t *, + int32_t); uint8_t e_data1[32 * 1024]; uint8_t e_data2[32 * 1024]; @@ -31,10 +31,9 @@ int32_t test2() // Set up valid non-zero AccountID (20 bytes) at offset 10 for (int i = 0; i < 20; i++) e_data2[10 + i] = i + 1; - // Call check_keylet with misaligned uint32 at &e_data2[1] to hit line 72 in + // Call check_id with misaligned uint32 at &e_data2[1] to hit line 72 in // HostFuncWrapper.cpp - int32_t result = - check_keylet(&e_data2[10], 20, &e_data2[1], 4, &e_data2[35], 32); + int32_t result = check_id(&e_data2[10], 20, &e_data2[1], 4, &e_data2[35], 32); // Return the misaligned value directly to validate it was read correctly (-1 // if all 0xFF) return result >= 0 ? *((int32_t *)(&e_data2[36])) : result; diff --git a/src/test/app/wasm_fixtures/codecov_tests/Cargo.lock b/src/test/app/wasm_fixtures/codecov_tests/Cargo.lock index 4a4b71bdcc..d7d91db071 100644 --- a/src/test/app/wasm_fixtures/codecov_tests/Cargo.lock +++ b/src/test/app/wasm_fixtures/codecov_tests/Cargo.lock @@ -44,9 +44,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -64,9 +64,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -74,24 +74,24 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.177" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.41" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -109,9 +109,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.108" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -120,9 +120,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -135,15 +135,15 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "version_check" @@ -152,9 +152,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "xrpl-address-macro" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=u32-buffer#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +name = "xrpl-macros" +version = "0.1.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#9822d645870908a79d87a57b0244caa6359cb9cf" dependencies = [ "bs58", "quote", @@ -164,8 +164,8 @@ dependencies = [ [[package]] name = "xrpl-wasm-stdlib" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=u32-buffer#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +version = "0.8.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#9822d645870908a79d87a57b0244caa6359cb9cf" dependencies = [ - "xrpl-address-macro", + "xrpl-macros", ] diff --git a/src/test/app/wasm_fixtures/codecov_tests/Cargo.toml b/src/test/app/wasm_fixtures/codecov_tests/Cargo.toml index 81a682bb37..1cc49ac490 100644 --- a/src/test/app/wasm_fixtures/codecov_tests/Cargo.toml +++ b/src/test/app/wasm_fixtures/codecov_tests/Cargo.toml @@ -15,4 +15,4 @@ opt-level = 's' panic = "abort" [dependencies] -xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", branch = "u32-buffer" } +xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", branch = "renames" } diff --git a/src/test/app/wasm_fixtures/codecov_tests/src/host_bindings_loose.rs b/src/test/app/wasm_fixtures/codecov_tests/src/host_bindings_loose.rs index c99a0047d5..6204dff0a2 100644 --- a/src/test/app/wasm_fixtures/codecov_tests/src/host_bindings_loose.rs +++ b/src/test/app/wasm_fixtures/codecov_tests/src/host_bindings_loose.rs @@ -19,20 +19,20 @@ pub const FLOAT_ROUNDING_MODES_UPWARD: i32 = 3; #[allow(unused)] #[link(wasm_import_module = "host_lib")] unsafe extern "C" { - pub fn get_parent_ledger_hash(out_buff_ptr: i32, out_buff_len: i32) -> i32; + pub fn parent_ldgr_hash(out_buff_ptr: i32, out_buff_len: i32) -> i32; - pub fn cache_ledger_obj(keylet_ptr: i32, keylet_len: i32, cache_num: i32) -> i32; + pub fn cache_le(keylet_ptr: i32, keylet_len: i32, cache_num: i32) -> i32; - pub fn get_tx_nested_array_len(locator_ptr: i32, locator_len: i32) -> i32; + pub fn tx_inner_arr_len(locator_ptr: i32, locator_len: i32) -> i32; - pub fn account_keylet( + pub fn accountroot_id( account_ptr: i32, account_len: i32, out_buff_ptr: *mut u8, out_buff_len: usize, ) -> i32; - pub fn line_keylet( + pub fn trustline_id( account1_ptr: *const u8, account1_len: usize, account2_ptr: *const u8, diff --git a/src/test/app/wasm_fixtures/codecov_tests/src/lib.rs b/src/test/app/wasm_fixtures/codecov_tests/src/lib.rs index 239728575a..ea32e93a88 100644 --- a/src/test/app/wasm_fixtures/codecov_tests/src/lib.rs +++ b/src/test/app/wasm_fixtures/codecov_tests/src/lib.rs @@ -6,11 +6,11 @@ extern crate std; use core::panic; use xrpl_std::core::current_tx::escrow_finish::{get_current_escrow_finish, EscrowFinish}; use xrpl_std::core::current_tx::traits::TransactionCommonFields; +use xrpl_std::core::keylets; use xrpl_std::core::locator::Locator; use xrpl_std::core::types::blob::DEFAULT_BLOB_SIZE; use xrpl_std::core::types::issue::Issue; use xrpl_std::core::types::issue::XrpIssue; -use xrpl_std::core::types::keylets; use xrpl_std::core::types::mpt_id::MptId; use xrpl_std::host; use xrpl_std::host::error_codes; @@ -58,28 +58,24 @@ pub extern "C" fn finish() -> i32 { // The float tests are also in a separate file (float_tests). // ######################################## with_buffer::<4, _, _>(|ptr, len| { - check_result( - unsafe { host::get_ledger_sqn(ptr, len) }, - 4, - "get_ledger_sqn", - ); + check_result(unsafe { host::ldgr_index(ptr, len) }, 4, "ldgr_index"); }); with_buffer::<4, _, _>(|ptr, len| { check_result( - unsafe { host::get_parent_ledger_time(ptr, len) }, + unsafe { host::parent_ldgr_time(ptr, len) }, 4, - "get_parent_ledger_time", + "parent_ldgr_time", ); }); with_buffer::<32, _, _>(|ptr, len| { check_result( - unsafe { host::get_parent_ledger_hash(ptr, len) }, + unsafe { host::parent_ldgr_hash(ptr, len) }, 32, - "get_parent_ledger_hash", + "parent_ldgr_hash", ); }); with_buffer::<4, _, _>(|ptr, len| { - check_result(unsafe { host::get_base_fee(ptr, len) }, 4, "get_base_fee"); + check_result(unsafe { host::base_fee(ptr, len) }, 4, "base_fee"); }); let amendment_name: &[u8] = b"test_amendment"; let amendment_id: [u8; 32] = [1; 32]; @@ -95,93 +91,89 @@ pub extern "C" fn finish() -> i32 { ); let tx: EscrowFinish = get_current_escrow_finish(); let account = tx.get_account().unwrap_or_panic(); // get_tx_field under the hood - let keylet = keylets::account_keylet(&account).unwrap_or_panic(); // account_keylet under the hood + let keylet = keylets::accountroot_id(&account).unwrap_or_panic(); // accountroot_id under the hood check_result( - unsafe { host::cache_ledger_obj(keylet.as_ptr(), keylet.len(), 0) }, + unsafe { host::cache_le(keylet.as_ptr(), keylet.len(), 0) }, 1, - "cache_ledger_obj", + "cache_le", ); with_buffer::<20, _, _>(|ptr, len| { check_result( - unsafe { host::get_current_ledger_obj_field(sfield::Account, ptr, len) }, + unsafe { host::home_le_field(sfield::Account.into(), ptr, len) }, 20, - "get_current_ledger_obj_field", + "home_le_field", ); }); with_buffer::<20, _, _>(|ptr, len| { check_result( - unsafe { host::get_ledger_obj_field(1, sfield::Account, ptr, len) }, + unsafe { host::le_field(1, sfield::Account.into(), ptr, len) }, 20, - "get_ledger_obj_field", + "le_field", ); }); let mut locator = Locator::new(); locator.pack(sfield::Account); with_buffer::<20, _, _>(|ptr, len| { check_result( - unsafe { host::get_tx_nested_field(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::tx_inner(locator.as_ptr(), locator.len(), ptr, len) }, 20, - "get_tx_nested_field", + "tx_inner", ); }); with_buffer::<20, _, _>(|ptr, len| { check_result( - unsafe { - host::get_current_ledger_obj_nested_field(locator.as_ptr(), locator.len(), ptr, len) - }, + unsafe { host::home_le_inner(locator.as_ptr(), locator.len(), ptr, len) }, 20, - "get_current_ledger_obj_nested_field", + "home_le_inner", ); }); with_buffer::<20, _, _>(|ptr, len| { check_result( - unsafe { - host::get_ledger_obj_nested_field(1, locator.as_ptr(), locator.len(), ptr, len) - }, + unsafe { host::le_inner(1, locator.as_ptr(), locator.len(), ptr, len) }, 20, - "get_ledger_obj_nested_field", + "le_inner", ); }); check_result( - unsafe { host::get_tx_array_len(sfield::Memos) }, + unsafe { host::tx_arr_len(sfield::Memos.into()) }, 32, - "get_tx_array_len", + "tx_arr_len", ); check_result( - unsafe { host::get_current_ledger_obj_array_len(sfield::Memos) }, + unsafe { host::home_le_arr_len(sfield::Memos.into()) }, 32, - "get_current_ledger_obj_array_len", + "home_le_arr_len", ); check_result( - unsafe { host::get_ledger_obj_array_len(1, sfield::Memos) }, + unsafe { host::le_arr_len(1, sfield::Memos.into()) }, 32, - "get_ledger_obj_array_len", + "le_arr_len", ); check_result( - unsafe { host::get_tx_nested_array_len(locator.as_ptr(), locator.len()) }, + unsafe { host::tx_inner_arr_len(locator.as_ptr(), locator.len()) }, 32, - "get_tx_nested_array_len", + "tx_inner_arr_len", ); check_result( - unsafe { host::get_current_ledger_obj_nested_array_len(locator.as_ptr(), locator.len()) }, + unsafe { host::home_le_inner_arr_len(locator.as_ptr(), locator.len()) }, 32, - "get_current_ledger_obj_nested_array_len", + "home_le_inner_arr_len", ); check_result( - unsafe { host::get_ledger_obj_nested_array_len(1, locator.as_ptr(), locator.len()) }, + unsafe { host::le_inner_arr_len(1, locator.as_ptr(), locator.len()) }, 32, - "get_ledger_obj_nested_array_len", + "le_inner_arr_len", ); check_result( - unsafe { host::update_data(account.0.as_ptr(), account.0.len()) }, + unsafe { host::set_data(account.0.as_ptr(), account.0.len()) }, 20, - "update_data", + "set_data", ); with_buffer::<32, _, _>(|ptr, len| { check_result( - unsafe { host::compute_sha512_half(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::sha512_half(locator.as_ptr(), locator.len(), ptr, len) }, 32, - "compute_sha512_half", + "sha512_half", ); }); let message: &[u8] = b"test message"; @@ -206,7 +198,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<18, _, _>(|ptr, len| { check_result( unsafe { - host::get_nft( + host::nft_uri( account.0.as_ptr(), account.0.len(), nft_id.as_ptr(), @@ -216,44 +208,44 @@ pub extern "C" fn finish() -> i32 { ) }, 18, - "get_nft", + "nft_uri", ) }); with_buffer::<20, _, _>(|ptr, len| { check_result( - unsafe { host::get_nft_issuer(nft_id.as_ptr(), nft_id.len(), ptr, len) }, + unsafe { host::nft_issuer(nft_id.as_ptr(), nft_id.len(), ptr, len) }, 20, - "get_nft_issuer", + "nft_issuer", ) }); with_buffer::<4, _, _>(|ptr, len| { check_result( - unsafe { host::get_nft_taxon(nft_id.as_ptr(), nft_id.len(), ptr, len) }, + unsafe { host::nft_taxon(nft_id.as_ptr(), nft_id.len(), ptr, len) }, 4, - "get_nft_taxon", + "nft_taxon", ) }); check_result( - unsafe { host::get_nft_flags(nft_id.as_ptr(), nft_id.len()) }, + unsafe { host::nft_flags(nft_id.as_ptr(), nft_id.len()) }, 8, - "get_nft_flags", + "nft_flags", ); check_result( - unsafe { host::get_nft_transfer_fee(nft_id.as_ptr(), nft_id.len()) }, + unsafe { host::nft_xfer_fee(nft_id.as_ptr(), nft_id.len()) }, 10, - "get_nft_transfer_fee", + "nft_xfer_fee", ); with_buffer::<4, _, _>(|ptr, len| { check_result( - unsafe { host::get_nft_serial(nft_id.as_ptr(), nft_id.len(), ptr, len) }, + unsafe { host::nft_serial(nft_id.as_ptr(), nft_id.len(), ptr, len) }, 4, - "get_nft_serial", + "nft_serial", ) }); let message = "testing trace"; check_result( unsafe { - host::trace_account( + host::trace_acct( message.as_ptr(), message.len(), account.0.as_ptr(), @@ -261,12 +253,12 @@ pub extern "C" fn finish() -> i32 { ) }, 0, - "trace_account", + "trace_acct", ); let amount = &[0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F]; // 95 drops of XRP check_result( unsafe { - host::trace_amount( + host::trace_amt( message.as_ptr(), message.len(), amount.as_ptr(), @@ -274,12 +266,12 @@ pub extern "C" fn finish() -> i32 { ) }, 0, - "trace_amount", + "trace_amt", ); let amount = &[0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; // 0 drops of XRP check_result( unsafe { - host::trace_amount( + host::trace_amt( message.as_ptr(), message.len(), amount.as_ptr(), @@ -287,36 +279,36 @@ pub extern "C" fn finish() -> i32 { ) }, 0, - "trace_amount_zero", + "trace_amt_zero", ); // ######################################## // Step #2: Test set_data edge cases // ######################################## check_result( - unsafe { host_bindings_loose::get_parent_ledger_hash(-1, 4) }, + unsafe { host_bindings_loose::parent_ldgr_hash(-1, 4) }, error_codes::INVALID_PARAMS, - "get_parent_ledger_hash_neg_ptr", + "parent_ldgr_hash_neg_ptr", ); with_buffer::<4, _, _>(|ptr, _len| { check_result( - unsafe { host_bindings_loose::get_parent_ledger_hash(ptr as i32, -1) }, + unsafe { host_bindings_loose::parent_ldgr_hash(ptr as i32, -1) }, error_codes::INVALID_PARAMS, - "get_parent_ledger_hash_neg_len", + "parent_ldgr_hash_neg_len", ) }); with_buffer::<3, _, _>(|ptr, len| { check_result( - unsafe { host_bindings_loose::get_parent_ledger_hash(ptr as i32, len as i32) }, + unsafe { host_bindings_loose::parent_ldgr_hash(ptr as i32, len as i32) }, error_codes::BUFFER_TOO_SMALL, - "get_parent_ledger_hash_buf_too_small", + "parent_ldgr_hash_buf_too_small", ) }); with_buffer::<4, _, _>(|ptr, _len| { check_result( - unsafe { host_bindings_loose::get_parent_ledger_hash(ptr as i32, 1_000_000_000) }, + unsafe { host_bindings_loose::parent_ldgr_hash(ptr as i32, 1_000_000_000) }, error_codes::POINTER_OUT_OF_BOUNDS, - "get_parent_ledger_hash_len_too_long", + "parent_ldgr_hash_len_too_long", ) }); @@ -326,46 +318,44 @@ pub extern "C" fn finish() -> i32 { // SField check_result( - unsafe { host::get_tx_array_len(2) }, // not a valid SField value + unsafe { host::tx_arr_len(2) }, // not a valid SField value error_codes::INVALID_FIELD, - "get_tx_array_len_invalid_sfield", + "tx_arr_len_invalid_sfield", ); // Slice check_result( - unsafe { host_bindings_loose::get_tx_nested_array_len(-1, locator.len() as i32) }, + unsafe { host_bindings_loose::tx_inner_arr_len(-1, locator.len() as i32) }, error_codes::INVALID_PARAMS, - "get_tx_nested_array_len_neg_ptr", + "tx_inner_arr_len_neg_ptr", ); check_result( - unsafe { host_bindings_loose::get_tx_nested_array_len(locator.as_ptr() as i32, -1) }, + unsafe { host_bindings_loose::tx_inner_arr_len(locator.as_ptr() as i32, -1) }, error_codes::INVALID_PARAMS, - "get_tx_nested_array_len_neg_len", + "tx_inner_arr_len_neg_len", ); let long_len = DEFAULT_BLOB_SIZE + 1; check_result( - unsafe { - host_bindings_loose::get_tx_nested_array_len(locator.as_ptr() as i32, long_len as i32) - }, + unsafe { host_bindings_loose::tx_inner_arr_len(locator.as_ptr() as i32, long_len as i32) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_tx_nested_array_len_too_long", + "tx_inner_arr_len_too_long", ); check_result( unsafe { - host_bindings_loose::get_tx_nested_array_len( + host_bindings_loose::tx_inner_arr_len( locator.as_ptr() as i32 + 1_000_000_000, locator.len() as i32, ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "get_tx_nested_array_len_ptr_oob", + "tx_inner_arr_len_ptr_oob", ); // uint32 with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::check_keylet( + host::check_id( account.0.as_ptr(), account.0.len(), locator.as_ptr().wrapping_add(1_000_000_000), @@ -375,13 +365,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "check_keylet_oob_len_u32", + "check_id_oob_len_u32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::check_keylet( + host::check_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -391,7 +381,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "check_keylet_wrong_len_u32", + "check_id_wrong_len_u32", ) }); @@ -430,28 +420,26 @@ pub extern "C" fn finish() -> i32 { // uint256 check_result( unsafe { - host_bindings_loose::cache_ledger_obj( + host_bindings_loose::cache_le( locator.as_ptr() as i32 + 1_000_000_000, locator.len() as i32, 1, ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "cache_ledger_obj_ptr_oob", + "cache_le_ptr_oob", ); check_result( - unsafe { - host_bindings_loose::cache_ledger_obj(locator.as_ptr() as i32, locator.len() as i32, 1) - }, + unsafe { host_bindings_loose::cache_le(locator.as_ptr() as i32, locator.len() as i32, 1) }, error_codes::INVALID_PARAMS, - "cache_ledger_obj_wrong_len", + "cache_le_wrong_len", ); // AccountID with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host_bindings_loose::account_keylet( + host_bindings_loose::accountroot_id( locator.as_ptr() as i32 + 1_000_000_000, locator.len() as i32, ptr, @@ -459,13 +447,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "account_keylet_len_oob", + "accountroot_id_len_oob", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host_bindings_loose::account_keylet( + host_bindings_loose::accountroot_id( locator.as_ptr() as i32, locator.len() as i32, ptr, @@ -473,7 +461,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "account_keylet_wrong_len", + "accountroot_id_wrong_len", ) }); @@ -481,7 +469,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host_bindings_loose::line_keylet( + host_bindings_loose::trustline_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -493,13 +481,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "line_keylet_len_oob_currency", + "trustline_id_len_oob_currency", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host_bindings_loose::line_keylet( + host_bindings_loose::trustline_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -511,7 +499,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "line_keylet_wrong_len_currency", + "trustline_id_wrong_len_currency", ) }); @@ -520,7 +508,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::amm_keylet( + host::amm_id( asset1_bytes.as_ptr(), asset1_bytes.len(), locator.as_ptr().wrapping_add(1_000_000_000), @@ -530,13 +518,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "amm_keylet_len_oob_asset2", + "amm_id_len_oob_asset2", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::amm_keylet( + host::amm_id( asset1_bytes.as_ptr(), asset1_bytes.len(), locator.as_ptr(), @@ -546,14 +534,14 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "amm_keylet_len_wrong_len_asset2", + "amm_id_len_wrong_len_asset2", ) }); let currency: &[u8] = b"USD00000000000000000"; // 20 bytes with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::amm_keylet( + host::amm_id( asset1_bytes.as_ptr(), asset1_bytes.len(), currency.as_ptr(), @@ -563,14 +551,14 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "amm_keylet_len_wrong_non_xrp_currency_len", + "amm_id_len_wrong_non_xrp_currency_len", ) }); let xrp_issue: &[u8] = &[0; 40]; // 40 bytes with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::amm_keylet( + host::amm_id( xrp_issue.as_ptr(), xrp_issue.len(), asset1_bytes.as_ptr(), @@ -580,14 +568,14 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "amm_keylet_len_wrong_xrp_currency_len", + "amm_id_len_wrong_xrp_currency_len", ) }); let mptid = MptId::new(1, account); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::amm_keylet( + host::amm_id( mptid.as_ptr(), mptid.len(), asset1_bytes.as_ptr(), @@ -597,7 +585,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "amm_keylet_mpt", + "amm_id_mpt", ) }); @@ -622,39 +610,39 @@ pub extern "C" fn finish() -> i32 { with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_tx_field(2, ptr, len) }, + unsafe { host::tx_field(2, ptr, len) }, error_codes::INVALID_FIELD, - "get_tx_field_invalid_sfield", + "tx_field_invalid_sfield", ); }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_current_ledger_obj_field(2, ptr, len) }, + unsafe { host::home_le_field(2, ptr, len) }, error_codes::INVALID_FIELD, - "get_current_ledger_obj_field_invalid_sfield", + "home_le_field_invalid_sfield", ); }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_ledger_obj_field(1, 2, ptr, len) }, + unsafe { host::le_field(1, 2, ptr, len) }, error_codes::INVALID_FIELD, - "get_ledger_obj_field_invalid_sfield", + "le_field_invalid_sfield", ); }); check_result( - unsafe { host::get_tx_array_len(2) }, + unsafe { host::tx_arr_len(2) }, error_codes::INVALID_FIELD, - "get_tx_array_len_invalid_sfield", + "tx_arr_len_invalid_sfield", ); check_result( - unsafe { host::get_current_ledger_obj_array_len(2) }, + unsafe { host::home_le_arr_len(2) }, error_codes::INVALID_FIELD, - "get_current_ledger_obj_array_len_invalid_sfield", + "home_le_arr_len_invalid_sfield", ); check_result( - unsafe { host::get_ledger_obj_array_len(1, 2) }, + unsafe { host::le_arr_len(1, 2) }, error_codes::INVALID_FIELD, - "get_ledger_obj_array_len_invalid_sfield", + "le_arr_len_invalid_sfield", ); // invalid Slice @@ -671,47 +659,45 @@ pub extern "C" fn finish() -> i32 { ); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_tx_nested_field(locator.as_ptr(), long_len, ptr, len) }, + unsafe { host::tx_inner(locator.as_ptr(), long_len, ptr, len) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_tx_nested_field_too_big_slice", + "tx_inner_too_big_slice", ); }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { - host::get_current_ledger_obj_nested_field(locator.as_ptr(), long_len, ptr, len) - }, + unsafe { host::home_le_inner(locator.as_ptr(), long_len, ptr, len) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_current_ledger_obj_nested_field_too_big_slice", + "home_le_inner_too_big_slice", ); }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_ledger_obj_nested_field(1, locator.as_ptr(), long_len, ptr, len) }, + unsafe { host::le_inner(1, locator.as_ptr(), long_len, ptr, len) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_ledger_obj_nested_field_too_big_slice", + "le_inner_too_big_slice", ); }); check_result( - unsafe { host::get_tx_nested_array_len(locator.as_ptr(), long_len) }, + unsafe { host::tx_inner_arr_len(locator.as_ptr(), long_len) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_tx_nested_array_len_too_big_slice", + "tx_inner_arr_len_too_big_slice", ); check_result( - unsafe { host::get_current_ledger_obj_nested_array_len(locator.as_ptr(), long_len) }, + unsafe { host::home_le_inner_arr_len(locator.as_ptr(), long_len) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_current_ledger_obj_nested_array_len_too_big_slice", + "home_le_inner_arr_len_too_big_slice", ); check_result( - unsafe { host::get_ledger_obj_nested_array_len(1, locator.as_ptr(), long_len) }, + unsafe { host::le_inner_arr_len(1, locator.as_ptr(), long_len) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_ledger_obj_nested_array_len_too_big_slice", + "le_inner_arr_len_too_big_slice", ); let too_big_data_len = XRPL_CONTRACT_DATA_SIZE + 1; check_result( - unsafe { host::update_data(locator.as_ptr(), too_big_data_len) }, + unsafe { host::set_data(locator.as_ptr(), too_big_data_len) }, error_codes::DATA_FIELD_TOO_LARGE, - "update_data_too_big_slice", + "set_data_too_big_slice", ); check_result( unsafe { @@ -757,15 +743,15 @@ pub extern "C" fn finish() -> i32 { ); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::compute_sha512_half(locator.as_ptr(), long_len, ptr, len) }, + unsafe { host::sha512_half(locator.as_ptr(), long_len, ptr, len) }, error_codes::DATA_FIELD_TOO_LARGE, - "compute_sha512_half_too_big_slice", + "sha512_half_too_big_slice", ); }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::amm_keylet( + host::amm_id( asset1_bytes.as_ptr(), long_len, asset1_bytes.as_ptr(), @@ -775,13 +761,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::DATA_FIELD_TOO_LARGE, - "amm_keylet_too_big_slice", + "amm_id_too_big_slice", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::credential_keylet( + host::credential_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -793,13 +779,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::DATA_FIELD_TOO_LARGE, - "credential_keylet_too_big_slice", + "credential_id_too_big_slice", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::mptoken_keylet( + host::mptoken_id( mptid.as_ptr(), long_len, account.0.as_ptr(), @@ -809,7 +795,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::DATA_FIELD_TOO_LARGE, - "mptoken_keylet_too_big_slice_mptid", + "mptoken_id_too_big_slice_mptid", ) }); check_result( @@ -828,7 +814,7 @@ pub extern "C" fn finish() -> i32 { let float: [u8; 8] = [0xD4, 0x83, 0x8D, 0x7E, 0xA4, 0xC6, 0x80, 0x00]; check_result( unsafe { - host::trace_opaque_float( + host::trace_xfloat( message.as_ptr(), message.len(), float.as_ptr().wrapping_add(1_000_000_000), @@ -836,11 +822,11 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "trace_opaque_float_oob_slice", + "trace_xfloat_oob_slice", ); check_result( unsafe { - host::trace_amount( + host::trace_amt( message.as_ptr(), message.len(), locator.as_ptr().wrapping_add(1_000_000_000), @@ -848,11 +834,11 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "trace_amount_oob_slice", + "trace_amt_oob_slice", ); check_result( unsafe { - host::float_compare( + host::float_cmp( float.as_ptr().wrapping_add(1_000_000_000), float.len(), float.as_ptr(), @@ -860,11 +846,11 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_compare_oob_slice1", + "float_cmp_oob_slice1", ); check_result( unsafe { - host::float_compare( + host::float_cmp( float.as_ptr(), float.len(), float.as_ptr().wrapping_add(1_000_000_000), @@ -872,7 +858,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_compare_oob_slice2", + "float_cmp_oob_slice2", ); with_buffer::<2, _, _>(|ptr, len| { check_result( @@ -911,7 +897,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::float_subtract( + host::float_sub( float.as_ptr().wrapping_add(1_000_000_000), float.len(), float.as_ptr(), @@ -922,13 +908,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_subtract_oob_slice1", + "float_sub_oob_slice1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::float_subtract( + host::float_sub( float.as_ptr(), float.len(), float.as_ptr().wrapping_add(1_000_000_000), @@ -939,13 +925,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_subtract_oob_slice2", + "float_sub_oob_slice2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::float_multiply( + host::float_mult( float.as_ptr().wrapping_add(1_000_000_000), float.len(), float.as_ptr(), @@ -956,13 +942,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_multiply_oob_slice1", + "float_mult_oob_slice1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::float_multiply( + host::float_mult( float.as_ptr(), float.len(), float.as_ptr().wrapping_add(1_000_000_000), @@ -973,13 +959,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_multiply_oob_slice2", + "float_mult_oob_slice2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::float_divide( + host::float_div( float.as_ptr().wrapping_add(1_000_000_000), float.len(), float.as_ptr(), @@ -990,13 +976,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_divide_oob_slice1", + "float_div_oob_slice1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::float_divide( + host::float_div( float.as_ptr(), float.len(), float.as_ptr().wrapping_add(1_000_000_000), @@ -1007,7 +993,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_divide_oob_slice2", + "float_div_oob_slice2", ) }); with_buffer::<2, _, _>(|ptr, len| { @@ -1048,7 +1034,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::escrow_keylet( + host::escrow_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1058,13 +1044,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "escrow_keylet_wrong_size_uint32", + "escrow_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::mpt_issuance_keylet( + host::mpt_issuance_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1074,13 +1060,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "mpt_issuance_keylet_wrong_size_uint32", + "mpt_issuance_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::nft_offer_keylet( + host::nft_offer_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1090,13 +1076,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "nft_offer_keylet_wrong_size_uint32", + "nft_offer_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::offer_keylet( + host::offer_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1106,13 +1092,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "offer_keylet_wrong_size_uint32", + "offer_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::oracle_keylet( + host::oracle_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1122,13 +1108,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "oracle_keylet_wrong_size_uint32", + "oracle_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::paychan_keylet( + host::paychan_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1140,13 +1126,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "paychan_keylet_wrong_size_uint32", + "paychan_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::permissioned_domain_keylet( + host::permissioned_domain_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1156,13 +1142,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "permissioned_domain_keylet_wrong_size_uint32", + "permissioned_domain_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::ticket_keylet( + host::ticket_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1172,13 +1158,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "ticket_keylet_wrong_size_uint32", + "ticket_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::vault_keylet( + host::vault_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1188,21 +1174,21 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "vault_keylet_wrong_size_uint32", + "vault_id_wrong_size_uint32", ) }); // invalid UInt256 check_result( - unsafe { host::cache_ledger_obj(locator.as_ptr(), locator.len(), 0) }, + unsafe { host::cache_le(locator.as_ptr(), locator.len(), 0) }, error_codes::INVALID_PARAMS, - "cache_ledger_obj_wrong_size_uint256", + "cache_le_wrong_size_uint256", ); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::get_nft( + host::nft_uri( account.0.as_ptr(), account.0.len(), locator.as_ptr(), @@ -1212,38 +1198,38 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "get_nft_wrong_size_uint256", + "nft_uri_wrong_size_uint256", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_nft_issuer(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::nft_issuer(locator.as_ptr(), locator.len(), ptr, len) }, error_codes::INVALID_PARAMS, - "get_nft_issuer_wrong_size_uint256", + "nft_issuer_wrong_size_uint256", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_nft_taxon(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::nft_taxon(locator.as_ptr(), locator.len(), ptr, len) }, error_codes::INVALID_PARAMS, - "get_nft_taxon_wrong_size_uint256", + "nft_taxon_wrong_size_uint256", ) }); check_result( - unsafe { host::get_nft_flags(locator.as_ptr(), locator.len()) }, + unsafe { host::nft_flags(locator.as_ptr(), locator.len()) }, error_codes::INVALID_PARAMS, - "get_nft_flags_wrong_size_uint256", + "nft_flags_wrong_size_uint256", ); check_result( - unsafe { host::get_nft_transfer_fee(locator.as_ptr(), locator.len()) }, + unsafe { host::nft_xfer_fee(locator.as_ptr(), locator.len()) }, error_codes::INVALID_PARAMS, - "get_nft_transfer_fee_wrong_size_uint256", + "nft_xfer_fee_wrong_size_uint256", ); with_buffer::<4, _, _>(|ptr, len| { check_result( - unsafe { host::get_nft_serial(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::nft_serial(locator.as_ptr(), locator.len(), ptr, len) }, error_codes::INVALID_PARAMS, - "get_nft_serial_wrong_size_uint256", + "nft_serial_wrong_size_uint256", ) }); @@ -1251,9 +1237,9 @@ pub extern "C" fn finish() -> i32 { with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::account_keylet(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::accountroot_id(locator.as_ptr(), locator.len(), ptr, len) }, error_codes::INVALID_PARAMS, - "account_keylet_wrong_size_account_id", + "accountroot_id_wrong_size_account_id", ) }); let seq: i32 = 1; @@ -1261,7 +1247,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::check_keylet( + host::check_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1271,13 +1257,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "check_keylet_wrong_size_account_id", + "check_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::credential_keylet( + host::credential_id( locator.as_ptr(), // invalid AccountID size locator.len(), account.0.as_ptr(), @@ -1289,13 +1275,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "credential_keylet_wrong_size_account_id1", + "credential_id_wrong_size_account_id1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::credential_keylet( + host::credential_id( account.0.as_ptr(), account.0.len(), locator.as_ptr(), // invalid AccountID size @@ -1307,13 +1293,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "credential_keylet_wrong_size_account_id2", + "credential_id_wrong_size_account_id2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::delegate_keylet( + host::delegate_id( locator.as_ptr(), // invalid AccountID size locator.len(), account.0.as_ptr(), @@ -1323,13 +1309,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "delegate_keylet_wrong_size_account_id1", + "delegate_id_wrong_size_account_id1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::delegate_keylet( + host::delegate_id( account.0.as_ptr(), account.0.len(), locator.as_ptr(), // invalid AccountID size @@ -1339,13 +1325,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "delegate_keylet_wrong_size_account_id2", + "delegate_id_wrong_size_account_id2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::deposit_preauth_keylet( + host::deposit_preauth_id( locator.as_ptr(), // invalid AccountID size locator.len(), account.0.as_ptr(), @@ -1355,13 +1341,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "deposit_preauth_keylet_wrong_size_account_id1", + "deposit_preauth_id_wrong_size_account_id1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::deposit_preauth_keylet( + host::deposit_preauth_id( account.0.as_ptr(), account.0.len(), locator.as_ptr(), // invalid AccountID size @@ -1371,20 +1357,20 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "deposit_preauth_keylet_wrong_size_account_id2", + "deposit_preauth_id_wrong_size_account_id2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::did_keylet(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::did_id(locator.as_ptr(), locator.len(), ptr, len) }, error_codes::INVALID_PARAMS, - "did_keylet_wrong_size_account_id", + "did_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::escrow_keylet( + host::escrow_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1394,13 +1380,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "escrow_keylet_wrong_size_account_id", + "escrow_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::line_keylet( + host::trustline_id( locator.as_ptr(), // invalid AccountID size locator.len(), account.0.as_ptr(), @@ -1412,13 +1398,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "line_keylet_wrong_size_account_id1", + "trustline_id_wrong_size_account_id1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::line_keylet( + host::trustline_id( account.0.as_ptr(), account.0.len(), locator.as_ptr(), // invalid AccountID size @@ -1430,13 +1416,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "line_keylet_wrong_size_account_id2", + "trustline_id_wrong_size_account_id2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::mpt_issuance_keylet( + host::mpt_issuance_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1446,13 +1432,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "mpt_issuance_keylet_wrong_size_account_id", + "mpt_issuance_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::mptoken_keylet( + host::mptoken_id( mptid.as_ptr(), mptid.len(), locator.as_ptr(), @@ -1462,13 +1448,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "mptoken_keylet_wrong_size_account_id", + "mptoken_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::nft_offer_keylet( + host::nft_offer_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1478,13 +1464,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "nft_offer_keylet_wrong_size_account_id", + "nft_offer_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::offer_keylet( + host::offer_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1494,13 +1480,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "offer_keylet_wrong_size_account_id", + "offer_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::oracle_keylet( + host::oracle_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1510,13 +1496,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "oracle_keylet_wrong_size_account_id", + "oracle_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::paychan_keylet( + host::paychan_id( locator.as_ptr(), // invalid AccountID size locator.len(), account.0.as_ptr(), @@ -1528,13 +1514,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "paychan_keylet_wrong_size_account_id1", + "paychan_id_wrong_size_account_id1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::paychan_keylet( + host::paychan_id( account.0.as_ptr(), account.0.len(), locator.as_ptr(), // invalid AccountID size @@ -1546,13 +1532,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "paychan_keylet_wrong_size_account_id2", + "paychan_id_wrong_size_account_id2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::permissioned_domain_keylet( + host::permissioned_domain_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1562,20 +1548,20 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "permissioned_domain_keylet_wrong_size_account_id", + "permissioned_domain_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::signers_keylet(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::signers_id(locator.as_ptr(), locator.len(), ptr, len) }, error_codes::INVALID_PARAMS, - "signers_keylet_wrong_size_account_id", + "signers_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::ticket_keylet( + host::ticket_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1585,13 +1571,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "ticket_keylet_wrong_size_account_id", + "ticket_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::vault_keylet( + host::vault_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1601,14 +1587,14 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "vault_keylet_wrong_size_account_id", + "vault_id_wrong_size_account_id", ) }); let uint256: &[u8] = b"00000000000000000000000000000001"; with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::get_nft( + host::nft_uri( locator.as_ptr(), locator.len(), uint256.as_ptr(), @@ -1618,12 +1604,12 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "get_nft_wrong_size_account_id", + "nft_uri_wrong_size_account_id", ) }); check_result( unsafe { - host::trace_account( + host::trace_acct( message.as_ptr(), message.len(), locator.as_ptr(), @@ -1631,7 +1617,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "trace_account_wrong_size_account_id", + "trace_acct_wrong_size_account_id", ); // invalid Currency was already tested above @@ -1652,7 +1638,7 @@ pub extern "C" fn finish() -> i32 { ); check_result( unsafe { - host::trace_opaque_float( + host::trace_xfloat( message.as_ptr().wrapping_add(1_000_000_000), message.len(), float.as_ptr(), @@ -1660,11 +1646,11 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "trace_opaque_float_oob_string", + "trace_xfloat_oob_string", ); check_result( unsafe { - host::trace_account( + host::trace_acct( message.as_ptr().wrapping_add(1_000_000_000), message.len(), account.0.as_ptr(), @@ -1672,11 +1658,11 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "trace_account_oob_string", + "trace_acct_oob_string", ); check_result( unsafe { - host::trace_amount( + host::trace_amt( message.as_ptr().wrapping_add(1_000_000_000), message.len(), amount.as_ptr(), @@ -1684,7 +1670,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "trace_amount_oob_string", + "trace_amt_oob_string", ); // trace too large @@ -1708,15 +1694,13 @@ pub extern "C" fn finish() -> i32 { "trace_num_too_long", ); check_result( - unsafe { - host::trace_opaque_float(message.as_ptr(), long_len, float.as_ptr(), float.len()) - }, + unsafe { host::trace_xfloat(message.as_ptr(), long_len, float.as_ptr(), float.len()) }, error_codes::DATA_FIELD_TOO_LARGE, - "trace_opaque_float_too_long", + "trace_xfloat_too_long", ); check_result( unsafe { - host::trace_account( + host::trace_acct( message.as_ptr(), long_len, account.0.as_ptr(), @@ -1724,19 +1708,19 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::DATA_FIELD_TOO_LARGE, - "trace_account_too_long", + "trace_acct_too_long", ); check_result( - unsafe { host::trace_amount(message.as_ptr(), long_len, amount.as_ptr(), amount.len()) }, + unsafe { host::trace_amt(message.as_ptr(), long_len, amount.as_ptr(), amount.len()) }, error_codes::DATA_FIELD_TOO_LARGE, - "trace_amount_too_long", + "trace_amt_too_long", ); // trace amount errors check_result( unsafe { - host::trace_amount( + host::trace_amt( message.as_ptr(), message.len(), locator.as_ptr(), @@ -1744,7 +1728,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "trace_amount_wrong_length", + "trace_amt_wrong_length", ); // other misc errors @@ -1752,7 +1736,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::mptoken_keylet( + host::mptoken_id( locator.as_ptr(), locator.len(), account.0.as_ptr(), @@ -1762,7 +1746,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "mptoken_keylet_mptid_wrong_length", + "mptoken_id_mptid_wrong_length", ) }); check_result( @@ -1783,7 +1767,7 @@ pub extern "C" fn finish() -> i32 { let empty: &[u8] = b""; check_result( unsafe { - host::trace_account( + host::trace_acct( empty.as_ptr(), empty.len(), account.0.as_ptr(), @@ -1791,7 +1775,7 @@ pub extern "C" fn finish() -> i32 { ) }, 0, - "trace_account_check_desync", + "trace_acct_check_desync", ); 1 // <-- If we get here, finish the escrow. diff --git a/src/test/app/wasm_fixtures/copyFixtures.py b/src/test/app/wasm_fixtures/copyFixtures.py index 3d9faddbed..6ffbb3915f 100644 --- a/src/test/app/wasm_fixtures/copyFixtures.py +++ b/src/test/app/wasm_fixtures/copyFixtures.py @@ -3,17 +3,84 @@ import os import sys import subprocess import re +import shutil +import tempfile +import zipfile +from difflib import get_close_matches OPT = "-Oz" -def update_fixture(project_name, wasm): - fixture_name = ( - re.sub(r"_([a-z])", lambda m: m.group(1).upper(), project_name) + "WasmHex" - ) +def pascal_case(name): + return "".join(word[:1].upper() + word[1:] for word in re.split(r"[_\W]+", name)) + + +def normalize_name(name): + name = re.sub(r"([a-z0-9])([A-Z])", r"\1_\2", name) + return re.sub(r"[^a-z0-9]", "", name.lower()) + + +def fixture_key(name): + name = normalize_name(name).removeprefix("k") + return name.removesuffix("wasmhex").removesuffix("hex") + + +def declared_fixtures(): + h_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "fixtures.h")) + with open(h_path, "r", encoding="utf8") as f: + return re.findall( + r"extern std::string const ([A-Za-z_][A-Za-z0-9_]*);", f.read() + ) + + +def find_fixture_name(project_name, suffix): + default = re.sub(r"_([a-z])", lambda m: m.group(1).upper(), project_name) + suffix + k_default = f"k{pascal_case(project_name)}{suffix}" + declarations = declared_fixtures() + normalized = {normalize_name(name): name for name in declarations} + fixture_keys = {fixture_key(name): name for name in declarations} + + for name in (default, k_default): + if normalize_name(name) in normalized: + return normalized[normalize_name(name)] + + project_key = normalize_name(project_name) + matches = [ + name + for key, name in fixture_keys.items() + if key.endswith(project_key) + or key.startswith(project_key) + or project_key.endswith(key) + or project_key.startswith(key) + ] + if len(matches) == 1: + return matches[0] + + close = get_close_matches(project_key, fixture_keys.keys(), n=1, cutoff=0.82) + if close: + return fixture_keys[close[0]] + + return k_default + + +def fixture_cpp_path(fixture_name): + base_path = os.path.dirname(__file__) + pattern = rf"extern std::string const {fixture_name} =" + for file_name in os.listdir(base_path): + if not file_name.endswith(".cpp"): + continue + cpp_path = os.path.abspath(os.path.join(base_path, file_name)) + with open(cpp_path, "r", encoding="utf8") as f: + if re.search(pattern, f.read()): + return cpp_path + return os.path.abspath(os.path.join(base_path, "fixtures.cpp")) + + +def update_fixture(project_name, wasm, suffix="WasmHex"): + fixture_name = find_fixture_name(project_name, suffix) print(f"Updating fixture: {fixture_name}") - cpp_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "fixtures.cpp")) + cpp_path = fixture_cpp_path(fixture_name) h_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "fixtures.h")) with open(cpp_path, "r", encoding="utf8") as f: cpp_content = f.read() @@ -30,7 +97,7 @@ def update_fixture(project_name, wasm): with open(h_path, "r", encoding="utf8") as f: h_content = f.read() updated_h_content = ( - h_content.rstrip() + f"\n\n extern std::string const {fixture_name};\n" + h_content.rstrip() + f"\n\nextern std::string const {fixture_name};\n" ) with open(h_path, "w", encoding="utf8") as f: f.write(updated_h_content) @@ -43,6 +110,11 @@ def update_fixture(project_name, wasm): f.write(updated_cpp_content) +def read_wasm_hex(path): + with open(path, "rb") as f: + return f.read().hex() + + def process_rust(project_name): project_path = os.path.abspath( os.path.join(os.path.dirname(__file__), project_name) @@ -67,10 +139,7 @@ def process_rust(project_name): f"{project_name}/target/wasm32v1-none/release/{project_name}.wasm", ) ) - with open(src_path, "rb") as f: - data = f.read() - wasm = data.hex() - update_fixture(project_name, wasm) + update_fixture(project_name, read_wasm_hex(src_path)) def process_c(project_name): @@ -95,10 +164,115 @@ def process_c(project_name): print(f"exec error: {e}") sys.exit(1) - with open(wasm_path, "rb") as f: - data = f.read() - wasm = data.hex() - update_fixture(project_name, wasm) + update_fixture(project_name, read_wasm_hex(wasm_path)) + + +def compile_wat(wat_path, wasm_path): + wat2wasm = shutil.which("wat2wasm") + wasm_tools = shutil.which("wasm-tools") + wasm_as = shutil.which("wasm-as") + normalized_tmpdir = None + + if wat2wasm: + build_cmd = [wat2wasm, wat_path, "-o", wasm_path] + elif wasm_tools: + wat_path, normalized_tmpdir = normalize_wat_for_wasm_tools(wat_path) + build_cmd = [wasm_tools, "parse", wat_path, "-o", wasm_path] + elif wasm_as: + build_cmd = [wasm_as, wat_path, "-o", wasm_path] + else: + print( + "exec error: wat2wasm, wasm-tools, or wasm-as is required to build WAT fixtures" + ) + sys.exit(1) + + try: + subprocess.run(build_cmd, check=True) + strip_custom_sections(wasm_path) + print(f"WASM file for {os.path.basename(wat_path)} has been built.") + except subprocess.CalledProcessError as e: + print(f"exec error: {e}") + sys.exit(1) + finally: + if normalized_tmpdir: + shutil.rmtree(normalized_tmpdir) + + +def strip_custom_sections(wasm_path): + wasm_tools = shutil.which("wasm-tools") + if not wasm_tools: + return + + stripped_path = wasm_path + ".stripped" + subprocess.run( + [wasm_tools, "strip", "--all", wasm_path, "-o", stripped_path], + check=True, + ) + os.replace(stripped_path, wasm_path) + + +def normalize_wat_for_wasm_tools(wat_path): + with open(wat_path, "r", encoding="utf8") as f: + wat = f.read() + + wat = re.sub( + r"\(elem(\s+\(table\s+\$[A-Za-z0-9_]+\)\s+\(i32\.const\s+\d+\))\s+\$([A-Za-z0-9_]+)\)", + r"(elem\1 funcref (ref.func $\2))", + wat, + ) + + tmpdir = tempfile.mkdtemp() + normalized_path = os.path.join(tmpdir, os.path.basename(wat_path)) + with open(normalized_path, "w", encoding="utf8") as f: + f.write(wat) + return normalized_path, tmpdir + + +def process_wat_file(wat_path): + project_name = os.path.splitext(os.path.basename(wat_path))[0] + with open(wat_path, "r", encoding="utf8") as f: + if "(module" not in f.read(): + print(f"Skipping WAT fixture without a module: {project_name}") + return + + with tempfile.TemporaryDirectory() as tmpdir: + wasm_path = os.path.join(tmpdir, f"{project_name}.wasm") + compile_wat(wat_path, wasm_path) + update_fixture(project_name, read_wasm_hex(wasm_path), "Hex") + + +def process_wat_zip(zip_path): + project_name = os.path.splitext(os.path.basename(zip_path))[0] + with tempfile.TemporaryDirectory() as tmpdir: + with zipfile.ZipFile(zip_path) as archive: + wat_names = [name for name in archive.namelist() if name.endswith(".wat")] + if len(wat_names) != 1: + print(f"exec error: expected one .wat file in {zip_path}") + sys.exit(1) + archive.extract(wat_names[0], tmpdir) + + wasm_path = os.path.join(tmpdir, f"{project_name}.wasm") + compile_wat(os.path.join(tmpdir, wat_names[0]), wasm_path) + update_fixture(project_name, read_wasm_hex(wasm_path), "Hex") + + +def process_wat(project_name): + base_path = os.path.dirname(__file__) + candidates = [ + os.path.join(base_path, f"{project_name}.wat"), + os.path.join(base_path, "wat", f"{project_name}.wat"), + os.path.join(base_path, "wat", f"{project_name}.zip"), + ] + for path in candidates: + if os.path.isfile(path): + if path.endswith(".zip"): + process_wat_zip(path) + else: + process_wat_file(path) + return + + print(f"exec error: fixture {project_name} not found") + sys.exit(1) if __name__ == "__main__": @@ -106,20 +280,40 @@ if __name__ == "__main__": print("Usage: python copyFixtures.py []") sys.exit(1) if len(sys.argv) == 2: - if os.path.isdir(os.path.join(os.path.dirname(__file__), sys.argv[1])): - process_rust(sys.argv[1]) + project_name = os.path.splitext(os.path.basename(sys.argv[1]))[0] + if os.path.isdir(os.path.join(os.path.dirname(__file__), project_name)): + process_rust(project_name) + elif os.path.isfile( + os.path.join(os.path.dirname(__file__), f"{project_name}.c") + ): + process_c(project_name) else: - process_c(sys.argv[1]) + process_wat(project_name) print("Fixture has been processed.") else: + base_path = os.path.dirname(__file__) dirs = [ d - for d in os.listdir(os.path.dirname(__file__)) - if os.path.isdir(os.path.join(os.path.dirname(__file__), d)) + for d in os.listdir(base_path) + if os.path.isfile(os.path.join(base_path, d, "Cargo.toml")) ] - c_files = [f for f in os.listdir(os.path.dirname(__file__)) if f.endswith(".c")] - for d in dirs: + c_files = [f for f in os.listdir(base_path) if f.endswith(".c")] + wat_files = [f for f in os.listdir(base_path) if f.endswith(".wat")] + wat_path = os.path.join(base_path, "wat") + wat_fixture_files = [ + f for f in os.listdir(wat_path) if f.endswith((".wat", ".zip")) + ] + + for d in sorted(dirs): process_rust(d) - for c in c_files: + for c in sorted(c_files): process_c(c[:-2]) + for wat in sorted(wat_files): + process_wat_file(os.path.join(base_path, wat)) + for wat_fixture in sorted(wat_fixture_files): + path = os.path.join(wat_path, wat_fixture) + if wat_fixture.endswith(".zip"): + process_wat_zip(path) + else: + process_wat_file(path) print("All fixtures have been processed.") diff --git a/src/test/app/wasm_fixtures/fixtures.cpp b/src/test/app/wasm_fixtures/fixtures.cpp index cf8e3fe2c0..730a5039c4 100644 --- a/src/test/app/wasm_fixtures/fixtures.cpp +++ b/src/test/app/wasm_fixtures/fixtures.cpp @@ -5,1036 +5,836 @@ #include extern std::string const kFibWasmHex = - "0061736d0100000001090260000060017f017f0303020001071b02115f5f7761736d5f63616c6c5f63746f72730000" - "0366696200010a440202000b3f01017f200045044041000f0b2000410348044041010f0b200041026a210003402000" - "41036b100120016a2101200041026b220041044a0d000b200141016a0b"; + "0061736d0100000001090260000060017f017f030302000105030100020624067f004180080b7f004180080b7f0041" + "80080b7f00418088040b7f0041000b7f0041010b077d09066d656d6f72790200115f5f7761736d5f63616c6c5f6374" + "6f727300000366696200010c5f5f64736f5f68616e646c6503000a5f5f646174615f656e6403010d5f5f676c6f6261" + "6c5f6261736503020b5f5f686561705f6261736503030d5f5f6d656d6f72795f6261736503040c5f5f7461626c655f" + "6261736503050a440202000b3f01017f200045044041000f0b200041034e047f200041026a21000340200041036b10" + "0120016a2101200041026b220041044a0d000b200141016a0541010b0b002f0970726f647563657273010c70726f63" + "65737365642d6279010e486f6d656272657720636c616e670631342e302e36"; extern std::string const kLedgerSqnWasmHex = - "0061736d01000000010e0360027f7f017f6000006000017f02160103656e760e6765745f6c65646765725f73716e00" - "0003030201020503010002063f0a7f01418088040b7f004180080b7f004180080b7f004180080b7f00418088040b7f" - "004180080b7f00418088040b7f00418080080b7f0041000b7f0041010b07aa010c066d656d6f72790200115f5f7761" - "736d5f63616c6c5f63746f727300010666696e69736800020c5f5f64736f5f68616e646c6503010a5f5f646174615f" - "656e6403020b5f5f737461636b5f6c6f7703030c5f5f737461636b5f6869676803040d5f5f676c6f62616c5f626173" - "6503050b5f5f686561705f6261736503060a5f5f686561705f656e6403070d5f5f6d656d6f72795f6261736503080c" - "5f5f7461626c655f6261736503090a3d0202000b3801037f230041106b220024002000410c6a410410002101200028" - "020c2102200041106a2400200141054100200241054f1b20014100481b0b007f0970726f647563657273010c70726f" - "6365737365642d62790105636c616e675f31392e312e352d776173692d73646b202868747470733a2f2f6769746875" - "622e636f6d2f6c6c766d2f6c6c766d2d70726f6a656374206162346235613264623538323935386166316565333038" - "61373930636664623432626432343732302900490f7461726765745f6665617475726573042b0f6d757461626c652d" - "676c6f62616c732b087369676e2d6578742b0f7265666572656e63652d74797065732b0a6d756c746976616c7565"; + "0061736d01000000010e0360027f7f017f6000006000017f02120103656e760a6c6467725f696e6465780000030302" + "01020503010002062b077f01418088040b7f004180080b7f004180080b7f004180080b7f00418088040b7f0041000b" + "7f0041010b07800109066d656d6f72790200115f5f7761736d5f63616c6c5f63746f727300010666696e6973680002" + "0c5f5f64736f5f68616e646c6503010a5f5f646174615f656e6403020d5f5f676c6f62616c5f6261736503030b5f5f" + "686561705f6261736503040d5f5f6d656d6f72795f6261736503050c5f5f7461626c655f6261736503060a3d020200" + "0b3801037f230041106b220024002000410c6a410410002101200028020c2102200041106a24002001410541002002" + "41054f1b20014100481b0b002f0970726f647563657273010c70726f6365737365642d6279010e486f6d6562726577" + "20636c616e670631342e302e36"; extern std::string const kAllHostFunctionsWasmHex = "0061736d0100000001540c60027f7f017f60037f7f7f017f60047f7f7f7f017f60017f017f60067f7f7f7f7f7f017f" "60037f7f7f0060057f7f7f7f7f017f60037f7f7e017f60087f7f7f7f7f7f7f7f017f60017f0060027f7f006000017f" - "02ae061a08686f73745f6c69620c6765745f74785f6669656c64000108686f73745f6c69620974726163655f6e756d" - "000708686f73745f6c6962057472616365000608686f73745f6c69620e6765745f6c65646765725f73716e00000868" - "6f73745f6c6962166765745f706172656e745f6c65646765725f74696d65000008686f73745f6c6962166765745f70" - "6172656e745f6c65646765725f68617368000008686f73745f6c6962136765745f74785f6e65737465645f6669656c" - "64000208686f73745f6c6962106765745f74785f61727261795f6c656e000308686f73745f6c6962176765745f7478" - "5f6e65737465645f61727261795f6c656e000008686f73745f6c69621c6765745f63757272656e745f6c6564676572" - "5f6f626a5f6669656c64000108686f73745f6c6962236765745f63757272656e745f6c65646765725f6f626a5f6e65" - "737465645f6669656c64000208686f73745f6c6962206765745f63757272656e745f6c65646765725f6f626a5f6172" - "7261795f6c656e000308686f73745f6c6962276765745f63757272656e745f6c65646765725f6f626a5f6e65737465" - "645f61727261795f6c656e000008686f73745f6c69621063616368655f6c65646765725f6f626a000108686f73745f" - "6c69621163726564656e7469616c5f6b65796c6574000808686f73745f6c69620d657363726f775f6b65796c657400" - "0408686f73745f6c69620d6f7261636c655f6b65796c6574000408686f73745f6c696213636f6d707574655f736861" - "3531325f68616c66000208686f73745f6c6962076765745f6e6674000408686f73745f6c69620b7570646174655f64" - "617461000008686f73745f6c6962146765745f6c65646765725f6f626a5f6669656c64000208686f73745f6c69621b" - "6765745f6c65646765725f6f626a5f6e65737465645f6669656c64000608686f73745f6c6962186765745f6c656467" - "65725f6f626a5f61727261795f6c656e000008686f73745f6c69621f6765745f6c65646765725f6f626a5f6e657374" - "65645f61727261795f6c656e000108686f73745f6c69620e6163636f756e745f6b65796c6574000208686f73745f6c" - "69620d74726163655f6163636f756e740002030c0b090a05050b05000101030005030100110619037f01418080c000" - "0b7f0041af99c0000b7f0041b099c0000b072e04066d656d6f727902000666696e697368001e0a5f5f646174615f65" - "6e6403010b5f5f686561705f6261736503020ac61d0b990101027f230041306b220124002000027f41818020200141" - "1c6a4114100022024114470440417f20022002417f4e1b210241010c010b200020012f001c3b0001200041036a2001" - "411e6a2d00003a0000200120012900233703082001200141286a29000037000d200128001f21022000410d6a200129" - "000d3700002000200129030837020841000b3a000020002002360204200141306a24000b460020012d000041014604" - "40418080c000410b20013402041001000b20002001290001370000200041106a200141116a28000036000020004108" - "6a200141096a2900003700000b1900200241214f0440000b20002002360204200020013602000b1900200241094f04" - "40000b20002002360204200020013602000bde1a01097f230041b0036b22002400418b80c000411b41014100410010" - "021a41a680c000411941014100410010021a41e780c000412b41014100410010021a20004100360270024002400240" - "02400240024002400240200041f0006a220741041003220141004a0440419281c00041172000280270220141187420" - "014180fe03714108747220014108764180fe037120014118767272ad10011a200041003602900120004190016a2203" - "41041004220141004c0d0141a981c0004113200028029001220141187420014180fe03714108747220014108764180" - "fe037120014118767272ad10011a200041c8016a22024200370300200041c0016a22054200370300200041b8016a22" - "044200370300200042003703b001200041b0016a22064120100522014120470d0241bc81c000411320064120410110" - "021a41cf81c000412041014100410010021a41dc82c000412e41014100410010021a200041a0016a41003602002000" - "4198016a420037030020004200370390014181802020034114100022014114470d03418a83c00041142003101f2000" - "42003703704188801820074108100022014108470d04419e83c0004117420810011a41b583c0004128200741084101" - "10021a2000410036024841848008200041c8006a22034104100022014104470d0541dd83c000411520034104410110" - "021a200041013b0034200242003703002005420037030020044200370300200042003703b0010240200041346a4102" - "200641201006220141004e044041f283c00041142001ad10011a200041286a20062001101c418684c000410d200028" - "0228200028022c410110021a0c010b419384c00041292001ac10011a0b41bc84c00041154183803c1007ac10011a41" - "d184c00041134189803c1007ac10011a0240200041346a41021008220141004e044041e484c00041142001ad10011a" - "0c010b41f884c000412d2001ac10011a0b41a585c000412341014100410010021a41de86c000413341014100410010" - "021a2000420037037041828018200041f0006a220141081009220341004c0d0620034108460440419187c000412b42" - "0810011a41bc87c000412f20014108410110021a0c080b41eb87c000412f2003ad10011a200041206a200041f0006a" - "2003101d419a88c000411720002802202000280224410110021a0c070b41bf82c000411d2001ac10011a419b7f2102" - "0c070b419a82c00041252001ac10011a419a7f21020c060b41ef81c000412b2001ac10011a41997f21020c050b41b4" - "86c000412a2001ac10011a41b77e21020c040b41f385c00041c1002001ac10011a41b67e21020c030b41c885c00041" - "2b2001ac10011a41b57e21020c020b41b188c00041c5002003ac10011a0b200041a0016a410036020020004198016a" - "4200370300200042003703900102404181802020004190016a220341141009220141004a044041f688c000411e2003" - "101f0c010b419489c00041332001ac10011a0b200041013b0048200041c8016a4200370300200041c0016a42003703" - "00200041b8016a4200370300200042003703b0010240200041c8006a4102200041b0016a22014120100a220341004e" - "044041c789c000411c2003ad10011a200041186a20012003101c41e389c00041152000280218200028021c41011002" - "1a0c010b41f889c00041392003ac10011a0b41b18ac00041244183803c100bac10011a0240200041c8006a4102100c" - "220141004e044041d58ac000411c2001ad10011a0c010b41f18ac000413d2001ac10011a0b41ae8bc0004128410141" - "00410010021a41d68bc000412f41014100410010021a200041b0016a2203101a200041f0006a22012003101b200041" - "a8016a4200370300200041a0016a420037030020004198016a42003703002000420037039001024002400240024002" - "40200120004190016a2203102022014120460440200341204100100d220441004a044041858cc00041232004ad1001" - "1a200042003703482004200041c8006a220141081021220341004c0d022003410846044041a88cc000412a42081001" - "1a41d28cc000412e20014108410110021a0c060b41808dc000412e2003ad10011a200041106a200041c8006a200310" - "1d41ae8dc000411620002802102000280214410110021a0c050b41e68fc000413c2004ac10011a200041c8016a4200" - "370300200041c0016a4200370300200041b8016a4200370300200042003703b0014101200041b0016a412010212201" - "4100480d020c030b41ba92c000412e2001ac10011a41ef7c21020c050b41c48dc000412b2003ac10011a0c020b41a2" - "90c00041c1002001ac10011a0b200041013b00484101200041c8006a200041b0016a10222201410048044041e390c0" - "0041352001ac10011a0b4101102322014100480440419891c00041322001ac10011a0b4101200041c8006a10242201" - "410048044041ca91c00041392001ac10011a0b418392c000413741014100410010021a0c010b200041013b00342000" - "41c8016a4200370300200041c0016a4200370300200041b8016a4200370300200042003703b0010240200420004134" - "6a200041b0016a22011022220341004e044041ef8dc000411b2003ad10011a200041086a20012003101c418a8ec000" - "41142000280208200028020c410110021a0c010b419e8ec00041312003ac10011a0b41cf8ec000412320041023ac10" - "011a02402004200041346a1024220141004e044041f28ec000411b2001ad10011a0c010b418d8fc00041352001ac10" - "011a0b41c28fc000412441014100410010021a0b41e892c000412f41014100410010021a200041b0016a2201101a20" - "0041346a22042001101b200041e0006a4200370300200041d8006a4200370300200041d0006a420037030020004200" - "370348024002400240024002402004200041c8006a2203102022014120460440419793c000410f2003412041011002" - "1a20004188016a420037030020004180016a4200370300200041f8006a420037030020004200370370024020044114" - "2004411441a693c0004109200041f0006a22014120100e220341004a0440200020012003101c41ae93c00041122000" - "2802002000280204410110021a0c010b41c093c000413c2003ac10011a0b200041a8016a22064200370300200041a0" - "016a2202420037030020004198016a22054200370300200042003703900120004180808cc07e360268200041346a22" - "034114200041e8006a410420004190016a22084120100f22014120470d0141fc93c000410e20084120410110021a20" - "0041c8016a4200370300200041c0016a4200370300200041b8016a4200370300200042003703b001200041808080d0" - "0236026c20034114200041ec006a4104200041b0016a22044120101022014120470d02418a94c000410e2004412041" - "0110021a419894c000412441014100410010021a419195c000412541014100410010021a20004188016a4200370300" - "20004180016a4200370300200041f8006a42003703002000420037037041b695c0004117200041f0006a2203412010" - "1122014120470d0341cd95c000410b41b695c0004117410110021a41d895c000411120034120410110021a2004101a" - "200041c8006a22072004101b2006420037030020024200370300200542003703002000420037039001024041002004" - "22026b410371220320026a220520024d0d0020030440200321010340200241003a0000200241016a2102200141016b" - "22010d000b0b200341016b4107490d000340200241003a0000200241076a41003a0000200241066a41003a00002002" - "41056a41003a0000200241046a41003a0000200241036a41003a0000200241026a41003a0000200241016a41003a00" - "00200241086a22022005470d000b0b200541800220036b2201417c716a220220054b04400340200541003602002005" - "41046a22052002490d000b0b024020022001410371220120026a22034f0d002001220504400340200241003a000020" - "0241016a2102200541016b22050d000b0b200141016b4107490d000340200241003a0000200241076a41003a000020" - "0241066a41003a0000200241056a41003a0000200241046a41003a0000200241036a41003a0000200241026a41003a" - "0000200241016a41003a0000200241086a22022003470d000b0b024020074114200841202004418002101222014100" - "4a044041e995c00041102001ad10011a20014181024f0d0641f995c000410920042001410110021a0c010b418296c0" - "00412e2001ac10011a0b41b096c000411241c296c00041074101100222014100480d0541c996c000411d2001ad1001" - "1a41e696c0004111422a1001410048044041ad97c000411a42a47b10011a41a47b21020c070b41f796c000411c4200" - "10011a41012102419397c000411a41014100410010021a41ff97c000412941014100410010021a41a898c000412810" - "132201412846044041d098c000412741a898c0004128410110021a41f798c000411e41014100410010021a41bf80c0" - "00412841014100410010021a0c070b419599c000411a2001ac10011a41c37a21020c060b41f494c000411d2001ac10" - "011a418b7c21020c050b41d894c000411c2001ac10011a41897c21020c040b41bc94c000411c2001ac10011a41887c" - "21020c030b41dd97c00041222001ac10011a41a77b21020c020b000b41c797c00041162001ac10011a41a57b21020b" - "200041b0036a240020020b0d00200020012002411410191a0b0c00200041142001412010180b0e0020004182801820" - "01200210140b0e002000200141022002412010150b0a0020004183803c10160b0a0020002001410210170b0bb91901" - "00418080c0000baf196572726f725f636f64653d3d3d3d20484f53542046554e4354494f4e532054455354203d3d3d" - "54657374696e6720323620686f73742066756e6374696f6e73535543434553533a20416c6c20686f73742066756e63" - "74696f6e20746573747320706173736564212d2d2d2043617465676f727920313a204c656467657220486561646572" - "2046756e6374696f6e73202d2d2d4c65646765722073657175656e6365206e756d6265723a506172656e74206c6564" - "6765722074696d653a506172656e74206c656467657220686173683a535543434553533a204c656467657220686561" - "6465722066756e6374696f6e734552524f523a206765745f706172656e745f6c65646765725f686173682077726f6e" - "67206c656e6774683a4552524f523a206765745f706172656e745f6c65646765725f74696d65206661696c65643a45" - "52524f523a206765745f6c65646765725f73716e206661696c65643a2d2d2d2043617465676f727920323a20547261" - "6e73616374696f6e20446174612046756e6374696f6e73202d2d2d5472616e73616374696f6e204163636f756e743a" - "5472616e73616374696f6e20466565206c656e6774683a5472616e73616374696f6e20466565202873657269616c69" - "7a65642058525020616d6f756e74293a5472616e73616374696f6e2053657175656e63653a4e657374656420666965" - "6c64206c656e6774683a4e6573746564206669656c643a494e464f3a206765745f74785f6e65737465645f6669656c" - "64206e6f74206170706c696361626c653a5369676e657273206172726179206c656e6774683a4d656d6f7320617272" - "6179206c656e6774683a4e6573746564206172726179206c656e6774683a494e464f3a206765745f74785f6e657374" - "65645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a205472616e73616374696f" - "6e20646174612066756e6374696f6e734552524f523a206765745f74785f6669656c642853657175656e6365292077" - "726f6e67206c656e6774683a4552524f523a206765745f74785f6669656c6428466565292077726f6e67206c656e67" - "746820286578706563746564203820627974657320666f7220585250293a4552524f523a206765745f74785f666965" - "6c64284163636f756e74292077726f6e67206c656e6774683a2d2d2d2043617465676f727920333a2043757272656e" - "74204c6564676572204f626a6563742046756e6374696f6e73202d2d2d43757272656e74206f626a6563742062616c" - "616e6365206c656e677468202858525020616d6f756e74293a43757272656e74206f626a6563742062616c616e6365" - "202873657269616c697a65642058525020616d6f756e74293a43757272656e74206f626a6563742062616c616e6365" - "206c656e67746820286e6f6e2d58525020616d6f756e74293a43757272656e74206f626a6563742062616c616e6365" - "3a494e464f3a206765745f63757272656e745f6c65646765725f6f626a5f6669656c642842616c616e636529206661" - "696c656420286d6179206265206578706563746564293a43757272656e74206c6564676572206f626a656374206163" - "636f756e743a494e464f3a206765745f63757272656e745f6c65646765725f6f626a5f6669656c64284163636f756e" - "7429206661696c65643a43757272656e74206e6573746564206669656c64206c656e6774683a43757272656e74206e" - "6573746564206669656c643a494e464f3a206765745f63757272656e745f6c65646765725f6f626a5f6e6573746564" - "5f6669656c64206e6f74206170706c696361626c653a43757272656e74206f626a656374205369676e657273206172" - "726179206c656e6774683a43757272656e74206e6573746564206172726179206c656e6774683a494e464f3a206765" - "745f63757272656e745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e206e6f74206170706c69" - "6361626c653a535543434553533a2043757272656e74206c6564676572206f626a6563742066756e6374696f6e732d" - "2d2d2043617465676f727920343a20416e79204c6564676572204f626a6563742046756e6374696f6e73202d2d2d53" - "75636365737366756c6c7920636163686564206f626a65637420696e20736c6f743a436163686564206f626a656374" - "2062616c616e6365206c656e677468202858525020616d6f756e74293a436163686564206f626a6563742062616c61" - "6e6365202873657269616c697a65642058525020616d6f756e74293a436163686564206f626a6563742062616c616e" - "6365206c656e67746820286e6f6e2d58525020616d6f756e74293a436163686564206f626a6563742062616c616e63" - "653a494e464f3a206765745f6c65646765725f6f626a5f6669656c642842616c616e636529206661696c65643a4361" - "63686564206e6573746564206669656c64206c656e6774683a436163686564206e6573746564206669656c643a494e" - "464f3a206765745f6c65646765725f6f626a5f6e65737465645f6669656c64206e6f74206170706c696361626c653a" - "436163686564206f626a656374205369676e657273206172726179206c656e6774683a436163686564206e65737465" - "64206172726179206c656e6774683a494e464f3a206765745f6c65646765725f6f626a5f6e65737465645f61727261" - "795f6c656e206e6f74206170706c696361626c653a535543434553533a20416e79206c6564676572206f626a656374" - "2066756e6374696f6e73494e464f3a2063616368655f6c65646765725f6f626a206661696c65642028657870656374" - "656420776974682074657374206669787475726573293a494e464f3a206765745f6c65646765725f6f626a5f666965" - "6c64206661696c656420617320657870656374656420286e6f20636163686564206f626a656374293a494e464f3a20" - "6765745f6c65646765725f6f626a5f6e65737465645f6669656c64206661696c65642061732065787065637465643a" - "494e464f3a206765745f6c65646765725f6f626a5f61727261795f6c656e206661696c656420617320657870656374" - "65643a494e464f3a206765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e206661696c6564" - "2061732065787065637465643a535543434553533a20416e79206c6564676572206f626a6563742066756e6374696f" - "6e732028696e7465726661636520746573746564294552524f523a206163636f756e745f6b65796c6574206661696c" - "656420666f722063616368696e6720746573743a2d2d2d2043617465676f727920353a204b65796c65742047656e65" - "726174696f6e2046756e6374696f6e73202d2d2d4163636f756e74206b65796c65743a546573745479706543726564" - "656e7469616c206b65796c65743a494e464f3a2063726564656e7469616c5f6b65796c6574206661696c6564202865" - "78706563746564202d20696e74657266616365206973737565293a457363726f77206b65796c65743a4f7261636c65" - "206b65796c65743a535543434553533a204b65796c65742067656e65726174696f6e2066756e6374696f6e73455252" - "4f523a206f7261636c655f6b65796c6574206661696c65643a4552524f523a20657363726f775f6b65796c65742066" - "61696c65643a4552524f523a206163636f756e745f6b65796c6574206661696c65643a2d2d2d2043617465676f7279" - "20363a205574696c6974792046756e6374696f6e73202d2d2d48656c6c6f2c205852504c205741534d20776f726c64" - "21496e70757420646174613a5348413531322068616c6620686173683a4e46542064617461206c656e6774683a4e46" - "5420646174613a494e464f3a206765745f6e6674206661696c656420286578706563746564202d206e6f2073756368" - "204e4654293a54657374207472616365206d6573736167657061796c6f616454726163652066756e6374696f6e2062" - "79746573207772697474656e3a54657374206e756d62657220747261636554726163655f6e756d2066756e6374696f" - "6e20737563636565646564535543434553533a205574696c6974792066756e6374696f6e734552524f523a20747261" - "63655f6e756d2829206661696c65643a4552524f523a2074726163652829206661696c65643a4552524f523a20636f" - "6d707574655f7368613531325f68616c66206661696c65643a2d2d2d2043617465676f727920373a20446174612055" - "70646174652046756e6374696f6e73202d2d2d55706461746564206c656467657220656e7472792064617461206672" - "6f6d205741534d20746573745375636365737366756c6c792075706461746564206c656467657220656e7472792077" - "6974683a535543434553533a2044617461207570646174652066756e6374696f6e734552524f523a20757064617465" - "5f64617461206661696c65643a004d0970726f64756365727302086c616e6775616765010452757374000c70726f63" - "65737365642d6279010572757374631d312e38372e30202831373036376539616320323032352d30352d303929002c" - "0f7461726765745f6665617475726573022b0f6d757461626c652d676c6f62616c732b087369676e2d657874"; + "02dc041a08686f73745f6c69620874785f6669656c64000108686f73745f6c69620974726163655f6e756d00070868" + "6f73745f6c6962057472616365000608686f73745f6c69620a6c6467725f696e646578000008686f73745f6c696210" + "706172656e745f6c6467725f74696d65000008686f73745f6c696210706172656e745f6c6467725f68617368000008" + "686f73745f6c69620874785f696e6e6572000208686f73745f6c69620a74785f6172725f6c656e000308686f73745f" + "6c69621074785f696e6e65725f6172725f6c656e000008686f73745f6c69620d686f6d655f6c655f6669656c640001" + "08686f73745f6c69620d686f6d655f6c655f696e6e6572000208686f73745f6c69620f686f6d655f6c655f6172725f" + "6c656e000308686f73745f6c696215686f6d655f6c655f696e6e65725f6172725f6c656e000008686f73745f6c6962" + "0863616368655f6c65000108686f73745f6c69620d63726564656e7469616c5f6964000808686f73745f6c69620965" + "7363726f775f6964000408686f73745f6c6962096f7261636c655f6964000408686f73745f6c69620b736861353132" + "5f68616c66000208686f73745f6c6962076e66745f757269000408686f73745f6c6962087365745f64617461000008" + "686f73745f6c6962086c655f6669656c64000208686f73745f6c6962086c655f696e6e6572000608686f73745f6c69" + "620a6c655f6172725f6c656e000008686f73745f6c6962106c655f696e6e65725f6172725f6c656e000108686f7374" + "5f6c69620e6163636f756e74726f6f745f6964000208686f73745f6c69620a74726163655f616363740002030c0b09" + "0a05050b05000101030005030100110619037f01418080c0000b7f0041af99c0000b7f0041b099c0000b072e04066d" + "656d6f727902000666696e697368001e0a5f5f646174615f656e6403010b5f5f686561705f6261736503020ac61d0b" + "990101027f230041306b220124002000027f418180202001411c6a4114100022024114470440417f20022002417f4e" + "1b210241010c010b200020012f001c3b0001200041036a2001411e6a2d00003a000020012001290023370308200120" + "0141286a29000037000d200128001f21022000410d6a200129000d3700002000200129030837020841000b3a000020" + "002002360204200141306a24000b460020012d00004101460440418080c000410b20013402041001000b2000200129" + "0001370000200041106a200141116a280000360000200041086a200141096a2900003700000b1900200241094f0440" + "000b20002002360204200020013602000b1900200241214f0440000b20002002360204200020013602000bde1a0109" + "7f230041b0036b22002400418b80c000411b41014100410010021a41a680c000411941014100410010021a41e780c0" + "00412b41014100410010021a2000410036027002400240024002400240024002400240200041f0006a220741041003" + "220141004a0440419281c00041172000280270220141187420014180fe03714108747220014108764180fe03712001" + "4118767272ad10011a200041003602900120004190016a220341041004220141004c0d0141a981c000411320002802" + "9001220141187420014180fe03714108747220014108764180fe037120014118767272ad10011a200041c8016a2202" + "4200370300200041c0016a22054200370300200041b8016a22044200370300200042003703b001200041b0016a2206" + "4120100522014120470d0241bc81c000411320064120410110021a41cf81c000412041014100410010021a41dc82c0" + "00412e41014100410010021a200041a0016a410036020020004198016a420037030020004200370390014181802020" + "034114100022014114470d03418a83c00041142003101f200042003703704188801820074108100022014108470d04" + "419e83c0004117420810011a41b583c000412820074108410110021a2000410036024841848008200041c8006a2203" + "4104100022014104470d0541dd83c000411520034104410110021a200041013b003420024200370300200542003703" + "0020044200370300200042003703b0010240200041346a4102200641201006220141004e044041f283c00041142001" + "ad10011a200041286a20062001101d418684c000410d2000280228200028022c410110021a0c010b419384c0004129" + "2001ac10011a0b41bc84c00041154183803c1007ac10011a41d184c00041134189803c1007ac10011a024020004134" + "6a41021008220141004e044041e484c00041142001ad10011a0c010b41f884c000412d2001ac10011a0b41a585c000" + "412341014100410010021a41de86c000413341014100410010021a2000420037037041828018200041f0006a220141" + "081009220341004c0d0620034108460440419187c000412b420810011a41bc87c000412f20014108410110021a0c08" + "0b41eb87c000412f2003ad10011a200041206a200041f0006a2003101c419a88c00041172000280220200028022441" + "0110021a0c070b41bf82c000411d2001ac10011a419b7f21020c070b419a82c00041252001ac10011a419a7f21020c" + "060b41ef81c000412b2001ac10011a41997f21020c050b41b486c000412a2001ac10011a41b77e21020c040b41f385" + "c00041c1002001ac10011a41b67e21020c030b41c885c000412b2001ac10011a41b57e21020c020b41b188c00041c5" + "002003ac10011a0b200041a0016a410036020020004198016a42003703002000420037039001024041818020200041" + "90016a220341141009220141004a044041f688c000411e2003101f0c010b419489c00041332001ac10011a0b200041" + "013b0048200041c8016a4200370300200041c0016a4200370300200041b8016a4200370300200042003703b0010240" + "200041c8006a4102200041b0016a22014120100a220341004e044041c789c000411c2003ad10011a200041186a2001" + "2003101d41e389c00041152000280218200028021c410110021a0c010b41f889c00041392003ac10011a0b41b18ac0" + "0041244183803c100bac10011a0240200041c8006a4102100c220141004e044041d58ac000411c2001ad10011a0c01" + "0b41f18ac000413d2001ac10011a0b41ae8bc000412841014100410010021a41d68bc000412f41014100410010021a" + "200041b0016a2203101a200041f0006a22012003101b200041a8016a4200370300200041a0016a4200370300200041" + "98016a4200370300200042003703900102400240024002400240200120004190016a22031020220141204604402003" + "41204100100d220441004a044041858cc00041232004ad10011a200042003703482004200041c8006a220141081021" + "220341004c0d022003410846044041a88cc000412a420810011a41d28cc000412e20014108410110021a0c060b4180" + "8dc000412e2003ad10011a200041106a200041c8006a2003101c41ae8dc00041162000280210200028021441011002" + "1a0c050b41e68fc000413c2004ac10011a200041c8016a4200370300200041c0016a4200370300200041b8016a4200" + "370300200042003703b0014101200041b0016a4120102122014100480d020c030b41ba92c000412e2001ac10011a41" + "ef7c21020c050b41c48dc000412b2003ac10011a0c020b41a290c00041c1002001ac10011a0b200041013b00484101" + "200041c8006a200041b0016a10222201410048044041e390c00041352001ac10011a0b410110232201410048044041" + "9891c00041322001ac10011a0b4101200041c8006a10242201410048044041ca91c00041392001ac10011a0b418392" + "c000413741014100410010021a0c010b200041013b0034200041c8016a4200370300200041c0016a42003703002000" + "41b8016a4200370300200042003703b00102402004200041346a200041b0016a22011022220341004e044041ef8dc0" + "00411b2003ad10011a200041086a20012003101d418a8ec00041142000280208200028020c410110021a0c010b419e" + "8ec00041312003ac10011a0b41cf8ec000412320041023ac10011a02402004200041346a1024220141004e044041f2" + "8ec000411b2001ad10011a0c010b418d8fc00041352001ac10011a0b41c28fc000412441014100410010021a0b41e8" + "92c000412f41014100410010021a200041b0016a2201101a200041346a22042001101b200041e0006a420037030020" + "0041d8006a4200370300200041d0006a420037030020004200370348024002400240024002402004200041c8006a22" + "03102022014120460440419793c000410f20034120410110021a20004188016a420037030020004180016a42003703" + "00200041f8006a4200370300200042003703700240200441142004411441a693c0004109200041f0006a2201412010" + "0e220341004a0440200020012003101d41ae93c000411220002802002000280204410110021a0c010b41c093c00041" + "3c2003ac10011a0b200041a8016a22064200370300200041a0016a2202420037030020004198016a22054200370300" + "200042003703900120004180808cc07e360268200041346a22034114200041e8006a410420004190016a2208412010" + "0f22014120470d0141fc93c000410e20084120410110021a200041c8016a4200370300200041c0016a420037030020" + "0041b8016a4200370300200042003703b001200041808080d00236026c20034114200041ec006a4104200041b0016a" + "22044120101022014120470d02418a94c000410e20044120410110021a419894c000412441014100410010021a4191" + "95c000412541014100410010021a20004188016a420037030020004180016a4200370300200041f8006a4200370300" + "2000420037037041b695c0004117200041f0006a22034120101122014120470d0341cd95c000410b41b695c0004117" + "410110021a41d895c000411120034120410110021a2004101a200041c8006a22072004101b20064200370300200242" + "0037030020054200370300200042003703900102404100200422026b410371220320026a220520024d0d0020030440" + "200321010340200241003a0000200241016a2102200141016b22010d000b0b200341016b4107490d00034020024100" + "3a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000200241046a41003a000020024103" + "6a41003a0000200241026a41003a0000200241016a41003a0000200241086a22022005470d000b0b20054180022003" + "6b2201417c716a220220054b0440034020054100360200200541046a22052002490d000b0b02402002200141037122" + "0120026a22034f0d002001220504400340200241003a0000200241016a2102200541016b22050d000b0b200141016b" + "4107490d000340200241003a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000200241" + "046a41003a0000200241036a41003a0000200241026a41003a0000200241016a41003a0000200241086a2202200347" + "0d000b0b0240200741142008412020044180021012220141004a044041e995c00041102001ad10011a20014181024f" + "0d0641f995c000410920042001410110021a0c010b418296c000412e2001ac10011a0b41b096c000411241c296c000" + "41074101100222014100480d0541c996c000411d2001ad10011a41e696c0004111422a1001410048044041ad97c000" + "411a42a47b10011a41a47b21020c070b41f796c000411c420010011a41012102419397c000411a4101410041001002" + "1a41ff97c000412941014100410010021a41a898c000412810132201412846044041d098c000412741a898c0004128" + "410110021a41f798c000411e41014100410010021a41bf80c000412841014100410010021a0c070b419599c000411a" + "2001ac10011a41c37a21020c060b41f494c000411d2001ac10011a418b7c21020c050b41d894c000411c2001ac1001" + "1a41897c21020c040b41bc94c000411c2001ac10011a41887c21020c030b41dd97c00041222001ac10011a41a77b21" + "020c020b000b41c797c00041162001ac10011a41a57b21020b200041b0036a240020020b0d00200020012002411410" + "191a0b0c00200041142001412010180b0e002000418280182001200210140b0e002000200141022002412010150b0a" + "0020004183803c10160b0a0020002001410210170b0bb9190100418080c0000baf196572726f725f636f64653d3d3d" + "3d20484f53542046554e4354494f4e532054455354203d3d3d54657374696e6720323620686f73742066756e637469" + "6f6e73535543434553533a20416c6c20686f73742066756e6374696f6e20746573747320706173736564212d2d2d20" + "43617465676f727920313a204c6564676572204865616465722046756e6374696f6e73202d2d2d4c65646765722073" + "657175656e6365206e756d6265723a506172656e74206c65646765722074696d653a506172656e74206c6564676572" + "20686173683a535543434553533a204c6564676572206865616465722066756e6374696f6e734552524f523a206765" + "745f706172656e745f6c65646765725f686173682077726f6e67206c656e6774683a4552524f523a206765745f7061" + "72656e745f6c65646765725f74696d65206661696c65643a4552524f523a206765745f6c65646765725f73716e2066" + "61696c65643a2d2d2d2043617465676f727920323a205472616e73616374696f6e20446174612046756e6374696f6e" + "73202d2d2d5472616e73616374696f6e204163636f756e743a5472616e73616374696f6e20466565206c656e677468" + "3a5472616e73616374696f6e20466565202873657269616c697a65642058525020616d6f756e74293a5472616e7361" + "6374696f6e2053657175656e63653a4e6573746564206669656c64206c656e6774683a4e6573746564206669656c64" + "3a494e464f3a206765745f74785f6e65737465645f6669656c64206e6f74206170706c696361626c653a5369676e65" + "7273206172726179206c656e6774683a4d656d6f73206172726179206c656e6774683a4e6573746564206172726179" + "206c656e6774683a494e464f3a206765745f74785f6e65737465645f61727261795f6c656e206e6f74206170706c69" + "6361626c653a535543434553533a205472616e73616374696f6e20646174612066756e6374696f6e734552524f523a" + "206765745f74785f6669656c642853657175656e6365292077726f6e67206c656e6774683a4552524f523a20676574" + "5f74785f6669656c6428466565292077726f6e67206c656e6774682028657870656374656420382062797465732066" + "6f7220585250293a4552524f523a206765745f74785f6669656c64284163636f756e74292077726f6e67206c656e67" + "74683a2d2d2d2043617465676f727920333a2043757272656e74204c6564676572204f626a6563742046756e637469" + "6f6e73202d2d2d43757272656e74206f626a6563742062616c616e6365206c656e677468202858525020616d6f756e" + "74293a43757272656e74206f626a6563742062616c616e6365202873657269616c697a65642058525020616d6f756e" + "74293a43757272656e74206f626a6563742062616c616e6365206c656e67746820286e6f6e2d58525020616d6f756e" + "74293a43757272656e74206f626a6563742062616c616e63653a494e464f3a206765745f63757272656e745f6c6564" + "6765725f6f626a5f6669656c642842616c616e636529206661696c656420286d617920626520657870656374656429" + "3a43757272656e74206c6564676572206f626a656374206163636f756e743a494e464f3a206765745f63757272656e" + "745f6c65646765725f6f626a5f6669656c64284163636f756e7429206661696c65643a43757272656e74206e657374" + "6564206669656c64206c656e6774683a43757272656e74206e6573746564206669656c643a494e464f3a206765745f" + "63757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c64206e6f74206170706c696361626c653a" + "43757272656e74206f626a656374205369676e657273206172726179206c656e6774683a43757272656e74206e6573" + "746564206172726179206c656e6774683a494e464f3a206765745f63757272656e745f6c65646765725f6f626a5f6e" + "65737465645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a2043757272656e74" + "206c6564676572206f626a6563742066756e6374696f6e732d2d2d2043617465676f727920343a20416e79204c6564" + "676572204f626a6563742046756e6374696f6e73202d2d2d5375636365737366756c6c7920636163686564206f626a" + "65637420696e20736c6f743a436163686564206f626a6563742062616c616e6365206c656e67746820285852502061" + "6d6f756e74293a436163686564206f626a6563742062616c616e6365202873657269616c697a65642058525020616d" + "6f756e74293a436163686564206f626a6563742062616c616e6365206c656e67746820286e6f6e2d58525020616d6f" + "756e74293a436163686564206f626a6563742062616c616e63653a494e464f3a206765745f6c65646765725f6f626a" + "5f6669656c642842616c616e636529206661696c65643a436163686564206e6573746564206669656c64206c656e67" + "74683a436163686564206e6573746564206669656c643a494e464f3a206765745f6c65646765725f6f626a5f6e6573" + "7465645f6669656c64206e6f74206170706c696361626c653a436163686564206f626a656374205369676e65727320" + "6172726179206c656e6774683a436163686564206e6573746564206172726179206c656e6774683a494e464f3a2067" + "65745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e206e6f74206170706c696361626c653a53" + "5543434553533a20416e79206c6564676572206f626a6563742066756e6374696f6e73494e464f3a2063616368655f" + "6c65646765725f6f626a206661696c6564202865787065637465642077697468207465737420666978747572657329" + "3a494e464f3a206765745f6c65646765725f6f626a5f6669656c64206661696c656420617320657870656374656420" + "286e6f20636163686564206f626a656374293a494e464f3a206765745f6c65646765725f6f626a5f6e65737465645f" + "6669656c64206661696c65642061732065787065637465643a494e464f3a206765745f6c65646765725f6f626a5f61" + "727261795f6c656e206661696c65642061732065787065637465643a494e464f3a206765745f6c65646765725f6f62" + "6a5f6e65737465645f61727261795f6c656e206661696c65642061732065787065637465643a535543434553533a20" + "416e79206c6564676572206f626a6563742066756e6374696f6e732028696e74657266616365207465737465642945" + "52524f523a206163636f756e74726f6f745f6964206661696c656420666f722063616368696e6720746573743a2d2d" + "2d2043617465676f727920353a204b65796c65742047656e65726174696f6e2046756e6374696f6e73202d2d2d4163" + "636f756e74206b65796c65743a546573745479706543726564656e7469616c206b65796c65743a494e464f3a206372" + "6564656e7469616c5f6b65796c6574206661696c656420286578706563746564202d20696e74657266616365206973" + "737565293a457363726f77206b65796c65743a4f7261636c65206b65796c65743a535543434553533a204b65796c65" + "742067656e65726174696f6e2066756e6374696f6e734552524f523a206f7261636c655f6b65796c6574206661696c" + "65643a4552524f523a20657363726f775f6b65796c6574206661696c65643a4552524f523a206163636f756e74726f" + "6f745f6964206661696c65643a2d2d2d2043617465676f727920363a205574696c6974792046756e6374696f6e7320" + "2d2d2d48656c6c6f2c205852504c205741534d20776f726c6421496e70757420646174613a5348413531322068616c" + "6620686173683a4e46542064617461206c656e6774683a4e465420646174613a494e464f3a206765745f6e66742066" + "61696c656420286578706563746564202d206e6f2073756368204e4654293a54657374207472616365206d65737361" + "67657061796c6f616454726163652066756e6374696f6e206279746573207772697474656e3a54657374206e756d62" + "657220747261636554726163655f6e756d2066756e6374696f6e20737563636565646564535543434553533a205574" + "696c6974792066756e6374696f6e734552524f523a2074726163655f6e756d2829206661696c65643a4552524f523a" + "2074726163652829206661696c65643a4552524f523a20636f6d707574655f7368613531325f68616c66206661696c" + "65643a2d2d2d2043617465676f727920373a2044617461205570646174652046756e6374696f6e73202d2d2d557064" + "61746564206c656467657220656e74727920646174612066726f6d205741534d20746573745375636365737366756c" + "6c792075706461746564206c656467657220656e74727920776974683a535543434553533a20446174612075706461" + "74652066756e6374696f6e734552524f523a207570646174655f64617461206661696c65643a004d0970726f647563" + "65727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e38372e30" + "202831373036376539616320323032352d30352d303929002c0f7461726765745f6665617475726573022b0f6d7574" + "61626c652d676c6f62616c732b087369676e2d657874"; extern std::string const kDeepRecursionHex = "0061736d010000000105016000017f030201000608017f0141c0843d0b070a010666696e69736800000a1601140023" "0045044041010f0b230041016b240010000b"; extern std::string const kAllKeyletsWasmHex = - "0061736d0100000001480960067f7f7f7f7f7f017f60047f7f7f7f017f60087f7f7f7f7f7f7f7f017f60037f7f7f01" - "7f60037f7f7e017f60057f7f7f7f7f017f60057f7f7f7f7f006000017f60037f7f7f000284051808686f73745f6c69" - "620974726163655f6e756d000408686f73745f6c6962057472616365000508686f73745f6c69621063616368655f6c" - "65646765725f6f626a000308686f73745f6c6962146765745f6c65646765725f6f626a5f6669656c64000108686f73" - "745f6c69621c6765745f63757272656e745f6c65646765725f6f626a5f6669656c64000308686f73745f6c69620d74" - "726163655f6163636f756e74000108686f73745f6c69620e6163636f756e745f6b65796c6574000108686f73745f6c" - "69620b6c696e655f6b65796c6574000208686f73745f6c69620a616d6d5f6b65796c6574000008686f73745f6c6962" - "0c636865636b5f6b65796c6574000008686f73745f6c69621163726564656e7469616c5f6b65796c6574000208686f" - "73745f6c69620f64656c65676174655f6b65796c6574000008686f73745f6c6962166465706f7369745f7072656175" - "74685f6b65796c6574000008686f73745f6c69620a6469645f6b65796c6574000108686f73745f6c69620d65736372" - "6f775f6b65796c6574000008686f73745f6c6962136d70745f69737375616e63655f6b65796c6574000008686f7374" - "5f6c69620e6d70746f6b656e5f6b65796c6574000008686f73745f6c6962106e66745f6f666665725f6b65796c6574" - "000008686f73745f6c69620c6f666665725f6b65796c6574000008686f73745f6c69620e7061796368616e5f6b6579" - "6c6574000208686f73745f6c69621a7065726d697373696f6e65645f646f6d61696e5f6b65796c6574000008686f73" - "745f6c69620e7369676e6572735f6b65796c6574000108686f73745f6c69620d7469636b65745f6b65796c65740000" - "08686f73745f6c69620c7661756c745f6b65796c6574000003040306070805030100110619037f01418080c0000b7f" - "0041ad8ac0000b7f0041b08ac0000b073e05066d656d6f727902000d6f626a6563745f65786973747300180666696e" - "69736800190a5f5f646174615f656e6403010b5f5f686561705f6261736503020ab73403a80502017f017e230041a0" - "016b22052400024020012d0000410146044041c280c000411620012802042201ac10001a200041013a000020002001" - "3602040c010b200541186a200141196a290000370300200541106a200141116a290000370300200541086a20014109" - "6a290000370300200520012900013703002002200320054120410110011a02402005412041001002220141004a0440" - "2004450440418b80c000410f4285801410001a20014185801420054180016a412010032201412047044041a680c000" - "4115417f20012001417f4e1b2201ac10001a200041013a0000200020013602040c040b200541c2006a20054182016a" - "2d00003a0000200541f0006a20054197016a2900002206370300200541286a22012005418f016a2900003703002005" - "41306a22022006370300200541386a22032005419f016a2d00003a0000200520052f0080013b014020052005290087" - "013703202005200528008301360043200541df006a20032d00003a0000200541d7006a2002290300370000200541cf" - "006a200129030037000020052005290320370047419a80c000410c200541406b4120410110011a0c020b418b80c000" - "410f2004ac10001a2001200420054180016a411410032201411447044041a680c0004115417f20012001417f4e1b22" - "01ac10001a200041013a0000200020013602040c030b200541c2006a20054182016a2d00003a000020052005290087" - "0137036020052005418c016a290000370065200520052f0080013b0140200520052903603703202005200529006537" - "00252005200528008301360043200541cc006a200529002537000020052005290320370047419a80c000410c200541" - "406b4114410110011a0c010b41bb80c00041072001ac10001a200041013a0000200020013602040c010b2000418002" - "3b01000b200541a0016a24000b8b2a02087f027e23004180076b2200240041d880c000412341014100410010011a02" - "402000027f02404181802020004188016a22024114100422014114460440200041066a2000418a016a22032d00003a" - "00002000200029008f013703e001200020004194016a22042900003700e501200020002f0088013b01042000200029" - "03e0013703d806200020002900e5013700dd062000200028008b01360007200041106a20002900dd06370000200020" - "002903d80637000b41fb80c0004108200041046a2205411410051a4183802020024114100422014114470d03200041" - "1a6a20032d00003a00002000200029008f013703e001200020042900003700e501200020002f0088013b0118200020" - "002903e0013703d806200020002900e5013700dd062000200028008b0136001b200041246a20002900dd0637000020" - "0020002903d80637001f418381c000410c200041186a411410051a200041a0016a2203420037030020004198016a22" - "04420037030020004190016a420037030020004200370388012005411420024120100622014120460d010240200141" - "00480440200020013602300c010b2000417f3602300b41010c020b0c020b200041c5006a2003290300370000200041" - "3d6a2004290300370000200041356a20004190016a290300370000200020002903880137002d41000b3a002c200041" - "88016a2000412c6a418f81c0004107418180201018024020002d0088014101460440200028028c01210141878ac000" - "4112420510001a0c010b41002101419681c000413541014100410010011a200041de006a41c4003a0000200041d800" - "6a4100360200200041e3006a41003a0000200041d5a6013b015c200042003703502000410036005f200041a0016a22" - "03420037030020004198016a2204420037030020004190016a2205420037030020004200370388010240200041046a" - "4114200041186a4114200041d0006a411420004188016a412010072202412047044002402002410048044020002002" - "3602680c010b2000417f3602680b410121010c010b200041fd006a2003290300370000200041f5006a200429030037" - "0000200041ed006a200529030037000020002000290388013700650b200020013a006420004188016a200041e4006a" - "41cb81c00041094100101820002d0088014101460440200028028c01210141878ac0004112420510001a0c010b41d4" - "81c000413741014100410010011a200041f0016a200041286a2203280100360200200041e8016a200041206a220429" - "0100370300200041fc016a200041d8006a290300220837020020004184026a200041e0006a28020022023602002000" - "20002901183703e0012000200029035022093702f401200041e8066a22012002360200200041e0066a220220083703" - "00200020093703d806200041f4066a2004290100370200200041fc066a2003280100360200200020002901183702ec" - "0620004188026a200041d8066a22034128101a2000418c016a200041e0016a41d000101a2000410136028801200041" - "f0066a220442003703002001420037030020024200370300200042003703d8062000027f41998ac0004114200041b4" - "016a412820034120100822034120470440024020034100480440200020033602e4010c010b2000417f3602e4010b41" - "010c010b200041f9016a2004290300370000200041f1016a2001290300370000200041e9016a200229030037000020" - "0020002903d8063700e10141000b3a00e001200041b4026a200041e0016a418b82c000410341818020101820002d00" - "b402410146044020002802b802210141878ac0004112420610001a0c010b41002101418e82c0004131410141004100" - "10011a200041808080303602d806200041f8016a22034200370300200041f0016a22044200370300200041e8016a22" - "054200370300200042003703e0010240200041046a4114200041d8066a4104200041e0016a41201009220241204704" - "40024020024100480440200020023602c0020c010b2000417f3602c0020b410121010c010b200041d5026a20032903" - "00370000200041cd026a2004290300370000200041c5026a2005290300370000200020002903e0013700bd020b2000" - "20013a00bc02200041e0016a200041bc026a41bf82c000410541818020101820002d00e001410146044020002802e4" - "01210141878ac0004112420610001a0c010b4100210141c482c000413341014100410010011a200041f8016a220342" - "00370300200041f0016a22044200370300200041e8016a22054200370300200042003703e0010240200041046a2202" - "41142002411441f782c0004112200041e0016a4120100a22024120470440024020024100480440200020023602e402" - "0c010b2000417f3602e4020b410121010c010b200041f9026a2003290300370000200041f1026a2004290300370000" - "200041e9026a2005290300370000200020002903e0013700e1020b200020013a00e002200041e0016a200041e0026a" - "418983c000410a41988020101820002d00e001410146044020002802e401210141878ac0004112420710001a0c010b" - "41002101419383c000413841014100410010011a200041f8016a22034200370300200041f0016a2204420037030020" - "0041e8016a22054200370300200042003703e0010240200041046a4114200041186a4114200041e0016a4120100b22" - "02412047044002402002410048044020002002360288030c010b2000417f360288030b410121010c010b2000419d03" - "6a200329030037000020004195036a20042903003700002000418d036a2005290300370000200020002903e0013700" - "85030b200020013a008403200041e0016a20004184036a41cb83c000410841818020101820002d00e0014101460440" - "20002802e401210141878ac0004112420810001a0c010b41d383c000413641014100410010011a230041206b220124" - "00200141186a22044200370300200141106a22054200370300200141086a2206420037030020014200370300200041" - "a8036a2202027f200041046a4114200041186a411420014120100c2203412047044002402003410048044020022003" - "3602040c010b2002417f3602040b41010c010b20022001290300370001200241196a2004290300370000200241116a" - "2005290300370000200241096a200629030037000041000b3a0000200141206a2400200041e0016a2002418984c000" - "410e41818020101820002d00e001410146044020002802e401210141878ac0004112420910001a0c010b419784c000" - "413c41014100410010011a230041206b22012400200141186a22044200370300200141106a22054200370300200141" - "086a2206420037030020014200370300200041cc036a2202027f200041046a411420014120100d2203412047044002" - "4020034100480440200220033602040c010b2002417f3602040b41010c010b20022001290300370001200241196a20" - "04290300370000200241116a2005290300370000200241096a200629030037000041000b3a0000200141206a240020" - "0041e0016a200241d384c000410341818020101820002d00e001410146044020002802e401210141878ac000411242" - "0a10001a0c010b41d684c000413141014100410010011a230041306b22012400200141808080d80036020c20014128" - "6a22044200370300200141206a22054200370300200141186a2206420037030020014200370310200041f0036a2202" - "027f200041046a41142001410c6a4104200141106a4120100e22034120470440024020034100480440200220033602" - "040c010b2002417f3602040b41010c010b20022001290310370001200241196a2004290300370000200241116a2005" - "290300370000200241096a200629030037000041000b3a0000200141306a2400200041e0016a2002418785c0004106" - "41818020101820002d00e001410146044020002802e401210141878ac0004112420b10001a0c010b418d85c0004134" - "41014100410010011a230041306b22012400200141808080e00036020c200141286a22044200370300200141206a22" - "054200370300200141186a220642003703002001420037031020004194046a2202027f200041046a41142001410c6a" - "4104200141106a4120100f22034120470440024020034100480440200220033602040c010b2002417f3602040b4101" - "0c010b20022001290310370001200241196a2004290300370000200241116a2005290300370000200241096a200629" - "030037000041000b3a0000200141306a2400200041f4016a200041146a280100360200200041ec016a2000410c6a29" - "0100370200200020002901043702e401200041808080e0003602e001200041d8066a200241c185c000410b41848020" - "101820002d00d806410146044020002802dc06210141878ac0004112420c10001a0c010b41cc85c000413941014100" - "410010011a230041206b22012400200141186a22044200370300200141106a22054200370300200141086a22064200" - "37030020014200370300200041b8046a2202027f200041e0016a4118200041186a4114200141201010220341204704" - "40024020034100480440200220033602040c010b2002417f3602040b41010c010b2002200129030037000120024119" - "6a2004290300370000200241116a2005290300370000200241096a200629030037000041000b3a0000200141206a24" - "00200041d8066a2002418586c000410741818020101820002d00d806410146044020002802dc06210141878ac00041" - "12420d10001a0c010b418c86c000413541014100410010011a230041306b220124002001418080803036020c200141" - "286a22044200370300200141206a22054200370300200141186a2206420037030020014200370310200041dc046a22" - "02027f200041186a41142001410c6a4104200141106a41201011220341204704400240200341004804402002200336" - "02040c010b2002417f3602040b41010c010b20022001290310370001200241196a2004290300370000200241116a20" - "05290300370000200241096a200629030037000041000b3a0000200141306a2400200041d8066a200241c186c00041" - "0c41828020101820002d00d806410146044020002802dc06210141878ac0004112420d10001a0c010b41cd86c00041" - "3a41014100410010011a230041306b22012400200141808080e80036020c200141286a22044200370300200141206a" - "22054200370300200141186a220642003703002001420037031020004180056a2202027f200041046a41142001410c" - "6a4104200141106a4120101222034120470440024020034100480440200220033602040c010b2002417f3602040b41" - "010c010b20022001290310370001200241196a2004290300370000200241116a2005290300370000200241096a2006" - "29030037000041000b3a0000200141306a2400200041d8066a2002418787c000410541818020101820002d00d80641" - "0146044020002802dc06210141878ac0004112420d10001a0c010b418c87c000413341014100410010011a23004130" - "6b22012400200141808080f00036020c200141286a22044200370300200141206a22054200370300200141186a2206" - "420037030020014200370310200041a4056a2202027f200041046a4114200041186a41142001410c6a410420014110" - "6a4120101322034120470440024020034100480440200220033602040c010b2002417f3602040b41010c010b200220" - "01290310370001200241196a2004290300370000200241116a2005290300370000200241096a200629030037000041" - "000b3a0000200141306a2400200041d8066a200241bf87c000410a41818020101820002d00d8064101460440200028" - "02dc06210141878ac0004112420e10001a0c010b41c987c000413841014100410010011a230041306b220124002001" - "41808080f80036020c200141286a22044200370300200141206a22054200370300200141186a220642003703002001" - "4200370310200041c8056a2202027f200041046a41142001410c6a4104200141106a41201014220341204704400240" - "20034100480440200220033602040c010b2002417f3602040b41010c010b20022001290310370001200241196a2004" - "290300370000200241116a2005290300370000200241096a200629030037000041000b3a0000200141306a24002000" - "41d8066a2002418188c000411241828020101820002d00d806410146044020002802dc06210141878ac0004112420f" - "10001a0c010b419388c00041c00041014100410010011a230041206b22012400200141186a22044200370300200141" - "106a22054200370300200141086a2206420037030020014200370300200041ec056a2202027f200041046a41142001" - "4120101522034120470440024020034100480440200220033602040c010b2002417f3602040b41010c010b20022001" - "290300370001200241196a2004290300370000200241116a2005290300370000200241096a20062903003700004100" - "0b3a0000200141206a2400200041d8066a200241d388c000410a4100101820002d00d806410146044020002802dc06" - "210141878ac0004112421010001a0c010b41dd88c000413841014100410010011a230041306b220124002001418080" - "80900136020c200141286a22044200370300200141206a22054200370300200141186a220642003703002001420037" - "031020004190066a2202027f200041046a41142001410c6a4104200141106a41201016220341204704400240200341" - "00480440200220033602040c010b2002417f3602040b41010c010b20022001290310370001200241196a2004290300" - "370000200241116a2005290300370000200241096a200629030037000041000b3a0000200141306a2400200041d806" - "6a2002419589c000410641818020101820002d00d806410146044020002802dc06210141878ac0004112421210001a" - "0c010b41012101419b89c000413441014100410010011a230041306b22022400200241808080980136020c20024128" - "6a22054200370300200241206a22064200370300200241186a2207420037030020024200370310200041b4066a2203" - "027f200041046a41142002410c6a4104200241106a4120101722044120470440024020044100480440200320043602" - "040c010b2003417f3602040b41010c010b20032002290310370001200341196a2005290300370000200341116a2006" - "290300370000200341096a200729030037000041000b3a0000200241306a2400200041d8066a200341cf89c0004105" - "41818020101820002d00d806410146044020002802dc06210141878ac0004112421310001a0c010b41d489c0004133" - "41014100410010011a0b20004180076a240020010f0b418080c000410b417f20012001417f4e1bac1000000bfd0401" - "067f200241104f0440024020002000410020006b41037122056a22044f0d0020012103200504402005210603402000" - "20032d00003a0000200341016a2103200041016a2100200641016b22060d000b0b200541016b4107490d0003402000" - "20032d00003a0000200041016a200341016a2d00003a0000200041026a200341026a2d00003a0000200041036a2003" - "41036a2d00003a0000200041046a200341046a2d00003a0000200041056a200341056a2d00003a0000200041066a20" - "0341066a2d00003a0000200041076a200341076a2d00003a0000200341086a2103200041086a22002004470d000b0b" - "2004200220056b2207417c7122086a21000240200120056a2206410371450440200020044d0d012006210103402004" - "2001280200360200200141046a2101200441046a22042000490d000b0c010b200020044d0d00200641037422054118" - "7121032006417c71220241046a2101410020056b411871210520022802002102034020042002200376200128020022" - "0220057472360200200141046a2101200441046a22042000490d000b0b20074103712102200620086a21010b024020" - "00200020026a22064f0d002002410771220304400340200020012d00003a0000200141016a2101200041016a210020" - "0341016b22030d000b0b200241016b4107490d000340200020012d00003a0000200041016a200141016a2d00003a00" - "00200041026a200141026a2d00003a0000200041036a200141036a2d00003a0000200041046a200141046a2d00003a" - "0000200041056a200141056a2d00003a0000200041066a200141066a2d00003a0000200041076a200141076a2d0000" - "3a0000200141086a2101200041086a22002006470d000b0b0b0ba30a0100418080c0000b990a6572726f725f636f64" - "653d47657474696e67206669656c643a204669656c6420646174613a204572726f722067657474696e67206669656c" - "643a204572726f723a204572726f722067657474696e67206b65796c65743a202424242424205354415254494e4720" - "5741534d20455845435554494f4e2024242424244163636f756e743a44657374696e6174696f6e3a4163636f756e74" - "4163636f756e74206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066" - "696e6973682e54727573746c696e6554727573746c696e65206f626a656374206578697374732c2070726f63656564" - "696e67207769746820657363726f772066696e6973682e414d4d414d4d206f626a656374206578697374732c207072" - "6f63656564696e67207769746820657363726f772066696e6973682e436865636b436865636b206f626a6563742065" - "78697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e7465726d73616e64636f" - "6e646974696f6e7343726564656e7469616c43726564656e7469616c206f626a656374206578697374732c2070726f" - "63656564696e67207769746820657363726f772066696e6973682e44656c656761746544656c6567617465206f626a" - "656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e4465706f73" - "6974507265617574684465706f73697450726561757468206f626a656374206578697374732c2070726f6365656469" - "6e67207769746820657363726f772066696e6973682e444944444944206f626a656374206578697374732c2070726f" - "63656564696e67207769746820657363726f772066696e6973682e457363726f77457363726f77206f626a65637420" - "6578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e4d505449737375616e" - "63654d505449737375616e6365206f626a656374206578697374732c2070726f63656564696e672077697468206573" - "63726f772066696e6973682e4d50546f6b656e4d50546f6b656e206f626a656374206578697374732c2070726f6365" - "6564696e67207769746820657363726f772066696e6973682e4e46546f6b656e4f666665724e46546f6b656e4f6666" - "6572206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e697368" - "2e4f666665724f66666572206f626a656374206578697374732c2070726f63656564696e6720776974682065736372" - "6f772066696e6973682e5061794368616e6e656c5061794368616e6e656c206f626a656374206578697374732c2070" - "726f63656564696e67207769746820657363726f772066696e6973682e5065726d697373696f6e6564446f6d61696e" - "5065726d697373696f6e6564446f6d61696e206f626a656374206578697374732c2070726f63656564696e67207769" - "746820657363726f772066696e6973682e5369676e65724c6973745369676e65724c697374206f626a656374206578" - "697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e5469636b65745469636b65" - "74206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e" - "5661756c745661756c74206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f" - "772066696e6973682e43757272656e74207365712076616c75653a004d0970726f64756365727302086c616e677561" - "6765010452757374000c70726f6365737365642d6279010572757374631d312e38372e302028313730363765396163" - "20323032352d30352d303929002c0f7461726765745f6665617475726573022b0f6d757461626c652d676c6f62616c" - "732b087369676e2d657874"; + "0061736d0100000001500a60067f7f7f7f7f7f017f60047f7f7f7f017f60087f7f7f7f7f7f7f7f017f60047f7f7f7f" + "0060037f7f7f017f60037f7f7e017f60057f7f7f7f7f017f6000017f60037f7f7f0060067f7f7f7f7f7e00029f0418" + "08686f73745f6c69620974726163655f6e756d000508686f73745f6c6962057472616365000608686f73745f6c6962" + "0863616368655f6c65000408686f73745f6c6962086c655f6669656c64000108686f73745f6c69620d686f6d655f6c" + "655f6669656c64000408686f73745f6c69620a74726163655f61636374000108686f73745f6c69620e6163636f756e" + "74726f6f745f6964000108686f73745f6c69620c74727573746c696e655f6964000208686f73745f6c696206616d6d" + "5f6964000008686f73745f6c696208636865636b5f6964000008686f73745f6c69620d63726564656e7469616c5f69" + "64000208686f73745f6c69620b64656c65676174655f6964000008686f73745f6c6962126465706f7369745f707265" + "617574685f6964000008686f73745f6c6962066469645f6964000108686f73745f6c696209657363726f775f696400" + "0008686f73745f6c69620f6d70745f69737375616e63655f6964000008686f73745f6c69620a6d70746f6b656e5f69" + "64000008686f73745f6c69620c6e66745f6f666665725f6964000008686f73745f6c6962086f666665725f69640000" + "08686f73745f6c69620a7061796368616e5f6964000208686f73745f6c6962167065726d697373696f6e65645f646f" + "6d61696e5f6964000008686f73745f6c69620a7369676e6572735f6964000108686f73745f6c6962097469636b6574" + "5f6964000008686f73745f6c6962087661756c745f6964000003070603030307080905030100110619037f01418080" + "c0000b7f0041c28ac0000b7f0041d08ac0000b072e04066d656d6f727902000666696e697368001b0a5f5f64617461" + "5f656e6403010b5f5f686561705f6261736503020ae83706140020002001200220034182802042828020101d0b1400" + "20002001200220034181802042818020101d0bd10302017f017e230041a0016b22042400024020012d000041014604" + "4041d780c000411620012802042201ac10001a200041013a0000200020013602040c010b200441186a200141196a29" + "0000370300200441106a200141116a290000370300200441086a200141096a29000037030020042001290001370300" + "2002200320044120410110011a2004412041001002220141004c044041d080c00041072001ac10001a200041013a00" + "00200020013602040c010b418b80c000410f4285801410001a20014185801420044180016a41201003220141204704" + "4041af80c0004115417f20012001417f4e1b2201ac10001a200041013a0000200020013602040c010b200441c2006a" + "20044182016a2d00003a0000200441f0006a20044197016a2900002205370300200441286a22012004418f016a2900" + "00370300200441306a22022005370300200441386a22032004419f016a2d00003a0000200420042f0080013b014020" + "042004290087013703202004200428008301360043200441df006a20032d00003a0000200441d7006a200229030037" + "0000200441cf006a20012903003700002004200429032037004741c480c000410c200441406b4120410110011a2000" + "4180023b01000b200441a0016a24000bd32c02097f027e23004180076b2200240041ed80c000412341014100410010" + "011a02402000027f02404181802020004190016a220741141004220641144604402000410e6a20004192016a22032d" + "00003a000020002000290097013703e80120002000419c016a22012900003700ed01200020002f0090013b010c2000" + "20002903e8013703d806200020002900ed013700dd06200020002800930136000f200041186a20002900dd06370000" + "200020002903d806370013419081c00041082000410c6a2204411410051a4183802020074114100422064114470d03" + "200041226a20032d00003a000020002000290097013703e801200020012900003700ed01200020002f0090013b0120" + "200020002903e8013703d806200020002900ed013700dd0620002000280093013600232000412c6a20002900dd0637" + "0000200020002903d806370027419881c000410c200041206a411410051a200041a8016a22034200370300200041a0" + "016a2201420037030020004198016a420037030020004200370390012004411420074120100622044120460d010240" + "20044100480440200020043602380c010b2000417f3602380b41010c020b0c020b200041cd006a2003290300370000" + "200041c5006a20012903003700002000413d6a20004198016a290300370000200020002903900137003541000b3a00" + "3420004190016a200041346a41a481c00041071019024020002d00900141014604402000280294012106419c8ac000" + "4112420510001a0c010b4100210641ab81c000413541014100410010011a200041e6006a41c4003a0000200041e000" + "6a4100360200200041eb006a41003a0000200041d5a6013b01642000420037035820004100360067200041a8016a22" + "044200370300200041a0016a2203420037030020004198016a22014200370300200042003703900102402000410c6a" + "4114200041206a4114200041d8006a411420004190016a412010072207412047044002402007410048044020002007" + "3602700c010b2000417f3602700b410121060c010b20004185016a2004290300370000200041fd006a200329030037" + "0000200041f5006a2001290300370000200020002903900137006d0b200020063a006c20004190016a200041ec006a" + "41e081c0004109101a20002d00900141014604402000280294012106419c8ac0004112420510001a0c010b41002106" + "41e981c000413741014100410010011a200041f8016a200041306a2204280100360200200041f0016a200041286a22" + "0329010037030020004184026a200041e0006a290300220a3702002000418c026a200041e8006a2802002201360200" + "200020002901203703e8012000200029035822093702fc01200041e8066a22052001360200200041e0066a2207200a" + "370300200020093703d806200041f4066a2003290100370200200041fc066a20042801003602002000200029012037" + "02ec0620004190026a200041d8066a22034128101c20004194016a200041e8016a41d000101c200041013602900120" + "0041f0066a220142003703002005420037030020074200370300200042003703d806024041ae8ac0004114200041bc" + "016a412820034120100822034120470440024020034100480440200020033602ec010c010b2000417f3602ec010b41" + "0121060c010b20004181026a2001290300370000200041f9016a2005290300370000200041f1016a20072903003700" + "00200020002903d8063700e9010b200020063a00e801200041bc026a200041e8016a41a082c0004103101920002d00" + "bc02410146044020002802c0022106419c8ac0004112420610001a0c010b4100210641a382c0004131410141004100" + "10011a200041063602d80620004180026a22044200370300200041f8016a22034200370300200041f0016a22014200" + "370300200042003703e80102402000410c6a4114200041d8066a4104200041e8016a41201009220741204704400240" + "20074100480440200020073602c8020c010b2000417f3602c8020b410121060c010b200041dd026a20042903003700" + "00200041d5026a2003290300370000200041cd026a2001290300370000200020002903e8013700c5020b200020063a" + "00c402200041e8016a200041c4026a41d482c0004105101920002d00e801410146044020002802ec012106419c8ac0" + "004112420610001a0c010b41d982c000413341014100410010011a20004180026a4200370300200041f8016a420037" + "0300200041f0016a4200370300200042003703e801024002402000410c6a2201411420014114418c83c00041122000" + "41e8016a4120100a2201412047044041d780c0004116417f20012001417f4e1b2206ac10001a0c010b200041da066a" + "20002d00ea013a0000200041f0026a200041f7016a290000220a370300200041f8026a200041ff016a290000220937" + "030020004180036a20004187026a2d000022013a0000200041e7066a200a370000200041ef066a2009370000200041" + "f7066a20013a0000200020002f01e8013b01d806200020002900ef0122093703e802200020002800eb013600db0620" + "0020093700df06419e83c000410a200041d8066a22014120410110011a2001412041001002220641004c044041d080" + "c00041072006ac10001a0c010b418b80c000410f4298802010001a200641988020200041e8016a4114100322014114" + "460d0141af80c0004115417f20012001417f4e1b2206ac10001a0b419c8ac0004112420710001a0c010b419a80c000" + "411541014100410010011a41a883c000413841014100410010011a230041206b22082400200841186a220742003703" + "00200841106a22044200370300200841086a220342003703002008420037030020004184036a2201027f2000410c6a" + "22064114200041206a2202411420084120100b22054120470440024020054100480440200120053602040c010b2001" + "417f3602040b41010c010b20012008290300370001200141196a2007290300370000200141116a2004290300370000" + "200141096a200329030037000041000b3a0000200841206a2400200041e8016a2205200141e083c000410810192000" + "2d00e80145044041e883c000413641014100410010011a230041206b22082400200841186a22074200370300200841" + "106a22044200370300200841086a2203420037030020084200370300200041a8036a2201027f200641142002411420" + "084120100c22024120470440024020024100480440200120023602040c010b2001417f3602040b41010c010b200120" + "08290300370001200141196a2007290300370000200141116a2004290300370000200141096a200329030037000041" + "000b3a0000200841206a240020052001419e84c000410e101920002d00e801410146044020002802ec012106419c8a" + "c0004112420910001a0c020b41ac84c000413c41014100410010011a230041206b22022400200241186a2207420037" + "0300200241106a22044200370300200241086a2203420037030020024200370300200041cc036a2201027f2000410c" + "6a411420024120100d22054120470440024020054100480440200120053602040c010b2001417f3602040b41010c01" + "0b20012002290300370001200141196a2007290300370000200141116a2004290300370000200141096a2003290300" + "37000041000b3a0000200241206a2400200041e8016a200141e884c0004103101920002d00e8014101460440200028" + "02ec012106419c8ac0004112420a10001a0c020b41eb84c000413141014100410010011a230041306b220224002002" + "410b36020c200241286a22074200370300200241206a22044200370300200241186a22034200370300200242003703" + "10200041f0036a2201027f2000410c6a41142002410c6a4104200241106a4120100e22054120470440024020054100" + "480440200120053602040c010b2001417f3602040b41010c010b20012002290310370001200141196a200729030037" + "0000200141116a2004290300370000200141096a200329030037000041000b3a0000200241306a2400200041e8016a" + "2001419c85c0004106101920002d00e801410146044020002802ec012106419c8ac0004112420b10001a0c020b41a2" + "85c000413441014100410010011a230041306b220224002002410c36020c200241286a22074200370300200241206a" + "22044200370300200241186a220342003703002002420037031020004194046a2201027f2000410c6a41142002410c" + "6a4104200241106a4120100f22054120470440024020054100480440200120053602040c010b2001417f3602040b41" + "010c010b20012002290310370001200141196a2007290300370000200141116a2004290300370000200141096a2003" + "29030037000041000b3a0000200241306a2400200041fc016a2000411c6a280100360200200041f4016a200041146a" + "2901003702002000200029010c3702ec01200041808080e0003602e801200041d8066a2103230041406a2204240002" + "4020012d0000410146044041d780c000411620012802042201ac10001a200341013a0000200320013602040c010b20" + "0441206a200141196a290000370300200441186a200141116a290000370300200441106a200141096a290000370300" + "2004200129000137030841d685c000410b200441086a22014120410110011a02400240200141204100100222014100" + "4c044041d080c00041072001ac10001a0c010b418b80c000410f4284802010001a2001418480202004412c6a411410" + "0322014114460d0141af80c0004115417f20012001417f4e1b2201ac10001a0b200341013a0000200320013602040c" + "010b419a80c000411541014100410010011a20034180023b01000b200441406b240020002d00d80641014604402000" + "2802dc062106419c8ac0004112420c10001a0c020b41e185c000413941014100410010011a230041206b2202240020" + "0241186a22074200370300200241106a22044200370300200241086a2203420037030020024200370300200041b804" + "6a2201027f200041e8016a4118200041206a4114200241201010220541204704400240200541004804402001200536" + "02040c010b2001417f3602040b41010c010b20012002290300370001200141196a2007290300370000200141116a20" + "04290300370000200141096a200329030037000041000b3a0000200241206a2400200041d8066a2001419a86c00041" + "07101920002d00d806410146044020002802dc062106419c8ac0004112420d10001a0c020b41a186c0004135410141" + "00410010011a230041306b220224002002410636020c200241286a22074200370300200241206a2204420037030020" + "0241186a2203420037030020024200370310200041dc046a2201027f200041206a41142002410c6a4104200241106a" + "4120101122054120470440024020054100480440200120053602040c010b2001417f3602040b41010c010b20012002" + "290310370001200141196a2007290300370000200141116a2004290300370000200141096a20032903003700004100" + "0b3a0000200241306a2400200041d8066a200141d686c000410c101820002d00d806410146044020002802dc062106" + "419c8ac0004112420d10001a0c020b41e286c000413a41014100410010011a230041306b220224002002410d36020c" + "200241286a22074200370300200241206a22044200370300200241186a220342003703002002420037031020004180" + "056a2201027f2000410c6a41142002410c6a4104200241106a41201012220541204704400240200541004804402001" + "20053602040c010b2001417f3602040b41010c010b20012002290310370001200141196a2007290300370000200141" + "116a2004290300370000200141096a200329030037000041000b3a0000200241306a2400200041d8066a2001419c87" + "c0004105101920002d00d806410146044020002802dc062106419c8ac0004112420d10001a0c020b41a187c0004133" + "41014100410010011a230041306b220224002002410e36020c200241286a22074200370300200241206a2204420037" + "0300200241186a2203420037030020024200370310200041a4056a2201027f2000410c6a4114200041206a41142002" + "410c6a4104200241106a4120101322054120470440024020054100480440200120053602040c010b2001417f360204" + "0b41010c010b20012002290310370001200141196a2007290300370000200141116a2004290300370000200141096a" + "200329030037000041000b3a0000200241306a2400200041d8066a200141d487c000410a101920002d00d806410146" + "044020002802dc062106419c8ac0004112420e10001a0c020b41de87c000413841014100410010011a230041306b22" + "0224002002410f36020c200241286a22074200370300200241206a22044200370300200241186a2203420037030020" + "024200370310200041c8056a2201027f2000410c6a41142002410c6a4104200241106a412010142205412047044002" + "4020054100480440200120053602040c010b2001417f3602040b41010c010b20012002290310370001200141196a20" + "07290300370000200141116a2004290300370000200141096a200329030037000041000b3a0000200241306a240020" + "0041d8066a2001419688c0004112101820002d00d806410146044020002802dc062106419c8ac0004112420f10001a" + "0c020b41a888c00041c00041014100410010011a230041206b22022400200241186a22074200370300200241106a22" + "044200370300200241086a2203420037030020024200370300200041ec056a2201027f2000410c6a41142002412010" + "1522054120470440024020054100480440200120053602040c010b2001417f3602040b41010c010b20012002290300" + "370001200141196a2007290300370000200141116a2004290300370000200141096a200329030037000041000b3a00" + "00200241206a2400200041d8066a200141e888c000410a101a20002d00d806410146044020002802dc062106419c8a" + "c0004112421010001a0c020b41f288c000413841014100410010011a230041306b220224002002411236020c200241" + "286a22074200370300200241206a22044200370300200241186a220342003703002002420037031020004190066a22" + "01027f2000410c6a41142002410c6a4104200241106a41201016220541204704400240200541004804402001200536" + "02040c010b2001417f3602040b41010c010b20012002290310370001200141196a2007290300370000200141116a20" + "04290300370000200141096a200329030037000041000b3a0000200241306a2400200041d8066a200141aa89c00041" + "06101920002d00d806410146044020002802dc062106419c8ac0004112421210001a0c020b4101210641b089c00041" + "3441014100410010011a230041306b220224002002411336020c200241286a22074200370300200241206a22044200" + "370300200241186a2203420037030020024200370310200041b4066a2201027f2000410c6a41142002410c6a410420" + "0241106a4120101722054120470440024020054100480440200120053602040c010b2001417f3602040b41010c010b" + "20012002290310370001200141196a2007290300370000200141116a2004290300370000200141096a200329030037" + "000041000b3a0000200241306a2400200041d8066a200141e489c0004105101920002d00d806410146044020002802" + "dc062106419c8ac0004112421310001a0c020b41e989c000413341014100410010011a0c010b20002802ec01210641" + "9c8ac0004112420810001a0b20004180076a240020060f0b418080c000410b417f20062006417f4e1bac1000000bfd" + "0401067f200241104f0440024020002000410020006b41037122056a22044f0d002001210320050440200521060340" + "200020032d00003a0000200341016a2103200041016a2100200641016b22060d000b0b200541016b4107490d000340" + "200020032d00003a0000200041016a200341016a2d00003a0000200041026a200341026a2d00003a0000200041036a" + "200341036a2d00003a0000200041046a200341046a2d00003a0000200041056a200341056a2d00003a000020004106" + "6a200341066a2d00003a0000200041076a200341076a2d00003a0000200341086a2103200041086a22002004470d00" + "0b0b2004200220056b2207417c7122086a21000240200120056a2206410371450440200020044d0d01200621010340" + "20042001280200360200200141046a2101200441046a22042000490d000b0c010b200020044d0d0020064103742205" + "41187121032006417c71220241046a2101410020056b41187121052002280200210203402004200220037620012802" + "00220220057472360200200141046a2101200441046a22042000490d000b0b20074103712102200620086a21010b02" + "402000200020026a22064f0d002002410771220304400340200020012d00003a0000200141016a2101200041016a21" + "00200341016b22030d000b0b200241016b4107490d000340200020012d00003a0000200041016a200141016a2d0000" + "3a0000200041026a200141026a2d00003a0000200041036a200141036a2d00003a0000200041046a200141046a2d00" + "003a0000200041056a200141056a2d00003a0000200041066a200141066a2d00003a0000200041076a200141076a2d" + "00003a0000200141086a2101200041086a22002006470d000b0b0b940201017f230041406a22062400024020012d00" + "00410146044041d780c000411620012802042201ac10001a200041013a0000200020013602040c010b200641206a20" + "0141196a290000370300200641186a200141116a290000370300200641106a200141096a2900003703002006200129" + "000137030820022003200641086a22014120410110011a024002402001412041001002220141004c044041d080c000" + "41072001ac10001a0c010b418b80c000410f200510001a200120042006412c6a4114100322014114460d0141af80c0" + "004115417f20012001417f4e1b2201ac10001a0b200041013a0000200020013602040c010b419a80c0004115410141" + "00410010011a20004180023b01000b200641406b24000b0bb80a0100418080c0000bae0a6572726f725f636f64653d" + "47657474696e67206669656c643a204669656c6420646174613a207265747269657665644572726f72206765747469" + "6e67206669656c643a204669656c6420646174613a204572726f723a204572726f722067657474696e67206b65796c" + "65743a202424242424205354415254494e47205741534d20455845435554494f4e2024242424244163636f756e743a" + "44657374696e6174696f6e3a4163636f756e744163636f756e74206f626a656374206578697374732c2070726f6365" + "6564696e67207769746820657363726f772066696e6973682e54727573746c696e6554727573746c696e65206f626a" + "656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e414d4d414d" + "4d206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e" + "436865636b436865636b206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f" + "772066696e6973682e7465726d73616e64636f6e646974696f6e7343726564656e7469616c43726564656e7469616c" + "206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e44" + "656c656761746544656c6567617465206f626a656374206578697374732c2070726f63656564696e67207769746820" + "657363726f772066696e6973682e4465706f736974507265617574684465706f73697450726561757468206f626a65" + "6374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e444944444944" + "206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e45" + "7363726f77457363726f77206f626a656374206578697374732c2070726f63656564696e6720776974682065736372" + "6f772066696e6973682e4d505449737375616e63654d505449737375616e6365206f626a656374206578697374732c" + "2070726f63656564696e67207769746820657363726f772066696e6973682e4d50546f6b656e4d50546f6b656e206f" + "626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e4e4654" + "6f6b656e4f666665724e46546f6b656e4f66666572206f626a656374206578697374732c2070726f63656564696e67" + "207769746820657363726f772066696e6973682e4f666665724f66666572206f626a656374206578697374732c2070" + "726f63656564696e67207769746820657363726f772066696e6973682e5061794368616e6e656c5061794368616e6e" + "656c206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e697368" + "2e5065726d697373696f6e6564446f6d61696e5065726d697373696f6e6564446f6d61696e206f626a656374206578" + "697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e5369676e65724c69737453" + "69676e65724c697374206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f77" + "2066696e6973682e5469636b65745469636b6574206f626a656374206578697374732c2070726f63656564696e6720" + "7769746820657363726f772066696e6973682e5661756c745661756c74206f626a656374206578697374732c207072" + "6f63656564696e67207769746820657363726f772066696e6973682e43757272656e74207365712076616c75653a00" + "4d0970726f64756365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374" + "631d312e38372e30202831373036376539616320323032352d30352d303929002c0f7461726765745f666561747572" + "6573022b0f6d757461626c652d676c6f62616c732b087369676e2d657874"; extern std::string const kCodecovTestsWasmHex = - "0061736d01000000015a0c60057f7f7f7f7f017f60037f7f7e017f60027f7f017f60037f7f7f017f60047f7f7f7f01" - "7f60017f017f60067f7f7f7f7f7f017f60087f7f7f7f7f7f7f7f017f60077f7f7f7f7f7f7f017f60047f7f7f7f0060" - "00006000017f02840d3b08686f73745f6c6962057472616365000008686f73745f6c69620974726163655f6e756d00" - "0108686f73745f6c69620e6765745f6c65646765725f73716e000208686f73745f6c6962166765745f706172656e74" - "5f6c65646765725f74696d65000208686f73745f6c6962166765745f706172656e745f6c65646765725f6861736800" - "0208686f73745f6c69620c6765745f626173655f666565000208686f73745f6c696211616d656e646d656e745f656e" - "61626c6564000208686f73745f6c69620c6765745f74785f6669656c64000308686f73745f6c69620e6163636f756e" - "745f6b65796c6574000408686f73745f6c69621063616368655f6c65646765725f6f626a000308686f73745f6c6962" - "1c6765745f63757272656e745f6c65646765725f6f626a5f6669656c64000308686f73745f6c6962146765745f6c65" - "646765725f6f626a5f6669656c64000408686f73745f6c6962136765745f74785f6e65737465645f6669656c640004" - "08686f73745f6c6962236765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c640004" - "08686f73745f6c69621b6765745f6c65646765725f6f626a5f6e65737465645f6669656c64000008686f73745f6c69" - "62106765745f74785f61727261795f6c656e000508686f73745f6c6962206765745f63757272656e745f6c65646765" - "725f6f626a5f61727261795f6c656e000508686f73745f6c6962186765745f6c65646765725f6f626a5f6172726179" - "5f6c656e000208686f73745f6c6962176765745f74785f6e65737465645f61727261795f6c656e000208686f73745f" - "6c6962276765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e00020868" - "6f73745f6c69621f6765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e000308686f73745f" - "6c69620b7570646174655f64617461000208686f73745f6c696213636f6d707574655f7368613531325f68616c6600" - "0408686f73745f6c696209636865636b5f736967000608686f73745f6c6962076765745f6e6674000608686f73745f" - "6c69620e6765745f6e66745f697373756572000408686f73745f6c69620d6765745f6e66745f7461786f6e00040868" - "6f73745f6c69620d6765745f6e66745f666c616773000208686f73745f6c6962146765745f6e66745f7472616e7366" - "65725f666565000208686f73745f6c69620e6765745f6e66745f73657269616c000408686f73745f6c69620d747261" - "63655f6163636f756e74000408686f73745f6c69620c74726163655f616d6f756e74000408686f73745f6c69620c63" - "6865636b5f6b65796c6574000608686f73745f6c69620f666c6f61745f66726f6d5f75696e74000008686f73745f6c" - "69620b6c696e655f6b65796c6574000708686f73745f6c69620a616d6d5f6b65796c6574000608686f73745f6c6962" - "1163726564656e7469616c5f6b65796c6574000708686f73745f6c69620e6d70746f6b656e5f6b65796c6574000608" - "686f73745f6c69621274726163655f6f70617175655f666c6f6174000408686f73745f6c69620d666c6f61745f636f" - "6d70617265000408686f73745f6c696209666c6f61745f616464000808686f73745f6c69620e666c6f61745f737562" - "7472616374000808686f73745f6c69620e666c6f61745f6d756c7469706c79000808686f73745f6c69620c666c6f61" - "745f646976696465000808686f73745f6c69620a666c6f61745f726f6f74000608686f73745f6c696209666c6f6174" - "5f706f77000608686f73745f6c69620d657363726f775f6b65796c6574000608686f73745f6c6962136d70745f6973" - "7375616e63655f6b65796c6574000608686f73745f6c6962106e66745f6f666665725f6b65796c6574000608686f73" - "745f6c69620c6f666665725f6b65796c6574000608686f73745f6c69620d6f7261636c655f6b65796c657400060868" - "6f73745f6c69620e7061796368616e5f6b65796c6574000708686f73745f6c69621a7065726d697373696f6e65645f" - "646f6d61696e5f6b65796c6574000608686f73745f6c69620d7469636b65745f6b65796c6574000608686f73745f6c" - "69620c7661756c745f6b65796c6574000608686f73745f6c69620f64656c65676174655f6b65796c6574000608686f" - "73745f6c6962166465706f7369745f707265617574685f6b65796c6574000608686f73745f6c69620a6469645f6b65" - "796c6574000408686f73745f6c69620e7369676e6572735f6b65796c65740004030403090a0b05030100110619037f" - "01418080c0000b7f0041a8a1c0000b7f0041b0a1c0000b072e04066d656d6f727902000666696e697368003d0a5f5f" - "646174615f656e6403010b5f5f686561705f6261736503020aa43f0368000240024020002001460d00200220034101" - "410041001080808080001a2000417f4c0d01418b80c08000410b2000ad1081808080001a10bc80808000000b200220" - "032000ac1081808080001a0f0b418b80c08000410b2000ac1081808080001a10bc80808000000b0300000bb43e0305" - "7f017e017f2380808080004190026b2200248080808000419680c0800041234101410041001080808080001a200041" - "00360260200041e0006a4104108280808000410441bd8cc08000410e10bb8080800020004100360260200041e0006a" - "4104108380808000410441cb8cc08000411610bb80808000200041e0006a41186a22014200370300200041e0006a41" - "106a22024200370300200041e0006a41086a2203420037030020004200370360200041e0006a412010848080800041" - "2041e18cc08000411610bb8080800020004100360260200041e0006a4104108580808000410441f78cc08000410c10" - "bb80808000200041086a41186a428182848890a0c08001370300200041086a41106a428182848890a0c08001370300" - "200041086a41086a428182848890a0c080013703002000428182848890a0c0800137030841b980c08000410e108680" - "808000410141c780c08000411110bb80808000200041086a4120108680808000410141c780c08000411110bb808080" - "000240024041818020200041e0006a411410878080800022044114470d002000412c6a41026a200041e0006a41026a" - "2d00003a0000200020002900673703e8012000200041e0006a410c6a2900003700ed01200020002f00603b012c2000" - "20002903e8013703a801200020002900ed013700ad012000200028006336002f2000412c6a410c6a20002900ad0137" - "0000200020002903a801370033200142003703002002420037030020034200370300200042003703602000412c6a41" - "14200041e0006a412010888080800022014120470d01200041c0006a41026a20002d00623a0000200041e8016a4108" - "6a2201200041e0006a410f6a2900002205370300200041c0006a410f6a2005370000200041c0006a41176a200041e0" - "006a41176a290000370000200041c0006a411f6a200041e0006a411f6a2d00003a0000200020002f01603b01402000" - "200028006336004320002000290067370047200041c0006a41204100108980808000410141d880c08000411010bb80" - "808000200041e0006a41106a22024100360200200041e0006a41086a22034200370300200042003703604181802020" - "0041e0006a4114108a80808000411441838dc08000411c10bb80808000200241003602002003420037030020004200" - "370360410141818020200041e0006a4114108b808080004114419f8dc08000411410bb80808000200041043602a001" - "200041818020360260200041e8016a41106a2202410036020020014200370300200042003703e801200041e0006a41" - "04200041e8016a4114108c80808000411441b38dc08000411310bb8080800020024100360200200142003703002000" - "42003703e801200041e0006a20002802a001200041e8016a4114108d80808000411441c68dc08000412310bb808080" - "002002410036020020014200370300200042003703e8014101200041e0006a20002802a001200041e8016a4114108e" - "80808000411441e98dc08000411b10bb808080004189803c108f80808000412041e880c08000411010bb8080800041" - "89803c109080808000412041f880c08000412010bb8080800041014189803c1091808080004120419881c080004118" - "10bb80808000200041e0006a20002802a001109280808000412041b081c08000411710bb80808000200041e0006a20" - "002802a001109380808000412041c781c08000412710bb808080004101200041e0006a20002802a001109480808000" - "412041ee81c08000411f10bb808080002000412c6a41141095808080004114418d82c08000410b10bb808080002000" - "41e8016a41186a220342003703002002420037030020014200370300200042003703e801200041e0006a20002802a0" - "01200041e8016a4120109680808000412041848ec08000411310bb80808000419882c08000410c41a482c08000410b" - "41af82c08000410e109780808000410141bd82c08000410910bb80808000200041a8016a41186a200041086a41186a" - "290300370300200041a8016a41106a200041086a41106a290300370300200041a8016a41086a200041086a41086a29" - "0300370300200020002903083703a801200241003b010020014200370300200042003703e8012000412c6a41142000" - "41a8016a4120200041e8016a4112109880808000411241978ec08000410710bb808080002002410036020020014200" - "370300200042003703e801200041a8016a4120200041e8016a41141099808080004114419e8ec08000410e10bb8080" - "8000200041003602e801200041a8016a4120200041e8016a4104109a80808000410441ac8ec08000410d10bb808080" - "00200041a8016a4120109b80808000410841c682c08000410d10bb80808000200041a8016a4120109c80808000410a" - "41d382c08000411410bb80808000200041003602e801200041a8016a4120200041e8016a4104109d80808000410441" - "b98ec08000410e10bb8080800041e782c08000410d2000412c6a4114109e80808000410041f482c08000410d10bb80" - "80800041e782c08000410d418183c080004108109f808080004100418983c08000410c10bb8080800041e782c08000" - "410d419583c080004108109f808080004100419d83c08000411110bb80808000417f4104108480808000417141ae83" - "c08000411e10bb80808000200041003602e801200041e8016a417f108480808000417141c78ec08000411e10bb8080" - "8000200041e8016a41026a41003a0000200041003b01e801200041e8016a4103108480808000417d41e58ec0800041" - "2410bb80808000200041003602e801200041e8016a418094ebdc03108480808000417341898fc08000412310bb8080" - "80004102108f80808000416f41cc83c08000411f10bb80808000417f20002802a001109280808000417141eb83c080" - "00411f10bb80808000200041e0006a417f1092808080004171418a84c08000411f10bb80808000200041e0006a4181" - "08109280808000417441a984c08000412010bb80808000200041e0006a418094ebdc036a220620002802a001109280" - "808000417341c984c08000411f10bb80808000200342003703002002420037030020014200370300200042003703e8" - "012000412c6a411420064108200041e8016a412010a080808000417341ac8fc08000411810bb808080002003420037" - "03002002420037030020014200370300200042003703e8012000412c6a41142000412c6a4114200041e8016a412010" - "a080808000417141c48fc08000411a10bb808080002003420037030020024200370300200142003703002000420037" - "03e80120064108200041e8016a4120410010a180808000417341de8fc08000411710bb808080002003420037030020" - "02420037030020014200370300200042003703e801200041e0006a20002802a001200041e8016a4120410010a18080" - "8000417141f58fc08000412010bb80808000200620002802a0014101108980808000417341e884c08000411810bb80" - "808000200041e0006a20002802a00141011089808080004171418085c08000411a10bb808080002003420037030020" - "02420037030020014200370300200042003703e801200620002802a001200041e8016a412010888080800041734195" - "90c08000411610bb80808000200342003703002002420037030020014200370300200042003703e801200041e0006a" - "20002802a001200041e8016a4120108880808000417141ab90c08000411810bb808080002003420037030020024200" - "37030020014200370300200042003703e8012000412c6a41142000412c6a4114200620002802a001200041e8016a41" - "2010a280808000417341c390c08000411c10bb80808000200342003703002002420037030020014200370300200042" - "003703e8012000412c6a41142000412c6a4114200041e0006a20002802a001200041e8016a412010a2808080004171" - "41df90c08000411e10bb80808000200342003703002002420037030020014200370300200042003703e8014194a1c0" - "80004114200620002802a001200041e8016a412010a380808000417341fd90c08000411910bb808080002003420037" - "03002002420037030020014200370300200042003703e8014194a1c080004114200041e0006a20002802a001200041" - "e8016a412010a3808080004171419691c08000411f10bb808080002003420037030020024200370300200142003703" - "00200042003703e8014194a1c080004114419a85c080004114200041e8016a412010a380808000417141b591c08000" - "412910bb80808000200342003703002002420037030020014200370300200042003703e80141ae85c0800041284194" - "a1c080004114200041e8016a412010a380808000417141de91c08000412510bb80808000200041c8016a41146a2000" - "412c6a41106a280100360200200041c8016a410c6a2000412c6a41086a2901003702002000200029012c3702cc0120" - "0041808080083602c801200041003b01e801200041c8016a41184194a1c080004114200041e8016a410210a3808080" - "004171418392c08000410e10bb80808000200620002802a001422a108180808000417341d685c08000411110bb8080" - "8000200041003b01e8014102200041e8016a4102108780808000416f419192c08000411b10bb80808000200041003b" - "01e8014102200041e8016a4102108a80808000416f41ac92c08000412b10bb80808000200041003b01e80141014102" - "200041e8016a4102108b80808000416f41d792c08000412310bb808080004102108f80808000416f41cc83c0800041" - "1f10bb808080004102109080808000416f41e785c08000412f10bb8080800041014102109180808000416f419686c0" - "8000412710bb8080800041b980c08000418108108680808000417441bd86c08000411f10bb8080800041b980c08000" - "41c100108680808000417441dc86c08000411a10bb80808000200041003b01e801200041e0006a418108200041e801" - "6a4102108c80808000417441fa92c08000412110bb80808000200041003b01e801200041e0006a418108200041e801" - "6a4102108d808080004174419b93c08000413110bb80808000200041003b01e8014101200041e0006a418108200041" - "e8016a4102108e80808000417441cc93c08000412910bb80808000200041e0006a418108109280808000417441f686" - "c08000412510bb80808000200041e0006a4181081093808080004174419b87c08000413510bb808080004101200041" - "e0006a418108109480808000417441d087c08000412d10bb80808000200041e0006a418120109580808000417441fd" - "87c08000411910bb8080800041e782c0800041810841a482c08000410b41af82c08000410e109780808000417441bd" - "82c08000410910bb8080800041e782c08000410d41a482c0800041810841af82c08000410e109780808000417441bd" - "82c08000410910bb8080800041e782c08000410d41a482c08000410b41af82c08000418108109780808000417441bd" - "82c08000410910bb80808000200041003b01e801200041e0006a418108200041e8016a4102109680808000417441f5" - "93c08000412110bb80808000200041003b01e8014194a1c080004181084194a1c080004114200041e8016a410210a3" - "808080004174419694c08000411810bb80808000200041003b01e8012000412c6a41142000412c6a4114200041e000" - "6a418108200041e8016a410210a480808000417441ae94c08000411f10bb80808000200041003b01e801200041c801" - "6a4181082000412c6a4114200041e8016a410210a580808000417441cd94c08000412210bb8080800041e782c08000" - "410d200620002802a00141001080808080004173419688c08000410f10bb80808000200042d487b6f4c7d4b1c00037" - "00e00141e782c08000410d200041e0016a418094ebdc036a2204410810a680808000417341a588c08000411c10bb80" - "80800041e782c08000410d200620002802a001109f80808000417341c188c08000411610bb80808000200441082000" - "41e0016a410810a780808000417341d788c08000411810bb80808000200041e0016a41082004410810a78080800041" - "7341ef88c08000411810bb80808000200041003b01e80120044108200041e0016a4108200041e8016a4102410010a8" - "80808000417341ef94c08000411410bb80808000200041003b01e801200041e0016a410820044108200041e8016a41" - "02410010a8808080004173418395c08000411410bb80808000200041003b01e80120044108200041e0016a41082000" - "41e8016a4102410010a9808080004173419795c08000411910bb80808000200041003b01e801200041e0016a410820" - "044108200041e8016a4102410010a980808000417341b095c08000411910bb80808000200041003b01e80120044108" - "200041e0016a4108200041e8016a4102410010aa80808000417341c995c08000411910bb80808000200041003b01e8" - "01200041e0016a410820044108200041e8016a4102410010aa80808000417341e295c08000411910bb808080002000" - "41003b01e80120044108200041e0016a4108200041e8016a4102410010ab80808000417341fb95c08000411710bb80" - "808000200041003b01e801200041e0016a410820044108200041e8016a4102410010ab808080004173419296c08000" - "411710bb80808000200041003b01e801200441084103200041e8016a4102410010ac80808000417341a996c0800041" - "1410bb80808000200041003b01e801200441084103200041e8016a4102410010ad80808000417341bd96c080004113" - "10bb80808000200342003703002002420037030020014200370300200042003703e8012000412c6a41142000412c6a" - "4114200041e8016a412010ae80808000417141d096c08000411f10bb80808000200342003703002002420037030020" - "014200370300200042003703e8012000412c6a41142000412c6a4114200041e8016a412010af80808000417141ef96" - "c08000412510bb80808000200342003703002002420037030020014200370300200042003703e8012000412c6a4114" - "2000412c6a4114200041e8016a412010b0808080004171419497c08000412210bb8080800020034200370300200242" - "0037030020014200370300200042003703e8012000412c6a41142000412c6a4114200041e8016a412010b180808000" - "417141b697c08000411e10bb80808000200342003703002002420037030020014200370300200042003703e8012000" - "412c6a41142000412c6a4114200041e8016a412010b280808000417141d497c08000411f10bb808080002003420037" - "03002002420037030020014200370300200042003703e8012000412c6a41142000412c6a41142000412c6a41142000" - "41e8016a412010b380808000417141f397c08000412010bb8080800020034200370300200242003703002001420037" - "0300200042003703e8012000412c6a41142000412c6a4114200041e8016a412010b4808080004171419398c0800041" - "2c10bb80808000200342003703002002420037030020014200370300200042003703e8012000412c6a41142000412c" - "6a4114200041e8016a412010b580808000417141bf98c08000411f10bb808080002003420037030020024200370300" - "20014200370300200042003703e8012000412c6a41142000412c6a4114200041e8016a412010b680808000417141de" - "98c08000411e10bb80808000200041e0006a20002802a00141001089808080004171418789c08000412310bb808080" - "00200041003b01e8012000412c6a4114200041e0006a20002802a001200041e8016a4102109880808000417141fc98" - "c08000411a10bb80808000200041003b01e801200041e0006a20002802a001200041e8016a41021099808080004171" - "419699c08000412110bb80808000200041003b01e801200041e0006a20002802a001200041e8016a4102109a808080" - "00417141b799c08000412010bb80808000200041e0006a20002802a001109b80808000417141aa89c08000412010bb" - "80808000200041e0006a20002802a001109c80808000417141ca89c08000412710bb80808000200041003602e80120" - "0041e0006a20002802a001200041e8016a4104109d80808000417141d799c08000412110bb80808000200041003b01" - "e801200041e0006a20002802a001200041e8016a4102108880808000417141f899c08000412410bb80808000200041" - "808080083602e801200041003b018e02200041e0006a20002802a001200041e8016a41042000418e026a410210a080" - "8080004171419c9ac08000412210bb80808000200041003b018e02200041e0006a20002802a00122012000412c6a41" - "14200041e0006a20012000418e026a410210a480808000417141be9ac08000412810bb80808000200041003b018e02" - "2000412c6a4114200041e0006a20002802a0012201200041e0006a20012000418e026a410210a480808000417141e6" - "9ac08000412810bb80808000200041003b018e02200041e0006a20002802a0012000412c6a41142000418e026a4102" - "10b7808080004171418e9bc08000412610bb80808000200041003b018e022000412c6a4114200041e0006a20002802" - "a0012000418e026a410210b780808000417141b49bc08000412610bb80808000200041003b018e02200041e0006a20" - "002802a0012000412c6a41142000418e026a410210b880808000417141da9bc08000412d10bb80808000200041003b" - "018e022000412c6a4114200041e0006a20002802a0012000418e026a410210b880808000417141879cc08000412d10" - "bb80808000200041003b018e02200041e0006a20002802a0012000418e026a410210b980808000417141b49cc08000" - "412010bb80808000200041003b018e02200041e0006a20002802a001200041e8016a41042000418e026a410210ae80" - "808000417141d49cc08000412310bb80808000200041003b018e02200041e0006a20002802a0012000412c6a411441" - "9a85c0800041142000418e026a410210a280808000417141f79cc08000412210bb80808000200041003b018e022000" - "412c6a4114200041e0006a20002802a001419a85c0800041142000418e026a410210a280808000417141999dc08000" - "412210bb80808000200041003b018e02200041e0006a20002802a001200041e8016a41042000418e026a410210af80" - "808000417141bb9dc08000412910bb80808000200041003b018e02200041c8016a4118200041e0006a20002802a001" - "2000418e026a410210a580808000417141e49dc08000412410bb80808000200041003b018e02200041e0006a200028" - "02a001200041e8016a41042000418e026a410210b080808000417141889ec08000412610bb80808000200041003b01" - "8e02200041e0006a20002802a001200041e8016a41042000418e026a410210b180808000417141ae9ec08000412210" - "bb80808000200041003b018e02200041e0006a20002802a001200041e8016a41042000418e026a410210b280808000" - "417141d09ec08000412310bb80808000200041003b018e02200041e0006a20002802a0012000412c6a4114200041e8" - "016a41042000418e026a410210b380808000417141f39ec08000412510bb80808000200041003b018e022000412c6a" - "4114200041e0006a20002802a001200041e8016a41042000418e026a410210b380808000417141989fc08000412510" - "bb80808000200041003b018e02200041e0006a20002802a001200041e8016a41042000418e026a410210b480808000" - "417141bd9fc08000413010bb80808000200041003b018e02200041e0006a20002802a0012000418e026a410210ba80" - "808000417141ed9fc08000412410bb80808000200041003b018e02200041e0006a20002802a001200041e8016a4104" - "2000418e026a410210b58080800041714191a0c08000412310bb80808000200041003b018e02200041e0006a200028" - "02a001200041e8016a41042000418e026a410210b680808000417141b4a0c08000412210bb80808000200041003b01" - "8e02200041e0006a20002802a00141f189c0800041202000418e026a4102109880808000417141d6a0c08000411d10" - "bb8080800041e782c08000410d200041e0006a20002802a001109e80808000417141918ac08000412310bb80808000" - "41e796abdd03410d41f189c0800041204100108080808000417341b48ac08000411010bb8080800041e796abdd0341" - "0d200041e0016a410810a680808000417341c48ac08000411d10bb8080800041e796abdd03410d2000412c6a411410" - "9e80808000417341e18ac08000411810bb8080800041e796abdd03410d419583c080004108109f80808000417341f9" - "8ac08000411710bb80808000200041e0006a20002802a001200041e0006a4181084100108080808000417441908bc0" - "8000410e10bb80808000200041e0006a41810842011081808080004174419e8bc08000411210bb8080800041e782c0" - "8000418108200041e0016a410810a680808000417441b08bc08000411b10bb8080800041e782c08000418108200041" - "2c6a4114109e80808000417441cb8bc08000411610bb8080800041e782c08000418108419583c080004108109f8080" - "8000417441e18bc08000411510bb8080800041e782c08000410d200041e0006a20002802a001109f80808000417141" - "f68bc08000411910bb80808000200041003b018e02200041e0006a20002802a0012000412c6a41142000418e026a41" - "0210a580808000417141f3a0c08000412110bb8080800041e782c08000410d200041e0006a20002802a00141021080" - "808080004171418f8cc08000411410bb80808000410141002000412c6a4114109e80808000410041a38cc08000411a" - "10bb8080800020004190026a24808080800041010f0b418080c08000410b2004417f2004417f481bac108180808000" - "1a10bc80808000000b418080c08000410b2001417f2001417f481bac1081808080001a10bc80808000000b0bb22101" - "00418080c0000ba8216572726f725f636f64653d54455354204641494c45442424242424205354415254494e472057" - "41534d20455845435554494f4e202424242424746573745f616d656e646d656e74616d656e646d656e745f656e6162" - "6c656463616368655f6c65646765725f6f626a6765745f74785f61727261795f6c656e6765745f63757272656e745f" - "6c65646765725f6f626a5f61727261795f6c656e6765745f6c65646765725f6f626a5f61727261795f6c656e676574" - "5f74785f6e65737465645f61727261795f6c656e6765745f63757272656e745f6c65646765725f6f626a5f6e657374" - "65645f61727261795f6c656e6765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e75706461" - "74655f6461746174657374206d65737361676574657374207075626b657974657374207369676e6174757265636865" - "636b5f7369676765745f6e66745f666c6167736765745f6e66745f7472616e736665725f66656574657374696e6720" - "747261636574726163655f6163636f756e74400000000000005f74726163655f616d6f756e74400000000000000074" - "726163655f616d6f756e745f7a65726f6765745f706172656e745f6c65646765725f686173685f6e65675f70747267" - "65745f74785f61727261795f6c656e5f696e76616c69645f736669656c646765745f74785f6e65737465645f617272" - "61795f6c656e5f6e65675f7074726765745f74785f6e65737465645f61727261795f6c656e5f6e65675f6c656e6765" - "745f74785f6e65737465645f61727261795f6c656e5f746f6f5f6c6f6e676765745f74785f6e65737465645f617272" - "61795f6c656e5f7074725f6f6f6263616368655f6c65646765725f6f626a5f7074725f6f6f6263616368655f6c6564" - "6765725f6f626a5f77726f6e675f6c656e555344303030303030303030303030303030303000000000000000000000" - "00000000000000000000000000000000000000000000000000000000000074726163655f6e756d5f6f6f625f737472" - "6765745f63757272656e745f6c65646765725f6f626a5f61727261795f6c656e5f696e76616c69645f736669656c64" - "6765745f6c65646765725f6f626a5f61727261795f6c656e5f696e76616c69645f736669656c64616d656e646d656e" - "745f656e61626c65645f746f6f5f6269675f736c696365616d656e646d656e745f656e61626c65645f746f6f5f6c6f" - "6e676765745f74785f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c6963656765745f63757272" - "656e745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c6963656765" - "745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c69636575706461" - "74655f646174615f746f6f5f6269675f736c69636574726163655f6f6f625f736c69636574726163655f6f70617175" - "655f666c6f61745f6f6f625f736c69636574726163655f616d6f756e745f6f6f625f736c696365666c6f61745f636f" - "6d706172655f6f6f625f736c69636531666c6f61745f636f6d706172655f6f6f625f736c6963653263616368655f6c" - "65646765725f6f626a5f77726f6e675f73697a655f75696e743235366765745f6e66745f666c6167735f77726f6e67" - "5f73697a655f75696e743235366765745f6e66745f7472616e736665725f6665655f77726f6e675f73697a655f7569" - "6e74323536303030303030303030303030303030303030303030303030303030303030303174726163655f6163636f" - "756e745f77726f6e675f73697a655f6163636f756e745f696474726163655f6f6f625f737472696e6774726163655f" - "6f70617175655f666c6f61745f6f6f625f737472696e6774726163655f6163636f756e745f6f6f625f737472696e67" - "74726163655f616d6f756e745f6f6f625f737472696e6774726163655f746f6f5f6c6f6e6774726163655f6e756d5f" - "746f6f5f6c6f6e6774726163655f6f70617175655f666c6f61745f746f6f5f6c6f6e6774726163655f6163636f756e" - "745f746f6f5f6c6f6e6774726163655f616d6f756e745f746f6f5f6c6f6e6774726163655f616d6f756e745f77726f" - "6e675f6c656e67746874726163655f696e76616c69645f61735f68657874726163655f6163636f756e745f63686563" - "6b5f646573796e636765745f6c65646765725f73716e6765745f706172656e745f6c65646765725f74696d65676574" - "5f706172656e745f6c65646765725f686173686765745f626173655f6665656765745f63757272656e745f6c656467" - "65725f6f626a5f6669656c646765745f6c65646765725f6f626a5f6669656c646765745f74785f6e65737465645f66" - "69656c646765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c646765745f6c656467" - "65725f6f626a5f6e65737465645f6669656c64636f6d707574655f7368613531325f68616c666765745f6e66746765" - "745f6e66745f6973737565726765745f6e66745f7461786f6e6765745f6e66745f73657269616c6765745f70617265" - "6e745f6c65646765725f686173685f6e65675f6c656e6765745f706172656e745f6c65646765725f686173685f6275" - "665f746f6f5f736d616c6c6765745f706172656e745f6c65646765725f686173685f6c656e5f746f6f5f6c6f6e6763" - "6865636b5f6b65796c65745f6f6f625f6c656e5f753332636865636b5f6b65796c65745f77726f6e675f6c656e5f75" - "3332666c6f61745f66726f6d5f75696e745f6c656e5f6f6f62666c6f61745f66726f6d5f75696e745f77726f6e675f" - "6c656e5f75696e7436346163636f756e745f6b65796c65745f6c656e5f6f6f626163636f756e745f6b65796c65745f" - "77726f6e675f6c656e6c696e655f6b65796c65745f6c656e5f6f6f625f63757272656e63796c696e655f6b65796c65" - "745f77726f6e675f6c656e5f63757272656e6379616d6d5f6b65796c65745f6c656e5f6f6f625f617373657432616d" - "6d5f6b65796c65745f6c656e5f77726f6e675f6c656e5f617373657432616d6d5f6b65796c65745f6c656e5f77726f" - "6e675f6e6f6e5f7872705f63757272656e63795f6c656e616d6d5f6b65796c65745f6c656e5f77726f6e675f787270" - "5f63757272656e63795f6c656e616d6d5f6b65796c65745f6d70746765745f74785f6669656c645f696e76616c6964" - "5f736669656c646765745f63757272656e745f6c65646765725f6f626a5f6669656c645f696e76616c69645f736669" - "656c646765745f6c65646765725f6f626a5f6669656c645f696e76616c69645f736669656c646765745f74785f6e65" - "737465645f6669656c645f746f6f5f6269675f736c6963656765745f63757272656e745f6c65646765725f6f626a5f" - "6e65737465645f6669656c645f746f6f5f6269675f736c6963656765745f6c65646765725f6f626a5f6e6573746564" - "5f6669656c645f746f6f5f6269675f736c696365636f6d707574655f7368613531325f68616c665f746f6f5f626967" - "5f736c696365616d6d5f6b65796c65745f746f6f5f6269675f736c69636563726564656e7469616c5f6b65796c6574" - "5f746f6f5f6269675f736c6963656d70746f6b656e5f6b65796c65745f746f6f5f6269675f736c6963655f6d707469" - "64666c6f61745f6164645f6f6f625f736c69636531666c6f61745f6164645f6f6f625f736c69636532666c6f61745f" - "73756274726163745f6f6f625f736c69636531666c6f61745f73756274726163745f6f6f625f736c69636532666c6f" - "61745f6d756c7469706c795f6f6f625f736c69636531666c6f61745f6d756c7469706c795f6f6f625f736c69636532" - "666c6f61745f6469766964655f6f6f625f736c69636531666c6f61745f6469766964655f6f6f625f736c6963653266" - "6c6f61745f726f6f745f6f6f625f736c696365666c6f61745f706f775f6f6f625f736c696365657363726f775f6b65" - "796c65745f77726f6e675f73697a655f75696e7433326d70745f69737375616e63655f6b65796c65745f77726f6e67" - "5f73697a655f75696e7433326e66745f6f666665725f6b65796c65745f77726f6e675f73697a655f75696e7433326f" - "666665725f6b65796c65745f77726f6e675f73697a655f75696e7433326f7261636c655f6b65796c65745f77726f6e" - "675f73697a655f75696e7433327061796368616e5f6b65796c65745f77726f6e675f73697a655f75696e7433327065" - "726d697373696f6e65645f646f6d61696e5f6b65796c65745f77726f6e675f73697a655f75696e7433327469636b65" - "745f6b65796c65745f77726f6e675f73697a655f75696e7433327661756c745f6b65796c65745f77726f6e675f7369" - "7a655f75696e7433326765745f6e66745f77726f6e675f73697a655f75696e743235366765745f6e66745f69737375" - "65725f77726f6e675f73697a655f75696e743235366765745f6e66745f7461786f6e5f77726f6e675f73697a655f75" - "696e743235366765745f6e66745f73657269616c5f77726f6e675f73697a655f75696e743235366163636f756e745f" - "6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964636865636b5f6b65796c65745f77726f6e675f" - "73697a655f6163636f756e745f696463726564656e7469616c5f6b65796c65745f77726f6e675f73697a655f616363" - "6f756e745f69643163726564656e7469616c5f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964" - "3264656c65676174655f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69643164656c6567617465" - "5f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964326465706f7369745f707265617574685f6b" - "65796c65745f77726f6e675f73697a655f6163636f756e745f6964316465706f7369745f707265617574685f6b6579" - "6c65745f77726f6e675f73697a655f6163636f756e745f6964326469645f6b65796c65745f77726f6e675f73697a65" - "5f6163636f756e745f6964657363726f775f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69646c" - "696e655f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964316c696e655f6b65796c65745f7772" - "6f6e675f73697a655f6163636f756e745f6964326d70745f69737375616e63655f6b65796c65745f77726f6e675f73" - "697a655f6163636f756e745f69646d70746f6b656e5f6b65796c65745f77726f6e675f73697a655f6163636f756e74" - "5f69646e66745f6f666665725f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69646f666665725f" - "6b65796c65745f77726f6e675f73697a655f6163636f756e745f69646f7261636c655f6b65796c65745f77726f6e67" - "5f73697a655f6163636f756e745f69647061796368616e5f6b65796c65745f77726f6e675f73697a655f6163636f75" - "6e745f6964317061796368616e5f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964327065726d" - "697373696f6e65645f646f6d61696e5f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964736967" - "6e6572735f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69647469636b65745f6b65796c65745f" - "77726f6e675f73697a655f6163636f756e745f69647661756c745f6b65796c65745f77726f6e675f73697a655f6163" - "636f756e745f69646765745f6e66745f77726f6e675f73697a655f6163636f756e745f69646d70746f6b656e5f6b65" - "796c65745f6d707469645f77726f6e675f6c656e677468000000000000000000000000000000000000000000ea2a04" - "6e616d65001312636f6465636f765f74657374732e7761736d01ad2a3e004c5f5a4e31367872706c5f7761736d5f73" - "74646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7335747261636531376834623431" - "6663626133633836323862394501505f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f7374" - "5f646566696e65645f66756e6374696f6e733974726163655f6e756d31376836346562613963306665666435626361" - "4502565f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e" - "6374696f6e7331346765745f6c65646765725f73716e3137686633313635393261626131346636336345035e5f5a4e" - "31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e73" - "32326765745f706172656e745f6c65646765725f74696d653137686662373635613064613335336631323445045e5f" - "5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f" - "6e7332326765745f706172656e745f6c65646765725f68617368313768656335313634326538353530626434354505" - "545f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374" - "696f6e7331326765745f626173655f666565313768386466356664653831663063326161614506595f5a4e31367872" - "706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733137616d" - "656e646d656e745f656e61626c6564313768363461346434383031333165333235354507545f5a4e31367872706c5f" - "7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331326765745f74" - "785f6669656c64313768373037373835623434663266363639304508565f5a4e31367872706c5f7761736d5f737464" - "6c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331346163636f756e745f6b65796c65" - "74313768616538373566373066646637336635354509585f5a4e31367872706c5f7761736d5f7374646c696234686f" - "73743232686f73745f646566696e65645f66756e6374696f6e73313663616368655f6c65646765725f6f626a313768" - "65313634313265303433666362643861450a645f5a4e31367872706c5f7761736d5f7374646c696234686f73743232" - "686f73745f646566696e65645f66756e6374696f6e7332386765745f63757272656e745f6c65646765725f6f626a5f" - "6669656c6431376833636338656464626163373139323234450b5c5f5a4e31367872706c5f7761736d5f7374646c69" - "6234686f73743232686f73745f646566696e65645f66756e6374696f6e7332306765745f6c65646765725f6f626a5f" - "6669656c6431376830626137333839346464356334633338450c5b5f5a4e31367872706c5f7761736d5f7374646c69" - "6234686f73743232686f73745f646566696e65645f66756e6374696f6e7331396765745f74785f6e65737465645f66" - "69656c6431376864353730336462646161303438633238450d6b5f5a4e31367872706c5f7761736d5f7374646c6962" - "34686f73743232686f73745f646566696e65645f66756e6374696f6e7333356765745f63757272656e745f6c656467" - "65725f6f626a5f6e65737465645f6669656c6431376864336565353939316537306235386130450e635f5a4e313678" - "72706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e73323767" - "65745f6c65646765725f6f626a5f6e65737465645f6669656c6431376837363831323438326638333433326235450f" - "585f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374" - "696f6e7331366765745f74785f61727261795f6c656e313768663061333731366132373864633663614510685f5a4e" - "31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e73" - "33326765745f63757272656e745f6c65646765725f6f626a5f61727261795f6c656e31376863396662303730623337" - "6461323866314511605f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e" - "65645f66756e6374696f6e7332346765745f6c65646765725f6f626a5f61727261795f6c656e313768383061616437" - "6664343136616664636545125f5f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f64" - "6566696e65645f66756e6374696f6e7332336765745f74785f6e65737465645f61727261795f6c656e313768353234" - "6130613261303566656465376545136f5f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73" - "745f646566696e65645f66756e6374696f6e7333396765745f63757272656e745f6c65646765725f6f626a5f6e6573" - "7465645f61727261795f6c656e313768353139623331663261303939353035644514675f5a4e31367872706c5f7761" - "736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7333316765745f6c6564" - "6765725f6f626a5f6e65737465645f61727261795f6c656e313768316633646533393861653331306533394515535f" - "5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f" - "6e7331317570646174655f646174613137683662383232316465393861626630393745165b5f5a4e31367872706c5f" - "7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733139636f6d7075" - "74655f7368613531325f68616c66313768303565356531613863653833646338364517505f5a4e31367872706c5f77" - "61736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7339636865636b5f73" - "69673137686532323034393665326136363839373945184e5f5a4e31367872706c5f7761736d5f7374646c69623468" - "6f73743232686f73745f646566696e65645f66756e6374696f6e73376765745f6e6674313768643131643234633637" - "393530306236354519565f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f64656669" - "6e65645f66756e6374696f6e7331346765745f6e66745f697373756572313768316137353534643533316537636564" - "65451a555f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f6675" - "6e6374696f6e7331336765745f6e66745f7461786f6e31376830636664373337653333393261616434451b555f5a4e" - "31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e73" - "31336765745f6e66745f666c61677331376863336437633739326262303834353636451c5c5f5a4e31367872706c5f" - "7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7332306765745f6e" - "66745f7472616e736665725f66656531376834343230383233633838623738666630451d565f5a4e31367872706c5f" - "7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331346765745f6e" - "66745f73657269616c31376834326337303332393835666339343130451e555f5a4e31367872706c5f7761736d5f73" - "74646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e73313374726163655f6163636f75" - "6e7431376831393931636463666337663234366131451f545f5a4e31367872706c5f7761736d5f7374646c69623468" - "6f73743232686f73745f646566696e65645f66756e6374696f6e73313274726163655f616d6f756e74313768313231" - "643430646438643439623064344520545f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73" - "745f646566696e65645f66756e6374696f6e733132636865636b5f6b65796c65743137686135376564303837636165" - "39393136384521575f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65" - "645f66756e6374696f6e733135666c6f61745f66726f6d5f75696e7431376866363961343162303366323839346262" - "4522485f5a4e3133636f6465636f765f74657374733139686f73745f62696e64696e67735f6c6f6f736531316c696e" - "655f6b65796c6574313768336166313834353162626362653062384523525f5a4e31367872706c5f7761736d5f7374" - "646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733130616d6d5f6b65796c65743137" - "68353565333961626264346262323336324524595f5a4e31367872706c5f7761736d5f7374646c696234686f737432" - "32686f73745f646566696e65645f66756e6374696f6e73313763726564656e7469616c5f6b65796c65743137686365" - "61323561633261373035393863664525565f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f" - "73745f646566696e65645f66756e6374696f6e7331346d70746f6b656e5f6b65796c65743137686231363964636462" - "623234623033663445265a5f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566" - "696e65645f66756e6374696f6e73313874726163655f6f70617175655f666c6f617431376839313533356463633336" - "3764323938334527555f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e" - "65645f66756e6374696f6e733133666c6f61745f636f6d706172653137683134653662643136643762313235373745" - "28505f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e63" - "74696f6e7339666c6f61745f616464313768316162653839663139373139373431644529565f5a4e31367872706c5f" - "7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733134666c6f6174" - "5f737562747261637431376830316661353561663438653963663837452a565f5a4e31367872706c5f7761736d5f73" - "74646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733134666c6f61745f6d756c7469" - "706c7931376836633665366239643935636234643561452b545f5a4e31367872706c5f7761736d5f7374646c696234" - "686f73743232686f73745f646566696e65645f66756e6374696f6e733132666c6f61745f6469766964653137686132" - "3932613963396261323535623238452c525f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f" - "73745f646566696e65645f66756e6374696f6e733130666c6f61745f726f6f74313768393330313037316165376337" - "33393261452d505f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e6564" - "5f66756e6374696f6e7339666c6f61745f706f7731376830326133343235636131653666656531452e555f5a4e3136" - "7872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733133" - "657363726f775f6b65796c657431376830326161316365326263346330373539452f5b5f5a4e31367872706c5f7761" - "736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331396d70745f697373" - "75616e63655f6b65796c6574313768666539386161613762313632343765314530585f5a4e31367872706c5f776173" - "6d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331366e66745f6f666665" - "725f6b65796c6574313768353930313839656564373166613435364531545f5a4e31367872706c5f7761736d5f7374" - "646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331326f666665725f6b65796c6574" - "313768353830376537393161346361613163634532555f5a4e31367872706c5f7761736d5f7374646c696234686f73" - "743232686f73745f646566696e65645f66756e6374696f6e7331336f7261636c655f6b65796c657431376866343831" - "3166343862643266326530344533565f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f7374" - "5f646566696e65645f66756e6374696f6e7331347061796368616e5f6b65796c657431376837386265393931643265" - "3436613339634534625f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e" - "65645f66756e6374696f6e7332367065726d697373696f6e65645f646f6d61696e5f6b65796c657431376837663334" - "3362646335656663326630624535555f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f7374" - "5f646566696e65645f66756e6374696f6e7331337469636b65745f6b65796c65743137686435666532636466326537" - "33393962374536545f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65" - "645f66756e6374696f6e7331327661756c745f6b65796c657431376830386639346132656161383335373835453757" - "5f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e637469" - "6f6e73313564656c65676174655f6b65796c65743137686162396339646561393364663265636245385e5f5a4e3136" - "7872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733232" - "6465706f7369745f707265617574685f6b65796c6574313768313962303532623237653238313139384539525f5a4e" - "31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e73" - "31306469645f6b65796c657431376838323331376636646338353661383533453a565f5a4e31367872706c5f776173" - "6d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331347369676e6572735f" - "6b65796c657431376833626636666236363561643432333563453b345f5a4e3133636f6465636f765f746573747331" - "32636865636b5f726573756c7431376830613536316462313034376266626561453c305f5a4e34636f72653970616e" - "69636b696e673970616e69635f666d7431376864333035326133363632643530633935453d0666696e697368071201" - "000f5f5f737461636b5f706f696e746572090a0100072e726f64617461004d0970726f64756365727302086c616e67" - "75616765010452757374000c70726f6365737365642d6279010572757374631d312e38392e30202832393438333838" - "336520323032352d30382d3034290094010f7461726765745f6665617475726573082b0b62756c6b2d6d656d6f7279" - "2b0f62756c6b2d6d656d6f72792d6f70742b1663616c6c2d696e6469726563742d6f7665726c6f6e672b0a6d756c74" - "6976616c75652b0f6d757461626c652d676c6f62616c732b136e6f6e7472617070696e672d6670746f696e742b0f72" - "65666572656e63652d74797065732b087369676e2d657874"; + "0061736d0100000001570b60067f7f7f7f7f7f017f60047f7f7f7f017f60027f7f017f60037f7f7f017f60077f7f7f" + "7f7f7f7f017f60057f7f7f7f7f017f60087f7f7f7f7f7f7f7f017f60017f017f60037f7f7e017f60047f7f7f7f0060" + "00017f02c60a3b08686f73745f6c6962057472616365000508686f73745f6c69620974726163655f6e756d00080868" + "6f73745f6c69620a6c6467725f696e646578000208686f73745f6c696210706172656e745f6c6467725f74696d6500" + "0208686f73745f6c696210706172656e745f6c6467725f68617368000208686f73745f6c696208626173655f666565" + "000208686f73745f6c696211616d656e646d656e745f656e61626c6564000208686f73745f6c69620874785f666965" + "6c64000308686f73745f6c69620e6163636f756e74726f6f745f6964000108686f73745f6c69620863616368655f6c" + "65000308686f73745f6c69620d686f6d655f6c655f6669656c64000308686f73745f6c6962086c655f6669656c6400" + "0108686f73745f6c69620874785f696e6e6572000108686f73745f6c69620d686f6d655f6c655f696e6e6572000108" + "686f73745f6c6962086c655f696e6e6572000508686f73745f6c69620a74785f6172725f6c656e000708686f73745f" + "6c69620f686f6d655f6c655f6172725f6c656e000708686f73745f6c69620a6c655f6172725f6c656e000208686f73" + "745f6c69621074785f696e6e65725f6172725f6c656e000208686f73745f6c696215686f6d655f6c655f696e6e6572" + "5f6172725f6c656e000208686f73745f6c6962106c655f696e6e65725f6172725f6c656e000308686f73745f6c6962" + "087365745f64617461000208686f73745f6c69620b7368613531325f68616c66000108686f73745f6c696209636865" + "636b5f736967000008686f73745f6c6962076e66745f757269000008686f73745f6c69620a6e66745f697373756572" + "000108686f73745f6c6962096e66745f7461786f6e000108686f73745f6c6962096e66745f666c616773000208686f" + "73745f6c69620c6e66745f786665725f666565000208686f73745f6c69620a6e66745f73657269616c000108686f73" + "745f6c69620a74726163655f61636374000108686f73745f6c69620974726163655f616d74000108686f73745f6c69" + "6208636865636b5f6964000008686f73745f6c69620f666c6f61745f66726f6d5f75696e74000508686f73745f6c69" + "620c74727573746c696e655f6964000608686f73745f6c696206616d6d5f6964000008686f73745f6c69620d637265" + "64656e7469616c5f6964000608686f73745f6c69620a6d70746f6b656e5f6964000008686f73745f6c69620c747261" + "63655f78666c6f6174000108686f73745f6c696209666c6f61745f636d70000108686f73745f6c696209666c6f6174" + "5f616464000408686f73745f6c696209666c6f61745f737562000408686f73745f6c69620a666c6f61745f6d756c74" + "000408686f73745f6c696209666c6f61745f646976000408686f73745f6c69620a666c6f61745f726f6f7400000868" + "6f73745f6c696209666c6f61745f706f77000008686f73745f6c696209657363726f775f6964000008686f73745f6c" + "69620f6d70745f69737375616e63655f6964000008686f73745f6c69620c6e66745f6f666665725f6964000008686f" + "73745f6c6962086f666665725f6964000008686f73745f6c6962096f7261636c655f6964000008686f73745f6c6962" + "0a7061796368616e5f6964000608686f73745f6c6962167065726d697373696f6e65645f646f6d61696e5f69640000" + "08686f73745f6c6962097469636b65745f6964000008686f73745f6c6962087661756c745f6964000008686f73745f" + "6c69620b64656c65676174655f6964000008686f73745f6c6962126465706f7369745f707265617574685f69640000" + "08686f73745f6c6962066469645f6964000108686f73745f6c69620a7369676e6572735f69640001030302090a0503" + "0100110619037f01418080c0000b7f0041cf9bc0000b7f0041d09bc0000b072e04066d656d6f727902000666696e69" + "7368003c0a5f5f646174615f656e6403010b5f5f686561705f6261736503020a8c2f02460002402000200147044020" + "02200341014100410010001a20004100480d01418b80c000410b2000ad1001000b200220032000ac10011a0f0b418b" + "80c000410b2000ac1001000bc22e020b7f017e23004190026b22002400419680c000412341014100410010001a2000" + "4100360260200041e0006a220241041002410441888ac000410a103b20004100360260200241041003410441928ac0" + "004110103b200041f8006a22054200370300200041f0006a22014200370300200041e8006a22064200370300200042" + "00370360200241201004412041a28ac0004110103b20004100360260200241041005410441b28ac0004108103b2000" + "41106a2208428182848890a0c08001370300200041186a2209428182848890a0c08001370300200041206a220a4281" + "82848890a0c080013703002000428182848890a0c0800137030841b980c000410e1006410141c780c0004111103b20" + "0041086a41201006410141c780c0004111103b418180202002411410072203411446044002402000412e6a200041e2" + "006a2d00003a0000200020002900673703e8012000200041ec006a2900003700ed01200020002f00603b012c200020" + "002903e8013703a801200020002900ed013700ad012000200028006336002f200041386a20002900ad013700002000" + "20002903a801370033200542003703002001420037030020064200370300200042003703602000412c6a2205411420" + "024120100822034120470d00200041c2006a20002d00623a0000200041f0016a2207200041ef006a290000220b3703" + "00200041cf006a200b370000200041d7006a200041f7006a290000370000200041df006a200041ff006a2d00003a00" + "00200020002f01603b01402000200028006336004320002000290067370047200041406b412041001009410141d880" + "c0004108103b2001410036020020064200370300200042003703604181802020024114100a411441ba8ac000410d10" + "3b20014100360200200642003703002000420037036041014181802020024114100b411441c78ac0004108103b0240" + "4100200041e4006a22046b410371220320046a220120044d0d0020030440200321060340200441003a000020044101" + "6a2104200641016b22060d000b0b200341016b4107490d000340200441003a0000200441076a41003a000020044106" + "6a41003a0000200441056a41003a0000200441046a41003a0000200441036a41003a0000200441026a41003a000020" + "0441016a41003a0000200441086a22042001470d000b0b2001413c20036b2203417c716a220420014b044003402001" + "4100360200200141046a22012004490d000b0b024020042003410371220320046a22064f0d00200322010440034020" + "0441003a0000200441016a2104200141016b22010d000b0b200341016b4107490d000340200441003a000020044107" + "6a41003a0000200441066a41003a0000200441056a41003a0000200441046a41003a0000200441036a41003a000020" + "0441026a41003a0000200441016a41003a0000200441086a22042006470d000b0b200041043602a001200041818020" + "360260200041f8016a2203410036020020074200370300200042003703e80120024104200041e8016a22014114100c" + "411441cf8ac0004108103b2003410036020020074200370300200042003703e801200220002802a00120014114100d" + "411441d78ac000410d103b2003410036020020074200370300200042003703e8014101200220002802a00120014114" + "100e411441e48ac0004108103b4189803c100f412041e080c000410a103b4189803c1010412041ea80c000410f103b" + "41014189803c1011412041f980c000410a103b200220002802a00110124120418381c0004110103b200220002802a0" + "0110134120419381c0004115103b4101200220002802a0011014412041a881c0004110103b200541141015411441b8" + "81c0004108103b20004180026a220642003703002003420037030020074200370300200042003703e8012002200028" + "02a001200141201016412041ec8ac000410b103b41c081c000410c41cc81c000410b41d781c000410e1017410141e5" + "81c0004109103b200041c0016a200a290300370300200041b8016a2009290300370300200041b0016a200829030037" + "0300200020002903083703a801200341003b010020074200370300200042003703e80120054114200041a8016a2204" + "4120200141121018411241f78ac0004107103b2003410036020020074200370300200042003703e801200441202001" + "41141019411441fe8ac000410a103b200041003602e8012004412020014104101a410441888bc0004109103b200441" + "20101b410841ee81c0004109103b20044120101c410a41f781c000410c103b200041003602e8012004412020014104" + "101d410441918bc000410a103b418382c000410d20054114101e4100419082c000410a103b418382c000410d419a82" + "c0004108101f410041a282c0004109103b418382c000410d41ab82c0004108101f410041b382c000410e103b417f41" + "041004417141c182c0004118103b200041003602e8012001417f10044171419b8bc0004118103b200041ea016a4100" + "3a0000200041003b01e801200141031004417d41b38bc000411e103b200041003602e8012001418094ebdc03100441" + "7341d18bc000411d103b4102100f416f41d982c0004119103b417f20002802a0011012417141f282c0004118103b20" + "02417f10124171418a83c0004118103b20024181081012417441a283c0004119103b200041e094ebdc036a22082000" + "2802a0011012417341bb83c0004118103b200642003703002003420037030020074200370300200042003703e80120" + "05411420084108200141201020417341ee8bc0004114103b2006420037030020034200370300200742003703002000" + "42003703e8012005411420054114200141201020417141828cc0004116103b20064200370300200342003703002007" + "4200370300200042003703e801200841082001412041001021417341988cc0004117103b2006420037030020034200" + "37030020074200370300200042003703e801200220002802a0012001412041001021417141af8cc0004120103b2008" + "20002802a00141011009417341d383c0004110103b200220002802a00141011009417141e383c0004112103b200642" + "003703002003420037030020074200370300200042003703e801200820002802a001200141201008417341cf8cc000" + "4116103b200642003703002003420037030020074200370300200042003703e801200220002802a001200141201008" + "417141e58cc0004118103b200642003703002003420037030020074200370300200042003703e80120054114200541" + "14200820002802a001200141201022417341fd8cc000411d103b200642003703002003420037030020074200370300" + "200042003703e8012005411420054114200220002802a0012001412010224171419a8dc000411f103b200642003703" + "002003420037030020074200370300200042003703e80141bb9bc0004114200820002802a001200141201023417341" + "b98dc0004115103b200642003703002003420037030020074200370300200042003703e80141bb9bc0004114200220" + "002802a001200141201023417141ce8dc000411b103b20064200370300200342003703002007420037030020004200" + "3703e80141bb9bc000411441f583c0004114200141201023417141e98dc0004125103b200642003703002003420037" + "030020074200370300200042003703e801418984c000412841bb9bc00041142001412010234171418e8ec000412110" + "3b200041dc016a2000413c6a280100360200200041d4016a200041346a2901003702002000200029012c3702cc0120" + "0041808080083602c801200041003b01e801200041c8016a2209411841bb9bc0004114200141021023417141af8ec0" + "00410a103b200820002802a001422a1001417341b184c0004111103b200041003b01e8014102200141021007416f41" + "b98ec0004117103b200041003b01e801410220014102100a416f41d08ec000411c103b200041003b01e80141014102" + "20014102100b416f41ec8ec0004117103b4102100f416f41d982c0004119103b41021010416f41c284c000411e103b" + "410141021011416f41e084c0004119103b41b980c0004181081006417441f984c000411f103b41b980c00041c10010" + "064174419885c000411a103b200041003b01e801200241810820014102100c417441838fc0004116103b200041003b" + "01e801200241810820014102100d417441998fc000411b103b200041003b01e8014101200241810820014102100e41" + "7441b48fc0004116103b20024181081012417441b285c000411e103b20024181081013417441d085c0004123103b41" + "0120024181081014417441f385c000411e103b200241812010154174419186c0004116103b418382c00041810841cc" + "81c000410b41d781c000410e1017417441e581c0004109103b418382c000410d41cc81c00041810841d781c000410e" + "1017417441e581c0004109103b418382c000410d41cc81c000410b41d781c0004181081017417441e581c000410910" + "3b200041003b01e8012002418108200141021016417441ca8fc0004119103b200041003b01e80141bb9bc000418108" + "41bb9bc0004114200141021023417441e38fc0004114103b200041003b01e801200541142005411420024181082001" + "41021024417441f78fc000411b103b200041003b01e8012009418108200541142001410210254174419290c000411e" + "103b418382c000410d200820002802a00141001000417341a786c000410f103b200042d487b6f4c7d4b1c0003700e0" + "01418382c000410d200041e095ebdc036a220441081026417341b686c0004116103b418382c000410d200820002802" + "a001101f417341cc86c0004113103b20044108200041e0016a220841081027417341df86c0004114103b2008410820" + "0441081027417341f386c0004114103b200041003b01e80120044108200841082001410241001028417341b090c000" + "4114103b200041003b01e80120084108200441082001410241001028417341c490c0004114103b200041003b01e801" + "20044108200841082001410241001029417341d890c0004114103b200041003b01e801200841082004410820014102" + "41001029417341ec90c0004114103b200041003b01e8012004410820084108200141024100102a4173418091c00041" + "15103b200041003b01e8012008410820044108200141024100102a4173419591c0004115103b200041003b01e80120" + "04410820084108200141024100102b417341aa91c0004114103b200041003b01e80120084108200441082001410241" + "00102b417341be91c0004114103b200041003b01e801200441084103200141024100102c417341d291c0004114103b" + "200041003b01e801200441084103200141024100102d417341e691c0004113103b2006420037030020034200370300" + "20074200370300200042003703e801200541142005411420014120102e417141f991c000411b103b20064200370300" + "2003420037030020074200370300200042003703e801200541142005411420014120102f4171419492c0004121103b" + "200642003703002003420037030020074200370300200042003703e8012005411420054114200141201030417141b5" + "92c000411e103b200642003703002003420037030020074200370300200042003703e8012005411420054114200141" + "201031417141d392c000411a103b200642003703002003420037030020074200370300200042003703e80120054114" + "20054114200141201032417141ed92c000411b103b2006420037030020034200370300200742003703002000420037" + "03e8012005411420054114200541142001412010334171418893c000411c103b200642003703002003420037030020" + "074200370300200042003703e8012005411420054114200141201034417141a493c0004128103b2006420037030020" + "03420037030020074200370300200042003703e8012005411420054114200141201035417141cc93c000411b103b20" + "0642003703002003420037030020074200370300200042003703e8012005411420054114200141201036417141e793" + "c000411a103b200220002802a001410010094171418787c000411b103b200041003b01e80120054114200220002802" + "a0012001410210184171418194c000411a103b200041003b01e801200220002802a0012001410210194171419b94c0" + "00411d103b200041003b01e801200220002802a00120014102101a417141b894c000411c103b200220002802a00110" + "1b417141a287c000411c103b200220002802a001101c417141be87c000411f103b200041003602e801200220002802" + "a00120014104101d417141d494c000411d103b200041003b01e801200220002802a001200141021008417141f194c0" + "004124103b200041808080083602e801200041003b018e02200220002802a001200141042000418e026a2203410210" + "204171419595c000411e103b200041003b018e02200220002802a00122062005411420022006200341021024417141" + "b395c0004124103b200041003b018e0220054114200220002802a001220620022006200341021024417141d795c000" + "4124103b200041003b018e02200220002802a00120054114200341021037417141fb95c0004122103b200041003b01" + "8e0220054114200220002802a0012003410210374171419d96c0004122103b200041003b018e02200220002802a001" + "20054114200341021038417141bf96c0004129103b200041003b018e0220054114200220002802a001200341021038" + "417141e896c0004129103b200041003b018e02200220002802a0012003410210394171419197c000411c103b200041" + "003b018e02200220002802a0012001410420034102102e417141ad97c000411f103b200041003b018e022002200028" + "02a0012005411441f583c0004114200341021022417141cc97c0004123103b200041003b018e022005411420022000" + "2802a00141f583c0004114200341021022417141ef97c0004123103b200041003b018e02200220002802a001200141" + "0420034102102f4171419298c0004125103b200041003b018e0220094118200220002802a001200341021025417141" + "b798c0004120103b200041003b018e02200220002802a00120014104200341021030417141d798c0004122103b2000" + "41003b018e02200220002802a00120014104200341021031417141f998c000411e103b200041003b018e0220022000" + "2802a001200141042003410210324171419799c000411f103b200041003b018e02200220002802a001200541142001" + "4104200341021033417141b699c0004121103b200041003b018e0220054114200220002802a0012001410420034102" + "1033417141d799c0004121103b200041003b018e02200220002802a00120014104200341021034417141f899c00041" + "2c103b200041003b018e02200220002802a00120034102103a417141a49ac0004120103b200041003b018e02200220" + "002802a00120014104200341021035417141c49ac000411f103b200041003b018e02200220002802a0012001410420" + "0341021036417141e39ac000411e103b200041003b018e02200220002802a00141dd87c00041202003410210184171" + "41819bc000411d103b418382c000410d200220002802a001101e417141fd87c0004120103b418396abdd03410d41dd" + "87c0004120410010004173419d88c0004110103b418396abdd03410d200841081026417341ad88c0004117103b4183" + "96abdd03410d20054114101e417341c488c0004115103b418396abdd03410d41ab82c0004108101f417341d988c000" + "4114103b200220002802a001200241810841001000417441ed88c000410e103b200241810842011001417441fb88c0" + "004112103b418382c0004181082008410810264174418d89c0004115103b418382c00041810820054114101e417441" + "a289c0004113103b418382c00041810841ab82c0004108101f417441b589c0004112103b418382c000410d20022000" + "2802a001101f417141c789c0004116103b200041003b018e02200220002802a001200541142003410210254171419e" + "9bc000411d103b418382c000410d200220002802a00141021000417141dd89c0004114103b4101410020054114101e" + "410041f189c0004117103b20004190026a240041010f0b0b418080c000410b417f20032003417f4e1bac1001000b0b" + "a61b0200418080c0000b89046572726f725f636f64653d54455354204641494c45442424242424205354415254494e" + "47205741534d20455845435554494f4e202424242424746573745f616d656e646d656e74616d656e646d656e745f65" + "6e61626c656463616368655f6c6574785f6172725f6c656e686f6d655f6c655f6172725f6c656e6c655f6172725f6c" + "656e74785f696e6e65725f6172725f6c656e686f6d655f6c655f696e6e65725f6172725f6c656e6c655f696e6e6572" + "5f6172725f6c656e7365745f6461746174657374206d65737361676574657374207075626b65797465737420736967" + "6e6174757265636865636b5f7369676e66745f666c6167736e66745f786665725f66656574657374696e6720747261" + "636574726163655f61636374400000000000005f74726163655f616d74400000000000000074726163655f616d745f" + "7a65726f706172656e745f6c6467725f686173685f6e65675f70747274785f6172725f6c656e5f696e76616c69645f" + "736669656c6474785f696e6e65725f6172725f6c656e5f6e65675f70747274785f696e6e65725f6172725f6c656e5f" + "6e65675f6c656e74785f696e6e65725f6172725f6c656e5f746f6f5f6c6f6e6774785f696e6e65725f6172725f6c65" + "6e5f7074725f6f6f6263616368655f6c655f7074725f6f6f6263616368655f6c655f77726f6e675f6c656e55534430" + "303030303030303030303030303030300041b184c0000b8a1774726163655f6e756d5f6f6f625f737472686f6d655f" + "6c655f6172725f6c656e5f696e76616c69645f736669656c646c655f6172725f6c656e5f696e76616c69645f736669" + "656c64616d656e646d656e745f656e61626c65645f746f6f5f6269675f736c696365616d656e646d656e745f656e61" + "626c65645f746f6f5f6c6f6e6774785f696e6e65725f6172725f6c656e5f746f6f5f6269675f736c696365686f6d65" + "5f6c655f696e6e65725f6172725f6c656e5f746f6f5f6269675f736c6963656c655f696e6e65725f6172725f6c656e" + "5f746f6f5f6269675f736c6963657365745f646174615f746f6f5f6269675f736c69636574726163655f6f6f625f73" + "6c69636574726163655f78666c6f61745f6f6f625f736c69636574726163655f616d745f6f6f625f736c696365666c" + "6f61745f636d705f6f6f625f736c69636531666c6f61745f636d705f6f6f625f736c6963653263616368655f6c655f" + "77726f6e675f73697a655f75696e743235366e66745f666c6167735f77726f6e675f73697a655f75696e743235366e" + "66745f786665725f6665655f77726f6e675f73697a655f75696e743235363030303030303030303030303030303030" + "30303030303030303030303030303174726163655f616363745f77726f6e675f73697a655f6163636f756e745f6964" + "74726163655f6f6f625f737472696e6774726163655f78666c6f61745f6f6f625f737472696e6774726163655f6163" + "63745f6f6f625f737472696e6774726163655f616d745f6f6f625f737472696e6774726163655f746f6f5f6c6f6e67" + "74726163655f6e756d5f746f6f5f6c6f6e6774726163655f78666c6f61745f746f6f5f6c6f6e6774726163655f6163" + "63745f746f6f5f6c6f6e6774726163655f616d745f746f6f5f6c6f6e6774726163655f616d745f77726f6e675f6c65" + "6e67746874726163655f696e76616c69645f61735f68657874726163655f616363745f636865636b5f646573796e63" + "6c6467725f696e646578706172656e745f6c6467725f74696d65706172656e745f6c6467725f68617368626173655f" + "666565686f6d655f6c655f6669656c646c655f6669656c6474785f696e6e6572686f6d655f6c655f696e6e65726c65" + "5f696e6e65727368613531325f68616c666e66745f7572696e66745f6973737565726e66745f7461786f6e6e66745f" + "73657269616c706172656e745f6c6467725f686173685f6e65675f6c656e706172656e745f6c6467725f686173685f" + "6275665f746f6f5f736d616c6c706172656e745f6c6467725f686173685f6c656e5f746f6f5f6c6f6e67636865636b" + "5f69645f6f6f625f6c656e5f753332636865636b5f69645f77726f6e675f6c656e5f753332666c6f61745f66726f6d" + "5f75696e745f6c656e5f6f6f62666c6f61745f66726f6d5f75696e745f77726f6e675f6c656e5f75696e7436346163" + "636f756e74726f6f745f69645f6c656e5f6f6f626163636f756e74726f6f745f69645f77726f6e675f6c656e747275" + "73746c696e655f69645f6c656e5f6f6f625f63757272656e637974727573746c696e655f69645f77726f6e675f6c65" + "6e5f63757272656e6379616d6d5f69645f6c656e5f6f6f625f617373657432616d6d5f69645f6c656e5f77726f6e67" + "5f6c656e5f617373657432616d6d5f69645f6c656e5f77726f6e675f6e6f6e5f7872705f63757272656e63795f6c65" + "6e616d6d5f69645f6c656e5f77726f6e675f7872705f63757272656e63795f6c656e616d6d5f69645f6d707474785f" + "6669656c645f696e76616c69645f736669656c64686f6d655f6c655f6669656c645f696e76616c69645f736669656c" + "646c655f6669656c645f696e76616c69645f736669656c6474785f696e6e65725f746f6f5f6269675f736c69636568" + "6f6d655f6c655f696e6e65725f746f6f5f6269675f736c6963656c655f696e6e65725f746f6f5f6269675f736c6963" + "657368613531325f68616c665f746f6f5f6269675f736c696365616d6d5f69645f746f6f5f6269675f736c69636563" + "726564656e7469616c5f69645f746f6f5f6269675f736c6963656d70746f6b656e5f69645f746f6f5f6269675f736c" + "6963655f6d70746964666c6f61745f6164645f6f6f625f736c69636531666c6f61745f6164645f6f6f625f736c6963" + "6532666c6f61745f7375625f6f6f625f736c69636531666c6f61745f7375625f6f6f625f736c69636532666c6f6174" + "5f6d756c745f6f6f625f736c69636531666c6f61745f6d756c745f6f6f625f736c69636532666c6f61745f6469765f" + "6f6f625f736c69636531666c6f61745f6469765f6f6f625f736c69636532666c6f61745f726f6f745f6f6f625f736c" + "696365666c6f61745f706f775f6f6f625f736c696365657363726f775f69645f77726f6e675f73697a655f75696e74" + "33326d70745f69737375616e63655f69645f77726f6e675f73697a655f75696e7433326e66745f6f666665725f6964" + "5f77726f6e675f73697a655f75696e7433326f666665725f69645f77726f6e675f73697a655f75696e7433326f7261" + "636c655f69645f77726f6e675f73697a655f75696e7433327061796368616e5f69645f77726f6e675f73697a655f75" + "696e7433327065726d697373696f6e65645f646f6d61696e5f69645f77726f6e675f73697a655f75696e7433327469" + "636b65745f69645f77726f6e675f73697a655f75696e7433327661756c745f69645f77726f6e675f73697a655f7569" + "6e7433326e66745f7572695f77726f6e675f73697a655f75696e743235366e66745f6973737565725f77726f6e675f" + "73697a655f75696e743235366e66745f7461786f6e5f77726f6e675f73697a655f75696e743235366e66745f736572" + "69616c5f77726f6e675f73697a655f75696e743235366163636f756e74726f6f745f69645f77726f6e675f73697a65" + "5f6163636f756e745f6964636865636b5f69645f77726f6e675f73697a655f6163636f756e745f696463726564656e" + "7469616c5f69645f77726f6e675f73697a655f6163636f756e745f69643163726564656e7469616c5f69645f77726f" + "6e675f73697a655f6163636f756e745f69643264656c65676174655f69645f77726f6e675f73697a655f6163636f75" + "6e745f69643164656c65676174655f69645f77726f6e675f73697a655f6163636f756e745f6964326465706f736974" + "5f707265617574685f69645f77726f6e675f73697a655f6163636f756e745f6964316465706f7369745f7072656175" + "74685f69645f77726f6e675f73697a655f6163636f756e745f6964326469645f69645f77726f6e675f73697a655f61" + "63636f756e745f6964657363726f775f69645f77726f6e675f73697a655f6163636f756e745f696474727573746c69" + "6e655f69645f77726f6e675f73697a655f6163636f756e745f69643174727573746c696e655f69645f77726f6e675f" + "73697a655f6163636f756e745f6964326d70745f69737375616e63655f69645f77726f6e675f73697a655f6163636f" + "756e745f69646d70746f6b656e5f69645f77726f6e675f73697a655f6163636f756e745f69646e66745f6f66666572" + "5f69645f77726f6e675f73697a655f6163636f756e745f69646f666665725f69645f77726f6e675f73697a655f6163" + "636f756e745f69646f7261636c655f69645f77726f6e675f73697a655f6163636f756e745f69647061796368616e5f" + "69645f77726f6e675f73697a655f6163636f756e745f6964317061796368616e5f69645f77726f6e675f73697a655f" + "6163636f756e745f6964327065726d697373696f6e65645f646f6d61696e5f69645f77726f6e675f73697a655f6163" + "636f756e745f69647369676e6572735f69645f77726f6e675f73697a655f6163636f756e745f69647469636b65745f" + "69645f77726f6e675f73697a655f6163636f756e745f69647661756c745f69645f77726f6e675f73697a655f616363" + "6f756e745f69646e66745f7572695f77726f6e675f73697a655f6163636f756e745f69646d70746f6b656e5f69645f" + "6d707469645f77726f6e675f6c656e677468004d0970726f64756365727302086c616e677561676501045275737400" + "0c70726f6365737365642d6279010572757374631d312e38372e30202831373036376539616320323032352d30352d" + "303929002c0f7461726765745f6665617475726573022b0f6d757461626c652d676c6f62616c732b087369676e2d65" + "7874"; extern std::string const kFloatTestsWasmHex = "0061736d0100000001490960057f7f7f7f7f017f60077f7f7f7f7f7f7f017f60067f7f7f7f7f7f017f60047e7f7f7f" - "017f60057e7f7f7f7f017f60047f7f7f7f017f60037f7f7e017f60037f7f7f006000017f02fa021008686f73745f6c" + "017f60057e7f7f7f7f017f60047f7f7f7f017f60037f7f7e017f60037f7f7f006000017f02ea021008686f73745f6c" "6962057472616365000008686f73745f6c69620e666c6f61745f66726f6d5f696e74000308686f73745f6c69620f66" "6c6f61745f66726f6d5f75696e74000003656e7613666c6f61745f66726f6d5f6d616e745f657870000408686f7374" - "5f6c69620d666c6f61745f636f6d70617265000508686f73745f6c696209666c6f61745f616464000108686f73745f" - "6c69620e666c6f61745f7375627472616374000108686f73745f6c69620e666c6f61745f6d756c7469706c79000108" - "686f73745f6c69620c666c6f61745f646976696465000108686f73745f6c696209666c6f61745f706f77000208686f" - "73745f6c69620974726163655f6e756d000608686f73745f6c69620a666c6f61745f726f6f74000203656e760c666c" - "6f61745f746f5f696e74000003656e7611666c6f61745f746f5f6d616e745f657870000203656e7613666c6f61745f" - "66726f6d5f7374616d6f756e74000003656e7613666c6f61745f66726f6d5f73746e756d6265720000030302070805" - "030100110619037f01418080c0000b7f0041b49ac0000b7f0041c09ac0000b072e04066d656d6f727902000666696e" - "69736800110a5f5f646174615f656e6403010b5f5f686561705f6261736503020ab621021f00200020014101410041" - "0010001a418080c00041022002410c410110001a0b9321020c7f017e230041f0006b22002400418280c000411d4101" - "4100410010001a200041e8006a4100360200200042003703600240428ce000200041e0006a2203410c410010012201" - "410c460440419f80c00041172003101041b680c000411e2003410c410110001a0c010b41d480c000411e4101410041" - "0010001a0b2000428ce0003703500240200041d0006a4108200041e0006a2203410c41001002410c4604402001410c" - "46210741f280c0004117200310100c010b418981c000411e41014100410010001a0b024042fb004102200041e0006a" - "2201410c41001003410c46044041a781c0004121200110100c010b41c881c000412641014100410010001a41002107" - "0b41ee81c0004115418382c0001010418f82c000411641a582c000101041b182c000411b41014100410010001a2000" - "41e8006a41003602002000420037036002404201200041e0006a2203410c410010012201410c46044041cc82c00041" - "0f200310100c010b41db82c000411641014100410010001a0b027f200041e0006a410c418382c000410c1004450440" - "41f182c000411b41014100410010001a2001410c460c010b418c83c000412341014100410010001a41000b21080240" - "200041e0006a410c41a582c000410c1004410146044041af83c000412341014100410010001a0c010b4100210841d2" - "83c000412c41014100410010001a0b024041a582c000410c200041e0006a410c1004410246044041fe83c000412341" - "014100410010001a0c010b4100210841a184c000412c41014100410010001a0b41cd84c00041204101410041001000" - "1a200041d8006a418b82c0002800003602002000418382c000290000370350410921040340200041d0006a2201410c" - "418382c000410c2001410c410010051a200441016b22040d000b200041e8006a410036020020004200370360420a20" - "0041e0006a410c41001001410c46220945044041ed84c000411741014100410010001a0b0240200041e0006a410c20" - "0041d0006a410c1004450440418485c000411441014100410010001a0c010b41002109419885c00041164101410041" - "0010001a0b410b21040340200041d0006a2201410c418382c000410c2001410c410010061a200441016b22040d000b" - "02402001410c41a582c000410c100445044041ae85c000411941014100410010001a0c010b4100210941c785c00041" - "1b41014100410010001a0b41e285c000412341014100410010001a200041106a410036020020004200370308420a20" - "0041086a410c410010011a200041206a418b82c0002800003602002000418382c00029000037031841062104034020" - "0041186a2201410c200041086a410c2001410c410010071a200441016b22040d000b200041d8006a41003602002000" - "420037035042c0843d200041d0006a2203410c410010011a02402003410c2001410c10042201450440418586c00041" - "1941014100410010001a0c010b419e86c000411b41014100410010001a0b200145210a410721040340200041186a22" - "01410c200041086a410c2001410c410010081a200441016b22040d000b200041e8006a410036020020004200370360" - "4201417f200041e0006a2203410c410010031a02402001410c2003410c100445044041b986c0004117410141004100" - "10001a0c010b41d086c000411941014100410010001a4100210a0b41e986c000411741014100410010001a20004120" - "6a2204410036020020004200370318418382c000410c4103200041186a2205410c410010091a418087c00041122005" - "101041a582c000410c41062005410c410010091a419287c000411820051010200041d8006a22014100360200200042" - "003703504209200041d0006a2202410c410010011a2002410c41022005410c410010091a41aa87c000411420051010" - "2002410c41002005410c410010091a41be87c000411720051010200041e8006a220341003602002000420037036042" - "00200041e0006a2206410c410010011a2006410c41022005410c410010091a41d587c00041142005101041e987c000" - "41382006410c41002005410c41001009ac100a1a41a188c000411841014100410010001a2004410036020020004200" - "37031842092005410c410010011a20014100360200200042003703502005410c41022002410c4100100b1a41b988c0" - "004112200210102005410c41032002410c4100100b1a41cb88c0004112200210102003410036020020004200370360" - "42c0843d2006410c410010011a2006410c41032002410c4100100b1a41dd88c0004118200210102006410c41062002" - "410c4100100b1a41f588c000411c20021010419189c000411a41014100410010001a20014100360200200042003703" - "502003410036020020004200370360420a2006410c410010011a418382c000410c2006410c2002410c410010081a41" - "ab89c000411920021010418382c000410c2002410c2002410c410010081a41c489c000410f2002101002402006410c" - "2002410c1004220b45044041d389c000411441014100410010001a0c010b41e789c000411641014100410010001a0b" - "4100210141fd89c000411a41014100410010001a200042003703080240418382c000410c200041086a41084100100c" - "220341084604402000290308220c42015104404101210141978ac000411741014100410010001a0c020b41ae8ac000" - "411941014100410010001a41c78ac0004108200c100a1a0c010b41cf8ac000412441014100410010001a41f38ac000" - "410f2003ac100a1a0b41002104024041a582c000410c200041086a41084100100c220341084604402000290308220c" - "427f51044041828bc000411841014100410010001a200121040c020b419a8bc000411a41014100410010001a41c78a" - "c0004108200c100a1a0c010b41b48bc000412541014100410010001a41f38ac000410f2003ac100a1a0b4100210120" - "0041206a41003602002000420037031842ffffffffffffffffff00200041186a2203410c410010011a02402003410c" - "200041086a41084100100c220341084604402000290308220c42ffffffffffffffffff0051044041d98bc000411e41" - "014100410010001a200421010c020b41f78bc000412041014100410010001a41978cc000410d42ffffffffffffffff" - "ff00100a1a41c78ac0004108200c100a1a0c010b41a48cc000412b41014100410010001a41f38ac000410f2003ac10" - "0a1a0b41002103200041d8006a4100360200200042003703504200200041d0006a2204410c410010011a0240200441" - "0c200041086a41084100100c220441084604402000290308220c50044041cf8cc000411741014100410010001a2001" - "21030c020b41e68cc000411941014100410010001a41c78ac0004108200c100a1a0c010b41ff8cc000412441014100" - "410010001a41f38ac000410f2004ac100a1a0b41002104200041e8006a4100360200200042003703604201417f2000" - "41e0006a2201410c410010031a02402001410c200041086a41084100100c220141084604402000290308220c500440" - "41a38dc000412541014100410010001a200321040c020b41c88dc000412741014100410010001a41c78ac000410820" - "0c100a1a0c010b41ef8dc000413241014100410010001a41f38ac000410f2001ac100a1a0b0240200041e0006a410c" - "200041086a41084101100c220141084604402000290308220c50044041a18ec000412741014100410010001a0c020b" - "4100210441c88ec000412941014100410010001a41c78ac0004108200c100a1a0c010b4100210441f18ec000413441" - "014100410010001a41f38ac000410f2001ac100a1a0b4100210141a58fc000412c41014100410010001a2000420037" - "0328200041003602340240418382c000410c200041286a4108200041346a4104100d2203410c460440200028023422" - "03416e462000290328220c42808090bbbad6adf00d517145044041fa8fc000412b41014100410010001a41a590c000" - "412f200c100a1a41d490c000411f2003ac100a1a0c020b4101210141d18fc000412941014100410010001a0c010b41" - "f390c000413641014100410010001a41f38ac000410f2003ac100a1a0b200042003703384100210320004100360244" - "024041a582c000410c200041386a4108200041c4006a4104100d2202410c46044020002802442202416e4620002903" - "38220c428080f0c4c5a9d28f72517145044041d391c000412c41014100410010001a41ff91c0004130200c100a1a41" - "d490c000411f2002ac100a1a0c020b41a991c000412a41014100410010001a200121030c010b41af92c00041374101" - "4100410010001a41f38ac000410f2002ac100a1a0b41002101200041d8006a410036020020004200370350420a2000" - "41d0006a2202410c410010011a200042003703082000410036024802402002410c200041086a4108200041c8006a41" - "04100d2202410c46044020002802482202416f462000290308220c42808090bbbad6adf00d5171450440419093c000" - "412c41014100410010001a41a590c000412f200c100a1a41bc93c000411f2002ac100a1a0c020b41e692c000412a41" - "014100410010001a200321010c010b41db93c000413741014100410010001a41f38ac000410f2002ac100a1a0b4100" - "2103200041e8006a4100360200200042003703604200200041e0006a2202410c410010011a20004200370318200041" - "0036024c02402002410c200041186a4108200041cc006a4104100d2202410c4604402000290318220c50200028024c" - "2202418080808078467145044041bb94c000412b41014100410010001a41e694c000411d200c100a1a418395c00041" - "272002ac100a1a0c020b419294c000412941014100410010001a200121030c010b41aa95c000413641014100410010" - "001a41f38ac000410f2002ac100a1a0b4100210141e095c000412141014100410010001a200042c0808080d0a0fdf0" - "00370018200041e8006a41003602002000420037036002400240200041186a4108200041e0006a2205410c4100100e" - "2202410c460440418196c000412220051010200042003703502005410c200041d0006a41084100100c22024108470d" - "012000290350220c4280c2d72f5104404101210141a396c000411d41014100410010001a0c030b41c096c000411f41" - "014100410010001a41df96c000411c200c100a1a0c020b41af97c000411f41014100410010001a41ce97c000411020" - "02ac100a1a0c010b41fb96c000413441014100410010001a41f38ac000410f2002ac100a1a0b4100210241de97c000" - "412141014100410010001a200041ffffff8f7f36005820004281eceedce494ccf9c000370050200041e8006a410036" - "02002000420037036002400240200041d0006a410c200041e0006a2206410c4100100f2205410c46044041ff97c000" - "411c20061010200042003703182006410c200041186a41084100100c22054108470d012000290318220c42fb005104" - "4041012102419b98c000411b41014100410010001a0c030b41b698c000411d41014100410010001a41d398c0004116" - "200c100a1a0c020b419b99c000411d41014100410010001a41ce97c00041102005ac100a1a0c010b41e998c0004132" - "41014100410010001a41f38ac000410f2005ac100a1a0b410021050240418382c000410c200041e0006a2206410c41" - "00100f410c46044041b899c000411a200610102006410c418382c000410c100445044041d299c00041204101410041" - "0010001a200221050c020b41f299c000412241014100410010001a0c010b41949ac000412041014100410010001a0b" - "200041f0006a2400200b452007200871200971200a71200471200371200171200571710b0bbe1a0100418080c0000b" - "b41a20200a24242420746573745f666c6f61745f66726f6d5f7761736d202424242020666c6f61742066726f6d2069" - "36342031323330303a2020666c6f61742066726f6d20693634203132333030206173204845583a2020666c6f617420" - "66726f6d206936342031323330303a206661696c65642020666c6f61742066726f6d207536342031323330303a2020" - "666c6f61742066726f6d207536342031323330303a206661696c65642020666c6f61742066726f6d2065787020322c" - "206d616e7469737361203132333a2020666c6f61742066726f6d2065787020322c206d616e746973736120333a2066" - "61696c65642020666c6f61742066726f6d20636f6e737420313a0de0b6b3a7640000ffffffee2020666c6f61742066" - "726f6d20636f6e7374202d313af21f494c589c0000ffffffee0a24242420746573745f666c6f61745f636f6d706172" - "65202424242020666c6f61742066726f6d20313a2020666c6f61742066726f6d20313a206661696c65642020666c6f" - "61742066726f6d2031203d3d20464c4f41545f4f4e452020666c6f61742066726f6d203120213d20464c4f41545f4f" - "4e452c206661696c65642020666c6f61742066726f6d2031203e20464c4f41545f4e454741544956455f4f4e452020" - "666c6f61742066726f6d203120213e20464c4f41545f4e454741544956455f4f4e452c206661696c65642020464c4f" - "41545f4e454741544956455f4f4e45203c20666c6f61742066726f6d20312020464c4f41545f4e454741544956455f" - "4f4e4520213c20666c6f61742066726f6d20312c206661696c65640a24242420746573745f666c6f61745f6164645f" - "7375627472616374202424242020666c6f61742066726f6d2031303a206661696c6564202072657065617465642061" - "64643a20676f6f6420207265706561746564206164643a206661696c65642020726570656174656420737562747261" - "63743a20676f6f64202072657065617465642073756274726163743a206661696c65640a24242420746573745f666c" - "6f61745f6d756c7469706c795f6469766964652024242420207265706561746564206d756c7469706c793a20676f6f" - "6420207265706561746564206d756c7469706c793a206661696c656420207265706561746564206469766964653a20" - "676f6f6420207265706561746564206469766964653a206661696c65640a24242420746573745f666c6f61745f706f" - "77202424242020666c6f61742063756265206f6620313a2020666c6f61742036746820706f776572206f66202d313a" - "2020666c6f617420737175617265206f6620393a2020666c6f61742030746820706f776572206f6620393a2020666c" - "6f617420737175617265206f6620303a2020666c6f61742030746820706f776572206f662030202865787065637469" - "6e6720494e56414c49445f504152414d53206572726f72293a0a24242420746573745f666c6f61745f726f6f742024" - "24242020666c6f61742073717274206f6620393a2020666c6f61742063627274206f6620393a2020666c6f61742063" - "627274206f6620313030303030303a2020666c6f61742036746820726f6f74206f6620313030303030303a0a242424" - "20746573745f666c6f61745f696e76657274202424242020696e76657274206120666c6f61742066726f6d2031303a" - "2020696e7665727420616761696e3a2020696e766572742074776963653a20676f6f642020696e7665727420747769" - "63653a206661696c65640a24242420746573745f666c6f61745f746f5f696e74202424242020666c6f61745f746f5f" - "696e742831293a20676f6f642020666c6f61745f746f5f696e742831293a206661696c656420202020676f743a2020" - "666c6f61745f746f5f696e742831293a206661696c65642077697468206572726f72202020206572726f7220636f64" - "653a2020666c6f61745f746f5f696e74282d31293a20676f6f642020666c6f61745f746f5f696e74282d31293a2066" - "61696c65642020666c6f61745f746f5f696e74282d31293a206661696c65642077697468206572726f722020666c6f" - "61745f746f5f696e74286936343a3a4d4158293a20676f6f642020666c6f61745f746f5f696e74286936343a3a4d41" - "58293a206661696c65642020202065787065637465643a2020666c6f61745f746f5f696e74286936343a3a4d415829" - "3a206661696c65642077697468206572726f722020666c6f61745f746f5f696e742830293a20676f6f642020666c6f" - "61745f746f5f696e742830293a206661696c65642020666c6f61745f746f5f696e742830293a206661696c65642077" - "697468206572726f722020666c6f61745f746f5f696e7428302e312c20746f5f6e656172657374293a20676f6f6420" - "20666c6f61745f746f5f696e7428302e312c20746f5f6e656172657374293a206661696c65642020666c6f61745f74" - "6f5f696e7428302e312c20746f5f6e656172657374293a206661696c65642077697468206572726f722020666c6f61" - "745f746f5f696e7428302e312c20746f77617264735f7a65726f293a20676f6f642020666c6f61745f746f5f696e74" - "28302e312c20746f77617264735f7a65726f293a206661696c65642020666c6f61745f746f5f696e7428302e312c20" - "746f77617264735f7a65726f293a206661696c65642077697468206572726f720a24242420746573745f666c6f6174" - "5f746f5f6d616e74697373615f616e645f6578706f6e656e74202424242020666c6f61745f746f5f6d616e74697373" - "615f616e645f6578706f6e656e742831293a20676f6f642020666c6f61745f746f5f6d616e74697373615f616e645f" - "6578706f6e656e742831293a206661696c6564202020206578706563746564206d616e746973736120313030303030" - "303030303030303030303030302c20676f743a202020206578706563746564206578706f6e656e74202d31382c2067" - "6f743a2020666c6f61745f746f5f6d616e74697373615f616e645f6578706f6e656e742831293a206661696c656420" - "77697468206572726f722020666c6f61745f746f5f6d616e74697373615f616e645f6578706f6e656e74282d31293a" - "20676f6f642020666c6f61745f746f5f6d616e74697373615f616e645f6578706f6e656e74282d31293a206661696c" - "6564202020206578706563746564206d616e7469737361202d313030303030303030303030303030303030302c2067" - "6f743a2020666c6f61745f746f5f6d616e74697373615f616e645f6578706f6e656e74282d31293a206661696c6564" - "2077697468206572726f722020666c6f61745f746f5f6d616e74697373615f616e645f6578706f6e656e7428313029" - "3a20676f6f642020666c6f61745f746f5f6d616e74697373615f616e645f6578706f6e656e74283130293a20666169" - "6c6564202020206578706563746564206578706f6e656e74202d31372c20676f743a2020666c6f61745f746f5f6d61" - "6e74697373615f616e645f6578706f6e656e74283130293a206661696c65642077697468206572726f722020666c6f" - "61745f746f5f6d616e74697373615f616e645f6578706f6e656e742830293a20676f6f642020666c6f61745f746f5f" - "6d616e74697373615f616e645f6578706f6e656e742830293a206661696c6564202020206578706563746564206d61" - "6e746973736120302c20676f743a202020206578706563746564206578706f6e656e74202d32313437343833363438" - "2c20676f743a2020666c6f61745f746f5f6d616e74697373615f616e645f6578706f6e656e742830293a206661696c" - "65642077697468206572726f720a24242420746573745f666c6f61745f66726f6d5f7374616d6f756e742024242420" - "20666c6f61742066726f6d2058525020616d6f756e74202831303020585250293a202058525020616d6f756e742063" - "6f6e76657273696f6e3a20676f6f64202058525020616d6f756e7420636f6e76657273696f6e3a206661696c656420" - "2020206578706563746564203130303030303030302c20676f743a202058525020616d6f756e7420636f6e76657273" - "696f6e3a206661696c6564202d20666c6f61745f746f5f696e74206572726f722020666c6f61742066726f6d205852" - "5020616d6f756e743a206661696c656420202020726573756c745f73697a653a0a24242420746573745f666c6f6174" - "5f66726f6d5f73746e756d626572202424242020666c6f61742066726f6d2053544e756d6265722028313233293a20" - "2053544e756d62657220636f6e76657273696f6e3a20676f6f64202053544e756d62657220636f6e76657273696f6e" - "3a206661696c6564202020206578706563746564203132332c20676f743a202053544e756d62657220636f6e766572" - "73696f6e3a206661696c6564202d20666c6f61745f746f5f696e74206572726f722020666c6f61742066726f6d2053" - "544e756d6265723a206661696c65642020666c6f61742066726f6d2053544e756d626572202831293a202053544e75" - "6d626572283129203d3d20464c4f41545f4f4e453a20676f6f64202053544e756d626572283129203d3d20464c4f41" - "545f4f4e453a206661696c65642020666c6f61742066726f6d2053544e756d6265722831293a206661696c6564004d" - "0970726f64756365727302086c616e6775616765010452757374000c70726f6365737365642d627901057275737463" - "1d312e38392e30202832393438333838336520323032352d30382d303429002c0f7461726765745f66656174757265" - "73022b0f6d757461626c652d676c6f62616c732b087369676e2d657874"; + "5f6c696209666c6f61745f636d70000508686f73745f6c696209666c6f61745f616464000108686f73745f6c696209" + "666c6f61745f737562000108686f73745f6c69620a666c6f61745f6d756c74000108686f73745f6c696209666c6f61" + "745f646976000108686f73745f6c696209666c6f61745f706f77000208686f73745f6c69620974726163655f6e756d" + "000608686f73745f6c69620a666c6f61745f726f6f74000203656e760c666c6f61745f746f5f696e74000003656e76" + "11666c6f61745f746f5f6d616e745f657870000203656e7613666c6f61745f66726f6d5f7374616d6f756e74000003" + "656e7613666c6f61745f66726f6d5f73746e756d6265720000030302070805030100110619037f01418080c0000b7f" + "00418599c0000b7f00419099c0000b072e04066d656d6f727902000666696e69736800110a5f5f646174615f656e64" + "03010b5f5f686561705f6261736503020ab621021f002000200141014100410010001a418080c00041022002410c41" + "0110001a0b9321020c7f017e230041f0006b22002400418280c000411d41014100410010001a200041e8006a410036" + "0200200042003703600240428ce000200041e0006a2203410c410010012201410c460440419f80c000411720031010" + "41b680c000411e2003410c410110001a0c010b41d480c000411e41014100410010001a0b2000428ce0003703500240" + "200041d0006a4108200041e0006a2203410c41001002410c4604402001410c46210741f280c0004117200310100c01" + "0b418981c000411e41014100410010001a0b024042fb004102200041e0006a2201410c41001003410c46044041a781" + "c0004121200110100c010b41c881c000412841014100410010001a410021070b41f081c0004115418582c000101041" + "9182c000411641a782c000101041b382c000411741014100410010001a200041e8006a410036020020004200370360" + "02404201200041e0006a2203410c410010012201410c46044041ca82c000410f200310100c010b41d982c000411641" + "014100410010001a0b027f200041e0006a410c418582c000410c100445044041ef82c000411b41014100410010001a" + "2001410c460c010b418a83c000412341014100410010001a41000b21080240200041e0006a410c41a782c000410c10" + "04410146044041ad83c000412341014100410010001a0c010b4100210841d083c000412c41014100410010001a0b02" + "4041a782c000410c200041e0006a410c1004410246044041fc83c000412341014100410010001a0c010b4100210841" + "9f84c000412c41014100410010001a0b41cb84c000412041014100410010001a200041d8006a418d82c00028000036" + "02002000418582c000290000370350410921040340200041d0006a2201410c418582c000410c2001410c410010051a" + "200441016b22040d000b200041e8006a410036020020004200370360420a200041e0006a410c41001001410c462209" + "45044041eb84c000411741014100410010001a0b0240200041e0006a410c200041d0006a410c1004450440418285c0" + "00411441014100410010001a0c010b41002109419685c000411641014100410010001a0b410b21040340200041d000" + "6a2201410c418582c000410c2001410c410010061a200441016b22040d000b02402001410c41a782c000410c100445" + "044041ac85c000411941014100410010001a0c010b4100210941c585c000411b41014100410010001a0b41e085c000" + "411f41014100410010001a200041106a410036020020004200370308420a200041086a410c410010011a200041206a" + "418d82c0002800003602002000418582c000290000370318410621040340200041186a2201410c200041086a410c20" + "01410c410010071a200441016b22040d000b200041d8006a41003602002000420037035042c0843d200041d0006a22" + "03410c410010011a02402003410c2001410c1004220145044041ff85c000411941014100410010001a0c010b419886" + "c000411b41014100410010001a0b200145210a410721040340200041186a2201410c200041086a410c2001410c4100" + "10081a200441016b22040d000b200041e8006a4100360200200042003703604201417f200041e0006a2203410c4100" + "10031a02402001410c2003410c100445044041b386c000411741014100410010001a0c010b41ca86c0004119410141" + "00410010001a4100210a0b41e386c000411741014100410010001a200041206a220441003602002000420037031841" + "8582c000410c4103200041186a2205410c410010091a41fa86c00041122005101041a782c000410c41062005410c41" + "0010091a418c87c000411820051010200041d8006a22014100360200200042003703504209200041d0006a2202410c" + "410010011a2002410c41022005410c410010091a41a487c0004114200510102002410c41002005410c410010091a41" + "b887c000411720051010200041e8006a22034100360200200042003703604200200041e0006a2206410c410010011a" + "2006410c41022005410c410010091a41cf87c00041142005101041e387c00041382006410c41002005410c41001009" + "ac100a1a419b88c000411841014100410010001a200441003602002000420037031842092005410c410010011a2001" + "4100360200200042003703502005410c41022002410c4100100b1a41b388c0004112200210102005410c4103200241" + "0c4100100b1a41c588c000411220021010200341003602002000420037036042c0843d2006410c410010011a200641" + "0c41032002410c4100100b1a41d788c0004118200210102006410c41062002410c4100100b1a41ef88c000411c2002" + "1010418b89c000411a41014100410010001a2001410036020020004200370350200341003602002000420037036042" + "0a2006410c410010011a418582c000410c2006410c2002410c410010081a41a589c000411920021010418582c00041" + "0c2002410c2002410c410010081a41be89c000410f2002101002402006410c2002410c1004220b45044041cd89c000" + "411441014100410010001a0c010b41e189c000411641014100410010001a0b4100210141f789c000411a4101410041" + "0010001a200042003703080240418582c000410c200041086a41084100100c220341084604402000290308220c4201" + "5104404101210141918ac000411741014100410010001a0c020b41a88ac000411941014100410010001a41c18ac000" + "4108200c100a1a0c010b41c98ac000412441014100410010001a41ed8ac000410f2003ac100a1a0b41002104024041" + "a782c000410c200041086a41084100100c220341084604402000290308220c427f51044041fc8ac000411841014100" + "410010001a200121040c020b41948bc000411a41014100410010001a41c18ac0004108200c100a1a0c010b41ae8bc0" + "00412541014100410010001a41ed8ac000410f2003ac100a1a0b41002101200041206a410036020020004200370318" + "42ffffffffffffffffff00200041186a2203410c410010011a02402003410c200041086a41084100100c2203410846" + "04402000290308220c42ffffffffffffffffff0051044041d38bc000411e41014100410010001a200421010c020b41" + "f18bc000412041014100410010001a41918cc000410d42ffffffffffffffffff00100a1a41c18ac0004108200c100a" + "1a0c010b419e8cc000412b41014100410010001a41ed8ac000410f2003ac100a1a0b41002103200041d8006a410036" + "0200200042003703504200200041d0006a2204410c410010011a02402004410c200041086a41084100100c22044108" + "4604402000290308220c50044041c98cc000411741014100410010001a200121030c020b41e08cc000411941014100" + "410010001a41c18ac0004108200c100a1a0c010b41f98cc000412441014100410010001a41ed8ac000410f2004ac10" + "0a1a0b41002104200041e8006a4100360200200042003703604201417f200041e0006a2201410c410010031a024020" + "01410c200041086a41084100100c220141084604402000290308220c500440419d8dc000412541014100410010001a" + "200321040c020b41c28dc000412741014100410010001a41c18ac0004108200c100a1a0c010b41e98dc00041324101" + "4100410010001a41ed8ac000410f2001ac100a1a0b0240200041e0006a410c200041086a41084101100c2201410846" + "04402000290308220c500440419b8ec000412741014100410010001a0c020b4100210441c28ec00041294101410041" + "0010001a41c18ac0004108200c100a1a0c010b4100210441eb8ec000413441014100410010001a41ed8ac000410f20" + "01ac100a1a0b41002101419f8fc000411f41014100410010001a20004200370328200041003602340240418582c000" + "410c200041286a4108200041346a4104100d2203410c46044020002802342203416e462000290328220c42808090bb" + "bad6adf00d517145044041da8fc000411e41014100410010001a41f88fc000412f200c100a1a41a790c000411f2003" + "ac100a1a0c020b4101210141be8fc000411c41014100410010001a0c010b41c690c000412941014100410010001a41" + "ed8ac000410f2003ac100a1a0b200042003703384100210320004100360244024041a782c000410c200041386a4108" + "200041c4006a4104100d2202410c46044020002802442202416e462000290338220c428080f0c4c5a9d28f72517145" + "0440418c91c000411f41014100410010001a41ab91c0004130200c100a1a41a790c000411f2002ac100a1a0c020b41" + "ef90c000411d41014100410010001a200121030c010b41db91c000412a41014100410010001a41ed8ac000410f2002" + "ac100a1a0b41002101200041d8006a410036020020004200370350420a200041d0006a2202410c410010011a200042" + "003703082000410036024802402002410c200041086a4108200041c8006a4104100d2202410c460440200028024822" + "02416f462000290308220c42808090bbbad6adf00d517145044041a292c000411f41014100410010001a41f88fc000" + "412f200c100a1a41c192c000411f2002ac100a1a0c020b418592c000411d41014100410010001a200321010c010b41" + "e092c000412a41014100410010001a41ed8ac000410f2002ac100a1a0b41002103200041e8006a4100360200200042" + "003703604200200041e0006a2202410c410010011a200042003703182000410036024c02402002410c200041186a41" + "08200041cc006a4104100d2202410c4604402000290318220c50200028024c2202418080808078467145044041a693" + "c000411e41014100410010001a41c493c000411d200c100a1a41e193c00041272002ac100a1a0c020b418a93c00041" + "1c41014100410010001a200121030c010b418894c000412941014100410010001a41ed8ac000410f2002ac100a1a0b" + "4100210141b194c000412141014100410010001a200042c0808080d0a0fdf000370018200041e8006a410036020020" + "00420037036002400240200041186a4108200041e0006a2205410c4100100e2202410c46044041d294c00041222005" + "1010200042003703502005410c200041d0006a41084100100c22024108470d012000290350220c4280c2d72f510440" + "4101210141f494c000411d41014100410010001a0c030b419195c000411f41014100410010001a41b095c000411c20" + "0c100a1a0c020b418096c000411f41014100410010001a419f96c00041102002ac100a1a0c010b41cc95c000413441" + "014100410010001a41ed8ac000410f2002ac100a1a0b4100210241af96c000412141014100410010001a200041ffff" + "ff8f7f36005820004281eceedce494ccf9c000370050200041e8006a41003602002000420037036002400240200041" + "d0006a410c200041e0006a2206410c4100100f2205410c46044041d096c000411c2006101020004200370318200641" + "0c200041186a41084100100c22054108470d012000290318220c42fb005104404101210241ec96c000411b41014100" + "410010001a0c030b418797c000411d41014100410010001a41a497c0004116200c100a1a0c020b41ec97c000411d41" + "014100410010001a419f96c00041102005ac100a1a0c010b41ba97c000413241014100410010001a41ed8ac000410f" + "2005ac100a1a0b410021050240418582c000410c200041e0006a2206410c4100100f410c460440418998c000411a20" + "0610102006410c418582c000410c100445044041a398c000412041014100410010001a200221050c020b41c398c000" + "412241014100410010001a0c010b41e598c000412041014100410010001a0b200041f0006a2400200b452007200871" + "200971200a71200471200371200171200571710b0b8f190100418080c0000b851920200a24242420746573745f666c" + "6f61745f66726f6d5f7761736d202424242020666c6f61742066726f6d206936342031323330303a2020666c6f6174" + "2066726f6d20693634203132333030206173204845583a2020666c6f61742066726f6d206936342031323330303a20" + "6661696c65642020666c6f61742066726f6d207536342031323330303a2020666c6f61742066726f6d207536342031" + "323330303a206661696c65642020666c6f61742066726f6d2065787020322c206d616e7469737361203132333a2020" + "666c6f61742066726f6d2065787020322c206d616e7469737361203132333a206661696c65642020666c6f61742066" + "726f6d20636f6e737420313a0de0b6b3a7640000ffffffee2020666c6f61742066726f6d20636f6e7374202d313af2" + "1f494c589c0000ffffffee0a24242420746573745f666c6f61745f636d70202424242020666c6f61742066726f6d20" + "313a2020666c6f61742066726f6d20313a206661696c65642020666c6f61742066726f6d2031203d3d20464c4f4154" + "5f4f4e452020666c6f61742066726f6d203120213d20464c4f41545f4f4e452c206661696c65642020666c6f617420" + "66726f6d2031203e20464c4f41545f4e454741544956455f4f4e452020666c6f61742066726f6d203120213e20464c" + "4f41545f4e454741544956455f4f4e452c206661696c65642020464c4f41545f4e454741544956455f4f4e45203c20" + "666c6f61742066726f6d20312020464c4f41545f4e454741544956455f4f4e4520213c20666c6f61742066726f6d20" + "312c206661696c65640a24242420746573745f666c6f61745f6164645f7375627472616374202424242020666c6f61" + "742066726f6d2031303a206661696c656420207265706561746564206164643a20676f6f6420207265706561746564" + "206164643a206661696c6564202072657065617465642073756274726163743a20676f6f6420207265706561746564" + "2073756274726163743a206661696c65640a24242420746573745f666c6f61745f6d756c745f646976696465202424" + "2420207265706561746564206d756c7469706c793a20676f6f6420207265706561746564206d756c7469706c793a20" + "6661696c656420207265706561746564206469766964653a20676f6f6420207265706561746564206469766964653a" + "206661696c65640a24242420746573745f666c6f61745f706f77202424242020666c6f61742063756265206f662031" + "3a2020666c6f61742036746820706f776572206f66202d313a2020666c6f617420737175617265206f6620393a2020" + "666c6f61742030746820706f776572206f6620393a2020666c6f617420737175617265206f6620303a2020666c6f61" + "742030746820706f776572206f6620302028657870656374696e6720494e56414c49445f504152414d53206572726f" + "72293a0a24242420746573745f666c6f61745f726f6f74202424242020666c6f61742073717274206f6620393a2020" + "666c6f61742063627274206f6620393a2020666c6f61742063627274206f6620313030303030303a2020666c6f6174" + "2036746820726f6f74206f6620313030303030303a0a24242420746573745f666c6f61745f696e7665727420242424" + "2020696e76657274206120666c6f61742066726f6d2031303a2020696e7665727420616761696e3a2020696e766572" + "742074776963653a20676f6f642020696e766572742074776963653a206661696c65640a24242420746573745f666c" + "6f61745f746f5f696e74202424242020666c6f61745f746f5f696e742831293a20676f6f642020666c6f61745f746f" + "5f696e742831293a206661696c656420202020676f743a2020666c6f61745f746f5f696e742831293a206661696c65" + "642077697468206572726f72202020206572726f7220636f64653a2020666c6f61745f746f5f696e74282d31293a20" + "676f6f642020666c6f61745f746f5f696e74282d31293a206661696c65642020666c6f61745f746f5f696e74282d31" + "293a206661696c65642077697468206572726f722020666c6f61745f746f5f696e74286936343a3a4d4158293a2067" + "6f6f642020666c6f61745f746f5f696e74286936343a3a4d4158293a206661696c6564202020206578706563746564" + "3a2020666c6f61745f746f5f696e74286936343a3a4d4158293a206661696c65642077697468206572726f72202066" + "6c6f61745f746f5f696e742830293a20676f6f642020666c6f61745f746f5f696e742830293a206661696c65642020" + "666c6f61745f746f5f696e742830293a206661696c65642077697468206572726f722020666c6f61745f746f5f696e" + "7428302e312c20746f5f6e656172657374293a20676f6f642020666c6f61745f746f5f696e7428302e312c20746f5f" + "6e656172657374293a206661696c65642020666c6f61745f746f5f696e7428302e312c20746f5f6e65617265737429" + "3a206661696c65642077697468206572726f722020666c6f61745f746f5f696e7428302e312c20746f77617264735f" + "7a65726f293a20676f6f642020666c6f61745f746f5f696e7428302e312c20746f77617264735f7a65726f293a2066" + "61696c65642020666c6f61745f746f5f696e7428302e312c20746f77617264735f7a65726f293a206661696c656420" + "77697468206572726f720a24242420746573745f666c6f61745f746f5f6d616e745f657870202424242020666c6f61" + "745f746f5f6d616e745f6578702831293a20676f6f642020666c6f61745f746f5f6d616e745f6578702831293a2066" + "61696c6564202020206578706563746564206d616e746973736120313030303030303030303030303030303030302c" + "20676f743a202020206578706563746564206578706f6e656e74202d31382c20676f743a2020666c6f61745f746f5f" + "6d616e745f6578702831293a206661696c65642077697468206572726f722020666c6f61745f746f5f6d616e745f65" + "7870282d31293a20676f6f642020666c6f61745f746f5f6d616e745f657870282d31293a206661696c656420202020" + "6578706563746564206d616e7469737361202d313030303030303030303030303030303030302c20676f743a202066" + "6c6f61745f746f5f6d616e745f657870282d31293a206661696c65642077697468206572726f722020666c6f61745f" + "746f5f6d616e745f657870283130293a20676f6f642020666c6f61745f746f5f6d616e745f657870283130293a2066" + "61696c6564202020206578706563746564206578706f6e656e74202d31372c20676f743a2020666c6f61745f746f5f" + "6d616e745f657870283130293a206661696c65642077697468206572726f722020666c6f61745f746f5f6d616e745f" + "6578702830293a20676f6f642020666c6f61745f746f5f6d616e745f6578702830293a206661696c65642020202065" + "78706563746564206d616e746973736120302c20676f743a202020206578706563746564206578706f6e656e74202d" + "323134373438333634382c20676f743a2020666c6f61745f746f5f6d616e745f6578702830293a206661696c656420" + "77697468206572726f720a24242420746573745f666c6f61745f66726f6d5f7374616d6f756e74202424242020666c" + "6f61742066726f6d2058525020616d6f756e74202831303020585250293a202058525020616d6f756e7420636f6e76" + "657273696f6e3a20676f6f64202058525020616d6f756e7420636f6e76657273696f6e3a206661696c656420202020" + "6578706563746564203130303030303030302c20676f743a202058525020616d6f756e7420636f6e76657273696f6e" + "3a206661696c6564202d20666c6f61745f746f5f696e74206572726f722020666c6f61742066726f6d205852502061" + "6d6f756e743a206661696c656420202020726573756c745f73697a653a0a24242420746573745f666c6f61745f6672" + "6f6d5f73746e756d626572202424242020666c6f61742066726f6d2053544e756d6265722028313233293a20205354" + "4e756d62657220636f6e76657273696f6e3a20676f6f64202053544e756d62657220636f6e76657273696f6e3a2066" + "61696c6564202020206578706563746564203132332c20676f743a202053544e756d62657220636f6e76657273696f" + "6e3a206661696c6564202d20666c6f61745f746f5f696e74206572726f722020666c6f61742066726f6d2053544e75" + "6d6265723a206661696c65642020666c6f61742066726f6d2053544e756d626572202831293a202053544e756d6265" + "72283129203d3d20464c4f41545f4f4e453a20676f6f64202053544e756d626572283129203d3d20464c4f41545f4f" + "4e453a206661696c65642020666c6f61742066726f6d2053544e756d6265722831293a206661696c6564004d097072" + "6f64756365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e" + "38372e30202831373036376539616320323032352d30352d303929002c0f7461726765745f6665617475726573022b" + "0f6d757461626c652d676c6f62616c732b087369676e2d657874"; extern std::string const kFloat0Hex = "0061736d0100000001290560057f7f7f7f7f017f60047e7f7f7f017f60077f7f7f7f7f7f7f017f60047f7f7f7f017f" - "6000017f025f0408686f73745f6c6962057472616365000008686f73745f6c69620e666c6f61745f66726f6d5f696e" - "74000108686f73745f6c69620e666c6f61745f7375627472616374000208686f73745f6c69620d666c6f61745f636f" - "6d7061726500030302010405030100110619037f01418080c0000b7f00419681c0000b7f0041a081c0000b072e0406" - "6d656d6f727902000666696e69736800040a5f5f646174615f656e6403010b5f5f686561705f6261736503020ad302" - "01d00201017f23808080800041206b2200248080808000418080c0800041154101410041001080808080001a200041" - "086a410036020020004200370300200041106a41086a410036020020004200370310024002400240420a2000410c41" - "00108180808000410c470d002000410c2000410c200041106a410c4100108280808000410c470d0102400240200041" - "106a410c200041106a410c1083808080000d00419580c0800041174101410041001080808080001a0c010b41ac80c0" - "800041164101410041001080808080001a0b0240200041106a410c41c280c08000410c1083808080000d0041ce80c0" - "8000411a4101410041001080808080001a0c030b41e880c0800041194101410041001080808080001a0c020b418181" - "c0800041154101410041001080808080001a0c010b418181c0800041154101410041001080808080001a0b20004120" - "6a24808080800041010b0ba0010100418080c0000b96010a24242420746573745f666c6f61745f3020242424202066" - "6c6f6174203020636f6d706172653a20676f6f642020666c6f6174203020636f6d706172653a206261640000000000" - "000000800000002020464c4f41545f5a45524f20636f6d706172653a20676f6f642020464c4f41745f5a45524f2063" - "6f6d706172653a206261642020666c6f61742031302d31303a206661696c6564009503046e616d65000d0c666c6f61" - "745f302e7761736d01de0205004c5f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f" - "646566696e65645f66756e6374696f6e73357472616365313768653738323066313637383330383338364501565f5a" - "4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e" - "733134666c6f61745f66726f6d5f696e74313768646463636262643266613366663431634502565f5a4e3136787270" - "6c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733134666c6f" - "61745f7375627472616374313768313765643838343131303333663437624503555f5a4e31367872706c5f7761736d" - "5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733133666c6f61745f636f6d" - "706172653137683835393637633834333363613334623045040666696e697368071201000f5f5f737461636b5f706f" - "696e746572090a0100072e726f64617461004d0970726f64756365727302086c616e6775616765010452757374000c" - "70726f6365737365642d6279010572757374631d312e38392e30202832393438333838336520323032352d30382d30" - "34290094010f7461726765745f6665617475726573082b0b62756c6b2d6d656d6f72792b0f62756c6b2d6d656d6f72" - "792d6f70742b1663616c6c2d696e6469726563742d6f7665726c6f6e672b0a6d756c746976616c75652b0f6d757461" - "626c652d676c6f62616c732b136e6f6e7472617070696e672d6670746f696e742b0f7265666572656e63652d747970" - "65732b087369676e2d657874"; + "6000017f02560408686f73745f6c6962057472616365000008686f73745f6c69620e666c6f61745f66726f6d5f696e" + "74000108686f73745f6c696209666c6f61745f737562000208686f73745f6c696209666c6f61745f636d7000030302" + "010405030100110619037f01418080c0000b7f00419681c0000b7f0041a081c0000b072e04066d656d6f7279020006" + "66696e69736800040a5f5f646174615f656e6403010b5f5f686561705f6261736503020a880201850201027f230041" + "206b22002400418080c000411541014100410010001a200041086a410036020020004200370300200041186a410036" + "02002000420037031002400240420a2000410c41001001410c4604402000410c2000410c200041106a2201410c4100" + "1002410c470d0102402001410c2001410c1003450440419580c000411741014100410010001a0c010b41ac80c00041" + "1641014100410010001a0b200041106a410c41c280c000410c100345044041ce80c000411a41014100410010001a0c" + "030b41e880c000411941014100410010001a0c020b418181c000411541014100410010001a0c010b418181c0004115" + "41014100410010001a0b200041206a240041010b0ba0010100418080c0000b96010a24242420746573745f666c6f61" + "745f30202424242020666c6f6174203020636f6d706172653a20676f6f642020666c6f6174203020636f6d70617265" + "3a206261640000000000000000800000002020464c4f41545f5a45524f20636f6d706172653a20676f6f642020464c" + "4f41545f5a45524f20636f6d706172653a206261642020666c6f61742031302d31303a206661696c6564004d097072" + "6f64756365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e" + "38372e30202831373036376539616320323032352d30352d303929002c0f7461726765745f6665617475726573022b" + "0f6d757461626c652d676c6f62616c732b087369676e2d657874"; extern std::string const kDisabledFloatHex = "0061736d010000000108026000006000017f03030200010503010002063e0a7f004180080b7f004180080b7f004180" @@ -1043,7 +843,7 @@ extern std::string const kDisabledFloatHex = "5f5f64736f5f68616e646c6503010a5f5f646174615f656e6403020b5f5f737461636b5f6c6f7703030c5f5f737461" "636b5f6869676803040d5f5f676c6f62616c5f6261736503050b5f5f686561705f6261736503060a5f5f686561705f" "656e6403070d5f5f6d656d6f72795f6261736503080c5f5f7461626c655f6261736503090a150202000b1000430000" - "00c54300200045921a41010b"; + "00c54300200045931a41010b"; extern std::string const kMemoryPointerAtLimitHex = "0061736d010000000105016000017f030201000503010001070a010666696e69736800000a0e010c0041ffff032d00" @@ -1101,7 +901,7 @@ extern std::string const kTable65ElementsHex = extern std::string const kTable2TablesHex = "0061736d010000000108026000006000017f03030200010409027001010170010101070a010666696e697368000109" - "0f020041000b0100020141000b0001000a090202000b040041010b"; + "1502060041000b7001d2000b060141000b7001d2000b0a090202000b040041010b"; extern std::string const kTable0ElementsHex = "0061736d010000000105016000017f03020100040401700000070a010666696e69736800000a0601040041010b"; @@ -1148,16 +948,15 @@ extern std::string const kProposalMultiMemoryHex = "0061736d010000000105016000017f0302010005050200000001070a010666696e69736800000a060104003f010b"; extern std::string const kProposalCustomPageSizesHex = - "0061736d010000000105016000017f0302010005040108010a070a010666696e69736800000a0601040041010b0010" - "046e616d65010901000666696e697368"; + "0061736d010000000105016000017f0302010005040108010a070a010666696e69736800000a0601040041010b"; extern std::string const kProposalMemory64Hex = "0061736d010000000105016000017f030201000503010401070a010666696e69736800000a10010e004200412a3a00" - "003f004201510b0010046e616d65010901000666696e697368"; + "003f004201510b"; extern std::string const kProposalWideArithmeticHex = - "0061736d010000000105016000017f03020100070a010666696e69736800000a0e010c0042014202fc161a1a41010b" - "0010046e616d65010901000666696e697368"; + "0061736d010000000105016000017f03020100070a010666696e69736800000a0e010c0042014202fc161a1a41010" + "b"; extern std::string const kTrapDivideBy0Hex = "0061736d010000000105016000017f03020100070a010666696e69736800000a0c010a00412a41006d1a41010b"; @@ -1302,42 +1101,33 @@ extern std::string const kLocalVariableBombHex = "0061736d01000000010401600000030201000a0f010d01ffffffff0f7f0b"; extern std::string const kInfiniteLoopWasmHex = - "0061736d010000000108026000006000017f030302000105030100020638097f004180080b7f004180080b7f004180" - "080b7f00418088040b7f004180080b7f00418088040b7f00418080080b7f0041000b7f0041010b07a8010c066d656d" - "6f72790200115f5f7761736d5f63616c6c5f63746f72730000046c6f6f7000010c5f5f64736f5f68616e646c650300" - "0a5f5f646174615f656e6403010b5f5f737461636b5f6c6f7703020c5f5f737461636b5f6869676803030d5f5f676c" - "6f62616c5f6261736503040b5f5f686561705f6261736503050a5f5f686561705f656e6403060d5f5f6d656d6f7279" - "5f6261736503070c5f5f7461626c655f6261736503080a270202000b220041fc87044100360200034041fc870441fc" - "870428020041016a3602000c000b000b007f0970726f647563657273010c70726f6365737365642d62790105636c61" - "6e675f31392e312e352d776173692d73646b202868747470733a2f2f6769746875622e636f6d2f6c6c766d2f6c6c76" - "6d2d70726f6a6563742061623462356132646235383239353861663165653330386137393063666462343262643234" - "3732302900490f7461726765745f6665617475726573042b0f6d757461626c652d676c6f62616c732b087369676e2d" - "6578742b0f7265666572656e63652d74797065732b0a6d756c746976616c7565"; + "0061736d010000000108026000006000017f030302000105030100020624067f004180080b7f004180080b7f004180" + "080b7f00418088040b7f0041000b7f0041010b077e09066d656d6f72790200115f5f7761736d5f63616c6c5f63746f" + "72730000046c6f6f7000010c5f5f64736f5f68616e646c6503000a5f5f646174615f656e6403010d5f5f676c6f6261" + "6c5f6261736503020b5f5f686561705f6261736503030d5f5f6d656d6f72795f6261736503040c5f5f7461626c655f" + "6261736503050a270202000b220041fc87044100360200034041fc870441fc870428020041016a3602000c000b000b" + "002f0970726f647563657273010c70726f6365737365642d6279010e486f6d656272657720636c616e670631342e30" + "2e36"; extern std::string const kStartLoopHex = "0061736d010000000108026000006000017f030302000107120205737461727400000666696e69736800010801000a" "0e02070003400c000b0b040041010b"; extern std::string const kBadAlignWasmHex = - "0061736d01000000011b046000017f60057f7f7f7f7f017f60067f7f7f7f7f7f017f600000022a0203656e760f666c" - "6f61745f66726f6d5f75696e74000103656e760c636865636b5f6b65796c6574000203050403000000050301000306" - "470b7f004180080b7f00418088020b7f004180080b7f00418088040b7f00418088040b7f00418088080b7f00418008" - "0b7f00418088080b7f004180800c0b7f0041000b7f0041010b07cc0110066d656d6f72790200115f5f7761736d5f63" - "616c6c5f63746f72730002057465737431000307655f64617461310300057465737432000407655f64617461320301" - "047465737400050c5f5f64736f5f68616e646c6503020a5f5f646174615f656e6403030b5f5f737461636b5f6c6f77" - "03040c5f5f737461636b5f6869676803050d5f5f676c6f62616c5f6261736503060b5f5f686561705f626173650307" - "0a5f5f686561705f656e6403080d5f5f6d656d6f72795f6261736503090c5f5f7461626c655f62617365030a0a9902" - "0402000b2801017f418108427f370000418108410841a308410c41001000220041a40828020020004100481b0b5f01" - "017f419a88024191a4cca00136010041928802428994ace0d0c1c38710370100418a88024281848ca0d0c0c1830837" - "010041818802417f360000418a8802411441818802410441a3880241201001220041a4880228020020004100481b0b" - "8a0101037f418108427f370000418108410841a308410c410010002100419a88024191a4cca0013601004192880242" - "8994ace0d0c1c38710370100418a88024281848ca0d0c0c1830837010041818802417f36000041a408280200210141" - "8a8802411441818802410441a3880241201001220241a4880228020020024100481b2000200120004100481b6a0b00" - "7f0970726f647563657273010c70726f6365737365642d62790105636c616e675f31392e312e352d776173692d7364" - "6b202868747470733a2f2f6769746875622e636f6d2f6c6c766d2f6c6c766d2d70726f6a6563742061623462356132" - "6462353832393538616631656533303861373930636664623432626432343732302900490f7461726765745f666561" - "7475726573042b0f6d757461626c652d676c6f62616c732b087369676e2d6578742b0f7265666572656e63652d7479" - "7065732b0a6d756c746976616c7565"; + "0061736d01000000011b046000017f60057f7f7f7f7f017f60067f7f7f7f7f7f017f60000002260203656e760f666c" + "6f61745f66726f6d5f75696e74000103656e7608636865636b5f696400020305040300000005030100030632087f00" + "4180080b7f00418088020b7f004180080b7f00418088040b7f004180080b7f00418088080b7f0041000b7f0041010b" + "07a2010d066d656d6f72790200115f5f7761736d5f63616c6c5f63746f72730002057465737431000307655f646174" + "61310300057465737432000407655f64617461320301047465737400050c5f5f64736f5f68616e646c6503020a5f5f" + "646174615f656e6403030d5f5f676c6f62616c5f6261736503040b5f5f686561705f6261736503050d5f5f6d656d6f" + "72795f6261736503060c5f5f7461626c655f6261736503070a99020402000b2801017f418108427f37000041810841" + "0841a308410c41001000220041a40828020020004100481b0b5f01017f419a88024191a4cca0013601004192880242" + "8994ace0d0c1c38710370100418a88024281848ca0d0c0c1830837010041818802417f360000418a88024114418188" + "02410441a3880241201001220041a4880228020020004100481b0b8a0101037f418108427f370000418108410841a3" + "08410c410010002100419a88024191a4cca00136010041928802428994ace0d0c1c38710370100418a88024281848c" + "a0d0c0c1830837010041818802417f36000041a4082802002101418a8802411441818802410441a388024120100122" + "0241a4880228020020024100481b2000200120004100481b6a0b002f0970726f647563657273010c70726f63657373" + "65642d6279010e486f6d656272657720636c616e670631342e302e36"; extern std::string const kThousandParamsHex = "0061736d0100000001f1070260000060e8077f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" @@ -1361,99 +1151,95 @@ extern std::string const kThousandParamsHex = "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" - "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f017f030302000105030100020638097f" - "004180080b7f004180080b7f004180080b7f00418088040b7f004180080b7f00418088040b7f00418080080b7f0041" - "000b7f0041010b07a8010c066d656d6f72790200115f5f7761736d5f63616c6c5f63746f7273000004746573740001" - "0c5f5f64736f5f68616e646c6503000a5f5f646174615f656e6403010b5f5f737461636b5f6c6f7703020c5f5f7374" - "61636b5f6869676803030d5f5f676c6f62616c5f6261736503040b5f5f686561705f6261736503050a5f5f68656170" - "5f656e6403060d5f5f6d656d6f72795f6261736503070c5f5f7461626c655f6261736503080aa71e0202000ba11e00" - "200020016a20026a20036a20046a20056a20066a20076a20086a20096a200a6a200b6a200c6a200d6a200e6a200f6a" - "20106a20116a20126a20136a20146a20156a20166a20176a20186a20196a201a6a201b6a201c6a201d6a201e6a201f" - "6a20206a20216a20226a20236a20246a20256a20266a20276a20286a20296a202a6a202b6a202c6a202d6a202e6a20" - "2f6a20306a20316a20326a20336a20346a20356a20366a20376a20386a20396a203a6a203b6a203c6a203d6a203e6a" - "203f6a20406a20416a20426a20436a20446a20456a20466a20476a20486a20496a204a6a204b6a204c6a204d6a204e" - "6a204f6a20506a20516a20526a20536a20546a20556a20566a20576a20586a20596a205a6a205b6a205c6a205d6a20" - "5e6a205f6a20606a20616a20626a20636a20646a20656a20666a20676a20686a20696a206a6a206b6a206c6a206d6a" - "206e6a206f6a20706a20716a20726a20736a20746a20756a20766a20776a20786a20796a207a6a207b6a207c6a207d" - "6a207e6a207f6a2080016a2081016a2082016a2083016a2084016a2085016a2086016a2087016a2088016a2089016a" - "208a016a208b016a208c016a208d016a208e016a208f016a2090016a2091016a2092016a2093016a2094016a209501" - "6a2096016a2097016a2098016a2099016a209a016a209b016a209c016a209d016a209e016a209f016a20a0016a20a1" - "016a20a2016a20a3016a20a4016a20a5016a20a6016a20a7016a20a8016a20a9016a20aa016a20ab016a20ac016a20" - "ad016a20ae016a20af016a20b0016a20b1016a20b2016a20b3016a20b4016a20b5016a20b6016a20b7016a20b8016a" - "20b9016a20ba016a20bb016a20bc016a20bd016a20be016a20bf016a20c0016a20c1016a20c2016a20c3016a20c401" - "6a20c5016a20c6016a20c7016a20c8016a20c9016a20ca016a20cb016a20cc016a20cd016a20ce016a20cf016a20d0" - "016a20d1016a20d2016a20d3016a20d4016a20d5016a20d6016a20d7016a20d8016a20d9016a20da016a20db016a20" - "dc016a20dd016a20de016a20df016a20e0016a20e1016a20e2016a20e3016a20e4016a20e5016a20e6016a20e7016a" - "20e8016a20e9016a20ea016a20eb016a20ec016a20ed016a20ee016a20ef016a20f0016a20f1016a20f2016a20f301" - "6a20f4016a20f5016a20f6016a20f7016a20f8016a20f9016a20fa016a20fb016a20fc016a20fd016a20fe016a20ff" - "016a2080026a2081026a2082026a2083026a2084026a2085026a2086026a2087026a2088026a2089026a208a026a20" - "8b026a208c026a208d026a208e026a208f026a2090026a2091026a2092026a2093026a2094026a2095026a2096026a" - "2097026a2098026a2099026a209a026a209b026a209c026a209d026a209e026a209f026a20a0026a20a1026a20a202" - "6a20a3026a20a4026a20a5026a20a6026a20a7026a20a8026a20a9026a20aa026a20ab026a20ac026a20ad026a20ae" - "026a20af026a20b0026a20b1026a20b2026a20b3026a20b4026a20b5026a20b6026a20b7026a20b8026a20b9026a20" - "ba026a20bb026a20bc026a20bd026a20be026a20bf026a20c0026a20c1026a20c2026a20c3026a20c4026a20c5026a" - "20c6026a20c7026a20c8026a20c9026a20ca026a20cb026a20cc026a20cd026a20ce026a20cf026a20d0026a20d102" - "6a20d2026a20d3026a20d4026a20d5026a20d6026a20d7026a20d8026a20d9026a20da026a20db026a20dc026a20dd" - "026a20de026a20df026a20e0026a20e1026a20e2026a20e3026a20e4026a20e5026a20e6026a20e7026a20e8026a20" - "e9026a20ea026a20eb026a20ec026a20ed026a20ee026a20ef026a20f0026a20f1026a20f2026a20f3026a20f4026a" - "20f5026a20f6026a20f7026a20f8026a20f9026a20fa026a20fb026a20fc026a20fd026a20fe026a20ff026a208003" - "6a2081036a2082036a2083036a2084036a2085036a2086036a2087036a2088036a2089036a208a036a208b036a208c" - "036a208d036a208e036a208f036a2090036a2091036a2092036a2093036a2094036a2095036a2096036a2097036a20" - "98036a2099036a209a036a209b036a209c036a209d036a209e036a209f036a20a0036a20a1036a20a2036a20a3036a" - "20a4036a20a5036a20a6036a20a7036a20a8036a20a9036a20aa036a20ab036a20ac036a20ad036a20ae036a20af03" - "6a20b0036a20b1036a20b2036a20b3036a20b4036a20b5036a20b6036a20b7036a20b8036a20b9036a20ba036a20bb" - "036a20bc036a20bd036a20be036a20bf036a20c0036a20c1036a20c2036a20c3036a20c4036a20c5036a20c6036a20" - "c7036a20c8036a20c9036a20ca036a20cb036a20cc036a20cd036a20ce036a20cf036a20d0036a20d1036a20d2036a" - "20d3036a20d4036a20d5036a20d6036a20d7036a20d8036a20d9036a20da036a20db036a20dc036a20dd036a20de03" - "6a20df036a20e0036a20e1036a20e2036a20e3036a20e4036a20e5036a20e6036a20e7036a20e8036a20e9036a20ea" - "036a20eb036a20ec036a20ed036a20ee036a20ef036a20f0036a20f1036a20f2036a20f3036a20f4036a20f5036a20" - "f6036a20f7036a20f8036a20f9036a20fa036a20fb036a20fc036a20fd036a20fe036a20ff036a2080046a2081046a" - "2082046a2083046a2084046a2085046a2086046a2087046a2088046a2089046a208a046a208b046a208c046a208d04" - "6a208e046a208f046a2090046a2091046a2092046a2093046a2094046a2095046a2096046a2097046a2098046a2099" - "046a209a046a209b046a209c046a209d046a209e046a209f046a20a0046a20a1046a20a2046a20a3046a20a4046a20" - "a5046a20a6046a20a7046a20a8046a20a9046a20aa046a20ab046a20ac046a20ad046a20ae046a20af046a20b0046a" - "20b1046a20b2046a20b3046a20b4046a20b5046a20b6046a20b7046a20b8046a20b9046a20ba046a20bb046a20bc04" - "6a20bd046a20be046a20bf046a20c0046a20c1046a20c2046a20c3046a20c4046a20c5046a20c6046a20c7046a20c8" - "046a20c9046a20ca046a20cb046a20cc046a20cd046a20ce046a20cf046a20d0046a20d1046a20d2046a20d3046a20" - "d4046a20d5046a20d6046a20d7046a20d8046a20d9046a20da046a20db046a20dc046a20dd046a20de046a20df046a" - "20e0046a20e1046a20e2046a20e3046a20e4046a20e5046a20e6046a20e7046a20e8046a20e9046a20ea046a20eb04" - "6a20ec046a20ed046a20ee046a20ef046a20f0046a20f1046a20f2046a20f3046a20f4046a20f5046a20f6046a20f7" - "046a20f8046a20f9046a20fa046a20fb046a20fc046a20fd046a20fe046a20ff046a2080056a2081056a2082056a20" - "83056a2084056a2085056a2086056a2087056a2088056a2089056a208a056a208b056a208c056a208d056a208e056a" - "208f056a2090056a2091056a2092056a2093056a2094056a2095056a2096056a2097056a2098056a2099056a209a05" - "6a209b056a209c056a209d056a209e056a209f056a20a0056a20a1056a20a2056a20a3056a20a4056a20a5056a20a6" - "056a20a7056a20a8056a20a9056a20aa056a20ab056a20ac056a20ad056a20ae056a20af056a20b0056a20b1056a20" - "b2056a20b3056a20b4056a20b5056a20b6056a20b7056a20b8056a20b9056a20ba056a20bb056a20bc056a20bd056a" - "20be056a20bf056a20c0056a20c1056a20c2056a20c3056a20c4056a20c5056a20c6056a20c7056a20c8056a20c905" - "6a20ca056a20cb056a20cc056a20cd056a20ce056a20cf056a20d0056a20d1056a20d2056a20d3056a20d4056a20d5" - "056a20d6056a20d7056a20d8056a20d9056a20da056a20db056a20dc056a20dd056a20de056a20df056a20e0056a20" - "e1056a20e2056a20e3056a20e4056a20e5056a20e6056a20e7056a20e8056a20e9056a20ea056a20eb056a20ec056a" - "20ed056a20ee056a20ef056a20f0056a20f1056a20f2056a20f3056a20f4056a20f5056a20f6056a20f7056a20f805" - "6a20f9056a20fa056a20fb056a20fc056a20fd056a20fe056a20ff056a2080066a2081066a2082066a2083066a2084" - "066a2085066a2086066a2087066a2088066a2089066a208a066a208b066a208c066a208d066a208e066a208f066a20" - "90066a2091066a2092066a2093066a2094066a2095066a2096066a2097066a2098066a2099066a209a066a209b066a" - "209c066a209d066a209e066a209f066a20a0066a20a1066a20a2066a20a3066a20a4066a20a5066a20a6066a20a706" - "6a20a8066a20a9066a20aa066a20ab066a20ac066a20ad066a20ae066a20af066a20b0066a20b1066a20b2066a20b3" - "066a20b4066a20b5066a20b6066a20b7066a20b8066a20b9066a20ba066a20bb066a20bc066a20bd066a20be066a20" - "bf066a20c0066a20c1066a20c2066a20c3066a20c4066a20c5066a20c6066a20c7066a20c8066a20c9066a20ca066a" - "20cb066a20cc066a20cd066a20ce066a20cf066a20d0066a20d1066a20d2066a20d3066a20d4066a20d5066a20d606" - "6a20d7066a20d8066a20d9066a20da066a20db066a20dc066a20dd066a20de066a20df066a20e0066a20e1066a20e2" - "066a20e3066a20e4066a20e5066a20e6066a20e7066a20e8066a20e9066a20ea066a20eb066a20ec066a20ed066a20" - "ee066a20ef066a20f0066a20f1066a20f2066a20f3066a20f4066a20f5066a20f6066a20f7066a20f8066a20f9066a" - "20fa066a20fb066a20fc066a20fd066a20fe066a20ff066a2080076a2081076a2082076a2083076a2084076a208507" - "6a2086076a2087076a2088076a2089076a208a076a208b076a208c076a208d076a208e076a208f076a2090076a2091" - "076a2092076a2093076a2094076a2095076a2096076a2097076a2098076a2099076a209a076a209b076a209c076a20" - "9d076a209e076a209f076a20a0076a20a1076a20a2076a20a3076a20a4076a20a5076a20a6076a20a7076a20a8076a" - "20a9076a20aa076a20ab076a20ac076a20ad076a20ae076a20af076a20b0076a20b1076a20b2076a20b3076a20b407" - "6a20b5076a20b6076a20b7076a20b8076a20b9076a20ba076a20bb076a20bc076a20bd076a20be076a20bf076a20c0" - "076a20c1076a20c2076a20c3076a20c4076a20c5076a20c6076a20c7076a20c8076a20c9076a20ca076a20cb076a20" - "cc076a20cd076a20ce076a20cf076a20d0076a20d1076a20d2076a20d3076a20d4076a20d5076a20d6076a20d7076a" - "20d8076a20d9076a20da076a20db076a20dc076a20dd076a20de076a20df076a20e0076a20e1076a20e2076a20e307" - "6a20e4076a20e5076a20e6076a20e7076a0b007f0970726f647563657273010c70726f6365737365642d6279010563" - "6c616e675f31392e312e352d776173692d73646b202868747470733a2f2f6769746875622e636f6d2f6c6c766d2f6c" - "6c766d2d70726f6a656374206162346235613264623538323935386166316565333038613739306366646234326264" - "32343732302900490f7461726765745f6665617475726573042b0f6d757461626c652d676c6f62616c732b08736967" - "6e2d6578742b0f7265666572656e63652d74797065732b0a6d756c746976616c7565"; + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f017f030302000105030100020624067f" + "004180080b7f004180080b7f004180080b7f00418088040b7f0041000b7f0041010b077e09066d656d6f7279020011" + "5f5f7761736d5f63616c6c5f63746f72730000047465737400010c5f5f64736f5f68616e646c6503000a5f5f646174" + "615f656e6403010d5f5f676c6f62616c5f6261736503020b5f5f686561705f6261736503030d5f5f6d656d6f72795f" + "6261736503040c5f5f7461626c655f6261736503050aa71e0202000ba11e00200020016a20026a20036a20046a2005" + "6a20066a20076a20086a20096a200a6a200b6a200c6a200d6a200e6a200f6a20106a20116a20126a20136a20146a20" + "156a20166a20176a20186a20196a201a6a201b6a201c6a201d6a201e6a201f6a20206a20216a20226a20236a20246a" + "20256a20266a20276a20286a20296a202a6a202b6a202c6a202d6a202e6a202f6a20306a20316a20326a20336a2034" + "6a20356a20366a20376a20386a20396a203a6a203b6a203c6a203d6a203e6a203f6a20406a20416a20426a20436a20" + "446a20456a20466a20476a20486a20496a204a6a204b6a204c6a204d6a204e6a204f6a20506a20516a20526a20536a" + "20546a20556a20566a20576a20586a20596a205a6a205b6a205c6a205d6a205e6a205f6a20606a20616a20626a2063" + "6a20646a20656a20666a20676a20686a20696a206a6a206b6a206c6a206d6a206e6a206f6a20706a20716a20726a20" + "736a20746a20756a20766a20776a20786a20796a207a6a207b6a207c6a207d6a207e6a207f6a2080016a2081016a20" + "82016a2083016a2084016a2085016a2086016a2087016a2088016a2089016a208a016a208b016a208c016a208d016a" + "208e016a208f016a2090016a2091016a2092016a2093016a2094016a2095016a2096016a2097016a2098016a209901" + "6a209a016a209b016a209c016a209d016a209e016a209f016a20a0016a20a1016a20a2016a20a3016a20a4016a20a5" + "016a20a6016a20a7016a20a8016a20a9016a20aa016a20ab016a20ac016a20ad016a20ae016a20af016a20b0016a20" + "b1016a20b2016a20b3016a20b4016a20b5016a20b6016a20b7016a20b8016a20b9016a20ba016a20bb016a20bc016a" + "20bd016a20be016a20bf016a20c0016a20c1016a20c2016a20c3016a20c4016a20c5016a20c6016a20c7016a20c801" + "6a20c9016a20ca016a20cb016a20cc016a20cd016a20ce016a20cf016a20d0016a20d1016a20d2016a20d3016a20d4" + "016a20d5016a20d6016a20d7016a20d8016a20d9016a20da016a20db016a20dc016a20dd016a20de016a20df016a20" + "e0016a20e1016a20e2016a20e3016a20e4016a20e5016a20e6016a20e7016a20e8016a20e9016a20ea016a20eb016a" + "20ec016a20ed016a20ee016a20ef016a20f0016a20f1016a20f2016a20f3016a20f4016a20f5016a20f6016a20f701" + "6a20f8016a20f9016a20fa016a20fb016a20fc016a20fd016a20fe016a20ff016a2080026a2081026a2082026a2083" + "026a2084026a2085026a2086026a2087026a2088026a2089026a208a026a208b026a208c026a208d026a208e026a20" + "8f026a2090026a2091026a2092026a2093026a2094026a2095026a2096026a2097026a2098026a2099026a209a026a" + "209b026a209c026a209d026a209e026a209f026a20a0026a20a1026a20a2026a20a3026a20a4026a20a5026a20a602" + "6a20a7026a20a8026a20a9026a20aa026a20ab026a20ac026a20ad026a20ae026a20af026a20b0026a20b1026a20b2" + "026a20b3026a20b4026a20b5026a20b6026a20b7026a20b8026a20b9026a20ba026a20bb026a20bc026a20bd026a20" + "be026a20bf026a20c0026a20c1026a20c2026a20c3026a20c4026a20c5026a20c6026a20c7026a20c8026a20c9026a" + "20ca026a20cb026a20cc026a20cd026a20ce026a20cf026a20d0026a20d1026a20d2026a20d3026a20d4026a20d502" + "6a20d6026a20d7026a20d8026a20d9026a20da026a20db026a20dc026a20dd026a20de026a20df026a20e0026a20e1" + "026a20e2026a20e3026a20e4026a20e5026a20e6026a20e7026a20e8026a20e9026a20ea026a20eb026a20ec026a20" + "ed026a20ee026a20ef026a20f0026a20f1026a20f2026a20f3026a20f4026a20f5026a20f6026a20f7026a20f8026a" + "20f9026a20fa026a20fb026a20fc026a20fd026a20fe026a20ff026a2080036a2081036a2082036a2083036a208403" + "6a2085036a2086036a2087036a2088036a2089036a208a036a208b036a208c036a208d036a208e036a208f036a2090" + "036a2091036a2092036a2093036a2094036a2095036a2096036a2097036a2098036a2099036a209a036a209b036a20" + "9c036a209d036a209e036a209f036a20a0036a20a1036a20a2036a20a3036a20a4036a20a5036a20a6036a20a7036a" + "20a8036a20a9036a20aa036a20ab036a20ac036a20ad036a20ae036a20af036a20b0036a20b1036a20b2036a20b303" + "6a20b4036a20b5036a20b6036a20b7036a20b8036a20b9036a20ba036a20bb036a20bc036a20bd036a20be036a20bf" + "036a20c0036a20c1036a20c2036a20c3036a20c4036a20c5036a20c6036a20c7036a20c8036a20c9036a20ca036a20" + "cb036a20cc036a20cd036a20ce036a20cf036a20d0036a20d1036a20d2036a20d3036a20d4036a20d5036a20d6036a" + "20d7036a20d8036a20d9036a20da036a20db036a20dc036a20dd036a20de036a20df036a20e0036a20e1036a20e203" + "6a20e3036a20e4036a20e5036a20e6036a20e7036a20e8036a20e9036a20ea036a20eb036a20ec036a20ed036a20ee" + "036a20ef036a20f0036a20f1036a20f2036a20f3036a20f4036a20f5036a20f6036a20f7036a20f8036a20f9036a20" + "fa036a20fb036a20fc036a20fd036a20fe036a20ff036a2080046a2081046a2082046a2083046a2084046a2085046a" + "2086046a2087046a2088046a2089046a208a046a208b046a208c046a208d046a208e046a208f046a2090046a209104" + "6a2092046a2093046a2094046a2095046a2096046a2097046a2098046a2099046a209a046a209b046a209c046a209d" + "046a209e046a209f046a20a0046a20a1046a20a2046a20a3046a20a4046a20a5046a20a6046a20a7046a20a8046a20" + "a9046a20aa046a20ab046a20ac046a20ad046a20ae046a20af046a20b0046a20b1046a20b2046a20b3046a20b4046a" + "20b5046a20b6046a20b7046a20b8046a20b9046a20ba046a20bb046a20bc046a20bd046a20be046a20bf046a20c004" + "6a20c1046a20c2046a20c3046a20c4046a20c5046a20c6046a20c7046a20c8046a20c9046a20ca046a20cb046a20cc" + "046a20cd046a20ce046a20cf046a20d0046a20d1046a20d2046a20d3046a20d4046a20d5046a20d6046a20d7046a20" + "d8046a20d9046a20da046a20db046a20dc046a20dd046a20de046a20df046a20e0046a20e1046a20e2046a20e3046a" + "20e4046a20e5046a20e6046a20e7046a20e8046a20e9046a20ea046a20eb046a20ec046a20ed046a20ee046a20ef04" + "6a20f0046a20f1046a20f2046a20f3046a20f4046a20f5046a20f6046a20f7046a20f8046a20f9046a20fa046a20fb" + "046a20fc046a20fd046a20fe046a20ff046a2080056a2081056a2082056a2083056a2084056a2085056a2086056a20" + "87056a2088056a2089056a208a056a208b056a208c056a208d056a208e056a208f056a2090056a2091056a2092056a" + "2093056a2094056a2095056a2096056a2097056a2098056a2099056a209a056a209b056a209c056a209d056a209e05" + "6a209f056a20a0056a20a1056a20a2056a20a3056a20a4056a20a5056a20a6056a20a7056a20a8056a20a9056a20aa" + "056a20ab056a20ac056a20ad056a20ae056a20af056a20b0056a20b1056a20b2056a20b3056a20b4056a20b5056a20" + "b6056a20b7056a20b8056a20b9056a20ba056a20bb056a20bc056a20bd056a20be056a20bf056a20c0056a20c1056a" + "20c2056a20c3056a20c4056a20c5056a20c6056a20c7056a20c8056a20c9056a20ca056a20cb056a20cc056a20cd05" + "6a20ce056a20cf056a20d0056a20d1056a20d2056a20d3056a20d4056a20d5056a20d6056a20d7056a20d8056a20d9" + "056a20da056a20db056a20dc056a20dd056a20de056a20df056a20e0056a20e1056a20e2056a20e3056a20e4056a20" + "e5056a20e6056a20e7056a20e8056a20e9056a20ea056a20eb056a20ec056a20ed056a20ee056a20ef056a20f0056a" + "20f1056a20f2056a20f3056a20f4056a20f5056a20f6056a20f7056a20f8056a20f9056a20fa056a20fb056a20fc05" + "6a20fd056a20fe056a20ff056a2080066a2081066a2082066a2083066a2084066a2085066a2086066a2087066a2088" + "066a2089066a208a066a208b066a208c066a208d066a208e066a208f066a2090066a2091066a2092066a2093066a20" + "94066a2095066a2096066a2097066a2098066a2099066a209a066a209b066a209c066a209d066a209e066a209f066a" + "20a0066a20a1066a20a2066a20a3066a20a4066a20a5066a20a6066a20a7066a20a8066a20a9066a20aa066a20ab06" + "6a20ac066a20ad066a20ae066a20af066a20b0066a20b1066a20b2066a20b3066a20b4066a20b5066a20b6066a20b7" + "066a20b8066a20b9066a20ba066a20bb066a20bc066a20bd066a20be066a20bf066a20c0066a20c1066a20c2066a20" + "c3066a20c4066a20c5066a20c6066a20c7066a20c8066a20c9066a20ca066a20cb066a20cc066a20cd066a20ce066a" + "20cf066a20d0066a20d1066a20d2066a20d3066a20d4066a20d5066a20d6066a20d7066a20d8066a20d9066a20da06" + "6a20db066a20dc066a20dd066a20de066a20df066a20e0066a20e1066a20e2066a20e3066a20e4066a20e5066a20e6" + "066a20e7066a20e8066a20e9066a20ea066a20eb066a20ec066a20ed066a20ee066a20ef066a20f0066a20f1066a20" + "f2066a20f3066a20f4066a20f5066a20f6066a20f7066a20f8066a20f9066a20fa066a20fb066a20fc066a20fd066a" + "20fe066a20ff066a2080076a2081076a2082076a2083076a2084076a2085076a2086076a2087076a2088076a208907" + "6a208a076a208b076a208c076a208d076a208e076a208f076a2090076a2091076a2092076a2093076a2094076a2095" + "076a2096076a2097076a2098076a2099076a209a076a209b076a209c076a209d076a209e076a209f076a20a0076a20" + "a1076a20a2076a20a3076a20a4076a20a5076a20a6076a20a7076a20a8076a20a9076a20aa076a20ab076a20ac076a" + "20ad076a20ae076a20af076a20b0076a20b1076a20b2076a20b3076a20b4076a20b5076a20b6076a20b7076a20b807" + "6a20b9076a20ba076a20bb076a20bc076a20bd076a20be076a20bf076a20c0076a20c1076a20c2076a20c3076a20c4" + "076a20c5076a20c6076a20c7076a20c8076a20c9076a20ca076a20cb076a20cc076a20cd076a20ce076a20cf076a20" + "d0076a20d1076a20d2076a20d3076a20d4076a20d5076a20d6076a20d7076a20d8076a20d9076a20da076a20db076a" + "20dc076a20dd076a20de076a20df076a20e0076a20e1076a20e2076a20e3076a20e4076a20e5076a20e6076a20e707" + "6a0b002f0970726f647563657273010c70726f6365737365642d6279010e486f6d656272657720636c616e67063134" + "2e302e36"; extern std::string const kThousand1ParamsHex = "0061736d0100000001f2070260000060e9077f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" @@ -1477,99 +1263,95 @@ extern std::string const kThousand1ParamsHex = "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" - "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f017f03030200010503010002063809" - "7f004180080b7f004180080b7f004180080b7f00418088040b7f004180080b7f00418088040b7f00418080080b7f00" - "41000b7f0041010b07a8010c066d656d6f72790200115f5f7761736d5f63616c6c5f63746f72730000047465737400" - "010c5f5f64736f5f68616e646c6503000a5f5f646174615f656e6403010b5f5f737461636b5f6c6f7703020c5f5f73" - "7461636b5f6869676803030d5f5f676c6f62616c5f6261736503040b5f5f686561705f6261736503050a5f5f686561" - "705f656e6403060d5f5f6d656d6f72795f6261736503070c5f5f7461626c655f6261736503080aab1e0202000ba51e" - "00200020016a20026a20036a20046a20056a20066a20076a20086a20096a200a6a200b6a200c6a200d6a200e6a200f" - "6a20106a20116a20126a20136a20146a20156a20166a20176a20186a20196a201a6a201b6a201c6a201d6a201e6a20" - "1f6a20206a20216a20226a20236a20246a20256a20266a20276a20286a20296a202a6a202b6a202c6a202d6a202e6a" - "202f6a20306a20316a20326a20336a20346a20356a20366a20376a20386a20396a203a6a203b6a203c6a203d6a203e" - "6a203f6a20406a20416a20426a20436a20446a20456a20466a20476a20486a20496a204a6a204b6a204c6a204d6a20" - "4e6a204f6a20506a20516a20526a20536a20546a20556a20566a20576a20586a20596a205a6a205b6a205c6a205d6a" - "205e6a205f6a20606a20616a20626a20636a20646a20656a20666a20676a20686a20696a206a6a206b6a206c6a206d" - "6a206e6a206f6a20706a20716a20726a20736a20746a20756a20766a20776a20786a20796a207a6a207b6a207c6a20" - "7d6a207e6a207f6a2080016a2081016a2082016a2083016a2084016a2085016a2086016a2087016a2088016a208901" - "6a208a016a208b016a208c016a208d016a208e016a208f016a2090016a2091016a2092016a2093016a2094016a2095" - "016a2096016a2097016a2098016a2099016a209a016a209b016a209c016a209d016a209e016a209f016a20a0016a20" - "a1016a20a2016a20a3016a20a4016a20a5016a20a6016a20a7016a20a8016a20a9016a20aa016a20ab016a20ac016a" - "20ad016a20ae016a20af016a20b0016a20b1016a20b2016a20b3016a20b4016a20b5016a20b6016a20b7016a20b801" - "6a20b9016a20ba016a20bb016a20bc016a20bd016a20be016a20bf016a20c0016a20c1016a20c2016a20c3016a20c4" - "016a20c5016a20c6016a20c7016a20c8016a20c9016a20ca016a20cb016a20cc016a20cd016a20ce016a20cf016a20" - "d0016a20d1016a20d2016a20d3016a20d4016a20d5016a20d6016a20d7016a20d8016a20d9016a20da016a20db016a" - "20dc016a20dd016a20de016a20df016a20e0016a20e1016a20e2016a20e3016a20e4016a20e5016a20e6016a20e701" - "6a20e8016a20e9016a20ea016a20eb016a20ec016a20ed016a20ee016a20ef016a20f0016a20f1016a20f2016a20f3" - "016a20f4016a20f5016a20f6016a20f7016a20f8016a20f9016a20fa016a20fb016a20fc016a20fd016a20fe016a20" - "ff016a2080026a2081026a2082026a2083026a2084026a2085026a2086026a2087026a2088026a2089026a208a026a" - "208b026a208c026a208d026a208e026a208f026a2090026a2091026a2092026a2093026a2094026a2095026a209602" - "6a2097026a2098026a2099026a209a026a209b026a209c026a209d026a209e026a209f026a20a0026a20a1026a20a2" - "026a20a3026a20a4026a20a5026a20a6026a20a7026a20a8026a20a9026a20aa026a20ab026a20ac026a20ad026a20" - "ae026a20af026a20b0026a20b1026a20b2026a20b3026a20b4026a20b5026a20b6026a20b7026a20b8026a20b9026a" - "20ba026a20bb026a20bc026a20bd026a20be026a20bf026a20c0026a20c1026a20c2026a20c3026a20c4026a20c502" - "6a20c6026a20c7026a20c8026a20c9026a20ca026a20cb026a20cc026a20cd026a20ce026a20cf026a20d0026a20d1" - "026a20d2026a20d3026a20d4026a20d5026a20d6026a20d7026a20d8026a20d9026a20da026a20db026a20dc026a20" - "dd026a20de026a20df026a20e0026a20e1026a20e2026a20e3026a20e4026a20e5026a20e6026a20e7026a20e8026a" - "20e9026a20ea026a20eb026a20ec026a20ed026a20ee026a20ef026a20f0026a20f1026a20f2026a20f3026a20f402" - "6a20f5026a20f6026a20f7026a20f8026a20f9026a20fa026a20fb026a20fc026a20fd026a20fe026a20ff026a2080" - "036a2081036a2082036a2083036a2084036a2085036a2086036a2087036a2088036a2089036a208a036a208b036a20" - "8c036a208d036a208e036a208f036a2090036a2091036a2092036a2093036a2094036a2095036a2096036a2097036a" - "2098036a2099036a209a036a209b036a209c036a209d036a209e036a209f036a20a0036a20a1036a20a2036a20a303" - "6a20a4036a20a5036a20a6036a20a7036a20a8036a20a9036a20aa036a20ab036a20ac036a20ad036a20ae036a20af" - "036a20b0036a20b1036a20b2036a20b3036a20b4036a20b5036a20b6036a20b7036a20b8036a20b9036a20ba036a20" - "bb036a20bc036a20bd036a20be036a20bf036a20c0036a20c1036a20c2036a20c3036a20c4036a20c5036a20c6036a" - "20c7036a20c8036a20c9036a20ca036a20cb036a20cc036a20cd036a20ce036a20cf036a20d0036a20d1036a20d203" - "6a20d3036a20d4036a20d5036a20d6036a20d7036a20d8036a20d9036a20da036a20db036a20dc036a20dd036a20de" - "036a20df036a20e0036a20e1036a20e2036a20e3036a20e4036a20e5036a20e6036a20e7036a20e8036a20e9036a20" - "ea036a20eb036a20ec036a20ed036a20ee036a20ef036a20f0036a20f1036a20f2036a20f3036a20f4036a20f5036a" - "20f6036a20f7036a20f8036a20f9036a20fa036a20fb036a20fc036a20fd036a20fe036a20ff036a2080046a208104" - "6a2082046a2083046a2084046a2085046a2086046a2087046a2088046a2089046a208a046a208b046a208c046a208d" - "046a208e046a208f046a2090046a2091046a2092046a2093046a2094046a2095046a2096046a2097046a2098046a20" - "99046a209a046a209b046a209c046a209d046a209e046a209f046a20a0046a20a1046a20a2046a20a3046a20a4046a" - "20a5046a20a6046a20a7046a20a8046a20a9046a20aa046a20ab046a20ac046a20ad046a20ae046a20af046a20b004" - "6a20b1046a20b2046a20b3046a20b4046a20b5046a20b6046a20b7046a20b8046a20b9046a20ba046a20bb046a20bc" - "046a20bd046a20be046a20bf046a20c0046a20c1046a20c2046a20c3046a20c4046a20c5046a20c6046a20c7046a20" - "c8046a20c9046a20ca046a20cb046a20cc046a20cd046a20ce046a20cf046a20d0046a20d1046a20d2046a20d3046a" - "20d4046a20d5046a20d6046a20d7046a20d8046a20d9046a20da046a20db046a20dc046a20dd046a20de046a20df04" - "6a20e0046a20e1046a20e2046a20e3046a20e4046a20e5046a20e6046a20e7046a20e8046a20e9046a20ea046a20eb" - "046a20ec046a20ed046a20ee046a20ef046a20f0046a20f1046a20f2046a20f3046a20f4046a20f5046a20f6046a20" - "f7046a20f8046a20f9046a20fa046a20fb046a20fc046a20fd046a20fe046a20ff046a2080056a2081056a2082056a" - "2083056a2084056a2085056a2086056a2087056a2088056a2089056a208a056a208b056a208c056a208d056a208e05" - "6a208f056a2090056a2091056a2092056a2093056a2094056a2095056a2096056a2097056a2098056a2099056a209a" - "056a209b056a209c056a209d056a209e056a209f056a20a0056a20a1056a20a2056a20a3056a20a4056a20a5056a20" - "a6056a20a7056a20a8056a20a9056a20aa056a20ab056a20ac056a20ad056a20ae056a20af056a20b0056a20b1056a" - "20b2056a20b3056a20b4056a20b5056a20b6056a20b7056a20b8056a20b9056a20ba056a20bb056a20bc056a20bd05" - "6a20be056a20bf056a20c0056a20c1056a20c2056a20c3056a20c4056a20c5056a20c6056a20c7056a20c8056a20c9" - "056a20ca056a20cb056a20cc056a20cd056a20ce056a20cf056a20d0056a20d1056a20d2056a20d3056a20d4056a20" - "d5056a20d6056a20d7056a20d8056a20d9056a20da056a20db056a20dc056a20dd056a20de056a20df056a20e0056a" - "20e1056a20e2056a20e3056a20e4056a20e5056a20e6056a20e7056a20e8056a20e9056a20ea056a20eb056a20ec05" - "6a20ed056a20ee056a20ef056a20f0056a20f1056a20f2056a20f3056a20f4056a20f5056a20f6056a20f7056a20f8" - "056a20f9056a20fa056a20fb056a20fc056a20fd056a20fe056a20ff056a2080066a2081066a2082066a2083066a20" - "84066a2085066a2086066a2087066a2088066a2089066a208a066a208b066a208c066a208d066a208e066a208f066a" - "2090066a2091066a2092066a2093066a2094066a2095066a2096066a2097066a2098066a2099066a209a066a209b06" - "6a209c066a209d066a209e066a209f066a20a0066a20a1066a20a2066a20a3066a20a4066a20a5066a20a6066a20a7" - "066a20a8066a20a9066a20aa066a20ab066a20ac066a20ad066a20ae066a20af066a20b0066a20b1066a20b2066a20" - "b3066a20b4066a20b5066a20b6066a20b7066a20b8066a20b9066a20ba066a20bb066a20bc066a20bd066a20be066a" - "20bf066a20c0066a20c1066a20c2066a20c3066a20c4066a20c5066a20c6066a20c7066a20c8066a20c9066a20ca06" - "6a20cb066a20cc066a20cd066a20ce066a20cf066a20d0066a20d1066a20d2066a20d3066a20d4066a20d5066a20d6" - "066a20d7066a20d8066a20d9066a20da066a20db066a20dc066a20dd066a20de066a20df066a20e0066a20e1066a20" - "e2066a20e3066a20e4066a20e5066a20e6066a20e7066a20e8066a20e9066a20ea066a20eb066a20ec066a20ed066a" - "20ee066a20ef066a20f0066a20f1066a20f2066a20f3066a20f4066a20f5066a20f6066a20f7066a20f8066a20f906" - "6a20fa066a20fb066a20fc066a20fd066a20fe066a20ff066a2080076a2081076a2082076a2083076a2084076a2085" - "076a2086076a2087076a2088076a2089076a208a076a208b076a208c076a208d076a208e076a208f076a2090076a20" - "91076a2092076a2093076a2094076a2095076a2096076a2097076a2098076a2099076a209a076a209b076a209c076a" - "209d076a209e076a209f076a20a0076a20a1076a20a2076a20a3076a20a4076a20a5076a20a6076a20a7076a20a807" - "6a20a9076a20aa076a20ab076a20ac076a20ad076a20ae076a20af076a20b0076a20b1076a20b2076a20b3076a20b4" - "076a20b5076a20b6076a20b7076a20b8076a20b9076a20ba076a20bb076a20bc076a20bd076a20be076a20bf076a20" - "c0076a20c1076a20c2076a20c3076a20c4076a20c5076a20c6076a20c7076a20c8076a20c9076a20ca076a20cb076a" - "20cc076a20cd076a20ce076a20cf076a20d0076a20d1076a20d2076a20d3076a20d4076a20d5076a20d6076a20d707" - "6a20d8076a20d9076a20da076a20db076a20dc076a20dd076a20de076a20df076a20e0076a20e1076a20e2076a20e3" - "076a20e4076a20e5076a20e6076a20e7076a20e8076a0b007f0970726f647563657273010c70726f6365737365642d" - "62790105636c616e675f31392e312e352d776173692d73646b202868747470733a2f2f6769746875622e636f6d2f6c" - "6c766d2f6c6c766d2d70726f6a65637420616234623561326462353832393538616631656533303861373930636664" - "623432626432343732302900490f7461726765745f6665617475726573042b0f6d757461626c652d676c6f62616c73" - "2b087369676e2d6578742b0f7265666572656e63652d74797065732b0a6d756c746976616c7565"; + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f017f03030200010503010002062406" + "7f004180080b7f004180080b7f004180080b7f00418088040b7f0041000b7f0041010b077e09066d656d6f72790200" + "115f5f7761736d5f63616c6c5f63746f72730000047465737400010c5f5f64736f5f68616e646c6503000a5f5f6461" + "74615f656e6403010d5f5f676c6f62616c5f6261736503020b5f5f686561705f6261736503030d5f5f6d656d6f7279" + "5f6261736503040c5f5f7461626c655f6261736503050aab1e0202000ba51e00200020016a20026a20036a20046a20" + "056a20066a20076a20086a20096a200a6a200b6a200c6a200d6a200e6a200f6a20106a20116a20126a20136a20146a" + "20156a20166a20176a20186a20196a201a6a201b6a201c6a201d6a201e6a201f6a20206a20216a20226a20236a2024" + "6a20256a20266a20276a20286a20296a202a6a202b6a202c6a202d6a202e6a202f6a20306a20316a20326a20336a20" + "346a20356a20366a20376a20386a20396a203a6a203b6a203c6a203d6a203e6a203f6a20406a20416a20426a20436a" + "20446a20456a20466a20476a20486a20496a204a6a204b6a204c6a204d6a204e6a204f6a20506a20516a20526a2053" + "6a20546a20556a20566a20576a20586a20596a205a6a205b6a205c6a205d6a205e6a205f6a20606a20616a20626a20" + "636a20646a20656a20666a20676a20686a20696a206a6a206b6a206c6a206d6a206e6a206f6a20706a20716a20726a" + "20736a20746a20756a20766a20776a20786a20796a207a6a207b6a207c6a207d6a207e6a207f6a2080016a2081016a" + "2082016a2083016a2084016a2085016a2086016a2087016a2088016a2089016a208a016a208b016a208c016a208d01" + "6a208e016a208f016a2090016a2091016a2092016a2093016a2094016a2095016a2096016a2097016a2098016a2099" + "016a209a016a209b016a209c016a209d016a209e016a209f016a20a0016a20a1016a20a2016a20a3016a20a4016a20" + "a5016a20a6016a20a7016a20a8016a20a9016a20aa016a20ab016a20ac016a20ad016a20ae016a20af016a20b0016a" + "20b1016a20b2016a20b3016a20b4016a20b5016a20b6016a20b7016a20b8016a20b9016a20ba016a20bb016a20bc01" + "6a20bd016a20be016a20bf016a20c0016a20c1016a20c2016a20c3016a20c4016a20c5016a20c6016a20c7016a20c8" + "016a20c9016a20ca016a20cb016a20cc016a20cd016a20ce016a20cf016a20d0016a20d1016a20d2016a20d3016a20" + "d4016a20d5016a20d6016a20d7016a20d8016a20d9016a20da016a20db016a20dc016a20dd016a20de016a20df016a" + "20e0016a20e1016a20e2016a20e3016a20e4016a20e5016a20e6016a20e7016a20e8016a20e9016a20ea016a20eb01" + "6a20ec016a20ed016a20ee016a20ef016a20f0016a20f1016a20f2016a20f3016a20f4016a20f5016a20f6016a20f7" + "016a20f8016a20f9016a20fa016a20fb016a20fc016a20fd016a20fe016a20ff016a2080026a2081026a2082026a20" + "83026a2084026a2085026a2086026a2087026a2088026a2089026a208a026a208b026a208c026a208d026a208e026a" + "208f026a2090026a2091026a2092026a2093026a2094026a2095026a2096026a2097026a2098026a2099026a209a02" + "6a209b026a209c026a209d026a209e026a209f026a20a0026a20a1026a20a2026a20a3026a20a4026a20a5026a20a6" + "026a20a7026a20a8026a20a9026a20aa026a20ab026a20ac026a20ad026a20ae026a20af026a20b0026a20b1026a20" + "b2026a20b3026a20b4026a20b5026a20b6026a20b7026a20b8026a20b9026a20ba026a20bb026a20bc026a20bd026a" + "20be026a20bf026a20c0026a20c1026a20c2026a20c3026a20c4026a20c5026a20c6026a20c7026a20c8026a20c902" + "6a20ca026a20cb026a20cc026a20cd026a20ce026a20cf026a20d0026a20d1026a20d2026a20d3026a20d4026a20d5" + "026a20d6026a20d7026a20d8026a20d9026a20da026a20db026a20dc026a20dd026a20de026a20df026a20e0026a20" + "e1026a20e2026a20e3026a20e4026a20e5026a20e6026a20e7026a20e8026a20e9026a20ea026a20eb026a20ec026a" + "20ed026a20ee026a20ef026a20f0026a20f1026a20f2026a20f3026a20f4026a20f5026a20f6026a20f7026a20f802" + "6a20f9026a20fa026a20fb026a20fc026a20fd026a20fe026a20ff026a2080036a2081036a2082036a2083036a2084" + "036a2085036a2086036a2087036a2088036a2089036a208a036a208b036a208c036a208d036a208e036a208f036a20" + "90036a2091036a2092036a2093036a2094036a2095036a2096036a2097036a2098036a2099036a209a036a209b036a" + "209c036a209d036a209e036a209f036a20a0036a20a1036a20a2036a20a3036a20a4036a20a5036a20a6036a20a703" + "6a20a8036a20a9036a20aa036a20ab036a20ac036a20ad036a20ae036a20af036a20b0036a20b1036a20b2036a20b3" + "036a20b4036a20b5036a20b6036a20b7036a20b8036a20b9036a20ba036a20bb036a20bc036a20bd036a20be036a20" + "bf036a20c0036a20c1036a20c2036a20c3036a20c4036a20c5036a20c6036a20c7036a20c8036a20c9036a20ca036a" + "20cb036a20cc036a20cd036a20ce036a20cf036a20d0036a20d1036a20d2036a20d3036a20d4036a20d5036a20d603" + "6a20d7036a20d8036a20d9036a20da036a20db036a20dc036a20dd036a20de036a20df036a20e0036a20e1036a20e2" + "036a20e3036a20e4036a20e5036a20e6036a20e7036a20e8036a20e9036a20ea036a20eb036a20ec036a20ed036a20" + "ee036a20ef036a20f0036a20f1036a20f2036a20f3036a20f4036a20f5036a20f6036a20f7036a20f8036a20f9036a" + "20fa036a20fb036a20fc036a20fd036a20fe036a20ff036a2080046a2081046a2082046a2083046a2084046a208504" + "6a2086046a2087046a2088046a2089046a208a046a208b046a208c046a208d046a208e046a208f046a2090046a2091" + "046a2092046a2093046a2094046a2095046a2096046a2097046a2098046a2099046a209a046a209b046a209c046a20" + "9d046a209e046a209f046a20a0046a20a1046a20a2046a20a3046a20a4046a20a5046a20a6046a20a7046a20a8046a" + "20a9046a20aa046a20ab046a20ac046a20ad046a20ae046a20af046a20b0046a20b1046a20b2046a20b3046a20b404" + "6a20b5046a20b6046a20b7046a20b8046a20b9046a20ba046a20bb046a20bc046a20bd046a20be046a20bf046a20c0" + "046a20c1046a20c2046a20c3046a20c4046a20c5046a20c6046a20c7046a20c8046a20c9046a20ca046a20cb046a20" + "cc046a20cd046a20ce046a20cf046a20d0046a20d1046a20d2046a20d3046a20d4046a20d5046a20d6046a20d7046a" + "20d8046a20d9046a20da046a20db046a20dc046a20dd046a20de046a20df046a20e0046a20e1046a20e2046a20e304" + "6a20e4046a20e5046a20e6046a20e7046a20e8046a20e9046a20ea046a20eb046a20ec046a20ed046a20ee046a20ef" + "046a20f0046a20f1046a20f2046a20f3046a20f4046a20f5046a20f6046a20f7046a20f8046a20f9046a20fa046a20" + "fb046a20fc046a20fd046a20fe046a20ff046a2080056a2081056a2082056a2083056a2084056a2085056a2086056a" + "2087056a2088056a2089056a208a056a208b056a208c056a208d056a208e056a208f056a2090056a2091056a209205" + "6a2093056a2094056a2095056a2096056a2097056a2098056a2099056a209a056a209b056a209c056a209d056a209e" + "056a209f056a20a0056a20a1056a20a2056a20a3056a20a4056a20a5056a20a6056a20a7056a20a8056a20a9056a20" + "aa056a20ab056a20ac056a20ad056a20ae056a20af056a20b0056a20b1056a20b2056a20b3056a20b4056a20b5056a" + "20b6056a20b7056a20b8056a20b9056a20ba056a20bb056a20bc056a20bd056a20be056a20bf056a20c0056a20c105" + "6a20c2056a20c3056a20c4056a20c5056a20c6056a20c7056a20c8056a20c9056a20ca056a20cb056a20cc056a20cd" + "056a20ce056a20cf056a20d0056a20d1056a20d2056a20d3056a20d4056a20d5056a20d6056a20d7056a20d8056a20" + "d9056a20da056a20db056a20dc056a20dd056a20de056a20df056a20e0056a20e1056a20e2056a20e3056a20e4056a" + "20e5056a20e6056a20e7056a20e8056a20e9056a20ea056a20eb056a20ec056a20ed056a20ee056a20ef056a20f005" + "6a20f1056a20f2056a20f3056a20f4056a20f5056a20f6056a20f7056a20f8056a20f9056a20fa056a20fb056a20fc" + "056a20fd056a20fe056a20ff056a2080066a2081066a2082066a2083066a2084066a2085066a2086066a2087066a20" + "88066a2089066a208a066a208b066a208c066a208d066a208e066a208f066a2090066a2091066a2092066a2093066a" + "2094066a2095066a2096066a2097066a2098066a2099066a209a066a209b066a209c066a209d066a209e066a209f06" + "6a20a0066a20a1066a20a2066a20a3066a20a4066a20a5066a20a6066a20a7066a20a8066a20a9066a20aa066a20ab" + "066a20ac066a20ad066a20ae066a20af066a20b0066a20b1066a20b2066a20b3066a20b4066a20b5066a20b6066a20" + "b7066a20b8066a20b9066a20ba066a20bb066a20bc066a20bd066a20be066a20bf066a20c0066a20c1066a20c2066a" + "20c3066a20c4066a20c5066a20c6066a20c7066a20c8066a20c9066a20ca066a20cb066a20cc066a20cd066a20ce06" + "6a20cf066a20d0066a20d1066a20d2066a20d3066a20d4066a20d5066a20d6066a20d7066a20d8066a20d9066a20da" + "066a20db066a20dc066a20dd066a20de066a20df066a20e0066a20e1066a20e2066a20e3066a20e4066a20e5066a20" + "e6066a20e7066a20e8066a20e9066a20ea066a20eb066a20ec066a20ed066a20ee066a20ef066a20f0066a20f1066a" + "20f2066a20f3066a20f4066a20f5066a20f6066a20f7066a20f8066a20f9066a20fa066a20fb066a20fc066a20fd06" + "6a20fe066a20ff066a2080076a2081076a2082076a2083076a2084076a2085076a2086076a2087076a2088076a2089" + "076a208a076a208b076a208c076a208d076a208e076a208f076a2090076a2091076a2092076a2093076a2094076a20" + "95076a2096076a2097076a2098076a2099076a209a076a209b076a209c076a209d076a209e076a209f076a20a0076a" + "20a1076a20a2076a20a3076a20a4076a20a5076a20a6076a20a7076a20a8076a20a9076a20aa076a20ab076a20ac07" + "6a20ad076a20ae076a20af076a20b0076a20b1076a20b2076a20b3076a20b4076a20b5076a20b6076a20b7076a20b8" + "076a20b9076a20ba076a20bb076a20bc076a20bd076a20be076a20bf076a20c0076a20c1076a20c2076a20c3076a20" + "c4076a20c5076a20c6076a20c7076a20c8076a20c9076a20ca076a20cb076a20cc076a20cd076a20ce076a20cf076a" + "20d0076a20d1076a20d2076a20d3076a20d4076a20d5076a20d6076a20d7076a20d8076a20d9076a20da076a20db07" + "6a20dc076a20dd076a20de076a20df076a20e0076a20e1076a20e2076a20e3076a20e4076a20e5076a20e6076a20e7" + "076a20e8076a0b002f0970726f647563657273010c70726f6365737365642d6279010e486f6d656272657720636c61" + "6e670631342e302e36"; extern std::string const kOpcReservedHex = "0061736d010000000105016000017f03030200000404017000010503010001060b027f0141000b7e0142000b071401" @@ -1578,7 +1360,1084 @@ extern std::string const kOpcReservedHex = "01010101010101010101010101010101410b0b0b0a010041000b0474657374"; extern std::string const kImpExpHex = - "0061736d0100000001100360027f7f017f6000017f60017f017f02330203656e760e6765745f6c65646765725f7371" - "6e000003656e76166765745f706172656e745f6c65646765725f686173680000030403010201050301000107310406" - "6d656d6f72790200096578705f66756e63310002096578705f66756e633200030c746573745f696d706f7274730004" - "0a2b03040041010b0700200041026c0b1c01027f4120410410001a41202802002100410041201001210120000b"; + "0061736d0100000001100360027f7f017f6000017f60017f017f02290203656e760a6c6467725f696e646578000003" + "656e7610706172656e745f6c6467725f6861736800000304030102010503010001073104066d656d6f727902000965" + "78705f66756e63310002096578705f66756e633200030c746573745f696d706f72747300040a2b03040041010b0700" + "200041026c0b1c01027f4120410410001a41202802002100410041201001210120000b"; + +extern std::string const float_0WasmHex = + "0061736d0100000001290560057f7f7f7f7f017f60047e7f7f7f017f60077f7f7f7f7f7f7f017f60047f7f7f7f017f" + "6000017f02560408686f73745f6c6962057472616365000008686f73745f6c69620e666c6f61745f66726f6d5f696e" + "74000108686f73745f6c696209666c6f61745f737562000208686f73745f6c696209666c6f61745f636d7000030302" + "010405030100110619037f01418080c0000b7f00419681c0000b7f0041a081c0000b072e04066d656d6f7279020006" + "66696e69736800040a5f5f646174615f656e6403010b5f5f686561705f6261736503020a880201850201027f230041" + "206b22002400418080c000411541014100410010001a200041086a410036020020004200370300200041186a410036" + "02002000420037031002400240420a2000410c41001001410c4604402000410c2000410c200041106a2201410c4100" + "1002410c470d0102402001410c2001410c1003450440419580c000411741014100410010001a0c010b41ac80c00041" + "1641014100410010001a0b200041106a410c41c280c000410c100345044041ce80c000411a41014100410010001a0c" + "030b41e880c000411941014100410010001a0c020b418181c000411541014100410010001a0c010b418181c0004115" + "41014100410010001a0b200041206a240041010b0ba0010100418080c0000b96010a24242420746573745f666c6f61" + "745f30202424242020666c6f6174203020636f6d706172653a20676f6f642020666c6f6174203020636f6d70617265" + "3a206261640000000000000000800000002020464c4f41545f5a45524f20636f6d706172653a20676f6f642020464c" + "4f41545f5a45524f20636f6d706172653a206261642020666c6f61742031302d31303a206661696c6564004d097072" + "6f64756365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e" + "38372e30202831373036376539616320323032352d30352d303929002c0f7461726765745f6665617475726573022b" + "0f6d757461626c652d676c6f62616c732b087369676e2d657874"; + +extern std::string const codecovTestsWasmHex = + "0061736d0100000001570b60067f7f7f7f7f7f017f60047f7f7f7f017f60027f7f017f60037f7f7f017f60077f7f7f" + "7f7f7f7f017f60057f7f7f7f7f017f60087f7f7f7f7f7f7f7f017f60017f017f60037f7f7e017f60047f7f7f7f0060" + "00017f02c60a3b08686f73745f6c6962057472616365000508686f73745f6c69620974726163655f6e756d00080868" + "6f73745f6c69620a6c6467725f696e646578000208686f73745f6c696210706172656e745f6c6467725f74696d6500" + "0208686f73745f6c696210706172656e745f6c6467725f68617368000208686f73745f6c696208626173655f666565" + "000208686f73745f6c696211616d656e646d656e745f656e61626c6564000208686f73745f6c69620874785f666965" + "6c64000308686f73745f6c69620e6163636f756e74726f6f745f6964000108686f73745f6c69620863616368655f6c" + "65000308686f73745f6c69620d686f6d655f6c655f6669656c64000308686f73745f6c6962086c655f6669656c6400" + "0108686f73745f6c69620874785f696e6e6572000108686f73745f6c69620d686f6d655f6c655f696e6e6572000108" + "686f73745f6c6962086c655f696e6e6572000508686f73745f6c69620a74785f6172725f6c656e000708686f73745f" + "6c69620f686f6d655f6c655f6172725f6c656e000708686f73745f6c69620a6c655f6172725f6c656e000208686f73" + "745f6c69621074785f696e6e65725f6172725f6c656e000208686f73745f6c696215686f6d655f6c655f696e6e6572" + "5f6172725f6c656e000208686f73745f6c6962106c655f696e6e65725f6172725f6c656e000308686f73745f6c6962" + "087365745f64617461000208686f73745f6c69620b7368613531325f68616c66000108686f73745f6c696209636865" + "636b5f736967000008686f73745f6c6962076e66745f757269000008686f73745f6c69620a6e66745f697373756572" + "000108686f73745f6c6962096e66745f7461786f6e000108686f73745f6c6962096e66745f666c616773000208686f" + "73745f6c69620c6e66745f786665725f666565000208686f73745f6c69620a6e66745f73657269616c000108686f73" + "745f6c69620a74726163655f61636374000108686f73745f6c69620974726163655f616d74000108686f73745f6c69" + "6208636865636b5f6964000008686f73745f6c69620f666c6f61745f66726f6d5f75696e74000508686f73745f6c69" + "620c74727573746c696e655f6964000608686f73745f6c696206616d6d5f6964000008686f73745f6c69620d637265" + "64656e7469616c5f6964000608686f73745f6c69620a6d70746f6b656e5f6964000008686f73745f6c69620c747261" + "63655f78666c6f6174000108686f73745f6c696209666c6f61745f636d70000108686f73745f6c696209666c6f6174" + "5f616464000408686f73745f6c696209666c6f61745f737562000408686f73745f6c69620a666c6f61745f6d756c74" + "000408686f73745f6c696209666c6f61745f646976000408686f73745f6c69620a666c6f61745f726f6f7400000868" + "6f73745f6c696209666c6f61745f706f77000008686f73745f6c696209657363726f775f6964000008686f73745f6c" + "69620f6d70745f69737375616e63655f6964000008686f73745f6c69620c6e66745f6f666665725f6964000008686f" + "73745f6c6962086f666665725f6964000008686f73745f6c6962096f7261636c655f6964000008686f73745f6c6962" + "0a7061796368616e5f6964000608686f73745f6c6962167065726d697373696f6e65645f646f6d61696e5f69640000" + "08686f73745f6c6962097469636b65745f6964000008686f73745f6c6962087661756c745f6964000008686f73745f" + "6c69620b64656c65676174655f6964000008686f73745f6c6962126465706f7369745f707265617574685f69640000" + "08686f73745f6c6962066469645f6964000108686f73745f6c69620a7369676e6572735f69640001030302090a0503" + "0100110619037f01418080c0000b7f0041cf9bc0000b7f0041d09bc0000b072e04066d656d6f727902000666696e69" + "7368003c0a5f5f646174615f656e6403010b5f5f686561705f6261736503020a8c2f02460002402000200147044020" + "02200341014100410010001a20004100480d01418b80c000410b2000ad1001000b200220032000ac10011a0f0b418b" + "80c000410b2000ac1001000bc22e020b7f017e23004190026b22002400419680c000412341014100410010001a2000" + "4100360260200041e0006a220241041002410441888ac000410a103b20004100360260200241041003410441928ac0" + "004110103b200041f8006a22054200370300200041f0006a22014200370300200041e8006a22064200370300200042" + "00370360200241201004412041a28ac0004110103b20004100360260200241041005410441b28ac0004108103b2000" + "41106a2208428182848890a0c08001370300200041186a2209428182848890a0c08001370300200041206a220a4281" + "82848890a0c080013703002000428182848890a0c0800137030841b980c000410e1006410141c780c0004111103b20" + "0041086a41201006410141c780c0004111103b418180202002411410072203411446044002402000412e6a200041e2" + "006a2d00003a0000200020002900673703e8012000200041ec006a2900003700ed01200020002f00603b012c200020" + "002903e8013703a801200020002900ed013700ad012000200028006336002f200041386a20002900ad013700002000" + "20002903a801370033200542003703002001420037030020064200370300200042003703602000412c6a2205411420" + "024120100822034120470d00200041c2006a20002d00623a0000200041f0016a2207200041ef006a290000220b3703" + "00200041cf006a200b370000200041d7006a200041f7006a290000370000200041df006a200041ff006a2d00003a00" + "00200020002f01603b01402000200028006336004320002000290067370047200041406b412041001009410141d880" + "c0004108103b2001410036020020064200370300200042003703604181802020024114100a411441ba8ac000410d10" + "3b20014100360200200642003703002000420037036041014181802020024114100b411441c78ac0004108103b0240" + "4100200041e4006a22046b410371220320046a220120044d0d0020030440200321060340200441003a000020044101" + "6a2104200641016b22060d000b0b200341016b4107490d000340200441003a0000200441076a41003a000020044106" + "6a41003a0000200441056a41003a0000200441046a41003a0000200441036a41003a0000200441026a41003a000020" + "0441016a41003a0000200441086a22042001470d000b0b2001413c20036b2203417c716a220420014b044003402001" + "4100360200200141046a22012004490d000b0b024020042003410371220320046a22064f0d00200322010440034020" + "0441003a0000200441016a2104200141016b22010d000b0b200341016b4107490d000340200441003a000020044107" + "6a41003a0000200441066a41003a0000200441056a41003a0000200441046a41003a0000200441036a41003a000020" + "0441026a41003a0000200441016a41003a0000200441086a22042006470d000b0b200041043602a001200041818020" + "360260200041f8016a2203410036020020074200370300200042003703e80120024104200041e8016a22014114100c" + "411441cf8ac0004108103b2003410036020020074200370300200042003703e801200220002802a00120014114100d" + "411441d78ac000410d103b2003410036020020074200370300200042003703e8014101200220002802a00120014114" + "100e411441e48ac0004108103b4189803c100f412041e080c000410a103b4189803c1010412041ea80c000410f103b" + "41014189803c1011412041f980c000410a103b200220002802a00110124120418381c0004110103b200220002802a0" + "0110134120419381c0004115103b4101200220002802a0011014412041a881c0004110103b200541141015411441b8" + "81c0004108103b20004180026a220642003703002003420037030020074200370300200042003703e8012002200028" + "02a001200141201016412041ec8ac000410b103b41c081c000410c41cc81c000410b41d781c000410e1017410141e5" + "81c0004109103b200041c0016a200a290300370300200041b8016a2009290300370300200041b0016a200829030037" + "0300200020002903083703a801200341003b010020074200370300200042003703e80120054114200041a8016a2204" + "4120200141121018411241f78ac0004107103b2003410036020020074200370300200042003703e801200441202001" + "41141019411441fe8ac000410a103b200041003602e8012004412020014104101a410441888bc0004109103b200441" + "20101b410841ee81c0004109103b20044120101c410a41f781c000410c103b200041003602e8012004412020014104" + "101d410441918bc000410a103b418382c000410d20054114101e4100419082c000410a103b418382c000410d419a82" + "c0004108101f410041a282c0004109103b418382c000410d41ab82c0004108101f410041b382c000410e103b417f41" + "041004417141c182c0004118103b200041003602e8012001417f10044171419b8bc0004118103b200041ea016a4100" + "3a0000200041003b01e801200141031004417d41b38bc000411e103b200041003602e8012001418094ebdc03100441" + "7341d18bc000411d103b4102100f416f41d982c0004119103b417f20002802a0011012417141f282c0004118103b20" + "02417f10124171418a83c0004118103b20024181081012417441a283c0004119103b200041e094ebdc036a22082000" + "2802a0011012417341bb83c0004118103b200642003703002003420037030020074200370300200042003703e80120" + "05411420084108200141201020417341ee8bc0004114103b2006420037030020034200370300200742003703002000" + "42003703e8012005411420054114200141201020417141828cc0004116103b20064200370300200342003703002007" + "4200370300200042003703e801200841082001412041001021417341988cc0004117103b2006420037030020034200" + "37030020074200370300200042003703e801200220002802a0012001412041001021417141af8cc0004120103b2008" + "20002802a00141011009417341d383c0004110103b200220002802a00141011009417141e383c0004112103b200642" + "003703002003420037030020074200370300200042003703e801200820002802a001200141201008417341cf8cc000" + "4116103b200642003703002003420037030020074200370300200042003703e801200220002802a001200141201008" + "417141e58cc0004118103b200642003703002003420037030020074200370300200042003703e80120054114200541" + "14200820002802a001200141201022417341fd8cc000411d103b200642003703002003420037030020074200370300" + "200042003703e8012005411420054114200220002802a0012001412010224171419a8dc000411f103b200642003703" + "002003420037030020074200370300200042003703e80141bb9bc0004114200820002802a001200141201023417341" + "b98dc0004115103b200642003703002003420037030020074200370300200042003703e80141bb9bc0004114200220" + "002802a001200141201023417141ce8dc000411b103b20064200370300200342003703002007420037030020004200" + "3703e80141bb9bc000411441f583c0004114200141201023417141e98dc0004125103b200642003703002003420037" + "030020074200370300200042003703e801418984c000412841bb9bc00041142001412010234171418e8ec000412110" + "3b200041dc016a2000413c6a280100360200200041d4016a200041346a2901003702002000200029012c3702cc0120" + "0041808080083602c801200041003b01e801200041c8016a2209411841bb9bc0004114200141021023417141af8ec0" + "00410a103b200820002802a001422a1001417341b184c0004111103b200041003b01e8014102200141021007416f41" + "b98ec0004117103b200041003b01e801410220014102100a416f41d08ec000411c103b200041003b01e80141014102" + "20014102100b416f41ec8ec0004117103b4102100f416f41d982c0004119103b41021010416f41c284c000411e103b" + "410141021011416f41e084c0004119103b41b980c0004181081006417441f984c000411f103b41b980c00041c10010" + "064174419885c000411a103b200041003b01e801200241810820014102100c417441838fc0004116103b200041003b" + "01e801200241810820014102100d417441998fc000411b103b200041003b01e8014101200241810820014102100e41" + "7441b48fc0004116103b20024181081012417441b285c000411e103b20024181081013417441d085c0004123103b41" + "0120024181081014417441f385c000411e103b200241812010154174419186c0004116103b418382c00041810841cc" + "81c000410b41d781c000410e1017417441e581c0004109103b418382c000410d41cc81c00041810841d781c000410e" + "1017417441e581c0004109103b418382c000410d41cc81c000410b41d781c0004181081017417441e581c000410910" + "3b200041003b01e8012002418108200141021016417441ca8fc0004119103b200041003b01e80141bb9bc000418108" + "41bb9bc0004114200141021023417441e38fc0004114103b200041003b01e801200541142005411420024181082001" + "41021024417441f78fc000411b103b200041003b01e8012009418108200541142001410210254174419290c000411e" + "103b418382c000410d200820002802a00141001000417341a786c000410f103b200042d487b6f4c7d4b1c0003700e0" + "01418382c000410d200041e095ebdc036a220441081026417341b686c0004116103b418382c000410d200820002802" + "a001101f417341cc86c0004113103b20044108200041e0016a220841081027417341df86c0004114103b2008410820" + "0441081027417341f386c0004114103b200041003b01e80120044108200841082001410241001028417341b090c000" + "4114103b200041003b01e80120084108200441082001410241001028417341c490c0004114103b200041003b01e801" + "20044108200841082001410241001029417341d890c0004114103b200041003b01e801200841082004410820014102" + "41001029417341ec90c0004114103b200041003b01e8012004410820084108200141024100102a4173418091c00041" + "15103b200041003b01e8012008410820044108200141024100102a4173419591c0004115103b200041003b01e80120" + "04410820084108200141024100102b417341aa91c0004114103b200041003b01e80120084108200441082001410241" + "00102b417341be91c0004114103b200041003b01e801200441084103200141024100102c417341d291c0004114103b" + "200041003b01e801200441084103200141024100102d417341e691c0004113103b2006420037030020034200370300" + "20074200370300200042003703e801200541142005411420014120102e417141f991c000411b103b20064200370300" + "2003420037030020074200370300200042003703e801200541142005411420014120102f4171419492c0004121103b" + "200642003703002003420037030020074200370300200042003703e8012005411420054114200141201030417141b5" + "92c000411e103b200642003703002003420037030020074200370300200042003703e8012005411420054114200141" + "201031417141d392c000411a103b200642003703002003420037030020074200370300200042003703e80120054114" + "20054114200141201032417141ed92c000411b103b2006420037030020034200370300200742003703002000420037" + "03e8012005411420054114200541142001412010334171418893c000411c103b200642003703002003420037030020" + "074200370300200042003703e8012005411420054114200141201034417141a493c0004128103b2006420037030020" + "03420037030020074200370300200042003703e8012005411420054114200141201035417141cc93c000411b103b20" + "0642003703002003420037030020074200370300200042003703e8012005411420054114200141201036417141e793" + "c000411a103b200220002802a001410010094171418787c000411b103b200041003b01e80120054114200220002802" + "a0012001410210184171418194c000411a103b200041003b01e801200220002802a0012001410210194171419b94c0" + "00411d103b200041003b01e801200220002802a00120014102101a417141b894c000411c103b200220002802a00110" + "1b417141a287c000411c103b200220002802a001101c417141be87c000411f103b200041003602e801200220002802" + "a00120014104101d417141d494c000411d103b200041003b01e801200220002802a001200141021008417141f194c0" + "004124103b200041808080083602e801200041003b018e02200220002802a001200141042000418e026a2203410210" + "204171419595c000411e103b200041003b018e02200220002802a00122062005411420022006200341021024417141" + "b395c0004124103b200041003b018e0220054114200220002802a001220620022006200341021024417141d795c000" + "4124103b200041003b018e02200220002802a00120054114200341021037417141fb95c0004122103b200041003b01" + "8e0220054114200220002802a0012003410210374171419d96c0004122103b200041003b018e02200220002802a001" + "20054114200341021038417141bf96c0004129103b200041003b018e0220054114200220002802a001200341021038" + "417141e896c0004129103b200041003b018e02200220002802a0012003410210394171419197c000411c103b200041" + "003b018e02200220002802a0012001410420034102102e417141ad97c000411f103b200041003b018e022002200028" + "02a0012005411441f583c0004114200341021022417141cc97c0004123103b200041003b018e022005411420022000" + "2802a00141f583c0004114200341021022417141ef97c0004123103b200041003b018e02200220002802a001200141" + "0420034102102f4171419298c0004125103b200041003b018e0220094118200220002802a001200341021025417141" + "b798c0004120103b200041003b018e02200220002802a00120014104200341021030417141d798c0004122103b2000" + "41003b018e02200220002802a00120014104200341021031417141f998c000411e103b200041003b018e0220022000" + "2802a001200141042003410210324171419799c000411f103b200041003b018e02200220002802a001200541142001" + "4104200341021033417141b699c0004121103b200041003b018e0220054114200220002802a0012001410420034102" + "1033417141d799c0004121103b200041003b018e02200220002802a00120014104200341021034417141f899c00041" + "2c103b200041003b018e02200220002802a00120034102103a417141a49ac0004120103b200041003b018e02200220" + "002802a00120014104200341021035417141c49ac000411f103b200041003b018e02200220002802a0012001410420" + "0341021036417141e39ac000411e103b200041003b018e02200220002802a00141dd87c00041202003410210184171" + "41819bc000411d103b418382c000410d200220002802a001101e417141fd87c0004120103b418396abdd03410d41dd" + "87c0004120410010004173419d88c0004110103b418396abdd03410d200841081026417341ad88c0004117103b4183" + "96abdd03410d20054114101e417341c488c0004115103b418396abdd03410d41ab82c0004108101f417341d988c000" + "4114103b200220002802a001200241810841001000417441ed88c000410e103b200241810842011001417441fb88c0" + "004112103b418382c0004181082008410810264174418d89c0004115103b418382c00041810820054114101e417441" + "a289c0004113103b418382c00041810841ab82c0004108101f417441b589c0004112103b418382c000410d20022000" + "2802a001101f417141c789c0004116103b200041003b018e02200220002802a001200541142003410210254171419e" + "9bc000411d103b418382c000410d200220002802a00141021000417141dd89c0004114103b4101410020054114101e" + "410041f189c0004117103b20004190026a240041010f0b0b418080c000410b417f20032003417f4e1bac1001000b0b" + "a61b0200418080c0000b89046572726f725f636f64653d54455354204641494c45442424242424205354415254494e" + "47205741534d20455845435554494f4e202424242424746573745f616d656e646d656e74616d656e646d656e745f65" + "6e61626c656463616368655f6c6574785f6172725f6c656e686f6d655f6c655f6172725f6c656e6c655f6172725f6c" + "656e74785f696e6e65725f6172725f6c656e686f6d655f6c655f696e6e65725f6172725f6c656e6c655f696e6e6572" + "5f6172725f6c656e7365745f6461746174657374206d65737361676574657374207075626b65797465737420736967" + "6e6174757265636865636b5f7369676e66745f666c6167736e66745f786665725f66656574657374696e6720747261" + "636574726163655f61636374400000000000005f74726163655f616d74400000000000000074726163655f616d745f" + "7a65726f706172656e745f6c6467725f686173685f6e65675f70747274785f6172725f6c656e5f696e76616c69645f" + "736669656c6474785f696e6e65725f6172725f6c656e5f6e65675f70747274785f696e6e65725f6172725f6c656e5f" + "6e65675f6c656e74785f696e6e65725f6172725f6c656e5f746f6f5f6c6f6e6774785f696e6e65725f6172725f6c65" + "6e5f7074725f6f6f6263616368655f6c655f7074725f6f6f6263616368655f6c655f77726f6e675f6c656e55534430" + "303030303030303030303030303030300041b184c0000b8a1774726163655f6e756d5f6f6f625f737472686f6d655f" + "6c655f6172725f6c656e5f696e76616c69645f736669656c646c655f6172725f6c656e5f696e76616c69645f736669" + "656c64616d656e646d656e745f656e61626c65645f746f6f5f6269675f736c696365616d656e646d656e745f656e61" + "626c65645f746f6f5f6c6f6e6774785f696e6e65725f6172725f6c656e5f746f6f5f6269675f736c696365686f6d65" + "5f6c655f696e6e65725f6172725f6c656e5f746f6f5f6269675f736c6963656c655f696e6e65725f6172725f6c656e" + "5f746f6f5f6269675f736c6963657365745f646174615f746f6f5f6269675f736c69636574726163655f6f6f625f73" + "6c69636574726163655f78666c6f61745f6f6f625f736c69636574726163655f616d745f6f6f625f736c696365666c" + "6f61745f636d705f6f6f625f736c69636531666c6f61745f636d705f6f6f625f736c6963653263616368655f6c655f" + "77726f6e675f73697a655f75696e743235366e66745f666c6167735f77726f6e675f73697a655f75696e743235366e" + "66745f786665725f6665655f77726f6e675f73697a655f75696e743235363030303030303030303030303030303030" + "30303030303030303030303030303174726163655f616363745f77726f6e675f73697a655f6163636f756e745f6964" + "74726163655f6f6f625f737472696e6774726163655f78666c6f61745f6f6f625f737472696e6774726163655f6163" + "63745f6f6f625f737472696e6774726163655f616d745f6f6f625f737472696e6774726163655f746f6f5f6c6f6e67" + "74726163655f6e756d5f746f6f5f6c6f6e6774726163655f78666c6f61745f746f6f5f6c6f6e6774726163655f6163" + "63745f746f6f5f6c6f6e6774726163655f616d745f746f6f5f6c6f6e6774726163655f616d745f77726f6e675f6c65" + "6e67746874726163655f696e76616c69645f61735f68657874726163655f616363745f636865636b5f646573796e63" + "6c6467725f696e646578706172656e745f6c6467725f74696d65706172656e745f6c6467725f68617368626173655f" + "666565686f6d655f6c655f6669656c646c655f6669656c6474785f696e6e6572686f6d655f6c655f696e6e65726c65" + "5f696e6e65727368613531325f68616c666e66745f7572696e66745f6973737565726e66745f7461786f6e6e66745f" + "73657269616c706172656e745f6c6467725f686173685f6e65675f6c656e706172656e745f6c6467725f686173685f" + "6275665f746f6f5f736d616c6c706172656e745f6c6467725f686173685f6c656e5f746f6f5f6c6f6e67636865636b" + "5f69645f6f6f625f6c656e5f753332636865636b5f69645f77726f6e675f6c656e5f753332666c6f61745f66726f6d" + "5f75696e745f6c656e5f6f6f62666c6f61745f66726f6d5f75696e745f77726f6e675f6c656e5f75696e7436346163" + "636f756e74726f6f745f69645f6c656e5f6f6f626163636f756e74726f6f745f69645f77726f6e675f6c656e747275" + "73746c696e655f69645f6c656e5f6f6f625f63757272656e637974727573746c696e655f69645f77726f6e675f6c65" + "6e5f63757272656e6379616d6d5f69645f6c656e5f6f6f625f617373657432616d6d5f69645f6c656e5f77726f6e67" + "5f6c656e5f617373657432616d6d5f69645f6c656e5f77726f6e675f6e6f6e5f7872705f63757272656e63795f6c65" + "6e616d6d5f69645f6c656e5f77726f6e675f7872705f63757272656e63795f6c656e616d6d5f69645f6d707474785f" + "6669656c645f696e76616c69645f736669656c64686f6d655f6c655f6669656c645f696e76616c69645f736669656c" + "646c655f6669656c645f696e76616c69645f736669656c6474785f696e6e65725f746f6f5f6269675f736c69636568" + "6f6d655f6c655f696e6e65725f746f6f5f6269675f736c6963656c655f696e6e65725f746f6f5f6269675f736c6963" + "657368613531325f68616c665f746f6f5f6269675f736c696365616d6d5f69645f746f6f5f6269675f736c69636563" + "726564656e7469616c5f69645f746f6f5f6269675f736c6963656d70746f6b656e5f69645f746f6f5f6269675f736c" + "6963655f6d70746964666c6f61745f6164645f6f6f625f736c69636531666c6f61745f6164645f6f6f625f736c6963" + "6532666c6f61745f7375625f6f6f625f736c69636531666c6f61745f7375625f6f6f625f736c69636532666c6f6174" + "5f6d756c745f6f6f625f736c69636531666c6f61745f6d756c745f6f6f625f736c69636532666c6f61745f6469765f" + "6f6f625f736c69636531666c6f61745f6469765f6f6f625f736c69636532666c6f61745f726f6f745f6f6f625f736c" + "696365666c6f61745f706f775f6f6f625f736c696365657363726f775f69645f77726f6e675f73697a655f75696e74" + "33326d70745f69737375616e63655f69645f77726f6e675f73697a655f75696e7433326e66745f6f666665725f6964" + "5f77726f6e675f73697a655f75696e7433326f666665725f69645f77726f6e675f73697a655f75696e7433326f7261" + "636c655f69645f77726f6e675f73697a655f75696e7433327061796368616e5f69645f77726f6e675f73697a655f75" + "696e7433327065726d697373696f6e65645f646f6d61696e5f69645f77726f6e675f73697a655f75696e7433327469" + "636b65745f69645f77726f6e675f73697a655f75696e7433327661756c745f69645f77726f6e675f73697a655f7569" + "6e7433326e66745f7572695f77726f6e675f73697a655f75696e743235366e66745f6973737565725f77726f6e675f" + "73697a655f75696e743235366e66745f7461786f6e5f77726f6e675f73697a655f75696e743235366e66745f736572" + "69616c5f77726f6e675f73697a655f75696e743235366163636f756e74726f6f745f69645f77726f6e675f73697a65" + "5f6163636f756e745f6964636865636b5f69645f77726f6e675f73697a655f6163636f756e745f696463726564656e" + "7469616c5f69645f77726f6e675f73697a655f6163636f756e745f69643163726564656e7469616c5f69645f77726f" + "6e675f73697a655f6163636f756e745f69643264656c65676174655f69645f77726f6e675f73697a655f6163636f75" + "6e745f69643164656c65676174655f69645f77726f6e675f73697a655f6163636f756e745f6964326465706f736974" + "5f707265617574685f69645f77726f6e675f73697a655f6163636f756e745f6964316465706f7369745f7072656175" + "74685f69645f77726f6e675f73697a655f6163636f756e745f6964326469645f69645f77726f6e675f73697a655f61" + "63636f756e745f6964657363726f775f69645f77726f6e675f73697a655f6163636f756e745f696474727573746c69" + "6e655f69645f77726f6e675f73697a655f6163636f756e745f69643174727573746c696e655f69645f77726f6e675f" + "73697a655f6163636f756e745f6964326d70745f69737375616e63655f69645f77726f6e675f73697a655f6163636f" + "756e745f69646d70746f6b656e5f69645f77726f6e675f73697a655f6163636f756e745f69646e66745f6f66666572" + "5f69645f77726f6e675f73697a655f6163636f756e745f69646f666665725f69645f77726f6e675f73697a655f6163" + "636f756e745f69646f7261636c655f69645f77726f6e675f73697a655f6163636f756e745f69647061796368616e5f" + "69645f77726f6e675f73697a655f6163636f756e745f6964317061796368616e5f69645f77726f6e675f73697a655f" + "6163636f756e745f6964327065726d697373696f6e65645f646f6d61696e5f69645f77726f6e675f73697a655f6163" + "636f756e745f69647369676e6572735f69645f77726f6e675f73697a655f6163636f756e745f69647469636b65745f" + "69645f77726f6e675f73697a655f6163636f756e745f69647661756c745f69645f77726f6e675f73697a655f616363" + "6f756e745f69646e66745f7572695f77726f6e675f73697a655f6163636f756e745f69646d70746f6b656e5f69645f" + "6d707469645f77726f6e675f6c656e677468004d0970726f64756365727302086c616e677561676501045275737400" + "0c70726f6365737365642d6279010572757374631d312e38372e30202831373036376539616320323032352d30352d" + "303929002c0f7461726765745f6665617475726573022b0f6d757461626c652d676c6f62616c732b087369676e2d65" + "7874"; + +extern std::string const floatTestsWasmHex = + "0061736d0100000001490960057f7f7f7f7f017f60077f7f7f7f7f7f7f017f60067f7f7f7f7f7f017f60047e7f7f7f" + "017f60057e7f7f7f7f017f60047f7f7f7f017f60037f7f7e017f60037f7f7f006000017f02ea021008686f73745f6c" + "6962057472616365000008686f73745f6c69620e666c6f61745f66726f6d5f696e74000308686f73745f6c69620f66" + "6c6f61745f66726f6d5f75696e74000003656e7613666c6f61745f66726f6d5f6d616e745f657870000408686f7374" + "5f6c696209666c6f61745f636d70000508686f73745f6c696209666c6f61745f616464000108686f73745f6c696209" + "666c6f61745f737562000108686f73745f6c69620a666c6f61745f6d756c74000108686f73745f6c696209666c6f61" + "745f646976000108686f73745f6c696209666c6f61745f706f77000208686f73745f6c69620974726163655f6e756d" + "000608686f73745f6c69620a666c6f61745f726f6f74000203656e760c666c6f61745f746f5f696e74000003656e76" + "11666c6f61745f746f5f6d616e745f657870000203656e7613666c6f61745f66726f6d5f7374616d6f756e74000003" + "656e7613666c6f61745f66726f6d5f73746e756d6265720000030302070805030100110619037f01418080c0000b7f" + "00418599c0000b7f00419099c0000b072e04066d656d6f727902000666696e69736800110a5f5f646174615f656e64" + "03010b5f5f686561705f6261736503020ab621021f002000200141014100410010001a418080c00041022002410c41" + "0110001a0b9321020c7f017e230041f0006b22002400418280c000411d41014100410010001a200041e8006a410036" + "0200200042003703600240428ce000200041e0006a2203410c410010012201410c460440419f80c000411720031010" + "41b680c000411e2003410c410110001a0c010b41d480c000411e41014100410010001a0b2000428ce0003703500240" + "200041d0006a4108200041e0006a2203410c41001002410c4604402001410c46210741f280c0004117200310100c01" + "0b418981c000411e41014100410010001a0b024042fb004102200041e0006a2201410c41001003410c46044041a781" + "c0004121200110100c010b41c881c000412841014100410010001a410021070b41f081c0004115418582c000101041" + "9182c000411641a782c000101041b382c000411741014100410010001a200041e8006a410036020020004200370360" + "02404201200041e0006a2203410c410010012201410c46044041ca82c000410f200310100c010b41d982c000411641" + "014100410010001a0b027f200041e0006a410c418582c000410c100445044041ef82c000411b41014100410010001a" + "2001410c460c010b418a83c000412341014100410010001a41000b21080240200041e0006a410c41a782c000410c10" + "04410146044041ad83c000412341014100410010001a0c010b4100210841d083c000412c41014100410010001a0b02" + "4041a782c000410c200041e0006a410c1004410246044041fc83c000412341014100410010001a0c010b4100210841" + "9f84c000412c41014100410010001a0b41cb84c000412041014100410010001a200041d8006a418d82c00028000036" + "02002000418582c000290000370350410921040340200041d0006a2201410c418582c000410c2001410c410010051a" + "200441016b22040d000b200041e8006a410036020020004200370360420a200041e0006a410c41001001410c462209" + "45044041eb84c000411741014100410010001a0b0240200041e0006a410c200041d0006a410c1004450440418285c0" + "00411441014100410010001a0c010b41002109419685c000411641014100410010001a0b410b21040340200041d000" + "6a2201410c418582c000410c2001410c410010061a200441016b22040d000b02402001410c41a782c000410c100445" + "044041ac85c000411941014100410010001a0c010b4100210941c585c000411b41014100410010001a0b41e085c000" + "411f41014100410010001a200041106a410036020020004200370308420a200041086a410c410010011a200041206a" + "418d82c0002800003602002000418582c000290000370318410621040340200041186a2201410c200041086a410c20" + "01410c410010071a200441016b22040d000b200041d8006a41003602002000420037035042c0843d200041d0006a22" + "03410c410010011a02402003410c2001410c1004220145044041ff85c000411941014100410010001a0c010b419886" + "c000411b41014100410010001a0b200145210a410721040340200041186a2201410c200041086a410c2001410c4100" + "10081a200441016b22040d000b200041e8006a4100360200200042003703604201417f200041e0006a2203410c4100" + "10031a02402001410c2003410c100445044041b386c000411741014100410010001a0c010b41ca86c0004119410141" + "00410010001a4100210a0b41e386c000411741014100410010001a200041206a220441003602002000420037031841" + "8582c000410c4103200041186a2205410c410010091a41fa86c00041122005101041a782c000410c41062005410c41" + "0010091a418c87c000411820051010200041d8006a22014100360200200042003703504209200041d0006a2202410c" + "410010011a2002410c41022005410c410010091a41a487c0004114200510102002410c41002005410c410010091a41" + "b887c000411720051010200041e8006a22034100360200200042003703604200200041e0006a2206410c410010011a" + "2006410c41022005410c410010091a41cf87c00041142005101041e387c00041382006410c41002005410c41001009" + "ac100a1a419b88c000411841014100410010001a200441003602002000420037031842092005410c410010011a2001" + "4100360200200042003703502005410c41022002410c4100100b1a41b388c0004112200210102005410c4103200241" + "0c4100100b1a41c588c000411220021010200341003602002000420037036042c0843d2006410c410010011a200641" + "0c41032002410c4100100b1a41d788c0004118200210102006410c41062002410c4100100b1a41ef88c000411c2002" + "1010418b89c000411a41014100410010001a2001410036020020004200370350200341003602002000420037036042" + "0a2006410c410010011a418582c000410c2006410c2002410c410010081a41a589c000411920021010418582c00041" + "0c2002410c2002410c410010081a41be89c000410f2002101002402006410c2002410c1004220b45044041cd89c000" + "411441014100410010001a0c010b41e189c000411641014100410010001a0b4100210141f789c000411a4101410041" + "0010001a200042003703080240418582c000410c200041086a41084100100c220341084604402000290308220c4201" + "5104404101210141918ac000411741014100410010001a0c020b41a88ac000411941014100410010001a41c18ac000" + "4108200c100a1a0c010b41c98ac000412441014100410010001a41ed8ac000410f2003ac100a1a0b41002104024041" + "a782c000410c200041086a41084100100c220341084604402000290308220c427f51044041fc8ac000411841014100" + "410010001a200121040c020b41948bc000411a41014100410010001a41c18ac0004108200c100a1a0c010b41ae8bc0" + "00412541014100410010001a41ed8ac000410f2003ac100a1a0b41002101200041206a410036020020004200370318" + "42ffffffffffffffffff00200041186a2203410c410010011a02402003410c200041086a41084100100c2203410846" + "04402000290308220c42ffffffffffffffffff0051044041d38bc000411e41014100410010001a200421010c020b41" + "f18bc000412041014100410010001a41918cc000410d42ffffffffffffffffff00100a1a41c18ac0004108200c100a" + "1a0c010b419e8cc000412b41014100410010001a41ed8ac000410f2003ac100a1a0b41002103200041d8006a410036" + "0200200042003703504200200041d0006a2204410c410010011a02402004410c200041086a41084100100c22044108" + "4604402000290308220c50044041c98cc000411741014100410010001a200121030c020b41e08cc000411941014100" + "410010001a41c18ac0004108200c100a1a0c010b41f98cc000412441014100410010001a41ed8ac000410f2004ac10" + "0a1a0b41002104200041e8006a4100360200200042003703604201417f200041e0006a2201410c410010031a024020" + "01410c200041086a41084100100c220141084604402000290308220c500440419d8dc000412541014100410010001a" + "200321040c020b41c28dc000412741014100410010001a41c18ac0004108200c100a1a0c010b41e98dc00041324101" + "4100410010001a41ed8ac000410f2001ac100a1a0b0240200041e0006a410c200041086a41084101100c2201410846" + "04402000290308220c500440419b8ec000412741014100410010001a0c020b4100210441c28ec00041294101410041" + "0010001a41c18ac0004108200c100a1a0c010b4100210441eb8ec000413441014100410010001a41ed8ac000410f20" + "01ac100a1a0b41002101419f8fc000411f41014100410010001a20004200370328200041003602340240418582c000" + "410c200041286a4108200041346a4104100d2203410c46044020002802342203416e462000290328220c42808090bb" + "bad6adf00d517145044041da8fc000411e41014100410010001a41f88fc000412f200c100a1a41a790c000411f2003" + "ac100a1a0c020b4101210141be8fc000411c41014100410010001a0c010b41c690c000412941014100410010001a41" + "ed8ac000410f2003ac100a1a0b200042003703384100210320004100360244024041a782c000410c200041386a4108" + "200041c4006a4104100d2202410c46044020002802442202416e462000290338220c428080f0c4c5a9d28f72517145" + "0440418c91c000411f41014100410010001a41ab91c0004130200c100a1a41a790c000411f2002ac100a1a0c020b41" + "ef90c000411d41014100410010001a200121030c010b41db91c000412a41014100410010001a41ed8ac000410f2002" + "ac100a1a0b41002101200041d8006a410036020020004200370350420a200041d0006a2202410c410010011a200042" + "003703082000410036024802402002410c200041086a4108200041c8006a4104100d2202410c460440200028024822" + "02416f462000290308220c42808090bbbad6adf00d517145044041a292c000411f41014100410010001a41f88fc000" + "412f200c100a1a41c192c000411f2002ac100a1a0c020b418592c000411d41014100410010001a200321010c010b41" + "e092c000412a41014100410010001a41ed8ac000410f2002ac100a1a0b41002103200041e8006a4100360200200042" + "003703604200200041e0006a2202410c410010011a200042003703182000410036024c02402002410c200041186a41" + "08200041cc006a4104100d2202410c4604402000290318220c50200028024c2202418080808078467145044041a693" + "c000411e41014100410010001a41c493c000411d200c100a1a41e193c00041272002ac100a1a0c020b418a93c00041" + "1c41014100410010001a200121030c010b418894c000412941014100410010001a41ed8ac000410f2002ac100a1a0b" + "4100210141b194c000412141014100410010001a200042c0808080d0a0fdf000370018200041e8006a410036020020" + "00420037036002400240200041186a4108200041e0006a2205410c4100100e2202410c46044041d294c00041222005" + "1010200042003703502005410c200041d0006a41084100100c22024108470d012000290350220c4280c2d72f510440" + "4101210141f494c000411d41014100410010001a0c030b419195c000411f41014100410010001a41b095c000411c20" + "0c100a1a0c020b418096c000411f41014100410010001a419f96c00041102002ac100a1a0c010b41cc95c000413441" + "014100410010001a41ed8ac000410f2002ac100a1a0b4100210241af96c000412141014100410010001a200041ffff" + "ff8f7f36005820004281eceedce494ccf9c000370050200041e8006a41003602002000420037036002400240200041" + "d0006a410c200041e0006a2206410c4100100f2205410c46044041d096c000411c2006101020004200370318200641" + "0c200041186a41084100100c22054108470d012000290318220c42fb005104404101210241ec96c000411b41014100" + "410010001a0c030b418797c000411d41014100410010001a41a497c0004116200c100a1a0c020b41ec97c000411d41" + "014100410010001a419f96c00041102005ac100a1a0c010b41ba97c000413241014100410010001a41ed8ac000410f" + "2005ac100a1a0b410021050240418582c000410c200041e0006a2206410c4100100f410c460440418998c000411a20" + "0610102006410c418582c000410c100445044041a398c000412041014100410010001a200221050c020b41c398c000" + "412241014100410010001a0c010b41e598c000412041014100410010001a0b200041f0006a2400200b452007200871" + "200971200a71200471200371200171200571710b0b8f190100418080c0000b851920200a24242420746573745f666c" + "6f61745f66726f6d5f7761736d202424242020666c6f61742066726f6d206936342031323330303a2020666c6f6174" + "2066726f6d20693634203132333030206173204845583a2020666c6f61742066726f6d206936342031323330303a20" + "6661696c65642020666c6f61742066726f6d207536342031323330303a2020666c6f61742066726f6d207536342031" + "323330303a206661696c65642020666c6f61742066726f6d2065787020322c206d616e7469737361203132333a2020" + "666c6f61742066726f6d2065787020322c206d616e7469737361203132333a206661696c65642020666c6f61742066" + "726f6d20636f6e737420313a0de0b6b3a7640000ffffffee2020666c6f61742066726f6d20636f6e7374202d313af2" + "1f494c589c0000ffffffee0a24242420746573745f666c6f61745f636d70202424242020666c6f61742066726f6d20" + "313a2020666c6f61742066726f6d20313a206661696c65642020666c6f61742066726f6d2031203d3d20464c4f4154" + "5f4f4e452020666c6f61742066726f6d203120213d20464c4f41545f4f4e452c206661696c65642020666c6f617420" + "66726f6d2031203e20464c4f41545f4e454741544956455f4f4e452020666c6f61742066726f6d203120213e20464c" + "4f41545f4e454741544956455f4f4e452c206661696c65642020464c4f41545f4e454741544956455f4f4e45203c20" + "666c6f61742066726f6d20312020464c4f41545f4e454741544956455f4f4e4520213c20666c6f61742066726f6d20" + "312c206661696c65640a24242420746573745f666c6f61745f6164645f7375627472616374202424242020666c6f61" + "742066726f6d2031303a206661696c656420207265706561746564206164643a20676f6f6420207265706561746564" + "206164643a206661696c6564202072657065617465642073756274726163743a20676f6f6420207265706561746564" + "2073756274726163743a206661696c65640a24242420746573745f666c6f61745f6d756c745f646976696465202424" + "2420207265706561746564206d756c7469706c793a20676f6f6420207265706561746564206d756c7469706c793a20" + "6661696c656420207265706561746564206469766964653a20676f6f6420207265706561746564206469766964653a" + "206661696c65640a24242420746573745f666c6f61745f706f77202424242020666c6f61742063756265206f662031" + "3a2020666c6f61742036746820706f776572206f66202d313a2020666c6f617420737175617265206f6620393a2020" + "666c6f61742030746820706f776572206f6620393a2020666c6f617420737175617265206f6620303a2020666c6f61" + "742030746820706f776572206f6620302028657870656374696e6720494e56414c49445f504152414d53206572726f" + "72293a0a24242420746573745f666c6f61745f726f6f74202424242020666c6f61742073717274206f6620393a2020" + "666c6f61742063627274206f6620393a2020666c6f61742063627274206f6620313030303030303a2020666c6f6174" + "2036746820726f6f74206f6620313030303030303a0a24242420746573745f666c6f61745f696e7665727420242424" + "2020696e76657274206120666c6f61742066726f6d2031303a2020696e7665727420616761696e3a2020696e766572" + "742074776963653a20676f6f642020696e766572742074776963653a206661696c65640a24242420746573745f666c" + "6f61745f746f5f696e74202424242020666c6f61745f746f5f696e742831293a20676f6f642020666c6f61745f746f" + "5f696e742831293a206661696c656420202020676f743a2020666c6f61745f746f5f696e742831293a206661696c65" + "642077697468206572726f72202020206572726f7220636f64653a2020666c6f61745f746f5f696e74282d31293a20" + "676f6f642020666c6f61745f746f5f696e74282d31293a206661696c65642020666c6f61745f746f5f696e74282d31" + "293a206661696c65642077697468206572726f722020666c6f61745f746f5f696e74286936343a3a4d4158293a2067" + "6f6f642020666c6f61745f746f5f696e74286936343a3a4d4158293a206661696c6564202020206578706563746564" + "3a2020666c6f61745f746f5f696e74286936343a3a4d4158293a206661696c65642077697468206572726f72202066" + "6c6f61745f746f5f696e742830293a20676f6f642020666c6f61745f746f5f696e742830293a206661696c65642020" + "666c6f61745f746f5f696e742830293a206661696c65642077697468206572726f722020666c6f61745f746f5f696e" + "7428302e312c20746f5f6e656172657374293a20676f6f642020666c6f61745f746f5f696e7428302e312c20746f5f" + "6e656172657374293a206661696c65642020666c6f61745f746f5f696e7428302e312c20746f5f6e65617265737429" + "3a206661696c65642077697468206572726f722020666c6f61745f746f5f696e7428302e312c20746f77617264735f" + "7a65726f293a20676f6f642020666c6f61745f746f5f696e7428302e312c20746f77617264735f7a65726f293a2066" + "61696c65642020666c6f61745f746f5f696e7428302e312c20746f77617264735f7a65726f293a206661696c656420" + "77697468206572726f720a24242420746573745f666c6f61745f746f5f6d616e745f657870202424242020666c6f61" + "745f746f5f6d616e745f6578702831293a20676f6f642020666c6f61745f746f5f6d616e745f6578702831293a2066" + "61696c6564202020206578706563746564206d616e746973736120313030303030303030303030303030303030302c" + "20676f743a202020206578706563746564206578706f6e656e74202d31382c20676f743a2020666c6f61745f746f5f" + "6d616e745f6578702831293a206661696c65642077697468206572726f722020666c6f61745f746f5f6d616e745f65" + "7870282d31293a20676f6f642020666c6f61745f746f5f6d616e745f657870282d31293a206661696c656420202020" + "6578706563746564206d616e7469737361202d313030303030303030303030303030303030302c20676f743a202066" + "6c6f61745f746f5f6d616e745f657870282d31293a206661696c65642077697468206572726f722020666c6f61745f" + "746f5f6d616e745f657870283130293a20676f6f642020666c6f61745f746f5f6d616e745f657870283130293a2066" + "61696c6564202020206578706563746564206578706f6e656e74202d31372c20676f743a2020666c6f61745f746f5f" + "6d616e745f657870283130293a206661696c65642077697468206572726f722020666c6f61745f746f5f6d616e745f" + "6578702830293a20676f6f642020666c6f61745f746f5f6d616e745f6578702830293a206661696c65642020202065" + "78706563746564206d616e746973736120302c20676f743a202020206578706563746564206578706f6e656e74202d" + "323134373438333634382c20676f743a2020666c6f61745f746f5f6d616e745f6578702830293a206661696c656420" + "77697468206572726f720a24242420746573745f666c6f61745f66726f6d5f7374616d6f756e74202424242020666c" + "6f61742066726f6d2058525020616d6f756e74202831303020585250293a202058525020616d6f756e7420636f6e76" + "657273696f6e3a20676f6f64202058525020616d6f756e7420636f6e76657273696f6e3a206661696c656420202020" + "6578706563746564203130303030303030302c20676f743a202058525020616d6f756e7420636f6e76657273696f6e" + "3a206661696c6564202d20666c6f61745f746f5f696e74206572726f722020666c6f61742066726f6d205852502061" + "6d6f756e743a206661696c656420202020726573756c745f73697a653a0a24242420746573745f666c6f61745f6672" + "6f6d5f73746e756d626572202424242020666c6f61742066726f6d2053544e756d6265722028313233293a20205354" + "4e756d62657220636f6e76657273696f6e3a20676f6f64202053544e756d62657220636f6e76657273696f6e3a2066" + "61696c6564202020206578706563746564203132332c20676f743a202053544e756d62657220636f6e76657273696f" + "6e3a206661696c6564202d20666c6f61745f746f5f696e74206572726f722020666c6f61742066726f6d2053544e75" + "6d6265723a206661696c65642020666c6f61742066726f6d2053544e756d626572202831293a202053544e756d6265" + "72283129203d3d20464c4f41545f4f4e453a20676f6f64202053544e756d626572283129203d3d20464c4f41545f4f" + "4e453a206661696c65642020666c6f61742066726f6d2053544e756d6265722831293a206661696c6564004d097072" + "6f64756365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e" + "38372e30202831373036376539616320323032352d30352d303929002c0f7461726765745f6665617475726573022b" + "0f6d757461626c652d676c6f62616c732b087369676e2d657874"; + +extern std::string const allHostFunctionsWasmHex = + "0061736d0100000001540c60027f7f017f60037f7f7f017f60047f7f7f7f017f60017f017f60067f7f7f7f7f7f017f" + "60037f7f7f0060057f7f7f7f7f017f60037f7f7e017f60087f7f7f7f7f7f7f7f017f60017f0060027f7f006000017f" + "02dc041a08686f73745f6c69620874785f6669656c64000108686f73745f6c69620974726163655f6e756d00070868" + "6f73745f6c6962057472616365000608686f73745f6c69620a6c6467725f696e646578000008686f73745f6c696210" + "706172656e745f6c6467725f74696d65000008686f73745f6c696210706172656e745f6c6467725f68617368000008" + "686f73745f6c69620874785f696e6e6572000208686f73745f6c69620a74785f6172725f6c656e000308686f73745f" + "6c69621074785f696e6e65725f6172725f6c656e000008686f73745f6c69620d686f6d655f6c655f6669656c640001" + "08686f73745f6c69620d686f6d655f6c655f696e6e6572000208686f73745f6c69620f686f6d655f6c655f6172725f" + "6c656e000308686f73745f6c696215686f6d655f6c655f696e6e65725f6172725f6c656e000008686f73745f6c6962" + "0863616368655f6c65000108686f73745f6c69620d63726564656e7469616c5f6964000808686f73745f6c69620965" + "7363726f775f6964000408686f73745f6c6962096f7261636c655f6964000408686f73745f6c69620b736861353132" + "5f68616c66000208686f73745f6c6962076e66745f757269000408686f73745f6c6962087365745f64617461000008" + "686f73745f6c6962086c655f6669656c64000208686f73745f6c6962086c655f696e6e6572000608686f73745f6c69" + "620a6c655f6172725f6c656e000008686f73745f6c6962106c655f696e6e65725f6172725f6c656e000108686f7374" + "5f6c69620e6163636f756e74726f6f745f6964000208686f73745f6c69620a74726163655f616363740002030c0b09" + "0a05050b05000101030005030100110619037f01418080c0000b7f0041af99c0000b7f0041b099c0000b072e04066d" + "656d6f727902000666696e697368001e0a5f5f646174615f656e6403010b5f5f686561705f6261736503020ac61d0b" + "990101027f230041306b220124002000027f418180202001411c6a4114100022024114470440417f20022002417f4e" + "1b210241010c010b200020012f001c3b0001200041036a2001411e6a2d00003a000020012001290023370308200120" + "0141286a29000037000d200128001f21022000410d6a200129000d3700002000200129030837020841000b3a000020" + "002002360204200141306a24000b460020012d00004101460440418080c000410b20013402041001000b2000200129" + "0001370000200041106a200141116a280000360000200041086a200141096a2900003700000b1900200241094f0440" + "000b20002002360204200020013602000b1900200241214f0440000b20002002360204200020013602000bde1a0109" + "7f230041b0036b22002400418b80c000411b41014100410010021a41a680c000411941014100410010021a41e780c0" + "00412b41014100410010021a2000410036027002400240024002400240024002400240200041f0006a220741041003" + "220141004a0440419281c00041172000280270220141187420014180fe03714108747220014108764180fe03712001" + "4118767272ad10011a200041003602900120004190016a220341041004220141004c0d0141a981c000411320002802" + "9001220141187420014180fe03714108747220014108764180fe037120014118767272ad10011a200041c8016a2202" + "4200370300200041c0016a22054200370300200041b8016a22044200370300200042003703b001200041b0016a2206" + "4120100522014120470d0241bc81c000411320064120410110021a41cf81c000412041014100410010021a41dc82c0" + "00412e41014100410010021a200041a0016a410036020020004198016a420037030020004200370390014181802020" + "034114100022014114470d03418a83c00041142003101f200042003703704188801820074108100022014108470d04" + "419e83c0004117420810011a41b583c000412820074108410110021a2000410036024841848008200041c8006a2203" + "4104100022014104470d0541dd83c000411520034104410110021a200041013b003420024200370300200542003703" + "0020044200370300200042003703b0010240200041346a4102200641201006220141004e044041f283c00041142001" + "ad10011a200041286a20062001101d418684c000410d2000280228200028022c410110021a0c010b419384c0004129" + "2001ac10011a0b41bc84c00041154183803c1007ac10011a41d184c00041134189803c1007ac10011a024020004134" + "6a41021008220141004e044041e484c00041142001ad10011a0c010b41f884c000412d2001ac10011a0b41a585c000" + "412341014100410010021a41de86c000413341014100410010021a2000420037037041828018200041f0006a220141" + "081009220341004c0d0620034108460440419187c000412b420810011a41bc87c000412f20014108410110021a0c08" + "0b41eb87c000412f2003ad10011a200041206a200041f0006a2003101c419a88c00041172000280220200028022441" + "0110021a0c070b41bf82c000411d2001ac10011a419b7f21020c070b419a82c00041252001ac10011a419a7f21020c" + "060b41ef81c000412b2001ac10011a41997f21020c050b41b486c000412a2001ac10011a41b77e21020c040b41f385" + "c00041c1002001ac10011a41b67e21020c030b41c885c000412b2001ac10011a41b57e21020c020b41b188c00041c5" + "002003ac10011a0b200041a0016a410036020020004198016a42003703002000420037039001024041818020200041" + "90016a220341141009220141004a044041f688c000411e2003101f0c010b419489c00041332001ac10011a0b200041" + "013b0048200041c8016a4200370300200041c0016a4200370300200041b8016a4200370300200042003703b0010240" + "200041c8006a4102200041b0016a22014120100a220341004e044041c789c000411c2003ad10011a200041186a2001" + "2003101d41e389c00041152000280218200028021c410110021a0c010b41f889c00041392003ac10011a0b41b18ac0" + "0041244183803c100bac10011a0240200041c8006a4102100c220141004e044041d58ac000411c2001ad10011a0c01" + "0b41f18ac000413d2001ac10011a0b41ae8bc000412841014100410010021a41d68bc000412f41014100410010021a" + "200041b0016a2203101a200041f0006a22012003101b200041a8016a4200370300200041a0016a4200370300200041" + "98016a4200370300200042003703900102400240024002400240200120004190016a22031020220141204604402003" + "41204100100d220441004a044041858cc00041232004ad10011a200042003703482004200041c8006a220141081021" + "220341004c0d022003410846044041a88cc000412a420810011a41d28cc000412e20014108410110021a0c060b4180" + "8dc000412e2003ad10011a200041106a200041c8006a2003101c41ae8dc00041162000280210200028021441011002" + "1a0c050b41e68fc000413c2004ac10011a200041c8016a4200370300200041c0016a4200370300200041b8016a4200" + "370300200042003703b0014101200041b0016a4120102122014100480d020c030b41ba92c000412e2001ac10011a41" + "ef7c21020c050b41c48dc000412b2003ac10011a0c020b41a290c00041c1002001ac10011a0b200041013b00484101" + "200041c8006a200041b0016a10222201410048044041e390c00041352001ac10011a0b410110232201410048044041" + "9891c00041322001ac10011a0b4101200041c8006a10242201410048044041ca91c00041392001ac10011a0b418392" + "c000413741014100410010021a0c010b200041013b0034200041c8016a4200370300200041c0016a42003703002000" + "41b8016a4200370300200042003703b00102402004200041346a200041b0016a22011022220341004e044041ef8dc0" + "00411b2003ad10011a200041086a20012003101d418a8ec00041142000280208200028020c410110021a0c010b419e" + "8ec00041312003ac10011a0b41cf8ec000412320041023ac10011a02402004200041346a1024220141004e044041f2" + "8ec000411b2001ad10011a0c010b418d8fc00041352001ac10011a0b41c28fc000412441014100410010021a0b41e8" + "92c000412f41014100410010021a200041b0016a2201101a200041346a22042001101b200041e0006a420037030020" + "0041d8006a4200370300200041d0006a420037030020004200370348024002400240024002402004200041c8006a22" + "03102022014120460440419793c000410f20034120410110021a20004188016a420037030020004180016a42003703" + "00200041f8006a4200370300200042003703700240200441142004411441a693c0004109200041f0006a2201412010" + "0e220341004a0440200020012003101d41ae93c000411220002802002000280204410110021a0c010b41c093c00041" + "3c2003ac10011a0b200041a8016a22064200370300200041a0016a2202420037030020004198016a22054200370300" + "200042003703900120004180808cc07e360268200041346a22034114200041e8006a410420004190016a2208412010" + "0f22014120470d0141fc93c000410e20084120410110021a200041c8016a4200370300200041c0016a420037030020" + "0041b8016a4200370300200042003703b001200041808080d00236026c20034114200041ec006a4104200041b0016a" + "22044120101022014120470d02418a94c000410e20044120410110021a419894c000412441014100410010021a4191" + "95c000412541014100410010021a20004188016a420037030020004180016a4200370300200041f8006a4200370300" + "2000420037037041b695c0004117200041f0006a22034120101122014120470d0341cd95c000410b41b695c0004117" + "410110021a41d895c000411120034120410110021a2004101a200041c8006a22072004101b20064200370300200242" + "0037030020054200370300200042003703900102404100200422026b410371220320026a220520024d0d0020030440" + "200321010340200241003a0000200241016a2102200141016b22010d000b0b200341016b4107490d00034020024100" + "3a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000200241046a41003a000020024103" + "6a41003a0000200241026a41003a0000200241016a41003a0000200241086a22022005470d000b0b20054180022003" + "6b2201417c716a220220054b0440034020054100360200200541046a22052002490d000b0b02402002200141037122" + "0120026a22034f0d002001220504400340200241003a0000200241016a2102200541016b22050d000b0b200141016b" + "4107490d000340200241003a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000200241" + "046a41003a0000200241036a41003a0000200241026a41003a0000200241016a41003a0000200241086a2202200347" + "0d000b0b0240200741142008412020044180021012220141004a044041e995c00041102001ad10011a20014181024f" + "0d0641f995c000410920042001410110021a0c010b418296c000412e2001ac10011a0b41b096c000411241c296c000" + "41074101100222014100480d0541c996c000411d2001ad10011a41e696c0004111422a1001410048044041ad97c000" + "411a42a47b10011a41a47b21020c070b41f796c000411c420010011a41012102419397c000411a4101410041001002" + "1a41ff97c000412941014100410010021a41a898c000412810132201412846044041d098c000412741a898c0004128" + "410110021a41f798c000411e41014100410010021a41bf80c000412841014100410010021a0c070b419599c000411a" + "2001ac10011a41c37a21020c060b41f494c000411d2001ac10011a418b7c21020c050b41d894c000411c2001ac1001" + "1a41897c21020c040b41bc94c000411c2001ac10011a41887c21020c030b41dd97c00041222001ac10011a41a77b21" + "020c020b000b41c797c00041162001ac10011a41a57b21020b200041b0036a240020020b0d00200020012002411410" + "191a0b0c00200041142001412010180b0e002000418280182001200210140b0e002000200141022002412010150b0a" + "0020004183803c10160b0a0020002001410210170b0bb9190100418080c0000baf196572726f725f636f64653d3d3d" + "3d20484f53542046554e4354494f4e532054455354203d3d3d54657374696e6720323620686f73742066756e637469" + "6f6e73535543434553533a20416c6c20686f73742066756e6374696f6e20746573747320706173736564212d2d2d20" + "43617465676f727920313a204c6564676572204865616465722046756e6374696f6e73202d2d2d4c65646765722073" + "657175656e6365206e756d6265723a506172656e74206c65646765722074696d653a506172656e74206c6564676572" + "20686173683a535543434553533a204c6564676572206865616465722066756e6374696f6e734552524f523a206765" + "745f706172656e745f6c65646765725f686173682077726f6e67206c656e6774683a4552524f523a206765745f7061" + "72656e745f6c65646765725f74696d65206661696c65643a4552524f523a206765745f6c65646765725f73716e2066" + "61696c65643a2d2d2d2043617465676f727920323a205472616e73616374696f6e20446174612046756e6374696f6e" + "73202d2d2d5472616e73616374696f6e204163636f756e743a5472616e73616374696f6e20466565206c656e677468" + "3a5472616e73616374696f6e20466565202873657269616c697a65642058525020616d6f756e74293a5472616e7361" + "6374696f6e2053657175656e63653a4e6573746564206669656c64206c656e6774683a4e6573746564206669656c64" + "3a494e464f3a206765745f74785f6e65737465645f6669656c64206e6f74206170706c696361626c653a5369676e65" + "7273206172726179206c656e6774683a4d656d6f73206172726179206c656e6774683a4e6573746564206172726179" + "206c656e6774683a494e464f3a206765745f74785f6e65737465645f61727261795f6c656e206e6f74206170706c69" + "6361626c653a535543434553533a205472616e73616374696f6e20646174612066756e6374696f6e734552524f523a" + "206765745f74785f6669656c642853657175656e6365292077726f6e67206c656e6774683a4552524f523a20676574" + "5f74785f6669656c6428466565292077726f6e67206c656e6774682028657870656374656420382062797465732066" + "6f7220585250293a4552524f523a206765745f74785f6669656c64284163636f756e74292077726f6e67206c656e67" + "74683a2d2d2d2043617465676f727920333a2043757272656e74204c6564676572204f626a6563742046756e637469" + "6f6e73202d2d2d43757272656e74206f626a6563742062616c616e6365206c656e677468202858525020616d6f756e" + "74293a43757272656e74206f626a6563742062616c616e6365202873657269616c697a65642058525020616d6f756e" + "74293a43757272656e74206f626a6563742062616c616e6365206c656e67746820286e6f6e2d58525020616d6f756e" + "74293a43757272656e74206f626a6563742062616c616e63653a494e464f3a206765745f63757272656e745f6c6564" + "6765725f6f626a5f6669656c642842616c616e636529206661696c656420286d617920626520657870656374656429" + "3a43757272656e74206c6564676572206f626a656374206163636f756e743a494e464f3a206765745f63757272656e" + "745f6c65646765725f6f626a5f6669656c64284163636f756e7429206661696c65643a43757272656e74206e657374" + "6564206669656c64206c656e6774683a43757272656e74206e6573746564206669656c643a494e464f3a206765745f" + "63757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c64206e6f74206170706c696361626c653a" + "43757272656e74206f626a656374205369676e657273206172726179206c656e6774683a43757272656e74206e6573" + "746564206172726179206c656e6774683a494e464f3a206765745f63757272656e745f6c65646765725f6f626a5f6e" + "65737465645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a2043757272656e74" + "206c6564676572206f626a6563742066756e6374696f6e732d2d2d2043617465676f727920343a20416e79204c6564" + "676572204f626a6563742046756e6374696f6e73202d2d2d5375636365737366756c6c7920636163686564206f626a" + "65637420696e20736c6f743a436163686564206f626a6563742062616c616e6365206c656e67746820285852502061" + "6d6f756e74293a436163686564206f626a6563742062616c616e6365202873657269616c697a65642058525020616d" + "6f756e74293a436163686564206f626a6563742062616c616e6365206c656e67746820286e6f6e2d58525020616d6f" + "756e74293a436163686564206f626a6563742062616c616e63653a494e464f3a206765745f6c65646765725f6f626a" + "5f6669656c642842616c616e636529206661696c65643a436163686564206e6573746564206669656c64206c656e67" + "74683a436163686564206e6573746564206669656c643a494e464f3a206765745f6c65646765725f6f626a5f6e6573" + "7465645f6669656c64206e6f74206170706c696361626c653a436163686564206f626a656374205369676e65727320" + "6172726179206c656e6774683a436163686564206e6573746564206172726179206c656e6774683a494e464f3a2067" + "65745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e206e6f74206170706c696361626c653a53" + "5543434553533a20416e79206c6564676572206f626a6563742066756e6374696f6e73494e464f3a2063616368655f" + "6c65646765725f6f626a206661696c6564202865787065637465642077697468207465737420666978747572657329" + "3a494e464f3a206765745f6c65646765725f6f626a5f6669656c64206661696c656420617320657870656374656420" + "286e6f20636163686564206f626a656374293a494e464f3a206765745f6c65646765725f6f626a5f6e65737465645f" + "6669656c64206661696c65642061732065787065637465643a494e464f3a206765745f6c65646765725f6f626a5f61" + "727261795f6c656e206661696c65642061732065787065637465643a494e464f3a206765745f6c65646765725f6f62" + "6a5f6e65737465645f61727261795f6c656e206661696c65642061732065787065637465643a535543434553533a20" + "416e79206c6564676572206f626a6563742066756e6374696f6e732028696e74657266616365207465737465642945" + "52524f523a206163636f756e74726f6f745f6964206661696c656420666f722063616368696e6720746573743a2d2d" + "2d2043617465676f727920353a204b65796c65742047656e65726174696f6e2046756e6374696f6e73202d2d2d4163" + "636f756e74206b65796c65743a546573745479706543726564656e7469616c206b65796c65743a494e464f3a206372" + "6564656e7469616c5f6b65796c6574206661696c656420286578706563746564202d20696e74657266616365206973" + "737565293a457363726f77206b65796c65743a4f7261636c65206b65796c65743a535543434553533a204b65796c65" + "742067656e65726174696f6e2066756e6374696f6e734552524f523a206f7261636c655f6b65796c6574206661696c" + "65643a4552524f523a20657363726f775f6b65796c6574206661696c65643a4552524f523a206163636f756e74726f" + "6f745f6964206661696c65643a2d2d2d2043617465676f727920363a205574696c6974792046756e6374696f6e7320" + "2d2d2d48656c6c6f2c205852504c205741534d20776f726c6421496e70757420646174613a5348413531322068616c" + "6620686173683a4e46542064617461206c656e6774683a4e465420646174613a494e464f3a206765745f6e66742066" + "61696c656420286578706563746564202d206e6f2073756368204e4654293a54657374207472616365206d65737361" + "67657061796c6f616454726163652066756e6374696f6e206279746573207772697474656e3a54657374206e756d62" + "657220747261636554726163655f6e756d2066756e6374696f6e20737563636565646564535543434553533a205574" + "696c6974792066756e6374696f6e734552524f523a2074726163655f6e756d2829206661696c65643a4552524f523a" + "2074726163652829206661696c65643a4552524f523a20636f6d707574655f7368613531325f68616c66206661696c" + "65643a2d2d2d2043617465676f727920373a2044617461205570646174652046756e6374696f6e73202d2d2d557064" + "61746564206c656467657220656e74727920646174612066726f6d205741534d20746573745375636365737366756c" + "6c792075706461746564206c656467657220656e74727920776974683a535543434553533a20446174612075706461" + "74652066756e6374696f6e734552524f523a207570646174655f64617461206661696c65643a004d0970726f647563" + "65727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e38372e30" + "202831373036376539616320323032352d30352d303929002c0f7461726765745f6665617475726573022b0f6d7574" + "61626c652d676c6f62616c732b087369676e2d657874"; + +extern std::string const allKeyletsWasmHex = + "0061736d0100000001500a60067f7f7f7f7f7f017f60047f7f7f7f017f60087f7f7f7f7f7f7f7f017f60047f7f7f7f" + "0060037f7f7f017f60037f7f7e017f60057f7f7f7f7f017f6000017f60037f7f7f0060067f7f7f7f7f7e00029f0418" + "08686f73745f6c69620974726163655f6e756d000508686f73745f6c6962057472616365000608686f73745f6c6962" + "0863616368655f6c65000408686f73745f6c6962086c655f6669656c64000108686f73745f6c69620d686f6d655f6c" + "655f6669656c64000408686f73745f6c69620a74726163655f61636374000108686f73745f6c69620e6163636f756e" + "74726f6f745f6964000108686f73745f6c69620c74727573746c696e655f6964000208686f73745f6c696206616d6d" + "5f6964000008686f73745f6c696208636865636b5f6964000008686f73745f6c69620d63726564656e7469616c5f69" + "64000208686f73745f6c69620b64656c65676174655f6964000008686f73745f6c6962126465706f7369745f707265" + "617574685f6964000008686f73745f6c6962066469645f6964000108686f73745f6c696209657363726f775f696400" + "0008686f73745f6c69620f6d70745f69737375616e63655f6964000008686f73745f6c69620a6d70746f6b656e5f69" + "64000008686f73745f6c69620c6e66745f6f666665725f6964000008686f73745f6c6962086f666665725f69640000" + "08686f73745f6c69620a7061796368616e5f6964000208686f73745f6c6962167065726d697373696f6e65645f646f" + "6d61696e5f6964000008686f73745f6c69620a7369676e6572735f6964000108686f73745f6c6962097469636b6574" + "5f6964000008686f73745f6c6962087661756c745f6964000003070603030307080905030100110619037f01418080" + "c0000b7f0041c28ac0000b7f0041d08ac0000b072e04066d656d6f727902000666696e697368001b0a5f5f64617461" + "5f656e6403010b5f5f686561705f6261736503020ae83706140020002001200220034182802042828020101d0b1400" + "20002001200220034181802042818020101d0bd10302017f017e230041a0016b22042400024020012d000041014604" + "4041d780c000411620012802042201ac10001a200041013a0000200020013602040c010b200441186a200141196a29" + "0000370300200441106a200141116a290000370300200441086a200141096a29000037030020042001290001370300" + "2002200320044120410110011a2004412041001002220141004c044041d080c00041072001ac10001a200041013a00" + "00200020013602040c010b418b80c000410f4285801410001a20014185801420044180016a41201003220141204704" + "4041af80c0004115417f20012001417f4e1b2201ac10001a200041013a0000200020013602040c010b200441c2006a" + "20044182016a2d00003a0000200441f0006a20044197016a2900002205370300200441286a22012004418f016a2900" + "00370300200441306a22022005370300200441386a22032004419f016a2d00003a0000200420042f0080013b014020" + "042004290087013703202004200428008301360043200441df006a20032d00003a0000200441d7006a200229030037" + "0000200441cf006a20012903003700002004200429032037004741c480c000410c200441406b4120410110011a2000" + "4180023b01000b200441a0016a24000bd32c02097f027e23004180076b2200240041ed80c000412341014100410010" + "011a02402000027f02404181802020004190016a220741141004220641144604402000410e6a20004192016a22032d" + "00003a000020002000290097013703e80120002000419c016a22012900003700ed01200020002f0090013b010c2000" + "20002903e8013703d806200020002900ed013700dd06200020002800930136000f200041186a20002900dd06370000" + "200020002903d806370013419081c00041082000410c6a2204411410051a4183802020074114100422064114470d03" + "200041226a20032d00003a000020002000290097013703e801200020012900003700ed01200020002f0090013b0120" + "200020002903e8013703d806200020002900ed013700dd0620002000280093013600232000412c6a20002900dd0637" + "0000200020002903d806370027419881c000410c200041206a411410051a200041a8016a22034200370300200041a0" + "016a2201420037030020004198016a420037030020004200370390012004411420074120100622044120460d010240" + "20044100480440200020043602380c010b2000417f3602380b41010c020b0c020b200041cd006a2003290300370000" + "200041c5006a20012903003700002000413d6a20004198016a290300370000200020002903900137003541000b3a00" + "3420004190016a200041346a41a481c00041071019024020002d00900141014604402000280294012106419c8ac000" + "4112420510001a0c010b4100210641ab81c000413541014100410010011a200041e6006a41c4003a0000200041e000" + "6a4100360200200041eb006a41003a0000200041d5a6013b01642000420037035820004100360067200041a8016a22" + "044200370300200041a0016a2203420037030020004198016a22014200370300200042003703900102402000410c6a" + "4114200041206a4114200041d8006a411420004190016a412010072207412047044002402007410048044020002007" + "3602700c010b2000417f3602700b410121060c010b20004185016a2004290300370000200041fd006a200329030037" + "0000200041f5006a2001290300370000200020002903900137006d0b200020063a006c20004190016a200041ec006a" + "41e081c0004109101a20002d00900141014604402000280294012106419c8ac0004112420510001a0c010b41002106" + "41e981c000413741014100410010011a200041f8016a200041306a2204280100360200200041f0016a200041286a22" + "0329010037030020004184026a200041e0006a290300220a3702002000418c026a200041e8006a2802002201360200" + "200020002901203703e8012000200029035822093702fc01200041e8066a22052001360200200041e0066a2207200a" + "370300200020093703d806200041f4066a2003290100370200200041fc066a20042801003602002000200029012037" + "02ec0620004190026a200041d8066a22034128101c20004194016a200041e8016a41d000101c200041013602900120" + "0041f0066a220142003703002005420037030020074200370300200042003703d806024041ae8ac0004114200041bc" + "016a412820034120100822034120470440024020034100480440200020033602ec010c010b2000417f3602ec010b41" + "0121060c010b20004181026a2001290300370000200041f9016a2005290300370000200041f1016a20072903003700" + "00200020002903d8063700e9010b200020063a00e801200041bc026a200041e8016a41a082c0004103101920002d00" + "bc02410146044020002802c0022106419c8ac0004112420610001a0c010b4100210641a382c0004131410141004100" + "10011a200041063602d80620004180026a22044200370300200041f8016a22034200370300200041f0016a22014200" + "370300200042003703e80102402000410c6a4114200041d8066a4104200041e8016a41201009220741204704400240" + "20074100480440200020073602c8020c010b2000417f3602c8020b410121060c010b200041dd026a20042903003700" + "00200041d5026a2003290300370000200041cd026a2001290300370000200020002903e8013700c5020b200020063a" + "00c402200041e8016a200041c4026a41d482c0004105101920002d00e801410146044020002802ec012106419c8ac0" + "004112420610001a0c010b41d982c000413341014100410010011a20004180026a4200370300200041f8016a420037" + "0300200041f0016a4200370300200042003703e801024002402000410c6a2201411420014114418c83c00041122000" + "41e8016a4120100a2201412047044041d780c0004116417f20012001417f4e1b2206ac10001a0c010b200041da066a" + "20002d00ea013a0000200041f0026a200041f7016a290000220a370300200041f8026a200041ff016a290000220937" + "030020004180036a20004187026a2d000022013a0000200041e7066a200a370000200041ef066a2009370000200041" + "f7066a20013a0000200020002f01e8013b01d806200020002900ef0122093703e802200020002800eb013600db0620" + "0020093700df06419e83c000410a200041d8066a22014120410110011a2001412041001002220641004c044041d080" + "c00041072006ac10001a0c010b418b80c000410f4298802010001a200641988020200041e8016a4114100322014114" + "460d0141af80c0004115417f20012001417f4e1b2206ac10001a0b419c8ac0004112420710001a0c010b419a80c000" + "411541014100410010011a41a883c000413841014100410010011a230041206b22082400200841186a220742003703" + "00200841106a22044200370300200841086a220342003703002008420037030020004184036a2201027f2000410c6a" + "22064114200041206a2202411420084120100b22054120470440024020054100480440200120053602040c010b2001" + "417f3602040b41010c010b20012008290300370001200141196a2007290300370000200141116a2004290300370000" + "200141096a200329030037000041000b3a0000200841206a2400200041e8016a2205200141e083c000410810192000" + "2d00e80145044041e883c000413641014100410010011a230041206b22082400200841186a22074200370300200841" + "106a22044200370300200841086a2203420037030020084200370300200041a8036a2201027f200641142002411420" + "084120100c22024120470440024020024100480440200120023602040c010b2001417f3602040b41010c010b200120" + "08290300370001200141196a2007290300370000200141116a2004290300370000200141096a200329030037000041" + "000b3a0000200841206a240020052001419e84c000410e101920002d00e801410146044020002802ec012106419c8a" + "c0004112420910001a0c020b41ac84c000413c41014100410010011a230041206b22022400200241186a2207420037" + "0300200241106a22044200370300200241086a2203420037030020024200370300200041cc036a2201027f2000410c" + "6a411420024120100d22054120470440024020054100480440200120053602040c010b2001417f3602040b41010c01" + "0b20012002290300370001200141196a2007290300370000200141116a2004290300370000200141096a2003290300" + "37000041000b3a0000200241206a2400200041e8016a200141e884c0004103101920002d00e8014101460440200028" + "02ec012106419c8ac0004112420a10001a0c020b41eb84c000413141014100410010011a230041306b220224002002" + "410b36020c200241286a22074200370300200241206a22044200370300200241186a22034200370300200242003703" + "10200041f0036a2201027f2000410c6a41142002410c6a4104200241106a4120100e22054120470440024020054100" + "480440200120053602040c010b2001417f3602040b41010c010b20012002290310370001200141196a200729030037" + "0000200141116a2004290300370000200141096a200329030037000041000b3a0000200241306a2400200041e8016a" + "2001419c85c0004106101920002d00e801410146044020002802ec012106419c8ac0004112420b10001a0c020b41a2" + "85c000413441014100410010011a230041306b220224002002410c36020c200241286a22074200370300200241206a" + "22044200370300200241186a220342003703002002420037031020004194046a2201027f2000410c6a41142002410c" + "6a4104200241106a4120100f22054120470440024020054100480440200120053602040c010b2001417f3602040b41" + "010c010b20012002290310370001200141196a2007290300370000200141116a2004290300370000200141096a2003" + "29030037000041000b3a0000200241306a2400200041fc016a2000411c6a280100360200200041f4016a200041146a" + "2901003702002000200029010c3702ec01200041808080e0003602e801200041d8066a2103230041406a2204240002" + "4020012d0000410146044041d780c000411620012802042201ac10001a200341013a0000200320013602040c010b20" + "0441206a200141196a290000370300200441186a200141116a290000370300200441106a200141096a290000370300" + "2004200129000137030841d685c000410b200441086a22014120410110011a02400240200141204100100222014100" + "4c044041d080c00041072001ac10001a0c010b418b80c000410f4284802010001a2001418480202004412c6a411410" + "0322014114460d0141af80c0004115417f20012001417f4e1b2201ac10001a0b200341013a0000200320013602040c" + "010b419a80c000411541014100410010011a20034180023b01000b200441406b240020002d00d80641014604402000" + "2802dc062106419c8ac0004112420c10001a0c020b41e185c000413941014100410010011a230041206b2202240020" + "0241186a22074200370300200241106a22044200370300200241086a2203420037030020024200370300200041b804" + "6a2201027f200041e8016a4118200041206a4114200241201010220541204704400240200541004804402001200536" + "02040c010b2001417f3602040b41010c010b20012002290300370001200141196a2007290300370000200141116a20" + "04290300370000200141096a200329030037000041000b3a0000200241206a2400200041d8066a2001419a86c00041" + "07101920002d00d806410146044020002802dc062106419c8ac0004112420d10001a0c020b41a186c0004135410141" + "00410010011a230041306b220224002002410636020c200241286a22074200370300200241206a2204420037030020" + "0241186a2203420037030020024200370310200041dc046a2201027f200041206a41142002410c6a4104200241106a" + "4120101122054120470440024020054100480440200120053602040c010b2001417f3602040b41010c010b20012002" + "290310370001200141196a2007290300370000200141116a2004290300370000200141096a20032903003700004100" + "0b3a0000200241306a2400200041d8066a200141d686c000410c101820002d00d806410146044020002802dc062106" + "419c8ac0004112420d10001a0c020b41e286c000413a41014100410010011a230041306b220224002002410d36020c" + "200241286a22074200370300200241206a22044200370300200241186a220342003703002002420037031020004180" + "056a2201027f2000410c6a41142002410c6a4104200241106a41201012220541204704400240200541004804402001" + "20053602040c010b2001417f3602040b41010c010b20012002290310370001200141196a2007290300370000200141" + "116a2004290300370000200141096a200329030037000041000b3a0000200241306a2400200041d8066a2001419c87" + "c0004105101920002d00d806410146044020002802dc062106419c8ac0004112420d10001a0c020b41a187c0004133" + "41014100410010011a230041306b220224002002410e36020c200241286a22074200370300200241206a2204420037" + "0300200241186a2203420037030020024200370310200041a4056a2201027f2000410c6a4114200041206a41142002" + "410c6a4104200241106a4120101322054120470440024020054100480440200120053602040c010b2001417f360204" + "0b41010c010b20012002290310370001200141196a2007290300370000200141116a2004290300370000200141096a" + "200329030037000041000b3a0000200241306a2400200041d8066a200141d487c000410a101920002d00d806410146" + "044020002802dc062106419c8ac0004112420e10001a0c020b41de87c000413841014100410010011a230041306b22" + "0224002002410f36020c200241286a22074200370300200241206a22044200370300200241186a2203420037030020" + "024200370310200041c8056a2201027f2000410c6a41142002410c6a4104200241106a412010142205412047044002" + "4020054100480440200120053602040c010b2001417f3602040b41010c010b20012002290310370001200141196a20" + "07290300370000200141116a2004290300370000200141096a200329030037000041000b3a0000200241306a240020" + "0041d8066a2001419688c0004112101820002d00d806410146044020002802dc062106419c8ac0004112420f10001a" + "0c020b41a888c00041c00041014100410010011a230041206b22022400200241186a22074200370300200241106a22" + "044200370300200241086a2203420037030020024200370300200041ec056a2201027f2000410c6a41142002412010" + "1522054120470440024020054100480440200120053602040c010b2001417f3602040b41010c010b20012002290300" + "370001200141196a2007290300370000200141116a2004290300370000200141096a200329030037000041000b3a00" + "00200241206a2400200041d8066a200141e888c000410a101a20002d00d806410146044020002802dc062106419c8a" + "c0004112421010001a0c020b41f288c000413841014100410010011a230041306b220224002002411236020c200241" + "286a22074200370300200241206a22044200370300200241186a220342003703002002420037031020004190066a22" + "01027f2000410c6a41142002410c6a4104200241106a41201016220541204704400240200541004804402001200536" + "02040c010b2001417f3602040b41010c010b20012002290310370001200141196a2007290300370000200141116a20" + "04290300370000200141096a200329030037000041000b3a0000200241306a2400200041d8066a200141aa89c00041" + "06101920002d00d806410146044020002802dc062106419c8ac0004112421210001a0c020b4101210641b089c00041" + "3441014100410010011a230041306b220224002002411336020c200241286a22074200370300200241206a22044200" + "370300200241186a2203420037030020024200370310200041b4066a2201027f2000410c6a41142002410c6a410420" + "0241106a4120101722054120470440024020054100480440200120053602040c010b2001417f3602040b41010c010b" + "20012002290310370001200141196a2007290300370000200141116a2004290300370000200141096a200329030037" + "000041000b3a0000200241306a2400200041d8066a200141e489c0004105101920002d00d806410146044020002802" + "dc062106419c8ac0004112421310001a0c020b41e989c000413341014100410010011a0c010b20002802ec01210641" + "9c8ac0004112420810001a0b20004180076a240020060f0b418080c000410b417f20062006417f4e1bac1000000bfd" + "0401067f200241104f0440024020002000410020006b41037122056a22044f0d002001210320050440200521060340" + "200020032d00003a0000200341016a2103200041016a2100200641016b22060d000b0b200541016b4107490d000340" + "200020032d00003a0000200041016a200341016a2d00003a0000200041026a200341026a2d00003a0000200041036a" + "200341036a2d00003a0000200041046a200341046a2d00003a0000200041056a200341056a2d00003a000020004106" + "6a200341066a2d00003a0000200041076a200341076a2d00003a0000200341086a2103200041086a22002004470d00" + "0b0b2004200220056b2207417c7122086a21000240200120056a2206410371450440200020044d0d01200621010340" + "20042001280200360200200141046a2101200441046a22042000490d000b0c010b200020044d0d0020064103742205" + "41187121032006417c71220241046a2101410020056b41187121052002280200210203402004200220037620012802" + "00220220057472360200200141046a2101200441046a22042000490d000b0b20074103712102200620086a21010b02" + "402000200020026a22064f0d002002410771220304400340200020012d00003a0000200141016a2101200041016a21" + "00200341016b22030d000b0b200241016b4107490d000340200020012d00003a0000200041016a200141016a2d0000" + "3a0000200041026a200141026a2d00003a0000200041036a200141036a2d00003a0000200041046a200141046a2d00" + "003a0000200041056a200141056a2d00003a0000200041066a200141066a2d00003a0000200041076a200141076a2d" + "00003a0000200141086a2101200041086a22002006470d000b0b0b940201017f230041406a22062400024020012d00" + "00410146044041d780c000411620012802042201ac10001a200041013a0000200020013602040c010b200641206a20" + "0141196a290000370300200641186a200141116a290000370300200641106a200141096a2900003703002006200129" + "000137030820022003200641086a22014120410110011a024002402001412041001002220141004c044041d080c000" + "41072001ac10001a0c010b418b80c000410f200510001a200120042006412c6a4114100322014114460d0141af80c0" + "004115417f20012001417f4e1b2201ac10001a0b200041013a0000200020013602040c010b419a80c0004115410141" + "00410010011a20004180023b01000b200641406b24000b0bb80a0100418080c0000bae0a6572726f725f636f64653d" + "47657474696e67206669656c643a204669656c6420646174613a207265747269657665644572726f72206765747469" + "6e67206669656c643a204669656c6420646174613a204572726f723a204572726f722067657474696e67206b65796c" + "65743a202424242424205354415254494e47205741534d20455845435554494f4e2024242424244163636f756e743a" + "44657374696e6174696f6e3a4163636f756e744163636f756e74206f626a656374206578697374732c2070726f6365" + "6564696e67207769746820657363726f772066696e6973682e54727573746c696e6554727573746c696e65206f626a" + "656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e414d4d414d" + "4d206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e" + "436865636b436865636b206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f" + "772066696e6973682e7465726d73616e64636f6e646974696f6e7343726564656e7469616c43726564656e7469616c" + "206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e44" + "656c656761746544656c6567617465206f626a656374206578697374732c2070726f63656564696e67207769746820" + "657363726f772066696e6973682e4465706f736974507265617574684465706f73697450726561757468206f626a65" + "6374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e444944444944" + "206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e45" + "7363726f77457363726f77206f626a656374206578697374732c2070726f63656564696e6720776974682065736372" + "6f772066696e6973682e4d505449737375616e63654d505449737375616e6365206f626a656374206578697374732c" + "2070726f63656564696e67207769746820657363726f772066696e6973682e4d50546f6b656e4d50546f6b656e206f" + "626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e4e4654" + "6f6b656e4f666665724e46546f6b656e4f66666572206f626a656374206578697374732c2070726f63656564696e67" + "207769746820657363726f772066696e6973682e4f666665724f66666572206f626a656374206578697374732c2070" + "726f63656564696e67207769746820657363726f772066696e6973682e5061794368616e6e656c5061794368616e6e" + "656c206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e697368" + "2e5065726d697373696f6e6564446f6d61696e5065726d697373696f6e6564446f6d61696e206f626a656374206578" + "697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e5369676e65724c69737453" + "69676e65724c697374206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f77" + "2066696e6973682e5469636b65745469636b6574206f626a656374206578697374732c2070726f63656564696e6720" + "7769746820657363726f772066696e6973682e5661756c745661756c74206f626a656374206578697374732c207072" + "6f63656564696e67207769746820657363726f772066696e6973682e43757272656e74207365712076616c75653a00" + "4d0970726f64756365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374" + "631d312e38372e30202831373036376539616320323032352d30352d303929002c0f7461726765745f666561747572" + "6573022b0f6d757461626c652d676c6f62616c732b087369676e2d657874"; + +extern std::string const ledgerSqnWasmHex = + "0061736d01000000010e0360027f7f017f6000006000017f02120103656e760a6c6467725f696e6465780000030302" + "01020503010002062b077f01418088040b7f004180080b7f004180080b7f004180080b7f00418088040b7f0041000b" + "7f0041010b07800109066d656d6f72790200115f5f7761736d5f63616c6c5f63746f727300010666696e6973680002" + "0c5f5f64736f5f68616e646c6503010a5f5f646174615f656e6403020d5f5f676c6f62616c5f6261736503030b5f5f" + "686561705f6261736503040d5f5f6d656d6f72795f6261736503050c5f5f7461626c655f6261736503060a3d020200" + "0b3801037f230041106b220024002000410c6a410410002101200028020c2102200041106a24002001410541002002" + "41054f1b20014100481b0b002f0970726f647563657273010c70726f6365737365642d6279010e486f6d6562726577" + "20636c616e670631342e302e36"; + +extern std::string const thousand1ParamsWasmHex = + "0061736d0100000001f2070260000060e9077f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f017f03030200010503010002062406" + "7f004180080b7f004180080b7f004180080b7f00418088040b7f0041000b7f0041010b077e09066d656d6f72790200" + "115f5f7761736d5f63616c6c5f63746f72730000047465737400010c5f5f64736f5f68616e646c6503000a5f5f6461" + "74615f656e6403010d5f5f676c6f62616c5f6261736503020b5f5f686561705f6261736503030d5f5f6d656d6f7279" + "5f6261736503040c5f5f7461626c655f6261736503050aab1e0202000ba51e00200020016a20026a20036a20046a20" + "056a20066a20076a20086a20096a200a6a200b6a200c6a200d6a200e6a200f6a20106a20116a20126a20136a20146a" + "20156a20166a20176a20186a20196a201a6a201b6a201c6a201d6a201e6a201f6a20206a20216a20226a20236a2024" + "6a20256a20266a20276a20286a20296a202a6a202b6a202c6a202d6a202e6a202f6a20306a20316a20326a20336a20" + "346a20356a20366a20376a20386a20396a203a6a203b6a203c6a203d6a203e6a203f6a20406a20416a20426a20436a" + "20446a20456a20466a20476a20486a20496a204a6a204b6a204c6a204d6a204e6a204f6a20506a20516a20526a2053" + "6a20546a20556a20566a20576a20586a20596a205a6a205b6a205c6a205d6a205e6a205f6a20606a20616a20626a20" + "636a20646a20656a20666a20676a20686a20696a206a6a206b6a206c6a206d6a206e6a206f6a20706a20716a20726a" + "20736a20746a20756a20766a20776a20786a20796a207a6a207b6a207c6a207d6a207e6a207f6a2080016a2081016a" + "2082016a2083016a2084016a2085016a2086016a2087016a2088016a2089016a208a016a208b016a208c016a208d01" + "6a208e016a208f016a2090016a2091016a2092016a2093016a2094016a2095016a2096016a2097016a2098016a2099" + "016a209a016a209b016a209c016a209d016a209e016a209f016a20a0016a20a1016a20a2016a20a3016a20a4016a20" + "a5016a20a6016a20a7016a20a8016a20a9016a20aa016a20ab016a20ac016a20ad016a20ae016a20af016a20b0016a" + "20b1016a20b2016a20b3016a20b4016a20b5016a20b6016a20b7016a20b8016a20b9016a20ba016a20bb016a20bc01" + "6a20bd016a20be016a20bf016a20c0016a20c1016a20c2016a20c3016a20c4016a20c5016a20c6016a20c7016a20c8" + "016a20c9016a20ca016a20cb016a20cc016a20cd016a20ce016a20cf016a20d0016a20d1016a20d2016a20d3016a20" + "d4016a20d5016a20d6016a20d7016a20d8016a20d9016a20da016a20db016a20dc016a20dd016a20de016a20df016a" + "20e0016a20e1016a20e2016a20e3016a20e4016a20e5016a20e6016a20e7016a20e8016a20e9016a20ea016a20eb01" + "6a20ec016a20ed016a20ee016a20ef016a20f0016a20f1016a20f2016a20f3016a20f4016a20f5016a20f6016a20f7" + "016a20f8016a20f9016a20fa016a20fb016a20fc016a20fd016a20fe016a20ff016a2080026a2081026a2082026a20" + "83026a2084026a2085026a2086026a2087026a2088026a2089026a208a026a208b026a208c026a208d026a208e026a" + "208f026a2090026a2091026a2092026a2093026a2094026a2095026a2096026a2097026a2098026a2099026a209a02" + "6a209b026a209c026a209d026a209e026a209f026a20a0026a20a1026a20a2026a20a3026a20a4026a20a5026a20a6" + "026a20a7026a20a8026a20a9026a20aa026a20ab026a20ac026a20ad026a20ae026a20af026a20b0026a20b1026a20" + "b2026a20b3026a20b4026a20b5026a20b6026a20b7026a20b8026a20b9026a20ba026a20bb026a20bc026a20bd026a" + "20be026a20bf026a20c0026a20c1026a20c2026a20c3026a20c4026a20c5026a20c6026a20c7026a20c8026a20c902" + "6a20ca026a20cb026a20cc026a20cd026a20ce026a20cf026a20d0026a20d1026a20d2026a20d3026a20d4026a20d5" + "026a20d6026a20d7026a20d8026a20d9026a20da026a20db026a20dc026a20dd026a20de026a20df026a20e0026a20" + "e1026a20e2026a20e3026a20e4026a20e5026a20e6026a20e7026a20e8026a20e9026a20ea026a20eb026a20ec026a" + "20ed026a20ee026a20ef026a20f0026a20f1026a20f2026a20f3026a20f4026a20f5026a20f6026a20f7026a20f802" + "6a20f9026a20fa026a20fb026a20fc026a20fd026a20fe026a20ff026a2080036a2081036a2082036a2083036a2084" + "036a2085036a2086036a2087036a2088036a2089036a208a036a208b036a208c036a208d036a208e036a208f036a20" + "90036a2091036a2092036a2093036a2094036a2095036a2096036a2097036a2098036a2099036a209a036a209b036a" + "209c036a209d036a209e036a209f036a20a0036a20a1036a20a2036a20a3036a20a4036a20a5036a20a6036a20a703" + "6a20a8036a20a9036a20aa036a20ab036a20ac036a20ad036a20ae036a20af036a20b0036a20b1036a20b2036a20b3" + "036a20b4036a20b5036a20b6036a20b7036a20b8036a20b9036a20ba036a20bb036a20bc036a20bd036a20be036a20" + "bf036a20c0036a20c1036a20c2036a20c3036a20c4036a20c5036a20c6036a20c7036a20c8036a20c9036a20ca036a" + "20cb036a20cc036a20cd036a20ce036a20cf036a20d0036a20d1036a20d2036a20d3036a20d4036a20d5036a20d603" + "6a20d7036a20d8036a20d9036a20da036a20db036a20dc036a20dd036a20de036a20df036a20e0036a20e1036a20e2" + "036a20e3036a20e4036a20e5036a20e6036a20e7036a20e8036a20e9036a20ea036a20eb036a20ec036a20ed036a20" + "ee036a20ef036a20f0036a20f1036a20f2036a20f3036a20f4036a20f5036a20f6036a20f7036a20f8036a20f9036a" + "20fa036a20fb036a20fc036a20fd036a20fe036a20ff036a2080046a2081046a2082046a2083046a2084046a208504" + "6a2086046a2087046a2088046a2089046a208a046a208b046a208c046a208d046a208e046a208f046a2090046a2091" + "046a2092046a2093046a2094046a2095046a2096046a2097046a2098046a2099046a209a046a209b046a209c046a20" + "9d046a209e046a209f046a20a0046a20a1046a20a2046a20a3046a20a4046a20a5046a20a6046a20a7046a20a8046a" + "20a9046a20aa046a20ab046a20ac046a20ad046a20ae046a20af046a20b0046a20b1046a20b2046a20b3046a20b404" + "6a20b5046a20b6046a20b7046a20b8046a20b9046a20ba046a20bb046a20bc046a20bd046a20be046a20bf046a20c0" + "046a20c1046a20c2046a20c3046a20c4046a20c5046a20c6046a20c7046a20c8046a20c9046a20ca046a20cb046a20" + "cc046a20cd046a20ce046a20cf046a20d0046a20d1046a20d2046a20d3046a20d4046a20d5046a20d6046a20d7046a" + "20d8046a20d9046a20da046a20db046a20dc046a20dd046a20de046a20df046a20e0046a20e1046a20e2046a20e304" + "6a20e4046a20e5046a20e6046a20e7046a20e8046a20e9046a20ea046a20eb046a20ec046a20ed046a20ee046a20ef" + "046a20f0046a20f1046a20f2046a20f3046a20f4046a20f5046a20f6046a20f7046a20f8046a20f9046a20fa046a20" + "fb046a20fc046a20fd046a20fe046a20ff046a2080056a2081056a2082056a2083056a2084056a2085056a2086056a" + "2087056a2088056a2089056a208a056a208b056a208c056a208d056a208e056a208f056a2090056a2091056a209205" + "6a2093056a2094056a2095056a2096056a2097056a2098056a2099056a209a056a209b056a209c056a209d056a209e" + "056a209f056a20a0056a20a1056a20a2056a20a3056a20a4056a20a5056a20a6056a20a7056a20a8056a20a9056a20" + "aa056a20ab056a20ac056a20ad056a20ae056a20af056a20b0056a20b1056a20b2056a20b3056a20b4056a20b5056a" + "20b6056a20b7056a20b8056a20b9056a20ba056a20bb056a20bc056a20bd056a20be056a20bf056a20c0056a20c105" + "6a20c2056a20c3056a20c4056a20c5056a20c6056a20c7056a20c8056a20c9056a20ca056a20cb056a20cc056a20cd" + "056a20ce056a20cf056a20d0056a20d1056a20d2056a20d3056a20d4056a20d5056a20d6056a20d7056a20d8056a20" + "d9056a20da056a20db056a20dc056a20dd056a20de056a20df056a20e0056a20e1056a20e2056a20e3056a20e4056a" + "20e5056a20e6056a20e7056a20e8056a20e9056a20ea056a20eb056a20ec056a20ed056a20ee056a20ef056a20f005" + "6a20f1056a20f2056a20f3056a20f4056a20f5056a20f6056a20f7056a20f8056a20f9056a20fa056a20fb056a20fc" + "056a20fd056a20fe056a20ff056a2080066a2081066a2082066a2083066a2084066a2085066a2086066a2087066a20" + "88066a2089066a208a066a208b066a208c066a208d066a208e066a208f066a2090066a2091066a2092066a2093066a" + "2094066a2095066a2096066a2097066a2098066a2099066a209a066a209b066a209c066a209d066a209e066a209f06" + "6a20a0066a20a1066a20a2066a20a3066a20a4066a20a5066a20a6066a20a7066a20a8066a20a9066a20aa066a20ab" + "066a20ac066a20ad066a20ae066a20af066a20b0066a20b1066a20b2066a20b3066a20b4066a20b5066a20b6066a20" + "b7066a20b8066a20b9066a20ba066a20bb066a20bc066a20bd066a20be066a20bf066a20c0066a20c1066a20c2066a" + "20c3066a20c4066a20c5066a20c6066a20c7066a20c8066a20c9066a20ca066a20cb066a20cc066a20cd066a20ce06" + "6a20cf066a20d0066a20d1066a20d2066a20d3066a20d4066a20d5066a20d6066a20d7066a20d8066a20d9066a20da" + "066a20db066a20dc066a20dd066a20de066a20df066a20e0066a20e1066a20e2066a20e3066a20e4066a20e5066a20" + "e6066a20e7066a20e8066a20e9066a20ea066a20eb066a20ec066a20ed066a20ee066a20ef066a20f0066a20f1066a" + "20f2066a20f3066a20f4066a20f5066a20f6066a20f7066a20f8066a20f9066a20fa066a20fb066a20fc066a20fd06" + "6a20fe066a20ff066a2080076a2081076a2082076a2083076a2084076a2085076a2086076a2087076a2088076a2089" + "076a208a076a208b076a208c076a208d076a208e076a208f076a2090076a2091076a2092076a2093076a2094076a20" + "95076a2096076a2097076a2098076a2099076a209a076a209b076a209c076a209d076a209e076a209f076a20a0076a" + "20a1076a20a2076a20a3076a20a4076a20a5076a20a6076a20a7076a20a8076a20a9076a20aa076a20ab076a20ac07" + "6a20ad076a20ae076a20af076a20b0076a20b1076a20b2076a20b3076a20b4076a20b5076a20b6076a20b7076a20b8" + "076a20b9076a20ba076a20bb076a20bc076a20bd076a20be076a20bf076a20c0076a20c1076a20c2076a20c3076a20" + "c4076a20c5076a20c6076a20c7076a20c8076a20c9076a20ca076a20cb076a20cc076a20cd076a20ce076a20cf076a" + "20d0076a20d1076a20d2076a20d3076a20d4076a20d5076a20d6076a20d7076a20d8076a20d9076a20da076a20db07" + "6a20dc076a20dd076a20de076a20df076a20e0076a20e1076a20e2076a20e3076a20e4076a20e5076a20e6076a20e7" + "076a20e8076a0b002f0970726f647563657273010c70726f6365737365642d6279010e486f6d656272657720636c61" + "6e670631342e302e36"; + +extern std::string const infiniteLoopWasmHex = + "0061736d010000000108026000006000017f030302000105030100020624067f004180080b7f004180080b7f004180" + "080b7f00418088040b7f0041000b7f0041010b077e09066d656d6f72790200115f5f7761736d5f63616c6c5f63746f" + "72730000046c6f6f7000010c5f5f64736f5f68616e646c6503000a5f5f646174615f656e6403010d5f5f676c6f6261" + "6c5f6261736503020b5f5f686561705f6261736503030d5f5f6d656d6f72795f6261736503040c5f5f7461626c655f" + "6261736503050a270202000b220041fc87044100360200034041fc870441fc870428020041016a3602000c000b000b" + "002f0970726f647563657273010c70726f6365737365642d6279010e486f6d656272657720636c616e670631342e30" + "2e36"; + +extern std::string const thousandParamsWasmHex = + "0061736d0100000001f1070260000060e8077f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f017f030302000105030100020624067f" + "004180080b7f004180080b7f004180080b7f00418088040b7f0041000b7f0041010b077e09066d656d6f7279020011" + "5f5f7761736d5f63616c6c5f63746f72730000047465737400010c5f5f64736f5f68616e646c6503000a5f5f646174" + "615f656e6403010d5f5f676c6f62616c5f6261736503020b5f5f686561705f6261736503030d5f5f6d656d6f72795f" + "6261736503040c5f5f7461626c655f6261736503050aa71e0202000ba11e00200020016a20026a20036a20046a2005" + "6a20066a20076a20086a20096a200a6a200b6a200c6a200d6a200e6a200f6a20106a20116a20126a20136a20146a20" + "156a20166a20176a20186a20196a201a6a201b6a201c6a201d6a201e6a201f6a20206a20216a20226a20236a20246a" + "20256a20266a20276a20286a20296a202a6a202b6a202c6a202d6a202e6a202f6a20306a20316a20326a20336a2034" + "6a20356a20366a20376a20386a20396a203a6a203b6a203c6a203d6a203e6a203f6a20406a20416a20426a20436a20" + "446a20456a20466a20476a20486a20496a204a6a204b6a204c6a204d6a204e6a204f6a20506a20516a20526a20536a" + "20546a20556a20566a20576a20586a20596a205a6a205b6a205c6a205d6a205e6a205f6a20606a20616a20626a2063" + "6a20646a20656a20666a20676a20686a20696a206a6a206b6a206c6a206d6a206e6a206f6a20706a20716a20726a20" + "736a20746a20756a20766a20776a20786a20796a207a6a207b6a207c6a207d6a207e6a207f6a2080016a2081016a20" + "82016a2083016a2084016a2085016a2086016a2087016a2088016a2089016a208a016a208b016a208c016a208d016a" + "208e016a208f016a2090016a2091016a2092016a2093016a2094016a2095016a2096016a2097016a2098016a209901" + "6a209a016a209b016a209c016a209d016a209e016a209f016a20a0016a20a1016a20a2016a20a3016a20a4016a20a5" + "016a20a6016a20a7016a20a8016a20a9016a20aa016a20ab016a20ac016a20ad016a20ae016a20af016a20b0016a20" + "b1016a20b2016a20b3016a20b4016a20b5016a20b6016a20b7016a20b8016a20b9016a20ba016a20bb016a20bc016a" + "20bd016a20be016a20bf016a20c0016a20c1016a20c2016a20c3016a20c4016a20c5016a20c6016a20c7016a20c801" + "6a20c9016a20ca016a20cb016a20cc016a20cd016a20ce016a20cf016a20d0016a20d1016a20d2016a20d3016a20d4" + "016a20d5016a20d6016a20d7016a20d8016a20d9016a20da016a20db016a20dc016a20dd016a20de016a20df016a20" + "e0016a20e1016a20e2016a20e3016a20e4016a20e5016a20e6016a20e7016a20e8016a20e9016a20ea016a20eb016a" + "20ec016a20ed016a20ee016a20ef016a20f0016a20f1016a20f2016a20f3016a20f4016a20f5016a20f6016a20f701" + "6a20f8016a20f9016a20fa016a20fb016a20fc016a20fd016a20fe016a20ff016a2080026a2081026a2082026a2083" + "026a2084026a2085026a2086026a2087026a2088026a2089026a208a026a208b026a208c026a208d026a208e026a20" + "8f026a2090026a2091026a2092026a2093026a2094026a2095026a2096026a2097026a2098026a2099026a209a026a" + "209b026a209c026a209d026a209e026a209f026a20a0026a20a1026a20a2026a20a3026a20a4026a20a5026a20a602" + "6a20a7026a20a8026a20a9026a20aa026a20ab026a20ac026a20ad026a20ae026a20af026a20b0026a20b1026a20b2" + "026a20b3026a20b4026a20b5026a20b6026a20b7026a20b8026a20b9026a20ba026a20bb026a20bc026a20bd026a20" + "be026a20bf026a20c0026a20c1026a20c2026a20c3026a20c4026a20c5026a20c6026a20c7026a20c8026a20c9026a" + "20ca026a20cb026a20cc026a20cd026a20ce026a20cf026a20d0026a20d1026a20d2026a20d3026a20d4026a20d502" + "6a20d6026a20d7026a20d8026a20d9026a20da026a20db026a20dc026a20dd026a20de026a20df026a20e0026a20e1" + "026a20e2026a20e3026a20e4026a20e5026a20e6026a20e7026a20e8026a20e9026a20ea026a20eb026a20ec026a20" + "ed026a20ee026a20ef026a20f0026a20f1026a20f2026a20f3026a20f4026a20f5026a20f6026a20f7026a20f8026a" + "20f9026a20fa026a20fb026a20fc026a20fd026a20fe026a20ff026a2080036a2081036a2082036a2083036a208403" + "6a2085036a2086036a2087036a2088036a2089036a208a036a208b036a208c036a208d036a208e036a208f036a2090" + "036a2091036a2092036a2093036a2094036a2095036a2096036a2097036a2098036a2099036a209a036a209b036a20" + "9c036a209d036a209e036a209f036a20a0036a20a1036a20a2036a20a3036a20a4036a20a5036a20a6036a20a7036a" + "20a8036a20a9036a20aa036a20ab036a20ac036a20ad036a20ae036a20af036a20b0036a20b1036a20b2036a20b303" + "6a20b4036a20b5036a20b6036a20b7036a20b8036a20b9036a20ba036a20bb036a20bc036a20bd036a20be036a20bf" + "036a20c0036a20c1036a20c2036a20c3036a20c4036a20c5036a20c6036a20c7036a20c8036a20c9036a20ca036a20" + "cb036a20cc036a20cd036a20ce036a20cf036a20d0036a20d1036a20d2036a20d3036a20d4036a20d5036a20d6036a" + "20d7036a20d8036a20d9036a20da036a20db036a20dc036a20dd036a20de036a20df036a20e0036a20e1036a20e203" + "6a20e3036a20e4036a20e5036a20e6036a20e7036a20e8036a20e9036a20ea036a20eb036a20ec036a20ed036a20ee" + "036a20ef036a20f0036a20f1036a20f2036a20f3036a20f4036a20f5036a20f6036a20f7036a20f8036a20f9036a20" + "fa036a20fb036a20fc036a20fd036a20fe036a20ff036a2080046a2081046a2082046a2083046a2084046a2085046a" + "2086046a2087046a2088046a2089046a208a046a208b046a208c046a208d046a208e046a208f046a2090046a209104" + "6a2092046a2093046a2094046a2095046a2096046a2097046a2098046a2099046a209a046a209b046a209c046a209d" + "046a209e046a209f046a20a0046a20a1046a20a2046a20a3046a20a4046a20a5046a20a6046a20a7046a20a8046a20" + "a9046a20aa046a20ab046a20ac046a20ad046a20ae046a20af046a20b0046a20b1046a20b2046a20b3046a20b4046a" + "20b5046a20b6046a20b7046a20b8046a20b9046a20ba046a20bb046a20bc046a20bd046a20be046a20bf046a20c004" + "6a20c1046a20c2046a20c3046a20c4046a20c5046a20c6046a20c7046a20c8046a20c9046a20ca046a20cb046a20cc" + "046a20cd046a20ce046a20cf046a20d0046a20d1046a20d2046a20d3046a20d4046a20d5046a20d6046a20d7046a20" + "d8046a20d9046a20da046a20db046a20dc046a20dd046a20de046a20df046a20e0046a20e1046a20e2046a20e3046a" + "20e4046a20e5046a20e6046a20e7046a20e8046a20e9046a20ea046a20eb046a20ec046a20ed046a20ee046a20ef04" + "6a20f0046a20f1046a20f2046a20f3046a20f4046a20f5046a20f6046a20f7046a20f8046a20f9046a20fa046a20fb" + "046a20fc046a20fd046a20fe046a20ff046a2080056a2081056a2082056a2083056a2084056a2085056a2086056a20" + "87056a2088056a2089056a208a056a208b056a208c056a208d056a208e056a208f056a2090056a2091056a2092056a" + "2093056a2094056a2095056a2096056a2097056a2098056a2099056a209a056a209b056a209c056a209d056a209e05" + "6a209f056a20a0056a20a1056a20a2056a20a3056a20a4056a20a5056a20a6056a20a7056a20a8056a20a9056a20aa" + "056a20ab056a20ac056a20ad056a20ae056a20af056a20b0056a20b1056a20b2056a20b3056a20b4056a20b5056a20" + "b6056a20b7056a20b8056a20b9056a20ba056a20bb056a20bc056a20bd056a20be056a20bf056a20c0056a20c1056a" + "20c2056a20c3056a20c4056a20c5056a20c6056a20c7056a20c8056a20c9056a20ca056a20cb056a20cc056a20cd05" + "6a20ce056a20cf056a20d0056a20d1056a20d2056a20d3056a20d4056a20d5056a20d6056a20d7056a20d8056a20d9" + "056a20da056a20db056a20dc056a20dd056a20de056a20df056a20e0056a20e1056a20e2056a20e3056a20e4056a20" + "e5056a20e6056a20e7056a20e8056a20e9056a20ea056a20eb056a20ec056a20ed056a20ee056a20ef056a20f0056a" + "20f1056a20f2056a20f3056a20f4056a20f5056a20f6056a20f7056a20f8056a20f9056a20fa056a20fb056a20fc05" + "6a20fd056a20fe056a20ff056a2080066a2081066a2082066a2083066a2084066a2085066a2086066a2087066a2088" + "066a2089066a208a066a208b066a208c066a208d066a208e066a208f066a2090066a2091066a2092066a2093066a20" + "94066a2095066a2096066a2097066a2098066a2099066a209a066a209b066a209c066a209d066a209e066a209f066a" + "20a0066a20a1066a20a2066a20a3066a20a4066a20a5066a20a6066a20a7066a20a8066a20a9066a20aa066a20ab06" + "6a20ac066a20ad066a20ae066a20af066a20b0066a20b1066a20b2066a20b3066a20b4066a20b5066a20b6066a20b7" + "066a20b8066a20b9066a20ba066a20bb066a20bc066a20bd066a20be066a20bf066a20c0066a20c1066a20c2066a20" + "c3066a20c4066a20c5066a20c6066a20c7066a20c8066a20c9066a20ca066a20cb066a20cc066a20cd066a20ce066a" + "20cf066a20d0066a20d1066a20d2066a20d3066a20d4066a20d5066a20d6066a20d7066a20d8066a20d9066a20da06" + "6a20db066a20dc066a20dd066a20de066a20df066a20e0066a20e1066a20e2066a20e3066a20e4066a20e5066a20e6" + "066a20e7066a20e8066a20e9066a20ea066a20eb066a20ec066a20ed066a20ee066a20ef066a20f0066a20f1066a20" + "f2066a20f3066a20f4066a20f5066a20f6066a20f7066a20f8066a20f9066a20fa066a20fb066a20fc066a20fd066a" + "20fe066a20ff066a2080076a2081076a2082076a2083076a2084076a2085076a2086076a2087076a2088076a208907" + "6a208a076a208b076a208c076a208d076a208e076a208f076a2090076a2091076a2092076a2093076a2094076a2095" + "076a2096076a2097076a2098076a2099076a209a076a209b076a209c076a209d076a209e076a209f076a20a0076a20" + "a1076a20a2076a20a3076a20a4076a20a5076a20a6076a20a7076a20a8076a20a9076a20aa076a20ab076a20ac076a" + "20ad076a20ae076a20af076a20b0076a20b1076a20b2076a20b3076a20b4076a20b5076a20b6076a20b7076a20b807" + "6a20b9076a20ba076a20bb076a20bc076a20bd076a20be076a20bf076a20c0076a20c1076a20c2076a20c3076a20c4" + "076a20c5076a20c6076a20c7076a20c8076a20c9076a20ca076a20cb076a20cc076a20cd076a20ce076a20cf076a20" + "d0076a20d1076a20d2076a20d3076a20d4076a20d5076a20d6076a20d7076a20d8076a20d9076a20da076a20db076a" + "20dc076a20dd076a20de076a20df076a20e0076a20e1076a20e2076a20e3076a20e4076a20e5076a20e6076a20e707" + "6a0b002f0970726f647563657273010c70726f6365737365642d6279010e486f6d656272657720636c616e67063134" + "2e302e36"; + +extern std::string const badAlignWasmHex = + "0061736d01000000011b046000017f60057f7f7f7f7f017f60067f7f7f7f7f7f017f60000002260203656e760f666c" + "6f61745f66726f6d5f75696e74000103656e7608636865636b5f696400020305040300000005030100030632087f00" + "4180080b7f00418088020b7f004180080b7f00418088040b7f004180080b7f00418088080b7f0041000b7f0041010b" + "07a2010d066d656d6f72790200115f5f7761736d5f63616c6c5f63746f72730002057465737431000307655f646174" + "61310300057465737432000407655f64617461320301047465737400050c5f5f64736f5f68616e646c6503020a5f5f" + "646174615f656e6403030d5f5f676c6f62616c5f6261736503040b5f5f686561705f6261736503050d5f5f6d656d6f" + "72795f6261736503060c5f5f7461626c655f6261736503070a99020402000b2801017f418108427f37000041810841" + "0841a308410c41001000220041a40828020020004100481b0b5f01017f419a88024191a4cca0013601004192880242" + "8994ace0d0c1c38710370100418a88024281848ca0d0c0c1830837010041818802417f360000418a88024114418188" + "02410441a3880241201001220041a4880228020020004100481b0b8a0101037f418108427f370000418108410841a3" + "08410c410010002100419a88024191a4cca00136010041928802428994ace0d0c1c38710370100418a88024281848c" + "a0d0c0c1830837010041818802417f36000041a4082802002101418a8802411441818802410441a388024120100122" + "0241a4880228020020024100481b2000200120004100481b6a0b002f0970726f647563657273010c70726f63657373" + "65642d6279010e486f6d656272657720636c616e670631342e302e36"; + +extern std::string const fibWasmHex = + "0061736d0100000001090260000060017f017f030302000105030100020624067f004180080b7f004180080b7f0041" + "80080b7f00418088040b7f0041000b7f0041010b077d09066d656d6f72790200115f5f7761736d5f63616c6c5f6374" + "6f727300000366696200010c5f5f64736f5f68616e646c6503000a5f5f646174615f656e6403010d5f5f676c6f6261" + "6c5f6261736503020b5f5f686561705f6261736503030d5f5f6d656d6f72795f6261736503040c5f5f7461626c655f" + "6261736503050a440202000b3f01017f200045044041000f0b200041034e047f200041026a21000340200041036b10" + "0120016a2101200041026b220041044a0d000b200141016a0541010b0b002f0970726f647563657273010c70726f63" + "65737365642d6279010e486f6d656272657720636c616e670631342e302e36"; diff --git a/src/test/app/wasm_fixtures/float_0/Cargo.lock b/src/test/app/wasm_fixtures/float_0/Cargo.lock index 4c62a73f26..c9495758c2 100644 --- a/src/test/app/wasm_fixtures/float_0/Cargo.lock +++ b/src/test/app/wasm_fixtures/float_0/Cargo.lock @@ -74,9 +74,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.183" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "proc-macro2" @@ -135,9 +135,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "unicode-ident" @@ -152,9 +152,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "xrpl-address-macro" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?rev=1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +name = "xrpl-macros" +version = "0.1.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#9822d645870908a79d87a57b0244caa6359cb9cf" dependencies = [ "bs58", "quote", @@ -164,8 +164,8 @@ dependencies = [ [[package]] name = "xrpl-wasm-stdlib" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?rev=1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +version = "0.8.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#9822d645870908a79d87a57b0244caa6359cb9cf" dependencies = [ - "xrpl-address-macro", + "xrpl-macros", ] diff --git a/src/test/app/wasm_fixtures/float_0/Cargo.toml b/src/test/app/wasm_fixtures/float_0/Cargo.toml index 10b20c5428..95254f2e2b 100644 --- a/src/test/app/wasm_fixtures/float_0/Cargo.toml +++ b/src/test/app/wasm_fixtures/float_0/Cargo.toml @@ -15,7 +15,7 @@ opt-level = 's' panic = "abort" [dependencies] -xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", rev = "1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" } +xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", branch = "renames" } [profile.dev] panic = "abort" diff --git a/src/test/app/wasm_fixtures/float_0/src/lib.rs b/src/test/app/wasm_fixtures/float_0/src/lib.rs index 2c1e2dd5c3..4b89c8723f 100644 --- a/src/test/app/wasm_fixtures/float_0/src/lib.rs +++ b/src/test/app/wasm_fixtures/float_0/src/lib.rs @@ -1,7 +1,7 @@ #![cfg_attr(target_arch = "wasm32", no_std)] use xrpl_std::host::trace::trace; -use xrpl_std::host::{float_compare, float_from_int, float_subtract, FLOAT_ROUNDING_MODES_TO_NEAREST}; +use xrpl_std::host::{float_cmp, float_from_int, float_sub, FLOAT_ROUNDING_MODES_TO_NEAREST}; // Float size constant (8 bytes mantissa + 4 bytes exponent) const FLOAT_SIZE: usize = 12; @@ -25,7 +25,7 @@ pub extern "C" fn finish() -> i32 { // Subtract: 10 - 10 = 0 if FLOAT_SIZE as i32 != unsafe { - float_subtract( + float_sub( f10.as_ptr(), FLOAT_SIZE, f10.as_ptr(), @@ -40,14 +40,14 @@ pub extern "C" fn finish() -> i32 { } // Compare result with zero - if 0 == unsafe { float_compare(f_result.as_ptr(), FLOAT_SIZE, f_result.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { float_cmp(f_result.as_ptr(), FLOAT_SIZE, f_result.as_ptr(), FLOAT_SIZE) } { let _ = trace(" float 0 compare: good"); } else { let _ = trace(" float 0 compare: bad"); } // Compare result with FLOAT_ZERO constant - if 0 == unsafe { float_compare(f_result.as_ptr(), FLOAT_SIZE, FLOAT_ZERO.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { float_cmp(f_result.as_ptr(), FLOAT_SIZE, FLOAT_ZERO.as_ptr(), FLOAT_SIZE) } { let _ = trace(" FLOAT_ZERO compare: good"); } else { let _ = trace(" FLOAT_ZERO compare: bad"); diff --git a/src/test/app/wasm_fixtures/float_tests/Cargo.lock b/src/test/app/wasm_fixtures/float_tests/Cargo.lock index efad3253e7..3b6c24052b 100644 --- a/src/test/app/wasm_fixtures/float_tests/Cargo.lock +++ b/src/test/app/wasm_fixtures/float_tests/Cargo.lock @@ -37,9 +37,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -64,9 +64,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -74,24 +74,24 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.177" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.41" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -109,9 +109,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.108" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -120,9 +120,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -135,15 +135,15 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "version_check" @@ -152,9 +152,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "xrpl-address-macro" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=u32-buffer#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +name = "xrpl-macros" +version = "0.1.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#9822d645870908a79d87a57b0244caa6359cb9cf" dependencies = [ "bs58", "quote", @@ -164,8 +164,8 @@ dependencies = [ [[package]] name = "xrpl-wasm-stdlib" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=u32-buffer#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +version = "0.8.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#9822d645870908a79d87a57b0244caa6359cb9cf" dependencies = [ - "xrpl-address-macro", + "xrpl-macros", ] diff --git a/src/test/app/wasm_fixtures/float_tests/Cargo.toml b/src/test/app/wasm_fixtures/float_tests/Cargo.toml index a115dc006f..d4f70f1afc 100644 --- a/src/test/app/wasm_fixtures/float_tests/Cargo.toml +++ b/src/test/app/wasm_fixtures/float_tests/Cargo.toml @@ -15,7 +15,7 @@ opt-level = 's' panic = "abort" [dependencies] -xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", branch = "u32-buffer" } +xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", branch = "renames" } [profile.dev] panic = "abort" diff --git a/src/test/app/wasm_fixtures/float_tests/src/lib.rs b/src/test/app/wasm_fixtures/float_tests/src/lib.rs index 559ecc22a5..1e9b70d061 100644 --- a/src/test/app/wasm_fixtures/float_tests/src/lib.rs +++ b/src/test/app/wasm_fixtures/float_tests/src/lib.rs @@ -10,9 +10,8 @@ use xrpl_std::decode_hex_32; use xrpl_std::host::trace::DataRepr::AsHex; use xrpl_std::host::trace::{trace, trace_data, trace_num, DataRepr}; use xrpl_std::host::{ - cache_ledger_obj, float_add, float_compare, float_divide, float_from_int, float_from_uint, - float_multiply, float_pow, float_root, float_subtract, - get_ledger_obj_array_len, get_ledger_obj_field, get_ledger_obj_nested_field, + cache_le, float_add, float_cmp, float_div, float_from_int, float_from_uint, float_mult, + float_pow, float_root, float_sub, le_arr_len, le_field, le_inner, FLOAT_ROUNDING_MODES_TO_NEAREST, }; use xrpl_std::sfield; @@ -60,7 +59,7 @@ unsafe extern "C" { exponent_len: i32, ) -> i32; - #[link_name = "float_from_mant_exp"] + #[link_name = "float_from_mant_exp"] fn float_from_mant_exp( mantissa: i64, exponent: i32, @@ -75,9 +74,13 @@ const FLOAT_SIZE: usize = 12; // Float constants (8 bytes mantissa + 4 bytes exponent, big-endian) // FLOAT_ONE: mantissa=0x0DE0B6B3A7640000 (10^18), exponent=0xFFFFFFEE (-18) -const FLOAT_ONE: [u8; FLOAT_SIZE] = [0x0D, 0xE0, 0xB6, 0xB3, 0xA7, 0x64, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xEE]; +const FLOAT_ONE: [u8; FLOAT_SIZE] = [ + 0x0D, 0xE0, 0xB6, 0xB3, 0xA7, 0x64, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xEE, +]; // FLOAT_NEGATIVE_ONE: mantissa=0xF21F494C589C0000 (-10^18), exponent=0xFFFFFFEE (-18) -const FLOAT_NEGATIVE_ONE: [u8; FLOAT_SIZE] = [0xF2, 0x1F, 0x49, 0x4C, 0x58, 0x9C, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xEE]; +const FLOAT_NEGATIVE_ONE: [u8; FLOAT_SIZE] = [ + 0xF2, 0x1F, 0x49, 0x4C, 0x58, 0x9C, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xEE, +]; // Helper function to trace floats fn trace_float(msg: &str, f: &[u8; FLOAT_SIZE]) { @@ -90,7 +93,16 @@ fn test_float_from_wasm() -> bool { let mut all_pass = true; let mut f: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - if FLOAT_SIZE as i32 == unsafe { float_from_int(12300, f.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) } { + if FLOAT_SIZE as i32 + == unsafe { + float_from_int( + 12300, + f.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + } + { let _ = trace_float(" float from i64 12300:", &f); let _ = trace_data(" float from i64 12300 as HEX:", &f, AsHex); } else { @@ -99,22 +111,34 @@ fn test_float_from_wasm() -> bool { } let u64_value: u64 = 12300; - if FLOAT_SIZE as i32 == unsafe { - float_from_uint( - &u64_value as *const u64 as *const u8, - 8, - f.as_mut_ptr(), - FLOAT_SIZE, - FLOAT_ROUNDING_MODES_TO_NEAREST, - ) - } { + if FLOAT_SIZE as i32 + == unsafe { + float_from_uint( + &u64_value as *const u64 as *const u8, + 8, + f.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + } + { let _ = trace_float(" float from u64 12300:", &f); } else { let _ = trace(" float from u64 12300: failed"); all_pass = false; } - if FLOAT_SIZE as i32 == unsafe { float_from_mant_exp(123, 2, f.as_mut_ptr(), FLOAT_SIZE as i32, FLOAT_ROUNDING_MODES_TO_NEAREST) } { + if FLOAT_SIZE as i32 + == unsafe { + float_from_mant_exp( + 123, + 2, + f.as_mut_ptr(), + FLOAT_SIZE as i32, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + } + { let _ = trace_float(" float from exp 2, mantissa 123:", &f); } else { let _ = trace(" float from exp 2, mantissa 123: failed"); @@ -127,33 +151,56 @@ fn test_float_from_wasm() -> bool { all_pass } -fn test_float_compare() -> bool { - let _ = trace("\n$$$ test_float_compare $$$"); +fn test_float_cmp() -> bool { + let _ = trace("\n$$$ test_float_cmp $$$"); let mut all_pass = true; let mut f1: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - if FLOAT_SIZE as i32 != unsafe { float_from_int(1, f1.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) } { + if FLOAT_SIZE as i32 + != unsafe { + float_from_int( + 1, + f1.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + } + { let _ = trace(" float from 1: failed"); all_pass = false; } else { let _ = trace_float(" float from 1:", &f1); } - if 0 == unsafe { float_compare(f1.as_ptr(), FLOAT_SIZE, FLOAT_ONE.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { float_cmp(f1.as_ptr(), FLOAT_SIZE, FLOAT_ONE.as_ptr(), FLOAT_SIZE) } { let _ = trace(" float from 1 == FLOAT_ONE"); } else { let _ = trace(" float from 1 != FLOAT_ONE, failed"); all_pass = false; } - if 1 == unsafe { float_compare(f1.as_ptr(), FLOAT_SIZE, FLOAT_NEGATIVE_ONE.as_ptr(), FLOAT_SIZE) } { + if 1 == unsafe { + float_cmp( + f1.as_ptr(), + FLOAT_SIZE, + FLOAT_NEGATIVE_ONE.as_ptr(), + FLOAT_SIZE, + ) + } { let _ = trace(" float from 1 > FLOAT_NEGATIVE_ONE"); } else { let _ = trace(" float from 1 !> FLOAT_NEGATIVE_ONE, failed"); all_pass = false; } - if 2 == unsafe { float_compare(FLOAT_NEGATIVE_ONE.as_ptr(), FLOAT_SIZE, f1.as_ptr(), FLOAT_SIZE) } { + if 2 == unsafe { + float_cmp( + FLOAT_NEGATIVE_ONE.as_ptr(), + FLOAT_SIZE, + f1.as_ptr(), + FLOAT_SIZE, + ) + } { let _ = trace(" FLOAT_NEGATIVE_ONE < float from 1"); } else { let _ = trace(" FLOAT_NEGATIVE_ONE !< float from 1, failed"); @@ -183,12 +230,21 @@ fn test_float_add_subtract() -> bool { // let _ = trace_float(" float:", &f_compute); } let mut f10: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - if FLOAT_SIZE as i32 != unsafe { float_from_int(10, f10.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) } { + if FLOAT_SIZE as i32 + != unsafe { + float_from_int( + 10, + f10.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + } + { let _ = trace(" float from 10: failed"); all_pass = false; } - if 0 == unsafe { float_compare(f10.as_ptr(), FLOAT_SIZE, f_compute.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { float_cmp(f10.as_ptr(), FLOAT_SIZE, f_compute.as_ptr(), FLOAT_SIZE) } { let _ = trace(" repeated add: good"); } else { let _ = trace(" repeated add: failed"); @@ -197,7 +253,7 @@ fn test_float_add_subtract() -> bool { for i in 0..11 { unsafe { - float_subtract( + float_sub( f_compute.as_ptr(), FLOAT_SIZE, FLOAT_ONE.as_ptr(), @@ -208,7 +264,14 @@ fn test_float_add_subtract() -> bool { ) }; } - if 0 == unsafe { float_compare(f_compute.as_ptr(), FLOAT_SIZE, FLOAT_NEGATIVE_ONE.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { + float_cmp( + f_compute.as_ptr(), + FLOAT_SIZE, + FLOAT_NEGATIVE_ONE.as_ptr(), + FLOAT_SIZE, + ) + } { let _ = trace(" repeated subtract: good"); } else { let _ = trace(" repeated subtract: failed"); @@ -218,16 +281,23 @@ fn test_float_add_subtract() -> bool { all_pass } -fn test_float_multiply_divide() -> bool { - let _ = trace("\n$$$ test_float_multiply_divide $$$"); +fn test_float_mult_divide() -> bool { + let _ = trace("\n$$$ test_float_mult_divide $$$"); let mut all_pass = true; let mut f10: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(10, f10.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 10, + f10.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let mut f_compute: [u8; FLOAT_SIZE] = FLOAT_ONE; for i in 0..6 { unsafe { - float_multiply( + float_mult( f_compute.as_ptr(), FLOAT_SIZE, f10.as_ptr(), @@ -249,7 +319,14 @@ fn test_float_multiply_divide() -> bool { ) }; - if 0 == unsafe { float_compare(f1000000.as_ptr(), FLOAT_SIZE, f_compute.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { + float_cmp( + f1000000.as_ptr(), + FLOAT_SIZE, + f_compute.as_ptr(), + FLOAT_SIZE, + ) + } { let _ = trace(" repeated multiply: good"); } else { let _ = trace(" repeated multiply: failed"); @@ -258,7 +335,7 @@ fn test_float_multiply_divide() -> bool { for i in 0..7 { unsafe { - float_divide( + float_div( f_compute.as_ptr(), FLOAT_SIZE, f10.as_ptr(), @@ -270,9 +347,17 @@ fn test_float_multiply_divide() -> bool { }; } let mut f01: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_mant_exp(1, -1, f01.as_mut_ptr(), FLOAT_SIZE as i32, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_mant_exp( + 1, + -1, + f01.as_mut_ptr(), + FLOAT_SIZE as i32, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; - if 0 == unsafe { float_compare(f_compute.as_ptr(), FLOAT_SIZE, f01.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { float_cmp(f_compute.as_ptr(), FLOAT_SIZE, f01.as_ptr(), FLOAT_SIZE) } { let _ = trace(" repeated divide: good"); } else { let _ = trace(" repeated divide: failed"); @@ -284,6 +369,7 @@ fn test_float_multiply_divide() -> bool { fn test_float_pow() -> bool { let _ = trace("\n$$$ test_float_pow $$$"); + #[allow(unused_mut)] let mut all_pass = true; let mut f_compute: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; @@ -312,7 +398,14 @@ fn test_float_pow() -> bool { let _ = trace_float(" float 6th power of -1:", &f_compute); let mut f9: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(9, f9.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 9, + f9.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; unsafe { float_pow( f9.as_ptr(), @@ -338,7 +431,14 @@ fn test_float_pow() -> bool { let _ = trace_float(" float 0th power of 9:", &f_compute); let mut f0: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(0, f0.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 0, + f0.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; unsafe { float_pow( f0.as_ptr(), @@ -374,7 +474,14 @@ fn test_float_root() -> bool { let mut all_pass = true; let mut f9: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(9, f9.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 9, + f9.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let mut f_compute: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; unsafe { float_root( @@ -440,9 +547,16 @@ fn test_float_invert() -> bool { let mut f_compute: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; let mut f10: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(10, f10.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; unsafe { - float_divide( + float_from_int( + 10, + f10.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; + unsafe { + float_div( FLOAT_ONE.as_ptr(), FLOAT_SIZE, f10.as_ptr(), @@ -454,7 +568,7 @@ fn test_float_invert() -> bool { }; let _ = trace_float(" invert a float from 10:", &f_compute); unsafe { - float_divide( + float_div( FLOAT_ONE.as_ptr(), FLOAT_SIZE, f_compute.as_ptr(), @@ -467,7 +581,7 @@ fn test_float_invert() -> bool { let _ = trace_float(" invert again:", &f_compute); // if f10's value is 7, then invert twice won't match the original value - if 0 == unsafe { float_compare(f10.as_ptr(), FLOAT_SIZE, f_compute.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { float_cmp(f10.as_ptr(), FLOAT_SIZE, f_compute.as_ptr(), FLOAT_SIZE) } { let _ = trace(" invert twice: good"); } else { let _ = trace(" invert twice: failed"); @@ -489,7 +603,7 @@ fn test_float_to_int() -> bool { FLOAT_SIZE as i32, result.as_mut_ptr(), 8, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 { @@ -514,7 +628,7 @@ fn test_float_to_int() -> bool { FLOAT_SIZE as i32, result.as_mut_ptr(), 8, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 { @@ -535,14 +649,21 @@ fn test_float_to_int() -> bool { // Test converting a larger number (i64::MAX) let test_val: i64 = i64::MAX; let mut f_max: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(test_val, f_max.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + test_val, + f_max.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let ret = unsafe { float_to_int( f_max.as_ptr(), FLOAT_SIZE as i32, result.as_mut_ptr(), 8, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 { @@ -563,14 +684,21 @@ fn test_float_to_int() -> bool { // Test converting zero let mut f0: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(0, f0.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 0, + f0.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let ret = unsafe { float_to_int( f0.as_ptr(), FLOAT_SIZE as i32, result.as_mut_ptr(), 8, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 { @@ -590,14 +718,22 @@ fn test_float_to_int() -> bool { // Test rounding with fractional value (0.1) let mut f01: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_mant_exp(1, -1, f01.as_mut_ptr(), FLOAT_SIZE as i32, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_mant_exp( + 1, + -1, + f01.as_mut_ptr(), + FLOAT_SIZE as i32, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let ret = unsafe { float_to_int( f01.as_ptr(), FLOAT_SIZE as i32, result.as_mut_ptr(), 8 as i32, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 as i32 { @@ -622,7 +758,7 @@ fn test_float_to_int() -> bool { FLOAT_SIZE as i32, result.as_mut_ptr(), 8 as i32, - 1 + 1, ) }; if ret == 8 as i32 { @@ -711,7 +847,14 @@ fn test_float_to_mant_exp() -> bool { // Test with a float created from int (10) let mut f10: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(10, f10.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 10, + f10.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let mut mantissa_bytes: [u8; 8] = [0u8; 8]; let mut exponent_bytes: [u8; 4] = [0u8; 4]; @@ -745,7 +888,14 @@ fn test_float_to_mant_exp() -> bool { // Test with zero let mut f0: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(0, f0.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 0, + f0.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let mut mantissa_bytes: [u8; 8] = [0u8; 8]; let mut exponent_bytes: [u8; 4] = [0u8; 4]; @@ -792,9 +942,7 @@ fn test_float_from_stamount() -> bool { // Create an XRP amount: 100 XRP = 100,000,000 drops // XRP format: bit 62 clear (not IOU), bit 63 clear (not negative) // Amount in drops: 100,000,000 = 0x05F5E100 - let xrp_amount: [u8; 8] = [ - 0x40, 0x00, 0x00, 0x00, 0x05, 0xF5, 0xE1, 0x00 - ]; + let xrp_amount: [u8; 8] = [0x40, 0x00, 0x00, 0x00, 0x05, 0xF5, 0xE1, 0x00]; let mut f_result: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; let result_size = unsafe { @@ -818,7 +966,7 @@ fn test_float_from_stamount() -> bool { FLOAT_SIZE as i32, int_bytes.as_mut_ptr(), 8, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 { @@ -857,8 +1005,8 @@ fn test_float_from_stnumber() -> bool { // But we need to fit in int64, so use mantissa=123*10^15, exponent=-15 // 123*10^15 = 123000000000000000 = 0x01B69B4BA630F34000 let stnumber_123: [u8; 12] = [ - 0x01, 0xB6, 0x9B, 0x4B, 0xA6, 0x30, 0xF3, 0x40, // mantissa - 0xFF, 0xFF, 0xFF, 0xF1, // exponent = -15 + 0x01, 0xB6, 0x9B, 0x4B, 0xA6, 0x30, 0xF3, 0x40, // mantissa + 0xFF, 0xFF, 0xFF, 0xF1, // exponent = -15 ]; let mut f_result: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; @@ -883,7 +1031,7 @@ fn test_float_from_stnumber() -> bool { FLOAT_SIZE as i32, int_bytes.as_mut_ptr(), 8, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 { @@ -921,7 +1069,14 @@ fn test_float_from_stnumber() -> bool { let _ = trace_float(" float from STNumber (1):", &f_result); // Should match FLOAT_ONE - if 0 == unsafe { float_compare(f_result.as_ptr(), FLOAT_SIZE, FLOAT_ONE.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { + float_cmp( + f_result.as_ptr(), + FLOAT_SIZE, + FLOAT_ONE.as_ptr(), + FLOAT_SIZE, + ) + } { let _ = trace(" STNumber(1) == FLOAT_ONE: good"); } else { let _ = trace(" STNumber(1) == FLOAT_ONE: failed"); @@ -939,9 +1094,9 @@ fn test_float_from_stnumber() -> bool { pub extern "C" fn finish() -> i32 { let mut all_pass = true; all_pass &= test_float_from_wasm(); - all_pass &= test_float_compare(); + all_pass &= test_float_cmp(); all_pass &= test_float_add_subtract(); - all_pass &= test_float_multiply_divide(); + all_pass &= test_float_mult_divide(); all_pass &= test_float_pow(); all_pass &= test_float_root(); all_pass &= test_float_invert(); @@ -950,5 +1105,9 @@ pub extern "C" fn finish() -> i32 { all_pass &= test_float_from_stamount(); all_pass &= test_float_from_stnumber(); - if all_pass { 1 } else { 0 } + if all_pass { + 1 + } else { + 0 + } } diff --git a/src/test/app/wasm_fixtures/ledgerSqn.c b/src/test/app/wasm_fixtures/ledgerSqn.c index e4d57b8593..1366dee618 100644 --- a/src/test/app/wasm_fixtures/ledgerSqn.c +++ b/src/test/app/wasm_fixtures/ledgerSqn.c @@ -1,11 +1,11 @@ #include -int32_t get_ledger_sqn(uint8_t *, int32_t); +int32_t ldgr_index(uint8_t *, int32_t); int finish() { uint32_t sqn; - int32_t result = get_ledger_sqn((uint8_t *)&sqn, sizeof(sqn)); + int32_t result = ldgr_index((uint8_t *)&sqn, sizeof(sqn)); if (result < 0) return result;