mirror of
https://github.com/XRPLF/rippled.git
synced 2026-07-24 07:30:30 +00:00
fix most tests
This commit is contained in:
@@ -140,7 +140,7 @@ runFinishFunction(std::string const& code)
|
||||
auto& engine = WasmEngine::instance();
|
||||
auto const wasm = hexToBytes(code);
|
||||
HostFunctions hfs;
|
||||
auto const re = engine.run(wasm, hfs, 10'000'000, "finish");
|
||||
auto const re = engine.run(wasm, hfs, 10'000'000, escrowFunctionName);
|
||||
if (re.has_value())
|
||||
{
|
||||
return std::optional<int32_t>(re->result);
|
||||
@@ -403,7 +403,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
auto re = engine.run(
|
||||
allHostFuncWasm, hfs, 1'000'000, escrowFunctionName, {}, imp, env.journal);
|
||||
|
||||
checkResult(re, 1, 27'617);
|
||||
checkResult(re, 1, 26'329);
|
||||
|
||||
env.close();
|
||||
}
|
||||
@@ -425,7 +425,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
auto re = engine.run(
|
||||
allHostFuncWasm, hfs, 1'000'000, escrowFunctionName, {}, imp, env.journal);
|
||||
|
||||
checkResult(re, 1, 70'877);
|
||||
checkResult(re, 1, 69'589);
|
||||
|
||||
env.close();
|
||||
}
|
||||
@@ -446,8 +446,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
{
|
||||
// Running out of gas now terminates with tecOUT_OF_GAS (was
|
||||
// previously collapsed into tecFAILED_PROCESSING).
|
||||
BEAST_EXPECTS(
|
||||
re.error().ter == tecOUT_OF_GAS, std::to_string(TERtoInt(re.error().ter)));
|
||||
BEAST_EXPECTS(re.error().ter == tecOUT_OF_GAS, transToken(re.error().ter));
|
||||
}
|
||||
|
||||
env.close();
|
||||
@@ -466,7 +465,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
{
|
||||
TestHostFunctions hfs(env);
|
||||
auto re = runEscrowWasm(allHFWasm, hfs, 100'000, escrowFunctionName, {});
|
||||
checkResult(re, 1, 70'877);
|
||||
checkResult(re, 1, 69'589);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -490,7 +489,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
TestHostFunctions hfs(env);
|
||||
auto re = runEscrowWasm(
|
||||
allHFWasm, hfs, std::numeric_limits<int64_t>::max(), escrowFunctionName, {});
|
||||
checkResult(re, 1, 70'877);
|
||||
checkResult(re, 1, 69'589);
|
||||
}
|
||||
|
||||
{ // fail because trying to access nonexistent field
|
||||
@@ -508,7 +507,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
|
||||
FieldNotFoundHostFunctions hfs(env);
|
||||
auto re = runEscrowWasm(allHFWasm, hfs, 100'000, escrowFunctionName, {});
|
||||
checkResult(re, -201, 29'502);
|
||||
checkResult(re, -201, 28'421);
|
||||
}
|
||||
|
||||
{ // fail because trying to allocate more than MAX_PAGES memory
|
||||
@@ -526,7 +525,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
|
||||
OversizedFieldHostFunctions hfs(env);
|
||||
auto re = runEscrowWasm(allHFWasm, hfs, 100'000, escrowFunctionName, {});
|
||||
checkResult(re, -201, 29'502);
|
||||
checkResult(re, -201, 28'421);
|
||||
}
|
||||
|
||||
// This test use log output, so DEBUG_OUTPUT must be disabled.
|
||||
@@ -536,7 +535,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
auto const deepWasm = hexToBytes(kDeepRecursionHex);
|
||||
|
||||
TestHostFunctionsSink hfs(env);
|
||||
std::string const funcName("finish");
|
||||
std::string const funcName(escrowFunctionName);
|
||||
auto re = runEscrowWasm(deepWasm, hfs, 1'000'000'000, funcName, {});
|
||||
BEAST_EXPECT(!re && re.error().ter);
|
||||
// std::cout << "bad case (deep recursion) result " << re.error()
|
||||
@@ -556,7 +555,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
|
||||
auto const s = sink.messages().str();
|
||||
BEAST_EXPECT(countSubstr(s, "WASMI Error: failure to call func") == 1);
|
||||
BEAST_EXPECT(countSubstr(s, "exception: <finish> failure") > 0);
|
||||
BEAST_EXPECT(countSubstr(s, "TrapCode(StackOverflow)") > 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -569,7 +568,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
auto const re = runEscrowWasm(infiniteLoopWasm, hfs, 1'000'000, funcName, {});
|
||||
if (BEAST_EXPECT(!re.has_value()))
|
||||
{
|
||||
BEAST_EXPECT(re.error().ter == tecFAILED_PROCESSING);
|
||||
BEAST_EXPECT(re.error().ter == tecOUT_OF_GAS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -623,7 +622,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
{
|
||||
testcase("float point");
|
||||
|
||||
std::string const funcName("finish");
|
||||
std::string const funcName(escrowFunctionName);
|
||||
|
||||
using namespace test::jtx;
|
||||
|
||||
@@ -633,7 +632,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
|
||||
TestHostFunctions hfs(env);
|
||||
auto re = runEscrowWasm(floatTestWasm, hfs, 200'000, funcName, {});
|
||||
checkResult(re, 1, 134'938);
|
||||
checkResult(re, 1, 134'402);
|
||||
env.close();
|
||||
}
|
||||
|
||||
@@ -642,7 +641,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
|
||||
TestHostFunctions hfs(env);
|
||||
auto re = runEscrowWasm(float0Wasm, hfs, 100'000, funcName, {});
|
||||
checkResult(re, 1, 2'819);
|
||||
checkResult(re, 1, 2'775);
|
||||
env.close();
|
||||
}
|
||||
}
|
||||
@@ -659,7 +658,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
auto const codecovWasm = hexToBytes(kCodecovTestsWasmHex);
|
||||
TestHostFunctions hfs(env);
|
||||
|
||||
auto const allowance = 204'624;
|
||||
auto const allowance = 204'316;
|
||||
auto re = runEscrowWasm(codecovWasm, hfs, allowance, escrowFunctionName, {});
|
||||
|
||||
checkResult(re, 1, allowance);
|
||||
@@ -674,7 +673,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
Env env{*this};
|
||||
|
||||
auto disabledFloatWasm = hexToBytes(kDisabledFloatHex);
|
||||
std::string const funcName("finish");
|
||||
std::string const funcName(escrowFunctionName);
|
||||
TestHostFunctions hfs(env);
|
||||
|
||||
{
|
||||
@@ -688,7 +687,7 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
|
||||
{
|
||||
// f32 add, can't create module exception
|
||||
disabledFloatWasm[0x117] = 0x92;
|
||||
disabledFloatWasm[0x11e] = 0x92;
|
||||
auto const re = runEscrowWasm(disabledFloatWasm, hfs, 1'000'000, funcName, {});
|
||||
if (BEAST_EXPECT(!re.has_value()))
|
||||
{
|
||||
@@ -792,13 +791,14 @@ struct Wasm_test : public beast::unit_test::Suite
|
||||
ImportVec const imports;
|
||||
|
||||
auto& engine = WasmEngine::instance();
|
||||
auto checkRes = engine.check(startLoopWasm, hfs, "finish", {}, imports, env.journal);
|
||||
BEAST_EXPECTS(checkRes == tesSUCCESS, std::to_string(TERtoInt(checkRes)));
|
||||
auto checkRes =
|
||||
engine.check(startLoopWasm, hfs, escrowFunctionName, {}, imports, env.journal);
|
||||
BEAST_EXPECTS(checkRes == tesSUCCESS, transToken(checkRes));
|
||||
|
||||
auto result =
|
||||
engine.run(startLoopWasm, hfs, 1'000'000, escrowFunctionName, {}, imports, env.journal);
|
||||
auto resultTer = result.error().ter;
|
||||
BEAST_EXPECTS(resultTer == tecFAILED_PROCESSING, std::to_string(TERtoInt(resultTer)));
|
||||
BEAST_EXPECTS(resultTer == tecFAILED_PROCESSING, transToken(resultTer));
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -389,7 +389,7 @@ fn test_any_ledger_object_functions() -> i32 {
|
||||
let escrow_finish = EscrowFinish;
|
||||
let account_id = escrow_finish.get_account().unwrap();
|
||||
|
||||
// Test 4.1: cache_ledger_obj() - Cache a ledger object
|
||||
// Test 4.1: cache_le() - Cache a ledger object
|
||||
let mut keylet_buffer = [0u8; 32];
|
||||
let keylet_result = unsafe {
|
||||
host::accountroot_id(
|
||||
@@ -412,7 +412,7 @@ fn test_any_ledger_object_functions() -> i32 {
|
||||
|
||||
if cache_result <= 0 {
|
||||
let _ = trace_num(
|
||||
"INFO: cache_ledger_obj failed (expected with test fixtures):",
|
||||
"INFO: cache_le failed (expected with test fixtures):",
|
||||
cache_result as i64,
|
||||
);
|
||||
// Test fixtures may not contain the account object - this is expected
|
||||
@@ -421,7 +421,7 @@ fn test_any_ledger_object_functions() -> i32 {
|
||||
// Test 4.2-4.5 with invalid slot (should fail gracefully)
|
||||
let mut test_buffer = [0u8; 32];
|
||||
|
||||
// Test get_ledger_obj_field with invalid slot
|
||||
// Test le_field with invalid slot
|
||||
let field_result = unsafe {
|
||||
host::le_field(
|
||||
1,
|
||||
@@ -432,12 +432,12 @@ fn test_any_ledger_object_functions() -> i32 {
|
||||
};
|
||||
if field_result < 0 {
|
||||
let _ = trace_num(
|
||||
"INFO: get_ledger_obj_field failed as expected (no cached object):",
|
||||
"INFO: le_field failed as expected (no cached object):",
|
||||
field_result as i64,
|
||||
);
|
||||
}
|
||||
|
||||
// Test get_ledger_obj_nested_field with invalid slot
|
||||
// Test le_inner_field with invalid slot
|
||||
let locator = [
|
||||
0x01_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8,
|
||||
]; // Two int32s in little-endian: [1, 0]
|
||||
@@ -452,16 +452,16 @@ fn test_any_ledger_object_functions() -> i32 {
|
||||
};
|
||||
if nested_result < 0 {
|
||||
let _ = trace_num(
|
||||
"INFO: get_ledger_obj_nested_field failed as expected:",
|
||||
"INFO: le_inner_field failed as expected:",
|
||||
nested_result as i64,
|
||||
);
|
||||
}
|
||||
|
||||
// Test get_ledger_obj_array_len with invalid slot
|
||||
// Test le_inner_arr_len with invalid slot
|
||||
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:",
|
||||
"INFO: le_inner_arr_len failed as expected:",
|
||||
array_result as i64,
|
||||
);
|
||||
}
|
||||
@@ -484,7 +484,7 @@ fn test_any_ledger_object_functions() -> i32 {
|
||||
let slot = cache_result;
|
||||
let _ = trace_num("Successfully cached object in slot:", slot as i64);
|
||||
|
||||
// Test 4.2: get_ledger_obj_field() - Access field from cached object
|
||||
// Test 4.2: le_field() - Access field from cached object
|
||||
let mut cached_balance_buffer = [0u8; 8];
|
||||
let cached_balance_result = unsafe {
|
||||
host::le_field(
|
||||
@@ -497,7 +497,7 @@ fn test_any_ledger_object_functions() -> i32 {
|
||||
|
||||
if cached_balance_result <= 0 {
|
||||
let _ = trace_num(
|
||||
"INFO: get_ledger_obj_field(Balance) failed:",
|
||||
"INFO: le_field(Balance) failed:",
|
||||
cached_balance_result as i64,
|
||||
);
|
||||
} else if cached_balance_result == 8 {
|
||||
@@ -522,7 +522,7 @@ fn test_any_ledger_object_functions() -> i32 {
|
||||
);
|
||||
}
|
||||
|
||||
// Test 4.3: get_ledger_obj_nested_field() - Nested field from cached object
|
||||
// Test 4.3: le_inner_field() - Nested field from cached object
|
||||
let locator = [
|
||||
0x01_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8,
|
||||
]; // Two int32s in little-endian: [1, 0]
|
||||
@@ -539,7 +539,7 @@ fn test_any_ledger_object_functions() -> i32 {
|
||||
|
||||
if cached_nested_result < 0 {
|
||||
let _ = trace_num(
|
||||
"INFO: get_ledger_obj_nested_field not applicable:",
|
||||
"INFO: le_inner_field not applicable:",
|
||||
cached_nested_result as i64,
|
||||
);
|
||||
} else {
|
||||
@@ -551,7 +551,7 @@ fn test_any_ledger_object_functions() -> i32 {
|
||||
);
|
||||
}
|
||||
|
||||
// Test 4.4: get_ledger_obj_array_len() - Array length from cached object
|
||||
// Test 4.4: le_inner_arr_len() - Array length from cached object
|
||||
let cached_array_len = unsafe { host::le_arr_len(slot, sfield::Signers.into()) };
|
||||
let _ = trace_num(
|
||||
"Cached object Signers array length:",
|
||||
|
||||
@@ -185,13 +185,28 @@ def process_c(project_name):
|
||||
|
||||
|
||||
def wat_to_wasm(wat_path, wasm_path):
|
||||
build_cmd = ["wat2wasm", wat_path, "-o", wasm_path]
|
||||
build_cmd = ["wat2wasm", "--enable-all", wat_path, "-o", wasm_path]
|
||||
try:
|
||||
subprocess.run(build_cmd, check=True)
|
||||
print(f"WASM file for {os.path.basename(wat_path)} has been built.")
|
||||
return
|
||||
except FileNotFoundError:
|
||||
print("exec error: wat2wasm is required to build WAT fixtures")
|
||||
sys.exit(1)
|
||||
except subprocess.CalledProcessError:
|
||||
# wat2wasm (wabt) does not support some proposal text syntax such as
|
||||
# the GC instructions, so fall back to wasm-tools which does.
|
||||
pass
|
||||
|
||||
fallback_cmd = ["wasm-tools", "parse", wat_path, "-o", wasm_path]
|
||||
try:
|
||||
subprocess.run(fallback_cmd, check=True)
|
||||
print(
|
||||
f"WASM file for {os.path.basename(wat_path)} has been built with wasm-tools."
|
||||
)
|
||||
except FileNotFoundError:
|
||||
print("exec error: wasm-tools is required to build this WAT fixture")
|
||||
sys.exit(1)
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"exec error: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
(global (;9;) i32 (i32.const 1))
|
||||
(export "memory" (memory 0))
|
||||
(export "__wasm_call_ctors" (func 0))
|
||||
(export "finish" (func 1))
|
||||
(export "escrow_finish" (func 1))
|
||||
(export "buf" (global 0))
|
||||
(export "__dso_handle" (global 1))
|
||||
(export "__data_end" (global 2))
|
||||
|
||||
@@ -5,9 +5,18 @@
|
||||
#include <string>
|
||||
|
||||
extern std::string const kFibWasmHex =
|
||||
"0061736d0100000001090260000060017f017f0303020001071b02115f5f7761736d5f63616c6c5f63746f72730000"
|
||||
"0366696200010a440202000b3f01017f200045044041000f0b2000410348044041010f0b200041026a210003402000"
|
||||
"41036b100120016a2101200041026b220041044a0d000b200141016a0b";
|
||||
"0061736d0100000001090260000060017f017f030302000105030100020638097f004180080b7f004180080b7f0041"
|
||||
"80080b7f00418088040b7f004180080b7f00418088040b7f00418080080b7f0041000b7f0041010b07a7010c066d65"
|
||||
"6d6f72790200115f5f7761736d5f63616c6c5f63746f727300000366696200010c5f5f64736f5f68616e646c650300"
|
||||
"0a5f5f646174615f656e6403010b5f5f737461636b5f6c6f7703020c5f5f737461636b5f6869676803030d5f5f676c"
|
||||
"6f62616c5f6261736503040b5f5f686561705f6261736503050a5f5f686561705f656e6403060d5f5f6d656d6f7279"
|
||||
"5f6261736503070c5f5f7461626c655f6261736503080a440202000b3f01017f200045044041000f0b200041034804"
|
||||
"4041010f0b200041026a21000340200041036b100120016a2101200041026b220041044a0d000b200141016a0b007f"
|
||||
"0970726f647563657273010c70726f6365737365642d62790105636c616e675f31392e312e352d776173692d73646b"
|
||||
"202868747470733a2f2f6769746875622e636f6d2f6c6c766d2f6c6c766d2d70726f6a656374206162346235613264"
|
||||
"62353832393538616631656533303861373930636664623432626432343732302900490f7461726765745f66656174"
|
||||
"75726573042b0f6d757461626c652d676c6f62616c732b087369676e2d6578742b0f7265666572656e63652d747970"
|
||||
"65732b0a6d756c746976616c7565";
|
||||
|
||||
extern std::string const kLedgerSqnWasmHex =
|
||||
"0061736d01000000010e0360027f7f017f6000006000017f02120103656e760a6c6467725f696e6465780000030302"
|
||||
@@ -40,15 +49,15 @@ extern std::string const kAllHostFunctionsWasmHex =
|
||||
"686f73745f6c69620a6c655f6172725f6c656e000008686f73745f6c69620a74726163655f61636374000208686f73"
|
||||
"745f6c69620e6163636f756e74726f6f745f6964000208686f73745f6c6962106c655f696e6e65725f6172725f6c65"
|
||||
"6e000108686f73745f6c6962086c655f6669656c64000208686f73745f6c6962086c655f696e6e65720006030c0b09"
|
||||
"0a05050b05000101030005030100110619037f01418080c0000b7f0041af99c0000b7f0041b099c0000b073504066d"
|
||||
"0a05050b05000101030005030100110619037f01418080c0000b7f0041ed98c0000b7f0041f098c0000b073504066d"
|
||||
"656d6f727902000d657363726f775f66696e697368001e0a5f5f646174615f656e6403010b5f5f686561705f626173"
|
||||
"6503020ae41c0b8d0101027f230041306b220124002000027f418180202001411c6a4114100022024114470440417f"
|
||||
"6503020ae31c0b8d0101027f230041306b220124002000027f418180202001411c6a4114100022024114470440417f"
|
||||
"20022002417f4e1b210241010c010b200020012d001e3a0003200020012f001c3b0001200120012900233703082001"
|
||||
"200129002837000d200128001f21022000200129000d37000d2000200129030837020841000b3a0000200020023602"
|
||||
"04200141306a24000b3a0020012d00004101460440418080c000410b20013402041001000b20002001280011360010"
|
||||
"20002001290009370008200020012900013700000b1900200241094f0440000b20002002360204200020013602000b"
|
||||
"1900200241214f0440000b20002002360204200020013602000b941a01087f230041b0036b2200240041d398c00041"
|
||||
"1b41014100410010021a41ee98c000411941014100410010021a41a984c000412b41014100410010021a2000410036"
|
||||
"1900200241214f0440000b20002002360204200020013602000b931a01087f230041b0036b22002400419198c00041"
|
||||
"1b41014100410010021a41ac98c000411941014100410010021a41a984c000412b41014100410010021a2000410036"
|
||||
"027002400240024002400240024002400240200041f0006a220441041003220141004a044041d484c0004117200028"
|
||||
"0270220141ff81fc0771410878200141187841ff81fc077172ad10011a200041003602900120004190016a22034104"
|
||||
"1004220141004c0d0141eb84c0004113200028029001220141ff81fc0771410878200141187841ff81fc077172ad10"
|
||||
@@ -62,141 +71,140 @@ extern std::string const kAllHostFunctionsWasmHex =
|
||||
"b487c00041142001ad10011a200041286a20052001101d41c887c000410d2000280228200028022c410110021a0c01"
|
||||
"0b41d587c00041292001ac10011a0b41fe87c00041154183803c1007ac10011a419388c00041134189803c1007ac10"
|
||||
"011a0240200041f0006a41081008220141004e044041a688c00041142001ad10011a0c010b41ba88c000412d2001ac"
|
||||
"10011a0b41e788c000412341014100410010021a41db93c000413341014100410010021a2000420037034841828018"
|
||||
"200041c8006a220141081009220341004c0d0620034108460440418e94c000412b420810011a41b994c000412f2001"
|
||||
"4108410110021a0c080b41e894c000412f2003ad10011a200041206a200041c8006a2003101c419795c00041172000"
|
||||
"10011a0b41e788c000412341014100410010021a419993c000413341014100410010021a2000420037034841828018"
|
||||
"200041c8006a220141081009220341004c0d062003410846044041cc93c000412b420810011a41f793c000412f2001"
|
||||
"4108410110021a0c080b41a694c000412f2003ad10011a200041206a200041c8006a2003101c41d594c00041172000"
|
||||
"2802202000280224410110021a0c070b418186c000411d2001ac10011a419b7f21020c070b41dc85c00041252001ac"
|
||||
"10011a419a7f21020c060b41b185c000412b2001ac10011a41997f21020c050b41f689c000412a2001ac10011a41b7"
|
||||
"7e21020c040b41b589c00041c1002001ac10011a41b67e21020c030b418a89c000412b2001ac10011a41b57e21020c"
|
||||
"020b41ae95c00041c5002003ac10011a0b200041003602a00120004200370398012000420037039001024041818020"
|
||||
"20004190016a220341141009220141004a044041f395c000411e2003101f0c010b419196c00041332001ac10011a0b"
|
||||
"020b41ec94c00041c5002003ac10011a0b200041003602a00120004200370398012000420037039001024041818020"
|
||||
"20004190016a220341141009220141004a044041b195c000411e2003101f0c010b41cf95c00041332001ac10011a0b"
|
||||
"20004100360071200041013a007020004100360074200042003703c801200042003703c001200042003703b8012000"
|
||||
"42003703b0010240200041f0006a4108200041b0016a22014120100a220341004e044041c496c000411c2003ad1001"
|
||||
"1a200041186a20012003101d41e096c00041152000280218200028021c410110021a0c010b41f596c00041392003ac"
|
||||
"10011a0b41ae97c00041244183803c100bac10011a0240200041f0006a4108100c220141004e044041d297c000411c"
|
||||
"2001ad10011a0c010b41ee97c000413d2001ac10011a0b41ab98c000412841014100410010021a41a08ac000412f41"
|
||||
"42003703b0010240200041f0006a4108200041b0016a22014120100a220341004e0440418296c000411c2003ad1001"
|
||||
"1a200041186a20012003101d419e96c00041152000280218200028021c410110021a0c010b41b396c00041392003ac"
|
||||
"10011a0b41ec96c00041244183803c100bac10011a0240200041f0006a4108100c220141004e0440419097c000411c"
|
||||
"2001ad10011a0c010b41ac97c000413d2001ac10011a0b41e997c000412841014100410010021a41a08ac000412f41"
|
||||
"014100410010021a200041b0016a2203101a200041f0006a22012003101b200042003703a801200042003703a00120"
|
||||
"00420037039801200042003703900102400240024002400240200120004190016a2203102022014120460440200341"
|
||||
"204100100d220441004a044041cf8ac00041232004ad10011a200042003703302004200041306a2201410810212203"
|
||||
"41004c0d022003410846044041f28ac000412a420810011a419c8bc000412e20014108410110021a0c060b41ca8bc0"
|
||||
"00412e2003ad10011a200041106a200041306a2003101c41f88bc000411620002802102000280214410110021a0c05"
|
||||
"0b41b08ec000413c2004ac10011a200042003703c801200042003703c001200042003703b801200042003703b00141"
|
||||
"01200041b0016a4120102122014100480d020c030b418491c000412e2001ac10011a41ef7c21020c050b418e8cc000"
|
||||
"412b2003ac10011a0c020b41ec8ec00041c1002001ac10011a0b20004100360049200041013a00482000410036004c"
|
||||
"4101200041c8006a200041b0016a10222201410048044041ad8fc00041352001ac10011a0b41011023220141004804"
|
||||
"4041e28fc00041322001ac10011a0b4101200041c8006a102422014100480440419490c00041392001ac10011a0b41"
|
||||
"cd90c000413741014100410010021a0c010b20004100360049200041013a00482000410036004c200042003703c801"
|
||||
"200042003703c001200042003703b801200042003703b00102402004200041c8006a200041b0016a22011022220341"
|
||||
"004e044041b98cc000411b2003ad10011a200041086a20012003101d41d48cc00041142000280208200028020c4101"
|
||||
"10021a0c010b41e88cc00041312003ac10011a0b41998dc000412320041023ac10011a02402004200041c8006a1024"
|
||||
"220141004e044041bc8dc000411b2001ad10011a0c010b41d78dc00041352001ac10011a0b418c8ec0004124410141"
|
||||
"00410010021a0b41b291c000412f41014100410010021a200041b0016a2201101a200041306a22042001101b200042"
|
||||
"00370360200042003703582000420037035020004200370348024002400240024002402004200041c8006a22031020"
|
||||
"2201412046044041e191c000410f20034120410110021a200042003703880120004200370380012000420037037820"
|
||||
"0042003703700240200441142004411441f091c0004109200041f0006a22014120100e220341004a04402000200120"
|
||||
"03101d41f891c000411220002802002000280204410110021a0c010b418a92c000413c2003ac10011a0b2000420037"
|
||||
"03a801200042003703a0012000420037039801200042003703900120004180808cc07e360268200041306a22034114"
|
||||
"200041e8006a410420004190016a22064120100f22014120470d0141c692c000410e20064120410110021a20004200"
|
||||
"3703c801200042003703c001200042003703b801200042003703b001200041808080d00236026c20034114200041ec"
|
||||
"006a4104200041b0016a22044120101022014120470d0241d492c000410e20044120410110021a41e292c000412441"
|
||||
"014100410010021a418b80c000412541014100410010021a2000420037038801200042003703800120004200370378"
|
||||
"2000420037037041b080c0004117200041f0006a22034120101122014120470d0341c780c000410b41b080c0004117"
|
||||
"410110021a41d280c000411120034120410110021a2004101a200041c8006a22072004101b200042003703a8012000"
|
||||
"42003703a0012000420037039801200042003703900102404100200422026b410371220320026a220520024d0d0020"
|
||||
"030440200321010340200241003a0000200241016a2102200141016b22010d000b0b200341016b4107490d00034020"
|
||||
"0241003a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000200241046a41003a000020"
|
||||
"0241036a41003a0000200241026a41003a0000200241016a41003a0000200241086a22022005470d000b0b20054180"
|
||||
"0220036b2201417c716a220220054b0440034020054100360200200541046a22052002490d000b0b02402002200141"
|
||||
"0371220120026a22034f0d002001220504400340200241003a0000200241016a2102200541016b22050d000b0b2001"
|
||||
"41016b4107490d000340200241003a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000"
|
||||
"200241046a41003a0000200241036a41003a0000200241026a41003a0000200241016a41003a0000200241086a2202"
|
||||
"2003470d000b0b0240200741142006412020044180021012220141004a044041e380c00041102001ad10011a200141"
|
||||
"81024f0d0641f380c000410920042001410110021a0c010b41fc80c000412e2001ac10011a0b41aa81c000411241bc"
|
||||
"81c00041074101100222014100480d0541c381c000411d2001ad10011a41e081c0004111422a1001410048044041a7"
|
||||
"82c000411a42a47b10011a41a47b21020c070b41f181c000411c420010011a41012102418d82c000411a4101410041"
|
||||
"0010021a41f982c000412941014100410010021a41a283c000412810132201412846044041ca83c000412741a283c0"
|
||||
"004128410110021a41f183c000411e41014100410010021a418799c000412841014100410010021a0c070b418f84c0"
|
||||
"00411a2001ac10011a41c37a21020c060b41be93c000411d2001ac10011a418b7c21020c050b41a293c000411c2001"
|
||||
"ac10011a41897c21020c040b418693c000411c2001ac10011a41887c21020c030b41d782c00041222001ac10011a41"
|
||||
"a77b21020c020b000b41c182c00041162001ac10011a41a57b21020b200041b0036a240020020b0d00200020012002"
|
||||
"411410151a0b0c00200041142001412010160b0e002000418280182001200210180b0e002000200141082002412010"
|
||||
"190b0a0020004183803c10140b0a0020002001410810170b0bb9190100418080c0000baf196572726f725f636f6465"
|
||||
"3d2d2d2d2043617465676f727920363a205574696c6974792046756e6374696f6e73202d2d2d48656c6c6f2c205852"
|
||||
"504c205741534d20776f726c6421496e70757420646174613a5348413531322068616c6620686173683a4e46542064"
|
||||
"617461206c656e6774683a4e465420646174613a494e464f3a206765745f6e6674206661696c656420286578706563"
|
||||
"746564202d206e6f2073756368204e4654293a54657374207472616365206d6573736167657061796c6f6164547261"
|
||||
"63652066756e6374696f6e206279746573207772697474656e3a54657374206e756d62657220747261636554726163"
|
||||
"655f6e756d2066756e6374696f6e20737563636565646564535543434553533a205574696c6974792066756e637469"
|
||||
"6f6e734552524f523a2074726163655f6e756d2829206661696c65643a4552524f523a207472616365282920666169"
|
||||
"6c65643a4552524f523a20636f6d707574655f7368613531325f68616c66206661696c65643a2d2d2d204361746567"
|
||||
"6f727920373a2044617461205570646174652046756e6374696f6e73202d2d2d55706461746564206c656467657220"
|
||||
"656e74727920646174612066726f6d205741534d20746573745375636365737366756c6c792075706461746564206c"
|
||||
"656467657220656e74727920776974683a535543434553533a2044617461207570646174652066756e6374696f6e73"
|
||||
"4552524f523a207570646174655f64617461206661696c65643a2d2d2d2043617465676f727920313a204c65646765"
|
||||
"72204865616465722046756e6374696f6e73202d2d2d4c65646765722073657175656e6365206e756d6265723a5061"
|
||||
"72656e74206c65646765722074696d653a506172656e74206c656467657220686173683a535543434553533a204c65"
|
||||
"64676572206865616465722066756e6374696f6e734552524f523a206765745f706172656e745f6c65646765725f68"
|
||||
"6173682077726f6e67206c656e6774683a4552524f523a206765745f706172656e745f6c65646765725f74696d6520"
|
||||
"6661696c65643a4552524f523a206765745f6c65646765725f73716e206661696c65643a2d2d2d2043617465676f72"
|
||||
"7920323a205472616e73616374696f6e20446174612046756e6374696f6e73202d2d2d5472616e73616374696f6e20"
|
||||
"4163636f756e743a5472616e73616374696f6e20466565206c656e6774683a5472616e73616374696f6e2046656520"
|
||||
"2873657269616c697a65642058525020616d6f756e74293a5472616e73616374696f6e2053657175656e63653a4e65"
|
||||
"73746564206669656c64206c656e6774683a4e6573746564206669656c643a494e464f3a206765745f74785f6e6573"
|
||||
"7465645f6669656c64206e6f74206170706c696361626c653a5369676e657273206172726179206c656e6774683a4d"
|
||||
"656d6f73206172726179206c656e6774683a4e6573746564206172726179206c656e6774683a494e464f3a20676574"
|
||||
"5f74785f6e65737465645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a205472"
|
||||
"616e73616374696f6e20646174612066756e6374696f6e734552524f523a206765745f74785f6669656c6428536571"
|
||||
"75656e6365292077726f6e67206c656e6774683a4552524f523a206765745f74785f6669656c642846656529207772"
|
||||
"6f6e67206c656e67746820286578706563746564203820627974657320666f7220585250293a4552524f523a206765"
|
||||
"745f74785f6669656c64284163636f756e74292077726f6e67206c656e6774683a2d2d2d2043617465676f72792034"
|
||||
"3a20416e79204c6564676572204f626a6563742046756e6374696f6e73202d2d2d5375636365737366756c6c792063"
|
||||
"6163686564206f626a65637420696e20736c6f743a436163686564206f626a6563742062616c616e6365206c656e67"
|
||||
"7468202858525020616d6f756e74293a436163686564206f626a6563742062616c616e6365202873657269616c697a"
|
||||
"65642058525020616d6f756e74293a436163686564206f626a6563742062616c616e6365206c656e67746820286e6f"
|
||||
"6e2d58525020616d6f756e74293a436163686564206f626a6563742062616c616e63653a494e464f3a206765745f6c"
|
||||
"65646765725f6f626a5f6669656c642842616c616e636529206661696c65643a436163686564206e65737465642066"
|
||||
"69656c64206c656e6774683a436163686564206e6573746564206669656c643a494e464f3a206765745f6c65646765"
|
||||
"725f6f626a5f6e65737465645f6669656c64206e6f74206170706c696361626c653a436163686564206f626a656374"
|
||||
"205369676e657273206172726179206c656e6774683a436163686564206e6573746564206172726179206c656e6774"
|
||||
"683a494e464f3a206765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e206e6f7420617070"
|
||||
"6c696361626c653a535543434553533a20416e79206c6564676572206f626a6563742066756e6374696f6e73494e46"
|
||||
"4f3a2063616368655f6c65646765725f6f626a206661696c6564202865787065637465642077697468207465737420"
|
||||
"6669787475726573293a494e464f3a206765745f6c65646765725f6f626a5f6669656c64206661696c656420617320"
|
||||
"657870656374656420286e6f20636163686564206f626a656374293a494e464f3a206765745f6c65646765725f6f62"
|
||||
"6a5f6e65737465645f6669656c64206661696c65642061732065787065637465643a494e464f3a206765745f6c6564"
|
||||
"6765725f6f626a5f61727261795f6c656e206661696c65642061732065787065637465643a494e464f3a206765745f"
|
||||
"6c65646765725f6f626a5f6e65737465645f61727261795f6c656e206661696c65642061732065787065637465643a"
|
||||
"535543434553533a20416e79206c6564676572206f626a6563742066756e6374696f6e732028696e74657266616365"
|
||||
"20746573746564294552524f523a206163636f756e74726f6f745f6964206661696c656420666f722063616368696e"
|
||||
"6720746573743a2d2d2d2043617465676f727920353a204b65796c65742047656e65726174696f6e2046756e637469"
|
||||
"6f6e73202d2d2d4163636f756e74206b65796c65743a546573745479706543726564656e7469616c206b65796c6574"
|
||||
"3a494e464f3a2063726564656e7469616c5f6b65796c6574206661696c656420286578706563746564202d20696e74"
|
||||
"657266616365206973737565293a457363726f77206b65796c65743a4f7261636c65206b65796c65743a5355434345"
|
||||
"53533a204b65796c65742067656e65726174696f6e2066756e6374696f6e734552524f523a206f7261636c655f6b65"
|
||||
"796c6574206661696c65643a4552524f523a20657363726f775f6b65796c6574206661696c65643a4552524f523a20"
|
||||
"6163636f756e74726f6f745f6964206661696c65643a2d2d2d2043617465676f727920333a2043757272656e74204c"
|
||||
"6564676572204f626a6563742046756e6374696f6e73202d2d2d43757272656e74206f626a6563742062616c616e63"
|
||||
"65206c656e677468202858525020616d6f756e74293a43757272656e74206f626a6563742062616c616e6365202873"
|
||||
"657269616c697a65642058525020616d6f756e74293a43757272656e74206f626a6563742062616c616e6365206c65"
|
||||
"6e67746820286e6f6e2d58525020616d6f756e74293a43757272656e74206f626a6563742062616c616e63653a494e"
|
||||
"464f3a206765745f63757272656e745f6c65646765725f6f626a5f6669656c642842616c616e636529206661696c65"
|
||||
"6420286d6179206265206578706563746564293a43757272656e74206c6564676572206f626a656374206163636f75"
|
||||
"6e743a494e464f3a206765745f63757272656e745f6c65646765725f6f626a5f6669656c64284163636f756e742920"
|
||||
"6661696c65643a43757272656e74206e6573746564206669656c64206c656e6774683a43757272656e74206e657374"
|
||||
"6564206669656c643a494e464f3a206765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f6669"
|
||||
"656c64206e6f74206170706c696361626c653a43757272656e74206f626a656374205369676e657273206172726179"
|
||||
"206c656e6774683a43757272656e74206e6573746564206172726179206c656e6774683a494e464f3a206765745f63"
|
||||
"757272656e745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e206e6f74206170706c69636162"
|
||||
"6c653a535543434553533a2043757272656e74206c6564676572206f626a6563742066756e6374696f6e733d3d3d20"
|
||||
"484f53542046554e4354494f4e532054455354203d3d3d54657374696e6720323620686f73742066756e6374696f6e"
|
||||
"73535543434553533a20416c6c20686f73742066756e6374696f6e2074657374732070617373656421004d0970726f"
|
||||
"64756365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e39"
|
||||
"352e30202835393830373631366520323032362d30342d313429002c0f7461726765745f6665617475726573022b0f"
|
||||
"6d757461626c652d676c6f62616c732b087369676e2d657874";
|
||||
"0b41978ec00041342004ac10011a200042003703c801200042003703c001200042003703b801200042003703b00141"
|
||||
"01200041b0016a4120102122014100480d020c030b41c290c000412e2001ac10011a41ef7c21020c050b418e8cc000"
|
||||
"411f2003ac10011a0c020b41cb8ec00041352001ac10011a0b20004100360049200041013a00482000410036004c41"
|
||||
"01200041c8006a200041b0016a10222201410048044041808fc00041282001ac10011a0b4101102322014100480440"
|
||||
"41a88fc000412a2001ac10011a0b4101200041c8006a10242201410048044041d28fc00041392001ac10011a0b418b"
|
||||
"90c000413741014100410010021a0c010b20004100360049200041013a00482000410036004c200042003703c80120"
|
||||
"0042003703c001200042003703b801200042003703b00102402004200041c8006a200041b0016a2201102222034100"
|
||||
"4e044041ad8cc000411b2003ad10011a200041086a20012003101d41c88cc00041142000280208200028020c410110"
|
||||
"021a0c010b41dc8cc00041242003ac10011a0b41808dc000412320041023ac10011a02402004200041c8006a102422"
|
||||
"0141004e044041a38dc000411b2001ad10011a0c010b41be8dc00041352001ac10011a0b41f38dc000412441014100"
|
||||
"410010021a0b41f090c000412f41014100410010021a200041b0016a2201101a200041306a22042001101b20004200"
|
||||
"370360200042003703582000420037035020004200370348024002400240024002402004200041c8006a2203102022"
|
||||
"014120460440419f91c000410f20034120410110021a20004200370388012000420037038001200042003703782000"
|
||||
"42003703700240200441142004411441ae91c0004109200041f0006a22014120100e220341004a0440200020012003"
|
||||
"101d41b691c000411220002802002000280204410110021a0c010b41c891c000413c2003ac10011a0b200042003703"
|
||||
"a801200042003703a0012000420037039801200042003703900120004180808cc07e360268200041306a2203411420"
|
||||
"0041e8006a410420004190016a22064120100f22014120470d01418492c000410e20064120410110021a2000420037"
|
||||
"03c801200042003703c001200042003703b801200042003703b001200041808080d00236026c20034114200041ec00"
|
||||
"6a4104200041b0016a22044120101022014120470d02419292c000410e20044120410110021a41a092c00041244101"
|
||||
"4100410010021a418b80c000412541014100410010021a200042003703880120004200370380012000420037037820"
|
||||
"00420037037041b080c0004117200041f0006a22034120101122014120470d0341c780c000410b41b080c000411741"
|
||||
"0110021a41d280c000411120034120410110021a2004101a200041c8006a22072004101b200042003703a801200042"
|
||||
"003703a0012000420037039801200042003703900102404100200422026b410371220320026a220520024d0d002003"
|
||||
"0440200321010340200241003a0000200241016a2102200141016b22010d000b0b200341016b4107490d0003402002"
|
||||
"41003a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000200241046a41003a00002002"
|
||||
"41036a41003a0000200241026a41003a0000200241016a41003a0000200241086a22022005470d000b0b2005418002"
|
||||
"20036b2201417c716a220220054b0440034020054100360200200541046a22052002490d000b0b0240200220014103"
|
||||
"71220120026a22034f0d002001220504400340200241003a0000200241016a2102200541016b22050d000b0b200141"
|
||||
"016b4107490d000340200241003a0000200241076a41003a0000200241066a41003a0000200241056a41003a000020"
|
||||
"0241046a41003a0000200241036a41003a0000200241026a41003a0000200241016a41003a0000200241086a220220"
|
||||
"03470d000b0b0240200741142006412020044180021012220141004a044041e380c00041102001ad10011a20014181"
|
||||
"024f0d0641f380c000410920042001410110021a0c010b41fc80c000412e2001ac10011a0b41aa81c000411241bc81"
|
||||
"c00041074101100222014100480d0541c381c000411d2001ad10011a41e081c0004111422a1001410048044041a782"
|
||||
"c000411a42a47b10011a41a47b21020c070b41f181c000411c420010011a41012102418d82c000411a410141004100"
|
||||
"10021a41f982c000412941014100410010021a41a283c000412810132201412846044041ca83c000412741a283c000"
|
||||
"4128410110021a41f183c000411e41014100410010021a41c598c000412841014100410010021a0c070b418f84c000"
|
||||
"411a2001ac10011a41c37a21020c060b41fc92c000411d2001ac10011a418b7c21020c050b41e092c000411c2001ac"
|
||||
"10011a41897c21020c040b41c492c000411c2001ac10011a41887c21020c030b41d782c00041222001ac10011a41a7"
|
||||
"7b21020c020b000b41c182c00041162001ac10011a41a57b21020b200041b0036a240020020b0d0020002001200241"
|
||||
"1410151a0b0c00200041142001412010160b0e002000418280182001200210180b0e00200020014108200241201019"
|
||||
"0b0a0020004183803c10140b0a0020002001410810170b0bf7180100418080c0000bed186572726f725f636f64653d"
|
||||
"2d2d2d2043617465676f727920363a205574696c6974792046756e6374696f6e73202d2d2d48656c6c6f2c20585250"
|
||||
"4c205741534d20776f726c6421496e70757420646174613a5348413531322068616c6620686173683a4e4654206461"
|
||||
"7461206c656e6774683a4e465420646174613a494e464f3a206765745f6e6674206661696c65642028657870656374"
|
||||
"6564202d206e6f2073756368204e4654293a54657374207472616365206d6573736167657061796c6f616454726163"
|
||||
"652066756e6374696f6e206279746573207772697474656e3a54657374206e756d6265722074726163655472616365"
|
||||
"5f6e756d2066756e6374696f6e20737563636565646564535543434553533a205574696c6974792066756e6374696f"
|
||||
"6e734552524f523a2074726163655f6e756d2829206661696c65643a4552524f523a2074726163652829206661696c"
|
||||
"65643a4552524f523a20636f6d707574655f7368613531325f68616c66206661696c65643a2d2d2d2043617465676f"
|
||||
"727920373a2044617461205570646174652046756e6374696f6e73202d2d2d55706461746564206c65646765722065"
|
||||
"6e74727920646174612066726f6d205741534d20746573745375636365737366756c6c792075706461746564206c65"
|
||||
"6467657220656e74727920776974683a535543434553533a2044617461207570646174652066756e6374696f6e7345"
|
||||
"52524f523a207570646174655f64617461206661696c65643a2d2d2d2043617465676f727920313a204c6564676572"
|
||||
"204865616465722046756e6374696f6e73202d2d2d4c65646765722073657175656e6365206e756d6265723a506172"
|
||||
"656e74206c65646765722074696d653a506172656e74206c656467657220686173683a535543434553533a204c6564"
|
||||
"676572206865616465722066756e6374696f6e734552524f523a206765745f706172656e745f6c65646765725f6861"
|
||||
"73682077726f6e67206c656e6774683a4552524f523a206765745f706172656e745f6c65646765725f74696d652066"
|
||||
"61696c65643a4552524f523a206765745f6c65646765725f73716e206661696c65643a2d2d2d2043617465676f7279"
|
||||
"20323a205472616e73616374696f6e20446174612046756e6374696f6e73202d2d2d5472616e73616374696f6e2041"
|
||||
"63636f756e743a5472616e73616374696f6e20466565206c656e6774683a5472616e73616374696f6e204665652028"
|
||||
"73657269616c697a65642058525020616d6f756e74293a5472616e73616374696f6e2053657175656e63653a4e6573"
|
||||
"746564206669656c64206c656e6774683a4e6573746564206669656c643a494e464f3a206765745f74785f6e657374"
|
||||
"65645f6669656c64206e6f74206170706c696361626c653a5369676e657273206172726179206c656e6774683a4d65"
|
||||
"6d6f73206172726179206c656e6774683a4e6573746564206172726179206c656e6774683a494e464f3a206765745f"
|
||||
"74785f6e65737465645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a20547261"
|
||||
"6e73616374696f6e20646174612066756e6374696f6e734552524f523a206765745f74785f6669656c642853657175"
|
||||
"656e6365292077726f6e67206c656e6774683a4552524f523a206765745f74785f6669656c6428466565292077726f"
|
||||
"6e67206c656e67746820286578706563746564203820627974657320666f7220585250293a4552524f523a20676574"
|
||||
"5f74785f6669656c64284163636f756e74292077726f6e67206c656e6774683a2d2d2d2043617465676f727920343a"
|
||||
"20416e79204c6564676572204f626a6563742046756e6374696f6e73202d2d2d5375636365737366756c6c79206361"
|
||||
"63686564206f626a65637420696e20736c6f743a436163686564206f626a6563742062616c616e6365206c656e6774"
|
||||
"68202858525020616d6f756e74293a436163686564206f626a6563742062616c616e6365202873657269616c697a65"
|
||||
"642058525020616d6f756e74293a436163686564206f626a6563742062616c616e6365206c656e67746820286e6f6e"
|
||||
"2d58525020616d6f756e74293a436163686564206f626a6563742062616c616e63653a494e464f3a206c655f666965"
|
||||
"6c642842616c616e636529206661696c65643a436163686564206e6573746564206669656c64206c656e6774683a43"
|
||||
"6163686564206e6573746564206669656c643a494e464f3a206c655f696e6e65725f6669656c64206e6f7420617070"
|
||||
"6c696361626c653a436163686564206f626a656374205369676e657273206172726179206c656e6774683a43616368"
|
||||
"6564206e6573746564206172726179206c656e6774683a494e464f3a206765745f6c65646765725f6f626a5f6e6573"
|
||||
"7465645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a20416e79206c65646765"
|
||||
"72206f626a6563742066756e6374696f6e73494e464f3a2063616368655f6c65206661696c65642028657870656374"
|
||||
"656420776974682074657374206669787475726573293a494e464f3a206c655f6669656c64206661696c6564206173"
|
||||
"20657870656374656420286e6f20636163686564206f626a656374293a494e464f3a206c655f696e6e65725f666965"
|
||||
"6c64206661696c65642061732065787065637465643a494e464f3a206c655f696e6e65725f6172725f6c656e206661"
|
||||
"696c65642061732065787065637465643a494e464f3a206765745f6c65646765725f6f626a5f6e65737465645f6172"
|
||||
"7261795f6c656e206661696c65642061732065787065637465643a535543434553533a20416e79206c656467657220"
|
||||
"6f626a6563742066756e6374696f6e732028696e7465726661636520746573746564294552524f523a206163636f75"
|
||||
"6e74726f6f745f6964206661696c656420666f722063616368696e6720746573743a2d2d2d2043617465676f727920"
|
||||
"353a204b65796c65742047656e65726174696f6e2046756e6374696f6e73202d2d2d4163636f756e74206b65796c65"
|
||||
"743a546573745479706543726564656e7469616c206b65796c65743a494e464f3a2063726564656e7469616c5f6b65"
|
||||
"796c6574206661696c656420286578706563746564202d20696e74657266616365206973737565293a457363726f77"
|
||||
"206b65796c65743a4f7261636c65206b65796c65743a535543434553533a204b65796c65742067656e65726174696f"
|
||||
"6e2066756e6374696f6e734552524f523a206f7261636c655f6b65796c6574206661696c65643a4552524f523a2065"
|
||||
"7363726f775f6b65796c6574206661696c65643a4552524f523a206163636f756e74726f6f745f6964206661696c65"
|
||||
"643a2d2d2d2043617465676f727920333a2043757272656e74204c6564676572204f626a6563742046756e6374696f"
|
||||
"6e73202d2d2d43757272656e74206f626a6563742062616c616e6365206c656e677468202858525020616d6f756e74"
|
||||
"293a43757272656e74206f626a6563742062616c616e6365202873657269616c697a65642058525020616d6f756e74"
|
||||
"293a43757272656e74206f626a6563742062616c616e6365206c656e67746820286e6f6e2d58525020616d6f756e74"
|
||||
"293a43757272656e74206f626a6563742062616c616e63653a494e464f3a206765745f63757272656e745f6c656467"
|
||||
"65725f6f626a5f6669656c642842616c616e636529206661696c656420286d6179206265206578706563746564293a"
|
||||
"43757272656e74206c6564676572206f626a656374206163636f756e743a494e464f3a206765745f63757272656e74"
|
||||
"5f6c65646765725f6f626a5f6669656c64284163636f756e7429206661696c65643a43757272656e74206e65737465"
|
||||
"64206669656c64206c656e6774683a43757272656e74206e6573746564206669656c643a494e464f3a206765745f63"
|
||||
"757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c64206e6f74206170706c696361626c653a43"
|
||||
"757272656e74206f626a656374205369676e657273206172726179206c656e6774683a43757272656e74206e657374"
|
||||
"6564206172726179206c656e6774683a494e464f3a206765745f63757272656e745f6c65646765725f6f626a5f6e65"
|
||||
"737465645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a2043757272656e7420"
|
||||
"6c6564676572206f626a6563742066756e6374696f6e733d3d3d20484f53542046554e4354494f4e53205445535420"
|
||||
"3d3d3d54657374696e6720323620686f73742066756e6374696f6e73535543434553533a20416c6c20686f73742066"
|
||||
"756e6374696f6e2074657374732070617373656421004d0970726f64756365727302086c616e677561676501045275"
|
||||
"7374000c70726f6365737365642d6279010572757374631d312e39352e30202835393830373631366520323032362d"
|
||||
"30342d313429002c0f7461726765745f6665617475726573022b0f6d757461626c652d676c6f62616c732b08736967"
|
||||
"6e2d657874";
|
||||
|
||||
extern std::string const kDeepRecursionHex =
|
||||
"0061736d010000000105016000017f030201000608017f0141c0843d0b070a010666696e69736800000a1601140023"
|
||||
"0045044041010f0b230041016b240010000b";
|
||||
"0061736d010000000105016000017f030201000608017f0141c0843d0b0711010d657363726f775f66696e69736800"
|
||||
"000a16011400230045044041010f0b230041016b240010000b";
|
||||
|
||||
extern std::string const kAllKeyletsWasmHex =
|
||||
"0061736d0100000001500a60067f7f7f7f7f7f017f60047f7f7f7f017f60087f7f7f7f7f7f7f7f017f60047f7f7f7f"
|
||||
@@ -633,346 +641,353 @@ extern std::string const kCodecovTestsWasmHex =
|
||||
|
||||
extern std::string const kFloatTestsWasmHex =
|
||||
"0061736d0100000001490960057f7f7f7f7f017f60077f7f7f7f7f7f7f017f60067f7f7f7f7f7f017f60047e7f7f7f"
|
||||
"017f60057e7f7f7f7f017f60047f7f7f7f017f60037f7f7e017f60037f7f7f006000017f02fa021008686f73745f6c"
|
||||
"017f60057e7f7f7f7f017f60047f7f7f7f017f60037f7f7e017f60037f7f7f006000017f02ea021008686f73745f6c"
|
||||
"6962057472616365000008686f73745f6c69620e666c6f61745f66726f6d5f696e74000308686f73745f6c69620f66"
|
||||
"6c6f61745f66726f6d5f75696e74000003656e7613666c6f61745f66726f6d5f6d616e745f657870000408686f7374"
|
||||
"5f6c69620d666c6f61745f636f6d70617265000508686f73745f6c696209666c6f61745f616464000108686f73745f"
|
||||
"6c69620e666c6f61745f7375627472616374000108686f73745f6c69620e666c6f61745f6d756c7469706c79000108"
|
||||
"686f73745f6c69620c666c6f61745f646976696465000108686f73745f6c696209666c6f61745f706f77000208686f"
|
||||
"73745f6c69620974726163655f6e756d000608686f73745f6c69620a666c6f61745f726f6f74000203656e760c666c"
|
||||
"6f61745f746f5f696e74000003656e7611666c6f61745f746f5f6d616e745f657870000203656e7613666c6f61745f"
|
||||
"66726f6d5f7374616d6f756e74000003656e7613666c6f61745f66726f6d5f73746e756d6265720000030302070805"
|
||||
"030100110619037f01418080c0000b7f00418d99c0000b7f00419099c0000b072e04066d656d6f727902000666696e"
|
||||
"69736800110a5f5f646174615f656e6403010b5f5f686561705f6261736503020aec20021f00200020014101410041"
|
||||
"0010001a418080c00041022002410c410110001a0bc920020c7f017e230041f0006b2200240041f28ac000411d4101"
|
||||
"4100410010001a20004100360268200042003703600240428ce000200041e0006a2202410c410010012201410c4604"
|
||||
"40418f8bc00041172002101041a68bc000411e2002410c410110001a0c010b41c48bc000411e41014100410010001a"
|
||||
"0b2000428ce0003703500240200041d0006a4108200041e0006a2202410c41001002410c4604402001410c46210741"
|
||||
"e28bc0004117200210100c010b41f98bc000411e41014100410010001a0b024042fb004102200041e0006a2201410c"
|
||||
"41001003410c46044041978cc0004121200110100c010b41b88cc000412841014100410010001a410021070b41e08c"
|
||||
"c0004115419980c000101041f58cc000411641b780c000101041d688c000411b41014100410010001a200041003602"
|
||||
"682000420037036002404201200041e0006a2202410c410010012201410c46044041f188c000410f200210100c010b"
|
||||
"418089c000411641014100410010001a0b027f200041e0006a410c419980c000410c1004450440419689c000411b41"
|
||||
"014100410010001a2001410c460c010b41b189c000412341014100410010001a41000b21080240200041e0006a410c"
|
||||
"41b780c000410c1004410146044041d489c000412341014100410010001a0c010b4100210841f789c000412c410141"
|
||||
"00410010001a0b024041b780c000410c200041e0006a410c1004410246044041a38ac000412341014100410010001a"
|
||||
"0c010b4100210841c68ac000412c41014100410010001a0b419d92c000412041014100410010001a200041a180c000"
|
||||
"2800003602582000419980c000290000370350410921030340200041d0006a2201410c419980c000410c2001410c41"
|
||||
"0010051a200341016b22030d000b2000410036026820004200370360420a200041e0006a410c41001001410c462209"
|
||||
"45044041bd92c000411741014100410010001a0b0240200041e0006a410c200041d0006a410c100445044041d492c0"
|
||||
"00411441014100410010001a0c010b4100210941e892c000411641014100410010001a0b410b21030340200041d000"
|
||||
"6a2201410c419980c000410c2001410c410010061a200341016b22030d000b02402001410c41b780c000410c100445"
|
||||
"044041fe92c000411941014100410010001a0c010b41002109419793c000411b41014100410010001a0b418698c000"
|
||||
"412341014100410010001a2000410036021020004200370308420a200041086a410c410010011a200041a180c00028"
|
||||
"00003602202000419980c000290000370318410621030340200041186a2201410c200041086a410c2001410c410010"
|
||||
"071a200341016b22030d000b200041003602582000420037035042c0843d200041d0006a2202410c410010011a0240"
|
||||
"2002410c2001410c1004220145044041a998c000411941014100410010001a0c010b41c298c000411b410141004100"
|
||||
"10001a0b200145210a410721030340200041186a2201410c200041086a410c2001410c410010081a200341016b2203"
|
||||
"0d000b20004100360268200042003703604201417f200041e0006a2202410c410010031a02402001410c2002410c10"
|
||||
"0445044041dd98c000411741014100410010001a0c010b41f498c000411941014100410010001a4100210a0b418280"
|
||||
"c000411741014100410010001a2000410036022020004200370318419980c000410c4103200041186a2202410c4100"
|
||||
"10091a41a580c00041122002101041b780c000410c41062002410c410010091a41c380c00041182002101020004100"
|
||||
"360258200042003703504209200041d0006a2201410c410010011a2001410c41022002410c410010091a41db80c000"
|
||||
"4114200210102001410c41002002410c410010091a41ef80c000411720021010200041003602682000420037036042"
|
||||
"00200041e0006a2203410c410010011a2003410c41022002410c410010091a418681c000411420021010419a81c000"
|
||||
"41382003410c41002002410c41001009ac100a1a41d281c000411841014100410010001a2000410036022020004200"
|
||||
"37031842092002410c410010011a20004100360258200042003703502002410c41022001410c4100100b1a41ea81c0"
|
||||
"004112200110102002410c41032001410c4100100b1a41fc81c0004112200110102000410036026820004200370360"
|
||||
"42c0843d2003410c410010011a2003410c41032001410c4100100b1a418e82c0004118200110102003410c41062001"
|
||||
"410c4100100b1a41a682c000411c2001101041c282c000411a41014100410010001a20004100360258200042003703"
|
||||
"502000410036026820004200370360420a2003410c410010011a419980c000410c2003410c2001410c410010081a41"
|
||||
"dc82c000411920011010419980c000410c2001410c2001410c410010081a41f582c000410f2001101002402003410c"
|
||||
"2001410c1004220b450440418483c000411441014100410010001a0c010b419883c000411641014100410010001a0b"
|
||||
"4100210141ae83c000411a41014100410010001a200042003703080240419980c000410c200041086a41084100100c"
|
||||
"220241084604402000290308220c42015104404101210141c883c000411741014100410010001a0c020b41df83c000"
|
||||
"411941014100410010001a41f883c0004108200c100a1a0c010b418084c000412441014100410010001a41a484c000"
|
||||
"410f2002ac100a1a0b41002103024041b780c000410c200041086a41084100100c220241084604402000290308220c"
|
||||
"427f51044041b384c000411841014100410010001a200121030c020b41cb84c000411a41014100410010001a41f883"
|
||||
"c0004108200c100a1a0c010b41e584c000412541014100410010001a41a484c000410f2002ac100a1a0b4100210120"
|
||||
"0041003602202000420037031842ffffffffffffffffff00200041186a2202410c410010011a02402002410c200041"
|
||||
"086a41084100100c220241084604402000290308220c42ffffffffffffffffff00510440418a85c000411e41014100"
|
||||
"410010001a200321010c020b41a885c000412041014100410010001a41c885c000410d42ffffffffffffffffff0010"
|
||||
"0a1a41f883c0004108200c100a1a0c010b41d585c000412b41014100410010001a41a484c000410f2002ac100a1a0b"
|
||||
"4100210220004100360258200042003703504200200041d0006a2203410c410010011a02402003410c200041086a41"
|
||||
"084100100c220341084604402000290308220c500440418086c000411741014100410010001a200121020c020b4197"
|
||||
"86c000411941014100410010001a41f883c0004108200c100a1a0c010b41b086c000412441014100410010001a41a4"
|
||||
"84c000410f2003ac100a1a0b4100210320004100360268200042003703604201417f200041e0006a2201410c410010"
|
||||
"031a02402001410c200041086a41084100100c220141084604402000290308220c50044041d486c000412541014100"
|
||||
"410010001a200221030c020b41f986c000412741014100410010001a41f883c0004108200c100a1a0c010b41a087c0"
|
||||
"00413241014100410010001a41a484c000410f2001ac100a1a0b0240200041e0006a410c200041086a41084101100c"
|
||||
"220141084604402000290308220c50044041d287c000412741014100410010001a0c020b4100210341f987c0004129"
|
||||
"41014100410010001a41f883c0004108200c100a1a0c010b4100210341a288c000413441014100410010001a41a484"
|
||||
"c000410f2001ac100a1a0b41002101418b8dc000411f41014100410010001a20004200370328200041003602340240"
|
||||
"419980c000410c200041286a4108200041346a4104100d2202410c46044020002802342202416e462000290328220c"
|
||||
"42808090bbbad6adf00d517145044041c68dc000411e41014100410010001a41e48dc000412f200c100a1a41938ec0"
|
||||
"00411f2002ac100a1a0c020b4101210141aa8dc000411c41014100410010001a0c010b41b28ec00041294101410041"
|
||||
"0010001a41a484c000410f2002ac100a1a0b200042003703384100210220004100360244024041b780c000410c2000"
|
||||
"41386a4108200041c4006a4104100d2204410c46044020002802442204416e462000290338220c428080f0c4c5a9d2"
|
||||
"8f72517145044041f88ec000411f41014100410010001a41978fc0004130200c100a1a41938ec000411f2004ac100a"
|
||||
"1a0c020b41db8ec000411d41014100410010001a200121020c010b41c78fc000412a41014100410010001a41a484c0"
|
||||
"00410f2004ac100a1a0b410021012000410036025820004200370350420a200041d0006a2204410c410010011a2000"
|
||||
"42003703082000410036024802402004410c200041086a4108200041c8006a4104100d2204410c4604402000280248"
|
||||
"2204416f462000290308220c42808090bbbad6adf00d5171450440418e90c000411f41014100410010001a41e48dc0"
|
||||
"00412f200c100a1a41ad90c000411f2004ac100a1a0c020b41f18fc000411d41014100410010001a200221010c010b"
|
||||
"41cc90c000412a41014100410010001a41a484c000410f2004ac100a1a0b4100210220004100360268200042003703"
|
||||
"604200200041e0006a2204410c410010011a200042003703182000410036024c02402004410c200041186a41082000"
|
||||
"41cc006a4104100d2204410c4604402000290318220c50200028024c22044180808080784671450440419291c00041"
|
||||
"1e41014100410010001a41b091c000411d200c100a1a41cd91c00041272004ac100a1a0c020b41f690c000411c4101"
|
||||
"4100410010001a200121020c010b41f491c000412941014100410010001a41a484c000410f2004ac100a1a0b410021"
|
||||
"0141b293c000412141014100410010001a200042c0808080d0a0fdf000370018200041003602682000420037036002"
|
||||
"400240200041186a4108200041e0006a2205410c4100100e2204410c46044041d393c0004122200510102000420037"
|
||||
"03502005410c200041d0006a41084100100c22044108470d012000290350220c4280c2d72f5104404101210141f593"
|
||||
"c000411d41014100410010001a0c030b419294c000411f41014100410010001a41b194c000411c200c100a1a0c020b"
|
||||
"418195c000411f41014100410010001a41a095c00041102004ac100a1a0c010b41cd94c00041344101410041001000"
|
||||
"1a41a484c000410f2004ac100a1a0b4100210441b095c000412141014100410010001a200041ffffff8f7f36005820"
|
||||
"004281eceedce494ccf9c000370050200041003602682000420037036002400240200041d0006a410c200041e0006a"
|
||||
"2206410c4100100f2205410c46044041d195c000411c20061010200042003703182006410c200041186a4108410010"
|
||||
"0c22054108470d012000290318220c42fb005104404101210441ed95c000411b41014100410010001a0c030b418896"
|
||||
"c000411d41014100410010001a41a596c0004116200c100a1a0c020b41ed96c000411d41014100410010001a41a095"
|
||||
"c00041102005ac100a1a0c010b41bb96c000413241014100410010001a41a484c000410f2005ac100a1a0b41002105"
|
||||
"0240419980c000410c200041e0006a2206410c4100100f410c460440418a97c000411a200610102006410c419980c0"
|
||||
"00410c100445044041a497c000412041014100410010001a200421050c020b41c497c000412241014100410010001a"
|
||||
"0c010b41e697c000412041014100410010001a0b200041f0006a2400200b452007200871200971200a712003712002"
|
||||
"71200171200571710b0b97190100418080c0000b8d1920200a24242420746573745f666c6f61745f706f7720242424"
|
||||
"0de0b6b3a7640000ffffffee2020666c6f61742063756265206f6620313af21f494c589c0000ffffffee2020666c6f"
|
||||
"61742036746820706f776572206f66202d313a2020666c6f617420737175617265206f6620393a2020666c6f617420"
|
||||
"30746820706f776572206f6620393a2020666c6f617420737175617265206f6620303a2020666c6f61742030746820"
|
||||
"706f776572206f6620302028657870656374696e6720494e56414c49445f504152414d53206572726f72293a0a2424"
|
||||
"2420746573745f666c6f61745f726f6f74202424242020666c6f61742073717274206f6620393a2020666c6f617420"
|
||||
"63627274206f6620393a2020666c6f61742063627274206f6620313030303030303a2020666c6f6174203674682072"
|
||||
"6f6f74206f6620313030303030303a0a24242420746573745f666c6f61745f696e76657274202424242020696e7665"
|
||||
"7274206120666c6f61742066726f6d2031303a2020696e7665727420616761696e3a2020696e766572742074776963"
|
||||
"653a20676f6f642020696e766572742074776963653a206661696c65640a24242420746573745f666c6f61745f746f"
|
||||
"5f696e74202424242020666c6f61745f746f5f696e742831293a20676f6f642020666c6f61745f746f5f696e742831"
|
||||
"293a206661696c656420202020676f743a2020666c6f61745f746f5f696e742831293a206661696c65642077697468"
|
||||
"206572726f72202020206572726f7220636f64653a2020666c6f61745f746f5f696e74282d31293a20676f6f642020"
|
||||
"666c6f61745f746f5f696e74282d31293a206661696c65642020666c6f61745f746f5f696e74282d31293a20666169"
|
||||
"6c65642077697468206572726f722020666c6f61745f746f5f696e74286936343a3a4d4158293a20676f6f64202066"
|
||||
"6c6f61745f746f5f696e74286936343a3a4d4158293a206661696c65642020202065787065637465643a2020666c6f"
|
||||
"61745f746f5f696e74286936343a3a4d4158293a206661696c65642077697468206572726f722020666c6f61745f74"
|
||||
"6f5f696e742830293a20676f6f642020666c6f61745f746f5f696e742830293a206661696c65642020666c6f61745f"
|
||||
"746f5f696e742830293a206661696c65642077697468206572726f722020666c6f61745f746f5f696e7428302e312c"
|
||||
"20746f5f6e656172657374293a20676f6f642020666c6f61745f746f5f696e7428302e312c20746f5f6e6561726573"
|
||||
"74293a206661696c65642020666c6f61745f746f5f696e7428302e312c20746f5f6e656172657374293a206661696c"
|
||||
"65642077697468206572726f722020666c6f61745f746f5f696e7428302e312c20746f77617264735f7a65726f293a"
|
||||
"20676f6f642020666c6f61745f746f5f696e7428302e312c20746f77617264735f7a65726f293a206661696c656420"
|
||||
"20666c6f61745f746f5f696e7428302e312c20746f77617264735f7a65726f293a206661696c656420776974682065"
|
||||
"72726f720a24242420746573745f666c6f61745f636f6d70617265202424242020666c6f61742066726f6d20313a20"
|
||||
"20666c6f61742066726f6d20313a206661696c65642020666c6f61742066726f6d2031203d3d20464c4f41545f4f4e"
|
||||
"452020666c6f61742066726f6d203120213d20464c4f41545f4f4e452c206661696c65642020666c6f61742066726f"
|
||||
"6d2031203e20464c4f41545f4e454741544956455f4f4e452020666c6f61742066726f6d203120213e20464c4f4154"
|
||||
"5f4e454741544956455f4f4e452c206661696c65642020464c4f41545f4e454741544956455f4f4e45203c20666c6f"
|
||||
"61742066726f6d20312020464c4f41545f4e454741544956455f4f4e4520213c20666c6f61742066726f6d20312c20"
|
||||
"6661696c65640a24242420746573745f666c6f61745f66726f6d5f7761736d202424242020666c6f61742066726f6d"
|
||||
"206936342031323330303a2020666c6f61742066726f6d20693634203132333030206173204845583a2020666c6f61"
|
||||
"742066726f6d206936342031323330303a206661696c65642020666c6f61742066726f6d207536342031323330303a"
|
||||
"2020666c6f61742066726f6d207536342031323330303a206661696c65642020666c6f61742066726f6d2065787020"
|
||||
"322c206d616e7469737361203132333a2020666c6f61742066726f6d2065787020322c206d616e7469737361203132"
|
||||
"333a206661696c65642020666c6f61742066726f6d20636f6e737420313a2020666c6f61742066726f6d20636f6e73"
|
||||
"74202d313a0a24242420746573745f666c6f61745f746f5f6d616e745f657870202424242020666c6f61745f746f5f"
|
||||
"6d616e745f6578702831293a20676f6f642020666c6f61745f746f5f6d616e745f6578702831293a206661696c6564"
|
||||
"202020206578706563746564206d616e746973736120313030303030303030303030303030303030302c20676f743a"
|
||||
"202020206578706563746564206578706f6e656e74202d31382c20676f743a2020666c6f61745f746f5f6d616e745f"
|
||||
"6578702831293a206661696c65642077697468206572726f722020666c6f61745f746f5f6d616e745f657870282d31"
|
||||
"293a20676f6f642020666c6f61745f746f5f6d616e745f657870282d31293a206661696c6564202020206578706563"
|
||||
"746564206d616e7469737361202d313030303030303030303030303030303030302c20676f743a2020666c6f61745f"
|
||||
"746f5f6d616e745f657870282d31293a206661696c65642077697468206572726f722020666c6f61745f746f5f6d61"
|
||||
"6e745f657870283130293a20676f6f642020666c6f61745f746f5f6d616e745f657870283130293a206661696c6564"
|
||||
"202020206578706563746564206578706f6e656e74202d31372c20676f743a2020666c6f61745f746f5f6d616e745f"
|
||||
"657870283130293a206661696c65642077697468206572726f722020666c6f61745f746f5f6d616e745f6578702830"
|
||||
"293a20676f6f642020666c6f61745f746f5f6d616e745f6578702830293a206661696c656420202020657870656374"
|
||||
"6564206d616e746973736120302c20676f743a202020206578706563746564206578706f6e656e74202d3231343734"
|
||||
"38333634382c20676f743a2020666c6f61745f746f5f6d616e745f6578702830293a206661696c6564207769746820"
|
||||
"6572726f720a24242420746573745f666c6f61745f6164645f7375627472616374202424242020666c6f6174206672"
|
||||
"6f6d2031303a206661696c656420207265706561746564206164643a20676f6f642020726570656174656420616464"
|
||||
"3a206661696c6564202072657065617465642073756274726163743a20676f6f642020726570656174656420737562"
|
||||
"74726163743a206661696c65640a24242420746573745f666c6f61745f66726f6d5f7374616d6f756e742024242420"
|
||||
"20666c6f61742066726f6d2058525020616d6f756e74202831303020585250293a202058525020616d6f756e742063"
|
||||
"6f6e76657273696f6e3a20676f6f64202058525020616d6f756e7420636f6e76657273696f6e3a206661696c656420"
|
||||
"2020206578706563746564203130303030303030302c20676f743a202058525020616d6f756e7420636f6e76657273"
|
||||
"696f6e3a206661696c6564202d20666c6f61745f746f5f696e74206572726f722020666c6f61742066726f6d205852"
|
||||
"5020616d6f756e743a206661696c656420202020726573756c745f73697a653a0a24242420746573745f666c6f6174"
|
||||
"5f66726f6d5f73746e756d626572202424242020666c6f61742066726f6d2053544e756d6265722028313233293a20"
|
||||
"2053544e756d62657220636f6e76657273696f6e3a20676f6f64202053544e756d62657220636f6e76657273696f6e"
|
||||
"3a206661696c6564202020206578706563746564203132332c20676f743a202053544e756d62657220636f6e766572"
|
||||
"73696f6e3a206661696c6564202d20666c6f61745f746f5f696e74206572726f722020666c6f61742066726f6d2053"
|
||||
"544e756d6265723a206661696c65642020666c6f61742066726f6d2053544e756d626572202831293a202053544e75"
|
||||
"6d626572283129203d3d20464c4f41545f4f4e453a20676f6f64202053544e756d626572283129203d3d20464c4f41"
|
||||
"545f4f4e453a206661696c65642020666c6f61742066726f6d2053544e756d6265722831293a206661696c65640a24"
|
||||
"242420746573745f666c6f61745f6d756c7469706c795f6469766964652024242420207265706561746564206d756c"
|
||||
"7469706c793a20676f6f6420207265706561746564206d756c7469706c793a206661696c6564202072657065617465"
|
||||
"64206469766964653a20676f6f6420207265706561746564206469766964653a206661696c6564004d0970726f6475"
|
||||
"6365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e39352e"
|
||||
"30202835393830373631366520323032362d30342d313429002c0f7461726765745f6665617475726573022b0f6d75"
|
||||
"7461626c652d676c6f62616c732b087369676e2d657874";
|
||||
"5f6c696209666c6f61745f636d70000508686f73745f6c696209666c6f61745f616464000108686f73745f6c696209"
|
||||
"666c6f61745f737562000108686f73745f6c69620a666c6f61745f6d756c74000108686f73745f6c696209666c6f61"
|
||||
"745f646976000108686f73745f6c696209666c6f61745f706f77000208686f73745f6c69620974726163655f6e756d"
|
||||
"000608686f73745f6c69620a666c6f61745f726f6f74000203656e760c666c6f61745f746f5f696e74000003656e76"
|
||||
"11666c6f61745f746f5f6d616e745f657870000203656e7613666c6f61745f66726f6d5f7374616d6f756e74000003"
|
||||
"656e7613666c6f61745f66726f6d5f73746e756d6265720000030302070805030100110619037f01418080c0000b7f"
|
||||
"00418599c0000b7f00419099c0000b073504066d656d6f727902000d657363726f775f66696e69736800110a5f5f64"
|
||||
"6174615f656e6403010b5f5f686561705f6261736503020aec20021f002000200141014100410010001a418080c000"
|
||||
"41022002410c410110001a0bc920020c7f017e230041f0006b2200240041ee8ac000411d41014100410010001a2000"
|
||||
"4100360268200042003703600240428ce000200041e0006a2202410c410010012201410c460440418b8bc000411720"
|
||||
"02101041a28bc000411e2002410c410110001a0c010b41c08bc000411e41014100410010001a0b2000428ce0003703"
|
||||
"500240200041d0006a4108200041e0006a2202410c41001002410c4604402001410c46210741de8bc0004117200210"
|
||||
"100c010b41f58bc000411e41014100410010001a0b024042fb004102200041e0006a2201410c41001003410c460440"
|
||||
"41938cc0004121200110100c010b41b48cc000412841014100410010001a410021070b41dc8cc000411541be80c000"
|
||||
"101041f18cc0004116418881c0001010418280c000411741014100410010001a200041003602682000420037036002"
|
||||
"404201200041e0006a2202410c410010012201410c460440419980c000410f200210100c010b41a880c00041164101"
|
||||
"4100410010001a0b027f200041e0006a410c41be80c000410c100445044041ca80c000411b41014100410010001a20"
|
||||
"01410c460c010b41e580c000412341014100410010001a41000b21080240200041e0006a410c418881c000410c1004"
|
||||
"4101460440419481c000412341014100410010001a0c010b4100210841b781c000412c41014100410010001a0b0240"
|
||||
"418881c000410c200041e0006a410c1004410246044041e381c000412341014100410010001a0c010b410021084186"
|
||||
"82c000412c41014100410010001a0b419c93c000412041014100410010001a200041c680c000280000360258200041"
|
||||
"be80c000290000370350410921030340200041d0006a2201410c41be80c000410c2001410c410010051a200341016b"
|
||||
"22030d000b2000410036026820004200370360420a200041e0006a410c41001001410c46220945044041bc93c00041"
|
||||
"1741014100410010001a0b0240200041e0006a410c200041d0006a410c100445044041d393c0004114410141004100"
|
||||
"10001a0c010b4100210941e793c000411641014100410010001a0b410b21030340200041d0006a2201410c41be80c0"
|
||||
"00410c2001410c410010061a200341016b22030d000b02402001410c418881c000410c100445044041fd93c0004119"
|
||||
"41014100410010001a0c010b41002109419694c000411b41014100410010001a0b41878dc000411f41014100410010"
|
||||
"001a2000410036021020004200370308420a200041086a410c410010011a200041c680c000280000360220200041be"
|
||||
"80c000290000370318410621030340200041186a2201410c200041086a410c2001410c410010071a200341016b2203"
|
||||
"0d000b200041003602582000420037035042c0843d200041d0006a2202410c410010011a02402002410c2001410c10"
|
||||
"04220145044041a68dc000411941014100410010001a0c010b41bf8dc000411b41014100410010001a0b200145210a"
|
||||
"410721030340200041186a2201410c200041086a410c2001410c410010081a200341016b22030d000b200041003602"
|
||||
"68200042003703604201417f200041e0006a2202410c410010031a02402001410c2002410c100445044041da8dc000"
|
||||
"411741014100410010001a0c010b41f18dc000411941014100410010001a4100210a0b41b282c00041174101410041"
|
||||
"0010001a200041003602202000420037031841be80c000410c4103200041186a2202410c410010091a41c982c00041"
|
||||
"1220021010418881c000410c41062002410c410010091a41db82c00041182002101020004100360258200042003703"
|
||||
"504209200041d0006a2201410c410010011a2001410c41022002410c410010091a41f382c000411420021010200141"
|
||||
"0c41002002410c410010091a418783c00041172002101020004100360268200042003703604200200041e0006a2203"
|
||||
"410c410010011a2003410c41022002410c410010091a419e83c00041142002101041b283c00041382003410c410020"
|
||||
"02410c41001009ac100a1a41ea83c000411841014100410010001a200041003602202000420037031842092002410c"
|
||||
"410010011a20004100360258200042003703502002410c41022001410c4100100b1a418284c0004112200110102002"
|
||||
"410c41032001410c4100100b1a419484c000411220011010200041003602682000420037036042c0843d2003410c41"
|
||||
"0010011a2003410c41032001410c4100100b1a41a684c0004118200110102003410c41062001410c4100100b1a41be"
|
||||
"84c000411c2001101041da84c000411a41014100410010001a20004100360258200042003703502000410036026820"
|
||||
"004200370360420a2003410c410010011a41be80c000410c2003410c2001410c410010081a41f484c0004119200110"
|
||||
"1041be80c000410c2001410c2001410c410010081a418d85c000410f2001101002402003410c2001410c1004220b45"
|
||||
"0440419c85c000411441014100410010001a0c010b41b085c000411641014100410010001a0b4100210141c685c000"
|
||||
"411a41014100410010001a20004200370308024041be80c000410c200041086a41084100100c220241084604402000"
|
||||
"290308220c42015104404101210141e085c000411741014100410010001a0c020b41f785c000411941014100410010"
|
||||
"001a419086c0004108200c100a1a0c010b419886c000412441014100410010001a41bc86c000410f2002ac100a1a0b"
|
||||
"410021030240418881c000410c200041086a41084100100c220241084604402000290308220c427f51044041cb86c0"
|
||||
"00411841014100410010001a200121030c020b41e386c000411a41014100410010001a419086c0004108200c100a1a"
|
||||
"0c010b41fd86c000412541014100410010001a41bc86c000410f2002ac100a1a0b4100210120004100360220200042"
|
||||
"0037031842ffffffffffffffffff00200041186a2202410c410010011a02402002410c200041086a41084100100c22"
|
||||
"0241084604402000290308220c42ffffffffffffffffff0051044041a287c000411e41014100410010001a20032101"
|
||||
"0c020b41c087c000412041014100410010001a41e087c000410d42ffffffffffffffffff00100a1a419086c0004108"
|
||||
"200c100a1a0c010b41ed87c000412b41014100410010001a41bc86c000410f2002ac100a1a0b410021022000410036"
|
||||
"0258200042003703504200200041d0006a2203410c410010011a02402003410c200041086a41084100100c22034108"
|
||||
"4604402000290308220c500440419888c000411741014100410010001a200121020c020b41af88c000411941014100"
|
||||
"410010001a419086c0004108200c100a1a0c010b41c888c000412441014100410010001a41bc86c000410f2003ac10"
|
||||
"0a1a0b4100210320004100360268200042003703604201417f200041e0006a2201410c410010031a02402001410c20"
|
||||
"0041086a41084100100c220141084604402000290308220c50044041ec88c000412541014100410010001a20022103"
|
||||
"0c020b419189c000412741014100410010001a419086c0004108200c100a1a0c010b41b889c0004132410141004100"
|
||||
"10001a41bc86c000410f2001ac100a1a0b0240200041e0006a410c200041086a41084101100c220141084604402000"
|
||||
"290308220c50044041ea89c000412741014100410010001a0c020b4100210341918ac000412941014100410010001a"
|
||||
"419086c0004108200c100a1a0c010b4100210341ba8ac000413441014100410010001a41bc86c000410f2001ac100a"
|
||||
"1a0b41002101418a8ec000411f41014100410010001a2000420037032820004100360234024041be80c000410c2000"
|
||||
"41286a4108200041346a4104100d2202410c46044020002802342202416e462000290328220c42808090bbbad6adf0"
|
||||
"0d517145044041c58ec000411e41014100410010001a41e38ec000412f200c100a1a41928fc000411f2002ac100a1a"
|
||||
"0c020b4101210141a98ec000411c41014100410010001a0c010b41b18fc000412941014100410010001a41bc86c000"
|
||||
"410f2002ac100a1a0b2000420037033841002102200041003602440240418881c000410c200041386a4108200041c4"
|
||||
"006a4104100d2204410c46044020002802442204416e462000290338220c428080f0c4c5a9d28f72517145044041f7"
|
||||
"8fc000411f41014100410010001a419690c0004130200c100a1a41928fc000411f2004ac100a1a0c020b41da8fc000"
|
||||
"411d41014100410010001a200121020c010b41c690c000412a41014100410010001a41bc86c000410f2004ac100a1a"
|
||||
"0b410021012000410036025820004200370350420a200041d0006a2204410c410010011a2000420037030820004100"
|
||||
"36024802402004410c200041086a4108200041c8006a4104100d2204410c46044020002802482204416f4620002903"
|
||||
"08220c42808090bbbad6adf00d5171450440418d91c000411f41014100410010001a41e38ec000412f200c100a1a41"
|
||||
"ac91c000411f2004ac100a1a0c020b41f090c000411d41014100410010001a200221010c010b41cb91c000412a4101"
|
||||
"4100410010001a41bc86c000410f2004ac100a1a0b4100210220004100360268200042003703604200200041e0006a"
|
||||
"2204410c410010011a200042003703182000410036024c02402004410c200041186a4108200041cc006a4104100d22"
|
||||
"04410c4604402000290318220c50200028024c22044180808080784671450440419192c000411e4101410041001000"
|
||||
"1a41af92c000411d200c100a1a41cc92c00041272004ac100a1a0c020b41f591c000411c41014100410010001a2001"
|
||||
"21020c010b41f392c000412941014100410010001a41bc86c000410f2004ac100a1a0b4100210141b194c000412141"
|
||||
"014100410010001a200042c0808080d0a0fdf000370018200041003602682000420037036002400240200041186a41"
|
||||
"08200041e0006a2205410c4100100e2204410c46044041d294c000412220051010200042003703502005410c200041"
|
||||
"d0006a41084100100c22044108470d012000290350220c4280c2d72f5104404101210141f494c000411d4101410041"
|
||||
"0010001a0c030b419195c000411f41014100410010001a41b095c000411c200c100a1a0c020b418096c000411f4101"
|
||||
"4100410010001a419f96c00041102004ac100a1a0c010b41cc95c000413441014100410010001a41bc86c000410f20"
|
||||
"04ac100a1a0b4100210441af96c000412141014100410010001a200041ffffff8f7f36005820004281eceedce494cc"
|
||||
"f9c000370050200041003602682000420037036002400240200041d0006a410c200041e0006a2206410c4100100f22"
|
||||
"05410c46044041d096c000411c20061010200042003703182006410c200041186a41084100100c22054108470d0120"
|
||||
"00290318220c42fb005104404101210441ec96c000411b41014100410010001a0c030b418797c000411d4101410041"
|
||||
"0010001a41a497c0004116200c100a1a0c020b41ec97c000411d41014100410010001a419f96c00041102005ac100a"
|
||||
"1a0c010b41ba97c000413241014100410010001a41bc86c000410f2005ac100a1a0b41002105024041be80c000410c"
|
||||
"200041e0006a2206410c4100100f410c460440418998c000411a200610102006410c41be80c000410c100445044041"
|
||||
"a398c000412041014100410010001a200421050c020b41c398c000412241014100410010001a0c010b41e598c00041"
|
||||
"2041014100410010001a0b200041f0006a2400200b452007200871200971200a71200371200271200171200571710b"
|
||||
"0b8f190100418080c0000b851920200a24242420746573745f666c6f61745f636d70202424242020666c6f61742066"
|
||||
"726f6d20313a2020666c6f61742066726f6d20313a206661696c65640de0b6b3a7640000ffffffee2020666c6f6174"
|
||||
"2066726f6d2031203d3d20464c4f41545f4f4e452020666c6f61742066726f6d203120213d20464c4f41545f4f4e45"
|
||||
"2c206661696c6564f21f494c589c0000ffffffee2020666c6f61742066726f6d2031203e20464c4f41545f4e454741"
|
||||
"544956455f4f4e452020666c6f61742066726f6d203120213e20464c4f41545f4e454741544956455f4f4e452c2066"
|
||||
"61696c65642020464c4f41545f4e454741544956455f4f4e45203c20666c6f61742066726f6d20312020464c4f4154"
|
||||
"5f4e454741544956455f4f4e4520213c20666c6f61742066726f6d20312c206661696c65640a24242420746573745f"
|
||||
"666c6f61745f706f77202424242020666c6f61742063756265206f6620313a2020666c6f61742036746820706f7765"
|
||||
"72206f66202d313a2020666c6f617420737175617265206f6620393a2020666c6f61742030746820706f776572206f"
|
||||
"6620393a2020666c6f617420737175617265206f6620303a2020666c6f61742030746820706f776572206f66203020"
|
||||
"28657870656374696e6720494e56414c49445f504152414d53206572726f72293a0a24242420746573745f666c6f61"
|
||||
"745f726f6f74202424242020666c6f61742073717274206f6620393a2020666c6f61742063627274206f6620393a20"
|
||||
"20666c6f61742063627274206f6620313030303030303a2020666c6f61742036746820726f6f74206f662031303030"
|
||||
"3030303a0a24242420746573745f666c6f61745f696e76657274202424242020696e76657274206120666c6f617420"
|
||||
"66726f6d2031303a2020696e7665727420616761696e3a2020696e766572742074776963653a20676f6f642020696e"
|
||||
"766572742074776963653a206661696c65640a24242420746573745f666c6f61745f746f5f696e7420242424202066"
|
||||
"6c6f61745f746f5f696e742831293a20676f6f642020666c6f61745f746f5f696e742831293a206661696c65642020"
|
||||
"2020676f743a2020666c6f61745f746f5f696e742831293a206661696c65642077697468206572726f722020202065"
|
||||
"72726f7220636f64653a2020666c6f61745f746f5f696e74282d31293a20676f6f642020666c6f61745f746f5f696e"
|
||||
"74282d31293a206661696c65642020666c6f61745f746f5f696e74282d31293a206661696c65642077697468206572"
|
||||
"726f722020666c6f61745f746f5f696e74286936343a3a4d4158293a20676f6f642020666c6f61745f746f5f696e74"
|
||||
"286936343a3a4d4158293a206661696c65642020202065787065637465643a2020666c6f61745f746f5f696e742869"
|
||||
"36343a3a4d4158293a206661696c65642077697468206572726f722020666c6f61745f746f5f696e742830293a2067"
|
||||
"6f6f642020666c6f61745f746f5f696e742830293a206661696c65642020666c6f61745f746f5f696e742830293a20"
|
||||
"6661696c65642077697468206572726f722020666c6f61745f746f5f696e7428302e312c20746f5f6e656172657374"
|
||||
"293a20676f6f642020666c6f61745f746f5f696e7428302e312c20746f5f6e656172657374293a206661696c656420"
|
||||
"20666c6f61745f746f5f696e7428302e312c20746f5f6e656172657374293a206661696c6564207769746820657272"
|
||||
"6f722020666c6f61745f746f5f696e7428302e312c20746f77617264735f7a65726f293a20676f6f642020666c6f61"
|
||||
"745f746f5f696e7428302e312c20746f77617264735f7a65726f293a206661696c65642020666c6f61745f746f5f69"
|
||||
"6e7428302e312c20746f77617264735f7a65726f293a206661696c65642077697468206572726f720a242424207465"
|
||||
"73745f666c6f61745f66726f6d5f7761736d202424242020666c6f61742066726f6d206936342031323330303a2020"
|
||||
"666c6f61742066726f6d20693634203132333030206173204845583a2020666c6f61742066726f6d20693634203132"
|
||||
"3330303a206661696c65642020666c6f61742066726f6d207536342031323330303a2020666c6f61742066726f6d20"
|
||||
"7536342031323330303a206661696c65642020666c6f61742066726f6d2065787020322c206d616e74697373612031"
|
||||
"32333a2020666c6f61742066726f6d2065787020322c206d616e7469737361203132333a206661696c65642020666c"
|
||||
"6f61742066726f6d20636f6e737420313a2020666c6f61742066726f6d20636f6e7374202d313a0a24242420746573"
|
||||
"745f666c6f61745f6d756c745f6469766964652024242420207265706561746564206d756c7469706c793a20676f6f"
|
||||
"6420207265706561746564206d756c7469706c793a206661696c656420207265706561746564206469766964653a20"
|
||||
"676f6f6420207265706561746564206469766964653a206661696c65640a24242420746573745f666c6f61745f746f"
|
||||
"5f6d616e745f657870202424242020666c6f61745f746f5f6d616e745f6578702831293a20676f6f642020666c6f61"
|
||||
"745f746f5f6d616e745f6578702831293a206661696c6564202020206578706563746564206d616e74697373612031"
|
||||
"3030303030303030303030303030303030302c20676f743a202020206578706563746564206578706f6e656e74202d"
|
||||
"31382c20676f743a2020666c6f61745f746f5f6d616e745f6578702831293a206661696c6564207769746820657272"
|
||||
"6f722020666c6f61745f746f5f6d616e745f657870282d31293a20676f6f642020666c6f61745f746f5f6d616e745f"
|
||||
"657870282d31293a206661696c6564202020206578706563746564206d616e7469737361202d313030303030303030"
|
||||
"303030303030303030302c20676f743a2020666c6f61745f746f5f6d616e745f657870282d31293a206661696c6564"
|
||||
"2077697468206572726f722020666c6f61745f746f5f6d616e745f657870283130293a20676f6f642020666c6f6174"
|
||||
"5f746f5f6d616e745f657870283130293a206661696c6564202020206578706563746564206578706f6e656e74202d"
|
||||
"31372c20676f743a2020666c6f61745f746f5f6d616e745f657870283130293a206661696c65642077697468206572"
|
||||
"726f722020666c6f61745f746f5f6d616e745f6578702830293a20676f6f642020666c6f61745f746f5f6d616e745f"
|
||||
"6578702830293a206661696c6564202020206578706563746564206d616e746973736120302c20676f743a20202020"
|
||||
"6578706563746564206578706f6e656e74202d323134373438333634382c20676f743a2020666c6f61745f746f5f6d"
|
||||
"616e745f6578702830293a206661696c65642077697468206572726f720a24242420746573745f666c6f61745f6164"
|
||||
"645f7375627472616374202424242020666c6f61742066726f6d2031303a206661696c656420207265706561746564"
|
||||
"206164643a20676f6f6420207265706561746564206164643a206661696c6564202072657065617465642073756274"
|
||||
"726163743a20676f6f64202072657065617465642073756274726163743a206661696c65640a24242420746573745f"
|
||||
"666c6f61745f66726f6d5f7374616d6f756e74202424242020666c6f61742066726f6d2058525020616d6f756e7420"
|
||||
"2831303020585250293a202058525020616d6f756e7420636f6e76657273696f6e3a20676f6f64202058525020616d"
|
||||
"6f756e7420636f6e76657273696f6e3a206661696c6564202020206578706563746564203130303030303030302c20"
|
||||
"676f743a202058525020616d6f756e7420636f6e76657273696f6e3a206661696c6564202d20666c6f61745f746f5f"
|
||||
"696e74206572726f722020666c6f61742066726f6d2058525020616d6f756e743a206661696c656420202020726573"
|
||||
"756c745f73697a653a0a24242420746573745f666c6f61745f66726f6d5f73746e756d626572202424242020666c6f"
|
||||
"61742066726f6d2053544e756d6265722028313233293a202053544e756d62657220636f6e76657273696f6e3a2067"
|
||||
"6f6f64202053544e756d62657220636f6e76657273696f6e3a206661696c6564202020206578706563746564203132"
|
||||
"332c20676f743a202053544e756d62657220636f6e76657273696f6e3a206661696c6564202d20666c6f61745f746f"
|
||||
"5f696e74206572726f722020666c6f61742066726f6d2053544e756d6265723a206661696c65642020666c6f617420"
|
||||
"66726f6d2053544e756d626572202831293a202053544e756d626572283129203d3d20464c4f41545f4f4e453a2067"
|
||||
"6f6f64202053544e756d626572283129203d3d20464c4f41545f4f4e453a206661696c65642020666c6f6174206672"
|
||||
"6f6d2053544e756d6265722831293a206661696c6564004d0970726f64756365727302086c616e6775616765010452"
|
||||
"757374000c70726f6365737365642d6279010572757374631d312e39352e3020283539383037363136652032303236"
|
||||
"2d30342d313429002c0f7461726765745f6665617475726573022b0f6d757461626c652d676c6f62616c732b087369"
|
||||
"676e2d657874";
|
||||
|
||||
extern std::string const kFloat0Hex =
|
||||
"0061736d0100000001290560057f7f7f7f7f017f60047e7f7f7f017f60077f7f7f7f7f7f7f017f60047f7f7f7f017f"
|
||||
"6000017f025f0408686f73745f6c6962057472616365000008686f73745f6c69620e666c6f61745f66726f6d5f696e"
|
||||
"74000108686f73745f6c69620e666c6f61745f7375627472616374000208686f73745f6c69620d666c6f61745f636f"
|
||||
"6d7061726500030302010405030100110619037f01418080c0000b7f0041e980c0000b7f0041f080c0000b072e0406"
|
||||
"6d656d6f727902000666696e69736800040a5f5f646174615f656e6403010b5f5f686561705f6261736503020acc01"
|
||||
"01c90101027f230041206b22002400418080c000411541014100410010001a20004100360208200042003703002000"
|
||||
"41003602182000420037031002400240420a2000410c41001001410c4604402000410c2000410c200041106a220141"
|
||||
"0c41001002410c470d012001410c419580c000410c100345044041a180c000411a41014100410010001a0c030b41bb"
|
||||
"80c000411941014100410010001a0c020b41d480c000411541014100410010001a0c010b41d480c000411541014100"
|
||||
"410010001a0b200041206a240041010b0b720100418080c0000b690a24242420746573745f666c6f61745f30202424"
|
||||
"240000000000000000800000002020464c4f41545f5a45524f20636f6d706172653a20676f6f642020464c4f41545f"
|
||||
"5a45524f20636f6d706172653a206261642020666c6f61742031302d31303a206661696c6564004d0970726f647563"
|
||||
"65727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e39352e30"
|
||||
"202835393830373631366520323032362d30342d313429002c0f7461726765745f6665617475726573022b0f6d7574"
|
||||
"61626c652d676c6f62616c732b087369676e2d657874";
|
||||
"6000017f02560408686f73745f6c6962057472616365000008686f73745f6c69620e666c6f61745f66726f6d5f696e"
|
||||
"74000108686f73745f6c696209666c6f61745f737562000208686f73745f6c696209666c6f61745f636d7000030302"
|
||||
"010405030100110619037f01418080c0000b7f0041e980c0000b7f0041f080c0000b073504066d656d6f727902000d"
|
||||
"657363726f775f66696e69736800040a5f5f646174615f656e6403010b5f5f686561705f6261736503020acc0101c9"
|
||||
"0101027f230041206b22002400418080c000411541014100410010001a200041003602082000420037030020004100"
|
||||
"3602182000420037031002400240420a2000410c41001001410c4604402000410c2000410c200041106a2201410c41"
|
||||
"001002410c470d012001410c419580c000410c100345044041a180c000411a41014100410010001a0c030b41bb80c0"
|
||||
"00411941014100410010001a0c020b41d480c000411541014100410010001a0c010b41d480c0004115410141004100"
|
||||
"10001a0b200041206a240041010b0b720100418080c0000b690a24242420746573745f666c6f61745f302024242400"
|
||||
"00000000000000800000002020464c4f41545f5a45524f20636f6d706172653a20676f6f642020464c4f41545f5a45"
|
||||
"524f20636f6d706172653a206261642020666c6f61742031302d31303a206661696c6564004d0970726f6475636572"
|
||||
"7302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e39352e302028"
|
||||
"35393830373631366520323032362d30342d313429002c0f7461726765745f6665617475726573022b0f6d75746162"
|
||||
"6c652d676c6f62616c732b087369676e2d657874";
|
||||
|
||||
extern std::string const kDisabledFloatHex =
|
||||
"0061736d010000000108026000006000017f03030200010503010002063e0a7f004180080b7f004180080b7f004180"
|
||||
"100b7f004180100b7f00418090040b7f004180080b7f00418090040b7f00418080080b7f0041000b7f0041010b07b0"
|
||||
"010d066d656d6f72790200115f5f7761736d5f63616c6c5f63746f727300000666696e69736800010362756603000c"
|
||||
"5f5f64736f5f68616e646c6503010a5f5f646174615f656e6403020b5f5f737461636b5f6c6f7703030c5f5f737461"
|
||||
"636b5f6869676803040d5f5f676c6f62616c5f6261736503050b5f5f686561705f6261736503060a5f5f686561705f"
|
||||
"656e6403070d5f5f6d656d6f72795f6261736503080c5f5f7461626c655f6261736503090a150202000b1000430000"
|
||||
"00c54300200045921a41010b";
|
||||
"100b7f004180100b7f00418090040b7f004180080b7f00418090040b7f00418080080b7f0041000b7f0041010b07b7"
|
||||
"010d066d656d6f72790200115f5f7761736d5f63616c6c5f63746f727300000d657363726f775f66696e6973680001"
|
||||
"0362756603000c5f5f64736f5f68616e646c6503010a5f5f646174615f656e6403020b5f5f737461636b5f6c6f7703"
|
||||
"030c5f5f737461636b5f6869676803040d5f5f676c6f62616c5f6261736503050b5f5f686561705f6261736503060a"
|
||||
"5f5f686561705f656e6403070d5f5f6d656d6f72795f6261736503080c5f5f7461626c655f6261736503090a150202"
|
||||
"000b100043000000c54300200045931a41010b";
|
||||
|
||||
extern std::string const kMemoryPointerAtLimitHex =
|
||||
"0061736d010000000105016000017f030201000503010001070a010666696e69736800000a0e010c0041ffff032d00"
|
||||
"001a41010b";
|
||||
"0061736d010000000105016000017f0302010005030100010711010d657363726f775f66696e69736800000a0e010c"
|
||||
"0041ffff032d00001a41010b";
|
||||
|
||||
extern std::string const kMemoryPointerOverLimitHex =
|
||||
"0061736d010000000105016000017f030201000503010001070a010666696e69736800000a0e010c00418080042d00"
|
||||
"001a41010b";
|
||||
"0061736d010000000105016000017f0302010005030100010711010d657363726f775f66696e69736800000a0e010c"
|
||||
"00418080042d00001a41010b";
|
||||
|
||||
extern std::string const kMemoryOffsetOverLimitHex =
|
||||
"0061736d010000000105016000017f030201000503010001071302066d656d6f727902000666696e69736800000a0e"
|
||||
"010c00410028028080041a41010b";
|
||||
"0061736d010000000105016000017f030201000503010001071a02066d656d6f727902000d657363726f775f66696e"
|
||||
"69736800000a0e010c00410028028080041a41010b";
|
||||
|
||||
extern std::string const kMemoryEndOfWordOverLimitHex =
|
||||
"0061736d010000000105016000017f030201000503010001071302066d656d6f727902000666696e69736800000a0e"
|
||||
"010c0041feff032802001a41010b";
|
||||
"0061736d010000000105016000017f030201000503010001071a02066d656d6f727902000d657363726f775f66696e"
|
||||
"69736800000a0e010c0041feff032802001a41010b";
|
||||
|
||||
extern std::string const kMemoryGrow0To1PageHex =
|
||||
"0061736d010000000105016000017f030201000503010000071302066d656d6f727902000666696e69736800000a0b"
|
||||
"010900410140001a41010b";
|
||||
"0061736d010000000105016000017f030201000503010000071a02066d656d6f727902000d657363726f775f66696e"
|
||||
"69736800000a0b010900410140001a41010b";
|
||||
|
||||
extern std::string const kMemoryGrow1To0PageHex =
|
||||
"0061736d010000000105016000017f030201000503010001071302066d656d6f727902000666696e69736800000a13"
|
||||
"011100417f4000417f460440417f0f0b41010b";
|
||||
"0061736d010000000105016000017f030201000503010001071a02066d656d6f727902000d657363726f775f66696e"
|
||||
"69736800000a13011100417f4000417f460440417f0f0b41010b";
|
||||
|
||||
extern std::string const kMemoryLastByteOf8MbHex =
|
||||
"0061736d010000000105016000017f030201000506010180018001071302066d656d6f727902000666696e69736800"
|
||||
"000a0f010d0041ffffff032d00001a41010b";
|
||||
"0061736d010000000105016000017f030201000506010180018001071a02066d656d6f727902000d657363726f775f"
|
||||
"66696e69736800000a0f010d0041ffffff032d00001a41010b";
|
||||
|
||||
extern std::string const kMemoryGrow1MoreThan8MbHex =
|
||||
"0061736d010000000105016000017f03020100050401008001071302066d656d6f727902000666696e69736800000a"
|
||||
"1301110041014000417f460440417f0f0b41010b";
|
||||
"0061736d010000000105016000017f03020100050401008001071a02066d656d6f727902000d657363726f775f6669"
|
||||
"6e69736800000a1301110041014000417f460440417f0f0b41010b";
|
||||
|
||||
extern std::string const kMemoryGrow0MoreThan8MbHex =
|
||||
"0061736d010000000105016000017f03020100050401008001071302066d656d6f727902000666696e69736800000a"
|
||||
"1301110041004000417f460440417f0f0b41010b";
|
||||
"0061736d010000000105016000017f03020100050401008001071a02066d656d6f727902000d657363726f775f6669"
|
||||
"6e69736800000a1301110041004000417f460440417f0f0b41010b";
|
||||
|
||||
extern std::string const kMemoryInit1MoreThan8MbHex =
|
||||
"0061736d010000000105016000017f030201000506010181018101071302066d656d6f727902000666696e69736800"
|
||||
"000a0f010d0041ffffff032d00001a41010b";
|
||||
"0061736d010000000105016000017f030201000506010181018101071a02066d656d6f727902000d657363726f775f"
|
||||
"66696e69736800000a0f010d0041ffffff032d00001a41010b";
|
||||
|
||||
extern std::string const kMemoryNegativeAddressHex =
|
||||
"0061736d010000000105016000017f030201000506010180018001071302066d656d6f727902000666696e69736800"
|
||||
"000a0c010a00417f2d00001a41010b";
|
||||
"0061736d010000000105016000017f030201000506010180018001071a02066d656d6f727902000d657363726f775f"
|
||||
"66696e69736800000a0c010a00417f2d00001a41010b";
|
||||
|
||||
extern std::string const kTable64ElementsHex =
|
||||
"0061736d010000000108026000006000017f0303020001040401700040070a010666696e6973680001094601004100"
|
||||
"0b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000a090202000b040041010b";
|
||||
"0061736d010000000108026000006000017f03030200010404017000400711010d657363726f775f66696e69736800"
|
||||
"010946010041000b400000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"00000000000000000000000000000000000000000000000000000a090202000b040041010b";
|
||||
|
||||
extern std::string const kTable65ElementsHex =
|
||||
"0061736d010000000108026000006000017f0303020001040401700041070a010666696e6973680001094701004100"
|
||||
"0b41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"00000000000000000000000000000000000000000a090202000b040041010b";
|
||||
"0061736d010000000108026000006000017f03030200010404017000410711010d657363726f775f66696e69736800"
|
||||
"010947010041000b410000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"0000000000000000000000000000000000000000000000000000000a090202000b040041010b";
|
||||
|
||||
extern std::string const kTable2TablesHex =
|
||||
"0061736d010000000108026000006000017f03030200010409027001010170010101070a010666696e697368000109"
|
||||
"0f020041000b0100020141000b0001000a090202000b040041010b";
|
||||
"0061736d010000000108026000006000017f030302000104090270010101700101010711010d657363726f775f6669"
|
||||
"6e6973680001090f020041000b0100020141000b0001000a090202000b040041010b";
|
||||
|
||||
extern std::string const kTable0ElementsHex =
|
||||
"0061736d010000000105016000017f03020100040401700000070a010666696e69736800000a0601040041010b";
|
||||
"0061736d010000000105016000017f030201000404017000000711010d657363726f775f66696e69736800000a0601"
|
||||
"040041010b";
|
||||
|
||||
extern std::string const kTableUintMaxHex =
|
||||
"0061736d010000000105016000017f030201000408017000ffffffff0f070a010666696e69736800000a0601040041"
|
||||
"010b";
|
||||
"0061736d010000000105016000017f030201000408017000ffffffff0f0711010d657363726f775f66696e69736800"
|
||||
"000a0601040041010b";
|
||||
|
||||
extern std::string const kProposalMutableGlobalHex =
|
||||
"0061736d010000000105016000017f030201000606017f0141000b07140207636f756e74657203000666696e697368"
|
||||
"00000a0d010b00230041016a240041010b";
|
||||
"0061736d010000000105016000017f030201000606017f0141000b071b0207636f756e74657203000d657363726f77"
|
||||
"5f66696e69736800000a0d010b00230041016a240041010b";
|
||||
|
||||
extern std::string const kProposalGcStructNewHex =
|
||||
"0061736d01000000010b026000017f5f027f017f0103020100070a010666696e69736800000a0a010800fb01011a41"
|
||||
"010b";
|
||||
"0061736d01000000010b026000017f5f027f017f01030201000711010d657363726f775f66696e69736800000a0a01"
|
||||
"0800fb01011a41010b";
|
||||
|
||||
extern std::string const kProposalMultiValueHex =
|
||||
"0061736d010000000110036000027f7f6000017f60027f7f017f0303020001070a010666696e69736800010a140206"
|
||||
"00410a41140b0b00100002026a411e460b0b";
|
||||
"0061736d010000000110036000027f7f6000017f60027f7f017f03030200010711010d657363726f775f66696e6973"
|
||||
"6800010a14020600410a41140b0b00100002026a411e460b0b";
|
||||
|
||||
extern std::string const kProposalSignExtHex =
|
||||
"0061736d010000000105016000017f03020100070a010666696e69736800000a0b01090041ff01c0417f460b";
|
||||
"0061736d010000000105016000017f030201000711010d657363726f775f66696e69736800000a0b01090041ff01c0"
|
||||
"417f460b";
|
||||
|
||||
extern std::string const kProposalFloatToIntHex =
|
||||
"0061736d010000000105016000017f03020100070a010666696e69736800000a1201100043f9021550fc0041ffffff"
|
||||
"ff07460b";
|
||||
"0061736d010000000105016000017f030201000711010d657363726f775f66696e69736800000a1201100043f90215"
|
||||
"50fc0041ffffffff07460b";
|
||||
|
||||
extern std::string const kProposalBulkMemoryHex =
|
||||
"0061736d010000000105016000017f030201000503010001071302066d656d6f727902000666696e69736800000a1f"
|
||||
"011d004100412a3a000041e40041004101fc0a000041e4002d0000412a460b";
|
||||
"0061736d010000000105016000017f030201000503010001071a02066d656d6f727902000d657363726f775f66696e"
|
||||
"69736800000a1f011d004100412a3a000041e40041004101fc0a000041e4002d0000412a460b";
|
||||
|
||||
extern std::string const kProposalRefTypesHex =
|
||||
"0061736d010000000105016000017f020f0103656e76057461626c65016f000103020100070a010666696e69736800"
|
||||
"000a0c010a004100d06f260041010b";
|
||||
"0061736d010000000105016000017f020f0103656e76057461626c65016f0001030201000711010d657363726f775f"
|
||||
"66696e69736800000a0c010a004100d06f260041010b";
|
||||
|
||||
extern std::string const kProposalTailCallHex =
|
||||
"0061736d010000000105016000017f0303020000070a010666696e69736800010a0b02040041010b040012000b";
|
||||
"0061736d010000000105016000017f03030200000711010d657363726f775f66696e69736800010a0b02040041010b"
|
||||
"040012000b";
|
||||
|
||||
extern std::string const kProposalExtendedConstHex =
|
||||
"0061736d010000000105016000017f030201000609017f00410a41206a0b070a010666696e69736800000a09010700"
|
||||
"2300412a460b";
|
||||
"0061736d010000000105016000017f030201000609017f00410a41206a0b0711010d657363726f775f66696e697368"
|
||||
"00000a090107002300412a460b";
|
||||
|
||||
extern std::string const kProposalMultiMemoryHex =
|
||||
"0061736d010000000105016000017f0302010005050200000001070a010666696e69736800000a060104003f010b";
|
||||
"0061736d010000000105016000017f03020100050502000000010711010d657363726f775f66696e69736800000a06"
|
||||
"0104003f010b";
|
||||
|
||||
extern std::string const kProposalCustomPageSizesHex =
|
||||
"0061736d010000000105016000017f0302010005040108010a070a010666696e69736800000a0601040041010b0010"
|
||||
"046e616d65010901000666696e697368";
|
||||
"0061736d010000000105016000017f030201000504010801000711010d657363726f775f66696e69736800000a0601"
|
||||
"040041010b";
|
||||
|
||||
extern std::string const kProposalMemory64Hex =
|
||||
"0061736d010000000105016000017f030201000503010401070a010666696e69736800000a10010e004200412a3a00"
|
||||
"003f004201510b0010046e616d65010901000666696e697368";
|
||||
"0061736d010000000105016000017f0302010005030104010711010d657363726f775f66696e69736800000a10010e"
|
||||
"004200412a3a00003f004201510b";
|
||||
|
||||
extern std::string const kProposalWideArithmeticHex =
|
||||
"0061736d010000000105016000017f03020100070a010666696e69736800000a0e010c0042014202fc161a1a41010b"
|
||||
"0010046e616d65010901000666696e697368";
|
||||
"0061736d010000000105016000017f030201000711010d657363726f775f66696e69736800000a0e010c0042014202"
|
||||
"fc161a1a41010b";
|
||||
|
||||
extern std::string const kTrapDivideBy0Hex =
|
||||
"0061736d010000000105016000017f03020100070a010666696e69736800000a0c010a00412a41006d1a41010b";
|
||||
"0061736d010000000105016000017f030201000711010d657363726f775f66696e69736800000a0c010a00412a4100"
|
||||
"6d1a41010b";
|
||||
|
||||
extern std::string const kTrapIntOverflowHex =
|
||||
"0061736d010000000105016000017f03020100070a010666696e69736800000a0d010b00418080808078417f6d0b";
|
||||
"0061736d010000000105016000017f030201000711010d657363726f775f66696e69736800000a0d010b0041808080"
|
||||
"8078417f6d0b";
|
||||
|
||||
extern std::string const kTrapUnreachableHex =
|
||||
"0061736d010000000105016000017f03020100070a010666696e69736800000a070105000041010b";
|
||||
"0061736d010000000105016000017f030201000711010d657363726f775f66696e69736800000a070105000041010"
|
||||
"b";
|
||||
|
||||
extern std::string const kTrapNullCallHex =
|
||||
"0061736d010000000105016000017f03020100040401700001070a010666696e69736800000a090107004100110000"
|
||||
"0b";
|
||||
"0061736d010000000105016000017f030201000404017000010711010d657363726f775f66696e69736800000a0901"
|
||||
"070041001100000b";
|
||||
|
||||
extern std::string const kTrapFuncSigMismatchHex =
|
||||
"0061736d010000000108026000006000017f0303020001040401700001070a010666696e6973680001090701004100"
|
||||
"0b01000a0d020300010b070041001101000b";
|
||||
"0061736d010000000108026000006000017f03030200010404017000010711010d657363726f775f66696e69736800"
|
||||
"010907010041000b01000a0d020300010b070041001101000b";
|
||||
|
||||
extern std::string const kWasiGetTimeHex =
|
||||
"0061736d01000000010c0260037f7e7f017f6000017f02290116776173695f736e617073686f745f70726576696577"
|
||||
"310e636c6f636b5f74696d655f6765740000030201010503010001071302066d656d6f727902000666696e69736800"
|
||||
"010a16011400410042e8074100100045047f410105417f0b0b";
|
||||
"310e636c6f636b5f74696d655f6765740000030201010503010001071a02066d656d6f727902000d657363726f775f"
|
||||
"66696e69736800010a16011400410042e8074100100045047f410105417f0b0b";
|
||||
|
||||
extern std::string const kWasiPrintHex =
|
||||
"0061736d01000000010d0260047f7f7f7f017f6000017f02230116776173695f736e617073686f745f707265766965"
|
||||
"77310866645f77726974650000030201010503010001071302066d656d6f727902000666696e69736800010a1d011b"
|
||||
"01017f411821004101410041012000100045047f410105417f0b0b0b1e030041100b0648656c6c6f0a0041000b0410"
|
||||
"0000000041040b0406000000";
|
||||
"77310866645f77726974650000030201010503010001071a02066d656d6f727902000d657363726f775f66696e6973"
|
||||
"6800010a1d011b01017f411821004101410041012000100045047f410105417f0b0b0b1e030041100b0648656c6c6f"
|
||||
"0a0041000b04100000000041040b0406000000";
|
||||
|
||||
// The following several wasm hex strings are for testing wasm section
|
||||
// corruption cases. They are illegal hence do not have corresponding
|
||||
@@ -1102,29 +1117,29 @@ extern std::string const kInfiniteLoopWasmHex =
|
||||
"6578742b0f7265666572656e63652d74797065732b0a6d756c746976616c7565";
|
||||
|
||||
extern std::string const kStartLoopHex =
|
||||
"0061736d010000000108026000006000017f030302000107120205737461727400000666696e69736800010801000a"
|
||||
"0e02070003400c000b0b040041010b";
|
||||
"0061736d010000000108026000006000017f030302000107190205737461727400000d657363726f775f66696e6973"
|
||||
"6800010801000a0e02070003400c000b0b040041010b";
|
||||
|
||||
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"
|
||||
"6f61745f66726f6d5f75696e74000103656e7608636865636b5f6964000203050403000000050301000306470b7f00"
|
||||
"4180080b7f00418088020b7f004180080b7f00418088040b7f00418088040b7f00418088080b7f004180080b7f0041"
|
||||
"8088080b7f004180800c0b7f0041000b7f0041010b07cc0110066d656d6f72790200115f5f7761736d5f63616c6c5f"
|
||||
"63746f72730002057465737431000307655f64617461310300057465737432000407655f6461746132030104746573"
|
||||
"7400050c5f5f64736f5f68616e646c6503020a5f5f646174615f656e6403030b5f5f737461636b5f6c6f7703040c5f"
|
||||
"5f737461636b5f6869676803050d5f5f676c6f62616c5f6261736503060b5f5f686561705f6261736503070a5f5f68"
|
||||
"6561705f656e6403080d5f5f6d656d6f72795f6261736503090c5f5f7461626c655f62617365030a0a99020402000b"
|
||||
"2801017f418108427f370000418108410841a308410c41001000220041a40828020020004100481b0b5f01017f419a"
|
||||
"88024191a4cca00136010041928802428994ace0d0c1c38710370100418a88024281848ca0d0c0c183083701004181"
|
||||
"8802417f360000418a8802411441818802410441a3880241201001220041a4880228020020004100481b0b8a010103"
|
||||
"7f418108427f370000418108410841a308410c410010002100419a88024191a4cca00136010041928802428994ace0"
|
||||
"d0c1c38710370100418a88024281848ca0d0c0c1830837010041818802417f36000041a4082802002101418a880241"
|
||||
"1441818802410441a3880241201001220241a4880228020020024100481b2000200120004100481b6a0b007f097072"
|
||||
"6f647563657273010c70726f6365737365642d62790105636c616e675f31392e312e352d776173692d73646b202868"
|
||||
"747470733a2f2f6769746875622e636f6d2f6c6c766d2f6c6c766d2d70726f6a656374206162346235613264623538"
|
||||
"32393538616631656533303861373930636664623432626432343732302900490f7461726765745f66656174757265"
|
||||
"73042b0f6d757461626c652d676c6f62616c732b087369676e2d6578742b0f7265666572656e63652d74797065732b"
|
||||
"0a6d756c746976616c7565";
|
||||
|
||||
extern std::string const kThousandParamsHex =
|
||||
"0061736d0100000001f1070260000060e8077f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f"
|
||||
|
||||
64
src/test/app/wasm_fixtures/float_0/Cargo.lock
generated
64
src/test/app/wasm_fixtures/float_0/Cargo.lock
generated
@@ -4,11 +4,11 @@ version = 4
|
||||
|
||||
[[package]]
|
||||
name = "block-buffer"
|
||||
version = "0.10.4"
|
||||
version = "0.12.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
|
||||
checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa"
|
||||
dependencies = [
|
||||
"generic-array",
|
||||
"hybrid-array",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -27,31 +27,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
||||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.2.17"
|
||||
name = "const-oid"
|
||||
version = "0.10.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
|
||||
checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c"
|
||||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crypto-common"
|
||||
version = "0.1.7"
|
||||
version = "0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
|
||||
checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453"
|
||||
dependencies = [
|
||||
"generic-array",
|
||||
"typenum",
|
||||
"hybrid-array",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "digest"
|
||||
version = "0.10.7"
|
||||
version = "0.11.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
|
||||
checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2"
|
||||
dependencies = [
|
||||
"block-buffer",
|
||||
"const-oid",
|
||||
"crypto-common",
|
||||
]
|
||||
|
||||
@@ -63,13 +69,12 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "generic-array"
|
||||
version = "0.14.7"
|
||||
name = "hybrid-array"
|
||||
version = "0.4.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
|
||||
checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c"
|
||||
dependencies = [
|
||||
"typenum",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -98,9 +103,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "sha2"
|
||||
version = "0.10.9"
|
||||
version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
|
||||
checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"cpufeatures",
|
||||
@@ -135,9 +140,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
||||
|
||||
[[package]]
|
||||
name = "typenum"
|
||||
version = "1.19.0"
|
||||
version = "1.20.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
|
||||
checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
@@ -146,17 +151,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
||||
|
||||
[[package]]
|
||||
name = "version_check"
|
||||
version = "0.9.5"
|
||||
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#6b35fe45ac70bad38914e7f319d31d7947e05e25"
|
||||
dependencies = [
|
||||
"bs58",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"sha2",
|
||||
"syn",
|
||||
@@ -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#6b35fe45ac70bad38914e7f319d31d7947e05e25"
|
||||
dependencies = [
|
||||
"xrpl-address-macro",
|
||||
"xrpl-macros",
|
||||
]
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
#![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;
|
||||
|
||||
// FLOAT_ZERO constant
|
||||
const FLOAT_ZERO: [u8; FLOAT_SIZE] = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00];
|
||||
const FLOAT_ZERO: [u8; FLOAT_SIZE] = [
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||
];
|
||||
|
||||
#[unsafe(no_mangle)]
|
||||
pub extern "C" fn finish() -> i32 {
|
||||
pub extern "C" fn escrow_finish() -> i32 {
|
||||
let _ = trace("\n$$$ test_float_0 $$$");
|
||||
|
||||
// Test: 10 - 10 should equal 0
|
||||
@@ -18,29 +20,47 @@ pub extern "C" fn finish() -> i32 {
|
||||
let mut f_result: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE];
|
||||
|
||||
// Create float from 10
|
||||
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 10-10: failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Subtract: 10 - 10 = 0
|
||||
if FLOAT_SIZE as i32 != unsafe {
|
||||
float_subtract(
|
||||
f10.as_ptr(),
|
||||
FLOAT_SIZE,
|
||||
f10.as_ptr(),
|
||||
FLOAT_SIZE,
|
||||
f_result.as_mut_ptr(),
|
||||
FLOAT_SIZE,
|
||||
FLOAT_ROUNDING_MODES_TO_NEAREST,
|
||||
)
|
||||
} {
|
||||
if FLOAT_SIZE as i32
|
||||
!= unsafe {
|
||||
float_sub(
|
||||
f10.as_ptr(),
|
||||
FLOAT_SIZE,
|
||||
f10.as_ptr(),
|
||||
FLOAT_SIZE,
|
||||
f_result.as_mut_ptr(),
|
||||
FLOAT_SIZE,
|
||||
FLOAT_ROUNDING_MODES_TO_NEAREST,
|
||||
)
|
||||
}
|
||||
{
|
||||
let _ = trace(" float 10-10: failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// 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");
|
||||
|
||||
64
src/test/app/wasm_fixtures/float_tests/Cargo.lock
generated
64
src/test/app/wasm_fixtures/float_tests/Cargo.lock
generated
@@ -4,11 +4,11 @@ version = 4
|
||||
|
||||
[[package]]
|
||||
name = "block-buffer"
|
||||
version = "0.10.4"
|
||||
version = "0.12.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
|
||||
checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa"
|
||||
dependencies = [
|
||||
"generic-array",
|
||||
"hybrid-array",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -27,31 +27,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
||||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.2.17"
|
||||
name = "const-oid"
|
||||
version = "0.10.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
|
||||
checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c"
|
||||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crypto-common"
|
||||
version = "0.1.6"
|
||||
version = "0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
|
||||
checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453"
|
||||
dependencies = [
|
||||
"generic-array",
|
||||
"typenum",
|
||||
"hybrid-array",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "digest"
|
||||
version = "0.10.7"
|
||||
version = "0.11.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
|
||||
checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2"
|
||||
dependencies = [
|
||||
"block-buffer",
|
||||
"const-oid",
|
||||
"crypto-common",
|
||||
]
|
||||
|
||||
@@ -63,13 +69,12 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "generic-array"
|
||||
version = "0.14.9"
|
||||
name = "hybrid-array"
|
||||
version = "0.4.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2"
|
||||
checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c"
|
||||
dependencies = [
|
||||
"typenum",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -98,9 +103,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "sha2"
|
||||
version = "0.10.9"
|
||||
version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
|
||||
checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"cpufeatures",
|
||||
@@ -135,9 +140,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
||||
|
||||
[[package]]
|
||||
name = "typenum"
|
||||
version = "1.19.0"
|
||||
version = "1.20.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
|
||||
checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
@@ -146,17 +151,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
|
||||
|
||||
[[package]]
|
||||
name = "version_check"
|
||||
version = "0.9.5"
|
||||
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#6b35fe45ac70bad38914e7f319d31d7947e05e25"
|
||||
dependencies = [
|
||||
"bs58",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"sha2",
|
||||
"syn",
|
||||
@@ -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#6b35fe45ac70bad38914e7f319d31d7947e05e25"
|
||||
dependencies = [
|
||||
"xrpl-address-macro",
|
||||
"xrpl-macros",
|
||||
]
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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_field, le_inner, le_inner_arr_len,
|
||||
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");
|
||||
@@ -312,7 +397,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 +430,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 +473,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 +546,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 +567,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 +580,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 +602,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 +627,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 +648,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 +683,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 +717,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 +757,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 +846,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 +887,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 +941,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 +965,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 +1004,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 +1030,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 +1068,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");
|
||||
@@ -936,12 +1090,12 @@ fn test_float_from_stnumber() -> bool {
|
||||
}
|
||||
|
||||
#[unsafe(no_mangle)]
|
||||
pub extern "C" fn finish() -> i32 {
|
||||
pub extern "C" fn escrow_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 +1104,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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
(module
|
||||
;; Define a memory with 1 initial page.
|
||||
;; CRITICAL: We explicitly set the page size to 1 kilobyte.
|
||||
;; CRITICAL: We explicitly set the page size to 1 byte.
|
||||
;; Standard Wasm implies (pagesize 65536).
|
||||
(memory 1 (pagesize 1024))
|
||||
(memory 1 (pagesize 1))
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; If this module instantiates, the runtime accepted the custom page size.
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
;; We initialize it to 1,000,000.
|
||||
(global $counter (mut i32) (i32.const 1000000))
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; 1. Check if counter == 0 (Base Case)
|
||||
global.get $counter
|
||||
i32.eqz
|
||||
@@ -21,9 +21,9 @@
|
||||
|
||||
;; 3. Recursive Step: Call SELF
|
||||
;; This puts an i32 (1) on the stack when it returns.
|
||||
call $finish
|
||||
call $escrow_finish
|
||||
)
|
||||
|
||||
;; Export the only function we have
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
;; Start with 1 page.
|
||||
(memory i64 1)
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; 1. Perform a store using a 64-bit address.
|
||||
;; Even if the value is small (0), the type MUST be i64.
|
||||
i64.const 0 ;; Address (64-bit)
|
||||
@@ -17,5 +17,5 @@
|
||||
i64.eq ;; Returns i32 (1 if true)
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -24,5 +24,5 @@
|
||||
)
|
||||
|
||||
;; Export the function so you can call it from your host (JS, Python, etc.)
|
||||
(export "finish" (func $test_straddle))
|
||||
(export "escrow_finish" (func $test_straddle))
|
||||
)
|
||||
|
||||
@@ -25,5 +25,5 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $try_grow_beyond_limit))
|
||||
(export "escrow_finish" (func $try_grow_beyond_limit))
|
||||
)
|
||||
|
||||
@@ -22,5 +22,5 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $grow_from_zero))
|
||||
(export "escrow_finish" (func $grow_from_zero))
|
||||
)
|
||||
|
||||
@@ -25,5 +25,5 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $try_grow_beyond_limit))
|
||||
(export "escrow_finish" (func $try_grow_beyond_limit))
|
||||
)
|
||||
|
||||
@@ -29,5 +29,5 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $grow_negative))
|
||||
(export "escrow_finish" (func $grow_negative))
|
||||
)
|
||||
|
||||
@@ -23,5 +23,5 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $access_last_byte))
|
||||
(export "escrow_finish" (func $access_last_byte))
|
||||
)
|
||||
|
||||
@@ -22,5 +22,5 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $access_last_byte))
|
||||
(export "escrow_finish" (func $access_last_byte))
|
||||
)
|
||||
|
||||
@@ -19,5 +19,5 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $access_last_byte))
|
||||
(export "escrow_finish" (func $access_last_byte))
|
||||
)
|
||||
|
||||
@@ -23,5 +23,5 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $test_offset_overflow))
|
||||
(export "escrow_finish" (func $test_offset_overflow))
|
||||
)
|
||||
|
||||
@@ -17,6 +17,6 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
;; Export as "finish" as requested
|
||||
(export "finish" (func $read_edge))
|
||||
;; Export as "escrow_finish" as requested
|
||||
(export "escrow_finish" (func $read_edge))
|
||||
)
|
||||
|
||||
@@ -18,6 +18,6 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
;; Export as "finish" as requested
|
||||
(export "finish" (func $read_overflow))
|
||||
;; Export as "escrow_finish" as requested
|
||||
(export "escrow_finish" (func $read_overflow))
|
||||
)
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
;; If multi-memory is disabled, this line causes a validation error (max 1 memory).
|
||||
(memory 1)
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; Query size of Memory Index 1.
|
||||
;; Should return 1 (success).
|
||||
memory.size 1
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -21,5 +21,5 @@
|
||||
i32.eq
|
||||
)
|
||||
|
||||
(export "finish" (func $test_bulk_ops))
|
||||
(export "escrow_finish" (func $test_bulk_ops))
|
||||
)
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
;; This proposal allows (i32.add (i32.const X) (i32.const Y)).
|
||||
(global $g i32 (i32.add (i32.const 10) (i32.const 32)))
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; 2. verify the global equals 42
|
||||
global.get $g
|
||||
i32.const 42
|
||||
i32.eq
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -14,5 +14,5 @@
|
||||
i32.eq
|
||||
)
|
||||
|
||||
(export "finish" (func $test_saturation))
|
||||
(export "escrow_finish" (func $test_saturation))
|
||||
)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
(module
|
||||
(type (;0;) (func (result i32)))
|
||||
(type (;1;) (struct (field (mut i32)) (field (mut i32))))
|
||||
(export "finish" (func 0))
|
||||
(export "escrow_finish" (func 0))
|
||||
(func (;0;) (type 0) (result i32)
|
||||
struct.new_default 1
|
||||
drop
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
i32.const 20
|
||||
)
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; Call pushes [10, 20] onto the stack
|
||||
call $get_numbers
|
||||
|
||||
@@ -18,5 +18,5 @@
|
||||
end
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
;; In strict MVP, exported globals had to be immutable (const).
|
||||
(export "counter" (global $counter))
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; 1. Get current value
|
||||
global.get $counter
|
||||
|
||||
@@ -21,5 +21,5 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -14,5 +14,5 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $test_ref_types))
|
||||
(export "escrow_finish" (func $test_ref_types))
|
||||
)
|
||||
|
||||
@@ -14,5 +14,5 @@
|
||||
i32.eq
|
||||
)
|
||||
|
||||
(export "finish" (func $test_sign_ext))
|
||||
(export "escrow_finish" (func $test_sign_ext))
|
||||
)
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; Try to use the 'return_call' instruction (Opcode 0x12)
|
||||
;; If Tail Call proposal is disabled, this fails to Compile/Validate.
|
||||
;; If enabled, it jumps to $target, which returns 1.
|
||||
return_call $target
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
)
|
||||
|
||||
;; Function 2: Finish
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
;; 1. EXPORT the functions (optional, if you want to call them later)
|
||||
(export "start" (func $run_forever))
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
|
||||
;; 2. The special start section
|
||||
;; This tells the VM: "Run function $run_forever immediately
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
(table 0 funcref)
|
||||
|
||||
;; Standard finish function
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
i32.const 1
|
||||
)
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
;; Initialize Table 1 at index 0
|
||||
(elem (table $t1) (i32.const 0) $dummy)
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; If we successfully loaded a module with 2 tables, return 1.
|
||||
i32.const 1
|
||||
)
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
)
|
||||
|
||||
;; Standard finish function
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
i32.const 1
|
||||
)
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
$dummy ;; 65 (The one that breaks the camel's back)
|
||||
)
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
i32.const 1
|
||||
)
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
;; Note that using -1 as the table size cannot be parsed by wasm-tools or wat2wasm
|
||||
(table 0xFFFFFFFF funcref)
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; If the module loads despite the massive table, return 1.
|
||||
i32.const 1
|
||||
)
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
(module
|
||||
(func $finish (export "finish") (result i32)
|
||||
(func $escrow_finish (export "escrow_finish") (result i32)
|
||||
;; Setup for Requirement 2: Divide an i32 by 0
|
||||
i32.const 42 ;; Push numerator
|
||||
i32.const 0 ;; Push denominator (0)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
;; Put Type A function into Table[0]
|
||||
(elem (i32.const 0) $void_func)
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; Attempt to call Index 0, but CLAIM we expect Type B (result i32).
|
||||
;; The function at Index 0 matches Type A.
|
||||
;; TRAP: "indirect call type mismatch"
|
||||
@@ -29,5 +29,5 @@
|
||||
call_indirect (type $type_i32)
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -14,5 +14,5 @@
|
||||
i32.div_s
|
||||
)
|
||||
|
||||
(export "finish" (func $test_int_overflow))
|
||||
(export "escrow_finish" (func $test_int_overflow))
|
||||
)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
(type $t (func (result i32)))
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; Call Index 0.
|
||||
;; Bounds check passes (0 < 1).
|
||||
;; Null check fails.
|
||||
@@ -18,5 +18,5 @@
|
||||
call_indirect (type $t)
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
(module
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; This instruction explicitly causes a trap.
|
||||
;; It consumes no fuel (beyond the instruction itself) and stops execution.
|
||||
unreachable
|
||||
@@ -8,5 +8,5 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
(memory 1)
|
||||
(export "memory" (memory 0))
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; We will store the timestamp (a 64-bit integer) at address 0.
|
||||
;; No setup required in memory beforehand!
|
||||
|
||||
@@ -34,5 +34,5 @@
|
||||
end
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
;; Encoded in little-endian: 06 00 00 00
|
||||
(data (i32.const 4) "\06\00\00\00")
|
||||
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
(local $nwritten_ptr i32)
|
||||
|
||||
;; We will ask WASI to write the "number of bytes written" to address 24
|
||||
@@ -55,5 +55,5 @@
|
||||
end
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
(module
|
||||
(func $finish (result i32)
|
||||
(func $escrow_finish (result i32)
|
||||
;; 1. Push operands
|
||||
i64.const 1
|
||||
i64.const 2
|
||||
@@ -18,5 +18,5 @@
|
||||
i32.const 1
|
||||
)
|
||||
|
||||
(export "finish" (func $finish))
|
||||
(export "escrow_finish" (func $escrow_finish))
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user