pico430prog/src/cli/rl78.c

581 lines
30 KiB
C

#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <pico/time.h>
#include "tool78_hw.h"
#include "tool78_cmds.h"
/*#include "wfum-flash.h"*/
void cli_tool78_testtest(void);
void cli_tool78_prototest(void);
void cli_tool78_ocdtest(void);
void cli_tool78_g10_prototest(void);
void cli_tool78_g10_ocdtest(void);
static uint8_t DATA_main_dbgpad[1024];
static uint8_t DATA_main_nodbg [1024];
static uint8_t DATA_G1M_dbgpad[];
static uint8_t DATA_G1M_nodbg [];
static uint8_t shellcode_test[] = {
0x51, 0x61, // mov a, #'a'
0xfc, 0xa1, 0xff, 0x0e, // call !!effa1
0xd7, // ret
};
static uint8_t G1M_test_1[] = {
0xcb, 0xf8, 0x00, 0xfe, // movw sp, #0xfe00
0xec, 0xba, 0xff, 0x0e, // br !!0xeffba
};
static uint8_t G1M_test_2[] = {
0x51, 0x61, // mov a, #'a'
0xfc, 0xdc, 0xff, 0x0e, // call !!tool_tx
0xd7, // ret
};
//static uint8_t DATA_test_dbg[7/*85*/] = {
// /*0xe0, 0x07, 0x52,*/ 0x51, 0x61, 0xfc, 0xa1, 0xff, 0x0e,
// 0xd7,
// /*0x71, 0x7b, 0xfa, 0xf5,
// 0xf0, 0x02, 0xf5, 0x78, 0x00, 0x71, 0x6a, 0xa4, 0xcf, 0x76, 0x00, 0x01, 0xce,
// 0x22, 0x00, 0xf5, 0x62, 0x00, 0xf5, 0x77, 0x00, 0xf5, 0x79, 0x00, 0xf5, 0x75,
// 0x00, 0xf5, 0x7c, 0x00, 0xce, 0x02, 0x00, 0xce, 0x02, 0xff, 0x30, 0x00, 0xf9,
// 0x16, 0x52, 0x00, 0x53, 0xff, 0x51, 0x00, 0x81, 0x93, 0xdf, 0xfc, 0x92, 0x61,
// 0xf9, 0xdf, 0xf3, 0xce, 0x02, 0x00, 0x52, 0x00, 0x92, 0x61, 0xe9, 0xfc, 0xa1,
// 0xff, 0x0e, 0xd2, 0xdf, 0xf6, 0xef, 0xd9*/
//};
static uint8_t buf[32];
void cli_tool78_testtest(void) {
struct tool78_hw* thw = &tool78_hw_test_uart2;
printf("initing...\n");
bool r = thw->init();
printf("init: %s\n", r ? "ok" : "nope");
size_t rrr = thw->send(7, (const uint8_t*)"hello\r\n", 0);
printf("sent %zu\n", rrr);
while (true) {
size_t n = thw->recv(31, buf, 0);
buf[n] = 0;
if (n) {
printf("got %zu: '%s'\n", n, (const char*)buf);
thw->send(n, buf, 0);
}
}
}
void cli_tool78_prototest(void) {
struct tool78_hw* hw = &tool78_hw_rl78_uart1;
tool78_silicon_sig_t sig;
memset(&sig, 0, sizeof sig);
enum tool78_stat st = tool78_init_sfp(hw, &sig);
printf("result: 0x%02x. sig:\n", st);
for (size_t i = 0; i < sizeof(struct tool78_silicon_sig_rl78); ++i)
printf("0x%02x ", ((const uint8_t*)&sig)[i]);
printf("%c", '\n');
// RL78/G11: 0x10 0x00 0x06 0x52 0x35 0x46 0x31 0x30 0x35 0x34 0x41 0x20 0x20 0xff 0x3f 0x00 0xff 0x17 0x0f 0x03 0x00 0x03
// flg=fe bot=03 fsws=0000 fswe=000f
/*
sig result=0x06
result: 0x06. sig:
0x10 0x00 0x06 0x52 0x35 0x46 0x31 0x30 0x35 0x34 0x41 0x20 0x20 0xff 0x3f 0x00 0xff 0x17 0x0f 0x03 0x00 0x03
secget: 0x06
sec: flg=fe bot=03 fsws=0000 fswe=000f
blank check: 0x06
result: 0x06. sig:
0x10 0x00 0x06 0x52 0x35 0x46 0x31 0x30 0x31 0x45 0x45 0x20 0x20 0xff 0xff 0x00 0x00 0x00 0x00 0x03 0x00 0x03
secget: 0x06
sec: flg=fe bot=03 fsws=0000 fswe=003f
result: 0x06. sig:
0x10 0x00 0x0a 0x52 0x37 0x46 0x31 0x30 0x30 0x47 0x4c 0x47 0x20 0xff 0xff 0x01 0xff 0x2f 0x0f 0x01 0x00 0x02
secget: 0x06
sec: flg=17:1d bot=07 fsws=0000 fswe=0000
fswget: 0x06
fsw: block=0000..003f, rw=y invert=y
*/
uint8_t* datatoflash = false ? DATA_main_nodbg : DATA_main_dbgpad;
// NOTE: RL78 ONLY
if (sig.rl78.dev[0] == 'R' && sig.rl78.dev[2] == 'F') {
struct tool78_security sec;
memset(&sec, 0, sizeof sec);
st = tool78_do_security_get(hw, &sec);
printf("secget: 0x%02x\n", st);
printf("sec: flg=%02x:%02x bot=%02x fsws=%04x fswe=%04x\n", sec.flg, sec.flg2, sec.bot, sec.fsws, sec.fswe);
if (sig.rl78.dev[1] == '7') {
struct tool78_fsw_settings fsw;
st = tool78_do_fsw_get(hw, &fsw);
printf("fswget: 0x%02x\n", st);
printf("fsw: block=%04hx..%04hx, rw=%c invert=%c\n",
fsw.block_start, fsw.block_end,
(fsw.fswopt_rw_allow ? 'y' : 'n'),
(fsw.fsw_area_invert ? 'y' : 'n'));
}
}
//st = tool78_do_security_release(&tool78_hw_rl78_uart1);
//printf("sec rel: 0x%02x\n", st);
// one block = 0x400 = 1k
/*st = tool78_do_block_erase(hw, 0, -1);
printf("block erase 0: 0x%02x\n", st);
st = tool78_do_block_blank_check(hw, 0, 0x3ff, false);
printf("blank check: 0x%02x\n", st);
st = tool78_do_programming(hw, 0, 0x003ff, datatoflash);
printf("programming: 0x%02x\n", st);
st = tool78_do_verify(hw, 0, 0x3ff, datatoflash);
printf("verify: 0x%02x\n", st);*/
/*for (size_t iii = 0; iii < 65536; iii += 0x400) {
st = tool78_do_verify(hw, iii+0, iii+0x3ff, &DATA_wfum_flash[iii]);
printf("verify 0x%04zx: 0x%02x\n", iii, st);
}*/
hw->deinit();
}
void cli_tool78_ocdtest(void) {
uint8_t passwd[10] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
uint16_t ver;
enum tool78_stat st;
int rr;
uint8_t checkbuf[2];
bool first = true;
ver=0;
while (true) {
st = tool78_init_ocd(&tool78_hw_rl78_uart1, &ver, passwd);
if (st == 0xc3) {
rr = tool78_hw_rl78_uart1.recv(1, &st, 120*1000*1000);
if (rr != 1) {
printf("aaaa\n");
goto deinit_bad;
}
}
printf("result: 0x%02x ver=%04x\n", st, ver);
if (st != 0xf2 && st != 0xf0) {
printf("init: %d\n", st);
goto deinit_bad;
}
break;
}
// can't write too much at 0xf07e0 as 0xf0800 and up contains OCD state,
// overwrite this and suddenly the OCD system resets itself
st = tool78_ocd_write(&tool78_hw_rl78_uart1, 0x07e0,
sizeof(shellcode_test), shellcode_test);
//printf("write shellcode res 0x%02x\n", st);
if (st != 0) {
printf("shellcode write failed: %d\n", st);
goto deinit_bad;
}
st = tool78_ocd_exec(&tool78_hw_rl78_uart1);
//printf("exec res 0x%02x\n", st);
if (st != 0) {
printf("exec failed: %d\n", st);
goto deinit_bad;
}
// wait for completion
rr = tool78_hw_rl78_uart1.recv(1, checkbuf, 120*1000*1000);
if (rr != 1) {
printf("exec code: no response :/ (%d)\n", rr);
goto deinit_bad;
}
printf("result: '%c' (0x%02x)\n", checkbuf[0], checkbuf[0]);
busy_wait_ms(1000);
deinit_bad:
tool78_hw_rl78_uart1.deinit();
return;
}
void cli_tool78_g10_prototest(void) {
struct tool78_hw* hw = &tool78_hw_rl78g10_uart1;
enum tool78_stat st = tool78_init_sfp(hw, NULL);
printf("init: %02x\n", st);
const uint8_t* datatoflash = false ? DATA_G1M_nodbg : DATA_G1M_dbgpad;
enum tool78_g10_flash_size fsz = 0x1f;
st = tool78_do_g10_get_flash_size(hw, &fsz);
printf("get flash size: stat %02x size %02x\n", st, fsz);
hw->deinit();
st = tool78_init_sfp(hw, NULL);
uint16_t crc=0;
st = tool78_do_g10_check_crc(hw, fsz, &crc);
printf("get crc: stat %02x crc %04x\n", st, crc);
hw->deinit();
/*st = tool78_init_sfp(hw, NULL);
st = tool78_do_g10_erase_then_write(hw, fsz, datatoflash, 768);
printf("erase-then-write: stat %02x\n", st);
hw->deinit();*/
}
void cli_tool78_g10_ocdtest(void) {
uint8_t passwd[10] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
struct tool78_hw* hw = &tool78_hw_rl78g10_uart1;
int st, rr;
uint8_t checkbuf[2];
while (true) {
st = tool78_init_ocd(hw, NULL, passwd);
if (st == 0xc3) {
rr = hw->recv(1, &st, 120*1000*1000);
if (rr != 1) {
printf("aaaa\n");
goto deinit_bad;
}
} else {
printf("result: 0x%02x\n", st);
if (st != 0xf2 && st != 0xf0) {
printf("init: %d\n", st);
goto deinit_bad;
}
break;
}
}
uint8_t val = 0;
st = tool78_ocd_read(hw, 0x0080, 1, &val);
printf("read: st=%d val=%02x\n", st, val);
st = tool78_ocd_write(hw, 0xfed0, sizeof G1M_test_1, G1M_test_1);
printf("write1: st=%d\n", st);
st = tool78_ocd_exec(hw);
printf("exec1: st=%d\n", st);
st = tool78_ocd_write(hw, 0xfed0, sizeof G1M_test_2, G1M_test_2);
printf("write2: st=%d\n", st);
st = tool78_ocd_exec(hw);
printf("exec2: st=%d\n", st);
// wait for completion
rr = hw->recv(2, checkbuf, 1000*1000);
if (rr != 2) {
printf("exec code: no response :/ (%d)\n", rr);
goto deinit_bad;
}
printf("result: '%c' (0x%02x)\n", checkbuf[0], checkbuf[0]);
busy_wait_ms(1000);
deinit_bad:
hw->deinit();
}
static uint8_t DATA_main_dbgpad[1024] = {
0xda, 0x00, 0x00, 0x00, 0x43, 0x01, 0x4f, 0x01, 0x5b, 0x01, 0x67, 0x01, 0x73,
0x01, 0x7f, 0x01, 0x8b, 0x01, 0x97, 0x01, 0xa3, 0x01, 0xaf, 0x01, 0xbb, 0x01,
0xc7, 0x01, 0xd3, 0x01, 0xff, 0xff, 0xdf, 0x01, 0xff, 0xff, 0xeb, 0x01, 0xf7,
0x01, 0x03, 0x02, 0x0f, 0x02, 0x1b, 0x02, 0x27, 0x02, 0x33, 0x02, 0x3f, 0x02,
0x4b, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0x02, 0x63, 0x02, 0x6f,
0x02, 0x7b, 0x02, 0x87, 0x02, 0x93, 0x02, 0x9f, 0x02, 0xab, 0x02, 0xb7, 0x02,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0x1a, 0xe0,
0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0xcb, 0xf8, 0xe0,
0xfe, 0x41, 0x00, 0x61, 0xcf, 0x34, 0xd4, 0x03, 0x36, 0x80, 0xf9, 0x61, 0xdf,
0x36, 0x80, 0xf9, 0x30, 0x80, 0xf9, 0x27, 0x31, 0x1e, 0x44, 0x00, 0x00, 0xdd,
0x0e, 0xb1, 0x61, 0xcf, 0x11, 0xa9, 0xbb, 0xa5, 0xa5, 0xa7, 0xa7, 0x61, 0xdf,
0xef, 0xed, 0x61, 0xcf, 0x36, 0x00, 0xf9, 0x30, 0x00, 0x00, 0x61, 0xdf, 0x30,
0x00, 0xf9, 0x27, 0x31, 0x1e, 0x44, 0x00, 0x00, 0xdd, 0x0a, 0xb1, 0x61, 0xcf,
0xbb, 0xa7, 0xa7, 0x61, 0xdf, 0xef, 0xf1, 0x61, 0xcf, 0xfc, 0x38, 0x01, 0x00,
0x00, 0x30, 0x00, 0x00, 0xc1, 0xc1, 0xc1, 0xfc, 0xcf, 0x02, 0x00, 0xef, 0xfe,
0x71, 0x7b, 0xfa, 0xfc, 0xa6, 0x03, 0x00, 0x71, 0x7a, 0xfa, 0xd7, 0x61, 0xcf,
0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1,
0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3,
0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5,
0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7,
0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6,
0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4,
0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2,
0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0,
0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61,
0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc,
0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61,
0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf,
0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1,
0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3,
0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5,
0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7,
0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6,
0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4,
0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2,
0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0,
0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61,
0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc,
0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61,
0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf,
0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1,
0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3,
0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5,
0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7,
0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6,
0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4,
0xc2, 0xc0, 0x61, 0xfc, 0xf5, 0x22, 0xff, 0xf5, 0x62, 0x00, 0xf5, 0x77, 0x00,
0xf5, 0x79, 0x00, 0xf5, 0x75, 0x00, 0xf5, 0x7c, 0x00, 0xf5, 0x02, 0xff, 0xc9,
0xf2, 0x02, 0xff, 0xc9, 0xf0, 0x00, 0x40, 0x00, 0xb6, 0xf0, 0xad, 0xf0, 0x44,
0x00, 0x00, 0x61, 0xe8, 0xec, 0xec, 0x02, 0x00, 0xad, 0xf2, 0x16, 0x8b, 0x7c,
0xfe, 0x9b, 0xc9, 0xf0, 0x00, 0x40, 0xec, 0xec, 0x02, 0x00, 0x20, 0x02, 0xcf,
0xa0, 0xff, 0x14, 0xc9, 0xf0, 0xa1, 0xff, 0xad, 0xf0, 0x16, 0x71, 0xf2, 0x71,
0x48, 0xa4, 0xff, 0x71, 0xe3, 0xf6, 0xb8, 0x00, 0x44, 0xa0, 0x00, 0x61, 0xf3,
0xec, 0x39, 0x03, 0x00, 0x00, 0xa8, 0x00, 0xa1, 0xb8, 0x00, 0x44, 0xa0, 0x00,
0x61, 0xe3, 0xec, 0x2a, 0x03, 0x00, 0xf5, 0xf3, 0x00, 0x71, 0x68, 0xa4, 0xff,
0x71, 0x08, 0xa1, 0xff, 0x10, 0x02, 0xd7, 0xf5, 0x00, 0xff, 0xcf, 0x01, 0xff,
0x07, 0xf5, 0x02, 0xff, 0xf5, 0x03, 0xff, 0xf5, 0x04, 0xff, 0xf5, 0x05, 0xff,
0xf5, 0x06, 0xff, 0xf5, 0x07, 0xff, 0xf5, 0x0c, 0xff, 0xf5, 0x0d, 0xff, 0xf5,
0x0e, 0xff, 0x51, 0x03, 0x9f, 0x30, 0x00, 0x51, 0xf3, 0x9f, 0x60, 0x00, 0x51,
0xfe, 0x9f, 0x6c, 0x00, 0x51, 0x7f, 0x9f, 0x6e, 0x00, 0xe5, 0x76, 0x00, 0xcf,
0x20, 0xff, 0x83, 0xf5, 0x21, 0xff, 0xf5, 0x22, 0xff, 0xcf, 0x23, 0xff, 0xfc,
0xcf, 0x24, 0xff, 0xf1, 0xcf, 0x25, 0xff, 0xc0, 0xcf, 0x26, 0xff, 0xf0, 0xf5,
0x27, 0xff, 0xcf, 0x2c, 0xff, 0xfe, 0xcf, 0x2e, 0xff, 0x3c, 0xd7, 0xf5, 0x77,
0x00, 0xfc, 0x47, 0x03, 0x00, 0xfc, 0x09, 0x03, 0x00, 0xf5, 0xf0, 0x02, 0xf5,
0x78, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};
static uint8_t DATA_main_nodbg[1024] = {
0xda, 0x00, 0x00, 0x00, 0x43, 0x01, 0x4f, 0x01, 0x5b, 0x01, 0x67, 0x01, 0x73,
0x01, 0x7f, 0x01, 0x8b, 0x01, 0x97, 0x01, 0xa3, 0x01, 0xaf, 0x01, 0xbb, 0x01,
0xc7, 0x01, 0xd3, 0x01, 0xff, 0xff, 0xdf, 0x01, 0xff, 0xff, 0xeb, 0x01, 0xf7,
0x01, 0x03, 0x02, 0x0f, 0x02, 0x1b, 0x02, 0x27, 0x02, 0x33, 0x02, 0x3f, 0x02,
0x4b, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0x02, 0x63, 0x02, 0x6f,
0x02, 0x7b, 0x02, 0x87, 0x02, 0x93, 0x02, 0x9f, 0x02, 0xab, 0x02, 0xb7, 0x02,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0x1a, 0xe0,
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0xcb, 0xf8, 0xe0,
0xfe, 0x41, 0x00, 0x61, 0xcf, 0x34, 0xd4, 0x03, 0x36, 0x80, 0xf9, 0x61, 0xdf,
0x36, 0x80, 0xf9, 0x30, 0x80, 0xf9, 0x27, 0x31, 0x1e, 0x44, 0x00, 0x00, 0xdd,
0x0e, 0xb1, 0x61, 0xcf, 0x11, 0xa9, 0xbb, 0xa5, 0xa5, 0xa7, 0xa7, 0x61, 0xdf,
0xef, 0xed, 0x61, 0xcf, 0x36, 0x00, 0xf9, 0x30, 0x00, 0x00, 0x61, 0xdf, 0x30,
0x00, 0xf9, 0x27, 0x31, 0x1e, 0x44, 0x00, 0x00, 0xdd, 0x0a, 0xb1, 0x61, 0xcf,
0xbb, 0xa7, 0xa7, 0x61, 0xdf, 0xef, 0xf1, 0x61, 0xcf, 0xfc, 0x38, 0x01, 0x00,
0x00, 0x30, 0x00, 0x00, 0xc1, 0xc1, 0xc1, 0xfc, 0xcf, 0x02, 0x00, 0xef, 0xfe,
0x71, 0x7b, 0xfa, 0xfc, 0xa6, 0x03, 0x00, 0x71, 0x7a, 0xfa, 0xd7, 0x61, 0xcf,
0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1,
0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3,
0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5,
0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7,
0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6,
0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4,
0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2,
0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0,
0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61,
0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc,
0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61,
0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf,
0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1,
0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3,
0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5,
0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7,
0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6,
0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4,
0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2,
0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0,
0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61,
0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc,
0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61,
0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf,
0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1,
0xc3, 0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3,
0xc5, 0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5,
0xc7, 0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7,
0xc6, 0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6,
0xc4, 0xc2, 0xc0, 0x61, 0xfc, 0x61, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc6, 0xc4,
0xc2, 0xc0, 0x61, 0xfc, 0xf5, 0x22, 0xff, 0xf5, 0x62, 0x00, 0xf5, 0x77, 0x00,
0xf5, 0x79, 0x00, 0xf5, 0x75, 0x00, 0xf5, 0x7c, 0x00, 0xf5, 0x02, 0xff, 0xc9,
0xf2, 0x02, 0xff, 0xc9, 0xf0, 0x00, 0x40, 0x00, 0xb6, 0xf0, 0xad, 0xf0, 0x44,
0x00, 0x00, 0x61, 0xe8, 0xec, 0xec, 0x02, 0x00, 0xad, 0xf2, 0x16, 0x8b, 0x7c,
0xfe, 0x9b, 0xc9, 0xf0, 0x00, 0x40, 0xec, 0xec, 0x02, 0x00, 0x20, 0x02, 0xcf,
0xa0, 0xff, 0x14, 0xc9, 0xf0, 0xa1, 0xff, 0xad, 0xf0, 0x16, 0x71, 0xf2, 0x71,
0x48, 0xa4, 0xff, 0x71, 0xe3, 0xf6, 0xb8, 0x00, 0x44, 0xa0, 0x00, 0x61, 0xf3,
0xec, 0x39, 0x03, 0x00, 0x00, 0xa8, 0x00, 0xa1, 0xb8, 0x00, 0x44, 0xa0, 0x00,
0x61, 0xe3, 0xec, 0x2a, 0x03, 0x00, 0xf5, 0xf3, 0x00, 0x71, 0x68, 0xa4, 0xff,
0x71, 0x08, 0xa1, 0xff, 0x10, 0x02, 0xd7, 0xf5, 0x00, 0xff, 0xcf, 0x01, 0xff,
0x07, 0xf5, 0x02, 0xff, 0xf5, 0x03, 0xff, 0xf5, 0x04, 0xff, 0xf5, 0x05, 0xff,
0xf5, 0x06, 0xff, 0xf5, 0x07, 0xff, 0xf5, 0x0c, 0xff, 0xf5, 0x0d, 0xff, 0xf5,
0x0e, 0xff, 0x51, 0x03, 0x9f, 0x30, 0x00, 0x51, 0xf3, 0x9f, 0x60, 0x00, 0x51,
0xfe, 0x9f, 0x6c, 0x00, 0x51, 0x7f, 0x9f, 0x6e, 0x00, 0xe5, 0x76, 0x00, 0xcf,
0x20, 0xff, 0x83, 0xf5, 0x21, 0xff, 0xf5, 0x22, 0xff, 0xcf, 0x23, 0xff, 0xfc,
0xcf, 0x24, 0xff, 0xf1, 0xcf, 0x25, 0xff, 0xc0, 0xcf, 0x26, 0xff, 0xf0, 0xf5,
0x27, 0xff, 0xcf, 0x2c, 0xff, 0xfe, 0xcf, 0x2e, 0xff, 0x3c, 0xd7, 0xf5, 0x77,
0x00, 0xfc, 0x47, 0x03, 0x00, 0xfc, 0x09, 0x03, 0x00, 0xf5, 0xf0, 0x02, 0xf5,
0x78, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};
static uint8_t DATA_G1M_dbgpad[768] = {
0xce, 0x00, 0xff, 0xff, 0xce, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xf7, 0xfd,
0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0xf8,
0xd0, 0xfe, 0xfd, 0x29, 0x02, 0xfd, 0x42, 0x02, 0xfd, 0x16, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xd7, 0x71, 0x0b, 0x00, 0xfd, 0xdb, 0x00, 0x52, 0x08, 0x31, 0x05, 0x07,
0x00, 0x00, 0x71, 0x0a, 0x00, 0xef, 0x06, 0x71, 0x0b, 0x00, 0x00, 0x00, 0x00,
0xfd, 0xea, 0x00, 0x31, 0x1a, 0x92, 0xdf, 0xe8, 0x71, 0x0a, 0x00, 0xfd, 0xdb,
0x00, 0xfd, 0xdb, 0x00, 0xd7, 0x71, 0x0a, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb,
0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00,
0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd,
0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb,
0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00,
0xfd, 0xdb, 0x00, 0x41, 0x0e, 0x52, 0x00, 0x36, 0x00, 0xfe, 0x11, 0x8b, 0xc1,
0xc3, 0xfd, 0xec, 0x00, 0xc2, 0xc0, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd,
0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb,
0x00, 0xa7, 0x92, 0xd2, 0xdf, 0xdd, 0x52, 0x00, 0x11, 0x8b, 0xc1, 0xc3, 0xfd,
0xec, 0x00, 0xc2, 0xc0, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00,
0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xa7,
0x92, 0xd2, 0xdf, 0xdd, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00,
0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd,
0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb,
0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00,
0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0x51,
0x45, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0x51, 0x4e, 0xfd, 0xdb, 0x00, 0xfd,
0xdb, 0x00, 0x51, 0x44, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0x51, 0x20, 0xfd,
0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xed, 0x55, 0x01, 0x51, 0x20, 0xfd, 0xec, 0x00,
0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd,
0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb,
0x00, 0xfd, 0xdb, 0x00, 0xed, 0x55, 0x01, 0xcf, 0x77, 0x00, 0x00, 0xcf, 0x00,
0xff, 0x00, 0xcf, 0x30, 0x00, 0x00, 0xcf, 0x50, 0x00, 0x00, 0xcf, 0x60, 0x00,
0x7f, 0xcf, 0x20, 0xff, 0x00, 0xd7, 0xcf, 0xf0, 0x00, 0xe5, 0xcf, 0xf3, 0x00,
0x10, 0xd7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff
};
static uint8_t DATA_G1M_nodbg[768] = {
0xce, 0x00, 0xff, 0xff, 0xce, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xf7, 0xfd,
0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0xf8,
0xd0, 0xfe, 0xfd, 0x29, 0x02, 0xfd, 0x42, 0x02, 0xfd, 0x16, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xd7, 0x71, 0x0b, 0x00, 0xfd, 0xdb, 0x00, 0x52, 0x08, 0x31, 0x05, 0x07,
0x00, 0x00, 0x71, 0x0a, 0x00, 0xef, 0x06, 0x71, 0x0b, 0x00, 0x00, 0x00, 0x00,
0xfd, 0xea, 0x00, 0x31, 0x1a, 0x92, 0xdf, 0xe8, 0x71, 0x0a, 0x00, 0xfd, 0xdb,
0x00, 0xfd, 0xdb, 0x00, 0xd7, 0x71, 0x0a, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb,
0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00,
0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd,
0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb,
0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00,
0xfd, 0xdb, 0x00, 0x41, 0x0e, 0x52, 0x00, 0x36, 0x00, 0xfe, 0x11, 0x8b, 0xc1,
0xc3, 0xfd, 0xec, 0x00, 0xc2, 0xc0, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd,
0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb,
0x00, 0xa7, 0x92, 0xd2, 0xdf, 0xdd, 0x52, 0x00, 0x11, 0x8b, 0xc1, 0xc3, 0xfd,
0xec, 0x00, 0xc2, 0xc0, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00,
0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xa7,
0x92, 0xd2, 0xdf, 0xdd, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00,
0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd,
0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb,
0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00,
0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0x51,
0x45, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0x51, 0x4e, 0xfd, 0xdb, 0x00, 0xfd,
0xdb, 0x00, 0x51, 0x44, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0x51, 0x20, 0xfd,
0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xed, 0x55, 0x01, 0x51, 0x20, 0xfd, 0xec, 0x00,
0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd,
0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb, 0x00, 0xfd, 0xdb,
0x00, 0xfd, 0xdb, 0x00, 0xed, 0x55, 0x01, 0xcf, 0x77, 0x00, 0x00, 0xcf, 0x00,
0xff, 0x00, 0xcf, 0x30, 0x00, 0x00, 0xcf, 0x50, 0x00, 0x00, 0xcf, 0x60, 0x00,
0x7f, 0xcf, 0x20, 0xff, 0x00, 0xd7, 0xcf, 0xf0, 0x00, 0xe5, 0xcf, 0xf3, 0x00,
0x10, 0xd7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff
};