Begin work on pseudo mnemonics in the checker

This commit is contained in:
gingerBill
2026-08-20 19:12:44 +01:00
parent cfb8a109b6
commit 7a7bfea0bd
8 changed files with 315 additions and 96 deletions

View File

@@ -294,7 +294,7 @@ main :: proc() {
return found ? *found : PM_INVALID;
}
PseudoAlias pseudo_alias(PseudoMnemonic pm) {
PseudoAlias pseudo_alias(u16 pm) {
PseudoAlias *pa = (PseudoAlias *)raw_pseudo_aliases;
return pa[pm];
}
@@ -409,7 +409,7 @@ main :: proc() {
strings.write_string(&sb, "\n")
strings.write_string(&sb, "\tStringMap<Mnemonic> mnemonic_map;\n")
strings.write_string(&sb, "\tStringMap<Register> register_map;\n")
strings.write_string(&sb, "\tStringMap<PseudoMnemonic> pseudo_register_map;\n")
strings.write_string(&sb, "\tStringMap<PseudoMnemonic> pseudo_mnemonic_map;\n")
strings.write_string(&sb, """

View File

@@ -340,8 +340,16 @@ main :: proc() {
strings.write_string(&sb, "\n");
strings.write_string(&sb, "\n");
strings.write_string(&sb, """
enum AliasSrc : u8 {
AliasSrc_NONE, // slot unused
};
struct PseudoAlias {
Mnemonic target;
Mnemonic target; // real instruction emitted
AliasSrc src[4]; // how to fill target's four operand slots
i16 lit; // immediate when a src slot is AliasSrc_LIT
u16 csr; // CSR address when a src slot is AliasSrc_CSR_LIT
u8 nargs; // operands the user supplies (ARG0..<ARGn)
};
enum PseudoMnemonic : u16 {
PM_INVALID,
@@ -352,11 +360,14 @@ main :: proc() {
return PM_INVALID;
}
PseudoAlias pseudo_alias(PseudoMnemonic pm) {
PseudoAlias pseudo_alias(u16 pm) {
return {};
}
""")
strings.write_string(&sb, "\tstatic String const pseudo_mnemonic_strings[PSEUDO_MNEMONIC_COUNT];\n")
strings.write_string(&sb, "\n")
strings.write_string(&sb, "\tstatic u16 const register_codes [REG_COUNT];\n")
strings.write_string(&sb, "\tstatic String const register_strings[REG_COUNT];\n")
@@ -774,6 +785,8 @@ main :: proc() {
strings.write_string(&sb, "\n");
}
fmt.sbprintf(&sb, "String const Asm_{0:s}::pseudo_mnemonic_strings[Asm_{0:s}::PSEUDO_MNEMONIC_COUNT] {{}};\n", ISA_NAME)
{
fmt.sbprintf(&sb, "u16 const Asm_{0:s}::register_codes[Asm_{0:s}::REG_COUNT] {{\n", ISA_NAME)
defer strings.write_string(&sb, "};\n");

View File

@@ -56,7 +56,7 @@ gb_global String const asm_operand_kind_expected_strings[AsmOperand_COUNT] = {
#include "asm_tables_amd64.cpp"
#include "asm_tables_riscv.cpp"
void init_asm_tables(i64 word_size) {
g_asm_amd64.init(word_size);
g_asm_riscv.init(word_size);
void init_asm_tables(i64 word_size_bytes) {
g_asm_amd64.init(word_size_bytes*8);
g_asm_riscv.init(word_size_bytes*8);
}

View File

@@ -339,6 +339,31 @@ struct Asm_amd64 {
string_set_update(clobber_registers_set, make_string_c(rname));
}
}
enum AliasSrc : u8 {
AliasSrc_NONE, // slot unused
};
struct PseudoAlias {
Mnemonic target; // real instruction emitted
AliasSrc src[4]; // how to fill target's four operand slots
i16 lit; // immediate when a src slot is AliasSrc_LIT
u16 csr; // CSR address when a src slot is AliasSrc_CSR_LIT
u8 nargs; // operands the user supplies (ARG0..<ARGn)
};
enum PseudoMnemonic : u16 {
PM_INVALID,
PSEUDO_MNEMONIC_COUNT
};
PseudoMnemonic pseudo_mnemonic_lookup(String const &name) {
return PM_INVALID;
}
PseudoAlias pseudo_alias(u16 pm) {
return {};
} static String const pseudo_mnemonic_strings[PSEUDO_MNEMONIC_COUNT];
static u16 const register_codes [REG_COUNT];
static String const register_strings[REG_COUNT];
@@ -787,6 +812,7 @@ String const Asm_amd64::mnemonic_strings[Asm_amd64::MNEMONIC_COUNT] {
String const Asm_amd64::prefix_strings[Asm_amd64::PREFIX_COUNT] {
str_lit(""), str_lit("es"), str_lit("cs"), str_lit("ss"), str_lit("ds"), str_lit("rex"), str_lit("evex"), str_lit("fs"), str_lit("gs"), str_lit("vex"), str_lit("lock"), str_lit("repne"), str_lit("rep"),
};
String const Asm_amd64::pseudo_mnemonic_strings[Asm_amd64::PSEUDO_MNEMONIC_COUNT] {};
u16 const Asm_amd64::register_codes[Asm_amd64::REG_COUNT] {
0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
271, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526,

View File

@@ -23,7 +23,12 @@ struct Asm_riscv {
M_FLT_D, M_FLE_D, M_FCLASS_D, M_FCVT_W_D, M_FCVT_WU_D, M_FCVT_D_W, M_FCVT_D_WU, M_FCVT_L_D, M_FCVT_LU_D, M_FCVT_D_L, M_FCVT_D_LU, M_FMV_X_D, M_FMV_D_X, M_C_NOP, M_C_EBREAK, M_C_ADDI4SPN,
M_C_LW, M_C_LD, M_C_SW, M_C_SD, M_C_FLW, M_C_FSW, M_C_FLD, M_C_FSD, M_C_ADDI, M_C_ADDIW, M_C_LI, M_C_LUI, M_C_ADDI16SP, M_C_SRLI, M_C_SRAI, M_C_ANDI,
M_C_SUB, M_C_XOR, M_C_OR, M_C_AND, M_C_SUBW, M_C_ADDW, M_C_J, M_C_JAL, M_C_BEQZ, M_C_BNEZ, M_C_SLLI, M_C_LWSP, M_C_LDSP, M_C_SWSP, M_C_SDSP, M_C_FLDSP,
M_C_FSDSP, M_C_JR, M_C_JALR, M_C_MV, M_C_ADD, M_C_FLWSP, M_C_FSWSP,
M_C_FSDSP, M_C_JR, M_C_JALR, M_C_MV, M_C_ADD, M_C_FLWSP, M_C_FSWSP, M_SH1ADD, M_SH2ADD, M_SH3ADD, M_ADD_UW, M_SH1ADD_UW, M_SH2ADD_UW, M_SH3ADD_UW, M_SLLI_UW, M_ANDN,
M_ORN, M_XNOR, M_CLZ, M_CTZ, M_CPOP, M_SEXT_B, M_SEXT_H, M_ZEXT_H, M_MIN, M_MINU, M_MAX, M_MAXU, M_ROL, M_ROR, M_RORI, M_ORC_B,
M_REV8, M_CLZW, M_CTZW, M_CPOPW, M_ROLW, M_RORW, M_RORIW, M_CLMUL, M_CLMULH, M_CLMULR, M_BCLR, M_BCLRI, M_BEXT, M_BEXTI, M_BINV, M_BINVI,
M_BSET, M_BSETI, M_CZERO_EQZ, M_CZERO_NEZ, M_FLH, M_FSH, M_FMADD_H, M_FMSUB_H, M_FNMSUB_H, M_FNMADD_H, M_FADD_H, M_FSUB_H, M_FMUL_H, M_FDIV_H, M_FSQRT_H, M_FSGNJ_H,
M_FSGNJN_H, M_FSGNJX_H, M_FMIN_H, M_FMAX_H, M_FCVT_W_H, M_FCVT_WU_H, M_FCVT_L_H, M_FCVT_LU_H, M_FCVT_H_W, M_FCVT_H_WU, M_FCVT_H_L, M_FCVT_H_LU, M_FCVT_S_H, M_FCVT_H_S, M_FCVT_D_H, M_FCVT_H_D,
M_FMV_X_H, M_FMV_H_X, M_FCLASS_H, M_FEQ_H, M_FLT_H, M_FLE_H, M_MRET, M_SRET, M_WFI, M_SFENCE_VMA,
MNEMONIC_COUNT
};
@@ -174,7 +179,7 @@ struct Asm_riscv {
return (cast(u16)side_effects & SideEffectFlag_CONTROL) != 0;
}
bool has_halt() const {
return false;
return (cast(u16)side_effects & SideEffectFlag_TRAP) != 0;
}
bool is_conditional() const {
return has_control();
@@ -192,6 +197,55 @@ struct Asm_riscv {
string_set_update(clobber_registers_set, make_string_c(rname));
}
}
enum AliasSrc : u8 {
AliasSrc_NONE, // slot unused
AliasSrc_ARG0, // user's 1st operand
AliasSrc_ARG1, // user's 2nd operand
AliasSrc_ARG2, // user's 3rd operand
AliasSrc_X0, // hardwired zero (x0)
AliasSrc_X1, // link register (ra / x1)
AliasSrc_LIT, // the `lit` field below (immediate literal)
AliasSrc_CSR_LIT, // the `csr` field below (fixed 12-bit CSR address)
};
struct PseudoAlias {
Mnemonic target; // real instruction emitted
AliasSrc src[4]; // how to fill target's four operand slots
i16 lit; // immediate when a src slot is AliasSrc_LIT
u16 csr; // CSR address when a src slot is AliasSrc_CSR_LIT
u8 nargs; // operands the user supplies (ARG0..<ARGn)
bool rv32_only; // base gate (the *h counter reads)
};
enum PseudoMnemonic : u16 {
PM_INVALID, PM_NOP, PM_MV, PM_NOT,
PM_NEG, PM_NEGW, PM_SEXT_W, PM_ZEXT_B,
PM_SEQZ, PM_SNEZ, PM_SLTZ, PM_SGTZ,
PM_BEQZ, PM_BNEZ, PM_BLEZ, PM_BGEZ,
PM_BLTZ, PM_BGTZ, PM_BGT, PM_BLE,
PM_BGTU, PM_BLEU, PM_J, PM_JAL_RA,
PM_JR, PM_JALR_RA, PM_RET, PM_CSRR,
PM_CSRW, PM_CSRS, PM_CSRC, PM_CSRWI,
PM_CSRSI, PM_CSRCI, PM_RDCYCLE, PM_RDTIME,
PM_RDINSTRET, PM_RDCYCLEH, PM_RDTIMEH, PM_RDINSTRETH,
PM_FRCSR, PM_FSCSR, PM_FRRM, PM_FSRM,
PM_FRFLAGS, PM_FSFLAGS, PM_FSRMI, PM_FSFLAGSI,
PM_FMV_S, PM_FABS_S, PM_FNEG_S, PM_FMV_D,
PM_FABS_D, PM_FNEG_D, PM_FMV_H, PM_FABS_H,
PM_FNEG_H, PM_FENCE_ALL,
PSEUDO_MNEMONIC_COUNT
};
PseudoMnemonic pseudo_mnemonic_lookup(String const &name) {
PseudoMnemonic *found = string_map_get(&pseudo_mnemonic_map, name);
return found ? *found : PM_INVALID;
}
PseudoAlias pseudo_alias(u16 pm) {
PseudoAlias *pa = (PseudoAlias *)raw_pseudo_aliases;
return pa[pm];
} static String const pseudo_mnemonic_strings[PSEUDO_MNEMONIC_COUNT];
static u16 const register_codes [REG_COUNT];
static String const register_strings[REG_COUNT];
@@ -276,7 +330,7 @@ struct Asm_riscv {
};
enum Feature : u8 {
enum Feature : u16 {
ENC_I,
ENC_M,
ENC_A,
@@ -285,6 +339,13 @@ struct Asm_riscv {
ENC_ZICSR,
ENC_ZIFENCEI,
ENC_C,
ENC_ZBA,
ENC_ZBB,
ENC_ZBC,
ENC_ZBS,
ENC_ZICOND,
ENC_ZFH,
ENC_PRIV,
};
typedef u8 EncodingFlags; // cannot use a C++ bit field to due lack of portability
@@ -303,7 +364,7 @@ struct Asm_riscv {
u8 explicit_count() const { return cast(u8)((flags>>4u)&((1u<<3)-1)); }
};
#pragma pack(pop)
GB_STATIC_ASSERT(gb_size_of(Encoding) == 20);
GB_STATIC_ASSERT(gb_size_of(Encoding) == 21);
// Companion run index: ENCODE_RUNS[mnemonic] -> contiguous run in ENCODE_FORMS.
@@ -313,12 +374,14 @@ struct Asm_riscv {
};
static EncodeRun const raw_encode_runs [199];
static u8 const raw_encode_forms [3960];
static u8 const raw_clobber_forms[1782];
static EncodeRun const raw_encode_runs [282];
static u8 const raw_encode_forms [5943];
static u8 const raw_clobber_forms [2547];
static u8 const raw_pseudo_aliases[696];
StringMap<Mnemonic> mnemonic_map;
StringMap<Register> register_map;
StringMap<PseudoMnemonic> pseudo_mnemonic_map;
u16 XLEN;
u16 FLEN;
@@ -331,6 +394,12 @@ struct Asm_riscv {
for (u16 m = M_INVALID+1; m < MNEMONIC_COUNT; m++) {
string_map_set(&mnemonic_map, mnemonic_strings[m], cast(Mnemonic)m);
}
string_map_init(&mnemonic_map, PSEUDO_MNEMONIC_COUNT*2);
for (u16 m = PM_INVALID+1; m < PSEUDO_MNEMONIC_COUNT; m++) {
string_map_set(&pseudo_mnemonic_map, pseudo_mnemonic_strings[m], cast(PseudoMnemonic)m);
}
string_map_init(&register_map, REG_COUNT*2);
for (u16 r = REG_INVALID+1; r < REG_COUNT; r++) {
string_map_set(&register_map, register_strings[r], cast(Register)r);
@@ -495,8 +564,8 @@ struct Asm_riscv {
case OP_FPR_C:
return FLEN;
// Memory -> access size (like OP_M*). Base OP_MEM's size comes from the
// opcode, so it's sizeless like x86 OP_M. Compressed forms name the size.
// Memory -> access size (like OP_M*). Base OP_MEM's size comes from the opcode.
// Compressed forms name the size.
case OP_MEM:
return 0;
case OP_MEM_C_W:
@@ -506,7 +575,7 @@ struct Asm_riscv {
case OP_MEM_C_SP_D:
return 64;
// Immediates -> value width (unchanged; matches x86 OP_IMM*).
// Immediates -> value width
case OP_IMM12:
case OP_IMM12U:
case OP_CSR:
@@ -532,7 +601,7 @@ struct Asm_riscv {
case OP_IMM_C18S:
return 18;
// Rels -> displacement value width (unchanged; matches x86 OP_REL*).
// Rels -> displacement value width
case OP_REL13:
return 13;
case OP_REL21:
@@ -589,7 +658,12 @@ String const Asm_riscv::mnemonic_strings[Asm_riscv::MNEMONIC_COUNT] {
str_lit("flt_d"), str_lit("fle_d"), str_lit("fclass_d"), str_lit("fcvt_w_d"), str_lit("fcvt_wu_d"), str_lit("fcvt_d_w"), str_lit("fcvt_d_wu"), str_lit("fcvt_l_d"), str_lit("fcvt_lu_d"), str_lit("fcvt_d_l"), str_lit("fcvt_d_lu"), str_lit("fmv_x_d"), str_lit("fmv_d_x"), str_lit("c_nop"), str_lit("c_ebreak"), str_lit("c_addi4spn"),
str_lit("c_lw"), str_lit("c_ld"), str_lit("c_sw"), str_lit("c_sd"), str_lit("c_flw"), str_lit("c_fsw"), str_lit("c_fld"), str_lit("c_fsd"), str_lit("c_addi"), str_lit("c_addiw"), str_lit("c_li"), str_lit("c_lui"), str_lit("c_addi16sp"), str_lit("c_srli"), str_lit("c_srai"), str_lit("c_andi"),
str_lit("c_sub"), str_lit("c_xor"), str_lit("c_or"), str_lit("c_and"), str_lit("c_subw"), str_lit("c_addw"), str_lit("c_j"), str_lit("c_jal"), str_lit("c_beqz"), str_lit("c_bnez"), str_lit("c_slli"), str_lit("c_lwsp"), str_lit("c_ldsp"), str_lit("c_swsp"), str_lit("c_sdsp"), str_lit("c_fldsp"),
str_lit("c_fsdsp"), str_lit("c_jr"), str_lit("c_jalr"), str_lit("c_mv"), str_lit("c_add"), str_lit("c_flwsp"), str_lit("c_fswsp"),
str_lit("c_fsdsp"), str_lit("c_jr"), str_lit("c_jalr"), str_lit("c_mv"), str_lit("c_add"), str_lit("c_flwsp"), str_lit("c_fswsp"), str_lit("sh1add"), str_lit("sh2add"), str_lit("sh3add"), str_lit("add_uw"), str_lit("sh1add_uw"), str_lit("sh2add_uw"), str_lit("sh3add_uw"), str_lit("slli_uw"), str_lit("andn"),
str_lit("orn"), str_lit("xnor"), str_lit("clz"), str_lit("ctz"), str_lit("cpop"), str_lit("sext_b"), str_lit("sext_h"), str_lit("zext_h"), str_lit("min"), str_lit("minu"), str_lit("max"), str_lit("maxu"), str_lit("rol"), str_lit("ror"), str_lit("rori"), str_lit("orc_b"),
str_lit("rev8"), str_lit("clzw"), str_lit("ctzw"), str_lit("cpopw"), str_lit("rolw"), str_lit("rorw"), str_lit("roriw"), str_lit("clmul"), str_lit("clmulh"), str_lit("clmulr"), str_lit("bclr"), str_lit("bclri"), str_lit("bext"), str_lit("bexti"), str_lit("binv"), str_lit("binvi"),
str_lit("bset"), str_lit("bseti"), str_lit("czero_eqz"), str_lit("czero_nez"), str_lit("flh"), str_lit("fsh"), str_lit("fmadd_h"), str_lit("fmsub_h"), str_lit("fnmsub_h"), str_lit("fnmadd_h"), str_lit("fadd_h"), str_lit("fsub_h"), str_lit("fmul_h"), str_lit("fdiv_h"), str_lit("fsqrt_h"), str_lit("fsgnj_h"),
str_lit("fsgnjn_h"), str_lit("fsgnjx_h"), str_lit("fmin_h"), str_lit("fmax_h"), str_lit("fcvt_w_h"), str_lit("fcvt_wu_h"), str_lit("fcvt_l_h"), str_lit("fcvt_lu_h"), str_lit("fcvt_h_w"), str_lit("fcvt_h_wu"), str_lit("fcvt_h_l"), str_lit("fcvt_h_lu"), str_lit("fcvt_s_h"), str_lit("fcvt_h_s"), str_lit("fcvt_d_h"), str_lit("fcvt_h_d"),
str_lit("fmv_x_h"), str_lit("fmv_h_x"), str_lit("fclass_h"), str_lit("feq_h"), str_lit("flt_h"), str_lit("fle_h"), str_lit("mret"), str_lit("sret"), str_lit("wfi"), str_lit("sfence_vma"),
};
u16 const Asm_riscv::register_codes[Asm_riscv::REG_COUNT] {
0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
@@ -605,7 +679,17 @@ String const Asm_riscv::register_strings[Asm_riscv::REG_COUNT] {
str_lit("fa5"), str_lit("fa6"), str_lit("fa7"), str_lit("fs2"), str_lit("fs3"), str_lit("fs4"), str_lit("fs5"), str_lit("fs6"), str_lit("fs7"), str_lit("fs8"), str_lit("fs9"), str_lit("fs10"), str_lit("fs11"), str_lit("ft8"), str_lit("ft9"), str_lit("ft10"),
str_lit("ft11"),
};
Asm_riscv::EncodeRun const Asm_riscv::raw_encode_runs[199] = {
String const Asm_riscv::pseudo_mnemonic_strings[Asm_riscv::PSEUDO_MNEMONIC_COUNT] {
str_lit(""), str_lit("nop"), str_lit("mv"), str_lit("not"), str_lit("neg"), str_lit("negw"), str_lit("sext_w"), str_lit("zext_b"),
str_lit("seqz"), str_lit("snez"), str_lit("sltz"), str_lit("sgtz"), str_lit("beqz"), str_lit("bnez"), str_lit("blez"), str_lit("bgez"),
str_lit("bltz"), str_lit("bgtz"), str_lit("bgt"), str_lit("ble"), str_lit("bgtu"), str_lit("bleu"), str_lit("j"), str_lit("jal_ra"),
str_lit("jr"), str_lit("jalr_ra"), str_lit("ret"), str_lit("csrr"), str_lit("csrw"), str_lit("csrs"), str_lit("csrc"), str_lit("csrwi"),
str_lit("csrsi"), str_lit("csrci"), str_lit("rdcycle"), str_lit("rdtime"), str_lit("rdinstret"), str_lit("rdcycleh"), str_lit("rdtimeh"), str_lit("rdinstreth"),
str_lit("frcsr"), str_lit("fscsr"), str_lit("frrm"), str_lit("fsrm"), str_lit("frflags"), str_lit("fsflags"), str_lit("fsrmi"), str_lit("fsflagsi"),
str_lit("fmv_s"), str_lit("fabs_s"), str_lit("fneg_s"), str_lit("fmv_d"), str_lit("fabs_d"), str_lit("fneg_d"), str_lit("fmv_h"), str_lit("fabs_h"),
str_lit("fneg_h"), str_lit("fence_all"),
};
Asm_riscv::EncodeRun const Asm_riscv::raw_encode_runs[282] = {
{ 0, 0}, { 0, 1}, { 1, 1}, { 2, 1}, { 3, 1}, { 4, 1}, { 5, 1}, { 6, 1}, { 7, 1}, { 8, 1}, { 9, 1}, { 10, 1}, { 11, 1}, { 12, 1}, { 13, 1}, { 14, 1},
{ 15, 1}, { 16, 1}, { 17, 1}, { 18, 1}, { 19, 1}, { 20, 1}, { 21, 1}, { 22, 1}, { 23, 1}, { 24, 1}, { 25, 1}, { 26, 1}, { 27, 1}, { 28, 1}, { 29, 1}, { 30, 1},
{ 31, 1}, { 32, 1}, { 33, 1}, { 34, 1}, { 35, 1}, { 36, 1}, { 37, 1}, { 38, 1}, { 39, 1}, { 40, 1}, { 41, 1}, { 42, 1}, { 43, 1}, { 44, 1}, { 45, 1}, { 46, 1},
@@ -618,73 +702,109 @@ Asm_riscv::EncodeRun const Asm_riscv::raw_encode_runs[199] = {
{ 143, 1}, { 144, 1}, { 145, 1}, { 146, 1}, { 147, 1}, { 148, 1}, { 149, 1}, { 150, 1}, { 151, 1}, { 152, 1}, { 153, 1}, { 154, 1}, { 155, 1}, { 156, 1}, { 157, 1}, { 158, 1},
{ 159, 1}, { 160, 1}, { 161, 1}, { 162, 1}, { 163, 1}, { 164, 1}, { 165, 1}, { 166, 1}, { 167, 1}, { 168, 1}, { 169, 1}, { 170, 1}, { 171, 1}, { 172, 1}, { 173, 1}, { 174, 1},
{ 175, 1}, { 176, 1}, { 177, 1}, { 178, 1}, { 179, 1}, { 180, 1}, { 181, 1}, { 182, 1}, { 183, 1}, { 184, 1}, { 185, 1}, { 186, 1}, { 187, 1}, { 188, 1}, { 189, 1}, { 190, 1},
{ 191, 1}, { 192, 1}, { 193, 1}, { 194, 1}, { 195, 1}, { 196, 1}, { 197, 1},
{ 191, 1}, { 192, 1}, { 193, 1}, { 194, 1}, { 195, 1}, { 196, 1}, { 197, 1}, { 198, 1}, { 199, 1}, { 200, 1}, { 201, 1}, { 202, 1}, { 203, 1}, { 204, 1}, { 205, 1}, { 206, 1},
{ 207, 1}, { 208, 1}, { 209, 1}, { 210, 1}, { 211, 1}, { 212, 1}, { 213, 1}, { 214, 2}, { 216, 1}, { 217, 1}, { 218, 1}, { 219, 1}, { 220, 1}, { 221, 1}, { 222, 1}, { 223, 1},
{ 224, 2}, { 226, 1}, { 227, 1}, { 228, 1}, { 229, 1}, { 230, 1}, { 231, 1}, { 232, 1}, { 233, 1}, { 234, 1}, { 235, 1}, { 236, 1}, { 237, 1}, { 238, 1}, { 239, 1}, { 240, 1},
{ 241, 1}, { 242, 1}, { 243, 1}, { 244, 1}, { 245, 1}, { 246, 1}, { 247, 1}, { 248, 1}, { 249, 1}, { 250, 1}, { 251, 1}, { 252, 1}, { 253, 1}, { 254, 1}, { 255, 1}, { 256, 1},
{ 257, 1}, { 258, 1}, { 259, 1}, { 260, 1}, { 261, 1}, { 262, 1}, { 263, 1}, { 264, 1}, { 265, 1}, { 266, 1}, { 267, 1}, { 268, 1}, { 269, 1}, { 270, 1}, { 271, 1}, { 272, 1},
{ 273, 1}, { 274, 1}, { 275, 1}, { 276, 1}, { 277, 1}, { 278, 1}, { 279, 1}, { 280, 1}, { 281, 1}, { 282, 1},
};
u8 const Asm_riscv::raw_encode_forms[3960] = {
0x01, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x09, 0x00, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x01, 0x01,
0x03, 0x00, 0x01, 0x02, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x04, 0x05, 0x00, 0x01, 0x01, 0x08, 0x00, 0x02, 0x03, 0x09, 0x00, 0x63, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x04, 0x06, 0x00, 0x01, 0x01, 0x08, 0x00, 0x02, 0x03, 0x09, 0x00, 0x63, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x01, 0x01, 0x08, 0x00, 0x02, 0x03,
0x09, 0x00, 0x63, 0x40, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, 0x01, 0x01, 0x08, 0x00, 0x02, 0x03, 0x09, 0x00, 0x63, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x04, 0x09, 0x00, 0x01, 0x01, 0x08, 0x00, 0x02, 0x03, 0x09, 0x00, 0x63, 0x60, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x00, 0x01, 0x01, 0x08, 0x00, 0x02, 0x03, 0x09, 0x00, 0x63, 0x70,
0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x04, 0x0b, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x20, 0x00, 0x00, 0x7f, 0x70,
0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x40, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x03, 0x0d, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00,
0x11, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x03, 0x0d, 0x00, 0x00, 0x23, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x03, 0x0d, 0x00, 0x00, 0x23, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x60, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x02, 0x14, 0x00, 0x01, 0x0a,
0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x03, 0x0d, 0x00, 0x00, 0x23, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x02, 0x16, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02,
0x07, 0x00, 0x13, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02, 0x07, 0x00, 0x13, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02, 0x07, 0x00, 0x13, 0x40, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02, 0x07, 0x00, 0x13, 0x60,
0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02, 0x07, 0x00, 0x13, 0x70, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x01, 0x01, 0x06, 0x00, 0x01, 0x02, 0x06, 0x00, 0x13, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfc, 0x00, 0x00, 0x1d, 0x00, 0x01, 0x01, 0x06, 0x00, 0x01, 0x02, 0x06, 0x00, 0x13, 0x50, 0x00, 0x00, 0x7f, 0x70,
0x00, 0xfc, 0x00, 0x00, 0x1e, 0x00, 0x01, 0x01, 0x06, 0x00, 0x01, 0x02, 0x06, 0x00, 0x13, 0x50, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xfc, 0x00, 0x00, 0x1f, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02, 0x07, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x01, 0x01, 0x05, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1b, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x02,
0x21, 0x00, 0x01, 0x01, 0x05, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1b, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x02, 0x22, 0x00, 0x01, 0x01, 0x05, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1b, 0x50, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x02, 0x23, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x24, 0x00, 0x01, 0x01,
0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x00, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x25, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x26, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x27, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02,
0x03, 0x00, 0x33, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x28, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x40, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x29, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x2a, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x50,
0x00, 0x40, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x2b, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x60, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x2c, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x70, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x2d, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x7f, 0x70,
0x00, 0xfe, 0x00, 0x02, 0x2e, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x00, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x02, 0x2f, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x02, 0x30, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x02,
0x31, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x50, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x02, 0x32, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x11, 0x12, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x06, 0x00, 0x34, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x04, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x10, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x04, 0x36, 0x00, 0x01, 0x0b, 0x01, 0x00, 0x01, 0x0f, 0x02, 0x00, 0x73, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x05, 0x00, 0x37, 0x00, 0x01, 0x0b, 0x01, 0x00, 0x01, 0x0f,
0x02, 0x00, 0x73, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x05, 0x00, 0x38, 0x00, 0x01, 0x0b, 0x01, 0x00, 0x01, 0x0f, 0x02, 0x00, 0x73, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x05, 0x00, 0x39, 0x00, 0x01, 0x0b, 0x0e, 0x00, 0x01, 0x0f, 0x10, 0x00, 0x73, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x05, 0x00, 0x3a, 0x00, 0x01, 0x0b, 0x0e, 0x00, 0x01, 0x0f, 0x10, 0x00, 0x73, 0x60,
0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x05, 0x00, 0x3b, 0x00, 0x01, 0x0b, 0x0e, 0x00, 0x01, 0x0f, 0x10, 0x00, 0x73, 0x70, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x05, 0x00, 0x3c, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x00, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x3d, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x10, 0x00, 0x02, 0x7f, 0x70,
0x00, 0xfe, 0x01, 0x00, 0x3e, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x20, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x3f, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x30, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x40, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x40, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00,
0x41, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x50, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x42, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x60, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x43, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x70, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x44, 0x00, 0x01, 0x01,
0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x00, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x02, 0x45, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x40, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x02, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x50, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x02, 0x47, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02,
0x03, 0x00, 0x3b, 0x60, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x02, 0x48, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x70, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x02, 0x49, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x2f, 0x20, 0x00, 0x10, 0x7f, 0x70, 0xf0, 0xf9, 0x02, 0x00, 0x4a, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20,
0x00, 0x18, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x4b, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x08, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x4c, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x4d, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x20, 0x7f, 0x70,
0x00, 0xf8, 0x02, 0x00, 0x4e, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x60, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x4f, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x50, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x80, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00,
0x51, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0xa0, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x52, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0xc0, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x53, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0xe0, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x54, 0x00, 0x01, 0x0a,
0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x2f, 0x30, 0x00, 0x10, 0x7f, 0x70, 0xf0, 0xf9, 0x02, 0x02, 0x55, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0x18, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x02, 0x56, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0x08, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x02, 0x57, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03,
0x0e, 0x00, 0x2f, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x02, 0x58, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x02, 0x59, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0x60, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x02, 0x5a, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30,
0x00, 0x40, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x02, 0x5b, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0x80, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x02, 0x5c, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0xa0, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x02, 0x5d, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0xc0, 0x7f, 0x70,
0x00, 0xf8, 0x02, 0x02, 0x5e, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0xe0, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x02, 0x5f, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x07, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x03, 0x00, 0x60, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x03, 0x0d, 0x00, 0x00, 0x27, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x03, 0x00,
0x61, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x43, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x06, 0x03, 0x08, 0x62, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x47, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x06, 0x03, 0x08, 0x63, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x4b, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x06, 0x03, 0x08, 0x64, 0x00, 0x02, 0x02,
0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x4f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x06, 0x03, 0x08, 0x65, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xfe, 0x03, 0x08, 0x66, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x08, 0x7f, 0x00, 0x00, 0xfe, 0x03, 0x08, 0x67, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02,
0x03, 0x00, 0x53, 0x00, 0x00, 0x10, 0x7f, 0x00, 0x00, 0xfe, 0x03, 0x08, 0x68, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x18, 0x7f, 0x00, 0x00, 0xfe, 0x03, 0x08, 0x69, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0x58, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x08, 0x6a, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00,
0x00, 0x20, 0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x6b, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x6c, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x20, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x6d, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x28, 0x7f, 0x70,
0x00, 0xfe, 0x03, 0x00, 0x6e, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0x28, 0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x6f, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x08, 0x70, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x10, 0xc0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x08,
0x71, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xe0, 0x7f, 0x70, 0xf0, 0xff, 0x03, 0x00, 0x72, 0x00, 0x01, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x20, 0x00, 0xa0, 0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x73, 0x00, 0x01, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0xa0, 0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x74, 0x00, 0x01, 0x02,
0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0xa0, 0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x75, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x10, 0x00, 0xe0, 0x7f, 0x70, 0xf0, 0xff, 0x03, 0x00, 0x76, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xd0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x08, 0x77, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02,
0x00, 0x00, 0x53, 0x00, 0x10, 0xd0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x08, 0x78, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xf0, 0x7f, 0x70, 0xf0, 0xff, 0x03, 0x00, 0x79, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x20, 0xc0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x0a, 0x7a, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00,
0x30, 0xc0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x0a, 0x7b, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x20, 0xd0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x0a, 0x7c, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x30, 0xd0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x0a, 0x7d, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x07, 0x30, 0x00, 0x00, 0x7f, 0x70,
0x00, 0x00, 0x04, 0x00, 0x7e, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x03, 0x0d, 0x00, 0x00, 0x27, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x43, 0x00, 0x00, 0x02, 0x7f, 0x00, 0x00, 0x06, 0x04, 0x08, 0x80, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x47, 0x00, 0x00, 0x02, 0x7f, 0x00, 0x00, 0x06, 0x04, 0x08,
0x81, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x4b, 0x00, 0x00, 0x02, 0x7f, 0x00, 0x00, 0x06, 0x04, 0x08, 0x82, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x4f, 0x00, 0x00, 0x02, 0x7f, 0x00, 0x00, 0x06, 0x04, 0x08, 0x83, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x02, 0x7f, 0x00, 0x00, 0xfe, 0x04, 0x08, 0x84, 0x00, 0x02, 0x02,
0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x0a, 0x7f, 0x00, 0x00, 0xfe, 0x04, 0x08, 0x85, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x12, 0x7f, 0x00, 0x00, 0xfe, 0x04, 0x08, 0x86, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x1a, 0x7f, 0x00, 0x00, 0xfe, 0x04, 0x08, 0x87, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02,
0x00, 0x00, 0x53, 0x00, 0x00, 0x5a, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x08, 0x88, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x22, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x89, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0x22, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x8a, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x20,
0x00, 0x22, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x8b, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x2a, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x8c, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0x2a, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x8d, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x10, 0x40, 0x7f, 0x00,
0xf0, 0xff, 0x04, 0x08, 0x8e, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0x42, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x08, 0x8f, 0x00, 0x01, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x20, 0x00, 0xa2, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x90, 0x00, 0x01, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0xa2, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00,
0x91, 0x00, 0x01, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0xa2, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x92, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x10, 0x00, 0xe2, 0x7f, 0x70, 0xf0, 0xff, 0x04, 0x00, 0x93, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xc2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x08, 0x94, 0x00, 0x01, 0x02,
0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x10, 0xc2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x08, 0x95, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xd2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x08, 0x96, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x10, 0xd2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x08, 0x97, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02,
0x00, 0x00, 0x53, 0x00, 0x20, 0xc2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x0a, 0x98, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x30, 0xc2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x0a, 0x99, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x20, 0xd2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x0a, 0x9a, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00,
0x30, 0xd2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x0a, 0x9b, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xe2, 0x7f, 0x70, 0xf0, 0xff, 0x04, 0x02, 0x9c, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xf2, 0x7f, 0x70, 0xf0, 0xff, 0x04, 0x02, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0xff,
0x00, 0x00, 0x07, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x90, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x07, 0x00, 0x9f, 0x00, 0x0f, 0x10, 0x15, 0x00, 0x17, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0xa0, 0x00, 0x0f, 0x1a, 0x00, 0x00, 0x17, 0x26, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00,
0xa1, 0x00, 0x0f, 0x1b, 0x00, 0x00, 0x17, 0x27, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x02, 0xa2, 0x00, 0x0f, 0x1a, 0x00, 0x00, 0x19, 0x26, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0xa3, 0x00, 0x0f, 0x1b, 0x00, 0x00, 0x19, 0x27, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x02, 0xa4, 0x00, 0x12, 0x1a,
0x00, 0x00, 0x17, 0x26, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x03, 0x01, 0xa5, 0x00, 0x12, 0x1a, 0x00, 0x00, 0x19, 0x26, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x03, 0x01, 0xa6, 0x00, 0x12, 0x1b, 0x00, 0x00, 0x17, 0x27, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x04, 0x00, 0xa7, 0x00, 0x12, 0x1b, 0x00, 0x00, 0x19, 0x27,
0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x04, 0x00, 0xa8, 0x00, 0x11, 0x13, 0x00, 0x00, 0x15, 0x1b, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0xa9, 0x00, 0x11, 0x13, 0x00, 0x00, 0x15, 0x1b, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x02, 0xaa, 0x00, 0x11, 0x13, 0x00, 0x00, 0x15, 0x1b, 0x00, 0x00, 0x01, 0x40,
0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0xab, 0x00, 0x11, 0x17, 0x00, 0x00, 0x15, 0x1e, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0xac, 0x00, 0x10, 0x16, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x61, 0x00, 0x00, 0x83, 0xef, 0x00, 0x00, 0x07, 0x00, 0xad, 0x00, 0x0f, 0x14, 0x00, 0x00, 0x1a, 0x1c, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x03, 0xec,
0x00, 0x00, 0x07, 0x00, 0xae, 0x00, 0x0f, 0x14, 0x00, 0x00, 0x1a, 0x1c, 0x00, 0x00, 0x01, 0x84, 0x00, 0x00, 0x03, 0xec, 0x00, 0x00, 0x07, 0x00, 0xaf, 0x00, 0x0f, 0x13, 0x00, 0x00, 0x1a, 0x1b, 0x00, 0x00, 0x01, 0x88, 0x00, 0x00, 0x03, 0xec, 0x00, 0x00, 0x07, 0x00, 0xb0, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x1a, 0x19, 0x00, 0x00, 0x01, 0x8c, 0x00, 0x00, 0x63, 0xfc, 0x00, 0x00, 0x07, 0x00,
0xb1, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x1a, 0x19, 0x00, 0x00, 0x21, 0x8c, 0x00, 0x00, 0x63, 0xfc, 0x00, 0x00, 0x07, 0x00, 0xb2, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x1a, 0x19, 0x00, 0x00, 0x41, 0x8c, 0x00, 0x00, 0x63, 0xfc, 0x00, 0x00, 0x07, 0x00, 0xb3, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x1a, 0x19, 0x00, 0x00, 0x61, 0x8c, 0x00, 0x00, 0x63, 0xfc, 0x00, 0x00, 0x07, 0x00, 0xb4, 0x00, 0x0f, 0x0f,
0x00, 0x00, 0x1a, 0x19, 0x00, 0x00, 0x01, 0x9c, 0x00, 0x00, 0x63, 0xfc, 0x00, 0x00, 0x07, 0x02, 0xb5, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x1a, 0x19, 0x00, 0x00, 0x21, 0x9c, 0x00, 0x00, 0x63, 0xfc, 0x00, 0x00, 0x07, 0x02, 0xb6, 0x00, 0x19, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x01, 0xa0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x04, 0xb7, 0x00, 0x19, 0x00, 0x00, 0x00, 0x25, 0x00,
0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x05, 0xb8, 0x00, 0x0f, 0x18, 0x00, 0x00, 0x18, 0x24, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x04, 0xb9, 0x00, 0x0f, 0x18, 0x00, 0x00, 0x18, 0x24, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x04, 0xba, 0x00, 0x11, 0x14, 0x00, 0x00, 0x15, 0x1c, 0x00, 0x00, 0x02, 0x00,
0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0xbb, 0x00, 0x11, 0x1c, 0x00, 0x00, 0x15, 0x28, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0xbc, 0x00, 0x11, 0x1d, 0x00, 0x00, 0x15, 0x29, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x02, 0xbd, 0x00, 0x01, 0x1c, 0x00, 0x00, 0x16, 0x20, 0x00, 0x00, 0x02, 0xc0, 0x00, 0x00, 0x03, 0xe0,
0x00, 0x00, 0x07, 0x00, 0xbe, 0x00, 0x01, 0x1d, 0x00, 0x00, 0x16, 0x21, 0x00, 0x00, 0x02, 0xe0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x02, 0xbf, 0x00, 0x02, 0x1d, 0x00, 0x00, 0x15, 0x29, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x04, 0x00, 0xc0, 0x00, 0x02, 0x1d, 0x00, 0x00, 0x16, 0x21, 0x00, 0x00, 0x02, 0xa0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x04, 0x00,
0xc1, 0x00, 0x11, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x07, 0x04, 0xc2, 0x00, 0x11, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x02, 0x90, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x07, 0x04, 0xc3, 0x00, 0x11, 0x11, 0x00, 0x00, 0x15, 0x16, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x07, 0x00, 0xc4, 0x00, 0x11, 0x11,
0x00, 0x00, 0x15, 0x16, 0x00, 0x00, 0x02, 0x90, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x07, 0x00, 0xc5, 0x00, 0x02, 0x1c, 0x00, 0x00, 0x15, 0x28, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x03, 0x01, 0xc6, 0x00, 0x02, 0x1c, 0x00, 0x00, 0x16, 0x20, 0x00, 0x00, 0x02, 0xe0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x03, 0x01,
u8 const Asm_riscv::raw_encode_forms[5943] = {
0x01, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x03, 0x00, 0x01, 0x09, 0x00, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x04,
0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x34, 0x05, 0x00, 0x01, 0x01, 0x08, 0x00, 0x02, 0x03, 0x09, 0x00, 0x63, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x34, 0x06, 0x00, 0x01, 0x01, 0x08, 0x00, 0x02, 0x03, 0x09, 0x00, 0x63, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x34, 0x07, 0x00,
0x01, 0x01, 0x08, 0x00, 0x02, 0x03, 0x09, 0x00, 0x63, 0x40, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x34, 0x08, 0x00, 0x01, 0x01, 0x08, 0x00, 0x02, 0x03, 0x09, 0x00, 0x63, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x34, 0x09, 0x00, 0x01, 0x01, 0x08, 0x00, 0x02, 0x03, 0x09, 0x00, 0x63, 0x60, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x34, 0x0a, 0x00, 0x01,
0x01, 0x08, 0x00, 0x02, 0x03, 0x09, 0x00, 0x63, 0x70, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x34, 0x0b, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0c, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0d, 0x00, 0x01, 0x0a,
0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0e, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x40, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0f, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x01, 0x0a, 0x00,
0x00, 0x03, 0x0d, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x03, 0x0d, 0x00, 0x00, 0x23, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x20, 0x12, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x03, 0x0d, 0x00, 0x00, 0x23, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x20, 0x13, 0x00, 0x01, 0x0a, 0x00, 0x00,
0x01, 0x0c, 0x00, 0x00, 0x03, 0x60, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x22, 0x14, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x22, 0x15, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x03, 0x0d, 0x00, 0x00, 0x23, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x22, 0x16, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01,
0x02, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x30, 0x17, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02, 0x07, 0x00, 0x13, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02, 0x07, 0x00, 0x13, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x30, 0x19, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02,
0x07, 0x00, 0x13, 0x40, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x30, 0x1a, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02, 0x07, 0x00, 0x13, 0x60, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x30, 0x1b, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02, 0x07, 0x00, 0x13, 0x70, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x30, 0x1c, 0x00, 0x01, 0x01, 0x06, 0x00, 0x01, 0x02, 0x06,
0x00, 0x13, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfc, 0x00, 0x00, 0x30, 0x1d, 0x00, 0x01, 0x01, 0x06, 0x00, 0x01, 0x02, 0x06, 0x00, 0x13, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfc, 0x00, 0x00, 0x30, 0x1e, 0x00, 0x01, 0x01, 0x06, 0x00, 0x01, 0x02, 0x06, 0x00, 0x13, 0x50, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xfc, 0x00, 0x00, 0x30, 0x1f, 0x00, 0x01, 0x01, 0x03, 0x00, 0x01, 0x02, 0x07, 0x00,
0x1b, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x32, 0x20, 0x00, 0x01, 0x01, 0x05, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1b, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x32, 0x21, 0x00, 0x01, 0x01, 0x05, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1b, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x32, 0x22, 0x00, 0x01, 0x01, 0x05, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1b,
0x50, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x32, 0x23, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x30, 0x24, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x00, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x30, 0x25, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x10,
0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x30, 0x26, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x30, 0x27, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x30, 0x28, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x40, 0x00,
0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x30, 0x29, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x30, 0x2a, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x50, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x30, 0x2b, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x60, 0x00, 0x00,
0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x30, 0x2c, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x70, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x30, 0x2d, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x32, 0x2e, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x00, 0x00, 0x40, 0x7f,
0x70, 0x00, 0xfe, 0x00, 0x00, 0x32, 0x2f, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x32, 0x30, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xfe, 0x00, 0x00, 0x32, 0x31, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x50, 0x00, 0x40, 0x7f, 0x70,
0x00, 0xfe, 0x00, 0x00, 0x32, 0x32, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x11, 0x12, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x20, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x06, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
0xff, 0x00, 0x00, 0x04, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x10, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x36, 0x00, 0x01, 0x0b, 0x01, 0x00, 0x01, 0x0f, 0x02, 0x00, 0x73, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x05, 0x00, 0x30, 0x37, 0x00, 0x01, 0x0b, 0x01, 0x00, 0x01, 0x0f, 0x02, 0x00, 0x73, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00,
0x05, 0x00, 0x30, 0x38, 0x00, 0x01, 0x0b, 0x01, 0x00, 0x01, 0x0f, 0x02, 0x00, 0x73, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x05, 0x00, 0x30, 0x39, 0x00, 0x01, 0x0b, 0x0e, 0x00, 0x01, 0x0f, 0x10, 0x00, 0x73, 0x50, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x05, 0x00, 0x30, 0x3a, 0x00, 0x01, 0x0b, 0x0e, 0x00, 0x01, 0x0f, 0x10, 0x00, 0x73, 0x60, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x05,
0x00, 0x30, 0x3b, 0x00, 0x01, 0x0b, 0x0e, 0x00, 0x01, 0x0f, 0x10, 0x00, 0x73, 0x70, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x05, 0x00, 0x30, 0x3c, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x00, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x30, 0x3d, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x10, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00,
0x30, 0x3e, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x20, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x30, 0x3f, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x30, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x30, 0x40, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x40, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x30,
0x41, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x50, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x30, 0x42, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x60, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x30, 0x43, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x70, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x30, 0x44,
0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x00, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x32, 0x45, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x40, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x32, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x50, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x32, 0x47, 0x00,
0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x60, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x32, 0x48, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x70, 0x00, 0x02, 0x7f, 0x70, 0x00, 0xfe, 0x01, 0x00, 0x32, 0x49, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x2f, 0x20, 0x00, 0x10, 0x7f, 0x70, 0xf0, 0xf9, 0x02, 0x00, 0x20, 0x4a, 0x00, 0x01,
0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x18, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x30, 0x4b, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x08, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x30, 0x4c, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x30, 0x4d, 0x00, 0x01, 0x01,
0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x30, 0x4e, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x60, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x30, 0x4f, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x30, 0x50, 0x00, 0x01, 0x01, 0x0a,
0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0x80, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x30, 0x51, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0xa0, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x30, 0x52, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0xc0, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x30, 0x53, 0x00, 0x01, 0x01, 0x0a, 0x00,
0x01, 0x03, 0x0e, 0x00, 0x2f, 0x20, 0x00, 0xe0, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x30, 0x54, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x2f, 0x30, 0x00, 0x10, 0x7f, 0x70, 0xf0, 0xf9, 0x02, 0x00, 0x22, 0x55, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0x18, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x32, 0x56, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01,
0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0x08, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x32, 0x57, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x32, 0x58, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x32, 0x59, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03,
0x0e, 0x00, 0x2f, 0x30, 0x00, 0x60, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x32, 0x5a, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x32, 0x5b, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0x80, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x32, 0x5c, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e,
0x00, 0x2f, 0x30, 0x00, 0xa0, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x32, 0x5d, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0xc0, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x32, 0x5e, 0x00, 0x01, 0x01, 0x0a, 0x00, 0x01, 0x03, 0x0e, 0x00, 0x2f, 0x30, 0x00, 0xe0, 0x7f, 0x70, 0x00, 0xf8, 0x02, 0x00, 0x32, 0x5f, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00,
0x07, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x03, 0x00, 0x20, 0x60, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x03, 0x0d, 0x00, 0x00, 0x27, 0x20, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x03, 0x00, 0x20, 0x61, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x43, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x06, 0x03, 0x00, 0x48, 0x62, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x47,
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x06, 0x03, 0x00, 0x48, 0x63, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x4b, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x06, 0x03, 0x00, 0x48, 0x64, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x4f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x06, 0x03, 0x00, 0x48, 0x65, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00,
0x00, 0x00, 0x7f, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x38, 0x66, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x08, 0x7f, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x38, 0x67, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x10, 0x7f, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x38, 0x68, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00,
0x18, 0x7f, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x38, 0x69, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0x58, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x28, 0x6a, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x30, 0x6b, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0x20,
0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x30, 0x6c, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x20, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x30, 0x6d, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x28, 0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x30, 0x6e, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0x28, 0x7f,
0x70, 0x00, 0xfe, 0x03, 0x00, 0x30, 0x6f, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x28, 0x70, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x10, 0xc0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x28, 0x71, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xe0, 0x7f, 0x70,
0xf0, 0xff, 0x03, 0x00, 0x20, 0x72, 0x00, 0x01, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x20, 0x00, 0xa0, 0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x30, 0x73, 0x00, 0x01, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0xa0, 0x7f, 0x70, 0x00, 0xfe, 0x03, 0x00, 0x30, 0x74, 0x00, 0x01, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0xa0, 0x7f, 0x70, 0x00,
0xfe, 0x03, 0x00, 0x30, 0x75, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x10, 0x00, 0xe0, 0x7f, 0x70, 0xf0, 0xff, 0x03, 0x00, 0x20, 0x76, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xd0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x28, 0x77, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x10, 0xd0, 0x7f, 0x00, 0xf0, 0xff,
0x03, 0x00, 0x28, 0x78, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xf0, 0x7f, 0x70, 0xf0, 0xff, 0x03, 0x00, 0x20, 0x79, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x20, 0xc0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x2a, 0x7a, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x30, 0xc0, 0x7f, 0x00, 0xf0, 0xff, 0x03,
0x00, 0x2a, 0x7b, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x20, 0xd0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x2a, 0x7c, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x30, 0xd0, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x2a, 0x7d, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x07, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x04, 0x00,
0x20, 0x7e, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x03, 0x0d, 0x00, 0x00, 0x27, 0x30, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x04, 0x00, 0x20, 0x7f, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x43, 0x00, 0x00, 0x02, 0x7f, 0x00, 0x00, 0x06, 0x04, 0x00, 0x48, 0x80, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x47, 0x00, 0x00, 0x02, 0x7f, 0x00, 0x00, 0x06, 0x04, 0x00, 0x48,
0x81, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x4b, 0x00, 0x00, 0x02, 0x7f, 0x00, 0x00, 0x06, 0x04, 0x00, 0x48, 0x82, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x4f, 0x00, 0x00, 0x02, 0x7f, 0x00, 0x00, 0x06, 0x04, 0x00, 0x48, 0x83, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x02, 0x7f, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x38, 0x84,
0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x0a, 0x7f, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x38, 0x85, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x12, 0x7f, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x38, 0x86, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x1a, 0x7f, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x38, 0x87, 0x00,
0x02, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0x5a, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x00, 0x28, 0x88, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x22, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x30, 0x89, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0x22, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x30, 0x8a, 0x00, 0x02,
0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x20, 0x00, 0x22, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x30, 0x8b, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x2a, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x30, 0x8c, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0x2a, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x30, 0x8d, 0x00, 0x02, 0x02,
0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x10, 0x40, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x00, 0x28, 0x8e, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0x42, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x00, 0x28, 0x8f, 0x00, 0x01, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x20, 0x00, 0xa2, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x30, 0x90, 0x00, 0x01, 0x02, 0x02,
0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0xa2, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x30, 0x91, 0x00, 0x01, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0xa2, 0x7f, 0x70, 0x00, 0xfe, 0x04, 0x00, 0x30, 0x92, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x10, 0x00, 0xe2, 0x7f, 0x70, 0xf0, 0xff, 0x04, 0x00, 0x20, 0x93, 0x00, 0x01, 0x02, 0x00, 0x00,
0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xc2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x00, 0x28, 0x94, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x10, 0xc2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x00, 0x28, 0x95, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xd2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x00, 0x28, 0x96, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01,
0x02, 0x00, 0x00, 0x53, 0x00, 0x10, 0xd2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x00, 0x28, 0x97, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x20, 0xc2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x00, 0x2a, 0x98, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x30, 0xc2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x00, 0x2a, 0x99, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02,
0x00, 0x00, 0x53, 0x00, 0x20, 0xd2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x00, 0x2a, 0x9a, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x30, 0xd2, 0x7f, 0x00, 0xf0, 0xff, 0x04, 0x00, 0x2a, 0x9b, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xe2, 0x7f, 0x70, 0xf0, 0xff, 0x04, 0x00, 0x22, 0x9c, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00,
0x00, 0x53, 0x00, 0x00, 0xf2, 0x7f, 0x70, 0xf0, 0xff, 0x04, 0x00, 0x22, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x07, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x90, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x07, 0x00, 0x00, 0x9f, 0x00, 0x0f, 0x10, 0x15, 0x00, 0x17, 0x00, 0x1d, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0xa0, 0xa0, 0x00, 0x0f, 0x1a, 0x00, 0x00, 0x17, 0x26, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x20, 0xa1, 0x00, 0x0f, 0x1b, 0x00, 0x00, 0x17, 0x27, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x22, 0xa2, 0x00, 0x0f, 0x1a, 0x00, 0x00, 0x19, 0x26, 0x00, 0x00, 0x00,
0xc0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x20, 0xa3, 0x00, 0x0f, 0x1b, 0x00, 0x00, 0x19, 0x27, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x22, 0xa4, 0x00, 0x12, 0x1a, 0x00, 0x00, 0x17, 0x26, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x03, 0x00, 0x21, 0xa5, 0x00, 0x12, 0x1a, 0x00, 0x00, 0x19, 0x26, 0x00, 0x00, 0x00, 0xe0,
0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x03, 0x00, 0x21, 0xa6, 0x00, 0x12, 0x1b, 0x00, 0x00, 0x17, 0x27, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x04, 0x00, 0x20, 0xa7, 0x00, 0x12, 0x1b, 0x00, 0x00, 0x19, 0x27, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x04, 0x00, 0x20, 0xa8, 0x00, 0x11, 0x13, 0x00, 0x00, 0x15, 0x1b, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x20, 0xa9, 0x00, 0x11, 0x13, 0x00, 0x00, 0x15, 0x1b, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x22, 0xaa, 0x00, 0x11, 0x13, 0x00, 0x00, 0x15, 0x1b, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x20, 0xab, 0x00, 0x11, 0x17, 0x00, 0x00, 0x15, 0x1e, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00,
0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x20, 0xac, 0x00, 0x10, 0x16, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x61, 0x00, 0x00, 0x83, 0xef, 0x00, 0x00, 0x07, 0x00, 0x90, 0xad, 0x00, 0x0f, 0x14, 0x00, 0x00, 0x1a, 0x1c, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x03, 0xec, 0x00, 0x00, 0x07, 0x00, 0x20, 0xae, 0x00, 0x0f, 0x14, 0x00, 0x00, 0x1a, 0x1c, 0x00, 0x00, 0x01, 0x84, 0x00, 0x00, 0x03,
0xec, 0x00, 0x00, 0x07, 0x00, 0x20, 0xaf, 0x00, 0x0f, 0x13, 0x00, 0x00, 0x1a, 0x1b, 0x00, 0x00, 0x01, 0x88, 0x00, 0x00, 0x03, 0xec, 0x00, 0x00, 0x07, 0x00, 0x20, 0xb0, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x1a, 0x19, 0x00, 0x00, 0x01, 0x8c, 0x00, 0x00, 0x63, 0xfc, 0x00, 0x00, 0x07, 0x00, 0x20, 0xb1, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x1a, 0x19, 0x00, 0x00, 0x21, 0x8c, 0x00, 0x00, 0x63, 0xfc,
0x00, 0x00, 0x07, 0x00, 0x20, 0xb2, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x1a, 0x19, 0x00, 0x00, 0x41, 0x8c, 0x00, 0x00, 0x63, 0xfc, 0x00, 0x00, 0x07, 0x00, 0x20, 0xb3, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x1a, 0x19, 0x00, 0x00, 0x61, 0x8c, 0x00, 0x00, 0x63, 0xfc, 0x00, 0x00, 0x07, 0x00, 0x20, 0xb4, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x1a, 0x19, 0x00, 0x00, 0x01, 0x9c, 0x00, 0x00, 0x63, 0xfc, 0x00,
0x00, 0x07, 0x00, 0x22, 0xb5, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x1a, 0x19, 0x00, 0x00, 0x21, 0x9c, 0x00, 0x00, 0x63, 0xfc, 0x00, 0x00, 0x07, 0x00, 0x22, 0xb6, 0x00, 0x19, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x01, 0xa0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x14, 0xb7, 0x00, 0x19, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00,
0x07, 0x00, 0x15, 0xb8, 0x00, 0x0f, 0x18, 0x00, 0x00, 0x18, 0x24, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x24, 0xb9, 0x00, 0x0f, 0x18, 0x00, 0x00, 0x18, 0x24, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x24, 0xba, 0x00, 0x11, 0x14, 0x00, 0x00, 0x15, 0x1c, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07,
0x00, 0x20, 0xbb, 0x00, 0x11, 0x1c, 0x00, 0x00, 0x15, 0x28, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x20, 0xbc, 0x00, 0x11, 0x1d, 0x00, 0x00, 0x15, 0x29, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x22, 0xbd, 0x00, 0x01, 0x1c, 0x00, 0x00, 0x16, 0x20, 0x00, 0x00, 0x02, 0xc0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00,
0x20, 0xbe, 0x00, 0x01, 0x1d, 0x00, 0x00, 0x16, 0x21, 0x00, 0x00, 0x02, 0xe0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x22, 0xbf, 0x00, 0x02, 0x1d, 0x00, 0x00, 0x15, 0x29, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x04, 0x00, 0x20, 0xc0, 0x00, 0x02, 0x1d, 0x00, 0x00, 0x16, 0x21, 0x00, 0x00, 0x02, 0xa0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x04, 0x00, 0x20,
0xc1, 0x00, 0x11, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x07, 0x00, 0x14, 0xc2, 0x00, 0x11, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x02, 0x90, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x07, 0x00, 0x14, 0xc3, 0x00, 0x11, 0x11, 0x00, 0x00, 0x15, 0x16, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x07, 0x00, 0x20, 0xc4,
0x00, 0x11, 0x11, 0x00, 0x00, 0x15, 0x16, 0x00, 0x00, 0x02, 0x90, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x07, 0x00, 0x20, 0xc5, 0x00, 0x02, 0x1c, 0x00, 0x00, 0x15, 0x28, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x03, 0x00, 0x21, 0xc6, 0x00, 0x02, 0x1c, 0x00, 0x00, 0x16, 0x20, 0x00, 0x00, 0x02, 0xe0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x03, 0x00, 0x21, 0xc7, 0x00,
0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x20, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xfe, 0x08, 0x00, 0x30, 0xc8, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x40, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xfe, 0x08, 0x00, 0x30, 0xc9, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x60, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xfe, 0x08, 0x00, 0x30, 0xca, 0x00, 0x01,
0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x00, 0x00, 0x08, 0x7f, 0x70, 0x00, 0xfe, 0x08, 0x00, 0x32, 0xcb, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x20, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xfe, 0x08, 0x00, 0x32, 0xcc, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x40, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xfe, 0x08, 0x00, 0x32, 0xcd, 0x00, 0x01, 0x01,
0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x60, 0x00, 0x20, 0x7f, 0x70, 0x00, 0xfe, 0x08, 0x00, 0x32, 0xce, 0x00, 0x01, 0x01, 0x06, 0x00, 0x01, 0x02, 0x06, 0x00, 0x1b, 0x10, 0x00, 0x08, 0x7f, 0x70, 0x00, 0xfc, 0x08, 0x00, 0x32, 0xcf, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x70, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xfe, 0x09, 0x00, 0x30, 0xd0, 0x00, 0x01, 0x01, 0x01,
0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x60, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xfe, 0x09, 0x00, 0x30, 0xd1, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x40, 0x00, 0x40, 0x7f, 0x70, 0x00, 0xfe, 0x09, 0x00, 0x30, 0xd2, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x10, 0x00, 0x60, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x20, 0xd3, 0x00, 0x01, 0x01, 0x00, 0x00,
0x01, 0x02, 0x00, 0x00, 0x13, 0x10, 0x10, 0x60, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x20, 0xd4, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x10, 0x20, 0x60, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x20, 0xd5, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x10, 0x40, 0x60, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x20, 0xd6, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01,
0x02, 0x00, 0x00, 0x13, 0x10, 0x50, 0x60, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x20, 0xd7, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x33, 0x40, 0x00, 0x08, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x21, 0xd7, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x3b, 0x40, 0x00, 0x08, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x22, 0xd8, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02,
0x03, 0x00, 0x33, 0x40, 0x00, 0x0a, 0x7f, 0x70, 0x00, 0xfe, 0x09, 0x00, 0x30, 0xd9, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x50, 0x00, 0x0a, 0x7f, 0x70, 0x00, 0xfe, 0x09, 0x00, 0x30, 0xda, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x60, 0x00, 0x0a, 0x7f, 0x70, 0x00, 0xfe, 0x09, 0x00, 0x30, 0xdb, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03,
0x00, 0x33, 0x70, 0x00, 0x0a, 0x7f, 0x70, 0x00, 0xfe, 0x09, 0x00, 0x30, 0xdc, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x10, 0x00, 0x60, 0x7f, 0x70, 0x00, 0xfe, 0x09, 0x00, 0x30, 0xdd, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x50, 0x00, 0x60, 0x7f, 0x70, 0x00, 0xfe, 0x09, 0x00, 0x30, 0xde, 0x00, 0x01, 0x01, 0x06, 0x00, 0x01, 0x02, 0x06, 0x00,
0x13, 0x50, 0x00, 0x60, 0x7f, 0x70, 0x00, 0xfc, 0x09, 0x00, 0x30, 0xdf, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x50, 0x70, 0x28, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x20, 0xe0, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x50, 0x80, 0x69, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x21, 0xe0, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13,
0x50, 0x80, 0x6b, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x22, 0xe1, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x1b, 0x10, 0x00, 0x60, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x22, 0xe2, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x1b, 0x10, 0x10, 0x60, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x22, 0xe3, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x1b, 0x10,
0x20, 0x60, 0x7f, 0x70, 0xf0, 0xff, 0x09, 0x00, 0x22, 0xe4, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x10, 0x00, 0x60, 0x7f, 0x70, 0x00, 0xfe, 0x09, 0x00, 0x32, 0xe5, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x3b, 0x50, 0x00, 0x60, 0x7f, 0x70, 0x00, 0xfe, 0x09, 0x00, 0x32, 0xe6, 0x00, 0x01, 0x01, 0x05, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1b, 0x50, 0x00,
0x60, 0x7f, 0x70, 0x00, 0xfe, 0x09, 0x00, 0x32, 0xe7, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x10, 0x00, 0x0a, 0x7f, 0x70, 0x00, 0xfe, 0x0a, 0x00, 0x30, 0xe8, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x30, 0x00, 0x0a, 0x7f, 0x70, 0x00, 0xfe, 0x0a, 0x00, 0x30, 0xe9, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x20, 0x00, 0x0a,
0x7f, 0x70, 0x00, 0xfe, 0x0a, 0x00, 0x30, 0xea, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x10, 0x00, 0x48, 0x7f, 0x70, 0x00, 0xfe, 0x0b, 0x00, 0x30, 0xeb, 0x00, 0x01, 0x01, 0x06, 0x00, 0x01, 0x02, 0x06, 0x00, 0x13, 0x10, 0x00, 0x48, 0x7f, 0x70, 0x00, 0xfc, 0x0b, 0x00, 0x30, 0xec, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x50, 0x00, 0x48, 0x7f,
0x70, 0x00, 0xfe, 0x0b, 0x00, 0x30, 0xed, 0x00, 0x01, 0x01, 0x06, 0x00, 0x01, 0x02, 0x06, 0x00, 0x13, 0x50, 0x00, 0x48, 0x7f, 0x70, 0x00, 0xfc, 0x0b, 0x00, 0x30, 0xee, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x10, 0x00, 0x68, 0x7f, 0x70, 0x00, 0xfe, 0x0b, 0x00, 0x30, 0xef, 0x00, 0x01, 0x01, 0x06, 0x00, 0x01, 0x02, 0x06, 0x00, 0x13, 0x10, 0x00, 0x68, 0x7f, 0x70,
0x00, 0xfc, 0x0b, 0x00, 0x30, 0xf0, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x10, 0x00, 0x28, 0x7f, 0x70, 0x00, 0xfe, 0x0b, 0x00, 0x30, 0xf1, 0x00, 0x01, 0x01, 0x06, 0x00, 0x01, 0x02, 0x06, 0x00, 0x13, 0x10, 0x00, 0x28, 0x7f, 0x70, 0x00, 0xfc, 0x0b, 0x00, 0x30, 0xf2, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x50, 0x00, 0x0e, 0x7f, 0x70, 0x00,
0xfe, 0x0c, 0x00, 0x30, 0xf3, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x03, 0x00, 0x33, 0x70, 0x00, 0x0e, 0x7f, 0x70, 0x00, 0xfe, 0x0c, 0x00, 0x30, 0xf4, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x07, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00, 0x0d, 0x00, 0x20, 0xf5, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x03, 0x0d, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0x7f, 0x70, 0x00, 0x00,
0x0d, 0x00, 0x20, 0xf6, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x43, 0x00, 0x00, 0x04, 0x7f, 0x00, 0x00, 0x06, 0x0d, 0x00, 0x48, 0xf7, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x47, 0x00, 0x00, 0x04, 0x7f, 0x00, 0x00, 0x06, 0x0d, 0x00, 0x48, 0xf8, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x4b, 0x00, 0x00, 0x04, 0x7f, 0x00, 0x00, 0x06, 0x0d,
0x00, 0x48, 0xf9, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x4f, 0x00, 0x00, 0x04, 0x7f, 0x00, 0x00, 0x06, 0x0d, 0x00, 0x48, 0xfa, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x04, 0x7f, 0x00, 0x00, 0xfe, 0x0d, 0x00, 0x38, 0xfb, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x0c, 0x7f, 0x00, 0x00, 0xfe, 0x0d, 0x00,
0x38, 0xfc, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x14, 0x7f, 0x00, 0x00, 0xfe, 0x0d, 0x00, 0x38, 0xfd, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x1c, 0x7f, 0x00, 0x00, 0xfe, 0x0d, 0x00, 0x38, 0xfe, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0x5c, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x28,
0xff, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x24, 0x7f, 0x70, 0x00, 0xfe, 0x0d, 0x00, 0x30, 0x00, 0x01, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0x24, 0x7f, 0x70, 0x00, 0xfe, 0x0d, 0x00, 0x30, 0x01, 0x01, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x20, 0x00, 0x24, 0x7f, 0x70, 0x00, 0xfe, 0x0d, 0x00, 0x30, 0x02,
0x01, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0x2c, 0x7f, 0x70, 0x00, 0xfe, 0x0d, 0x00, 0x30, 0x03, 0x01, 0x02, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0x2c, 0x7f, 0x70, 0x00, 0xfe, 0x0d, 0x00, 0x30, 0x04, 0x01, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xc4, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x28, 0x05, 0x01,
0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x10, 0xc4, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x28, 0x06, 0x01, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x20, 0xc4, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x2a, 0x07, 0x01, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x30, 0xc4, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x2a, 0x08, 0x01, 0x02,
0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xd4, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x28, 0x09, 0x01, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x10, 0xd4, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x28, 0x0a, 0x01, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x20, 0xd4, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x2a, 0x0b, 0x01, 0x02, 0x01,
0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x30, 0xd4, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x2a, 0x0c, 0x01, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x20, 0x40, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x28, 0x0d, 0x01, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0x44, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x28, 0x0e, 0x01, 0x02, 0x02, 0x00,
0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x20, 0x42, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x28, 0x0f, 0x01, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x10, 0x44, 0x7f, 0x00, 0xf0, 0xff, 0x0d, 0x00, 0x28, 0x10, 0x01, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xe4, 0x7f, 0x70, 0xf0, 0xff, 0x0d, 0x00, 0x20, 0x11, 0x01, 0x02, 0x01, 0x00, 0x00,
0x01, 0x02, 0x00, 0x00, 0x53, 0x00, 0x00, 0xf4, 0x7f, 0x70, 0xf0, 0xff, 0x0d, 0x00, 0x20, 0x12, 0x01, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x53, 0x10, 0x00, 0xe4, 0x7f, 0x70, 0xf0, 0xff, 0x0d, 0x00, 0x20, 0x13, 0x01, 0x01, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x20, 0x00, 0xa4, 0x7f, 0x70, 0x00, 0xfe, 0x0d, 0x00, 0x30, 0x14, 0x01, 0x01, 0x02, 0x02, 0x00, 0x01,
0x02, 0x03, 0x00, 0x53, 0x10, 0x00, 0xa4, 0x7f, 0x70, 0x00, 0xfe, 0x0d, 0x00, 0x30, 0x15, 0x01, 0x01, 0x02, 0x02, 0x00, 0x01, 0x02, 0x03, 0x00, 0x53, 0x00, 0x00, 0xa4, 0x7f, 0x70, 0x00, 0xfe, 0x0d, 0x00, 0x30, 0x16, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x20, 0x30, 0xff, 0xff, 0xff, 0xff, 0x0e, 0x00, 0x04, 0x17, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x73, 0x00, 0x20, 0x10, 0xff, 0xff, 0xff, 0xff, 0x0e, 0x00, 0x04, 0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x50, 0x10, 0xff, 0xff, 0xff, 0xff, 0x0e, 0x00, 0x00, 0x19, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x73, 0x00, 0x00, 0x12, 0xff, 0x7f, 0x00, 0xfe, 0x0e, 0x00, 0x20,
};
u8 const Asm_riscv::raw_clobber_forms[1782] = {
u8 const Asm_riscv::raw_clobber_forms[2547] = {
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00,
@@ -712,5 +832,30 @@ u8 const Asm_riscv::raw_clobber_forms[1782] = {
0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00,
0x00, 0x01, 0x0e, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00,
0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x01,
0x02, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02,
0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
};
u8 const Asm_riscv::raw_pseudo_aliases[696] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x04, 0x04, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x01, 0x02, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x19, 0x00, 0x01, 0x02, 0x06, 0x00, 0xff, 0xff, 0x00, 0x00, 0x02, 0x00, 0x24, 0x00, 0x01, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x01, 0x04,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x01, 0x02, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1b, 0x00, 0x01, 0x02, 0x06, 0x00, 0xff, 0x00, 0x00, 0x00, 0x02, 0x00, 0x18, 0x00, 0x01, 0x02, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, 0x01, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x26, 0x00, 0x01, 0x02, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x00, 0x26, 0x00, 0x01, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0x00, 0x01, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x01, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x00, 0x04, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x00, 0x01, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
0x07, 0x00, 0x01, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x07, 0x00, 0x04, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x07, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x02, 0x01,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x04, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x05, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x37, 0x00, 0x01, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x36, 0x00, 0x04, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x37, 0x00, 0x04, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x38, 0x00, 0x04, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x39, 0x00, 0x04, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
0x3a, 0x00, 0x04, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3b, 0x00, 0x04, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x37, 0x00, 0x01, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x37, 0x00, 0x01, 0x07, 0x04, 0x00, 0x00, 0x00, 0x01, 0x0c, 0x01, 0x00, 0x37, 0x00, 0x01, 0x07, 0x04, 0x00, 0x00, 0x00, 0x02, 0x0c, 0x01, 0x00, 0x37, 0x00, 0x01, 0x07,
0x04, 0x00, 0x00, 0x00, 0x80, 0x0c, 0x01, 0x01, 0x37, 0x00, 0x01, 0x07, 0x04, 0x00, 0x00, 0x00, 0x81, 0x0c, 0x01, 0x01, 0x37, 0x00, 0x01, 0x07, 0x04, 0x00, 0x00, 0x00, 0x82, 0x0c, 0x01, 0x01, 0x37, 0x00, 0x01, 0x07, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x36, 0x00, 0x01, 0x07, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x37, 0x00, 0x01, 0x07, 0x04, 0x00, 0x00, 0x00,
0x02, 0x00, 0x01, 0x00, 0x36, 0x00, 0x01, 0x07, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x37, 0x00, 0x01, 0x07, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x36, 0x00, 0x01, 0x07, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x39, 0x00, 0x01, 0x07, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x39, 0x00, 0x01, 0x07, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
0x6a, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6c, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x8a, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x89, 0x00, 0x01, 0x02,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xff, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x32, 0x00, 0x06, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
};

View File

@@ -844,6 +844,7 @@ gb_internal bool check_register(AsmCtx *asm_ctx, Operand *operand, AstAsmRegiste
enum CheckMnemomicResult {
CheckMnemomic_Invalid,
CheckMnemomic_Mnemonic,
CheckMnemomic_PseudoMnemonic,
CheckMnemomic_Prefix,
};
@@ -862,6 +863,12 @@ gb_internal CheckMnemomicResult check_mnemonic_name(AsmCtx *asm_ctx, AstAsmInstr
if (mnemonic_) *mnemonic_ = cast(u16)m;
return CheckMnemomic_Mnemonic;
}
auto pm = asm_ctx->pseudo_mnemonic_lookup(name);
if (pm) {
if (mnemonic_) *mnemonic_ = pm;
return CheckMnemomic_PseudoMnemonic;
}
ERROR_BLOCK();
if (instr->operands.count == 0) {
@@ -913,13 +920,18 @@ struct AsmMnemonicAccumulator {
template <typename AsmCtx>
gb_internal void check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tmpl_entity, AstAsmInstruction *instr,
u16 mnemonic, Slice<Operand> const &operands,
u16 mnemonic, u16 pseudo_mnemonic, Slice<Operand> const &operands,
u8 previous_prefix, Ast *previous_prefix_instr,
AsmMnemonicAccumulator *asm_acc) {
GB_ASSERT(mnemonic > 0);
auto forms = asm_ctx->encoding_forms(mnemonic);
String name = asm_ctx->mnemonic_strings[mnemonic];
auto alias = asm_ctx->pseudo_alias(cast(u16)pseudo_mnemonic);
if (pseudo_mnemonic) {
name = asm_ctx->pseudo_mnemonic_strings[pseudo_mnemonic];
}
int min_count = I32_MAX;
int max_count = -1;
@@ -931,6 +943,14 @@ gb_internal void check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm
min_count = gb_max(min_count, 0);
max_count = gb_max(max_count, 0);
if (pseudo_mnemonic) {
int alias_count = alias.nargs;
GB_ASSERT_MSG(alias_count <= min_count, "%d <= %d", alias_count, min_count);
GB_ASSERT_MSG(alias_count <= max_count, "%d <= %d", alias_count, max_count);
min_count = gb_min(min_count, alias_count);
max_count = gb_min(max_count, alias_count);
}
// A prefix that none of this mnemonic's forms can take is unconditionally wrong,
// independent of whether the operands match — catch it even on a match failure.
if (previous_prefix > 0) {
@@ -1862,7 +1882,19 @@ gb_internal void check_asm_template(AsmCtx *asm_ctx, CheckerContext *ctx, Entity
previous_prefix = cast(u8)mnemonic;
previous_prefix_instr = instruction_;
} else if (res == CheckMnemomic_Mnemonic) {
check_mnemonic(asm_ctx, ctx, entity, instr, mnemonic, slice_from_array(operands),
check_mnemonic(asm_ctx, ctx, entity, instr, mnemonic, 0, slice_from_array(operands),
previous_prefix, previous_prefix_instr,
&asm_acc);
asm_acc.saw_any_instructions = true;
previous_prefix = 0;
previous_prefix_instr = nullptr;
} else if (res == CheckMnemomic_PseudoMnemonic) {
u16 pseudo_mnemonic = cast(u16)mnemonic;
auto alias = asm_ctx->pseudo_alias(cast(u16)pseudo_mnemonic);
u16 target_mnemonic = cast(u16)alias.target;
check_mnemonic(asm_ctx, ctx, entity, instr, target_mnemonic, pseudo_mnemonic, slice_from_array(operands),
previous_prefix, previous_prefix_instr,
&asm_acc);

View File

@@ -185,10 +185,6 @@ struct lbAsmGenerate {
}
virtual char instruction_size_suffix(AstAsmInstruction *instr) = 0;
// Some AT&T mnemonics encode BOTH operand widths and so cannot be spelled as a name plus one
// suffix: `movsx` from i8 to i32 is `movsbl`. Returns the complete mnemonic, or {} when the
// name-plus-suffix spelling is the right one
virtual String instruction_att_mnemonic(AstAsmInstruction *instr) = 0;
virtual char size_suffix_for_operand(Ast *op) = 0;
virtual gbString write_memory_operand(gbString asm_string, Slice<i32> const &op_number, AstAsmMemoryOperand *mem_op, u32 flags) = 0;
virtual lbValue emit_call(lbProcedure *p, Array<lbValue> const &args) = 0;
@@ -225,10 +221,14 @@ struct lbAsmGenerate_amd64 : lbAsmGenerate {
}
// Some AT&T mnemonics encode BOTH operand widths and so cannot be spelled as a name plus one
// suffix: `movsx` from i8 to i32 is `movsbl`. Returns the complete mnemonic, or {} when the
// name-plus-suffix spelling is the right one
//
// The sign/zero-extend family is the only one whose two operands differ in width. Its AT&T
// mnemonic names both: `movsx` i8 -> i32 is `movsbl`, never `movsx` plus a suffix. `movsxd` is
// the same rule, movs + l + q
String instruction_att_mnemonic(AstAsmInstruction *instr) override {
String instruction_att_mnemonic(AstAsmInstruction *instr) {
bool sign_extend;
switch (instr->mnemonic) {
case Asm_amd64::M_MOVSX:
@@ -826,7 +826,7 @@ gb_internal lbValue lb_emit_asm_template_call(lbProcedure *p, Entity *entity, Ar
if (build_context.metrics.arch == TargetArch_amd64) {
generator = &generator_amd64;
} else {
compiler_error("Architecture does not support asm templates");
compiler_error("Architecture does not support asm templates, yet");
}
GB_ASSERT(generator != nullptr);
generator->init(entity);

View File

@@ -2805,8 +2805,11 @@ gb_internal Ast *parse_asm_template(AstFile *f) {
asm_instructions = slice_from_array(instructions);
}
if (build_context.metrics.arch != TargetArch_amd64) {
syntax_error(token, "asm templates are currently only supported on -target:amd64");
if (build_context.metrics.arch == TargetArch_amd64 ||
build_context.metrics.arch == TargetArch_riscv64) {
// okay
} else {
syntax_error(token, "asm templates are currently only supported on -target:*_amd64 or -target:*_riscv64");
}
Ast *asm_template = alloc_ast_node(f, Ast_AsmTemplate);