From a679ba38190bfed6ae150a12e819ad7527c495d1 Mon Sep 17 00:00:00 2001 From: sik Date: Sun, 5 Mar 2017 20:57:11 -0300 Subject: Upgrade! --- c/echo.c | 139 +++++++++++++++- c/echo.h | 6 +- c/echoblob.h | 518 ++++++++++++++++++++++++++++++----------------------------- 3 files changed, 406 insertions(+), 257 deletions(-) (limited to 'c') diff --git a/c/echo.c b/c/echo.c index b4368da..e488e33 100644 --- a/c/echo.c +++ b/c/echo.c @@ -15,9 +15,37 @@ static volatile uint16_t* const z80_reset = (uint16_t *) 0xA11200; { *z80_busreq = 0; } #define Z80_RESET() \ { *z80_reset = 0; \ - int16_t i; for (i = 8; i >= 0; i--); \ + volatile int16_t i; for (i = 4; i >= 0; i--); \ *z80_reset = 0x100; } +// Macro to add delays +// Using volatile is needlessly ugly but at least portable +// GCC is already awful at optimizing, so this isn't that bad... +#define DELAY() \ + { volatile int16_t i; for (i = 0xFF; i >= 0; i--); } + +// Look-up tables for echo_set_volume +static const uint8_t fm_volumes[] = { + 0x7F,0x7B,0x77,0x73,0x70,0x6C,0x68,0x65, + 0x61,0x5E,0x5A,0x57,0x54,0x50,0x4D,0x4A, + 0x47,0x44,0x41,0x3F,0x3C,0x39,0x36,0x34, + 0x31,0x2F,0x2D,0x2A,0x28,0x26,0x24,0x22, + 0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13, + 0x12,0x10,0x0F,0x0D,0x0C,0x0B,0x0A,0x09, + 0x08,0x07,0x06,0x05,0x04,0x04,0x03,0x02, + 0x02,0x01,0x01,0x01,0x00,0x00,0x00,0x00 +}; +static const uint8_t psg_volumes[] = { + 0x0F,0x0F,0x0E,0x0E,0x0D,0x0D,0x0C,0x0C, + 0x0B,0x0B,0x0B,0x0A,0x0A,0x0A,0x09,0x09, + 0x08,0x08,0x08,0x07,0x07,0x07,0x06,0x06, + 0x06,0x06,0x05,0x05,0x05,0x04,0x04,0x04, + 0x04,0x03,0x03,0x03,0x03,0x03,0x02,0x02, + 0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + //*************************************************************************** // echo_init // Initializes Echo and gets it running. @@ -35,6 +63,9 @@ void echo_init(const void **list) { // due to linker shenanigans) z80_ram[0x1FFF] = 0x00; + // Direct stream is empty yet + z80_ram[0x1F00] = 0xFF; + // Load the instrument list manually, since thanks to linker shenanigans // we can't implement the list properly in ROM :/ volatile uint8_t *dest = &z80_ram[0x1C00]; @@ -65,6 +96,13 @@ void echo_init(const void **list) { while (count-- >= 0) *dest++ = *src++; + // Set up global volume + int i; + for (i = 0; i < 12; i++) + z80_ram[0x1FE0+i] = 0; + z80_ram[0x1FEC] = 1; + z80_ram[0x1FF1] = 1; + // Let Echo start running! Z80_RESET(); Z80_RELEASE(); @@ -84,8 +122,7 @@ void echo_send_command(uint8_t cmd) { // Is Echo busy yet? while (z80_ram[0x1FFF] != 0x00) { Z80_RELEASE(); - int16_t i; - for (i = 0x3FF; i >= 0; i--); + DELAY(); Z80_REQUEST(); } @@ -116,8 +153,7 @@ void echo_send_command_addr(uint8_t cmd, const void *addr) { // Is Echo busy yet? while (z80_ram[0x1FFF] != 0x00) { Z80_RELEASE(); - int16_t i; - for (i = 0x3FF; i >= 0; i--); + DELAY(); Z80_REQUEST(); } @@ -187,9 +223,11 @@ void echo_stop_bgm(void) { // Resumes background music playback. //*************************************************************************** +/* void echo_resume_bgm(void) { echo_send_command(ECHO_CMD_RESUMEBGM); } +*/ //*************************************************************************** // echo_play_sfx @@ -211,6 +249,95 @@ void echo_stop_sfx(void) { echo_send_command(ECHO_CMD_STOPSFX); } +//*************************************************************************** +// echo_play_direct +// Injects events into the BGM stream for the next tick. +//--------------------------------------------------------------------------- +// param ptr: pointer to BGM stream +//*************************************************************************** + +void echo_play_direct(const void *ptr) { + // We need access to Z80 bus + Z80_REQUEST(); + + // Check where we can start writing events + volatile uint8_t *dest = &z80_ram[0x1F00]; + while (*dest != 0xFF) dest++; + + // Write the events + const uint8_t *src = (uint8_t*)(ptr); + for (;;) { + uint8_t byte = *src++; + *dest++ = byte; + if (byte == 0xFF) break; + } + + // Done with the Z80 + Z80_RELEASE(); +} + +//*************************************************************************** +// echo_set_volume +// Changes the global volume for every channel. +//--------------------------------------------------------------------------- +// param vol: new volume (0 = quietest, 255 = loudest) +//*************************************************************************** + +void echo_set_volume(uint8_t vol) { + // We need access to Z80 bus + Z80_REQUEST(); + + // Set FM volume values + uint8_t fm_vol = fm_volumes[vol >> 2]; + z80_ram[0x1FE0] = fm_vol; + z80_ram[0x1FE1] = fm_vol; + z80_ram[0x1FE2] = fm_vol; + z80_ram[0x1FE3] = fm_vol; + z80_ram[0x1FE4] = fm_vol; + z80_ram[0x1FE5] = fm_vol; + z80_ram[0x1FE6] = fm_vol; + z80_ram[0x1FE7] = fm_vol; + + // Set PSG volume values + uint8_t psg_vol = psg_volumes[vol >> 2]; + z80_ram[0x1FE8] = psg_vol; + z80_ram[0x1FE9] = psg_vol; + z80_ram[0x1FEA] = psg_vol; + z80_ram[0x1FEB] = psg_vol; + + // Determine whether to enable PCM + z80_ram[0x1FEC] = (vol >= 0x40) ? 1 : 0; + + // Tell Echo to update all the volumes + z80_ram[0x1FF1] = 1; + + // Done with the Z80 + Z80_RELEASE(); +} + +//*************************************************************************** +// echo_set_volume_ex +// Changes the global volume for each individual channel. +//--------------------------------------------------------------------------- +// param ptr: pointer to array with volume values +//*************************************************************************** + +void echo_set_volume_ex(const uint8_t *ptr) { + // We need access to Z80 bus + Z80_REQUEST(); + + // Store the new volume values + int i; + for (i = 0; i < 13; i++) + z80_ram[0x1FE0+i] = ptr[i]; + + // Tell Echo to update all the volumes + z80_ram[0x1FF1] = 1; + + // Done with the Z80 + Z80_RELEASE(); +} + //*************************************************************************** // echo_set_pcm_rate // Changes the playback rate of PCM. @@ -238,6 +365,8 @@ uint16_t echo_get_status(void) { status = z80_ram[0x1FF0]; if (z80_ram[0x1FFF] != 0) status |= ECHO_STAT_BUSY; + if (z80_ram[0x1F00] != 0xFF) + status |= ECHO_STAT_DIRBUSY; // Done with the Z80 Z80_RELEASE(); diff --git a/c/echo.h b/c/echo.h index 086535e..56088b6 100644 --- a/c/echo.h +++ b/c/echo.h @@ -19,15 +19,19 @@ enum { /* Echo status flags */ #define ECHO_STAT_BGM 0x0002 /* Background music is playing */ #define ECHO_STAT_SFX 0x0001 /* Sound effect is playing */ +#define ECHO_STAT_DIRBUSY 0x4000 /* Echo isn't done with direct events */ #define ECHO_STAT_BUSY 0x8000 /* Echo still didn't parse command */ /* Function prototypes */ void echo_init(const void **); void echo_play_bgm(const void *); void echo_stop_bgm(void); -void echo_resume_bgm(void); +/*void echo_resume_bgm(void);*/ void echo_play_sfx(const void *); void echo_stop_sfx(void); +void echo_play_direct(const void *); +void echo_set_volume(uint8_t); +void echo_set_volume_ex(const uint8_t *); void echo_set_pcm_rate(uint8_t); uint16_t echo_get_status(void); void echo_send_command(uint8_t); diff --git a/c/echoblob.h b/c/echoblob.h index 1782524..827cc5b 100644 --- a/c/echoblob.h +++ b/c/echoblob.h @@ -1,6 +1,6 @@ static uint8_t echo_blob[] = { - 49,240, 31,175, 50,240, 31, 33, 17,127, 54,159, 54,191, 54,223, - 54,255,175, 50, 0, 18, 50, 16, 18, 50, 32, 18, 50, 48, 18, 33, + 49,224, 31,175, 50,240, 31, 33, 17,127, 54,159, 54,191, 54,223, + 54,255,175, 50, 0, 19, 50, 16, 19, 50, 32, 19, 50, 48, 19, 33, 0, 96,117,117,117,117,117,117,117,117,117,221, 33, 0, 64,253, 38, 64,217, 6, 0,217,221, 54, 0, 43,221, 54, 1, 0, 30,127, 62, 64, 6, 4,221,119, 0,221,115, 1,221,119, 2,221,115, 3, @@ -11,253 +11,269 @@ static uint8_t echo_blob[] = { 2,181,221, 54, 3,192,221, 54, 2,182,221, 54, 3,192,221, 54, 0, 36,221, 54, 1,254,221, 54, 0, 37,221, 54, 1, 3,221, 54, 0, 38,221, 54, 1,201,221, 54, 0, 39,221, 54, 1, 63,195,239, - 0, 61,202, 67, 1, 61,202, 83, 5, 61,202,125, 6, 61,202, 0, - 3, 61,202,133, 4, 61,202, 81, 3, 61,202,222, 2, 58, 0, 64, - 15,220, 13, 2,175, 50,255, 31, 58, 0, 64, 15,220, 13, 2, 58, - 255, 31,183, 32,204, 58, 0, 64, 15,220, 13, 2, 58, 0, 64,203, - 79, 32, 8,203, 71,196, 13, 2,195,239, 0,221,126, 0,203, 71, - 196, 13, 2,221, 54, 0, 39,221, 54, 1, 47, 58, 0, 64, 15,220, - 13, 2,195, 37, 1, 58, 0, 64, 15,220, 13, 2,195, 47, 1, 58, - 0, 64, 15,220, 13, 2,195, 69, 12, 58, 0, 64, 15,220, 13, 2, + 0, 61,202, 83, 1, 61,202,109, 5, 61,202,156, 6, 61,202, 21, + 3, 61,202,159, 4, 61,202,102, 3, 61,202,243, 2, 58, 0, 64, + 15,220, 34, 2,175, 50,255, 31, 58, 0, 64, 15,220, 34, 2, 58, + 255, 31,183, 32,204, 58, 0, 64, 15,220, 34, 2, 58, 0, 64,203, + 79, 32, 8,203, 71,196, 34, 2,195,239, 0, 58, 0, 64, 15,220, + 34, 2,221, 54, 0, 39,221, 54, 1, 47, 58, 0, 64, 15,220, 34, + 2, 58,241, 31,183,196,227, 16,195, 43, 1, 58, 0, 64, 15,220, + 34, 2,205, 84, 7, 58, 0, 64, 15,220, 34, 2,195, 63, 1, 58, + 0, 64, 15,220, 34, 2,195, 4, 13, 58, 0, 64, 15,220, 34, 2, 195,239, 0, 33,252, 31, 78, 44, 94, 44, 86,235,175, 50,255, 31, - 17, 0, 28,205,113, 1,120,183,202,110, 1, 18, 20,205,113, 1, - 120, 18, 20,205,113, 1,120, 18, 21, 21, 28,195, 83, 1,195,239, - 0, 58,140, 18,185,202,145, 1,121, 50,140, 18,229, 33, 0, 96, + 17, 0, 28,205,129, 1,120,183,202,126, 1, 18, 20,205,129, 1, + 120, 18, 20,205,129, 1,120, 18, 21, 21, 28,195, 99, 1,195,239, + 0, 58,152, 19,185,202,161, 1,121, 50,152, 19,229, 33, 0, 96, 119, 15,119, 15,119, 15,119, 15,119, 15,119, 15,119,116, 15,119, - 225, 70, 44,194,157, 1, 36,194,157, 1, 38,128, 12,201,205,184, - 1,195,204, 5, 58, 0, 64, 15,220, 13, 2, 58,134, 18,183,194, - 106, 4,205,184, 1,195,174, 3,205,113, 1,120,217, 38, 28,111, - 86, 36, 94, 36, 78, 33, 0, 96,121, 50,140, 18,119, 15,119, 15, - 119, 15,119, 15,119, 15,119, 15,119,116, 15,119, 38, 18,123,246, - 240,111, 69, 26,119, 28, 44,194,227, 1,104,123,183,194,247, 1, - 20,194,247, 1, 22,128, 12,217,175, 50, 13, 2,221, 54, 0, 43, - 221, 54, 1,128,221, 54, 0, 42,221, 54, 1,128,201,201,217,221, - 54, 0, 39,221, 54, 1, 31,126, 60, 40, 12,221, 54, 0, 42,221, - 119, 1, 44, 40, 22,217,201, 6, 0,221, 54, 0, 42,221, 54, 1, - 128,221, 54, 0, 43,221, 54, 1, 0,217,201, 58,140, 18,185,202, - 89, 2,121, 50,140, 18, 33, 0, 96,119, 15,119, 15,119, 15,119, - 15,119, 15,119, 15,119,116, 15,119, 33,240, 18, 26,119, 44, 28, - 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, 28, - 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, 28, - 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, 28, - 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, 28,194,166, 2, 20, - 194,166, 2, 22,128, 12, 46,240,195, 15, 2,205,197, 2,195,204, - 5, 58, 0, 64, 15,220, 13, 2, 58,134, 18,183,194,174, 3,205, - 197, 2,195,174, 3, 62,201, 50, 13, 2,221, 54, 0, 43,221, 54, - 1, 0,201, 62, 1, 50,134, 18,205,197, 2,195,204, 5, 58,252, - 31, 47, 71,175, 50,255, 31,120,221, 54, 0, 36, 15, 15,246,192, - 221,119, 1,120,221, 54, 0, 37,230, 3,221,119, 1,195,239, 0, - 58, 0, 64, 15,220, 13, 2,205,179, 4, 58, 0, 64, 15,220, 13, - 2, 58,240, 31,246, 2, 50,240, 31, 58, 0, 64, 15,220, 13, 2, - 33,252, 31, 78, 44, 94, 44, 86, 58, 0, 64, 15,220, 13, 2,175, - 50,255, 31, 33,141, 18, 54, 1, 44, 54, 1, 44,113, 44,115, 44, - 114, 58, 0, 64, 15,220, 13, 2, 33,141, 3, 34, 45, 1,195,239, - 0,175, 50,255, 31, 6, 8, 17,135, 18, 58, 0, 64, 15,220, 13, - 2, 26,183,194,114, 3, 58, 0, 64, 15,220, 13, 2, 5,205, 14, - 12, 4, 29, 5,194, 90, 3, 58,240, 31,246, 2, 50,240, 31, 33, - 141, 18, 54, 1, 33,141, 3, 34, 45, 1,195,239, 0, 58, 0, 64, - 15,220, 13, 2, 33,142, 18,126, 61,202,160, 3,119,195, 47, 1, - 58, 0, 64, 15,220, 13, 2, 44, 78, 44, 94, 44, 86,235, 58, 0, - 64, 15,220, 13, 2,205,113, 1, 58, 0, 64, 15,220, 13, 2,120, - 254, 8,218, 59, 7,254, 11,218, 1, 13,202,133, 13,254, 12,202, - 164, 1, 58, 0, 64, 15,220, 13, 2,120,254, 24,218,220, 7,254, - 28,218,225, 13,202,177, 2, 58, 0, 64, 15,220, 13, 2,120,254, - 254,202,231, 15,254,255,202,127, 4,254,252,202, 41, 5,254,253, - 202, 62, 5, 58, 0, 64, 15,220, 13, 2,120,254, 40,218,195, 9, - 254, 44,218, 62, 14, 58, 0, 64, 15,220, 13, 2,120,254, 56,218, - 10, 8,254, 59,218, 82, 15,202,172, 15, 58, 0, 64, 15,220, 13, - 2,120,254, 72,218,137, 8,254, 76,218,213, 14, 58, 0, 64, 15, - 220, 13, 2,120,254,224,218,247, 15,254,248,218, 22, 11, 58, 0, - 64, 15,220, 13, 2,195,127, 4, 58, 0, 64, 15,220, 13, 2, 44, - 194,106, 4, 36,194,106, 4, 38,128, 12, 58, 0, 64, 15,220, 13, - 2, 44,194,124, 4, 36,194,124, 4, 38,128, 12,195,174, 3,205, - 143, 4,195, 47, 1,175, 50,255, 31,205,143, 4,195,239, 0, 58, - 240, 31,230,253, 50,240, 31, 58, 0, 64, 15,220, 13, 2,205,179, - 4, 58, 0, 64, 15,220, 13, 2,175, 50,141, 18, 33, 47, 1, 34, - 45, 1,201, 58,134, 18,183,204,197, 2, 6, 4, 17, 63, 18, 33, - 139, 18, 58, 0, 64, 15,220, 13, 2, 54, 0,123,214, 15, 95,126, - 183, 32, 2,175, 18, 58, 0, 64, 15,220, 13, 2, 29, 45, 16,226, - 6, 8, 17, 79, 18, 58, 0, 64, 15,220, 13, 2, 62,127, 18, 29, - 58, 0, 64, 15,220, 13, 2,126,183,194, 26, 5, 5,120,205,157, - 11, 58, 0, 64, 15,220, 13, 2,120,230, 4,253,111,120,230, 3, - 198,180,253,119, 0,253, 54, 1,192, 4, 45, 16,200, 33, 80, 18, - 62,192, 6, 8,119, 44, 16,252,201, 58, 0, 64, 15,220, 13, 2, - 235, 44, 78, 44, 94, 44, 86, 45, 45, 45,235,195,174, 3, 58, 0, - 64, 15,220, 13, 2,235, 44,113, 44,115, 44,114, 45, 45, 45,235, - 195,174, 3, 58, 0, 64, 15,220, 13, 2,205,185, 6, 58, 0, 64, - 15,220, 13, 2, 58,240, 31,246, 1, 50,240, 31, 58, 0, 64, 15, - 220, 13, 2, 33,252, 31, 78, 44, 94, 44, 86, 58, 0, 64, 15,220, - 13, 2,175, 50,255, 31, 33,149, 18, 54, 1, 44, 54, 1, 44,113, - 44,115, 44,114, 58, 0, 64, 15,220, 13, 2, 33,171, 5, 34, 35, - 1, 58, 0, 64, 15,220, 13, 2,195,239, 0, 58, 0, 64, 15,220, - 13, 2, 33,150, 18,126, 61,202,190, 5,119,195, 37, 1, 58, 0, - 64, 15,220, 13, 2, 44, 78, 44, 94, 44, 86,235, 58, 0, 64, 15, - 220, 13, 2,205,113, 1, 58, 0, 64, 15,220, 13, 2,120,254, 8, - 218, 53, 7,254, 11,218,251, 12,202,127, 13,254, 12,202,158, 1, - 58, 0, 64, 15,220, 13, 2,120,254, 24,218,214, 7,254, 28,218, - 219, 13,202,171, 2, 58, 0, 64, 15,220, 13, 2,120,254,254,202, - 225, 15,254,255,202,119, 6, 58, 0, 64, 15,220, 13, 2,120,254, - 40,218,189, 9,254, 44,218, 24, 14, 58, 0, 64, 15,220, 13, 2, - 120,254, 56,218, 4, 8,254, 59,218, 76, 15,202,166, 15, 58, 0, - 64, 15,220, 13, 2,120,254, 72,218,131, 8,254, 76,218,143, 14, - 58, 0, 64, 15,220, 13, 2,120,254,224,218,237, 15,254,232,218, - 107, 11,254,236,218,185, 15,202,211, 2, 58, 0, 64, 15,220, 13, - 2,120,254,248,218,231, 10,205,135, 6,195, 37, 1,175, 50,255, - 31,205,135, 6,195,239, 0, 58, 0, 64, 15,220, 13, 2, 58,240, - 31,230,254, 50,240, 31, 58, 0, 64, 15,220, 13, 2,175, 50,149, - 18, 33, 37, 1, 34, 35, 1, 58, 0, 64, 15,220, 13, 2,205,185, - 6, 58, 0, 64, 15,220, 13, 2,201, 58,134, 18,183,196,197, 2, - 6, 4, 17,139, 18, 58, 0, 64, 15,220, 13, 2, 26,183, 40, 64, - 175, 18, 58, 0, 64, 15,220, 13, 2,120, 15, 15, 15, 15, 61, 38, - 18,111, 78,214, 15,111,113, 58, 0, 64, 15,220, 13, 2,213,125, - 198, 8,111,198, 4, 95, 84, 58, 0, 64, 15,220, 13, 2, 26,119, - 44, 28, 26,119, 44, 28, 26,119,209, 58, 0, 64, 15,220, 13, 2, - 29, 16,178, 6, 8, 58, 0, 64, 15,220, 13, 2, 26,183,202, 47, - 7,175, 18, 58, 0, 64, 15,220, 13, 2, 5,205, 14, 12, 4, 29, - 5,194, 21, 7,201,205, 89, 7,195,204, 5, 71, 58, 0, 64, 15, - 220, 13, 2,229,120,230, 7, 33,128, 18,133,111,126,225,183,194, - 106, 4,120,205, 89, 7,195,174, 3,230, 7,221, 54, 0, 40,221, - 119, 1, 71, 8, 58, 0, 64, 15,220, 13, 2,120,230, 4, 15,253, - 111, 58, 0, 64, 15,220, 13, 2,205,113, 1, 58, 0, 64, 15,220, - 13, 2, 8,213,229, 87,230, 3,198,164, 95, 58, 0, 64, 15,220, - 13, 2, 38, 17,120,230, 31,198,144,111, 58, 0, 64, 15,220, 13, - 2,120,230,224, 15, 15, 71,126,176,253,115, 0,253,119, 1, 58, - 0, 64, 15,220, 13, 2,123,214, 4, 95, 45,126,253,115, 0,253, - 119, 1, 58, 0, 64, 15,220, 13, 2,122,246,240,221, 54, 0, 40, - 221,119, 1,225,209,201,205,250, 7,195,204, 5, 71, 58, 0, 64, - 15,220, 13, 2,120,229,230, 7, 33,128, 18,133,111,126,225,183, - 194,174, 3,120,205,250, 7,195,174, 3,230, 7,221, 54, 0, 40, - 221,119, 1,201,205, 40, 8,195,204, 5, 71, 58, 0, 64, 15,220, - 13, 2,120,229,230, 7, 33,128, 18,133,111,126,225,183,194, 88, - 4,120,205, 40, 8,195,174, 3,245, 71, 58, 0, 64, 15,220, 13, - 2,120,230, 4, 15,253,111, 58, 0, 64, 15,220, 13, 2,205,113, - 1, 58, 0, 64, 15,220, 13, 2,241,213,230, 7, 87,230, 3,198, - 164, 95, 58, 0, 64, 15,220, 13, 2,253,115, 0,253,112, 1, 58, - 0, 64, 15,220, 13, 2,205,113, 1, 58, 0, 64, 15,220, 13, 2, - 123,214, 4, 95,253,115, 0,253,112, 1, 58, 0, 64, 15,220, 13, - 2,209,201,205,235, 8,195,204, 5,230, 7, 71, 58, 0, 64, 15, - 220, 13, 2,213,197,120, 17, 64, 18,131, 95, 58, 0, 64, 15,220, - 13, 2,205,113, 1, 58, 0, 64, 15,220, 13, 2,120, 18,123,198, - 8, 95,175, 18, 89,193, 75,209, 58, 0, 64, 15,220, 13, 2,229, - 120, 38, 18,198,128,111,126,225,183,194,174, 3, 58, 0, 64, 15, - 220, 13, 2,120,229, 33, 64, 18,133,111, 70,225, 8, 58, 0, 64, - 15,220, 13, 2, 8,205, 0, 9,195,174, 3,230, 7, 8, 58, 0, - 64, 15,220, 13, 2,205,113, 1, 58, 0, 64, 15,220, 13, 2, 8, - 245,230, 4, 15,253,111, 58, 0, 64, 15,220, 13, 2,241,197,213, - 229, 38, 28,104, 86, 36, 94, 36, 78,235,245, 58, 0, 64, 15,220, - 13, 2, 6, 7, 17,154, 18,120, 8,205,113, 1,235,112,235, 28, - 205,113, 1,235,112,235, 28,205,113, 1,235,112,235, 28,205,113, - 1,235,112,235, 28, 8, 71, 16,222,205,113, 1,235,112,235, 58, - 0, 64, 15,220, 13, 2,241, 71,205,157, 11,120, 17, 88, 18,230, - 7,131, 95,245,230, 3,198,176, 33,154, 18, 8, 58, 0, 64, 15, - 220, 13, 2, 8,253,119, 0, 70, 44,253,112, 1, 8,120, 18,123, - 198, 8, 95, 58, 0, 64, 15,220, 13, 2, 8,214,128, 6, 28,253, - 119, 0, 78,253,113, 1,198, 4, 44, 16,244, 58, 0, 64, 15,220, - 13, 2,125,214, 24,111, 6, 4,126, 18,123,198, 8, 95, 44, 16, - 247, 58, 0, 64, 15,220, 13, 2,241,225,209,193,201,205, 32, 10, - 195,204, 5,230, 7, 71, 58, 0, 64, 15,220, 13, 2,213,197,120, - 22, 18,198, 72, 95, 58, 0, 64, 15,220, 13, 2,205,113, 1, 58, - 0, 64, 15,220, 13, 2,235,112,235, 89,193, 75,209, 58, 0, 64, - 15,220, 13, 2,229,120, 33,128, 18,133,111,126,225,183,194,174, - 3, 58, 0, 64, 15,220, 13, 2,120,229, 33, 72, 18,133,111, 70, - 225,245, 58, 0, 64, 15,220, 13, 2,241,205, 51, 10,195,174, 3, - 245, 58, 0, 64, 15,220, 13, 2,205,113, 1, 58, 0, 64, 15,220, - 13, 2,241,197,213,229,230, 7,245, 38, 18,198, 88,111, 8, 58, - 0, 64, 15,220, 13, 2, 8,230, 4, 15,253,111, 58, 0, 64, 15, - 220, 13, 2,241,230, 3,198, 64, 79,126,230, 7, 95, 58, 0, 64, - 15,220, 13, 2,125,198, 8,111,123,254, 7, 56, 14,253,113, 0, - 126,128,254,127, 56, 2, 62,127,253,119, 1,121,198, 4, 79, 58, - 0, 64, 15,220, 13, 2,125,198, 8,111,123,254, 5, 56, 14,253, - 113, 0,126,128,254,127, 56, 2, 62,127,253,119, 1,121,198, 4, - 79, 58, 0, 64, 15,220, 13, 2,125,198, 8,111,123,254, 4, 56, - 14,253,113, 0,126,128,254,127, 56, 2, 62,127,253,119, 1,121, - 198, 4, 79, 58, 0, 64, 15,220, 13, 2,125,198, 8,111,253,113, - 0,126,128,254,127, 56, 2, 62,127,253,119, 1, 58, 0, 64, 15, - 220, 13, 2,225,209,193,201, 71, 58, 0, 64, 15,220, 13, 2,120, - 230, 4, 15,253,111,120, 8, 58, 0, 64, 15,220, 13, 2,205,113, - 1, 58, 0, 64, 15,220, 13, 2, 8,230, 3,198,180,253,119, 0, - 253,112, 1,195,204, 5, 71, 58, 0, 64, 15,220, 13, 2,120,230, - 4, 15,253,111,120, 8, 58, 0, 64, 15,220, 13, 2,205,113, 1, - 58, 0, 64, 15,220, 13, 2, 8,229,230, 7, 38, 18,198, 80,111, - 112, 8, 58, 0, 64, 15,220, 13, 2, 8,230, 7,198,128,111, 8, - 126,183,225,194,174, 3, 58, 0, 64, 15,220, 13, 2, 8,230, 3, - 198,180,253,119, 0,253,112, 1,195,174, 3,230, 7, 71, 58, 0, - 64, 15,220, 13, 2,229, 38, 18,120,198,128,111, 54, 1,225, 58, - 0, 64, 15,220, 13, 2,120,230, 4, 15,253,111,120,230, 3,135, - 135,198,180,253,119, 0,253, 54, 1,192,195,204, 5,230, 7,245, - 213,229, 79,230, 4, 15,253,111,121,230, 3,198, 64, 14, 6, 33, - 168, 17, 8, 58, 0, 64, 15,220, 13, 2, 8, 94,253,119, 0,198, - 4,253,115, 1, 0,253,119, 0,198, 4,253,115, 1, 0,253,119, - 0,198, 4,253,115, 1, 0,253,119, 0,198, 4,253,115, 1, 44, - 13,194,178, 11,225,209, 58, 0, 64, 15,220, 13, 2,241, 79,246, - 240,221, 54, 0, 40,221,113, 1,221, 54, 0, 40,221,119, 1,221, - 54, 0, 40,221,113, 1, 58, 0, 64, 15,220, 13, 2,201,120, 38, - 18,198, 64,111,197,120, 70,205, 0, 9,193, 58, 0, 64, 15,220, - 13, 2,197,125,198, 8,111,120, 70,205, 51, 10,193,125,198, 8, - 111,120,230, 3,198,180,253,119, 0,126,253,119, 1, 58, 0, 64, - 15,220, 13, 2,201, 33, 48, 18, 6, 3,197,126,203,127, 32, 6, - 6, 15, 44,195,170, 12,230,127, 71, 44,126,128, 71, 58, 0, 64, - 15,220, 13, 2,197, 44, 78, 44, 94, 44, 86,235, 58, 0, 64, 15, - 220, 13, 2,205,113, 1, 58, 0, 64, 15,220, 13, 2,120,254,254, - 202,209, 12,254,255,202,230, 12,253,104, 58, 0, 64, 15,220, 13, - 2,235,114, 45,115, 45,113, 45,193, 58, 0, 64, 15,220, 13, 2, - 253,125,128, 71,254, 16, 56, 2, 6, 15, 58, 0, 64, 15,220, 13, - 2,120, 7, 7, 7,193,176, 15, 15, 15,246,144, 50, 17,127,125, - 214, 17,111, 58, 0, 64, 15,220, 13, 2, 5,242, 74, 12,195, 57, - 1, 58, 0, 64, 15,220, 13, 2, 28,235,113, 44,115, 44,114,235, - 29, 29, 29,195,108, 12, 58, 0, 64, 15,220, 13, 2, 28,235, 78, - 44, 94, 44, 86,235, 29, 29, 29,195,108, 12,205, 31, 13,195,204, - 5, 71, 58, 0, 64, 15,220, 13, 2,120,229,230, 3, 33,136, 18, - 133,111,126,225,183,194,106, 4,120,205, 31, 13,195,174, 3,230, - 3, 71, 8, 58, 0, 64, 15,220, 13, 2,229, 38, 18,120, 15, 15, - 15, 15,111,126,246,128,119, 58, 0, 64, 15,220, 13, 2,213, 44, - 44, 84,125,198, 6, 95, 58, 0, 64, 15,220, 13, 2, 26,119, 44, - 28, 26,119, 44, 28, 26,119,209,225, 58, 0, 64, 15,220, 13, 2, - 205,113, 1, 58, 0, 64, 15,220, 13, 2, 8,229,213, 38, 17,104, - 17, 17,127, 15, 15, 15, 70,176, 18, 44,126, 18,209,225,201,205, - 146, 13,195,204, 5, 58,139, 18,183,194,106, 4,205,146, 13,195, - 174, 3, 58, 0, 64, 15,220, 13, 2,229, 33, 48, 18,126,246,128, - 119, 58, 0, 64, 15,220, 13, 2,213, 44, 44, 84,125,198, 6, 95, - 58, 0, 64, 15,220, 13, 2, 26,119, 44, 28, 26,119, 44, 28, 26, - 119,209,225, 58, 0, 64, 15,220, 13, 2,205,113, 1, 58, 0, 64, - 15,220, 13, 2, 62,224,176, 50, 17,127,201,205,255, 13,195,204, - 5, 71, 58, 0, 64, 15,220, 13, 2,120,229,230, 3, 33,136, 18, - 133,111,126,225,183,194,174, 3,120,205,255, 13,195,174, 3,230, - 3, 71, 58, 0, 64, 15,220, 13, 2,229, 38, 18,120, 15, 15, 15, - 15,111,126,230,127,119,225,201,230, 3, 8, 58, 0, 64, 15,220, - 13, 2,205,113, 1, 58, 0, 64, 15,220, 13, 2, 8,229, 38, 18, - 15, 15, 15, 15,111,126,230,128,176,119,225,195,204, 5,230, 3, - 8, 58, 0, 64, 15,220, 13, 2,205,113, 1, 58, 0, 64, 15,220, - 13, 2, 8,213,229,245, 17,136, 18,131, 95, 26, 95, 58, 0, 64, - 15,220, 13, 2,241, 38, 18, 15, 15, 15, 15,198, 15,111,112, 58, - 0, 64, 15,220, 13, 2,123,183, 32, 16,125,214, 15,111,126,230, - 128,176,119, 58, 0, 64, 15,220, 13, 2,225,209,195,174, 3,230, - 3, 8, 58, 0, 64, 15,220, 13, 2,205,113, 1, 58, 0, 64, 15, - 220, 13, 2, 8,213,229, 22, 28, 88, 38, 18, 15, 15, 15, 15,198, - 10,111, 58, 0, 64, 15,220, 13, 2, 26,119, 20, 45, 26,119, 20, - 45, 26,119, 58, 0, 64, 15,220, 13, 2,125,214, 8,111, 54, 0, - 225,209,195,204, 5,230, 3, 8, 58, 0, 64, 15,220, 13, 2,205, - 113, 1, 58, 0, 64, 15,220, 13, 2, 8,213,229, 22, 28, 88, 33, - 136, 18,245,133,111,241, 70, 38, 18, 15, 15, 15, 15,198, 15,111, - 58, 0, 64, 15,220, 13, 2,119, 45, 26,119, 20, 45, 26,119, 20, - 45, 26,119, 58, 0, 64, 15,220, 13, 2,120,183,202, 36, 15,225, - 209,195,174, 3, 58, 0, 64, 15,220, 13, 2, 84,125,214, 4, 95, - 126, 18, 44, 28,126, 18, 44, 28,126, 18, 58, 0, 64, 15,220, 13, - 2,125,214, 8,111, 54, 0,225,209,195,174, 3,205,112, 15,195, - 204, 5, 71, 58, 0, 64, 15,220, 13, 2,120,229,230, 15, 38, 18, - 198,128,111,126,225,183,194, 88, 4,120,205,112, 15,195,174, 3, - 230, 3, 8, 58, 0, 64, 15,220, 13, 2,205,113, 1, 58, 0, 64, - 15,220, 13, 2, 8,213, 17, 17,127, 15, 15, 15,176,246,128, 18, - 58, 0, 64, 15,220, 13, 2,205,113, 1, 58, 0, 64, 15,220, 13, - 2,235,112,235,209,201,205,195, 13,195,204, 5, 58,139, 18,183, - 194,106, 4,205,195, 13,195,174, 3,230, 3, 71, 58, 0, 64, 15, - 220, 13, 2,229, 38, 18,120,198,136,111, 54, 1, 58, 0, 64, 15, - 220, 13, 2,120, 15, 15, 15, 15,111, 38, 18, 54, 0,225,195,204, - 5,205, 1, 16,195, 37, 1,205, 1, 16,195, 47, 1,230, 15, 60, - 71,205, 18, 16,195, 37, 1,230, 15, 60, 71,205, 18, 16,195, 47, - 1, 58, 0, 64, 15,220, 13, 2,205,113, 1, 58, 0, 64, 15,220, - 13, 2,235,114, 45,115, 45,113, 58, 0, 64, 15,220, 13, 2, 45, - 112,201,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 225, 70, 44,194,173, 1, 36,194,173, 1, 38,128, 12,201,205,200, + 1,195,230, 5, 58, 0, 64, 15,220, 34, 2, 58,142, 19,183,194, + 132, 4,205,200, 1,195,195, 3, 58,236, 31,183,200,205,129, 1, + 120,217, 38, 28,111, 86, 36, 94, 36, 78, 33, 0, 96,121, 50,152, + 19,119, 15,119, 15,119, 15,119, 15,119, 15,119, 15,119,116, 15, + 119, 38, 19,123,246,240,111, 69, 26,119, 28, 44,194,248, 1,104, + 123,183,194, 12, 2, 20,194, 12, 2, 22,128, 12,217,175, 50, 34, + 2,221, 54, 0, 43,221, 54, 1,128,221, 54, 0, 42,221, 54, 1, + 128,201,201,217,221, 54, 0, 39,221, 54, 1, 31,126, 60, 40, 12, + 221, 54, 0, 42,221,119, 1, 44, 40, 22,217,201, 6, 0,221, 54, + 0, 42,221, 54, 1,128,221, 54, 0, 43,221, 54, 1, 0,217,201, + 58,152, 19,185,202,110, 2,121, 50,152, 19, 33, 0, 96,119, 15, + 119, 15,119, 15,119, 15,119, 15,119, 15,119,116, 15,119, 33,240, + 19, 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, + 28, 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, + 28, 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, + 28, 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, 28, 26,119, 44, + 28,194,187, 2, 20,194,187, 2, 22,128, 12, 46,240,195, 36, 2, + 205,218, 2,195,230, 5, 58, 0, 64, 15,220, 34, 2, 58,142, 19, + 183,194,195, 3,205,218, 2,195,195, 3, 62,201, 50, 34, 2,221, + 54, 0, 43,221, 54, 1, 0,201, 62, 1, 50,142, 19,205,218, 2, + 195,230, 5, 58,252, 31, 47, 71,175, 50,255, 31,120,221, 54, 0, + 36, 15, 15,246,192,221,119, 1,120,221, 54, 0, 37,230, 3,221, + 119, 1,195,239, 0, 58, 0, 64, 15,220, 34, 2,205,205, 4, 58, + 0, 64, 15,220, 34, 2, 58,240, 31,246, 2, 50,240, 31, 58, 0, + 64, 15,220, 34, 2, 33,252, 31, 78, 44, 94, 44, 86, 58, 0, 64, + 15,220, 34, 2,175, 50,255, 31, 33,153, 19, 54, 1, 44, 54, 1, + 44,113, 44,115, 44,114, 58, 0, 64, 15,220, 34, 2, 33,162, 3, + 34, 61, 1,195,239, 0,175, 50,255, 31, 6, 8, 17,143, 19, 58, + 0, 64, 15,220, 34, 2, 26,183,194,135, 3, 58, 0, 64, 15,220, + 34, 2, 5,205,205, 12, 4, 29, 5,194,111, 3, 58,240, 31,246, + 2, 50,240, 31, 33,153, 19, 54, 1, 33,162, 3, 34, 61, 1,195, + 239, 0, 58, 0, 64, 15,220, 34, 2, 33,154, 19,126, 61,202,181, + 3,119,195, 63, 1, 58, 0, 64, 15,220, 34, 2, 44, 78, 44, 94, + 44, 86,235, 58, 0, 64, 15,220, 34, 2,205,129, 1, 58, 0, 64, + 15,220, 34, 2,120,254, 8,218,130, 7,254, 11,218,194, 13,202, + 70, 14,254, 12,202,180, 1, 58, 0, 64, 15,220, 34, 2,120,254, + 24,218, 35, 8,254, 28,218,162, 14,202,198, 2, 58, 0, 64, 15, + 220, 34, 2,120,254,254,202,168, 16,254,255,202,153, 4,254,252, + 202, 67, 5,254,253,202, 88, 5, 58, 0, 64, 15,220, 34, 2,120, + 254, 40,218, 14, 10,254, 44,218,255, 14, 58, 0, 64, 15,220, 34, + 2,120,254, 56,218, 81, 8,254, 59,218, 19, 16,202,109, 16, 58, + 0, 64, 15,220, 34, 2,120,254, 72,218,208, 8,254, 76,218,150, + 15, 58, 0, 64, 15,220, 34, 2,120,254,224,218,184, 16,254,248, + 218,135, 11,254,250,218,226, 11, 58, 0, 64, 15,220, 34, 2,195, + 153, 4, 58, 0, 64, 15,220, 34, 2, 44,194,132, 4, 36,194,132, + 4, 38,128, 12, 58, 0, 64, 15,220, 34, 2, 44,194,150, 4, 36, + 194,150, 4, 38,128, 12,195,195, 3,205,169, 4,195, 63, 1,175, + 50,255, 31,205,169, 4,195,239, 0, 58,240, 31,230,253, 50,240, + 31, 58, 0, 64, 15,220, 34, 2,205,205, 4, 58, 0, 64, 15,220, + 34, 2,175, 50,153, 19, 33, 63, 1, 34, 61, 1,201, 58,142, 19, + 183,204,218, 2, 6, 4, 17, 63, 19, 33,147, 19, 58, 0, 64, 15, + 220, 34, 2, 54, 0,123,214, 15, 95,126,183, 32, 2,175, 18, 58, + 0, 64, 15,220, 34, 2, 29, 45, 16,226, 6, 8, 17, 79, 19, 58, + 0, 64, 15,220, 34, 2, 62,127, 18, 29, 58, 0, 64, 15,220, 34, + 2,126,183,194, 52, 5, 5,120,205, 68, 12, 58, 0, 64, 15,220, + 34, 2,120,230, 4,253,111,120,230, 3,198,180,253,119, 0,253, + 54, 1,192, 4, 45, 16,200, 33, 80, 19, 62,192, 6, 8,119, 44, + 16,252,201, 58, 0, 64, 15,220, 34, 2,235, 44, 78, 44, 94, 44, + 86, 45, 45, 45,235,195,195, 3, 58, 0, 64, 15,220, 34, 2,235, + 44,113, 44,115, 44,114, 45, 45, 45,235,195,195, 3, 58, 0, 64, + 15,220, 34, 2,205,216, 6, 58, 0, 64, 15,220, 34, 2, 58,240, + 31,246, 1, 50,240, 31, 58, 0, 64, 15,220, 34, 2, 33,252, 31, + 78, 44, 94, 44, 86, 58, 0, 64, 15,220, 34, 2,175, 50,255, 31, + 33,161, 19, 54, 1, 44, 54, 1, 44,113, 44,115, 44,114, 58, 0, + 64, 15,220, 34, 2, 33,197, 5, 34, 41, 1, 58, 0, 64, 15,220, + 34, 2,195,239, 0, 58, 0, 64, 15,220, 34, 2, 33,162, 19,126, + 61,202,216, 5,119,195, 43, 1, 58, 0, 64, 15,220, 34, 2, 44, + 78, 44, 94, 44, 86,235, 58, 0, 64, 15,220, 34, 2,205,129, 1, + 58, 0, 64, 15,220, 34, 2,120,254, 8,218,124, 7,254, 11,218, + 188, 13,202, 64, 14,254, 12,202,174, 1, 58, 0, 64, 15,220, 34, + 2,120,254, 24,218, 29, 8,254, 28,218,156, 14,202,192, 2, 58, + 0, 64, 15,220, 34, 2,120,254,254,202,162, 16,254,255,202,150, + 6, 58, 0, 64, 15,220, 34, 2,120,254, 40,218, 8, 10,254, 44, + 218,217, 14, 58, 0, 64, 15,220, 34, 2,120,254, 56,218, 75, 8, + 254, 59,218, 13, 16,202,103, 16, 58, 0, 64, 15,220, 34, 2,120, + 254, 72,218,202, 8,254, 76,218, 80, 15, 58, 0, 64, 15,220, 34, + 2,120,254,224,218,174, 16,254,232,218, 18, 12,254,236,218,122, + 16,202,232, 2, 58, 0, 64, 15,220, 34, 2,120,254,248,218, 88, + 11,254,250,218,220, 11,205,166, 6,195, 43, 1,175, 50,255, 31, + 205,166, 6,195,239, 0, 58, 0, 64, 15,220, 34, 2, 58,240, 31, + 230,254, 50,240, 31, 58, 0, 64, 15,220, 34, 2,175, 50,161, 19, + 33, 43, 1, 34, 41, 1, 58, 0, 64, 15,220, 34, 2,205,216, 6, + 58, 0, 64, 15,220, 34, 2,201, 58,142, 19,183,196,218, 2, 6, + 4, 17,147, 19, 58, 0, 64, 15,220, 34, 2, 26,183, 40, 64,175, + 18, 58, 0, 64, 15,220, 34, 2,120, 15, 15, 15, 15, 61, 38, 19, + 111, 78,214, 15,111,113, 58, 0, 64, 15,220, 34, 2,213,125,198, + 8,111,198, 4, 95, 84, 58, 0, 64, 15,220, 34, 2, 26,119, 44, + 28, 26,119, 44, 28, 26,119,209, 58, 0, 64, 15,220, 34, 2, 29, + 16,178, 6, 8, 58, 0, 64, 15,220, 34, 2, 26,183,202, 78, 7, + 175, 18, 58, 0, 64, 15,220, 34, 2, 5,205,205, 12, 4, 29, 5, + 194, 52, 7,201, 58, 0, 31, 60,200, 58, 0, 64, 15,220, 34, 2, + 33,112, 7, 34, 12, 4, 33, 0, 31, 58,152, 19, 79,195,195, 3, + 33,153, 4, 34, 12, 4, 62,255, 50, 0, 31,201,205,160, 7,195, + 230, 5, 71, 58, 0, 64, 15,220, 34, 2,229,120,230, 7, 33,136, + 19,133,111,126,225,183,194,132, 4,120,205,160, 7,195,195, 3, + 230, 7,221, 54, 0, 40,221,119, 1, 71, 8, 58, 0, 64, 15,220, + 34, 2,120,230, 4, 15,253,111, 58, 0, 64, 15,220, 34, 2,205, + 129, 1, 58, 0, 64, 15,220, 34, 2, 8,213,229, 87,230, 3,198, + 164, 95, 58, 0, 64, 15,220, 34, 2, 38, 18,120,230, 31,198,144, + 111, 58, 0, 64, 15,220, 34, 2,120,230,224, 15, 15, 71,126,176, + 253,115, 0,253,119, 1, 58, 0, 64, 15,220, 34, 2,123,214, 4, + 95, 45,126,253,115, 0,253,119, 1, 58, 0, 64, 15,220, 34, 2, + 122,246,240,221, 54, 0, 40,221,119, 1,225,209,201,205, 65, 8, + 195,230, 5, 71, 58, 0, 64, 15,220, 34, 2,120,229,230, 7, 33, + 136, 19,133,111,126,225,183,194,195, 3,120,205, 65, 8,195,195, + 3,230, 7,221, 54, 0, 40,221,119, 1,201,205,111, 8,195,230, + 5, 71, 58, 0, 64, 15,220, 34, 2,120,229,230, 7, 33,136, 19, + 133,111,126,225,183,194,114, 4,120,205,111, 8,195,195, 3,245, + 71, 58, 0, 64, 15,220, 34, 2,120,230, 4, 15,253,111, 58, 0, + 64, 15,220, 34, 2,205,129, 1, 58, 0, 64, 15,220, 34, 2,241, + 213,230, 7, 87,230, 3,198,164, 95, 58, 0, 64, 15,220, 34, 2, + 253,115, 0,253,112, 1, 58, 0, 64, 15,220, 34, 2,205,129, 1, + 58, 0, 64, 15,220, 34, 2,123,214, 4, 95,253,115, 0,253,112, + 1, 58, 0, 64, 15,220, 34, 2,209,201,205, 50, 9,195,230, 5, + 230, 7, 71, 58, 0, 64, 15,220, 34, 2,213,197,120, 17, 64, 19, + 131, 95, 58, 0, 64, 15,220, 34, 2,205,129, 1, 58, 0, 64, 15, + 220, 34, 2,120, 18,123,198, 8, 95,175, 18, 89,193, 75,209, 58, + 0, 64, 15,220, 34, 2,229,120, 38, 19,198,136,111,126,225,183, + 194,195, 3, 58, 0, 64, 15,220, 34, 2,120,229, 33, 64, 19,133, + 111, 70,225, 8, 58, 0, 64, 15,220, 34, 2, 8,205, 71, 9,195, + 195, 3,230, 7, 8, 58, 0, 64, 15,220, 34, 2,205,129, 1, 58, + 0, 64, 15,220, 34, 2, 8,245,230, 4, 15,253,111, 58, 0, 64, + 15,220, 34, 2,241,197,213,229, 38, 28,104, 86, 36, 94, 36, 78, + 235,245, 58, 0, 64, 15,220, 34, 2, 6, 7, 17,166, 19,120, 8, + 205,129, 1,235,112,235, 28,205,129, 1,235,112,235, 28,205,129, + 1,235,112,235, 28,205,129, 1,235,112,235, 28, 8, 71, 16,222, + 205,129, 1,235,112,235, 58, 0, 64, 15,220, 34, 2,241, 71,205, + 68, 12,120, 17, 96, 19,230, 7,131, 95,245,230, 3,198,176, 33, + 166, 19, 8, 58, 0, 64, 15,220, 34, 2, 8,253,119, 0, 70, 44, + 253,112, 1, 8,120, 18,123,198, 8, 95, 58, 0, 64, 15,220, 34, + 2, 8,214,128, 6, 28,253,119, 0, 78,253,113, 1,198, 4, 44, + 16,244, 58, 0, 64, 15,220, 34, 2,125,214, 24,111, 6, 4,126, + 18,123,198, 8, 95, 44, 16,247, 58, 0, 64, 15,220, 34, 2,241, + 225,209,193, 6, 0,195,126, 10,205,107, 10,195,230, 5,230, 7, + 71, 58, 0, 64, 15,220, 34, 2,213,197,120, 22, 19,198, 72, 95, + 58, 0, 64, 15,220, 34, 2,205,129, 1, 58, 0, 64, 15,220, 34, + 2,235,112,235, 89,193, 75,209, 58, 0, 64, 15,220, 34, 2,229, + 120, 33,136, 19,133,111,126,225,183,194,195, 3, 58, 0, 64, 15, + 220, 34, 2,120,229, 33, 72, 19,133,111, 70,225,245, 58, 0, 64, + 15,220, 34, 2,241,205,126, 10,195,195, 3,245, 58, 0, 64, 15, + 220, 34, 2,205,129, 1, 58, 0, 64, 15,220, 34, 2,241,197,213, + 229,230, 7,245, 38, 19,198, 88,111,112,241,245, 38, 19,198, 96, + 111, 8, 58, 0, 64, 15,220, 34, 2, 8,230, 7,246,224, 22, 31, + 95, 8, 26, 87, 58, 0, 64, 15,220, 34, 2, 8,230, 4, 15,253, + 111, 58, 0, 64, 15,220, 34, 2,241,230, 3,198, 64, 79,126,230, + 7, 95, 58, 0, 64, 15,220, 34, 2,125,198, 8,111,123,254, 7, + 56, 17,253,113, 0,126,130,250,222, 10,128,242,224, 10, 62,127, + 253,119, 1,121,198, 4, 79, 58, 0, 64, 15,220, 34, 2,125,198, + 8,111,123,254, 5, 56, 17,253,113, 0,126,130,250, 3, 11,128, + 242, 5, 11, 62,127,253,119, 1,121,198, 4, 79, 58, 0, 64, 15, + 220, 34, 2,125,198, 8,111,123,254, 4, 56, 17,253,113, 0,126, + 130,250, 40, 11,128,242, 42, 11, 62,127,253,119, 1,121,198, 4, + 79, 58, 0, 64, 15,220, 34, 2,125,198, 8,111,253,113, 0,126, + 130,250, 72, 11,128,242, 74, 11, 62,127,253,119, 1, 58, 0, 64, + 15,220, 34, 2,225,209,193,201, 71, 58, 0, 64, 15,220, 34, 2, + 120,230, 4, 15,253,111,120, 8, 58, 0, 64, 15,220, 34, 2,205, + 129, 1, 58, 0, 64, 15,220, 34, 2, 8,230, 3,198,180,253,119, + 0,253,112, 1,195,230, 5, 71, 58, 0, 64, 15,220, 34, 2,120, + 230, 4, 15,253,111,120, 8, 58, 0, 64, 15,220, 34, 2,205,129, + 1, 58, 0, 64, 15,220, 34, 2, 8,229,230, 7, 38, 19,198, 80, + 111,112, 8, 58, 0, 64, 15,220, 34, 2, 8,230, 7,198,136,111, + 8,126,183,225,194,195, 3, 58, 0, 64, 15,220, 34, 2, 8,230, + 3,198,180,253,119, 0,253,112, 1,195,195, 3,205,232, 11,195, + 230, 5,205,232, 11,195,195, 3,230, 1,135,253,111, 58, 0, 64, + 15,220, 34, 2,205,129, 1,197, 58, 0, 64, 15,220, 34, 2,205, + 129, 1, 58, 0, 64, 15,220, 34, 2,120,193,253,112, 0,253,119, + 1,201,230, 7, 71, 58, 0, 64, 15,220, 34, 2,229, 38, 19,120, + 198,136,111, 54, 1,225, 58, 0, 64, 15,220, 34, 2,120,230, 4, + 15,253,111,120,230, 3,135,135,198,180,253,119, 0,253, 54, 1, + 192,195,230, 5,230, 7,245,213,229, 79,230, 4, 15,253,111,121, + 230, 3,198, 64, 14, 6, 33,181, 18, 8, 58, 0, 64, 15,220, 34, + 2, 8, 94,253,119, 0,253,115, 1,198, 4, 8, 58, 0, 64, 15, + 220, 34, 2, 8,253,119, 0,253,115, 1,198, 4, 8, 58, 0, 64, + 15,220, 34, 2, 8,253,119, 0,253,115, 1,198, 4, 8, 58, 0, + 64, 15,220, 34, 2, 8,253,119, 0,253,115, 1,198, 4, 44, 13, + 194, 89, 12,225,209, 58, 0, 64, 15,220, 34, 2,241, 79,246,240, + 221, 54, 0, 40,221,113, 1,221, 54, 0, 40,221,119, 1,221, 54, + 0, 40,221,113, 1, 58, 0, 64, 15,220, 34, 2,201,120, 38, 19, + 198, 64,111,197,120, 70,205, 71, 9,193, 58, 0, 64, 15,220, 34, + 2,197,125,198, 8,111,120, 70,205,126, 10,193,125,198, 8,111, + 120,230, 3,198,180,253,119, 0,126,253,119, 1, 58, 0, 64, 15, + 220, 34, 2,201, 33, 48, 19, 6, 3,197,126,203,127, 32, 6, 6, + 15, 44,195,107, 13,230,127, 71, 44,126,128, 71, 58, 0, 64, 15, + 220, 34, 2,197, 44, 78, 44, 94, 44, 86,235, 58, 0, 64, 15,220, + 34, 2,205,129, 1, 58, 0, 64, 15,220, 34, 2,120,254,254,202, + 146, 13,254,255,202,167, 13,253,104, 58, 0, 64, 15,220, 34, 2, + 235,114, 45,115, 45,113, 45,193, 58, 0, 64, 15,220, 34, 2,253, + 125,230, 15,128, 71,254, 16, 56, 2, 6, 15, 58, 0, 64, 15,220, + 34, 2,120, 7, 7, 7,193,176, 15, 15, 15,246,144, 50, 17,127, + 125,214, 17,111, 58, 0, 64, 15,220, 34, 2, 5,242, 9, 13,195, + 73, 1, 58, 0, 64, 15,220, 34, 2, 28,235,113, 44,115, 44,114, + 235, 29, 29, 29,195, 43, 13, 58, 0, 64, 15,220, 34, 2, 28,235, + 78, 44, 94, 44, 86,235, 29, 29, 29,195, 43, 13,205,224, 13,195, + 230, 5, 71, 58, 0, 64, 15,220, 34, 2,120,229,230, 3, 33,144, + 19,133,111,126,225,183,194,132, 4,120,205,224, 13,195,195, 3, + 230, 3, 71, 8, 58, 0, 64, 15,220, 34, 2,229, 38, 19,120, 15, + 15, 15, 15,111,126,246,128,119, 58, 0, 64, 15,220, 34, 2,213, + 44, 44, 84,125,198, 6, 95, 58, 0, 64, 15,220, 34, 2, 26,119, + 44, 28, 26,119, 44, 28, 26,119,209,225, 58, 0, 64, 15,220, 34, + 2,205,129, 1, 58, 0, 64, 15,220, 34, 2, 8,229,213, 38, 18, + 104, 17, 17,127, 15, 15, 15, 70,176, 18, 44,126, 18,209,225,201, + 205, 83, 14,195,230, 5, 58,147, 19,183,194,132, 4,205, 83, 14, + 195,195, 3, 58, 0, 64, 15,220, 34, 2,229, 33, 48, 19,126,246, + 128,119, 58, 0, 64, 15,220, 34, 2,213, 44, 44, 84,125,198, 6, + 95, 58, 0, 64, 15,220, 34, 2, 26,119, 44, 28, 26,119, 44, 28, + 26,119,209,225, 58, 0, 64, 15,220, 34, 2,205,129, 1, 58, 0, + 64, 15,220, 34, 2, 62,224,176, 50, 17,127,201,205,192, 14,195, + 230, 5, 71, 58, 0, 64, 15,220, 34, 2,120,229,230, 3, 33,144, + 19,133,111,126,225,183,194,195, 3,120,205,192, 14,195,195, 3, + 230, 3, 71, 58, 0, 64, 15,220, 34, 2,229, 38, 19,120, 15, 15, + 15, 15,111,126,230,127,119,225,201,230, 3, 8, 58, 0, 64, 15, + 220, 34, 2,205,129, 1, 58, 0, 64, 15,220, 34, 2, 8,229, 38, + 19, 15, 15, 15, 15,111,126,230,128,176,119,225,195,230, 5,230, + 3, 8, 58, 0, 64, 15,220, 34, 2,205,129, 1, 58, 0, 64, 15, + 220, 34, 2, 8,213,229,245, 17,144, 19,131, 95, 26, 95, 58, 0, + 64, 15,220, 34, 2,241, 38, 19, 15, 15, 15, 15,198, 15,111,112, + 58, 0, 64, 15,220, 34, 2,123,183, 32, 16,125,214, 15,111,126, + 230,128,176,119, 58, 0, 64, 15,220, 34, 2,225,209,195,195, 3, + 230, 3, 8, 58, 0, 64, 15,220, 34, 2,205,129, 1, 58, 0, 64, + 15,220, 34, 2, 8,213,229, 22, 28, 88, 38, 19, 15, 15, 15, 15, + 198, 10,111, 58, 0, 64, 15,220, 34, 2, 26,119, 20, 45, 26,119, + 20, 45, 26,119, 58, 0, 64, 15,220, 34, 2,125,214, 8,111, 54, + 0,225,209,195,230, 5,230, 3, 8, 58, 0, 64, 15,220, 34, 2, + 205,129, 1, 58, 0, 64, 15,220, 34, 2, 8,213,229, 22, 28, 88, + 33,144, 19,245,133,111,241, 70, 38, 19, 15, 15, 15, 15,198, 15, + 111, 58, 0, 64, 15,220, 34, 2,119, 45, 26,119, 20, 45, 26,119, + 20, 45, 26,119, 58, 0, 64, 15,220, 34, 2,120,183,202,229, 15, + 225,209,195,195, 3, 58, 0, 64, 15,220, 34, 2, 84,125,214, 4, + 95,126, 18, 44, 28,126, 18, 44, 28,126, 18, 58, 0, 64, 15,220, + 34, 2,125,214, 8,111, 54, 0,225,209,195,195, 3,205, 49, 16, + 195,230, 5, 71, 58, 0, 64, 15,220, 34, 2,120,229,230, 15, 38, + 19,198,136,111,126,225,183,194,114, 4,120,205, 49, 16,195,195, + 3,230, 3, 8, 58, 0, 64, 15,220, 34, 2,205,129, 1, 58, 0, + 64, 15,220, 34, 2, 8,213, 17, 17,127, 15, 15, 15,176,246,128, + 18, 58, 0, 64, 15,220, 34, 2,205,129, 1, 58, 0, 64, 15,220, + 34, 2,235,112,235,209,201,205,132, 14,195,230, 5, 58,147, 19, + 183,194,132, 4,205,132, 14,195,195, 3,230, 3, 71, 58, 0, 64, + 15,220, 34, 2,229, 38, 19,120,198,144,111, 54, 1, 58, 0, 64, + 15,220, 34, 2,120, 15, 15, 15, 15,111, 38, 19, 54, 0,225,195, + 230, 5,205,194, 16,195, 43, 1,205,194, 16,195, 63, 1,230, 15, + 60, 71,205,211, 16,195, 43, 1,230, 15, 60, 71,205,211, 16,195, + 63, 1, 58, 0, 64, 15,220, 34, 2,205,129, 1, 58, 0, 64, 15, + 220, 34, 2,235,114, 45,115, 45,113, 58, 0, 64, 15,220, 34, 2, + 45,112,201, 33,240, 31, 17, 88, 19, 14, 8, 26, 70,128,242,243, + 16, 62,127, 71,125,205,126, 10, 44, 28, 13, 32,238, 33,232, 31, + 17, 1, 19, 1, 16, 4,126, 18, 44,123,129, 95, 58, 0, 64, 15, + 220, 34, 2, 16,241,175, 50,241, 31,201,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, @@ -281,8 +297,8 @@ static uint8_t echo_blob[] = { 129, 2,143, 1,141, 1,140, 1,138, 1,137, 1,135, 1,134, 1, 133, 1,131, 1,130, 1,129, 1,128, 1,143, 0,142, 0,142, 0, 132, 2,169, 2,210, 2,253, 2, 42, 3, 90, 3,142, 3,196, 3, - 253, 3, 57, 4,122, 4,190, 4,127, 0, 31, 31,255, 0,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 253, 3, 57, 4,122, 4,190, 4, 0, 2, 4, 6, 8, 10, 12,254, + 252,250,248,246,244,127, 0, 31, 31,255, 0,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, @@ -298,8 +314,8 @@ static uint8_t echo_blob[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -- cgit v1.2.3