test: improve codecov in HostFuncWrapper.cpp (#5730)

This commit is contained in:
Mayukha Vadari
2025-09-11 18:09:08 -04:00
committed by GitHub
parent 1b6312afb3
commit ba52d34828
8 changed files with 615 additions and 296 deletions

View File

@@ -649,7 +649,7 @@ struct Wasm_test : public beast::unit_test::suite
Bytes const wasm(wasmStr.begin(), wasmStr.end());
TestHostFunctions hfs(env, 0);
auto const allowance = 121'895;
auto const allowance = 148'406;
auto re = runEscrowWasm(
wasm, ESCROW_FUNCTION_NAME, {}, &hfs, allowance, env.journal);
@@ -709,7 +709,7 @@ struct Wasm_test : public beast::unit_test::suite
testWasmSha();
testWasmB58();
// runing too long
// running too long
// testWasmSP1Verifier();
testWasmBG16Verifier();

View File

@@ -12,4 +12,4 @@ dependencies = [
[[package]]
name = "xrpl-std"
version = "0.5.1-devnet5"
source = "git+https://github.com/ripple/craft.git?branch=last-hfs2#ec4a3fb2ea45a7f27b7190976d37d3596e2ec29e"
source = "git+https://github.com/ripple/craft.git?branch=lastdevnet#6b20669b20561b9d0f09678f44ccbddb84ef9f47"

View File

@@ -15,4 +15,4 @@ opt-level = 's'
panic = "abort"
[dependencies]
xrpl-std = { git = "https://github.com/ripple/craft.git", branch = "last-hfs2", package = "xrpl-std" }
xrpl-std = { git = "https://github.com/ripple/craft.git", branch = "lastdevnet", package = "xrpl-std" }

View File

@@ -32,15 +32,6 @@ unsafe extern "C" {
out_buff_len: usize,
) -> i32;
pub fn amm_keylet(
issue1_ptr: *const u8,
issue1_len: usize,
issue2_ptr: i32,
issue2_len: i32,
out_buff_ptr: *mut u8,
out_buff_len: usize,
) -> i32;
pub fn line_keylet(
account1_ptr: *const u8,
account1_len: usize,

View File

@@ -6,13 +6,13 @@ extern crate std;
use core::panic;
use xrpl_std::core::current_tx::escrow_finish::{get_current_escrow_finish, EscrowFinish};
use xrpl_std::core::current_tx::traits::TransactionCommonFields;
use xrpl_std::core::error_codes;
use xrpl_std::core::locator::Locator;
use xrpl_std::core::types::amount::asset::Asset;
use xrpl_std::core::types::amount::asset::XrpAsset;
use xrpl_std::core::types::amount::mpt_id::MptId;
use xrpl_std::core::types::keylets;
use xrpl_std::host;
use xrpl_std::host::error_codes;
use xrpl_std::host::trace::{trace, trace_num as trace_number};
use xrpl_std::sfield;
@@ -52,7 +52,8 @@ pub extern "C" fn finish() -> i32 {
// ########################################
// Step #1: Test all host function happy paths
// Note: not testing all the keylet functions,
// that's in a separate test file.
// that's in a separate test file (all_keylets).
// The float tests are also in a separate file (float_tests).
// ########################################
check_result(unsafe { host::get_ledger_sqn() }, 12345, "get_ledger_sqn");
check_result(
@@ -338,6 +339,38 @@ pub extern "C" fn finish() -> i32 {
// Step #3: Test getData[Type] edge cases
// ########################################
// uint64
with_buffer::<32, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_from_uint(
locator.as_ptr().wrapping_add(1_000_000_000),
8,
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_from_uint_len_oob",
)
});
with_buffer::<32, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_from_uint(
locator.as_ptr(),
locator.len(),
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::INVALID_PARAMS,
"float_from_uint_wrong_len",
)
});
// SField
check_result(
unsafe { host::get_tx_array_len(2) }, // not a valid SField value
@@ -468,11 +501,11 @@ pub extern "C" fn finish() -> i32 {
with_buffer::<32, _, _>(|ptr, len| {
check_result(
unsafe {
host_bindings_loose::amm_keylet(
host::amm_keylet(
asset1_bytes.as_ptr(),
asset1_bytes.len(),
locator.as_ptr() as i32 + 1_000_000_000,
locator.len() as i32,
locator.as_ptr().wrapping_add(1_000_000_000),
locator.len(),
ptr,
len,
)
@@ -484,11 +517,11 @@ pub extern "C" fn finish() -> i32 {
with_buffer::<32, _, _>(|ptr, len| {
check_result(
unsafe {
host_bindings_loose::amm_keylet(
host::amm_keylet(
asset1_bytes.as_ptr(),
asset1_bytes.len(),
locator.as_ptr() as i32,
locator.len() as i32,
locator.as_ptr(),
locator.len(),
ptr,
len,
)
@@ -501,11 +534,11 @@ pub extern "C" fn finish() -> i32 {
with_buffer::<32, _, _>(|ptr, len| {
check_result(
unsafe {
host_bindings_loose::amm_keylet(
host::amm_keylet(
asset1_bytes.as_ptr(),
asset1_bytes.len(),
currency.as_ptr() as i32,
currency.len() as i32,
currency.as_ptr(),
currency.len(),
ptr,
len,
)
@@ -514,6 +547,23 @@ pub extern "C" fn finish() -> i32 {
"amm_keylet_len_wrong_non_xrp_currency_len",
)
});
let xrpissue: &[u8] = &[0; 40]; // 40 bytes
with_buffer::<32, _, _>(|ptr, len| {
check_result(
unsafe {
host::amm_keylet(
xrpissue.as_ptr(),
xrpissue.len(),
asset1_bytes.as_ptr(),
asset1_bytes.len(),
ptr,
len,
)
},
error_codes::INVALID_PARAMS,
"amm_keylet_len_wrong_xrp_currency_len",
)
});
let mptid = MptId::new(1, account);
with_buffer::<2, _, _>(|ptr, len| {
check_result(
@@ -755,6 +805,19 @@ pub extern "C" fn finish() -> i32 {
error_codes::POINTER_OUT_OF_BOUNDS,
"trace_oob_slice",
);
let float: [u8; 8] = [0xD4, 0x83, 0x8D, 0x7E, 0xA4, 0xC6, 0x80, 0x00];
check_result(
unsafe {
host::trace_opaque_float(
message.as_ptr(),
message.len(),
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"trace_opaque_float_oob_slice",
);
check_result(
unsafe {
host::trace_amount(
@@ -767,6 +830,213 @@ pub extern "C" fn finish() -> i32 {
error_codes::POINTER_OUT_OF_BOUNDS,
"trace_amount_oob_slice",
);
check_result(
unsafe {
host::float_compare(
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
float.as_ptr(),
float.len(),
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_compare_oob_slice1",
);
check_result(
unsafe {
host::float_compare(
float.as_ptr(),
float.len(),
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_compare_oob_slice2",
);
with_buffer::<2, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_add(
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
float.as_ptr(),
float.len(),
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_add_oob_slice1",
)
});
with_buffer::<2, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_add(
float.as_ptr(),
float.len(),
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_add_oob_slice2",
)
});
with_buffer::<2, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_subtract(
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
float.as_ptr(),
float.len(),
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_subtract_oob_slice1",
)
});
with_buffer::<2, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_subtract(
float.as_ptr(),
float.len(),
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_subtract_oob_slice2",
)
});
with_buffer::<2, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_multiply(
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
float.as_ptr(),
float.len(),
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_multiply_oob_slice1",
)
});
with_buffer::<2, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_multiply(
float.as_ptr(),
float.len(),
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_multiply_oob_slice2",
)
});
with_buffer::<2, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_divide(
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
float.as_ptr(),
float.len(),
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_divide_oob_slice1",
)
});
with_buffer::<2, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_divide(
float.as_ptr(),
float.len(),
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_divide_oob_slice2",
)
});
with_buffer::<2, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_root(
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
3,
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_root_oob_slice",
)
});
with_buffer::<2, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_pow(
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
3,
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_pow_oob_slice",
)
});
with_buffer::<2, _, _>(|ptr, len| {
check_result(
unsafe {
host::float_log(
float.as_ptr().wrapping_add(1_000_000_000),
float.len(),
ptr,
len,
FLOAT_ROUNDING_MODES_TO_NEAREST,
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"float_log_oob_slice",
)
});
// invalid UInt256
@@ -1143,6 +1413,18 @@ pub extern "C" fn finish() -> i32 {
error_codes::POINTER_OUT_OF_BOUNDS,
"trace_oob_string",
);
check_result(
unsafe {
host::trace_opaque_float(
message.as_ptr().wrapping_add(1_000_000_000),
message.len(),
float.as_ptr(),
float.len(),
)
},
error_codes::POINTER_OUT_OF_BOUNDS,
"trace_opaque_float_oob_string",
);
check_result(
unsafe {
host::trace_account(
@@ -1188,6 +1470,13 @@ pub extern "C" fn finish() -> i32 {
error_codes::DATA_FIELD_TOO_LARGE,
"trace_num_too_long",
);
check_result(
unsafe {
host::trace_opaque_float(message.as_ptr(), long_len, float.as_ptr(), float.len())
},
error_codes::DATA_FIELD_TOO_LARGE,
"trace_opaque_float_too_long",
);
check_result(
unsafe {
host::trace_account(
@@ -1203,7 +1492,7 @@ pub extern "C" fn finish() -> i32 {
check_result(
unsafe { host::trace_amount(message.as_ptr(), long_len, amount.as_ptr(), amount.len()) },
error_codes::DATA_FIELD_TOO_LARGE,
"trace_account_too_long",
"trace_amount_too_long",
);
// trace amount errors

View File

@@ -85,8 +85,8 @@ def process_c(project_name):
os.path.join(os.path.dirname(__file__), f"{project_name}.wasm")
)
build_cmd = (
f"$CC --sysroot=$SYSROOT -I$SYSROOT/include/wasm32-wasi "
f"-O3 -ffast-math --target=wasm32 -fno-exceptions -fno-threadsafe-statics -fvisibility=default -Wl,--export-all -Wl,--no-entry -Wl,--allow-undefined -DNDEBUG --no-standard-libraries -fno-builtin-memset "
f"$CC --sysroot=$SYSROOT "
f"-O3 -ffast-math --target=wasm32 -fno-exceptions -fno-threadsafe-statics -fvisibility=default -Wl,--export-all -Wl,--no-entry -Wl,--allow-undefined -DNDEBUG --no-standard-libraries -fno-builtin-memset "
f"-o {wasm_path} {project_path}"
f"&& wasm-opt {wasm_path} {OPT} -o {wasm_path}"
)

View File

@@ -9854,277 +9854,316 @@ extern std::string const allKeyletsWasmHex =
extern std::string const codecovTestsWasmHex =
"0061736d0100000001570b60047f7f7f7f017f60057f7f7f7f7f017f60027f7f017f60067f"
"7f7f7f7f7f017f6000017f60037f7f7f017f60017f017f60087f7f7f7f7f7f7f7f017f6003"
"7f7f7e017f60077f7f7f7f7f7f7f017f60047f7f7f7f0002e70b3408686f73745f6c696205"
"7472616365000108686f73745f6c69620974726163655f6e756d000808686f73745f6c6962"
"0e6765745f6c65646765725f73716e000408686f73745f6c6962166765745f706172656e74"
"5f6c65646765725f74696d65000408686f73745f6c6962166765745f706172656e745f6c65"
"7f7f7f7f7f017f60077f7f7f7f7f7f7f017f6000017f60037f7f7f017f60017f017f60087f"
"7f7f7f7f7f7f7f017f60037f7f7e017f60047f7f7f7f0002da0d3e08686f73745f6c696205"
"7472616365000108686f73745f6c69620974726163655f6e756d000908686f73745f6c6962"
"0e6765745f6c65646765725f73716e000508686f73745f6c6962166765745f706172656e74"
"5f6c65646765725f74696d65000508686f73745f6c6962166765745f706172656e745f6c65"
"646765725f68617368000208686f73745f6c6962176765745f6c65646765725f6163636f75"
"6e745f68617368000208686f73745f6c6962126765745f6c65646765725f74785f68617368"
"000208686f73745f6c69620c6765745f626173655f666565000408686f73745f6c69621161"
"000208686f73745f6c69620c6765745f626173655f666565000508686f73745f6c69621161"
"6d656e646d656e745f656e61626c6564000208686f73745f6c69620c6765745f74785f6669"
"656c64000508686f73745f6c69620e6163636f756e745f6b65796c6574000008686f73745f"
"6c69621063616368655f6c65646765725f6f626a000508686f73745f6c69621c6765745f63"
"757272656e745f6c65646765725f6f626a5f6669656c64000508686f73745f6c6962146765"
"656c64000608686f73745f6c69620e6163636f756e745f6b65796c6574000008686f73745f"
"6c69621063616368655f6c65646765725f6f626a000608686f73745f6c69621c6765745f63"
"757272656e745f6c65646765725f6f626a5f6669656c64000608686f73745f6c6962146765"
"745f6c65646765725f6f626a5f6669656c64000008686f73745f6c6962136765745f74785f"
"6e65737465645f6669656c64000008686f73745f6c6962236765745f63757272656e745f6c"
"65646765725f6f626a5f6e65737465645f6669656c64000008686f73745f6c69621b676574"
"5f6c65646765725f6f626a5f6e65737465645f6669656c64000108686f73745f6c69621067"
"65745f74785f61727261795f6c656e000608686f73745f6c6962206765745f63757272656e"
"745f6c65646765725f6f626a5f61727261795f6c656e000608686f73745f6c696218676574"
"65745f74785f61727261795f6c656e000708686f73745f6c6962206765745f63757272656e"
"745f6c65646765725f6f626a5f61727261795f6c656e000708686f73745f6c696218676574"
"5f6c65646765725f6f626a5f61727261795f6c656e000208686f73745f6c6962176765745f"
"74785f6e65737465645f61727261795f6c656e000208686f73745f6c6962276765745f6375"
"7272656e745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e00020868"
"6f73745f6c69621f6765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c"
"656e000508686f73745f6c69620b7570646174655f64617461000208686f73745f6c696213"
"656e000608686f73745f6c69620b7570646174655f64617461000208686f73745f6c696213"
"636f6d707574655f7368613531325f68616c66000008686f73745f6c696209636865636b5f"
"736967000308686f73745f6c6962076765745f6e6674000308686f73745f6c69620e676574"
"5f6e66745f697373756572000008686f73745f6c69620d6765745f6e66745f7461786f6e00"
"0008686f73745f6c69620d6765745f6e66745f666c616773000208686f73745f6c69621467"
"65745f6e66745f7472616e736665725f666565000208686f73745f6c69620e6765745f6e66"
"745f73657269616c000008686f73745f6c69620d74726163655f6163636f756e7400000868"
"6f73745f6c69620c74726163655f616d6f756e74000008686f73745f6c69620b6c696e655f"
"6b65796c6574000708686f73745f6c69620a616d6d5f6b65796c6574000308686f73745f6c"
"69621163726564656e7469616c5f6b65796c6574000708686f73745f6c69620e6d70746f6b"
"656e5f6b65796c6574000308686f73745f6c69620c636865636b5f6b65796c657400010868"
"6f73745f6c69620f64656c65676174655f6b65796c6574000308686f73745f6c6962166465"
"706f7369745f707265617574685f6b65796c6574000308686f73745f6c69620a6469645f6b"
"65796c6574000008686f73745f6c69620d657363726f775f6b65796c6574000108686f7374"
"5f6c6962136d70745f69737375616e63655f6b65796c6574000108686f73745f6c6962106e"
"66745f6f666665725f6b65796c6574000108686f73745f6c69620c6f666665725f6b65796c"
"6574000108686f73745f6c69620d6f7261636c655f6b65796c6574000108686f73745f6c69"
"620e7061796368616e5f6b65796c6574000908686f73745f6c69621a7065726d697373696f"
"6e65645f646f6d61696e5f6b65796c6574000108686f73745f6c69620e7369676e6572735f"
"6b65796c6574000008686f73745f6c69620d7469636b65745f6b65796c6574000108686f73"
"745f6c69620c7661756c745f6b65796c657400010303020a0405030100110619037f014180"
"80c0000b7f0041959ac0000b7f0041a09ac0000b072e04066d656d6f727902000666696e69"
"736800350a5f5f646174615f656e6403010b5f5f686561705f6261736503020a8026024600"
"0240200020014704402002200341004100410010001a20004100480d01418b80c000410b20"
"00ad1001000b200220032000ac10011a0f0b418b80c000410b2000ac1001000bb62502087f"
"027e230041f0016b22002400419680c000412341004100410010001a100241b9e00041b980"
"c000410e1034100341b2920441c780c00041161034200041f8006a22044200370300200041"
"f0006a22034200370300200041e8006a2202420037030020004200370360200041e0006a22"
"0141201004412041e48ac00041161034200442003703002003420037030020024200370300"
"20004200370360200141201005412041fa8ac0004117103420044200370300200342003703"
"002002420037030020004200370360200141201006412041918bc000411210341007410a41"
"dd80c000410c1034200041206a428182848890a0c08001370300200041186a428182848890"
"a0c08001370300200041106a428182848890a0c080013703002000428182848890a0c08001"
"37030841e980c000410e1008410141f780c00041111034200041086a41201008410141f780"
"c0004111103420034100360200200242003703002000420037036002404181802020014114"
"1009220541144604402000412e6a20002d00623a0000200020002900673703c80120002000"
"41ec006a2900003700cd01200041386a20002900cd01370000200020002f01603b012c2000"
"200028006336002f200020002903c801370033200442003703002003420037030020024200"
"370300200042003703602000412c6a411420014120100a22044120470d01200041c2006a20"
"002d00623a0000200041d0016a200041ef006a2900002208370300200041d8016a200041f7"
"006a2900002209370300200041cf006a2008370000200041d7006a2009370000200041df00"
"6a200041ff006a2d00003a0000200020002f01603b01402000200028006336004320002000"
"290067370047200041406b41204100100b4101418881c00041101034200341003602002002"
"4200370300200042003703604181802020014114100c411441a38bc000411c103420034100"
"360200200242003703002000420037036041014181802020014114100d411441bf8bc00041"
"14103402402001410020016b41037122036a220220014d0d00200304402003210403402001"
"41003a0000200141016a2101200441016b22040d000b0b200341016b4107490d0003402001"
"41003a0000200141076a41003a0000200141066a41003a0000200141056a41003a00002001"
"41046a41003a0000200141036a41003a0000200141026a41003a0000200141016a41003a00"
"00200141086a22012002470d000b0b200241c40020036b2203417c716a220120024b044003"
"4020024100360200200241046a22022001490d000b0b024020012003410371220320016a22"
"044f0d002003220204400340200141003a0000200141016a2101200241016b22020d000b0b"
"200341016b4107490d000340200141003a0000200141076a41003a0000200141066a41003a"
"0000200141056a41003a0000200141046a41003a0000200141036a41003a0000200141026a"
"41003a0000200141016a41003a0000200141086a22012004470d000b0b2000418180203602"
"c801410021010340200741c000490440200041e0006a20076a200041c8016a20016a2d0000"
"3a0000200020002802a00141016a22073602a001200141016a22014104470d010b0b200041"
"d8016a22024100360200200041d0016a22054200370300200042003703c801200041e0006a"
"22012007200041c8016a22044114100e411441d38bc0004113103420024100360200200542"
"00370300200042003703c801200120002802a00120044114100f411441e68bc00041231034"
"2002410036020020054200370300200042003703c8014101200120002802a0012004411410"
"10411441898cc000411b10344189803c10114120419881c000411010344189803c10124120"
"41a881c0004120103441014189803c1013412041c881c00041181034200120002802a00110"
"14412041e081c00041171034200120002802a0011015412041f781c0004127103441012001"
"20002802a00110164120419e82c000411f10342000412c6a220341141017410041bd82c000"
"410b1034200041e0016a220742003703002002420037030020054200370300200042003703"
"c801200120002802a001200441201018412041a48cc0004113103441c882c000410c41d482"
"c000410b41df82c000410e1019410141ed82c00041091034200041c0016a200041206a2903"
"00370300200041b8016a200041186a290300370300200041b0016a200041106a2903003703"
"00200020002903083703a801200241003b010020054200370300200042003703c801200341"
"14200041a8016a2206412020044112101a411241b78cc00041071034200241003602002005"
"4200370300200042003703c8012006412020044114101b411441be8cc000410e1034200041"
"003602c8012006412020044104101c410441cc8cc000410d103420064120101d410841f682"
"c000410d103420064120101e410a418383c00041141034200041003602c801200641202004"
"4104101f410441d98cc000410e1034419783c000410d200341141020412f41a483c000410d"
"1034419783c000410d41b183c00041081021411341b983c000410c1034417f410410044171"
"41c583c000411e1034200041003602c8012004417f1004417141e78cc000411e1034200041"
"ca016a41003a0000200041003b01c801200441031004417d41858dc0004124103420004100"
"3602c8012004418094ebdc031004417341a98dc00041231034419783c000410d2003411410"
"20412f41a483c000410d1034419783c000410d41b183c00041081021411341b983c000410c"
"103441021011416f41e383c000411f1034417f20002802a00110144171418284c000411f10"
"342001417f1014417141a184c000411f103420014181201014417441c084c0004120103420"
"0041e094ebdc036a220620002802a0011014417341e084c000411f1034200620002802a001"
"4101100b417341ff84c00041181034200120002802a0014101100b4171419785c000411a10"
"34200742003703002002420037030020054200370300200042003703c801200620002802a0"
"0120044120100a417341cc8dc0004116103420074200370300200242003703002005420037"
"0300200042003703c801200120002802a00120044120100a417141e28dc000411810342007"
"42003703002002420037030020054200370300200042003703c80120034114200341142006"
"20002802a001200441201022417341fa8dc000411c10342007420037030020024200370300"
"20054200370300200042003703c8012003411420034114200120002802a001200441201022"
"417141968ec000411e10342007420037030020024200370300200542003703002000420037"
"03c80141819ac0004114200620002802a001200441201023417341b48ec000411910342007"
"42003703002002420037030020054200370300200042003703c80141819ac0004114200120"
"002802a001200441201023417141cd8ec000411f1034200742003703002002420037030020"
"054200370300200042003703c80141819ac000411441b185c0004114200441201023417141"
"ec8ec00041291034200041dc016a2000413c6a280100360200200041d4016a200041346a29"
"01003702002000200029012c3702cc01200041808080083602c801200041003b01ec012004"
"411841819ac0004114200041ec016a220241021023417141958fc000410e10342006200028"
"02a001422a1001417341c585c00041111034200041003b01ec014102200241021009416f41"
"a38fc000411b1034200041003b01ec01410220024102100c416f41be8fc000412b10342000"
"41003b01ec014101410220024102100d416f41e98fc0004123103441021011416f41e383c0"
"00411f103441021012416f41d685c000412f1034410141021013416f418586c00041271034"
"41e980c0004181201008417441ac86c000411f103441e980c00041c1001008417441cb86c0"
"00411a1034200041003b01ec01200141812020024102100e4174418c90c000412110342000"
"41003b01ec01200141812020024102100f417441ad90c00041311034200041003b01ec0141"
"012001418120200241021010417441de90c0004129103420014181201014417441e586c000"
"41251034200141812010154174418a87c00041351034410120014181201016417441bf87c0"
"00412d103420014181201017417441ec87c00041191034419783c00041812041d482c00041"
"0b41df82c000410e1019417441ed82c00041091034419783c000410d41d482c00041812041"
"df82c000410e1019417441ed82c00041091034419783c000410d41d482c000410b41df82c0"
"004181201019417441ed82c00041091034200041003b01ec01200141812020024102101841"
"74418791c00041211034200041003b01ec0141819ac00041812041819ac000411420024102"
"1023417441a891c00041181034200041003b01ec0120034114200341142001418120200241"
"021024417441c091c000411f1034200041003b01ec01200441812020034114200241021025"
"417441df91c00041221034419783c000410d200620002802a001410010004173418588c000"
"410f1034419783c000410d200620002802a00110214173419488c000411610342001200028"
"02a0014100100b417141aa88c00041231034200041003b01ec0120034114200120002802a0"
"0120024102101a4171418192c000411a1034200041003b01ec01200120002802a001200241"
"02101b4171419b92c00041211034200041003b01ec01200120002802a00120024102101c41"
"7141bc92c00041201034200120002802a001101d417141cd88c00041201034200120002802"
"a001101e417141ed88c00041271034200041003602ec01200120002802a00120024104101f"
"417141dc92c00041211034200041003b01ec01200120002802a00120024102100a417141fd"
"92c00041231034200041003b01ec01200120002802a0014101200241021026417141a093c0"
"0041211034200041003b01ec01200120002802a00122052003411420012005200241021024"
"417141c193c00041271034200041003b01ec0120034114200120002802a001220520012005"
"200241021024417141e893c00041271034200041003b01ec01200120002802a00120034114"
"2002410210274171418f94c00041251034200041003b01ec0120034114200120002802a001"
"200241021027417141b494c00041251034200041003b01ec01200120002802a00120034114"
"200241021028417141d994c000412c1034200041003b01ec0120034114200120002802a001"
"2002410210284171418595c000412c1034200041003b01ec01200120002802a00120024102"
"1029417141b195c000411f1034200041003b01ec01200120002802a001410120024102102a"
"417141d095c00041221034200041003b01ec01200120002802a0012003411441b185c00041"
"14200241021022417141f295c00041211034200041003b01ec0120034114200120002802a0"
"0141b185c00041142002410210224171419396c00041211034200041003b01ec0120012000"
"2802a001410120024102102b417141b496c00041281034200041003b01ec01200441182001"
"20002802a001200241021025417141dc96c00041231034200041003b01ec01200120002802"
"a001410120024102102c417141ff96c00041251034200041003b01ec01200120002802a001"
"410120024102102d417141a497c00041211034200041003b01ec01200120002802a0014101"
"20024102102e417141c597c00041221034200041003b01ec01200120002802a00120034114"
"410120024102102f417141e797c00041241034200041003b01ec0120034114200120002802"
"a001410120024102102f4171418b98c00041241034200041003b01ec01200120002802a001"
"4101200241021030417141af98c000412f1034200041003b01ec01200120002802a0012002"
"41021031417141de98c00041231034200041003b01ec01200120002802a001410120024102"
"10324171418199c00041221034200041003b01ec01200120002802a0014101200241021033"
"417141a399c00041211034200041003b01ec01200120002802a001419489c0004120200241"
"02101a417141c499c000411c1034419783c000410d200120002802a0011020417141b489c0"
"0041221034419797abdd03410d419489c000412041001000417341d689c000411010344197"
"97abdd03410d200341141020417341e689c00041181034419797abdd03410d41b183c00041"
"081021417341fe89c00041171034200120002802a001200141812041001000417441958ac0"
"00410e1034200141812042011001417441a38ac00041121034419783c00041812020034114"
"1020417441b58ac00041161034419783c00041812041b183c00041081021417441b58ac000"
"41161034419783c000410d200120002802a0011021417141cb8ac00041191034200041003b"
"01ec01200120002802a00120034114200241021025417141e099c00041211034200041f001"
"6a240041010f0b418080c000410b417f20052005417f4e1bac1001000b418080c000410b41"
"7f20042004417f4e1bac1001000b0b8b1a0100418080c0000b811a6572726f725f636f6465"
"3d54455354204641494c45442424242424205354415254494e47205741534d204558454355"
"54494f4e2024242424246765745f6c65646765725f73716e6765745f706172656e745f6c65"
"646765725f74696d656765745f626173655f666565746573745f616d656e646d656e74616d"
"656e646d656e745f656e61626c656463616368655f6c65646765725f6f626a6765745f7478"
"5f61727261795f6c656e6765745f63757272656e745f6c65646765725f6f626a5f61727261"
"795f6c656e6765745f6c65646765725f6f626a5f61727261795f6c656e6765745f74785f6e"
"65737465645f61727261795f6c656e6765745f63757272656e745f6c65646765725f6f626a"
"5f6e65737465645f61727261795f6c656e6765745f6c65646765725f6f626a5f6e65737465"
"645f61727261795f6c656e7570646174655f6461746174657374206d657373616765746573"
"74207075626b657974657374207369676e6174757265636865636b5f7369676765745f6e66"
"745f666c6167736765745f6e66745f7472616e736665725f66656574657374696e67207472"
"61636574726163655f6163636f756e74400000000000005f74726163655f616d6f756e7467"
"65745f706172656e745f6c65646765725f686173685f6e65675f7074726765745f74785f61"
"727261795f6c656e5f696e76616c69645f736669656c646765745f74785f6e65737465645f"
"61727261795f6c656e5f6e65675f7074726765745f74785f6e65737465645f61727261795f"
"6c656e5f6e65675f6c656e6765745f74785f6e65737465645f61727261795f6c656e5f746f"
"6f5f6c6f6e676765745f74785f6e65737465645f61727261795f6c656e5f7074725f6f6f62"
"63616368655f6c65646765725f6f626a5f7074725f6f6f6263616368655f6c65646765725f"
"6f626a5f77726f6e675f6c656e555344303030303030303030303030303030303074726163"
"655f6e756d5f6f6f625f7374726765745f63757272656e745f6c65646765725f6f626a5f61"
"727261795f6c656e5f696e76616c69645f736669656c646765745f6c65646765725f6f626a"
"5f61727261795f6c656e5f696e76616c69645f736669656c64616d656e646d656e745f656e"
"61626c65645f746f6f5f6269675f736c696365616d656e646d656e745f656e61626c65645f"
"746f6f5f6c6f6e676765745f74785f6e65737465645f61727261795f6c656e5f746f6f5f62"
"69675f736c6963656765745f63757272656e745f6c65646765725f6f626a5f6e6573746564"
"5f61727261795f6c656e5f746f6f5f6269675f736c6963656765745f6c65646765725f6f62"
"6a5f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c6963657570646174"
"655f646174615f746f6f5f6269675f736c69636574726163655f6f6f625f736c6963657472"
"6163655f616d6f756e745f6f6f625f736c69636563616368655f6c65646765725f6f626a5f"
"77726f6e675f73697a655f75696e743235366765745f6e66745f666c6167735f77726f6e67"
"5f73697a655f75696e743235366765745f6e66745f7472616e736665725f6665655f77726f"
"6e675f73697a655f75696e7432353630303030303030303030303030303030303030303030"
"3030303030303030303174726163655f6163636f756e745f77726f6e675f73697a655f6163"
"636f756e74696474726163655f6f6f625f737472696e6774726163655f6163636f756e745f"
"6f6f625f737472696e6774726163655f616d6f756e745f6f6f625f737472696e6774726163"
"655f746f6f5f6c6f6e6774726163655f6e756d5f746f6f5f6c6f6e6774726163655f616363"
"6f756e745f746f6f5f6c6f6e6774726163655f616d6f756e745f77726f6e675f6c656e6774"
"686765745f706172656e745f6c65646765725f686173686765745f6c65646765725f616363"
"6f756e745f686173686765745f6c65646765725f74785f686173686765745f63757272656e"
"745f6c65646765725f6f626a5f6669656c646765745f6c65646765725f6f626a5f6669656c"
"646765745f74785f6e65737465645f6669656c646765745f63757272656e745f6c65646765"
"725f6f626a5f6e65737465645f6669656c646765745f6c65646765725f6f626a5f6e657374"
"65645f6669656c64636f6d707574655f7368613531325f68616c666765745f6e6674676574"
"5f6e66745f6973737565726765745f6e66745f7461786f6e6765745f6e66745f7365726961"
"6c6765745f706172656e745f6c65646765725f686173685f6e65675f6c656e6765745f7061"
"72656e745f6c65646765725f686173685f6275665f746f6f5f736d616c6c6765745f706172"
"656e745f6c65646765725f686173685f6c656e5f746f6f5f6c6f6e676163636f756e745f6b"
"65796c65745f6c656e5f6f6f626163636f756e745f6b65796c65745f77726f6e675f6c656e"
"6c696e655f6b65796c65745f6c656e5f6f6f625f63757272656e63796c696e655f6b65796c"
"65745f77726f6e675f6c656e5f63757272656e6379616d6d5f6b65796c65745f6c656e5f6f"
"6f625f617373657432616d6d5f6b65796c65745f6c656e5f77726f6e675f6c656e5f617373"
"657432616d6d5f6b65796c65745f6c656e5f77726f6e675f6e6f6e5f7872705f6375727265"
"6e63795f6c656e616d6d5f6b65796c65745f6d70746765745f74785f6669656c645f696e76"
"616c69645f736669656c646765745f63757272656e745f6c65646765725f6f626a5f666965"
"6c645f696e76616c69645f736669656c646765745f6c65646765725f6f626a5f6669656c64"
"5f696e76616c69645f736669656c646765745f74785f6e65737465645f6669656c645f746f"
"6f5f6269675f736c6963656765745f63757272656e745f6c65646765725f6f626a5f6e6573"
"7465645f6669656c645f746f6f5f6269675f736c6963656765745f6c65646765725f6f626a"
"5f6e65737465645f6669656c645f746f6f5f6269675f736c696365636f6d707574655f7368"
"613531325f68616c665f746f6f5f6269675f736c696365616d6d5f6b65796c65745f746f6f"
"5f6269675f736c69636563726564656e7469616c5f6b65796c65745f746f6f5f6269675f73"
"6c6963656d70746f6b656e5f6b65796c65745f746f6f5f6269675f736c6963655f6d707469"
"646765745f6e66745f77726f6e675f73697a655f75696e743235366765745f6e66745f6973"
"737565725f77726f6e675f73697a655f75696e743235366765745f6e66745f7461786f6e5f"
"77726f6e675f73697a655f75696e743235366765745f6e66745f73657269616c5f77726f6e"
"675f73697a655f75696e743235366163636f756e745f6b65796c65745f77726f6e675f7369"
"7a655f6163636f756e746964636865636b5f6b65796c65745f77726f6e675f73697a655f61"
"63636f756e74696463726564656e7469616c5f6b65796c65745f77726f6e675f73697a655f"
"6163636f756e7469643163726564656e7469616c5f6b65796c65745f77726f6e675f73697a"
"655f6163636f756e7469643264656c65676174655f6b65796c65745f77726f6e675f73697a"
"655f6163636f756e7469643164656c65676174655f6b65796c65745f77726f6e675f73697a"
"655f6163636f756e746964326465706f7369745f707265617574685f6b65796c65745f7772"
"6f6e675f73697a655f6163636f756e746964316465706f7369745f707265617574685f6b65"
"796c65745f77726f6e675f73697a655f6163636f756e746964326469645f6b65796c65745f"
"77726f6e675f73697a655f6163636f756e746964657363726f775f6b65796c65745f77726f"
"6e675f73697a655f6163636f756e7469646c696e655f6b65796c65745f77726f6e675f7369"
"7a655f6163636f756e746964316c696e655f6b65796c65745f77726f6e675f73697a655f61"
"63636f756e746964326d70745f69737375616e63655f6b65796c65745f77726f6e675f7369"
"7a655f6163636f756e7469646d70746f6b656e5f6b65796c65745f77726f6e675f73697a65"
"5f6163636f756e7469646e66745f6f666665725f6b65796c65745f77726f6e675f73697a65"
"5f6163636f756e7469646f666665725f6b65796c65745f77726f6e675f73697a655f616363"
"6f756e7469646f7261636c655f6b65796c65745f77726f6e675f73697a655f6163636f756e"
"7469647061796368616e5f6b65796c65745f77726f6e675f73697a655f6163636f756e7469"
"64317061796368616e5f6b65796c65745f77726f6e675f73697a655f6163636f756e746964"
"327065726d697373696f6e65645f646f6d61696e5f6b65796c65745f77726f6e675f73697a"
"655f6163636f756e7469647369676e6572735f6b65796c65745f77726f6e675f73697a655f"
"6163636f756e7469647469636b65745f6b65796c65745f77726f6e675f73697a655f616363"
"6f756e7469647661756c745f6b65796c65745f77726f6e675f73697a655f6163636f756e74"
"69646765745f6e66745f77726f6e675f73697a655f6163636f756e7469646d70746f6b656e"
"5f6b65796c65745f6d707469645f77726f6e675f6c656e677468004d0970726f6475636572"
"7302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374"
"631d312e38352e31202834656231363132353020323032352d30332d31352900490f746172"
"6765745f6665617475726573042b0f6d757461626c652d676c6f62616c732b087369676e2d"
"6578742b0f7265666572656e63652d74797065732b0a6d756c746976616c7565";
"6f73745f6c69620c74726163655f616d6f756e74000008686f73745f6c69620f666c6f6174"
"5f66726f6d5f75696e74000108686f73745f6c69620b6c696e655f6b65796c657400080868"
"6f73745f6c69620a616d6d5f6b65796c6574000308686f73745f6c69621163726564656e74"
"69616c5f6b65796c6574000808686f73745f6c69620e6d70746f6b656e5f6b65796c657400"
"0308686f73745f6c69621274726163655f6f70617175655f666c6f6174000008686f73745f"
"6c69620d666c6f61745f636f6d70617265000008686f73745f6c696209666c6f61745f6164"
"64000408686f73745f6c69620e666c6f61745f7375627472616374000408686f73745f6c69"
"620e666c6f61745f6d756c7469706c79000408686f73745f6c69620c666c6f61745f646976"
"696465000408686f73745f6c69620a666c6f61745f726f6f74000308686f73745f6c696209"
"666c6f61745f706f77000308686f73745f6c696209666c6f61745f6c6f67000108686f7374"
"5f6c69620c636865636b5f6b65796c6574000108686f73745f6c69620f64656c6567617465"
"5f6b65796c6574000308686f73745f6c6962166465706f7369745f707265617574685f6b65"
"796c6574000308686f73745f6c69620a6469645f6b65796c6574000008686f73745f6c6962"
"0d657363726f775f6b65796c6574000108686f73745f6c6962136d70745f69737375616e63"
"655f6b65796c6574000108686f73745f6c6962106e66745f6f666665725f6b65796c657400"
"0108686f73745f6c69620c6f666665725f6b65796c6574000108686f73745f6c69620d6f72"
"61636c655f6b65796c6574000108686f73745f6c69620e7061796368616e5f6b65796c6574"
"000408686f73745f6c69621a7065726d697373696f6e65645f646f6d61696e5f6b65796c65"
"74000108686f73745f6c69620e7369676e6572735f6b65796c6574000008686f73745f6c69"
"620d7469636b65745f6b65796c6574000108686f73745f6c69620c7661756c745f6b65796c"
"657400010303020a0505030100110619037f01418080c0000b7f00419f9ec0000b7f0041a0"
"9ec0000b072e04066d656d6f727902000666696e697368003f0a5f5f646174615f656e6403"
"010b5f5f686561705f6261736503020ab02b02460002402000200147044020022003410041"
"00410010001a20004100480d01418b80c000410b2000ad1001000b200220032000ac10011a"
"0f0b418b80c000410b2000ac1001000be62a02087f027e230041f0016b22002400419680c0"
"00412341004100410010001a100241b9e00041b980c000410e103e100341b2920441c780c0"
"004116103e200041f0006a22054200370300200041e8006a22034200370300200041e0006a"
"2202420037030020004200370358200041d8006a220141201004412041a58cc0004116103e"
"20054200370300200342003703002002420037030020004200370358200141201005412041"
"bb8cc0004117103e2005420037030020034200370300200242003703002000420037035820"
"0141201006412041d28cc0004112103e1007410a41dd80c000410c103e200041186a428182"
"848890a0c08001370300200041106a428182848890a0c08001370300200041086a42818284"
"8890a0c080013703002000428182848890a0c0800137030041e980c000410e1008410141f7"
"80c0004111103e200041201008410141f780c0004111103e20034100360200200242003703"
"002000420037035802404181802020014114100922044114460440200041266a20002d005a"
"3a00002000200029005f3703c8012000200041e4006a2900003700cd01200041306a200029"
"00cd01370000200020002f01583b01242000200028005b360027200020002903c80137002b"
"20054200370300200342003703002002420037030020004200370358200041246a41142001"
"4120100a22054120470d012000413a6a20002d005a3a0000200041d0016a200041e7006a29"
"00002208370300200041d8016a200041ef006a2900002209370300200041c7006a20083700"
"00200041cf006a2009370000200041d7006a200041f7006a2d00003a0000200020002f0158"
"3b01382000200028005b36003b2000200029005f37003f200041386a41204100100b410141"
"8881c0004110103e2003410036020020024200370300200042003703584181802020014114"
"100c411441e48cc000411c103e200341003602002002420037030020004200370358410141"
"81802020014114100d411441808dc0004114103e02402001410020016b41037122036a2202"
"20014d0d0020030440200321050340200141003a0000200141016a2101200541016b22050d"
"000b0b200341016b4107490d000340200141003a0000200141076a41003a0000200141066a"
"41003a0000200141056a41003a0000200141046a41003a0000200141036a41003a00002001"
"41026a41003a0000200141016a41003a0000200141086a22012002470d000b0b200241c400"
"20036b2203417c716a220120024b0440034020024100360200200241046a22022001490d00"
"0b0b024020012003410371220320016a22054f0d002003220204400340200141003a000020"
"0141016a2101200241016b22020d000b0b200341016b4107490d000340200141003a000020"
"0141076a41003a0000200141066a41003a0000200141056a41003a0000200141046a41003a"
"0000200141036a41003a0000200141026a41003a0000200141016a41003a0000200141086a"
"22012005470d000b0b2000418180203602c801410021010340200641c000490440200041d8"
"006a20066a200041c8016a20016a2d00003a0000200020002802980141016a220636029801"
"200141016a22014104470d010b0b200041d8016a22024100360200200041d0016a22044200"
"370300200042003703c801200041d8006a22012006200041c8016a22054114100e41144194"
"8dc0004113103e2002410036020020044200370300200042003703c8012001200028029801"
"20054114100f411441a78dc0004123103e2002410036020020044200370300200042003703"
"c80141012001200028029801200541141010411441ca8dc000411b103e4189803c10114120"
"419881c0004110103e4189803c1012412041a881c0004120103e41014189803c1013412041"
"c881c0004118103e20012000280298011014412041e081c0004117103e2001200028029801"
"1015412041f781c0004127103e4101200120002802980110164120419e82c000411f103e20"
"0041246a220341141017410041bd82c000410b103e200041e0016a22064200370300200242"
"0037030020044200370300200042003703c8012001200028029801200541201018412041e5"
"8dc0004113103e41c882c000410c41d482c000410b41df82c000410e1019410141ed82c000"
"4109103e200041b8016a200041186a290300370300200041b0016a200041106a2903003703"
"00200041a8016a200041086a290300370300200020002903003703a001200241003b010020"
"044200370300200042003703c80120034114200041a0016a2207412020054112101a411241"
"f88dc0004107103e2002410036020020044200370300200042003703c80120074120200541"
"14101b411441ff8dc000410e103e200041003602c8012007412020054104101c4104418d8e"
"c000410d103e20074120101d410841f682c000410d103e20074120101e410a418383c00041"
"14103e200041003602c8012007412020054104101f4104419a8ec000410e103e419783c000"
"410d200341141020412f41a483c000410d103e419783c000410d41b183c000410810214113"
"41b983c000410c103e417f41041004417141c583c000411e103e200041003602c801200541"
"7f1004417141a88ec000411e103e200041ca016a41003a0000200041003b01c80120054103"
"1004417d41c68ec0004124103e200041003602c8012005418094ebdc031004417341ea8ec0"
"004123103e419783c000410d200341141020412f41a483c000410d103e419783c000410d41"
"b183c00041081021411341b983c000410c103e200642003703002002420037030020044200"
"370300200042003703c801200041d894ebdc036a2207410820054120410010224173418d8f"
"c0004117103e200642003703002002420037030020044200370300200042003703c8012001"
"2000280298012005412041001022417141a48fc0004119103e41021011416f41e383c00041"
"1f103e417f20002802980110144171418284c000411f103e2001417f1014417141a184c000"
"411f103e20014181201014417441c084c0004120103e20072000280298011014417341e084"
"c000411f103e20072000280298014101100b417341ff84c0004118103e2001200028029801"
"4101100b4171419785c000411a103e20064200370300200242003703002004420037030020"
"0042003703c801200720002802980120054120100a417341bd8fc0004116103e2006420037"
"03002002420037030020044200370300200042003703c80120012000280298012005412010"
"0a417141d38fc0004118103e20064200370300200242003703002004420037030020004200"
"3703c80120034114200341142007200028029801200541201023417341eb8fc000411c103e"
"200642003703002002420037030020044200370300200042003703c8012003411420034114"
"20012000280298012005412010234171418790c000411e103e200642003703002002420037"
"030020044200370300200042003703c801418b9ec000411420072000280298012005412010"
"24417341a590c0004119103e20064200370300200242003703002004420037030020004200"
"3703c801418b9ec00041142001200028029801200541201024417141be90c000411f103e20"
"0642003703002002420037030020044200370300200042003703c801418b9ec000411441b1"
"85c0004114200541201024417141dd90c0004129103e200642003703002002420037030020"
"044200370300200042003703c80141c585c0004128418b9ec0004114200541201024417141"
"8691c0004125103e200041dc016a200041346a280100360200200041d4016a2000412c6a29"
"0100370200200020002901243702cc01200041808080083602c801200041003b01c0012005"
"4118418b9ec0004114200041c0016a220441021024417141ab91c000410e103e2007200028"
"029801422a1001417341ed85c0004111103e200041003b01c0014102200441021009416f41"
"b991c000411b103e200041003b01c001410220044102100c416f41d491c000412b103e2000"
"41003b01c0014101410220044102100d416f41ff91c0004123103e41021011416f41e383c0"
"00411f103e41021012416f41fe85c000412f103e410141021013416f41ad86c0004127103e"
"41e980c0004181201008417441d486c000411f103e41e980c00041c1001008417441f386c0"
"00411a103e200041003b01c001200141812020044102100e417441a292c0004121103e2000"
"41003b01c001200141812020044102100f417441c392c0004131103e200041003b01c00141"
"012001418120200441021010417441f492c0004129103e200141812010144174418d87c000"
"4125103e20014181201015417441b287c0004135103e410120014181201016417441e787c0"
"00412d103e200141812010174174419488c0004119103e419783c00041812041d482c00041"
"0b41df82c000410e1019417441ed82c0004109103e419783c000410d41d482c00041812041"
"df82c000410e1019417441ed82c0004109103e419783c000410d41d482c000410b41df82c0"
"004181201019417441ed82c0004109103e200041003b01c001200141812020044102101841"
"74419d93c0004121103e200041003b01c001418b9ec000418120418b9ec000411420044102"
"1024417441be93c0004118103e200041003b01c00120034114200341142001418120200441"
"021025417441d693c000411f103e200041003b01c001200541812020034114200441021026"
"417441f593c0004122103e419783c000410d200720002802980141001000417341ad88c000"
"410f103e200042d487b6f4c7d4b1c0003700c001419783c000410d200041c095ebdc036a22"
"0641081027417341bc88c000411c103e419783c000410d20072000280298011021417341d8"
"88c0004116103e20064108200441081028417341ee88c0004118103e200441082006410810"
"284173418689c0004118103e200041003b01ec012006410820044108200041ec016a220241"
"02410010294173419794c0004114103e200041003b01ec0120044108200641082002410241"
"001029417341ab94c0004114103e200041003b01ec01200641082004410820024102410010"
"2a417341bf94c0004119103e200041003b01ec012004410820064108200241024100102a41"
"7341d894c0004119103e200041003b01ec012006410820044108200241024100102b417341"
"f194c0004119103e200041003b01ec012004410820064108200241024100102b4173418a95"
"c0004119103e200041003b01ec012006410820044108200241024100102c417341a395c000"
"4117103e200041003b01ec012004410820064108200241024100102c417341ba95c0004117"
"103e200041003b01ec01200641084103200241024100102d417341d195c0004114103e2000"
"41003b01ec01200641084103200241024100102e417341e595c0004113103e200041003b01"
"ec0120064108200241024100102f417341f895c0004113103e20012000280298014100100b"
"4171419e89c0004123103e200041003b01ec0120034114200120002802980120024102101a"
"4171418b96c000411a103e200041003b01ec01200120002802980120024102101b417141a5"
"96c0004121103e200041003b01ec01200120002802980120024102101c417141c696c00041"
"20103e2001200028029801101d417141c189c0004120103e2001200028029801101e417141"
"e189c0004127103e200041003602ec01200120002802980120024104101f417141e696c000"
"4121103e200041003b01ec01200120002802980120024102100a4171418797c0004123103e"
"200041003b01ec0120012000280298014101200241021030417141aa97c0004121103e2000"
"41003b01ec01200120002802980122062003411420012006200241021025417141cb97c000"
"4127103e200041003b01ec0120034114200120002802980122062001200620024102102541"
"7141f297c0004127103e200041003b01ec0120012000280298012003411420024102103141"
"71419998c0004125103e200041003b01ec0120034114200120002802980120024102103141"
"7141be98c0004125103e200041003b01ec0120012000280298012003411420024102103241"
"7141e398c000412c103e200041003b01ec0120034114200120002802980120024102103241"
"71418f99c000412c103e200041003b01ec012001200028029801200241021033417141bb99"
"c000411f103e200041003b01ec0120012000280298014101200241021034417141da99c000"
"4122103e200041003b01ec0120012000280298012003411441b185c0004114200241021023"
"417141fc99c0004121103e200041003b01ec0120034114200120002802980141b185c00041"
"142002410210234171419d9ac0004121103e200041003b01ec012001200028029801410120"
"0241021035417141be9ac0004128103e200041003b01ec0120054118200120002802980120"
"0241021026417141e69ac0004123103e200041003b01ec0120012000280298014101200241"
"021036417141899bc0004125103e200041003b01ec01200120002802980141012002410210"
"37417141ae9bc0004121103e200041003b01ec012001200028029801410120024102103841"
"7141cf9bc0004122103e200041003b01ec0120012000280298012003411441012002410210"
"39417141f19bc0004124103e200041003b01ec012003411420012000280298014101200241"
"021039417141959cc0004124103e200041003b01ec01200120002802980141012002410210"
"3a417141b99cc000412f103e200041003b01ec01200120002802980120024102103b417141"
"e89cc0004123103e200041003b01ec012001200028029801410120024102103c4171418b9d"
"c0004122103e200041003b01ec012001200028029801410120024102103d417141ad9dc000"
"4121103e200041003b01ec01200120002802980141888ac000412020024102101a417141ce"
"9dc000411c103e419783c000410d20012000280298011020417141a88ac0004122103e4197"
"97abdd03410d41888ac000412041001000417341ca8ac0004110103e419797abdd03410d20"
"0441081027417341da8ac000411d103e419797abdd03410d200341141020417341f78ac000"
"4118103e419797abdd03410d41b183c000410810214173418f8bc0004117103e2001200028"
"029801200141812041001000417441a68bc000410e103e200141812042011001417441b48b"
"c0004112103e419783c000418120200441081027417441c68bc000411b103e419783c00041"
"8120200341141020417441e18bc0004116103e419783c00041812041b183c0004108102141"
"7441f78bc0004115103e419783c000410d200120002802980110214171418c8cc000411910"
"3e200041003b01ec01200120002802980120034114200241021026417141ea9dc000412110"
"3e200041f0016a240041010f0b418080c000410b417f20042004417f4e1bac1001000b4180"
"80c000410b417f20052005417f4e1bac1001000b0bf61d0200418080c0000bc5056572726f"
"725f636f64653d54455354204641494c45442424242424205354415254494e47205741534d"
"20455845435554494f4e2024242424246765745f6c65646765725f73716e6765745f706172"
"656e745f6c65646765725f74696d656765745f626173655f666565746573745f616d656e64"
"6d656e74616d656e646d656e745f656e61626c656463616368655f6c65646765725f6f626a"
"6765745f74785f61727261795f6c656e6765745f63757272656e745f6c65646765725f6f62"
"6a5f61727261795f6c656e6765745f6c65646765725f6f626a5f61727261795f6c656e6765"
"745f74785f6e65737465645f61727261795f6c656e6765745f63757272656e745f6c656467"
"65725f6f626a5f6e65737465645f61727261795f6c656e6765745f6c65646765725f6f626a"
"5f6e65737465645f61727261795f6c656e7570646174655f6461746174657374206d657373"
"61676574657374207075626b657974657374207369676e6174757265636865636b5f736967"
"6765745f6e66745f666c6167736765745f6e66745f7472616e736665725f66656574657374"
"696e6720747261636574726163655f6163636f756e74400000000000005f74726163655f61"
"6d6f756e746765745f706172656e745f6c65646765725f686173685f6e65675f7074726765"
"745f74785f61727261795f6c656e5f696e76616c69645f736669656c646765745f74785f6e"
"65737465645f61727261795f6c656e5f6e65675f7074726765745f74785f6e65737465645f"
"61727261795f6c656e5f6e65675f6c656e6765745f74785f6e65737465645f61727261795f"
"6c656e5f746f6f5f6c6f6e676765745f74785f6e65737465645f61727261795f6c656e5f70"
"74725f6f6f6263616368655f6c65646765725f6f626a5f7074725f6f6f6263616368655f6c"
"65646765725f6f626a5f77726f6e675f6c656e555344303030303030303030303030303030"
"30300041ed85c0000b9e1874726163655f6e756d5f6f6f625f7374726765745f6375727265"
"6e745f6c65646765725f6f626a5f61727261795f6c656e5f696e76616c69645f736669656c"
"646765745f6c65646765725f6f626a5f61727261795f6c656e5f696e76616c69645f736669"
"656c64616d656e646d656e745f656e61626c65645f746f6f5f6269675f736c696365616d65"
"6e646d656e745f656e61626c65645f746f6f5f6c6f6e676765745f74785f6e65737465645f"
"61727261795f6c656e5f746f6f5f6269675f736c6963656765745f63757272656e745f6c65"
"646765725f6f626a5f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c69"
"63656765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e5f746f6f"
"5f6269675f736c6963657570646174655f646174615f746f6f5f6269675f736c6963657472"
"6163655f6f6f625f736c69636574726163655f6f70617175655f666c6f61745f6f6f625f73"
"6c69636574726163655f616d6f756e745f6f6f625f736c696365666c6f61745f636f6d7061"
"72655f6f6f625f736c69636531666c6f61745f636f6d706172655f6f6f625f736c69636532"
"63616368655f6c65646765725f6f626a5f77726f6e675f73697a655f75696e743235366765"
"745f6e66745f666c6167735f77726f6e675f73697a655f75696e743235366765745f6e6674"
"5f7472616e736665725f6665655f77726f6e675f73697a655f75696e743235363030303030"
"30303030303030303030303030303030303030303030303030303174726163655f6163636f"
"756e745f77726f6e675f73697a655f6163636f756e74696474726163655f6f6f625f737472"
"696e6774726163655f6f70617175655f666c6f61745f6f6f625f737472696e677472616365"
"5f6163636f756e745f6f6f625f737472696e6774726163655f616d6f756e745f6f6f625f73"
"7472696e6774726163655f746f6f5f6c6f6e6774726163655f6e756d5f746f6f5f6c6f6e67"
"74726163655f6f70617175655f666c6f61745f746f6f5f6c6f6e6774726163655f6163636f"
"756e745f746f6f5f6c6f6e6774726163655f616d6f756e745f746f6f5f6c6f6e6774726163"
"655f616d6f756e745f77726f6e675f6c656e6774686765745f706172656e745f6c65646765"
"725f686173686765745f6c65646765725f6163636f756e745f686173686765745f6c656467"
"65725f74785f686173686765745f63757272656e745f6c65646765725f6f626a5f6669656c"
"646765745f6c65646765725f6f626a5f6669656c646765745f74785f6e65737465645f6669"
"656c646765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c"
"646765745f6c65646765725f6f626a5f6e65737465645f6669656c64636f6d707574655f73"
"68613531325f68616c666765745f6e66746765745f6e66745f6973737565726765745f6e66"
"745f7461786f6e6765745f6e66745f73657269616c6765745f706172656e745f6c65646765"
"725f686173685f6e65675f6c656e6765745f706172656e745f6c65646765725f686173685f"
"6275665f746f6f5f736d616c6c6765745f706172656e745f6c65646765725f686173685f6c"
"656e5f746f6f5f6c6f6e67666c6f61745f66726f6d5f75696e745f6c656e5f6f6f62666c6f"
"61745f66726f6d5f75696e745f77726f6e675f6c656e6163636f756e745f6b65796c65745f"
"6c656e5f6f6f626163636f756e745f6b65796c65745f77726f6e675f6c656e6c696e655f6b"
"65796c65745f6c656e5f6f6f625f63757272656e63796c696e655f6b65796c65745f77726f"
"6e675f6c656e5f63757272656e6379616d6d5f6b65796c65745f6c656e5f6f6f625f617373"
"657432616d6d5f6b65796c65745f6c656e5f77726f6e675f6c656e5f617373657432616d6d"
"5f6b65796c65745f6c656e5f77726f6e675f6e6f6e5f7872705f63757272656e63795f6c65"
"6e616d6d5f6b65796c65745f6c656e5f77726f6e675f7872705f63757272656e63795f6c65"
"6e616d6d5f6b65796c65745f6d70746765745f74785f6669656c645f696e76616c69645f73"
"6669656c646765745f63757272656e745f6c65646765725f6f626a5f6669656c645f696e76"
"616c69645f736669656c646765745f6c65646765725f6f626a5f6669656c645f696e76616c"
"69645f736669656c646765745f74785f6e65737465645f6669656c645f746f6f5f6269675f"
"736c6963656765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f6669"
"656c645f746f6f5f6269675f736c6963656765745f6c65646765725f6f626a5f6e65737465"
"645f6669656c645f746f6f5f6269675f736c696365636f6d707574655f7368613531325f68"
"616c665f746f6f5f6269675f736c696365616d6d5f6b65796c65745f746f6f5f6269675f73"
"6c69636563726564656e7469616c5f6b65796c65745f746f6f5f6269675f736c6963656d70"
"746f6b656e5f6b65796c65745f746f6f5f6269675f736c6963655f6d70746964666c6f6174"
"5f6164645f6f6f625f736c69636531666c6f61745f6164645f6f6f625f736c69636532666c"
"6f61745f73756274726163745f6f6f625f736c69636531666c6f61745f7375627472616374"
"5f6f6f625f736c69636532666c6f61745f6d756c7469706c795f6f6f625f736c6963653166"
"6c6f61745f6d756c7469706c795f6f6f625f736c69636532666c6f61745f6469766964655f"
"6f6f625f736c69636531666c6f61745f6469766964655f6f6f625f736c69636532666c6f61"
"745f726f6f745f6f6f625f736c696365666c6f61745f706f775f6f6f625f736c696365666c"
"6f61745f6c6f675f6f6f625f736c6963656765745f6e66745f77726f6e675f73697a655f75"
"696e743235366765745f6e66745f6973737565725f77726f6e675f73697a655f75696e7432"
"35366765745f6e66745f7461786f6e5f77726f6e675f73697a655f75696e74323536676574"
"5f6e66745f73657269616c5f77726f6e675f73697a655f75696e743235366163636f756e74"
"5f6b65796c65745f77726f6e675f73697a655f6163636f756e746964636865636b5f6b6579"
"6c65745f77726f6e675f73697a655f6163636f756e74696463726564656e7469616c5f6b65"
"796c65745f77726f6e675f73697a655f6163636f756e7469643163726564656e7469616c5f"
"6b65796c65745f77726f6e675f73697a655f6163636f756e7469643264656c65676174655f"
"6b65796c65745f77726f6e675f73697a655f6163636f756e7469643164656c65676174655f"
"6b65796c65745f77726f6e675f73697a655f6163636f756e746964326465706f7369745f70"
"7265617574685f6b65796c65745f77726f6e675f73697a655f6163636f756e746964316465"
"706f7369745f707265617574685f6b65796c65745f77726f6e675f73697a655f6163636f75"
"6e746964326469645f6b65796c65745f77726f6e675f73697a655f6163636f756e74696465"
"7363726f775f6b65796c65745f77726f6e675f73697a655f6163636f756e7469646c696e65"
"5f6b65796c65745f77726f6e675f73697a655f6163636f756e746964316c696e655f6b6579"
"6c65745f77726f6e675f73697a655f6163636f756e746964326d70745f69737375616e6365"
"5f6b65796c65745f77726f6e675f73697a655f6163636f756e7469646d70746f6b656e5f6b"
"65796c65745f77726f6e675f73697a655f6163636f756e7469646e66745f6f666665725f6b"
"65796c65745f77726f6e675f73697a655f6163636f756e7469646f666665725f6b65796c65"
"745f77726f6e675f73697a655f6163636f756e7469646f7261636c655f6b65796c65745f77"
"726f6e675f73697a655f6163636f756e7469647061796368616e5f6b65796c65745f77726f"
"6e675f73697a655f6163636f756e746964317061796368616e5f6b65796c65745f77726f6e"
"675f73697a655f6163636f756e746964327065726d697373696f6e65645f646f6d61696e5f"
"6b65796c65745f77726f6e675f73697a655f6163636f756e7469647369676e6572735f6b65"
"796c65745f77726f6e675f73697a655f6163636f756e7469647469636b65745f6b65796c65"
"745f77726f6e675f73697a655f6163636f756e7469647661756c745f6b65796c65745f7772"
"6f6e675f73697a655f6163636f756e7469646765745f6e66745f77726f6e675f73697a655f"
"6163636f756e7469646d70746f6b656e5f6b65796c65745f6d707469645f77726f6e675f6c"
"656e677468004d0970726f64756365727302086c616e6775616765010452757374000c7072"
"6f6365737365642d6279010572757374631d312e38352e3120283465623136313235302032"
"3032352d30332d31352900490f7461726765745f6665617475726573042b0f6d757461626c"
"652d676c6f62616c732b087369676e2d6578742b0f7265666572656e63652d74797065732b"
"0a6d756c746976616c7565";
extern std::string const floatTestsWasmHex =
"0061736d0100000001430860057f7f7f7f7f017f60047e7f7f7f017f60047f7f7f7f017f60"

View File

@@ -1647,12 +1647,12 @@ floatFromInt_wrap(
int i = 0;
auto const x = getDataInt64(runtime, params, i);
if (!x)
return hfResult(results, x.error());
return hfResult(results, x.error()); // LCOV_EXCL_LINE
i = 3;
auto const rounding = getDataInt32(runtime, params, i);
if (!rounding)
return hfResult(results, rounding.error());
return hfResult(results, rounding.error()); // LCOV_EXCL_LINE
i = 1;
return returnResult(
@@ -1676,7 +1676,7 @@ floatFromUint_wrap(
i = 4;
auto const rounding = getDataInt32(runtime, params, i);
if (!rounding)
return hfResult(results, rounding.error());
return hfResult(results, rounding.error()); // LCOV_EXCL_LINE
i = 2;
return returnResult(
@@ -1692,16 +1692,16 @@ floatSet_wrap(void* env, wasm_val_vec_t const* params, wasm_val_vec_t* results)
int i = 0;
auto const exp = getDataInt32(runtime, params, i);
if (!exp)
return hfResult(results, exp.error());
return hfResult(results, exp.error()); // LCOV_EXCL_LINE
auto const mant = getDataInt64(runtime, params, i);
if (!mant)
return hfResult(results, mant.error());
return hfResult(results, mant.error()); // LCOV_EXCL_LINE
i = 4;
auto const rounding = getDataInt32(runtime, params, i);
if (!rounding)
return hfResult(results, rounding.error());
return hfResult(results, rounding.error()); // LCOV_EXCL_LINE
i = 2;
return returnResult(
@@ -1747,7 +1747,7 @@ floatAdd_wrap(void* env, wasm_val_vec_t const* params, wasm_val_vec_t* results)
i = 6;
auto const rounding = getDataInt32(runtime, params, i);
if (!rounding)
return hfResult(results, rounding.error());
return hfResult(results, rounding.error()); // LCOV_EXCL_LINE
i = 4;
return returnResult(
@@ -1775,7 +1775,7 @@ floatSubtract_wrap(
i = 6;
auto const rounding = getDataInt32(runtime, params, i);
if (!rounding)
return hfResult(results, rounding.error());
return hfResult(results, rounding.error()); // LCOV_EXCL_LINE
i = 4;
return returnResult(
@@ -1803,7 +1803,7 @@ floatMultiply_wrap(
i = 6;
auto const rounding = getDataInt32(runtime, params, i);
if (!rounding)
return hfResult(results, rounding.error());
return hfResult(results, rounding.error()); // LCOV_EXCL_LINE
i = 4;
return returnResult(
@@ -1831,7 +1831,7 @@ floatDivide_wrap(
i = 6;
auto const rounding = getDataInt32(runtime, params, i);
if (!rounding)
return hfResult(results, rounding.error());
return hfResult(results, rounding.error()); // LCOV_EXCL_LINE
i = 4;
return returnResult(
@@ -1851,12 +1851,12 @@ floatRoot_wrap(void* env, wasm_val_vec_t const* params, wasm_val_vec_t* results)
auto const n = getDataInt32(runtime, params, i);
if (!n)
return hfResult(results, n.error());
return hfResult(results, n.error()); // LCOV_EXCL_LINE
i = 5;
auto const rounding = getDataInt32(runtime, params, i);
if (!rounding)
return hfResult(results, rounding.error());
return hfResult(results, rounding.error()); // LCOV_EXCL_LINE
i = 3;
return returnResult(
@@ -1879,12 +1879,12 @@ floatPower_wrap(
auto const n = getDataInt32(runtime, params, i);
if (!n)
return hfResult(results, n.error());
return hfResult(results, n.error()); // LCOV_EXCL_LINE
i = 5;
auto const rounding = getDataInt32(runtime, params, i);
if (!rounding)
return hfResult(results, rounding.error());
return hfResult(results, rounding.error()); // LCOV_EXCL_LINE
i = 3;
return returnResult(
@@ -1905,7 +1905,7 @@ floatLog_wrap(void* env, wasm_val_vec_t const* params, wasm_val_vec_t* results)
i = 4;
auto const rounding = getDataInt32(runtime, params, i);
if (!rounding)
return hfResult(results, rounding.error());
return hfResult(results, rounding.error()); // LCOV_EXCL_LINE
i = 2;
return returnResult(