diff --git a/hook/reward.c b/hook/reward.c index 0f612a928..4bb93dadd 100644 --- a/hook/reward.c +++ b/hook/reward.c @@ -1,7 +1,6 @@ #include "hookapi.h" -//#define REWARD_DELAY 2600000LL -#define REWARD_DELAY 5LL -#define REWARD_MULTIPLIER_XFL 6038156834009797973ULL +#define DEFAULT_REWARD_DELAY 6199553087261802496ULL +#define DEFAULT_REWARD_RATE 6038156834009797973ULL //0.00333333333f #define L1SEATS 20U @@ -117,6 +116,25 @@ int64_t hook(uint32_t r) if (BUFFER_EQUAL_20(hook_acc, otxn_acc)) accept(SBUF("Reward: Passing outgoing txn"), __LINE__); + // the default rate and delay are used if somehow the keys are missing from hook state (graceful failure) + int64_t xfl_rr = DEFAULT_REWARD_RATE; + int64_t xfl_rd = DEFAULT_REWARD_DELAY; + + // load state if it exists (which it should) + state(&xfl_rr, 8, "RR", 2); + state(&xfl_rd, 8, "RD", 2); + + // if either of these is 0 that's disabled + if (xfl_rr <= 0 || xfl_rd <= 0 ) + rollback(SBUF("Reward: Rewards are disabled by governance."), __LINE__); + + int64_t required_delay = float_int(xfl_rd, 0, 0); + + if (required_delay < 0 || float_sign(xfl_rr) != 0 || + float_compare(xfl_rr, float_one(), COMPARE_GREATER) || + float_compare(xfl_rd, float_one(), COMPARE_GREATER)) + rollback(SBUF("Reward: Rewards incorrectly configured by governance or unrecoverable error."), __LINE__); + // get the account root keylet uint8_t kl[34]; util_keylet(SBUF(kl), KEYLET_ACCOUNT, SBUF(otxn_acc), 0,0,0,0); @@ -137,10 +155,12 @@ int64_t hook(uint32_t r) int64_t time = slot(0,0,6); int64_t time_elapsed = ledger_last_time() - time; - if (time_elapsed < REWARD_DELAY) + + + if (time_elapsed < required_delay) { //2 600 000 - time_elapsed = REWARD_DELAY - time_elapsed; + time_elapsed = required_delay - time_elapsed; msg_buf[14] += (time_elapsed / 1000000) % 10; msg_buf[15] += (time_elapsed / 100000) % 10; msg_buf[16] += (time_elapsed / 10000) % 10; @@ -191,20 +211,6 @@ int64_t hook(uint32_t r) if (DEBUG) TRACEVAR(accumulator); - // reward hook shares the same namespace as governance hook, so we can request the RR key directly - uint8_t key[2] = {'R', 'R'}; - - // mr = monthly reward rate - int64_t xfl_mr = - state(0,0, SBUF(key)); - - if (xfl_mr <= 0 || // invalid xfl - float_compare(xfl_mr, 0, COMPARE_LESS) || // negative xfl - float_compare(xfl_mr, float_one(), COMPARE_GREATER)) // greater than 100% - xfl_mr = REWARD_MULTIPLIER_XFL; - { - ASSERT(xfl_mr > 0); - } int64_t xfl_accum = float_set(0, accumulator); ASSERT(xfl_accum > 0); @@ -213,7 +219,7 @@ int64_t hook(uint32_t r) ASSERT(xfl_elapsed > 0); int64_t xfl_reward = float_divide(xfl_accum, xfl_elapsed); - xfl_reward = float_multiply(xfl_mr, xfl_reward); + xfl_reward = float_multiply(xfl_rr, xfl_reward); if (DEBUG) TRACEVAR(xfl_reward); diff --git a/src/ripple/app/hook/xahau.h b/src/ripple/app/hook/xahau.h index 09c6592da..4182647ae 100644 --- a/src/ripple/app/hook/xahau.h +++ b/src/ripple/app/hook/xahau.h @@ -864,285 +864,313 @@ static const std::vector GovernanceHook = static const std::vector RewardHook = { - 0x00U,0x61U,0x73U,0x6DU,0x01U,0x00U,0x00U,0x00U,0x01U,0x5CU, - 0x0DU,0x60U,0x01U,0x7FU,0x01U,0x7EU,0x60U,0x02U,0x7FU,0x7FU, + 0x00U,0x61U,0x73U,0x6DU,0x01U,0x00U,0x00U,0x00U,0x01U,0x61U, + 0x0EU,0x60U,0x01U,0x7FU,0x01U,0x7EU,0x60U,0x02U,0x7FU,0x7FU, 0x01U,0x7FU,0x60U,0x00U,0x01U,0x7EU,0x60U,0x03U,0x7FU,0x7FU, 0x7EU,0x01U,0x7EU,0x60U,0x03U,0x7FU,0x7FU,0x7FU,0x01U,0x7EU, - 0x60U,0x02U,0x7FU,0x7FU,0x01U,0x7EU,0x60U,0x09U,0x7FU,0x7FU, - 0x7FU,0x7FU,0x7FU,0x7FU,0x7FU,0x7FU,0x7FU,0x01U,0x7EU,0x60U, - 0x04U,0x7FU,0x7FU,0x7FU,0x7FU,0x01U,0x7EU,0x60U,0x03U,0x7EU, - 0x7EU,0x7FU,0x01U,0x7EU,0x60U,0x02U,0x7FU,0x7EU,0x01U,0x7EU, - 0x60U,0x02U,0x7EU,0x7EU,0x01U,0x7EU,0x60U,0x03U,0x7EU,0x7FU, - 0x7FU,0x01U,0x7EU,0x60U,0x05U,0x7FU,0x7FU,0x7FU,0x7FU,0x7FU, - 0x01U,0x7EU,0x02U,0xCDU,0x03U,0x1CU,0x03U,0x65U,0x6EU,0x76U, - 0x0CU,0x65U,0x74U,0x78U,0x6EU,0x5FU,0x72U,0x65U,0x73U,0x65U, - 0x72U,0x76U,0x65U,0x00U,0x00U,0x03U,0x65U,0x6EU,0x76U,0x02U, - 0x5FU,0x67U,0x00U,0x01U,0x03U,0x65U,0x6EU,0x76U,0x09U,0x6FU, - 0x74U,0x78U,0x6EU,0x5FU,0x74U,0x79U,0x70U,0x65U,0x00U,0x02U, - 0x03U,0x65U,0x6EU,0x76U,0x06U,0x61U,0x63U,0x63U,0x65U,0x70U, - 0x74U,0x00U,0x03U,0x03U,0x65U,0x6EU,0x76U,0x0AU,0x6FU,0x74U, - 0x78U,0x6EU,0x5FU,0x66U,0x69U,0x65U,0x6CU,0x64U,0x00U,0x04U, - 0x03U,0x65U,0x6EU,0x76U,0x0CU,0x68U,0x6FU,0x6FU,0x6BU,0x5FU, - 0x61U,0x63U,0x63U,0x6FU,0x75U,0x6EU,0x74U,0x00U,0x05U,0x03U, - 0x65U,0x6EU,0x76U,0x0BU,0x75U,0x74U,0x69U,0x6CU,0x5FU,0x6BU, - 0x65U,0x79U,0x6CU,0x65U,0x74U,0x00U,0x06U,0x03U,0x65U,0x6EU, - 0x76U,0x08U,0x73U,0x6CU,0x6FU,0x74U,0x5FU,0x73U,0x65U,0x74U, - 0x00U,0x04U,0x03U,0x65U,0x6EU,0x76U,0x0DU,0x73U,0x6CU,0x6FU, - 0x74U,0x5FU,0x73U,0x75U,0x62U,0x66U,0x69U,0x65U,0x6CU,0x64U, - 0x00U,0x04U,0x03U,0x65U,0x6EU,0x76U,0x04U,0x73U,0x6CU,0x6FU, - 0x74U,0x00U,0x04U,0x03U,0x65U,0x6EU,0x76U,0x10U,0x6CU,0x65U, - 0x64U,0x67U,0x65U,0x72U,0x5FU,0x6CU,0x61U,0x73U,0x74U,0x5FU, - 0x74U,0x69U,0x6DU,0x65U,0x00U,0x02U,0x03U,0x65U,0x6EU,0x76U, + 0x60U,0x02U,0x7FU,0x7FU,0x01U,0x7EU,0x60U,0x04U,0x7FU,0x7FU, + 0x7FU,0x7FU,0x01U,0x7EU,0x60U,0x03U,0x7EU,0x7FU,0x7FU,0x01U, + 0x7EU,0x60U,0x01U,0x7EU,0x01U,0x7EU,0x60U,0x03U,0x7EU,0x7EU, + 0x7FU,0x01U,0x7EU,0x60U,0x09U,0x7FU,0x7FU,0x7FU,0x7FU,0x7FU, + 0x7FU,0x7FU,0x7FU,0x7FU,0x01U,0x7EU,0x60U,0x02U,0x7FU,0x7EU, + 0x01U,0x7EU,0x60U,0x02U,0x7EU,0x7EU,0x01U,0x7EU,0x60U,0x05U, + 0x7FU,0x7FU,0x7FU,0x7FU,0x7FU,0x01U,0x7EU,0x02U,0xDEU,0x03U, + 0x1DU,0x03U,0x65U,0x6EU,0x76U,0x0CU,0x65U,0x74U,0x78U,0x6EU, + 0x5FU,0x72U,0x65U,0x73U,0x65U,0x72U,0x76U,0x65U,0x00U,0x00U, + 0x03U,0x65U,0x6EU,0x76U,0x02U,0x5FU,0x67U,0x00U,0x01U,0x03U, + 0x65U,0x6EU,0x76U,0x09U,0x6FU,0x74U,0x78U,0x6EU,0x5FU,0x74U, + 0x79U,0x70U,0x65U,0x00U,0x02U,0x03U,0x65U,0x6EU,0x76U,0x06U, + 0x61U,0x63U,0x63U,0x65U,0x70U,0x74U,0x00U,0x03U,0x03U,0x65U, + 0x6EU,0x76U,0x0AU,0x6FU,0x74U,0x78U,0x6EU,0x5FU,0x66U,0x69U, + 0x65U,0x6CU,0x64U,0x00U,0x04U,0x03U,0x65U,0x6EU,0x76U,0x0CU, + 0x68U,0x6FU,0x6FU,0x6BU,0x5FU,0x61U,0x63U,0x63U,0x6FU,0x75U, + 0x6EU,0x74U,0x00U,0x05U,0x03U,0x65U,0x6EU,0x76U,0x05U,0x73U, + 0x74U,0x61U,0x74U,0x65U,0x00U,0x06U,0x03U,0x65U,0x6EU,0x76U, 0x08U,0x72U,0x6FU,0x6CU,0x6CU,0x62U,0x61U,0x63U,0x6BU,0x00U, - 0x03U,0x03U,0x65U,0x6EU,0x76U,0x09U,0x74U,0x72U,0x61U,0x63U, - 0x65U,0x5FU,0x6EU,0x75U,0x6DU,0x00U,0x03U,0x03U,0x65U,0x6EU, - 0x76U,0x0AU,0x6CU,0x65U,0x64U,0x67U,0x65U,0x72U,0x5FU,0x73U, - 0x65U,0x71U,0x00U,0x02U,0x03U,0x65U,0x6EU,0x76U,0x05U,0x73U, - 0x74U,0x61U,0x74U,0x65U,0x00U,0x07U,0x03U,0x65U,0x6EU,0x76U, - 0x0DU,0x66U,0x6CU,0x6FU,0x61U,0x74U,0x5FU,0x63U,0x6FU,0x6DU, - 0x70U,0x61U,0x72U,0x65U,0x00U,0x08U,0x03U,0x65U,0x6EU,0x76U, - 0x09U,0x66U,0x6CU,0x6FU,0x61U,0x74U,0x5FU,0x6FU,0x6EU,0x65U, - 0x00U,0x02U,0x03U,0x65U,0x6EU,0x76U,0x09U,0x66U,0x6CU,0x6FU, - 0x61U,0x74U,0x5FU,0x73U,0x65U,0x74U,0x00U,0x09U,0x03U,0x65U, - 0x6EU,0x76U,0x0CU,0x66U,0x6CU,0x6FU,0x61U,0x74U,0x5FU,0x64U, - 0x69U,0x76U,0x69U,0x64U,0x65U,0x00U,0x0AU,0x03U,0x65U,0x6EU, - 0x76U,0x0EU,0x66U,0x6CU,0x6FU,0x61U,0x74U,0x5FU,0x6DU,0x75U, - 0x6CU,0x74U,0x69U,0x70U,0x6CU,0x79U,0x00U,0x0AU,0x03U,0x65U, - 0x6EU,0x76U,0x09U,0x66U,0x6CU,0x6FU,0x61U,0x74U,0x5FU,0x69U, - 0x6EU,0x74U,0x00U,0x0BU,0x03U,0x65U,0x6EU,0x76U,0x09U,0x6FU, - 0x74U,0x78U,0x6EU,0x5FU,0x73U,0x6CU,0x6FU,0x74U,0x00U,0x00U, - 0x03U,0x65U,0x6EU,0x76U,0x0AU,0x73U,0x6CU,0x6FU,0x74U,0x5FU, - 0x66U,0x6CU,0x6FU,0x61U,0x74U,0x00U,0x00U,0x03U,0x65U,0x6EU, - 0x76U,0x0AU,0x73U,0x6CU,0x6FU,0x74U,0x5FU,0x63U,0x6FU,0x75U, - 0x6EU,0x74U,0x00U,0x00U,0x03U,0x65U,0x6EU,0x76U,0x05U,0x74U, - 0x72U,0x61U,0x63U,0x65U,0x00U,0x0CU,0x03U,0x65U,0x6EU,0x76U, - 0x0CU,0x65U,0x74U,0x78U,0x6EU,0x5FU,0x64U,0x65U,0x74U,0x61U, - 0x69U,0x6CU,0x73U,0x00U,0x05U,0x03U,0x65U,0x6EU,0x76U,0x0DU, - 0x65U,0x74U,0x78U,0x6EU,0x5FU,0x66U,0x65U,0x65U,0x5FU,0x62U, - 0x61U,0x73U,0x65U,0x00U,0x05U,0x03U,0x65U,0x6EU,0x76U,0x04U, - 0x65U,0x6DU,0x69U,0x74U,0x00U,0x07U,0x03U,0x02U,0x01U,0x00U, - 0x05U,0x03U,0x01U,0x00U,0x02U,0x06U,0x08U,0x01U,0x7FU,0x01U, - 0x41U,0xA0U,0x92U,0x04U,0x0BU,0x07U,0x08U,0x01U,0x04U,0x68U, - 0x6FU,0x6FU,0x6BU,0x00U,0x1CU,0x0AU,0xD0U,0x8DU,0x00U,0x01U, - 0xCCU,0x8DU,0x00U,0x02U,0x02U,0x7FU,0x06U,0x7EU,0x23U,0x00U, - 0x41U,0xE0U,0x3EU,0x6BU,0x22U,0x00U,0x24U,0x00U,0x41U,0x01U, - 0x10U,0x00U,0x1AU,0x41U,0x01U,0x41U,0x01U,0x10U,0x01U,0x1AU, - 0x10U,0x02U,0x42U,0xE2U,0x00U,0x52U,0x04U,0x40U,0x41U,0x9EU, - 0x10U,0x41U,0x1EU,0x42U,0xEAU,0x00U,0x10U,0x03U,0x1AU,0x0BU, - 0x20U,0x00U,0x41U,0xC0U,0x3EU,0x6AU,0x41U,0x14U,0x41U,0x81U, - 0x80U,0x20U,0x10U,0x04U,0x1AU,0x20U,0x00U,0x41U,0xA0U,0x3EU, - 0x6AU,0x41U,0x14U,0x10U,0x05U,0x1AU,0x20U,0x00U,0x29U,0x03U, - 0xA0U,0x3EU,0x20U,0x00U,0x29U,0x03U,0xC0U,0x3EU,0x51U,0x04U, - 0x40U,0x02U,0x40U,0x20U,0x00U,0x28U,0x02U,0xB0U,0x3EU,0x20U, - 0x00U,0x28U,0x02U,0xD0U,0x3EU,0x47U,0x20U,0x00U,0x29U,0x03U, - 0xA8U,0x3EU,0x20U,0x00U,0x29U,0x03U,0xC8U,0x3EU,0x52U,0x72U, - 0x0DU,0x00U,0x41U,0xBCU,0x10U,0x41U,0x1DU,0x42U,0xF6U,0x00U, - 0x10U,0x03U,0x1AU,0x0BU,0x0BU,0x20U,0x00U,0x41U,0xF0U,0x3DU, - 0x6AU,0x22U,0x02U,0x41U,0x22U,0x41U,0x03U,0x20U,0x00U,0x41U, - 0xC0U,0x3EU,0x6AU,0x41U,0x14U,0x41U,0x00U,0x41U,0x00U,0x41U, - 0x00U,0x41U,0x00U,0x10U,0x06U,0x1AU,0x20U,0x02U,0x41U,0x22U, - 0x41U,0x01U,0x10U,0x07U,0x1AU,0x41U,0x01U,0x41U,0xE4U,0x80U, - 0x0CU,0x41U,0x02U,0x10U,0x08U,0x42U,0x02U,0x52U,0x04U,0x40U, - 0x41U,0xD9U,0x10U,0x41U,0x21U,0x42U,0x81U,0x01U,0x10U,0x03U, - 0x1AU,0x0BU,0x41U,0x01U,0x41U,0xE3U,0x80U,0x08U,0x41U,0x03U, - 0x10U,0x08U,0x1AU,0x41U,0x01U,0x41U,0xE4U,0x80U,0x08U,0x41U, - 0x04U,0x10U,0x08U,0x1AU,0x41U,0x01U,0x41U,0x82U,0x80U,0x18U, - 0x41U,0x05U,0x10U,0x08U,0x1AU,0x41U,0x01U,0x41U,0xE2U,0x80U, - 0x08U,0x41U,0x06U,0x10U,0x08U,0x1AU,0x41U,0x00U,0x41U,0x00U, - 0x41U,0x06U,0x10U,0x09U,0x21U,0x03U,0x10U,0x0AU,0x20U,0x03U, - 0x7DU,0x22U,0x03U,0x42U,0x04U,0x57U,0x04U,0x40U,0x41U,0x8EU, - 0x10U,0x41U,0x8EU,0x10U,0x2DU,0x00U,0x00U,0x42U,0x05U,0x20U, - 0x03U,0x7DU,0x22U,0x03U,0x42U,0xC0U,0x84U,0x3DU,0x7FU,0x42U, - 0x0AU,0x81U,0xA7U,0x6AU,0x3AU,0x00U,0x00U,0x41U,0x8FU,0x10U, - 0x41U,0x8FU,0x10U,0x2DU,0x00U,0x00U,0x20U,0x03U,0x42U,0xA0U, - 0x8DU,0x06U,0x7FU,0x42U,0x0AU,0x81U,0xA7U,0x6AU,0x3AU,0x00U, - 0x00U,0x41U,0x90U,0x10U,0x41U,0x90U,0x10U,0x2DU,0x00U,0x00U, - 0x20U,0x03U,0x42U,0x90U,0xCEU,0x00U,0x7FU,0x42U,0x0AU,0x81U, - 0xA7U,0x6AU,0x3AU,0x00U,0x00U,0x41U,0x91U,0x10U,0x41U,0x91U, - 0x10U,0x2DU,0x00U,0x00U,0x20U,0x03U,0x42U,0xE8U,0x07U,0x7FU, - 0x42U,0x0AU,0x81U,0xA7U,0x6AU,0x3AU,0x00U,0x00U,0x41U,0x92U, - 0x10U,0x41U,0x92U,0x10U,0x2DU,0x00U,0x00U,0x20U,0x03U,0x42U, - 0xE4U,0x00U,0x7FU,0x42U,0x0AU,0x81U,0xA7U,0x6AU,0x3AU,0x00U, - 0x00U,0x41U,0x93U,0x10U,0x41U,0x93U,0x10U,0x2DU,0x00U,0x00U, - 0x20U,0x03U,0x42U,0x0AU,0x7FU,0x22U,0x04U,0x42U,0x0AU,0x81U, - 0xA7U,0x6AU,0x3AU,0x00U,0x00U,0x41U,0x94U,0x10U,0x41U,0x94U, - 0x10U,0x2DU,0x00U,0x00U,0x20U,0x03U,0x20U,0x04U,0x42U,0x0AU, - 0x7EU,0x7DU,0xA7U,0x6AU,0x3AU,0x00U,0x00U,0x41U,0x80U,0x10U, - 0x41U,0x1EU,0x42U,0x98U,0x01U,0x10U,0x0BU,0x1AU,0x0BU,0x41U, - 0x00U,0x41U,0x00U,0x41U,0x02U,0x10U,0x09U,0x21U,0x03U,0x41U, - 0x00U,0x41U,0x00U,0x41U,0x03U,0x10U,0x09U,0x21U,0x04U,0x41U, - 0x00U,0x41U,0x00U,0x41U,0x04U,0x10U,0x09U,0x21U,0x05U,0x41U, - 0x00U,0x41U,0x00U,0x41U,0x05U,0x10U,0x09U,0x21U,0x06U,0x41U, - 0xFAU,0x10U,0x41U,0x0BU,0x20U,0x03U,0x10U,0x0CU,0x1AU,0x41U, - 0x86U,0x11U,0x41U,0x05U,0x20U,0x04U,0x10U,0x0CU,0x1AU,0x41U, - 0x8CU,0x11U,0x41U,0x04U,0x20U,0x05U,0x10U,0x0CU,0x1AU,0x20U, - 0x04U,0x42U,0x01U,0x59U,0x41U,0x00U,0x20U,0x05U,0x42U,0x00U, - 0x55U,0x1BU,0x45U,0x04U,0x40U,0x41U,0x91U,0x11U,0x41U,0x1BU, - 0x42U,0xA7U,0x01U,0x10U,0x0BU,0x1AU,0x0BU,0x10U,0x0DU,0x20U, - 0x04U,0x7DU,0x22U,0x04U,0x42U,0x00U,0x57U,0x04U,0x40U,0x41U, - 0x91U,0x11U,0x41U,0x1BU,0x42U,0xAFU,0x01U,0x10U,0x0BU,0x1AU, - 0x0BU,0x10U,0x0DU,0x21U,0x07U,0x41U,0xACU,0x11U,0x41U,0x03U, - 0x20U,0x06U,0x42U,0xC0U,0xFFU,0xFFU,0xFFU,0xFFU,0xFFU,0xFFU, - 0xFFU,0x1FU,0x83U,0x22U,0x06U,0x42U,0xC0U,0x84U,0x3DU,0x80U, - 0x22U,0x08U,0x10U,0x0CU,0x1AU,0x41U,0xFAU,0x10U,0x41U,0x0BU, - 0x20U,0x03U,0x10U,0x0CU,0x1AU,0x41U,0xFAU,0x10U,0x41U,0x0BU, - 0x20U,0x03U,0x20U,0x07U,0x20U,0x05U,0x7DU,0x22U,0x05U,0x20U, - 0x08U,0x7EU,0x42U,0x00U,0x20U,0x05U,0x42U,0x00U,0x55U,0x1BU, - 0x42U,0x00U,0x20U,0x06U,0x42U,0xBFU,0x84U,0x3DU,0x56U,0x1BU, - 0x7CU,0x22U,0x05U,0x10U,0x0CU,0x1AU,0x20U,0x00U,0x41U,0xD2U, - 0xA4U,0x01U,0x3BU,0x01U,0xEEU,0x3DU,0x02U,0x40U,0x41U,0x00U, - 0x41U,0x00U,0x20U,0x00U,0x41U,0xEEU,0x3DU,0x6AU,0x41U,0x02U, - 0x10U,0x0EU,0x22U,0x03U,0x42U,0x01U,0x59U,0x04U,0x40U,0x02U, - 0x40U,0x20U,0x03U,0x42U,0x00U,0x41U,0x02U,0x10U,0x0FU,0x42U, - 0x00U,0x52U,0x0DU,0x00U,0x20U,0x03U,0x10U,0x10U,0x41U,0x04U, - 0x10U,0x0FU,0x50U,0x0DU,0x02U,0x0BU,0x0BU,0x42U,0xD5U,0xAAU, - 0x81U,0xAAU,0xE2U,0xF4U,0xF5U,0xE5U,0xD3U,0x00U,0x21U,0x03U, - 0x0BU,0x41U,0x00U,0x20U,0x05U,0x10U,0x11U,0x22U,0x05U,0x42U, - 0x00U,0x57U,0x04U,0x40U,0x41U,0x91U,0x11U,0x41U,0x1BU,0x42U, - 0xD2U,0x01U,0x10U,0x0BU,0x1AU,0x0BU,0x41U,0x00U,0x20U,0x04U, - 0x10U,0x11U,0x22U,0x04U,0x42U,0x00U,0x57U,0x04U,0x40U,0x41U, - 0x91U,0x11U,0x41U,0x1BU,0x42U,0xD5U,0x01U,0x10U,0x0BU,0x1AU, - 0x0BU,0x41U,0xB0U,0x11U,0x41U,0x0AU,0x20U,0x03U,0x20U,0x05U, - 0x20U,0x04U,0x10U,0x12U,0x10U,0x13U,0x22U,0x03U,0x10U,0x0CU, - 0x1AU,0x20U,0x03U,0x41U,0x06U,0x41U,0x01U,0x10U,0x14U,0x21U, - 0x03U,0x41U,0x01U,0x10U,0x15U,0x1AU,0x41U,0x01U,0x41U,0x88U, - 0x80U,0x18U,0x41U,0x02U,0x10U,0x08U,0x1AU,0x20U,0x03U,0x42U, - 0x14U,0x80U,0x21U,0x04U,0x41U,0x02U,0x10U,0x16U,0x22U,0x05U, - 0x42U,0x01U,0x59U,0x04U,0x40U,0x20U,0x05U,0x41U,0x06U,0x41U, - 0x01U,0x10U,0x14U,0x20U,0x03U,0x7CU,0x21U,0x03U,0x0BU,0x41U, - 0xAAU,0x0FU,0x20U,0x03U,0x3CU,0x00U,0x00U,0x41U,0xA9U,0x0FU, - 0x20U,0x03U,0x42U,0x08U,0x88U,0x3CU,0x00U,0x00U,0x41U,0xA8U, - 0x0FU,0x20U,0x03U,0x42U,0x10U,0x88U,0x3CU,0x00U,0x00U,0x41U, - 0xA7U,0x0FU,0x20U,0x03U,0x42U,0x18U,0x88U,0x3CU,0x00U,0x00U, - 0x41U,0xA6U,0x0FU,0x20U,0x03U,0x42U,0x20U,0x88U,0x3CU,0x00U, - 0x00U,0x41U,0xA5U,0x0FU,0x20U,0x03U,0x42U,0x28U,0x88U,0x3CU, - 0x00U,0x00U,0x41U,0xA4U,0x0FU,0x20U,0x03U,0x42U,0x30U,0x88U, - 0x3CU,0x00U,0x00U,0x41U,0xA3U,0x0FU,0x20U,0x03U,0x42U,0x38U, - 0x88U,0xA7U,0x41U,0x3FU,0x71U,0x41U,0xC0U,0x00U,0x72U,0x3AU, - 0x00U,0x00U,0x41U,0xF1U,0x09U,0x41U,0xC0U,0x0FU,0x29U,0x03U, - 0x00U,0x37U,0x03U,0x00U,0x41U,0xD9U,0x09U,0x41U,0xA8U,0x0FU, - 0x29U,0x03U,0x00U,0x37U,0x03U,0x00U,0x41U,0xD1U,0x09U,0x41U, - 0xA0U,0x0FU,0x29U,0x03U,0x00U,0x37U,0x03U,0x00U,0x41U,0xDEU, - 0x09U,0x41U,0x14U,0x41U,0x81U,0x80U,0x20U,0x10U,0x04U,0x1AU, - 0x41U,0xAAU,0x0FU,0x20U,0x04U,0x3CU,0x00U,0x00U,0x41U,0xA9U, - 0x0FU,0x20U,0x04U,0x42U,0x08U,0x88U,0x3CU,0x00U,0x00U,0x41U, - 0xA8U,0x0FU,0x20U,0x04U,0x42U,0x10U,0x88U,0x3CU,0x00U,0x00U, - 0x41U,0xA7U,0x0FU,0x20U,0x04U,0x42U,0x18U,0x88U,0x3CU,0x00U, - 0x00U,0x41U,0xA6U,0x0FU,0x20U,0x04U,0x42U,0x20U,0x88U,0x3CU, - 0x00U,0x00U,0x41U,0xA5U,0x0FU,0x20U,0x04U,0x42U,0x28U,0x88U, - 0x3CU,0x00U,0x00U,0x41U,0xA4U,0x0FU,0x20U,0x04U,0x42U,0x30U, - 0x88U,0x3CU,0x00U,0x00U,0x41U,0xA3U,0x0FU,0x20U,0x04U,0x42U, - 0x38U,0x88U,0xA7U,0x41U,0xC0U,0x00U,0x72U,0x3AU,0x00U,0x00U, - 0x41U,0xF3U,0x09U,0x21U,0x01U,0x41U,0xD0U,0x0FU,0x41U,0x22U, - 0x41U,0x01U,0x10U,0x07U,0x42U,0x01U,0x51U,0x04U,0x40U,0x02U, - 0x40U,0x41U,0x01U,0x41U,0xDFU,0x80U,0x3CU,0x41U,0x01U,0x10U, - 0x08U,0x42U,0x01U,0x52U,0x0DU,0x00U,0x20U,0x00U,0x41U,0x30U, - 0x6AU,0x41U,0x84U,0x3CU,0x41U,0x01U,0x10U,0x09U,0x42U,0x01U, - 0x53U,0x0DU,0x00U,0x20U,0x00U,0x41U,0x00U,0x3AU,0x00U,0x00U, - 0x41U,0x01U,0x10U,0x17U,0x22U,0x03U,0x42U,0x80U,0x01U,0x20U, - 0x03U,0x42U,0x80U,0x01U,0x54U,0x1BU,0x21U,0x04U,0x20U,0x00U, - 0x41U,0xD7U,0x00U,0x6AU,0x21U,0x01U,0x42U,0x00U,0x21U,0x03U, - 0x03U,0x40U,0x41U,0x94U,0x82U,0x80U,0x80U,0x78U,0x41U,0x81U, - 0x01U,0x10U,0x01U,0x1AU,0x20U,0x03U,0x20U,0x04U,0x5AU,0x45U, - 0x04U,0x40U,0x41U,0xBBU,0x11U,0x41U,0x04U,0x20U,0x01U,0x41U, - 0x14U,0x41U,0x01U,0x10U,0x18U,0x1AU,0x20U,0x00U,0x41U,0x01U, - 0x20U,0x01U,0x41U,0x14U,0x10U,0x0EU,0x42U,0x01U,0x51U,0x04U, - 0x40U,0x02U,0x40U,0x20U,0x00U,0x2DU,0x00U,0x00U,0x22U,0x02U, - 0x41U,0x14U,0x4BU,0x0DU,0x00U,0x20U,0x00U,0x41U,0xC0U,0x3CU, - 0x6AU,0x20U,0x02U,0x41U,0x03U,0x74U,0x6AU,0x42U,0x01U,0x37U, - 0x03U,0x00U,0x0BU,0x0BU,0x20U,0x01U,0x41U,0x3CU,0x6AU,0x21U, - 0x01U,0x20U,0x03U,0x42U,0x01U,0x7CU,0x21U,0x03U,0x0CU,0x01U, - 0x0BU,0x0BU,0x41U,0xF3U,0x09U,0x21U,0x01U,0x41U,0x00U,0x21U, - 0x02U,0x03U,0x40U,0x41U,0x9FU,0x82U,0x80U,0x80U,0x78U,0x41U, - 0x15U,0x10U,0x01U,0x1AU,0x20U,0x00U,0x20U,0x02U,0x3AU,0x00U, - 0x2FU,0x20U,0x02U,0x41U,0xFFU,0x01U,0x71U,0x41U,0x13U,0x4BU, - 0x20U,0x01U,0x41U,0x9BU,0x0FU,0x4FU,0x72U,0x0DU,0x01U,0x20U, - 0x00U,0x41U,0xC0U,0x3CU,0x6AU,0x20U,0x00U,0x2DU,0x00U,0x2FU, - 0x22U,0x02U,0x41U,0x03U,0x74U,0x6AU,0x29U,0x03U,0x00U,0x50U, - 0x45U,0x04U,0x40U,0x20U,0x01U,0x41U,0xA0U,0x0FU,0x29U,0x03U, - 0x00U,0x37U,0x03U,0x00U,0x20U,0x01U,0x41U,0xA8U,0x0FU,0x29U, - 0x03U,0x00U,0x37U,0x03U,0x08U,0x20U,0x01U,0x41U,0xC0U,0x0FU, - 0x29U,0x03U,0x00U,0x37U,0x03U,0x20U,0x20U,0x01U,0x41U,0x22U, - 0x6AU,0x20U,0x01U,0x20U,0x01U,0x41U,0x0DU,0x6AU,0x41U,0x14U, - 0x20U,0x00U,0x41U,0x2FU,0x6AU,0x41U,0x01U,0x10U,0x0EU,0x42U, - 0x14U,0x51U,0x1BU,0x21U,0x01U,0x20U,0x00U,0x2DU,0x00U,0x2FU, - 0x21U,0x02U,0x0BU,0x20U,0x02U,0x41U,0x01U,0x6AU,0x21U,0x02U, - 0x0CU,0x00U,0x0BU,0x00U,0x0BU,0x0BU,0x20U,0x01U,0x41U,0xF1U, - 0x01U,0x3AU,0x00U,0x00U,0x41U,0xDBU,0x08U,0x41U,0xF4U,0x00U, - 0x10U,0x19U,0x1AU,0x41U,0x9AU,0x08U,0x41U,0x80U,0x08U,0x20U, - 0x01U,0x41U,0xFFU,0x07U,0x6BU,0x22U,0x02U,0x10U,0x1AU,0x22U, - 0x03U,0x42U,0x38U,0x86U,0x20U,0x03U,0x42U,0x38U,0x88U,0x42U, - 0x3FU,0x83U,0x84U,0x20U,0x03U,0x42U,0x28U,0x86U,0x42U,0x80U, - 0x80U,0x80U,0x80U,0x80U,0x80U,0xC0U,0xFFU,0x00U,0x83U,0x84U, - 0x20U,0x03U,0x42U,0x18U,0x86U,0x42U,0x80U,0x80U,0x80U,0x80U, - 0x80U,0xE0U,0x3FU,0x83U,0x84U,0x20U,0x03U,0x42U,0x08U,0x86U, - 0x42U,0x80U,0x80U,0x80U,0x80U,0xF0U,0x1FU,0x83U,0x84U,0x20U, - 0x03U,0x42U,0x08U,0x88U,0x42U,0x80U,0x80U,0x80U,0xF8U,0x0FU, - 0x83U,0x84U,0x20U,0x03U,0x42U,0x18U,0x88U,0x42U,0x80U,0x80U, - 0xFCU,0x07U,0x83U,0x84U,0x20U,0x03U,0x42U,0x28U,0x88U,0x42U, - 0x80U,0xFEU,0x03U,0x83U,0x84U,0x42U,0xC0U,0x00U,0x84U,0x37U, - 0x03U,0x00U,0x41U,0x98U,0x08U,0x10U,0x0DU,0x22U,0x04U,0x42U, - 0x05U,0x7CU,0x22U,0x03U,0x3CU,0x00U,0x00U,0x41U,0x92U,0x08U, - 0x20U,0x04U,0x42U,0x01U,0x7CU,0x22U,0x04U,0x3CU,0x00U,0x00U, - 0x41U,0x97U,0x08U,0x20U,0x03U,0x42U,0x08U,0x88U,0x3CU,0x00U, - 0x00U,0x41U,0x96U,0x08U,0x20U,0x03U,0x42U,0x10U,0x88U,0x3CU, - 0x00U,0x00U,0x41U,0x95U,0x08U,0x20U,0x03U,0x42U,0x18U,0x88U, - 0x3CU,0x00U,0x00U,0x41U,0x91U,0x08U,0x20U,0x04U,0x42U,0x08U, - 0x88U,0x3CU,0x00U,0x00U,0x41U,0x90U,0x08U,0x20U,0x04U,0x42U, - 0x10U,0x88U,0x3CU,0x00U,0x00U,0x41U,0x8FU,0x08U,0x20U,0x04U, - 0x42U,0x18U,0x88U,0x3CU,0x00U,0x00U,0x41U,0xBFU,0x11U,0x41U, - 0x06U,0x41U,0x80U,0x08U,0x20U,0x02U,0x41U,0x01U,0x10U,0x18U, - 0x1AU,0x41U,0xC5U,0x11U,0x41U,0x0BU,0x20U,0x00U,0x41U,0x20U, - 0x41U,0x80U,0x08U,0x20U,0x02U,0x10U,0x1BU,0x22U,0x03U,0x10U, - 0x0CU,0x1AU,0x20U,0x03U,0x42U,0x7FU,0x57U,0x04U,0x40U,0x41U, - 0xD1U,0x11U,0x41U,0x1EU,0x42U,0xCFU,0x02U,0x10U,0x0BU,0x1AU, - 0x0BU,0x41U,0xEFU,0x11U,0x41U,0x29U,0x42U,0xD2U,0x02U,0x10U, - 0x03U,0x1AU,0x20U,0x00U,0x41U,0xE0U,0x3EU,0x6AU,0x24U,0x00U, - 0x20U,0x03U,0x0BU,0x0BU,0xBCU,0x03U,0x07U,0x00U,0x41U,0x80U, - 0x08U,0x0BU,0x24U,0x12U,0x00U,0x60U,0x22U,0x80U,0x00U,0x00U, - 0x00U,0x24U,0x00U,0x00U,0x00U,0x00U,0x20U,0x1AU,0x00U,0x00U, - 0x00U,0x00U,0x20U,0x1BU,0x00U,0x00U,0x00U,0x00U,0x68U,0x40U, - 0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0x73U,0x21U,0x00U, - 0x41U,0xC5U,0x08U,0x0BU,0x16U,0x81U,0x14U,0xB5U,0xF7U,0x62U, - 0x79U,0x8AU,0x53U,0xD5U,0x43U,0xA0U,0x14U,0xCAU,0xF8U,0xB2U, - 0x97U,0xCFU,0xF8U,0xF2U,0xF9U,0x37U,0xE8U,0x00U,0x41U,0xCFU, - 0x09U,0x0BU,0x02U,0xF0U,0x60U,0x00U,0x41U,0xA0U,0x0FU,0x0BU, - 0x0DU,0xE0U,0x60U,0x61U,0x00U,0x00U,0x00U,0x00U,0x00U,0x00U, - 0x00U,0x00U,0x83U,0x14U,0x00U,0x41U,0xC1U,0x0FU,0x0BU,0x31U, - 0xE1U,0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0x4DU,0x43U,0x00U, - 0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0x61U,0xE3U,0x2EU, - 0x7AU,0x24U,0xA2U,0x38U,0xF1U,0xC6U,0x19U,0xD5U,0xF9U,0xDDU, - 0xCCU,0x41U,0xA9U,0x4BU,0x33U,0xB6U,0x6CU,0x01U,0x63U,0xF7U, - 0xEFU,0xCCU,0x8AU,0x19U,0xC9U,0xFDU,0x6FU,0x28U,0xDCU,0x00U, - 0x41U,0x80U,0x10U,0x0BU,0x1DU,0x59U,0x6FU,0x75U,0x20U,0x6DU, - 0x75U,0x73U,0x74U,0x20U,0x77U,0x61U,0x69U,0x74U,0x20U,0x30U, - 0x30U,0x30U,0x30U,0x30U,0x30U,0x30U,0x20U,0x73U,0x65U,0x63U, - 0x6FU,0x6EU,0x64U,0x73U,0x00U,0x41U,0x9EU,0x10U,0x0BU,0xF9U, - 0x01U,0x52U,0x65U,0x77U,0x61U,0x72U,0x64U,0x3AU,0x20U,0x50U, - 0x61U,0x73U,0x73U,0x69U,0x6EU,0x67U,0x20U,0x6EU,0x6FU,0x6EU, - 0x2DU,0x63U,0x6CU,0x61U,0x69U,0x6DU,0x20U,0x74U,0x78U,0x6EU, - 0x00U,0x52U,0x65U,0x77U,0x61U,0x72U,0x64U,0x3AU,0x20U,0x50U, - 0x61U,0x73U,0x73U,0x69U,0x6EU,0x67U,0x20U,0x6FU,0x75U,0x74U, - 0x67U,0x6FU,0x69U,0x6EU,0x67U,0x20U,0x74U,0x78U,0x6EU,0x00U, - 0x52U,0x65U,0x77U,0x61U,0x72U,0x64U,0x3AU,0x20U,0x50U,0x61U, - 0x73U,0x73U,0x69U,0x6EU,0x67U,0x20U,0x72U,0x65U,0x77U,0x61U, - 0x72U,0x64U,0x20U,0x73U,0x65U,0x74U,0x75U,0x70U,0x20U,0x74U, - 0x78U,0x6EU,0x00U,0x61U,0x63U,0x63U,0x75U,0x6DU,0x75U,0x6CU, - 0x61U,0x74U,0x6FU,0x72U,0x00U,0x66U,0x69U,0x72U,0x73U,0x74U, - 0x00U,0x6CU,0x61U,0x73U,0x74U,0x00U,0x52U,0x65U,0x77U,0x61U, - 0x72U,0x64U,0x3AU,0x20U,0x41U,0x73U,0x73U,0x65U,0x72U,0x74U, - 0x69U,0x6FU,0x6EU,0x20U,0x66U,0x61U,0x69U,0x6CU,0x75U,0x72U, - 0x65U,0x2EU,0x00U,0x62U,0x61U,0x6CU,0x00U,0x78U,0x66U,0x6CU, - 0x5FU,0x72U,0x65U,0x77U,0x61U,0x72U,0x64U,0x00U,0x61U,0x76U, - 0x3AU,0x00U,0x65U,0x6DU,0x69U,0x74U,0x3AU,0x00U,0x65U,0x6DU, - 0x69U,0x74U,0x5FU,0x72U,0x65U,0x73U,0x75U,0x6CU,0x74U,0x00U, - 0x52U,0x65U,0x77U,0x61U,0x72U,0x64U,0x3AU,0x20U,0x45U,0x6DU, - 0x69U,0x74U,0x20U,0x6CU,0x6FU,0x6FU,0x70U,0x62U,0x61U,0x63U, - 0x6BU,0x20U,0x66U,0x61U,0x69U,0x6CU,0x65U,0x64U,0x2EU,0x00U, - 0x52U,0x65U,0x77U,0x61U,0x72U,0x64U,0x3AU,0x20U,0x45U,0x6DU, - 0x69U,0x74U,0x74U,0x65U,0x64U,0x20U,0x72U,0x65U,0x77U,0x61U, - 0x72U,0x64U,0x20U,0x74U,0x78U,0x6EU,0x20U,0x73U,0x75U,0x63U, - 0x63U,0x65U,0x73U,0x73U,0x66U,0x75U,0x6CU,0x6CU,0x79U,0x2EU + 0x03U,0x03U,0x65U,0x6EU,0x76U,0x09U,0x66U,0x6CU,0x6FU,0x61U, + 0x74U,0x5FU,0x69U,0x6EU,0x74U,0x00U,0x07U,0x03U,0x65U,0x6EU, + 0x76U,0x0AU,0x66U,0x6CU,0x6FU,0x61U,0x74U,0x5FU,0x73U,0x69U, + 0x67U,0x6EU,0x00U,0x08U,0x03U,0x65U,0x6EU,0x76U,0x09U,0x66U, + 0x6CU,0x6FU,0x61U,0x74U,0x5FU,0x6FU,0x6EU,0x65U,0x00U,0x02U, + 0x03U,0x65U,0x6EU,0x76U,0x0DU,0x66U,0x6CU,0x6FU,0x61U,0x74U, + 0x5FU,0x63U,0x6FU,0x6DU,0x70U,0x61U,0x72U,0x65U,0x00U,0x09U, + 0x03U,0x65U,0x6EU,0x76U,0x0BU,0x75U,0x74U,0x69U,0x6CU,0x5FU, + 0x6BU,0x65U,0x79U,0x6CU,0x65U,0x74U,0x00U,0x0AU,0x03U,0x65U, + 0x6EU,0x76U,0x08U,0x73U,0x6CU,0x6FU,0x74U,0x5FU,0x73U,0x65U, + 0x74U,0x00U,0x04U,0x03U,0x65U,0x6EU,0x76U,0x0DU,0x73U,0x6CU, + 0x6FU,0x74U,0x5FU,0x73U,0x75U,0x62U,0x66U,0x69U,0x65U,0x6CU, + 0x64U,0x00U,0x04U,0x03U,0x65U,0x6EU,0x76U,0x04U,0x73U,0x6CU, + 0x6FU,0x74U,0x00U,0x04U,0x03U,0x65U,0x6EU,0x76U,0x10U,0x6CU, + 0x65U,0x64U,0x67U,0x65U,0x72U,0x5FU,0x6CU,0x61U,0x73U,0x74U, + 0x5FU,0x74U,0x69U,0x6DU,0x65U,0x00U,0x02U,0x03U,0x65U,0x6EU, + 0x76U,0x09U,0x74U,0x72U,0x61U,0x63U,0x65U,0x5FU,0x6EU,0x75U, + 0x6DU,0x00U,0x03U,0x03U,0x65U,0x6EU,0x76U,0x0AU,0x6CU,0x65U, + 0x64U,0x67U,0x65U,0x72U,0x5FU,0x73U,0x65U,0x71U,0x00U,0x02U, + 0x03U,0x65U,0x6EU,0x76U,0x09U,0x66U,0x6CU,0x6FU,0x61U,0x74U, + 0x5FU,0x73U,0x65U,0x74U,0x00U,0x0BU,0x03U,0x65U,0x6EU,0x76U, + 0x0CU,0x66U,0x6CU,0x6FU,0x61U,0x74U,0x5FU,0x64U,0x69U,0x76U, + 0x69U,0x64U,0x65U,0x00U,0x0CU,0x03U,0x65U,0x6EU,0x76U,0x0EU, + 0x66U,0x6CU,0x6FU,0x61U,0x74U,0x5FU,0x6DU,0x75U,0x6CU,0x74U, + 0x69U,0x70U,0x6CU,0x79U,0x00U,0x0CU,0x03U,0x65U,0x6EU,0x76U, + 0x09U,0x6FU,0x74U,0x78U,0x6EU,0x5FU,0x73U,0x6CU,0x6FU,0x74U, + 0x00U,0x00U,0x03U,0x65U,0x6EU,0x76U,0x0AU,0x73U,0x6CU,0x6FU, + 0x74U,0x5FU,0x66U,0x6CU,0x6FU,0x61U,0x74U,0x00U,0x00U,0x03U, + 0x65U,0x6EU,0x76U,0x0AU,0x73U,0x6CU,0x6FU,0x74U,0x5FU,0x63U, + 0x6FU,0x75U,0x6EU,0x74U,0x00U,0x00U,0x03U,0x65U,0x6EU,0x76U, + 0x05U,0x74U,0x72U,0x61U,0x63U,0x65U,0x00U,0x0DU,0x03U,0x65U, + 0x6EU,0x76U,0x0CU,0x65U,0x74U,0x78U,0x6EU,0x5FU,0x64U,0x65U, + 0x74U,0x61U,0x69U,0x6CU,0x73U,0x00U,0x05U,0x03U,0x65U,0x6EU, + 0x76U,0x0DU,0x65U,0x74U,0x78U,0x6EU,0x5FU,0x66U,0x65U,0x65U, + 0x5FU,0x62U,0x61U,0x73U,0x65U,0x00U,0x05U,0x03U,0x65U,0x6EU, + 0x76U,0x04U,0x65U,0x6DU,0x69U,0x74U,0x00U,0x06U,0x03U,0x02U, + 0x01U,0x00U,0x05U,0x03U,0x01U,0x00U,0x02U,0x06U,0x08U,0x01U, + 0x7FU,0x01U,0x41U,0xA0U,0x93U,0x04U,0x0BU,0x07U,0x08U,0x01U, + 0x04U,0x68U,0x6FU,0x6FU,0x6BU,0x00U,0x1DU,0x0AU,0xCDU,0x8EU, + 0x00U,0x01U,0xC9U,0x8EU,0x00U,0x02U,0x02U,0x7FU,0x06U,0x7EU, + 0x23U,0x00U,0x41U,0xE0U,0x3EU,0x6BU,0x22U,0x00U,0x24U,0x00U, + 0x41U,0x01U,0x10U,0x00U,0x1AU,0x41U,0x01U,0x41U,0x01U,0x10U, + 0x01U,0x1AU,0x10U,0x02U,0x42U,0xE2U,0x00U,0x52U,0x04U,0x40U, + 0x41U,0x9EU,0x10U,0x41U,0x1EU,0x42U,0xE9U,0x00U,0x10U,0x03U, + 0x1AU,0x0BU,0x20U,0x00U,0x41U,0xC0U,0x3EU,0x6AU,0x41U,0x14U, + 0x41U,0x81U,0x80U,0x20U,0x10U,0x04U,0x1AU,0x20U,0x00U,0x41U, + 0xA0U,0x3EU,0x6AU,0x41U,0x14U,0x10U,0x05U,0x1AU,0x20U,0x00U, + 0x29U,0x03U,0xA0U,0x3EU,0x20U,0x00U,0x29U,0x03U,0xC0U,0x3EU, + 0x51U,0x04U,0x40U,0x02U,0x40U,0x20U,0x00U,0x28U,0x02U,0xB0U, + 0x3EU,0x20U,0x00U,0x28U,0x02U,0xD0U,0x3EU,0x47U,0x20U,0x00U, + 0x29U,0x03U,0xA8U,0x3EU,0x20U,0x00U,0x29U,0x03U,0xC8U,0x3EU, + 0x52U,0x72U,0x0DU,0x00U,0x41U,0xBCU,0x10U,0x41U,0x1DU,0x42U, + 0xF5U,0x00U,0x10U,0x03U,0x1AU,0x0BU,0x0BU,0x20U,0x00U,0x42U, + 0xD5U,0xAAU,0x81U,0xAAU,0xE2U,0xF4U,0xF5U,0xE5U,0xD3U,0x00U, + 0x37U,0x03U,0x98U,0x3EU,0x20U,0x00U,0x42U,0x80U,0x80U,0xAAU, + 0xE3U,0xFAU,0x95U,0xCFU,0x84U,0xD6U,0x00U,0x37U,0x03U,0x90U, + 0x3EU,0x20U,0x00U,0x41U,0x98U,0x3EU,0x6AU,0x41U,0x08U,0x41U, + 0xD9U,0x10U,0x41U,0x02U,0x10U,0x06U,0x1AU,0x20U,0x00U,0x41U, + 0x90U,0x3EU,0x6AU,0x41U,0x08U,0x41U,0xDCU,0x10U,0x41U,0x02U, + 0x10U,0x06U,0x1AU,0x02U,0x40U,0x20U,0x00U,0x29U,0x03U,0x98U, + 0x3EU,0x42U,0x01U,0x59U,0x04U,0x40U,0x20U,0x00U,0x29U,0x03U, + 0x90U,0x3EU,0x22U,0x03U,0x42U,0x00U,0x55U,0x0DU,0x01U,0x0BU, + 0x41U,0xDFU,0x10U,0x41U,0x2CU,0x42U,0x81U,0x01U,0x10U,0x07U, + 0x1AU,0x20U,0x00U,0x29U,0x03U,0x90U,0x3EU,0x21U,0x03U,0x0BU, + 0x02U,0x40U,0x20U,0x03U,0x41U,0x00U,0x41U,0x00U,0x10U,0x08U, + 0x22U,0x03U,0x42U,0x00U,0x59U,0x04U,0x40U,0x02U,0x40U,0x20U, + 0x00U,0x29U,0x03U,0x98U,0x3EU,0x10U,0x09U,0x42U,0x00U,0x52U, + 0x0DU,0x00U,0x20U,0x00U,0x29U,0x03U,0x98U,0x3EU,0x10U,0x0AU, + 0x41U,0x04U,0x10U,0x0BU,0x42U,0x00U,0x52U,0x0DU,0x00U,0x20U, + 0x00U,0x29U,0x03U,0x90U,0x3EU,0x10U,0x0AU,0x41U,0x04U,0x10U, + 0x0BU,0x50U,0x0DU,0x02U,0x0BU,0x0BU,0x41U,0x8BU,0x11U,0x41U, + 0xCDU,0x00U,0x42U,0x88U,0x01U,0x10U,0x07U,0x1AU,0x0BU,0x20U, + 0x00U,0x41U,0xE0U,0x3DU,0x6AU,0x22U,0x02U,0x41U,0x22U,0x41U, + 0x03U,0x20U,0x00U,0x41U,0xC0U,0x3EU,0x6AU,0x41U,0x14U,0x41U, + 0x00U,0x41U,0x00U,0x41U,0x00U,0x41U,0x00U,0x10U,0x0CU,0x1AU, + 0x20U,0x02U,0x41U,0x22U,0x41U,0x01U,0x10U,0x0DU,0x1AU,0x41U, + 0x01U,0x41U,0xE4U,0x80U,0x0CU,0x41U,0x02U,0x10U,0x0EU,0x42U, + 0x02U,0x52U,0x04U,0x40U,0x41U,0xD8U,0x11U,0x41U,0x21U,0x42U, + 0x93U,0x01U,0x10U,0x03U,0x1AU,0x0BU,0x41U,0x01U,0x41U,0xE3U, + 0x80U,0x08U,0x41U,0x03U,0x10U,0x0EU,0x1AU,0x41U,0x01U,0x41U, + 0xE4U,0x80U,0x08U,0x41U,0x04U,0x10U,0x0EU,0x1AU,0x41U,0x01U, + 0x41U,0x82U,0x80U,0x18U,0x41U,0x05U,0x10U,0x0EU,0x1AU,0x41U, + 0x01U,0x41U,0xE2U,0x80U,0x08U,0x41U,0x06U,0x10U,0x0EU,0x1AU, + 0x41U,0x00U,0x41U,0x00U,0x41U,0x06U,0x10U,0x0FU,0x21U,0x04U, + 0x10U,0x10U,0x20U,0x04U,0x7DU,0x22U,0x04U,0x20U,0x03U,0x53U, + 0x04U,0x40U,0x41U,0x8EU,0x10U,0x41U,0x8EU,0x10U,0x2DU,0x00U, + 0x00U,0x20U,0x03U,0x20U,0x04U,0x7DU,0x22U,0x03U,0x42U,0xC0U, + 0x84U,0x3DU,0x7FU,0x42U,0x0AU,0x81U,0xA7U,0x6AU,0x3AU,0x00U, + 0x00U,0x41U,0x8FU,0x10U,0x41U,0x8FU,0x10U,0x2DU,0x00U,0x00U, + 0x20U,0x03U,0x42U,0xA0U,0x8DU,0x06U,0x7FU,0x42U,0x0AU,0x81U, + 0xA7U,0x6AU,0x3AU,0x00U,0x00U,0x41U,0x90U,0x10U,0x41U,0x90U, + 0x10U,0x2DU,0x00U,0x00U,0x20U,0x03U,0x42U,0x90U,0xCEU,0x00U, + 0x7FU,0x42U,0x0AU,0x81U,0xA7U,0x6AU,0x3AU,0x00U,0x00U,0x41U, + 0x91U,0x10U,0x41U,0x91U,0x10U,0x2DU,0x00U,0x00U,0x20U,0x03U, + 0x42U,0xE8U,0x07U,0x7FU,0x42U,0x0AU,0x81U,0xA7U,0x6AU,0x3AU, + 0x00U,0x00U,0x41U,0x92U,0x10U,0x41U,0x92U,0x10U,0x2DU,0x00U, + 0x00U,0x20U,0x03U,0x42U,0xE4U,0x00U,0x7FU,0x42U,0x0AU,0x81U, + 0xA7U,0x6AU,0x3AU,0x00U,0x00U,0x41U,0x93U,0x10U,0x41U,0x93U, + 0x10U,0x2DU,0x00U,0x00U,0x20U,0x03U,0x42U,0x0AU,0x7FU,0x22U, + 0x04U,0x42U,0x0AU,0x81U,0xA7U,0x6AU,0x3AU,0x00U,0x00U,0x41U, + 0x94U,0x10U,0x41U,0x94U,0x10U,0x2DU,0x00U,0x00U,0x20U,0x03U, + 0x20U,0x04U,0x42U,0x0AU,0x7EU,0x7DU,0xA7U,0x6AU,0x3AU,0x00U, + 0x00U,0x41U,0x80U,0x10U,0x41U,0x1EU,0x42U,0xACU,0x01U,0x10U, + 0x07U,0x1AU,0x0BU,0x41U,0x00U,0x41U,0x00U,0x41U,0x02U,0x10U, + 0x0FU,0x21U,0x03U,0x41U,0x00U,0x41U,0x00U,0x41U,0x03U,0x10U, + 0x0FU,0x21U,0x04U,0x41U,0x00U,0x41U,0x00U,0x41U,0x04U,0x10U, + 0x0FU,0x21U,0x05U,0x41U,0x00U,0x41U,0x00U,0x41U,0x05U,0x10U, + 0x0FU,0x21U,0x06U,0x41U,0xF9U,0x11U,0x41U,0x0BU,0x20U,0x03U, + 0x10U,0x11U,0x1AU,0x41U,0x85U,0x12U,0x41U,0x05U,0x20U,0x04U, + 0x10U,0x11U,0x1AU,0x41U,0x8BU,0x12U,0x41U,0x04U,0x20U,0x05U, + 0x10U,0x11U,0x1AU,0x20U,0x04U,0x42U,0x01U,0x59U,0x41U,0x00U, + 0x20U,0x05U,0x42U,0x00U,0x55U,0x1BU,0x45U,0x04U,0x40U,0x41U, + 0x90U,0x12U,0x41U,0x1BU,0x42U,0xBBU,0x01U,0x10U,0x07U,0x1AU, + 0x0BU,0x10U,0x12U,0x20U,0x04U,0x7DU,0x22U,0x04U,0x42U,0x00U, + 0x57U,0x04U,0x40U,0x41U,0x90U,0x12U,0x41U,0x1BU,0x42U,0xC3U, + 0x01U,0x10U,0x07U,0x1AU,0x0BU,0x10U,0x12U,0x21U,0x07U,0x41U, + 0xABU,0x12U,0x41U,0x03U,0x20U,0x06U,0x42U,0xC0U,0xFFU,0xFFU, + 0xFFU,0xFFU,0xFFU,0xFFU,0xFFU,0x1FU,0x83U,0x22U,0x06U,0x42U, + 0xC0U,0x84U,0x3DU,0x80U,0x22U,0x08U,0x10U,0x11U,0x1AU,0x41U, + 0xF9U,0x11U,0x41U,0x0BU,0x20U,0x03U,0x10U,0x11U,0x1AU,0x41U, + 0xF9U,0x11U,0x41U,0x0BU,0x20U,0x03U,0x20U,0x07U,0x20U,0x05U, + 0x7DU,0x22U,0x05U,0x20U,0x08U,0x7EU,0x42U,0x00U,0x20U,0x05U, + 0x42U,0x00U,0x55U,0x1BU,0x42U,0x00U,0x20U,0x06U,0x42U,0xBFU, + 0x84U,0x3DU,0x56U,0x1BU,0x7CU,0x22U,0x03U,0x10U,0x11U,0x1AU, + 0x41U,0x00U,0x20U,0x03U,0x10U,0x13U,0x22U,0x03U,0x42U,0x00U, + 0x57U,0x04U,0x40U,0x41U,0x90U,0x12U,0x41U,0x1BU,0x42U,0xD8U, + 0x01U,0x10U,0x07U,0x1AU,0x0BU,0x41U,0x00U,0x20U,0x04U,0x10U, + 0x13U,0x22U,0x04U,0x42U,0x00U,0x57U,0x04U,0x40U,0x41U,0x90U, + 0x12U,0x41U,0x1BU,0x42U,0xDBU,0x01U,0x10U,0x07U,0x1AU,0x0BU, + 0x20U,0x03U,0x20U,0x04U,0x10U,0x14U,0x21U,0x03U,0x41U,0xAFU, + 0x12U,0x41U,0x0AU,0x20U,0x00U,0x29U,0x03U,0x98U,0x3EU,0x20U, + 0x03U,0x10U,0x15U,0x22U,0x03U,0x10U,0x11U,0x1AU,0x20U,0x03U, + 0x41U,0x06U,0x41U,0x01U,0x10U,0x08U,0x21U,0x03U,0x41U,0x01U, + 0x10U,0x16U,0x1AU,0x41U,0x01U,0x41U,0x88U,0x80U,0x18U,0x41U, + 0x02U,0x10U,0x0EU,0x1AU,0x20U,0x03U,0x42U,0x14U,0x80U,0x21U, + 0x04U,0x41U,0x02U,0x10U,0x17U,0x22U,0x05U,0x42U,0x01U,0x59U, + 0x04U,0x40U,0x20U,0x05U,0x41U,0x06U,0x41U,0x01U,0x10U,0x08U, + 0x20U,0x03U,0x7CU,0x21U,0x03U,0x0BU,0x41U,0xAAU,0x0FU,0x20U, + 0x03U,0x3CU,0x00U,0x00U,0x41U,0xA9U,0x0FU,0x20U,0x03U,0x42U, + 0x08U,0x88U,0x3CU,0x00U,0x00U,0x41U,0xA8U,0x0FU,0x20U,0x03U, + 0x42U,0x10U,0x88U,0x3CU,0x00U,0x00U,0x41U,0xA7U,0x0FU,0x20U, + 0x03U,0x42U,0x18U,0x88U,0x3CU,0x00U,0x00U,0x41U,0xA6U,0x0FU, + 0x20U,0x03U,0x42U,0x20U,0x88U,0x3CU,0x00U,0x00U,0x41U,0xA5U, + 0x0FU,0x20U,0x03U,0x42U,0x28U,0x88U,0x3CU,0x00U,0x00U,0x41U, + 0xA4U,0x0FU,0x20U,0x03U,0x42U,0x30U,0x88U,0x3CU,0x00U,0x00U, + 0x41U,0xA3U,0x0FU,0x20U,0x03U,0x42U,0x38U,0x88U,0xA7U,0x41U, + 0x3FU,0x71U,0x41U,0xC0U,0x00U,0x72U,0x3AU,0x00U,0x00U,0x41U, + 0xF1U,0x09U,0x41U,0xC0U,0x0FU,0x29U,0x03U,0x00U,0x37U,0x03U, + 0x00U,0x41U,0xD9U,0x09U,0x41U,0xA8U,0x0FU,0x29U,0x03U,0x00U, + 0x37U,0x03U,0x00U,0x41U,0xD1U,0x09U,0x41U,0xA0U,0x0FU,0x29U, + 0x03U,0x00U,0x37U,0x03U,0x00U,0x41U,0xDEU,0x09U,0x41U,0x14U, + 0x41U,0x81U,0x80U,0x20U,0x10U,0x04U,0x1AU,0x41U,0xAAU,0x0FU, + 0x20U,0x04U,0x3CU,0x00U,0x00U,0x41U,0xA9U,0x0FU,0x20U,0x04U, + 0x42U,0x08U,0x88U,0x3CU,0x00U,0x00U,0x41U,0xA8U,0x0FU,0x20U, + 0x04U,0x42U,0x10U,0x88U,0x3CU,0x00U,0x00U,0x41U,0xA7U,0x0FU, + 0x20U,0x04U,0x42U,0x18U,0x88U,0x3CU,0x00U,0x00U,0x41U,0xA6U, + 0x0FU,0x20U,0x04U,0x42U,0x20U,0x88U,0x3CU,0x00U,0x00U,0x41U, + 0xA5U,0x0FU,0x20U,0x04U,0x42U,0x28U,0x88U,0x3CU,0x00U,0x00U, + 0x41U,0xA4U,0x0FU,0x20U,0x04U,0x42U,0x30U,0x88U,0x3CU,0x00U, + 0x00U,0x41U,0xA3U,0x0FU,0x20U,0x04U,0x42U,0x38U,0x88U,0xA7U, + 0x41U,0xC0U,0x00U,0x72U,0x3AU,0x00U,0x00U,0x41U,0xF3U,0x09U, + 0x21U,0x01U,0x41U,0xD0U,0x0FU,0x41U,0x22U,0x41U,0x01U,0x10U, + 0x0DU,0x42U,0x01U,0x51U,0x04U,0x40U,0x02U,0x40U,0x41U,0x01U, + 0x41U,0xDFU,0x80U,0x3CU,0x41U,0x01U,0x10U,0x0EU,0x42U,0x01U, + 0x52U,0x0DU,0x00U,0x20U,0x00U,0x41U,0x30U,0x6AU,0x41U,0x84U, + 0x3CU,0x41U,0x01U,0x10U,0x0FU,0x42U,0x01U,0x53U,0x0DU,0x00U, + 0x20U,0x00U,0x41U,0x00U,0x3AU,0x00U,0x00U,0x41U,0x01U,0x10U, + 0x18U,0x22U,0x03U,0x42U,0x80U,0x01U,0x20U,0x03U,0x42U,0x80U, + 0x01U,0x54U,0x1BU,0x21U,0x04U,0x20U,0x00U,0x41U,0xD7U,0x00U, + 0x6AU,0x21U,0x01U,0x42U,0x00U,0x21U,0x03U,0x03U,0x40U,0x41U, + 0x9AU,0x82U,0x80U,0x80U,0x78U,0x41U,0x81U,0x01U,0x10U,0x01U, + 0x1AU,0x20U,0x03U,0x20U,0x04U,0x5AU,0x45U,0x04U,0x40U,0x41U, + 0xBAU,0x12U,0x41U,0x04U,0x20U,0x01U,0x41U,0x14U,0x41U,0x01U, + 0x10U,0x19U,0x1AU,0x20U,0x00U,0x41U,0x01U,0x20U,0x01U,0x41U, + 0x14U,0x10U,0x06U,0x42U,0x01U,0x51U,0x04U,0x40U,0x02U,0x40U, + 0x20U,0x00U,0x2DU,0x00U,0x00U,0x22U,0x02U,0x41U,0x14U,0x4BU, + 0x0DU,0x00U,0x20U,0x00U,0x41U,0xC0U,0x3CU,0x6AU,0x20U,0x02U, + 0x41U,0x03U,0x74U,0x6AU,0x42U,0x01U,0x37U,0x03U,0x00U,0x0BU, + 0x0BU,0x20U,0x01U,0x41U,0x3CU,0x6AU,0x21U,0x01U,0x20U,0x03U, + 0x42U,0x01U,0x7CU,0x21U,0x03U,0x0CU,0x01U,0x0BU,0x0BU,0x41U, + 0xF3U,0x09U,0x21U,0x01U,0x41U,0x00U,0x21U,0x02U,0x03U,0x40U, + 0x41U,0xA5U,0x82U,0x80U,0x80U,0x78U,0x41U,0x15U,0x10U,0x01U, + 0x1AU,0x20U,0x00U,0x20U,0x02U,0x3AU,0x00U,0x2FU,0x20U,0x02U, + 0x41U,0xFFU,0x01U,0x71U,0x41U,0x13U,0x4BU,0x20U,0x01U,0x41U, + 0x9BU,0x0FU,0x4FU,0x72U,0x0DU,0x01U,0x20U,0x00U,0x41U,0xC0U, + 0x3CU,0x6AU,0x20U,0x00U,0x2DU,0x00U,0x2FU,0x22U,0x02U,0x41U, + 0x03U,0x74U,0x6AU,0x29U,0x03U,0x00U,0x50U,0x45U,0x04U,0x40U, + 0x20U,0x01U,0x41U,0xA0U,0x0FU,0x29U,0x03U,0x00U,0x37U,0x03U, + 0x00U,0x20U,0x01U,0x41U,0xA8U,0x0FU,0x29U,0x03U,0x00U,0x37U, + 0x03U,0x08U,0x20U,0x01U,0x41U,0xC0U,0x0FU,0x29U,0x03U,0x00U, + 0x37U,0x03U,0x20U,0x20U,0x01U,0x41U,0x22U,0x6AU,0x20U,0x01U, + 0x20U,0x01U,0x41U,0x0DU,0x6AU,0x41U,0x14U,0x20U,0x00U,0x41U, + 0x2FU,0x6AU,0x41U,0x01U,0x10U,0x06U,0x42U,0x14U,0x51U,0x1BU, + 0x21U,0x01U,0x20U,0x00U,0x2DU,0x00U,0x2FU,0x21U,0x02U,0x0BU, + 0x20U,0x02U,0x41U,0x01U,0x6AU,0x21U,0x02U,0x0CU,0x00U,0x0BU, + 0x00U,0x0BU,0x0BU,0x20U,0x01U,0x41U,0xF1U,0x01U,0x3AU,0x00U, + 0x00U,0x41U,0xDBU,0x08U,0x41U,0xF4U,0x00U,0x10U,0x1AU,0x1AU, + 0x41U,0x9AU,0x08U,0x41U,0x80U,0x08U,0x20U,0x01U,0x41U,0xFFU, + 0x07U,0x6BU,0x22U,0x02U,0x10U,0x1BU,0x22U,0x03U,0x42U,0x38U, + 0x86U,0x20U,0x03U,0x42U,0x38U,0x88U,0x42U,0x3FU,0x83U,0x84U, + 0x20U,0x03U,0x42U,0x28U,0x86U,0x42U,0x80U,0x80U,0x80U,0x80U, + 0x80U,0x80U,0xC0U,0xFFU,0x00U,0x83U,0x84U,0x20U,0x03U,0x42U, + 0x18U,0x86U,0x42U,0x80U,0x80U,0x80U,0x80U,0x80U,0xE0U,0x3FU, + 0x83U,0x84U,0x20U,0x03U,0x42U,0x08U,0x86U,0x42U,0x80U,0x80U, + 0x80U,0x80U,0xF0U,0x1FU,0x83U,0x84U,0x20U,0x03U,0x42U,0x08U, + 0x88U,0x42U,0x80U,0x80U,0x80U,0xF8U,0x0FU,0x83U,0x84U,0x20U, + 0x03U,0x42U,0x18U,0x88U,0x42U,0x80U,0x80U,0xFCU,0x07U,0x83U, + 0x84U,0x20U,0x03U,0x42U,0x28U,0x88U,0x42U,0x80U,0xFEU,0x03U, + 0x83U,0x84U,0x42U,0xC0U,0x00U,0x84U,0x37U,0x03U,0x00U,0x41U, + 0x98U,0x08U,0x10U,0x12U,0x22U,0x04U,0x42U,0x05U,0x7CU,0x22U, + 0x03U,0x3CU,0x00U,0x00U,0x41U,0x92U,0x08U,0x20U,0x04U,0x42U, + 0x01U,0x7CU,0x22U,0x04U,0x3CU,0x00U,0x00U,0x41U,0x97U,0x08U, + 0x20U,0x03U,0x42U,0x08U,0x88U,0x3CU,0x00U,0x00U,0x41U,0x96U, + 0x08U,0x20U,0x03U,0x42U,0x10U,0x88U,0x3CU,0x00U,0x00U,0x41U, + 0x95U,0x08U,0x20U,0x03U,0x42U,0x18U,0x88U,0x3CU,0x00U,0x00U, + 0x41U,0x91U,0x08U,0x20U,0x04U,0x42U,0x08U,0x88U,0x3CU,0x00U, + 0x00U,0x41U,0x90U,0x08U,0x20U,0x04U,0x42U,0x10U,0x88U,0x3CU, + 0x00U,0x00U,0x41U,0x8FU,0x08U,0x20U,0x04U,0x42U,0x18U,0x88U, + 0x3CU,0x00U,0x00U,0x41U,0xBEU,0x12U,0x41U,0x06U,0x41U,0x80U, + 0x08U,0x20U,0x02U,0x41U,0x01U,0x10U,0x19U,0x1AU,0x41U,0xC4U, + 0x12U,0x41U,0x0BU,0x20U,0x00U,0x41U,0x20U,0x41U,0x80U,0x08U, + 0x20U,0x02U,0x10U,0x1CU,0x22U,0x03U,0x10U,0x11U,0x1AU,0x20U, + 0x03U,0x42U,0x7FU,0x57U,0x04U,0x40U,0x41U,0xD0U,0x12U,0x41U, + 0x1EU,0x42U,0xD5U,0x02U,0x10U,0x07U,0x1AU,0x0BU,0x41U,0xEEU, + 0x12U,0x41U,0x29U,0x42U,0xD8U,0x02U,0x10U,0x03U,0x1AU,0x20U, + 0x00U,0x41U,0xE0U,0x3EU,0x6AU,0x24U,0x00U,0x20U,0x03U,0x0BU, + 0x0BU,0xBBU,0x04U,0x07U,0x00U,0x41U,0x80U,0x08U,0x0BU,0x24U, + 0x12U,0x00U,0x60U,0x22U,0x80U,0x00U,0x00U,0x00U,0x24U,0x00U, + 0x00U,0x00U,0x00U,0x20U,0x1AU,0x00U,0x00U,0x00U,0x00U,0x20U, + 0x1BU,0x00U,0x00U,0x00U,0x00U,0x68U,0x40U,0x00U,0x00U,0x00U, + 0x00U,0x00U,0x00U,0x00U,0x73U,0x21U,0x00U,0x41U,0xC5U,0x08U, + 0x0BU,0x16U,0x81U,0x14U,0xB5U,0xF7U,0x62U,0x79U,0x8AU,0x53U, + 0xD5U,0x43U,0xA0U,0x14U,0xCAU,0xF8U,0xB2U,0x97U,0xCFU,0xF8U, + 0xF2U,0xF9U,0x37U,0xE8U,0x00U,0x41U,0xCFU,0x09U,0x0BU,0x02U, + 0xF0U,0x60U,0x00U,0x41U,0xA0U,0x0FU,0x0BU,0x0DU,0xE0U,0x60U, + 0x61U,0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0x83U, + 0x14U,0x00U,0x41U,0xC1U,0x0FU,0x0BU,0x31U,0xE1U,0x00U,0x00U, + 0x00U,0x00U,0x00U,0x00U,0x4DU,0x43U,0x00U,0x00U,0x00U,0x00U, + 0x00U,0x00U,0x00U,0x00U,0x61U,0xE3U,0x2EU,0x7AU,0x24U,0xA2U, + 0x38U,0xF1U,0xC6U,0x19U,0xD5U,0xF9U,0xDDU,0xCCU,0x41U,0xA9U, + 0x4BU,0x33U,0xB6U,0x6CU,0x01U,0x63U,0xF7U,0xEFU,0xCCU,0x8AU, + 0x19U,0xC9U,0xFDU,0x6FU,0x28U,0xDCU,0x00U,0x41U,0x80U,0x10U, + 0x0BU,0x1DU,0x59U,0x6FU,0x75U,0x20U,0x6DU,0x75U,0x73U,0x74U, + 0x20U,0x77U,0x61U,0x69U,0x74U,0x20U,0x30U,0x30U,0x30U,0x30U, + 0x30U,0x30U,0x30U,0x20U,0x73U,0x65U,0x63U,0x6FU,0x6EU,0x64U, + 0x73U,0x00U,0x41U,0x9EU,0x10U,0x0BU,0xF8U,0x02U,0x52U,0x65U, + 0x77U,0x61U,0x72U,0x64U,0x3AU,0x20U,0x50U,0x61U,0x73U,0x73U, + 0x69U,0x6EU,0x67U,0x20U,0x6EU,0x6FU,0x6EU,0x2DU,0x63U,0x6CU, + 0x61U,0x69U,0x6DU,0x20U,0x74U,0x78U,0x6EU,0x00U,0x52U,0x65U, + 0x77U,0x61U,0x72U,0x64U,0x3AU,0x20U,0x50U,0x61U,0x73U,0x73U, + 0x69U,0x6EU,0x67U,0x20U,0x6FU,0x75U,0x74U,0x67U,0x6FU,0x69U, + 0x6EU,0x67U,0x20U,0x74U,0x78U,0x6EU,0x00U,0x52U,0x52U,0x00U, + 0x52U,0x44U,0x00U,0x52U,0x65U,0x77U,0x61U,0x72U,0x64U,0x3AU, + 0x20U,0x52U,0x65U,0x77U,0x61U,0x72U,0x64U,0x73U,0x20U,0x61U, + 0x72U,0x65U,0x20U,0x64U,0x69U,0x73U,0x61U,0x62U,0x6CU,0x65U, + 0x64U,0x20U,0x62U,0x79U,0x20U,0x67U,0x6FU,0x76U,0x65U,0x72U, + 0x6EU,0x61U,0x6EU,0x63U,0x65U,0x2EU,0x00U,0x52U,0x65U,0x77U, + 0x61U,0x72U,0x64U,0x3AU,0x20U,0x52U,0x65U,0x77U,0x61U,0x72U, + 0x64U,0x73U,0x20U,0x69U,0x6EU,0x63U,0x6FU,0x72U,0x72U,0x65U, + 0x63U,0x74U,0x6CU,0x79U,0x20U,0x63U,0x6FU,0x6EU,0x66U,0x69U, + 0x67U,0x75U,0x72U,0x65U,0x64U,0x20U,0x62U,0x79U,0x20U,0x67U, + 0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x20U, + 0x6FU,0x72U,0x20U,0x75U,0x6EU,0x72U,0x65U,0x63U,0x6FU,0x76U, + 0x65U,0x72U,0x61U,0x62U,0x6CU,0x65U,0x20U,0x65U,0x72U,0x72U, + 0x6FU,0x72U,0x2EU,0x00U,0x52U,0x65U,0x77U,0x61U,0x72U,0x64U, + 0x3AU,0x20U,0x50U,0x61U,0x73U,0x73U,0x69U,0x6EU,0x67U,0x20U, + 0x72U,0x65U,0x77U,0x61U,0x72U,0x64U,0x20U,0x73U,0x65U,0x74U, + 0x75U,0x70U,0x20U,0x74U,0x78U,0x6EU,0x00U,0x61U,0x63U,0x63U, + 0x75U,0x6DU,0x75U,0x6CU,0x61U,0x74U,0x6FU,0x72U,0x00U,0x66U, + 0x69U,0x72U,0x73U,0x74U,0x00U,0x6CU,0x61U,0x73U,0x74U,0x00U, + 0x52U,0x65U,0x77U,0x61U,0x72U,0x64U,0x3AU,0x20U,0x41U,0x73U, + 0x73U,0x65U,0x72U,0x74U,0x69U,0x6FU,0x6EU,0x20U,0x66U,0x61U, + 0x69U,0x6CU,0x75U,0x72U,0x65U,0x2EU,0x00U,0x62U,0x61U,0x6CU, + 0x00U,0x78U,0x66U,0x6CU,0x5FU,0x72U,0x65U,0x77U,0x61U,0x72U, + 0x64U,0x00U,0x61U,0x76U,0x3AU,0x00U,0x65U,0x6DU,0x69U,0x74U, + 0x3AU,0x00U,0x65U,0x6DU,0x69U,0x74U,0x5FU,0x72U,0x65U,0x73U, + 0x75U,0x6CU,0x74U,0x00U,0x52U,0x65U,0x77U,0x61U,0x72U,0x64U, + 0x3AU,0x20U,0x45U,0x6DU,0x69U,0x74U,0x20U,0x6CU,0x6FU,0x6FU, + 0x70U,0x62U,0x61U,0x63U,0x6BU,0x20U,0x66U,0x61U,0x69U,0x6CU, + 0x65U,0x64U,0x2EU,0x00U,0x52U,0x65U,0x77U,0x61U,0x72U,0x64U, + 0x3AU,0x20U,0x45U,0x6DU,0x69U,0x74U,0x74U,0x65U,0x64U,0x20U, + 0x72U,0x65U,0x77U,0x61U,0x72U,0x64U,0x20U,0x74U,0x78U,0x6EU, + 0x20U,0x73U,0x75U,0x63U,0x63U,0x65U,0x73U,0x73U,0x66U,0x75U, + 0x6CU,0x6CU,0x79U,0x2EU }; #endif // XAHAU_GENESIS_HOOKS diff --git a/src/ripple/app/tx/impl/XahauGenesis.h b/src/ripple/app/tx/impl/XahauGenesis.h index 12675fb59..9f65dae07 100644 --- a/src/ripple/app/tx/impl/XahauGenesis.h +++ b/src/ripple/app/tx/impl/XahauGenesis.h @@ -45,8 +45,9 @@ namespace XahauGenesis // 1.003274 -xfl-> 6089869970204910592 -le-> 0x00E461EE78908354 {{'I', 'R', 'R'}, {0x00U, 0xE4U, 0x61U, 0xEEU, 0x78U, 0x90U, 0x83U, 0x54U}}, - // initial reward delay is 365*24*60*60/12 = 2628000 = 0x2819A0 -LEu64-> A019280000000000 - {{'I', 'R', 'D'}, {0xA0U, 0x19U, 0x28U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U}} + // initial reward delay is xfl le -> 00806AACAF3C0956 -> 2600000 dec + {{'I', 'R', 'D'}, {0x00U, 0x80U, 0x6AU, 0xACU, 0xAFU, 0x3CU, 0x09U, 0x56U}} + }; // For the Reward Hook: HookOn is set to ttCLAIM_REWARD only diff --git a/src/test/app/XahauGenesis_test.cpp b/src/test/app/XahauGenesis_test.cpp index f05aa144c..b11f1d65c 100644 --- a/src/test/app/XahauGenesis_test.cpp +++ b/src/test/app/XahauGenesis_test.cpp @@ -609,6 +609,28 @@ struct XahauGenesis_test : public beast::unit_test::suite std::vector const null_data {0,0,0,0,0,0,0,0}; doL1Vote(__LINE__, david, 'R', 'R', null_data, vote_data, false); } + + // 100% vote for a different reward delay + { + // this will be the new reward delay + std::vector vote_data {0x00U,0x80U,0xC6U,0xA4U,0x7EU,0x8DU,0x03U,0x55U}; + + // this is the default reward delay + std::vector const original_data {0x00U,0x80U,0x6AU,0xACU,0xAFU,0x3CU,0x09U,0x56U}; + + doL1Vote(__LINE__, edward, 'R', 'D', vote_data, original_data, false); + doL1Vote(__LINE__, david, 'R', 'D', vote_data, original_data, false); + doL1Vote(__LINE__, carol, 'R', 'D', vote_data, original_data, false); + doL1Vote(__LINE__, bob, 'R', 'D', vote_data, original_data, false); + doL1Vote(__LINE__, alice, 'R', 'D', vote_data, original_data, true); + + // reverting a vote should not undo the action + doL1Vote(__LINE__, david, 'R', 'D', original_data, vote_data, false); + + // submitting a null vote should delete the vote, and should not undo the action + std::vector const null_data {0,0,0,0,0,0,0,0}; + doL1Vote(__LINE__, alice, 'R', 'D', null_data, vote_data, false); + } uint8_t const member_count_key[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'M','C'};