From 68b8b7a70d9104888997174506fbbaa0abb12a4c Mon Sep 17 00:00:00 2001 From: Sylvain Miermont Date: Tue, 3 Sep 2013 14:38:31 +0200 Subject: Beta 5 - updated firmwares and registers to new IP revision (VERSION = 103, bistream r986) - recalibrated RSSI - updated registers configuration - updated size for firmware code memory - changed TX status code symbols --- loragw_hal/src/agc_fw.var | 422 ++++++++++++++++++------------------ loragw_hal/src/arb_fw.var | 518 ++++++++++++++++++++++++++++++++++++++------ loragw_hal/src/loragw_hal.c | 90 ++++---- loragw_hal/src/loragw_reg.c | 61 ++++-- 4 files changed, 756 insertions(+), 335 deletions(-) (limited to 'loragw_hal/src') diff --git a/loragw_hal/src/agc_fw.var b/loragw_hal/src/agc_fw.var index c913e0c..7d30fb9 100644 --- a/loragw_hal/src/agc_fw.var +++ b/loragw_hal/src/agc_fw.var @@ -12,217 +12,217 @@ Description: static uint8_t agc_firmware[MCU_AGC_FW_BYTE] = { 0x8A, 0x51, 0x11, 0x28, 0xFF, 0xBF, 0xFF, 0xBF, 0x80, 0x40, 0x03, 0x4E, 0x83, 0x52, 0x03, 0x53, -0xA4, 0xC0, 0x04, 0x88, 0xA5, 0x00, 0x0A, 0xC8, 0xA6, 0x00, 0x01, 0x88, 0xA7, 0x40, 0x8A, 0x51, -0x09, 0x6C, 0x8A, 0x51, 0x20, 0x6D, 0x83, 0x96, 0x03, 0x53, 0x2F, 0x88, 0xB5, 0x40, 0x2E, 0x48, -0xB4, 0x00, 0x2D, 0x48, 0xB3, 0x40, 0x2C, 0x08, 0xB2, 0x00, 0x83, 0x52, 0x03, 0x53, 0x19, 0x54, -0x99, 0x50, 0x19, 0x95, 0x99, 0x91, 0x19, 0x52, 0x99, 0x92, 0x18, 0x12, 0x90, 0x30, 0xAB, 0x40, -0x2B, 0x48, 0x8B, 0x00, 0x98, 0x10, 0x18, 0x11, 0x98, 0x51, 0x97, 0x81, 0x9A, 0x41, 0x9B, 0x81, -0x83, 0x96, 0x03, 0x53, 0xD2, 0x41, 0xD2, 0x8A, 0x0F, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, -0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDA, 0x40, 0xCA, 0x41, 0xD3, 0x81, 0xD3, 0xCA, 0x0C, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDB, 0x80, 0x06, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xCB, 0x40, 0x02, 0xF0, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD4, 0x00, 0x0C, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDC, 0x40, 0x0C, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xCC, 0x00, 0x03, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD5, 0x40, 0x0C, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDD, 0x80, 0x12, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xCD, 0x40, 0x04, 0xF0, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD6, 0x40, 0x0F, 0xB0, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDE, 0x80, 0x18, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xCE, 0x40, 0x04, 0xF0, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD7, 0x80, 0x0C, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDF, 0xC0, 0x1E, 0xB0, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xCF, 0x80, 0x05, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD8, 0x00, 0x0C, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE0, 0xC0, 0x24, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD0, 0xC0, 0x05, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD9, 0x40, 0x0C, 0x30, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE1, 0x00, 0x2A, 0x70, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD1, 0x00, 0xBA, 0x81, -0xBB, 0xC1, 0xBC, 0x81, 0xBD, 0xC1, 0xBE, 0xC1, 0xBF, 0x01, 0xC0, 0xC1, 0xC1, 0x01, 0xC2, 0x01, -0x06, 0x30, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC3, 0x00, -0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC4, 0xC0, -0x12, 0x30, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC5, 0x00, -0x18, 0x30, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC6, 0x00, -0x1E, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC7, 0x40, -0x24, 0x30, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC8, 0xC0, -0x2A, 0x70, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC9, 0x00, -0xEF, 0x01, 0x02, 0xF0, 0x6F, 0xC2, 0x03, 0x5C, 0x26, 0xA9, 0x27, 0xE9, 0x29, 0xA9, 0x9F, 0x69, -0x9F, 0x69, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x83, 0x93, 0x80, 0x81, 0x08, 0xF0, 0x83, 0x52, -0x03, 0x53, 0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x83, 0x52, -0x03, 0x53, 0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, -0x00, 0x48, 0xD2, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x05, 0x30, -0x03, 0xD0, 0xAB, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x48, 0x69, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, -0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xDA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, -0xAC, 0x00, 0x2C, 0x87, 0x2B, 0x44, 0xAD, 0x40, 0x2D, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB0, 0xC0, -0x6F, 0xC8, 0x83, 0x52, 0x03, 0x53, 0xAE, 0x40, 0x2E, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB1, 0x00, -0x0C, 0x30, 0x8A, 0x51, 0xE0, 0x64, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x98, 0x95, 0x98, 0x51, -0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0x83, 0x52, -0x03, 0x53, 0xAB, 0x40, 0x03, 0x30, 0x03, 0xD0, 0xAB, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x7B, 0x69, -0x03, 0xD0, 0x2B, 0xCD, 0xAC, 0x00, 0x2C, 0x08, 0x96, 0x00, 0x83, 0x96, 0x03, 0x53, 0x6F, 0x18, -0x8A, 0xA9, 0x8E, 0xE9, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, 0x91, 0xA9, 0x83, 0x52, 0x03, 0x53, -0x18, 0xD0, 0x18, 0x55, 0x18, 0x11, 0x01, 0xF0, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, -0xEF, 0x87, 0x02, 0xF0, 0x6F, 0xC2, 0x03, 0x5C, 0x9E, 0x29, 0x9F, 0x69, 0x29, 0xA9, 0xEE, 0xC1, -0x04, 0xF0, 0x6E, 0x82, 0x03, 0x5C, 0xA5, 0xE9, 0xA6, 0xE9, 0xA8, 0xA9, 0xDC, 0x29, 0xDC, 0x29, -0x07, 0x70, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xE6, 0xBE, -0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x2B, 0x48, 0x83, 0x93, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, -0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, -0x96, 0x00, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xB2, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, -0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x95, 0x00, 0x98, 0x54, 0x98, 0x10, 0x01, 0xF0, 0xAB, 0x40, -0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xEE, 0x47, 0x04, 0xF0, 0x6E, 0x82, 0x03, 0x5C, 0xD9, 0x29, -0xDA, 0x29, 0xA8, 0xA9, 0xDC, 0x29, 0xDC, 0x29, 0x83, 0x96, 0x03, 0x53, 0x6C, 0x48, 0xCA, 0x7E, -0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, -0x03, 0x53, 0xE4, 0x00, 0x6A, 0x48, 0xBA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, -0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE5, 0x40, 0x65, 0x48, 0x64, 0x87, 0x83, 0x52, -0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x97, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6D, 0x88, 0xCA, 0x7E, -0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, -0xE4, 0x00, 0x6B, 0x88, 0xBA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, -0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE5, 0x40, 0x65, 0x48, 0x64, 0x87, 0x83, 0x52, 0x03, 0x53, -0xAB, 0x40, 0x2B, 0x48, 0x9C, 0x00, 0x83, 0x96, 0x03, 0x53, 0xEE, 0xC1, 0x04, 0xF0, 0x6E, 0x82, -0x03, 0x5C, 0x23, 0xAA, 0x24, 0x6A, 0x26, 0xAA, 0xAE, 0x2A, 0xAE, 0x2A, 0x6E, 0x88, 0xB2, 0x7E, -0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x95, 0x00, 0x0D, 0x08, -0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xB6, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, -0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xB6, 0xBE, 0x84, 0x80, 0x88, 0x30, -0x00, 0x42, 0x03, 0x5C, 0x44, 0x6A, 0x45, 0xAA, 0x6D, 0x2A, 0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, -0x0F, 0xB0, 0x00, 0x42, 0x03, 0x18, 0x4D, 0xEA, 0x4E, 0xEA, 0x6D, 0x2A, 0x6E, 0x88, 0xE6, 0xBE, -0x84, 0x80, 0x00, 0x48, 0x01, 0xBE, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, -0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, -0x03, 0x53, 0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, -0x2B, 0x48, 0x96, 0x00, 0x98, 0x54, 0x98, 0x10, 0xA1, 0xAA, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, -0xB6, 0xBE, 0x84, 0x80, 0x2D, 0xB0, 0x00, 0x42, 0x03, 0x18, 0x77, 0x6A, 0x78, 0xEA, 0xA1, 0xAA, -0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x08, 0xF0, 0x00, 0x42, 0x03, 0x5C, 0x80, 0x2A, 0x81, 0x6A, -0xA1, 0xAA, 0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0x83, 0x52, 0x03, 0x53, -0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, -0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x00, 0x48, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x96, 0x00, 0x98, 0x54, 0x98, 0x10, 0xA1, 0xAA, -0xA1, 0xAA, 0x01, 0xF0, 0x83, 0x52, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xEE, 0x47, -0x04, 0xF0, 0x6E, 0x82, 0x03, 0x5C, 0xAD, 0x2A, 0xAE, 0x2A, 0x26, 0xAA, 0xEF, 0x01, 0x02, 0xF0, -0x6F, 0xC2, 0x03, 0x5C, 0xB4, 0xEA, 0xB5, 0x2A, 0xB7, 0x6A, 0xFF, 0x2B, 0xFF, 0x2B, 0x6F, 0x18, -0xBA, 0x2A, 0xBE, 0x6A, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, 0xC1, 0xAA, 0x83, 0x52, 0x03, 0x53, -0x18, 0xD0, 0x0E, 0x08, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE3, 0x40, 0x88, 0x30, -0x63, 0x42, 0x03, 0x5C, 0xCC, 0xEA, 0xCD, 0x2A, 0xFF, 0xEA, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, -0x0B, 0x70, 0x83, 0x93, 0x00, 0x42, 0x03, 0x18, 0xD6, 0x2A, 0xD7, 0x6A, 0xFF, 0xEA, 0x6F, 0xC8, -0xEA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x01, 0xBE, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x83, 0x96, -0x03, 0x53, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x2B, 0x48, 0x80, 0x40, -0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, -0xAB, 0x40, 0x03, 0x30, 0x03, 0xD0, 0xAB, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0xF2, 0x2A, 0x03, 0xD0, -0x2B, 0xCD, 0xAC, 0x00, 0x2C, 0x08, 0x96, 0x00, 0x18, 0x55, 0x18, 0x11, 0x3A, 0x2B, 0x2D, 0xB0, -0x83, 0x96, 0x03, 0x53, 0x63, 0x42, 0x03, 0x18, 0x06, 0xAB, 0x07, 0xEB, 0x3A, 0x2B, 0x6F, 0xC8, -0xEA, 0xBE, 0x84, 0x80, 0x09, 0x30, 0x83, 0x93, 0x00, 0x42, 0x03, 0x5C, 0x10, 0x6B, 0x11, 0xAB, -0x3A, 0x2B, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0x83, 0x52, 0x03, 0x53, -0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, -0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x00, 0x48, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x03, 0x30, 0x03, 0xD0, 0xAB, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, -0x2C, 0xEB, 0x03, 0xD0, 0x2B, 0xCD, 0xAC, 0x00, 0x2C, 0x08, 0x96, 0x00, 0x18, 0x55, 0x18, 0x11, -0x3A, 0x2B, 0x3A, 0x2B, 0x83, 0x52, 0x0F, 0x48, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, -0xE2, 0x00, 0x29, 0x70, 0x62, 0x02, 0x03, 0x5C, 0x46, 0xEB, 0x47, 0x2B, 0x98, 0xEB, 0x6F, 0xC8, -0xEC, 0xBE, 0x84, 0x80, 0x07, 0x70, 0x83, 0x93, 0x00, 0x42, 0x03, 0x18, 0x50, 0xAB, 0x51, 0xEB, -0x98, 0xEB, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x01, 0xBE, 0x83, 0x52, 0x03, 0x53, -0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, -0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, -0xD2, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x05, 0x30, 0x03, 0xD0, -0xAB, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x6F, 0xAB, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, -0x84, 0x80, 0x00, 0x48, 0xDA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAC, 0x00, -0x2C, 0x87, 0x2B, 0x44, 0xAD, 0x40, 0x2D, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB0, 0xC0, 0x6F, 0xC8, -0x83, 0x52, 0x03, 0x53, 0xAE, 0x40, 0x2E, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB1, 0x00, 0x0C, 0x30, -0x8A, 0x51, 0xE0, 0x64, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x98, 0x95, 0x98, 0x51, 0xF1, 0x6B, -0x0F, 0xB0, 0x83, 0x96, 0x03, 0x53, 0x62, 0x02, 0x03, 0x18, 0x9F, 0xAB, 0xA0, 0xAB, 0xF1, 0x6B, -0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x83, 0x93, 0x80, 0x88, 0x03, 0x59, 0xA8, 0xEB, 0xA9, 0x2B, -0xF1, 0x6B, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0x83, 0x52, 0x03, 0x53, -0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, -0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, -0xD2, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x05, 0x30, 0x03, 0xD0, -0xAB, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0xC7, 0x6B, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, -0x84, 0x80, 0x00, 0x48, 0xDA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAC, 0x00, -0x2C, 0x87, 0x2B, 0x44, 0xAD, 0x40, 0x2D, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB0, 0xC0, 0x6F, 0xC8, -0x83, 0x52, 0x03, 0x53, 0xAE, 0x40, 0x2E, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB1, 0x00, 0x0C, 0x30, -0x8A, 0x51, 0xE0, 0x64, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x98, 0x95, 0x98, 0x51, 0xF1, 0x6B, -0xF1, 0x6B, 0x01, 0xF0, 0x83, 0x52, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xEF, 0x87, -0x02, 0xF0, 0x6F, 0xC2, 0x03, 0x5C, 0xFD, 0xEB, 0xFE, 0xEB, 0xB7, 0x6A, 0xFF, 0x2B, 0x6C, 0x48, -0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x9A, 0x00, 0xDC, 0x29, 0xDC, 0x29, 0x8A, 0x51, -0x11, 0x28, 0x8B, 0xDC, 0x0C, 0x6C, 0x0D, 0xAC, 0xD1, 0xEC, 0x18, 0x12, 0x00, 0xB0, 0x13, 0xDB, -0x01, 0xF0, 0xA2, 0xC0, 0x22, 0xC8, 0xA8, 0xC0, 0x28, 0x18, 0x17, 0xEC, 0x1B, 0xEC, 0x83, 0x52, -0x03, 0x53, 0x18, 0x14, 0x1E, 0xEC, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x12, 0xC8, 0xA2, 0xC0, -0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, 0xA3, 0x00, 0x23, 0x08, 0xB0, 0xC0, 0x04, 0xF0, 0x8A, 0x51, -0x04, 0x25, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x11, 0xC8, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80, -0x28, 0xC8, 0xA3, 0x00, 0x23, 0x08, 0xB0, 0xC0, 0x05, 0x30, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51, -0x83, 0x52, 0x03, 0x53, 0x10, 0x88, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, 0xA3, 0x00, -0x23, 0x08, 0xB0, 0xC0, 0x06, 0x30, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51, 0x03, 0x30, 0x83, 0x52, -0x03, 0x53, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, 0xA3, 0x00, 0x23, 0x08, 0xB0, 0xC0, -0x00, 0xB0, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51, 0x07, 0x70, 0x83, 0x52, 0x03, 0x53, 0xA2, 0xC0, -0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, 0xA3, 0x00, 0x23, 0x08, 0xB0, 0xC0, 0x00, 0xB0, 0x8A, 0x51, -0x04, 0x25, 0x8A, 0x51, 0x0F, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80, -0x28, 0xC8, 0xA3, 0x00, 0x23, 0x08, 0xB0, 0xC0, 0x00, 0xB0, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51, -0x83, 0x52, 0x03, 0x53, 0x93, 0x1D, 0x75, 0x2C, 0x79, 0x2C, 0x83, 0x52, 0x03, 0x53, 0x19, 0x96, -0x7C, 0x2C, 0x83, 0x52, 0x03, 0x53, 0x19, 0x52, 0x93, 0xD9, 0x7F, 0xAC, 0x83, 0xAC, 0x83, 0x52, -0x03, 0x53, 0x99, 0xD6, 0x86, 0xAC, 0x83, 0x52, 0x03, 0x53, 0x99, 0x92, 0x28, 0xC8, 0x03, 0x9D, -0x8A, 0xAC, 0x8D, 0xEC, 0x19, 0x51, 0x99, 0xD5, 0x8F, 0x2C, 0x19, 0x10, 0x99, 0x94, 0x93, 0x1D, -0x92, 0xAC, 0x93, 0xEC, 0xA0, 0x6C, 0x1D, 0xB0, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, -0xA3, 0x00, 0x23, 0x08, 0xB0, 0xC0, 0x08, 0xF0, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51, 0xB0, 0xAC, -0x3B, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, 0xA3, 0x00, -0x23, 0x08, 0xB0, 0xC0, 0x08, 0xF0, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51, 0xB0, 0xAC, 0xB0, 0xAC, -0x83, 0x52, 0x03, 0x53, 0x93, 0x1B, 0xB5, 0x2C, 0xB6, 0x2C, 0xB0, 0xAC, 0xB7, 0x6C, 0x28, 0xC8, -0x03, 0x9D, 0xBB, 0x6C, 0xBE, 0x6C, 0x99, 0x91, 0x19, 0x95, 0xC1, 0xAC, 0x99, 0x50, 0x19, 0x54, -0xC1, 0xAC, 0x03, 0x30, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, 0xA3, 0x00, 0x23, 0x08, -0xB0, 0xC0, 0x00, 0xB0, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x18, 0x56, -0xD1, 0xEC, 0x90, 0x30, 0xA2, 0xC0, 0x22, 0xC8, 0x8B, 0x00, 0x27, 0x48, 0x81, 0x80, 0x26, 0x08, -0x8A, 0xC0, 0x25, 0x08, 0x84, 0x80, 0x24, 0x4E, 0x83, 0xC0, 0x80, 0x0E, 0x00, 0xCE, 0x09, 0x80, -0x83, 0x52, 0x03, 0x53, 0xAA, 0x00, 0x83, 0x96, 0x03, 0x53, 0x31, 0x08, 0x03, 0x9D, 0xE9, 0x2C, -0xF5, 0x6C, 0x30, 0xC8, 0x83, 0x52, 0x03, 0x53, 0xA9, 0x00, 0x29, 0x08, 0x88, 0x80, 0x2A, 0x08, -0x80, 0x38, 0xA9, 0x00, 0x29, 0x08, 0x86, 0xC0, 0x03, 0xAD, 0x83, 0x96, 0x03, 0x53, 0x30, 0xC8, -0x83, 0x52, 0x03, 0x53, 0xA9, 0x00, 0x29, 0x08, 0x88, 0x80, 0x2A, 0x08, 0x80, 0x38, 0xA9, 0x00, -0x29, 0x08, 0x85, 0xC0, 0x03, 0xAD, 0x08, 0x40, 0x83, 0x52, 0x03, 0x53, 0xA1, 0xC0, 0x30, 0xC8, -0x03, 0x9D, 0x0B, 0xED, 0x15, 0xED, 0x2F, 0x88, 0xA0, 0x80, 0x20, 0x88, 0x88, 0x80, 0x21, 0xC8, -0x80, 0x38, 0xA0, 0x80, 0x20, 0x88, 0x86, 0xC0, 0x1F, 0x6D, 0x2F, 0x88, 0xA0, 0x80, 0x20, 0x88, -0x88, 0x80, 0x21, 0xC8, 0x80, 0x38, 0xA0, 0x80, 0x20, 0x88, 0x85, 0xC0, 0x1F, 0x6D, 0x08, 0x40, -0x83, 0x96, 0x03, 0x53, 0x8A, 0x51, 0x35, 0xE5, 0x8A, 0x51, 0xAC, 0x00, 0x8A, 0x51, 0x36, 0xE5, -0x8A, 0x51, 0xAD, 0x40, 0x8A, 0x51, 0x37, 0x25, 0x8A, 0x51, 0xAE, 0x40, 0x8A, 0x51, 0x38, 0xA5, -0x8A, 0x51, 0xAF, 0x80, 0x83, 0x01, 0x8A, 0x51, 0x13, 0x68, 0x00, 0xF4, 0x01, 0x34, 0x02, 0x34, -0x03, 0x74, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xA8, 0xC0, 0x04, 0x88, 0xA9, 0x00, 0x0A, 0xC8, 0xAA, 0x00, 0x01, 0x88, 0xAB, 0x40, 0x8A, 0x51, +0x79, 0x6E, 0x8A, 0x51, 0x3A, 0x2E, 0xA2, 0x70, 0x84, 0x80, 0x37, 0xF0, 0x83, 0x52, 0x03, 0x53, +0xB3, 0x40, 0x04, 0x88, 0xB4, 0x00, 0x08, 0xF0, 0xB5, 0x40, 0x33, 0x48, 0x84, 0x80, 0x83, 0x93, +0x00, 0x48, 0xB6, 0x40, 0xB3, 0xCA, 0x34, 0x08, 0x84, 0x80, 0x36, 0x48, 0x80, 0x40, 0xB4, 0x8A, +0xB5, 0x0B, 0x1D, 0xA8, 0x2B, 0xA8, 0x19, 0x54, 0x99, 0x50, 0x19, 0x95, 0x99, 0x91, 0x19, 0x52, +0x99, 0x92, 0x18, 0x56, 0x38, 0x68, 0x90, 0x30, 0xB3, 0x40, 0x33, 0x48, 0x8B, 0x00, 0x39, 0xA8, +0x8B, 0x41, 0x98, 0x10, 0x18, 0x11, 0x98, 0x51, 0x97, 0x81, 0x9C, 0x41, 0x9A, 0x41, 0x9B, 0x81, +0x9E, 0x81, 0x83, 0x96, 0x03, 0x53, 0xE4, 0x41, 0xE5, 0x81, 0xD2, 0x41, 0xD2, 0x8A, 0x0F, 0xB0, +0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDA, 0x40, 0xCA, 0x41, +0xD3, 0x81, 0xD3, 0xCA, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xDB, 0x80, 0x06, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xCB, 0x40, 0x02, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xD4, 0x00, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xDC, 0x40, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xCC, 0x00, 0x03, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xD5, 0x40, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xDD, 0x80, 0x12, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xCD, 0x40, 0x04, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xD6, 0x40, 0x0F, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xDE, 0x80, 0x18, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xCE, 0x40, 0x04, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xD7, 0x80, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xDF, 0xC0, 0x1E, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xCF, 0x80, 0x05, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xD8, 0x00, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xE0, 0xC0, 0x24, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xD0, 0xC0, 0x05, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xD9, 0x40, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xE1, 0x00, 0x2A, 0x70, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xD1, 0x00, 0xB2, 0x41, 0xB3, 0x81, 0xB4, 0x41, 0xB5, 0x81, 0xB6, 0x81, 0xB7, 0xC1, +0xB8, 0x41, 0xB9, 0x81, 0xBA, 0x81, 0x06, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, +0x83, 0x96, 0x03, 0x53, 0xBB, 0x80, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, +0x83, 0x96, 0x03, 0x53, 0xBC, 0x40, 0x12, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, +0x83, 0x96, 0x03, 0x53, 0xBD, 0x80, 0x18, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, +0x83, 0x96, 0x03, 0x53, 0xBE, 0x80, 0x1E, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, +0x83, 0x96, 0x03, 0x53, 0xBF, 0xC0, 0x24, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, +0x83, 0x96, 0x03, 0x53, 0xC0, 0x80, 0x2A, 0x70, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, +0x83, 0x96, 0x03, 0x53, 0xC1, 0xC0, 0xEB, 0xC1, 0x02, 0xF0, 0x6B, 0x82, 0x03, 0x5C, 0x39, 0xE9, +0x3A, 0xE9, 0x3C, 0xE9, 0xB2, 0xE9, 0xB2, 0xE9, 0x6B, 0x88, 0xE8, 0x7E, 0x84, 0x80, 0x83, 0x93, +0x80, 0x81, 0x08, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6B, 0x88, +0xE6, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x33, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, +0x6B, 0x88, 0xE8, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xD2, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, +0x03, 0x53, 0xB3, 0x40, 0x05, 0x30, 0x03, 0xD0, 0xB3, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x5B, 0x29, +0x83, 0x96, 0x03, 0x53, 0x6B, 0x88, 0xE8, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xDA, 0xBE, 0x84, 0x80, +0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xB4, 0x00, 0x34, 0x87, 0x33, 0x44, 0xB5, 0x40, 0x35, 0x48, +0x83, 0x96, 0x03, 0x53, 0xA0, 0x80, 0x6B, 0x88, 0x83, 0x52, 0x03, 0x53, 0xB6, 0x40, 0x36, 0x48, +0x83, 0x96, 0x03, 0x53, 0xA1, 0xC0, 0x0C, 0x30, 0x8A, 0x51, 0x16, 0xA6, 0x8A, 0x51, 0x83, 0x52, +0x03, 0x53, 0x98, 0x95, 0x98, 0x51, 0x83, 0x96, 0x03, 0x53, 0x6B, 0x88, 0xE6, 0xBE, 0x84, 0x80, +0x83, 0x93, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x03, 0x30, 0x03, 0xD0, 0xB3, 0x0D, +0xFF, 0x7E, 0x03, 0x9D, 0x8E, 0xE9, 0x03, 0xD0, 0x33, 0xCD, 0xB4, 0x00, 0x34, 0x08, 0x96, 0x00, +0x83, 0x96, 0x03, 0x53, 0x6B, 0xD8, 0x9D, 0x29, 0xA1, 0xA9, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, +0xA4, 0xA9, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x18, 0x55, 0x18, 0x11, 0x01, 0xF0, 0xB3, 0x40, +0x33, 0x48, 0x83, 0x96, 0x03, 0x53, 0xEB, 0x47, 0x02, 0xF0, 0x6B, 0x82, 0x03, 0x5C, 0xB1, 0xE9, +0xB2, 0xE9, 0x3C, 0xE9, 0xEA, 0x81, 0x08, 0xF0, 0x6A, 0x42, 0x03, 0x5C, 0xB8, 0xE9, 0xB9, 0x29, +0xBB, 0x69, 0xF9, 0x69, 0xF9, 0x69, 0x07, 0x70, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x83, 0x96, +0x03, 0x53, 0x6A, 0x48, 0xC2, 0x3E, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x33, 0x48, 0x83, 0x93, +0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6A, 0x48, 0xC2, 0x3E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, +0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x96, 0x00, 0x83, 0x96, 0x03, 0x53, 0x6A, 0x48, 0xA2, 0x3E, +0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x95, 0x00, 0x98, 0x54, +0x98, 0x10, 0x01, 0xF0, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, 0x03, 0x53, 0xEA, 0x07, 0x08, 0xF0, +0x6A, 0x42, 0x03, 0x5C, 0xEC, 0x29, 0xED, 0x69, 0xBB, 0x69, 0xF9, 0x69, 0xF9, 0x69, 0xF9, 0x69, +0x83, 0x52, 0x03, 0x53, 0x18, 0x9E, 0xF5, 0x69, 0xF6, 0x69, 0x04, 0x2A, 0x18, 0x12, 0x2B, 0xA8, +0x04, 0x2A, 0x83, 0x52, 0x03, 0x53, 0x93, 0x5F, 0xFE, 0xA9, 0xFF, 0xE9, 0x04, 0x2A, 0x8A, 0x51, +0x38, 0x64, 0x8A, 0x51, 0x04, 0x2A, 0x04, 0x2A, 0x83, 0x96, 0x03, 0x53, 0x68, 0x08, 0xCA, 0x7E, +0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xE4, 0x00, 0x66, 0x48, 0xB2, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, +0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE5, 0x40, 0x83, 0x52, 0x03, 0x53, 0x1E, 0x48, +0x01, 0xBE, 0xB3, 0x40, 0x33, 0x48, 0x9E, 0x40, 0x83, 0x96, 0x03, 0x53, 0x65, 0x48, 0x64, 0x87, +0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x97, 0x40, 0x83, 0x96, 0x03, 0x53, 0x69, 0x48, +0xCA, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, +0x03, 0x53, 0xE4, 0x00, 0x67, 0x88, 0xB2, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, +0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE5, 0x40, 0x65, 0x48, 0x64, 0x87, 0x83, 0x52, +0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x9C, 0x00, 0x17, 0x48, 0xB3, 0x40, 0x33, 0x48, 0x9A, 0x00, +0x83, 0x96, 0x03, 0x53, 0xEA, 0x81, 0x08, 0xF0, 0x6A, 0x42, 0x03, 0x5C, 0x58, 0xAA, 0x59, 0xEA, +0x5B, 0x2A, 0xE3, 0x2A, 0xE3, 0x2A, 0x6A, 0x48, 0xA2, 0x3E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, +0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x95, 0x00, 0x0D, 0x08, 0xB3, 0x40, 0x83, 0x96, 0x03, 0x53, +0x6A, 0x48, 0xAA, 0x7E, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x33, 0x48, 0x80, 0x40, 0x83, 0x96, +0x03, 0x53, 0x6A, 0x48, 0xAA, 0x7E, 0x84, 0x80, 0x88, 0x30, 0x00, 0x42, 0x03, 0x5C, 0x79, 0x2A, +0x7A, 0x2A, 0xA2, 0xAA, 0x6A, 0x48, 0xC2, 0x3E, 0x84, 0x80, 0x0F, 0xB0, 0x00, 0x42, 0x03, 0x18, +0x82, 0x6A, 0x83, 0xAA, 0xA2, 0xAA, 0x6A, 0x48, 0xC2, 0x3E, 0x84, 0x80, 0x00, 0x48, 0x01, 0xBE, +0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6A, 0x48, 0xC2, 0x3E, 0x84, 0x80, +0x83, 0x52, 0x03, 0x53, 0x33, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6A, 0x48, 0xC2, 0x3E, +0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x33, 0x48, 0x96, 0x00, 0x98, 0x54, +0x98, 0x10, 0xD6, 0x2A, 0x83, 0x96, 0x03, 0x53, 0x6A, 0x48, 0xAA, 0x7E, 0x84, 0x80, 0x2D, 0xB0, +0x00, 0x42, 0x03, 0x18, 0xAC, 0xEA, 0xAD, 0x2A, 0xD6, 0x2A, 0x6A, 0x48, 0xC2, 0x3E, 0x84, 0x80, +0x08, 0xF0, 0x00, 0x42, 0x03, 0x5C, 0xB5, 0x2A, 0xB6, 0x2A, 0xD6, 0x2A, 0x6A, 0x48, 0xC2, 0x3E, +0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x83, 0x96, 0x03, 0x53, +0x6A, 0x48, 0xC2, 0x3E, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x33, 0x48, 0x80, 0x40, 0x83, 0x96, +0x03, 0x53, 0x6A, 0x48, 0xC2, 0x3E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, +0x33, 0x48, 0x96, 0x00, 0x98, 0x54, 0x98, 0x10, 0xD6, 0x2A, 0xD6, 0x2A, 0x01, 0xF0, 0x83, 0x52, +0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, 0x03, 0x53, 0xEA, 0x07, 0x08, 0xF0, 0x6A, 0x42, 0x03, 0x5C, +0xE2, 0xEA, 0xE3, 0x2A, 0x5B, 0x2A, 0xEB, 0xC1, 0x02, 0xF0, 0x6B, 0x82, 0x03, 0x5C, 0xE9, 0x2A, +0xEA, 0x2A, 0xEC, 0x2A, 0xF9, 0x69, 0xF9, 0x69, 0x6B, 0xD8, 0xEF, 0xAA, 0xF3, 0x6A, 0x83, 0x52, +0x03, 0x53, 0x18, 0x14, 0xF6, 0x6A, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x0E, 0x08, 0xB3, 0x40, +0x33, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE3, 0x40, 0x88, 0x30, 0x63, 0x42, 0x03, 0x5C, 0x01, 0x6B, +0x02, 0x6B, 0x34, 0xEB, 0x6B, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x0B, 0x70, 0x83, 0x93, 0x00, 0x42, +0x03, 0x18, 0x0B, 0xEB, 0x0C, 0xAB, 0x34, 0xEB, 0x6B, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x00, 0x48, +0x01, 0xBE, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6B, 0x88, 0xE6, 0xBE, +0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x33, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6B, 0x88, +0xE6, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x03, 0x30, 0x03, 0xD0, +0xB3, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x27, 0x2B, 0x03, 0xD0, 0x33, 0xCD, 0xB4, 0x00, 0x34, 0x08, +0x96, 0x00, 0x18, 0x55, 0x18, 0x11, 0x6F, 0xAB, 0x2D, 0xB0, 0x83, 0x96, 0x03, 0x53, 0x63, 0x42, +0x03, 0x18, 0x3B, 0x6B, 0x3C, 0x2B, 0x6F, 0xAB, 0x6B, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x09, 0x30, +0x83, 0x93, 0x00, 0x42, 0x03, 0x5C, 0x45, 0xEB, 0x46, 0xEB, 0x6F, 0xAB, 0x6B, 0x88, 0xE6, 0xBE, +0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x83, 0x96, 0x03, 0x53, +0x6B, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x33, 0x48, 0x80, 0x40, 0x83, 0x96, +0x03, 0x53, 0x6B, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, +0x03, 0x30, 0x03, 0xD0, 0xB3, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x61, 0xEB, 0x03, 0xD0, 0x33, 0xCD, +0xB4, 0x00, 0x34, 0x08, 0x96, 0x00, 0x18, 0x55, 0x18, 0x11, 0x6F, 0xAB, 0x6F, 0xAB, 0x83, 0x52, +0x0F, 0x48, 0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE2, 0x00, 0x29, 0x70, 0x62, 0x02, +0x03, 0x5C, 0x7B, 0xAB, 0x7C, 0x6B, 0xCD, 0x6B, 0x6B, 0x88, 0xE8, 0x7E, 0x84, 0x80, 0x07, 0x70, +0x83, 0x93, 0x00, 0x42, 0x03, 0x18, 0x85, 0xEB, 0x86, 0xEB, 0xCD, 0x6B, 0x6B, 0x88, 0xE8, 0x7E, +0x84, 0x80, 0x00, 0x48, 0x01, 0xBE, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x83, 0x96, 0x03, 0x53, +0x6B, 0x88, 0xE8, 0x7E, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x33, 0x48, 0x80, 0x40, 0x83, 0x96, +0x03, 0x53, 0x6B, 0x88, 0xE8, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xD2, 0x7E, 0x84, 0x80, 0x00, 0x48, +0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x05, 0x30, 0x03, 0xD0, 0xB3, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, +0xA4, 0xEB, 0x83, 0x96, 0x03, 0x53, 0x6B, 0x88, 0xE8, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xDA, 0xBE, +0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xB4, 0x00, 0x34, 0x87, 0x33, 0x44, 0xB5, 0x40, +0x35, 0x48, 0x83, 0x96, 0x03, 0x53, 0xA0, 0x80, 0x6B, 0x88, 0x83, 0x52, 0x03, 0x53, 0xB6, 0x40, +0x36, 0x48, 0x83, 0x96, 0x03, 0x53, 0xA1, 0xC0, 0x0C, 0x30, 0x8A, 0x51, 0x16, 0xA6, 0x8A, 0x51, +0x83, 0x52, 0x03, 0x53, 0x98, 0x95, 0x98, 0x51, 0x26, 0xAC, 0x0F, 0xB0, 0x83, 0x96, 0x03, 0x53, +0x62, 0x02, 0x03, 0x18, 0xD4, 0x2B, 0xD5, 0x6B, 0x26, 0xAC, 0x6B, 0x88, 0xE8, 0x7E, 0x84, 0x80, +0x83, 0x93, 0x80, 0x88, 0x03, 0x59, 0xDD, 0xAB, 0xDE, 0xAB, 0x26, 0xAC, 0x6B, 0x88, 0xE8, 0x7E, +0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x83, 0x96, 0x03, 0x53, +0x6B, 0x88, 0xE8, 0x7E, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x33, 0x48, 0x80, 0x40, 0x83, 0x96, +0x03, 0x53, 0x6B, 0x88, 0xE8, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xD2, 0x7E, 0x84, 0x80, 0x00, 0x48, +0x83, 0x52, 0x03, 0x53, 0xB3, 0x40, 0x05, 0x30, 0x03, 0xD0, 0xB3, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, +0xFC, 0xAB, 0x83, 0x96, 0x03, 0x53, 0x6B, 0x88, 0xE8, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xDA, 0xBE, +0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xB4, 0x00, 0x34, 0x87, 0x33, 0x44, 0xB5, 0x40, +0x35, 0x48, 0x83, 0x96, 0x03, 0x53, 0xA0, 0x80, 0x6B, 0x88, 0x83, 0x52, 0x03, 0x53, 0xB6, 0x40, +0x36, 0x48, 0x83, 0x96, 0x03, 0x53, 0xA1, 0xC0, 0x0C, 0x30, 0x8A, 0x51, 0x16, 0xA6, 0x8A, 0x51, +0x83, 0x52, 0x03, 0x53, 0x98, 0x95, 0x98, 0x51, 0x26, 0xAC, 0x26, 0xAC, 0x01, 0xF0, 0x83, 0x52, +0xB3, 0x40, 0x33, 0x48, 0x83, 0x96, 0x03, 0x53, 0xEB, 0x47, 0x02, 0xF0, 0x6B, 0x82, 0x03, 0x5C, +0x32, 0xAC, 0x33, 0xEC, 0xEC, 0x2A, 0xF9, 0x69, 0xF9, 0x69, 0xF9, 0x69, 0x8A, 0x51, 0x11, 0x28, +0x83, 0x52, 0x03, 0x53, 0x18, 0x12, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xAE, 0x40, 0x2E, 0x48, +0xB2, 0x00, 0x00, 0xB0, 0x18, 0x18, 0x01, 0xF0, 0xAE, 0x40, 0x2E, 0x48, 0xB0, 0xC0, 0x32, 0x58, +0x4A, 0xAC, 0x4E, 0xEC, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, 0x51, 0xAC, 0x83, 0x52, 0x03, 0x53, +0x18, 0xD0, 0x12, 0xC8, 0xAE, 0x40, 0x2E, 0x48, 0x83, 0x96, 0x03, 0x53, 0xA0, 0x80, 0x83, 0x52, +0x03, 0x53, 0x32, 0x08, 0xAF, 0x80, 0x2F, 0x88, 0x83, 0x96, 0x03, 0x53, 0xA1, 0xC0, 0x04, 0xF0, +0x8A, 0x51, 0x16, 0xA6, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x11, 0xC8, 0xAE, 0x40, 0x2E, 0x48, +0x83, 0x96, 0x03, 0x53, 0xA0, 0x80, 0x83, 0x52, 0x03, 0x53, 0x32, 0x08, 0xAF, 0x80, 0x2F, 0x88, +0x83, 0x96, 0x03, 0x53, 0xA1, 0xC0, 0x05, 0x30, 0x8A, 0x51, 0x16, 0xA6, 0x8A, 0x51, 0x83, 0x52, +0x03, 0x53, 0x10, 0x88, 0xAE, 0x40, 0x2E, 0x48, 0x83, 0x96, 0x03, 0x53, 0xA0, 0x80, 0x83, 0x52, +0x03, 0x53, 0x32, 0x08, 0xAF, 0x80, 0x2F, 0x88, 0x83, 0x96, 0x03, 0x53, 0xA1, 0xC0, 0x06, 0x30, +0x8A, 0x51, 0x16, 0xA6, 0x8A, 0x51, 0x07, 0x70, 0x83, 0x52, 0x03, 0x53, 0xAE, 0x40, 0x2E, 0x48, +0x83, 0x96, 0x03, 0x53, 0xA0, 0x80, 0x83, 0x52, 0x03, 0x53, 0x32, 0x08, 0xAF, 0x80, 0x2F, 0x88, +0x83, 0x96, 0x03, 0x53, 0xA1, 0xC0, 0x00, 0xB0, 0x8A, 0x51, 0x16, 0xA6, 0x8A, 0x51, 0x83, 0x52, +0x03, 0x53, 0x93, 0x1D, 0xA4, 0xAC, 0xA5, 0xEC, 0xB8, 0xEC, 0x1D, 0xB0, 0xAE, 0x40, 0x2E, 0x48, +0x83, 0x96, 0x03, 0x53, 0xA0, 0x80, 0x83, 0x52, 0x03, 0x53, 0x32, 0x08, 0xAF, 0x80, 0x2F, 0x88, +0x83, 0x96, 0x03, 0x53, 0xA1, 0xC0, 0x08, 0xF0, 0x8A, 0x51, 0x16, 0xA6, 0x8A, 0x51, 0xCC, 0xEC, +0x3B, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xAE, 0x40, 0x2E, 0x48, 0x83, 0x96, 0x03, 0x53, 0xA0, 0x80, +0x83, 0x52, 0x03, 0x53, 0x32, 0x08, 0xAF, 0x80, 0x2F, 0x88, 0x83, 0x96, 0x03, 0x53, 0xA1, 0xC0, +0x08, 0xF0, 0x8A, 0x51, 0x16, 0xA6, 0x8A, 0x51, 0x0F, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xAE, 0x40, +0x2E, 0x48, 0x83, 0x96, 0x03, 0x53, 0xA0, 0x80, 0x83, 0x52, 0x03, 0x53, 0x32, 0x08, 0xAF, 0x80, +0x2F, 0x88, 0x83, 0x96, 0x03, 0x53, 0xA1, 0xC0, 0x00, 0xB0, 0x8A, 0x51, 0x16, 0xA6, 0x8A, 0x51, +0x83, 0x52, 0x03, 0x53, 0x19, 0x52, 0x99, 0x92, 0x32, 0x08, 0x03, 0x9D, 0xE8, 0xEC, 0xEB, 0x6C, +0x19, 0x51, 0x99, 0xD5, 0xED, 0x6C, 0x19, 0x10, 0x99, 0x94, 0x93, 0x1D, 0xF0, 0xEC, 0xF4, 0x2C, +0x83, 0x52, 0x03, 0x53, 0x19, 0x96, 0xF7, 0xAC, 0x83, 0x52, 0x03, 0x53, 0x19, 0x52, 0x93, 0xD9, +0xFA, 0x6C, 0xFE, 0xAC, 0x83, 0x52, 0x03, 0x53, 0x99, 0xD6, 0x01, 0x6D, 0x83, 0x52, 0x03, 0x53, +0x99, 0x92, 0x02, 0x6D, 0x93, 0x1B, 0x05, 0xAD, 0x06, 0xAD, 0x02, 0x6D, 0x07, 0xED, 0x32, 0x08, +0x03, 0x9D, 0x0B, 0xED, 0x0E, 0xED, 0x99, 0x91, 0x19, 0x95, 0x11, 0xAD, 0x99, 0x50, 0x19, 0x54, +0x11, 0xAD, 0x03, 0x30, 0xAE, 0x40, 0x2E, 0x48, 0x83, 0x96, 0x03, 0x53, 0xA0, 0x80, 0x83, 0x52, +0x03, 0x53, 0x32, 0x08, 0xAF, 0x80, 0x2F, 0x88, 0x83, 0x96, 0x03, 0x53, 0xA1, 0xC0, 0x00, 0xB0, +0x8A, 0x51, 0x16, 0xA6, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0xB1, 0x41, 0x2D, 0x2D, 0x31, 0x08, +0x01, 0xBE, 0xAE, 0x40, 0x2E, 0x48, 0xB1, 0x00, 0x2D, 0x2D, 0x64, 0x70, 0x31, 0x02, 0x03, 0x5C, +0x32, 0xED, 0x33, 0x2D, 0x27, 0x2D, 0x18, 0x56, 0x30, 0x18, 0x37, 0x6D, 0x3B, 0x6D, 0x83, 0x52, +0x03, 0x53, 0x18, 0x14, 0x3E, 0x6D, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x08, 0x40, 0x83, 0x52, +0x03, 0x53, 0x18, 0x12, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xA2, 0xC0, 0x22, 0xC8, 0xA6, 0x00, +0x00, 0xB0, 0x18, 0x18, 0x01, 0xF0, 0xA2, 0xC0, 0x22, 0xC8, 0xA4, 0xC0, 0x26, 0x58, 0x51, 0xED, +0x55, 0x2D, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, 0x58, 0xED, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, +0x12, 0xC8, 0xA2, 0xC0, 0x22, 0xC8, 0xBF, 0xC0, 0x26, 0x08, 0xA3, 0x00, 0x23, 0x08, 0xC0, 0x80, +0x04, 0xF0, 0x8A, 0x51, 0x5D, 0x26, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x11, 0xC8, 0xA2, 0xC0, +0x22, 0xC8, 0xBF, 0xC0, 0x26, 0x08, 0xA3, 0x00, 0x23, 0x08, 0xC0, 0x80, 0x05, 0x30, 0x8A, 0x51, +0x5D, 0x26, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x10, 0x88, 0xA2, 0xC0, 0x22, 0xC8, 0xBF, 0xC0, +0x26, 0x08, 0xA3, 0x00, 0x23, 0x08, 0xC0, 0x80, 0x06, 0x30, 0x8A, 0x51, 0x5D, 0x26, 0x8A, 0x51, +0x07, 0x70, 0x83, 0x52, 0x03, 0x53, 0xA2, 0xC0, 0x22, 0xC8, 0xBF, 0xC0, 0x26, 0x08, 0xA3, 0x00, +0x23, 0x08, 0xC0, 0x80, 0x00, 0xB0, 0x8A, 0x51, 0x5D, 0x26, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, +0x93, 0x1D, 0x93, 0x2D, 0x94, 0xED, 0xA1, 0xED, 0x1D, 0xB0, 0xA2, 0xC0, 0x22, 0xC8, 0xBF, 0xC0, +0x26, 0x08, 0xA3, 0x00, 0x23, 0x08, 0xC0, 0x80, 0x08, 0xF0, 0x8A, 0x51, 0x5D, 0x26, 0x8A, 0x51, +0xAF, 0xAD, 0x3B, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA2, 0xC0, 0x22, 0xC8, 0xBF, 0xC0, 0x26, 0x08, +0xA3, 0x00, 0x23, 0x08, 0xC0, 0x80, 0x08, 0xF0, 0x8A, 0x51, 0x5D, 0x26, 0x8A, 0x51, 0x0F, 0xB0, +0x83, 0x52, 0x03, 0x53, 0xA2, 0xC0, 0x22, 0xC8, 0xBF, 0xC0, 0x26, 0x08, 0xA3, 0x00, 0x23, 0x08, +0xC0, 0x80, 0x00, 0xB0, 0x8A, 0x51, 0x5D, 0x26, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x19, 0x52, +0x99, 0x92, 0x26, 0x08, 0x03, 0x9D, 0xC5, 0x2D, 0xC8, 0xED, 0x19, 0x51, 0x99, 0xD5, 0xCA, 0x2D, +0x19, 0x10, 0x99, 0x94, 0x93, 0x1D, 0xCD, 0x6D, 0xD1, 0x2D, 0x83, 0x52, 0x03, 0x53, 0x19, 0x96, +0xD4, 0x2D, 0x83, 0x52, 0x03, 0x53, 0x19, 0x52, 0x93, 0xD9, 0xD7, 0xAD, 0xDB, 0xAD, 0x83, 0x52, +0x03, 0x53, 0x99, 0xD6, 0xDE, 0xAD, 0x83, 0x52, 0x03, 0x53, 0x99, 0x92, 0xDF, 0xED, 0x93, 0x1B, +0xE2, 0x2D, 0xE3, 0x6D, 0xDF, 0xED, 0xE4, 0x2D, 0x26, 0x08, 0x03, 0x9D, 0xE8, 0x2D, 0xEB, 0xAD, +0x99, 0x91, 0x19, 0x95, 0xEE, 0xAD, 0x99, 0x50, 0x19, 0x54, 0xEE, 0xAD, 0x03, 0x30, 0xA2, 0xC0, +0x22, 0xC8, 0xBF, 0xC0, 0x26, 0x08, 0xA3, 0x00, 0x23, 0x08, 0xC0, 0x80, 0x00, 0xB0, 0x8A, 0x51, +0x5D, 0x26, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0xA5, 0x41, 0x04, 0x6E, 0x25, 0x08, 0x01, 0xBE, +0xA2, 0xC0, 0x22, 0xC8, 0xA5, 0x00, 0x04, 0x6E, 0x64, 0x70, 0x25, 0x02, 0x03, 0x5C, 0x09, 0xAE, +0x0A, 0xAE, 0xFE, 0xED, 0x18, 0x56, 0x24, 0x18, 0x0E, 0xEE, 0x12, 0xAE, 0x83, 0x52, 0x03, 0x53, +0x18, 0x14, 0x15, 0xEE, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x08, 0x40, 0x83, 0x52, 0x03, 0x53, +0xAD, 0x40, 0x83, 0x96, 0x03, 0x53, 0x21, 0xC8, 0x03, 0x9D, 0x1F, 0x6E, 0x2B, 0x2E, 0x20, 0x88, +0x83, 0x52, 0x03, 0x53, 0xAC, 0x00, 0x2C, 0x08, 0x88, 0x80, 0x2D, 0x48, 0x80, 0x38, 0xAC, 0x00, +0x2C, 0x08, 0x86, 0xC0, 0x39, 0x2E, 0x83, 0x96, 0x03, 0x53, 0x20, 0x88, 0x83, 0x52, 0x03, 0x53, +0xAC, 0x00, 0x2C, 0x08, 0x88, 0x80, 0x2D, 0x48, 0x80, 0x38, 0xAC, 0x00, 0x2C, 0x08, 0x85, 0xC0, +0x39, 0x2E, 0x08, 0x40, 0x8A, 0x51, 0x92, 0xA6, 0x8A, 0x51, 0xB7, 0x80, 0x8A, 0x51, 0x93, 0xE6, +0x8A, 0x51, 0xB8, 0x00, 0x8A, 0x51, 0x94, 0xA6, 0x8A, 0x51, 0xB9, 0x40, 0x8A, 0x51, 0x95, 0xE6, +0x8A, 0x51, 0xBA, 0x40, 0x8A, 0x51, 0x96, 0xE6, 0x8A, 0x51, 0xBB, 0x80, 0x8A, 0x51, 0x97, 0x26, +0x8A, 0x51, 0xBC, 0x40, 0x8A, 0x51, 0x98, 0xA6, 0x8A, 0x51, 0xBD, 0x80, 0x8A, 0x51, 0x99, 0xE6, +0x8A, 0x51, 0xBE, 0x80, 0x83, 0x01, 0x8A, 0x51, 0x13, 0x68, 0x83, 0x52, 0x03, 0x53, 0xA1, 0xC0, +0x40, 0x88, 0x03, 0x9D, 0x64, 0xEE, 0x6E, 0x6E, 0x3F, 0xC8, 0xA0, 0x80, 0x20, 0x88, 0x88, 0x80, +0x21, 0xC8, 0x80, 0x38, 0xA0, 0x80, 0x20, 0x88, 0x86, 0xC0, 0x78, 0x2E, 0x3F, 0xC8, 0xA0, 0x80, +0x20, 0x88, 0x88, 0x80, 0x21, 0xC8, 0x80, 0x38, 0xA0, 0x80, 0x20, 0x88, 0x85, 0xC0, 0x78, 0x2E, +0x08, 0x40, 0x8B, 0xDC, 0x7C, 0x6E, 0x7D, 0xAE, 0x81, 0xAE, 0x8A, 0x51, 0x3F, 0x65, 0x8A, 0x51, +0x81, 0xAE, 0x10, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA7, 0x40, 0x27, 0x48, 0x8B, 0x00, 0x2B, 0x48, +0x81, 0x80, 0x2A, 0x08, 0x8A, 0xC0, 0x29, 0x08, 0x84, 0x80, 0x28, 0x4E, 0x83, 0xC0, 0x80, 0x0E, +0x00, 0xCE, 0x09, 0x80, 0x00, 0xF4, 0x01, 0x34, 0x02, 0x34, 0x03, 0x74, 0x04, 0x34, 0x05, 0x74, +0x06, 0x74, 0x07, 0xB4, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, diff --git a/loragw_hal/src/arb_fw.var b/loragw_hal/src/arb_fw.var index 58e4f96..014a8e5 100644 --- a/loragw_hal/src/arb_fw.var +++ b/loragw_hal/src/arb_fw.var @@ -11,7 +11,7 @@ Description: */ static uint8_t arb_firmware[MCU_ARB_FW_BYTE] = { -0xFF, 0xE9, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0x8A, 0x51, 0x0E, 0xEE, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, @@ -73,70 +73,454 @@ static uint8_t arb_firmware[MCU_ARB_FW_BYTE] = { 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0x64, 0xC0, -0x80, 0x81, 0x84, 0x0A, 0x04, 0xC6, 0x03, 0x59, 0x00, 0xF4, 0x04, 0xC6, 0xF8, 0x29, 0xDB, 0xC1, -0x83, 0x93, 0x20, 0xF0, 0x84, 0x80, 0x5B, 0xF0, 0xF7, 0x61, 0xE1, 0x41, 0xDF, 0x01, 0xE0, 0x01, -0xF6, 0x30, 0x84, 0x80, 0xFE, 0x70, 0xF7, 0x61, 0x83, 0x01, 0x42, 0x6A, 0x83, 0x52, 0xDD, 0x80, -0xDB, 0xD0, 0x5D, 0x88, 0xDC, 0x40, 0x5C, 0x48, 0x96, 0x00, 0x8D, 0xDC, 0x18, 0x6A, 0x19, 0xAA, -0x41, 0x6A, 0x15, 0x54, 0xDB, 0x14, 0x1C, 0xAA, 0x0D, 0xDD, 0x1F, 0x2A, 0x20, 0x2A, 0x1C, 0xAA, -0x21, 0x6A, 0x10, 0x88, 0xDC, 0x40, 0x5C, 0x48, 0x83, 0x96, 0xF8, 0x40, 0x83, 0x52, 0x11, 0xC8, -0xDC, 0x40, 0x5C, 0x48, 0x83, 0x96, 0xF9, 0x80, 0x83, 0x52, 0x0F, 0x48, 0xDC, 0x40, 0x5C, 0x48, -0x83, 0x96, 0xFB, 0xC0, 0x83, 0x52, 0x0E, 0x08, 0xDC, 0x40, 0x5C, 0x48, 0x83, 0x96, 0xF7, 0xC0, -0x83, 0x52, 0x12, 0xC8, 0xDC, 0x40, 0x5C, 0x48, 0x83, 0x96, 0xFA, 0x80, 0x83, 0x52, 0x15, 0x10, -0x41, 0x6A, 0x08, 0x40, 0xD6, 0xE2, 0x83, 0x52, 0x9E, 0x81, 0x46, 0xAA, 0x1E, 0x48, 0x01, 0xBE, -0xDE, 0x80, 0x5E, 0x88, 0x9E, 0x40, 0x71, 0xEA, 0xDF, 0x01, 0x08, 0xF0, 0x5F, 0xC2, 0x03, 0x5C, -0x52, 0xAA, 0x53, 0xEA, 0x55, 0xEA, 0x71, 0xEA, 0x71, 0xEA, 0x5B, 0xD4, 0x5F, 0xC8, 0x0E, 0x62, -0x83, 0x52, 0xDB, 0x5C, 0x5C, 0xEA, 0x5D, 0x2A, 0x5F, 0x6A, 0x36, 0xE3, 0x5F, 0x6A, 0x83, 0x52, -0x0D, 0x9C, 0x63, 0xEA, 0x64, 0xAA, 0x66, 0xEA, 0x71, 0xEA, 0x71, 0xEA, 0x01, 0xF0, 0xDE, 0x80, -0x5E, 0x88, 0xDF, 0x87, 0x08, 0xF0, 0x5F, 0xC2, 0x03, 0x5C, 0x6F, 0x6A, 0x70, 0xAA, 0x55, 0xEA, -0x71, 0xEA, 0x0D, 0x9C, 0x74, 0xEA, 0x75, 0x2A, 0x4C, 0xAA, 0x5B, 0x1C, 0x78, 0xEA, 0x79, 0x2A, -0x7B, 0x6A, 0x80, 0xE2, 0x7B, 0x6A, 0x83, 0x52, 0x5B, 0x90, 0x46, 0xAA, 0x46, 0xAA, 0x00, 0xA8, -0x83, 0x52, 0xD9, 0x81, 0xE0, 0x01, 0x08, 0xF0, 0x60, 0xC2, 0x03, 0x5C, 0x88, 0x6A, 0x89, 0xAA, -0x8B, 0xEA, 0xD5, 0x2A, 0xD5, 0x2A, 0x60, 0xC8, 0x28, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, -0x01, 0x7A, 0x03, 0x9D, 0x94, 0xAA, 0x95, 0xEA, 0xCA, 0xEA, 0x01, 0xF0, 0xDC, 0x40, 0x5C, 0x48, -0xD9, 0x07, 0x60, 0xC8, 0x28, 0xFE, 0x84, 0x80, 0x80, 0x81, 0x60, 0xC8, 0x40, 0xBE, 0x84, 0x80, -0x00, 0x48, 0xDC, 0x40, 0x5C, 0x48, 0x97, 0x40, 0x60, 0xC8, 0x20, 0xBE, 0x84, 0x80, 0x00, 0x48, -0xDC, 0x40, 0x5C, 0x48, 0x98, 0xC0, 0x60, 0xC8, 0x30, 0xFE, 0x84, 0x80, 0x00, 0x48, 0xDC, 0x40, -0x5C, 0x48, 0x99, 0x00, 0x60, 0xC8, 0x38, 0x3E, 0x84, 0x80, 0x00, 0x48, 0xDC, 0x40, 0x5C, 0x48, -0x9A, 0x00, 0x60, 0xC8, 0xDC, 0x40, 0x5C, 0x48, 0x9B, 0x40, 0x60, 0xC8, 0x48, 0xFE, 0x84, 0x80, -0x00, 0x48, 0xDC, 0x40, 0x5C, 0x48, 0x9C, 0x00, 0x95, 0x94, 0x95, 0x94, 0x95, 0x94, 0x95, 0x94, -0x95, 0x50, 0xCA, 0xEA, 0x01, 0xF0, 0xDC, 0x40, 0x5C, 0x48, 0xE0, 0x87, 0x08, 0xF0, 0x60, 0xC2, -0x03, 0x5C, 0xD3, 0x2A, 0xD4, 0xEA, 0x8B, 0xEA, 0xD5, 0x2A, 0x08, 0x40, 0x83, 0x52, 0x95, 0x41, -0x96, 0x41, 0x97, 0x81, 0x98, 0x01, 0x99, 0x41, 0x9A, 0x41, 0x9B, 0x81, 0x9C, 0x41, 0x9E, 0x81, -0xE0, 0x01, 0x08, 0xF0, 0x60, 0xC2, 0x03, 0x5C, 0xE6, 0x2A, 0xE7, 0x6A, 0xE9, 0x2A, 0x0C, 0xAB, -0x0C, 0xAB, 0x60, 0xC8, 0x30, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x80, 0x81, 0x60, 0xC8, 0x38, 0x3E, -0x84, 0x80, 0x80, 0x81, 0x60, 0xC8, 0x48, 0xFE, 0x84, 0x80, 0x80, 0x81, 0x60, 0xC8, 0x20, 0xBE, -0x84, 0x80, 0x80, 0x81, 0x60, 0xC8, 0x40, 0xBE, 0x84, 0x80, 0x80, 0x81, 0x60, 0xC8, 0x28, 0xFE, -0x84, 0x80, 0x80, 0x81, 0x01, 0xF0, 0xDC, 0x40, 0x5C, 0x48, 0xE0, 0x87, 0x08, 0xF0, 0x60, 0xC2, -0x03, 0x5C, 0x0B, 0xEB, 0x0C, 0xAB, 0xE9, 0x2A, 0xDF, 0x01, 0x5B, 0x90, 0xDB, 0xD0, 0xD9, 0x81, -0x5B, 0xD1, 0x83, 0x96, 0xFB, 0x01, 0x83, 0x52, 0x97, 0x81, 0x98, 0x01, 0x99, 0x41, 0x9A, 0x41, -0x9B, 0x81, 0x9C, 0x41, 0xD4, 0x41, 0xD5, 0x81, 0xD2, 0x41, 0xD3, 0x81, 0xD0, 0x01, 0xD1, 0x41, -0xD6, 0x81, 0xD7, 0xC1, 0x83, 0x96, 0xF8, 0x81, 0xF9, 0xC1, 0xFB, 0x01, 0xF7, 0x01, 0xFA, 0xC1, -0xFC, 0xC1, 0xFD, 0x01, 0xF6, 0xC1, 0x83, 0x52, 0xE0, 0x01, 0xDF, 0x01, 0xE1, 0x41, 0x5B, 0x90, -0xDB, 0xD0, 0x5B, 0xD1, 0xD9, 0x81, 0xD8, 0x41, 0xDA, 0x81, 0x08, 0x40, 0x83, 0x52, 0x5B, 0xD1, -0xE0, 0x01, 0x08, 0xF0, 0x60, 0xC2, 0x03, 0x5C, 0x3E, 0x6B, 0x3F, 0xAB, 0x41, 0xAB, 0x96, 0x2B, -0x96, 0x2B, 0x5B, 0x19, 0x44, 0xAB, 0x45, 0xEB, 0x85, 0xEB, 0x14, 0x30, 0x83, 0x96, 0x7B, 0xC2, -0x03, 0x18, 0x4B, 0x2B, 0x4C, 0xEB, 0x4F, 0x6B, 0x83, 0x52, 0x5B, 0x15, 0x4F, 0x6B, 0x01, 0xF0, -0x83, 0x52, 0xDC, 0x40, 0x60, 0x0A, 0x56, 0x2B, 0x03, 0xD0, 0xDC, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, -0x54, 0xEB, 0x5C, 0x48, 0x13, 0x45, 0x03, 0x9D, 0x5E, 0x6B, 0x5F, 0xAB, 0x6A, 0x2B, 0x60, 0xC8, -0x28, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0x01, 0x7A, 0x03, 0x9D, 0x68, 0xEB, 0x69, 0x2B, -0x85, 0xEB, 0x6A, 0x2B, 0x60, 0xC8, 0x40, 0xBE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0x83, 0x96, -0x7A, 0xC6, 0x03, 0x9D, 0x74, 0x2B, 0x75, 0x6B, 0x85, 0xEB, 0x83, 0x52, 0x60, 0xC8, 0x20, 0xBE, -0x84, 0x80, 0x00, 0x48, 0x83, 0x96, 0x77, 0x06, 0x03, 0x9D, 0x7F, 0xEB, 0x80, 0x6B, 0x85, 0xEB, -0x83, 0x52, 0x5B, 0x15, 0x85, 0xEB, 0x85, 0xEB, 0x85, 0xEB, 0x83, 0x52, 0x5B, 0x5D, 0x89, 0xEB, -0x8A, 0xEB, 0x8C, 0xEB, 0x96, 0x2B, 0x96, 0x2B, 0x01, 0xF0, 0xDC, 0x40, 0x5C, 0x48, 0xE0, 0x87, -0x08, 0xF0, 0x60, 0xC2, 0x03, 0x5C, 0x95, 0x2B, 0x96, 0x2B, 0x41, 0xAB, 0x5B, 0x19, 0x99, 0x2B, -0x9A, 0x2B, 0xFF, 0x2B, 0xE0, 0x01, 0x08, 0xF0, 0x60, 0xC2, 0x03, 0x5C, 0xA0, 0xAB, 0xA1, 0xEB, -0xA3, 0x2B, 0xFF, 0x2B, 0xFF, 0x2B, 0x01, 0xF0, 0xDC, 0x40, 0x60, 0x0A, 0xA9, 0x2B, 0x03, 0xD0, -0xDC, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0xA7, 0x6B, 0x5C, 0x48, 0x13, 0x45, 0x03, 0x9D, 0xB1, 0x2B, -0xB2, 0x2B, 0xF3, 0xAB, 0x60, 0xC8, 0x28, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x80, 0x88, 0x03, 0x9D, -0xBA, 0x6B, 0xBB, 0xAB, 0xF3, 0xAB, 0x5B, 0x19, 0xBE, 0xAB, 0xBF, 0xEB, 0xF3, 0xAB, 0x83, 0x96, -0x78, 0x48, 0x83, 0x52, 0xDC, 0x40, 0x60, 0xC8, 0x30, 0xFE, 0x84, 0x80, 0x5C, 0x48, 0x80, 0x40, -0x83, 0x96, 0x79, 0x88, 0x83, 0x52, 0xDC, 0x40, 0x60, 0xC8, 0x38, 0x3E, 0x84, 0x80, 0x5C, 0x48, -0x80, 0x40, 0x83, 0x96, 0x7B, 0xC8, 0x83, 0x52, 0xDC, 0x40, 0x60, 0xC8, 0x48, 0xFE, 0x84, 0x80, -0x5C, 0x48, 0x80, 0x40, 0x83, 0x96, 0x77, 0xC8, 0x83, 0x52, 0xDC, 0x40, 0x60, 0xC8, 0x20, 0xBE, -0x84, 0x80, 0x5C, 0x48, 0x80, 0x40, 0x83, 0x96, 0x7A, 0x88, 0x83, 0x52, 0xDC, 0x40, 0x60, 0xC8, -0x40, 0xBE, 0x84, 0x80, 0x5C, 0x48, 0x80, 0x40, 0x60, 0xC8, 0x28, 0xFE, 0x84, 0x80, 0x80, 0x81, -0x80, 0xCA, 0x5B, 0x15, 0xFF, 0x2B, 0x01, 0xF0, 0xDC, 0x40, 0x5C, 0x48, 0xE0, 0x87, 0x08, 0xF0, -0x60, 0xC2, 0x03, 0x5C, 0xFC, 0xAB, 0xFD, 0xEB, 0xA3, 0x2B, 0xFF, 0x2B, 0xFF, 0x2B, 0x08, 0x40 +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0x64, 0xC0, 0x80, 0x81, +0x84, 0x0A, 0x04, 0xC6, 0x03, 0x59, 0x00, 0xF4, 0x04, 0xC6, 0x07, 0xEE, 0xDC, 0x81, 0x83, 0x93, +0x20, 0xF0, 0x84, 0x80, 0x57, 0xF0, 0x8A, 0x51, 0x06, 0x66, 0x8A, 0x51, 0xDD, 0xC1, 0xDE, 0xC1, +0xA0, 0x30, 0x84, 0x80, 0xA9, 0xB0, 0x8A, 0x51, 0x06, 0x66, 0x83, 0x01, 0x8A, 0x51, 0x44, 0xAE, +0x83, 0x52, 0xD7, 0x80, 0xDC, 0x90, 0x96, 0x00, 0x57, 0x88, 0x96, 0x00, 0x57, 0x88, 0x96, 0x00, +0x57, 0x88, 0x96, 0x00, 0x8D, 0xDC, 0x08, 0x40, 0x15, 0x54, 0xDC, 0xD4, 0x0D, 0xDD, 0x2E, 0x2E, +0x10, 0x88, 0x83, 0x96, 0xA6, 0x00, 0x83, 0x52, 0x11, 0xC8, 0x83, 0x96, 0xA7, 0x40, 0x83, 0x52, +0x0F, 0x48, 0x83, 0x96, 0xA8, 0xC0, 0x83, 0x52, 0x0E, 0x08, 0x83, 0x96, 0xA4, 0xC0, 0x83, 0x52, +0x12, 0xC8, 0xDD, 0x80, 0x15, 0x10, 0x08, 0x40, 0x8A, 0x51, 0x99, 0xE6, 0x8A, 0x51, 0x83, 0x52, +0x0D, 0x58, 0x61, 0xEE, 0x83, 0x96, 0xA5, 0x41, 0x08, 0xF0, 0x25, 0x02, 0x03, 0x18, 0x47, 0x2E, +0x83, 0x52, 0x5C, 0x94, 0x83, 0x96, 0x25, 0x08, 0x8A, 0x51, 0x20, 0x26, 0x8A, 0x51, 0xDC, 0x1C, +0x5C, 0x2E, 0x8A, 0x51, 0xF0, 0xE6, 0x8A, 0x51, 0x0D, 0x58, 0x47, 0x2E, 0x83, 0x96, 0xA5, 0x8A, +0x4C, 0xEE, 0x5C, 0xDC, 0x47, 0x2E, 0x8A, 0x51, 0x68, 0xA6, 0x8A, 0x51, 0x5C, 0x50, 0x47, 0x2E, +0xDE, 0xC1, 0x08, 0xF0, 0x5E, 0x82, 0x03, 0x18, 0x08, 0x40, 0x5E, 0x88, 0x28, 0xFE, 0x84, 0x80, +0x83, 0x93, 0x00, 0xCB, 0x97, 0x6E, 0x5E, 0x88, 0x28, 0xFE, 0x84, 0x80, 0x80, 0x81, 0x5E, 0x88, +0x40, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x97, 0x40, 0x5E, 0x88, 0x20, 0xBE, 0x84, 0x80, 0x00, 0x48, +0x98, 0xC0, 0x5E, 0x88, 0x30, 0xFE, 0x84, 0x80, 0x00, 0x48, 0x99, 0x00, 0x5E, 0x88, 0x38, 0x3E, +0x84, 0x80, 0x00, 0x48, 0x9A, 0x00, 0x5E, 0x88, 0x9B, 0x40, 0x5E, 0x88, 0x48, 0xFE, 0x84, 0x80, +0x00, 0x48, 0x9C, 0x00, 0x95, 0x94, 0x95, 0x94, 0x95, 0x94, 0x95, 0x94, 0x95, 0x50, 0xDE, 0x0A, +0x69, 0x2E, 0x95, 0x41, 0x96, 0x41, 0x97, 0x81, 0x98, 0x01, 0x99, 0x41, 0x9A, 0x41, 0x9B, 0x81, +0x9C, 0x41, 0x9E, 0x81, 0xDE, 0xC1, 0x08, 0xF0, 0x5E, 0x82, 0x03, 0x18, 0xC1, 0xEE, 0x5E, 0x88, +0x30, 0xFE, 0x84, 0x80, 0x80, 0x81, 0x5E, 0x88, 0x38, 0x3E, 0x84, 0x80, 0x80, 0x81, 0x5E, 0x88, +0x48, 0xFE, 0x84, 0x80, 0x80, 0x81, 0x5E, 0x88, 0x20, 0xBE, 0x84, 0x80, 0x80, 0x81, 0x5E, 0x88, +0x40, 0xBE, 0x84, 0x80, 0x80, 0x81, 0x5E, 0x88, 0x28, 0xFE, 0x84, 0x80, 0x80, 0x81, 0xDE, 0x0A, +0xA3, 0x2E, 0x83, 0x96, 0xA5, 0x41, 0x83, 0x52, 0x5C, 0x50, 0xDC, 0x90, 0x5C, 0x91, 0x83, 0x96, +0xA8, 0x01, 0xA0, 0xC1, 0xA1, 0x01, 0xA2, 0x01, 0xA3, 0x41, 0x83, 0x52, 0x97, 0x81, 0x98, 0x01, +0x99, 0x41, 0x9A, 0x41, 0x9B, 0x81, 0x9C, 0x41, 0x83, 0x96, 0xA6, 0x41, 0xA7, 0x81, 0xA8, 0x01, +0xA4, 0x01, 0x83, 0x52, 0xDD, 0xC1, 0xDE, 0xC1, 0x83, 0x96, 0xA5, 0x41, 0x83, 0x52, 0x02, 0xF0, +0x5C, 0x50, 0xDC, 0x90, 0x5C, 0x91, 0xD0, 0xC0, 0x03, 0x30, 0xD1, 0x00, 0xD2, 0x00, 0x04, 0xF0, +0xD3, 0x40, 0x05, 0x30, 0xD4, 0x00, 0x06, 0x30, 0xD5, 0x40, 0x07, 0x70, 0xD6, 0x40, 0x08, 0x40, +0x5C, 0x91, 0xDE, 0xC1, 0x08, 0xF0, 0x5E, 0x82, 0x03, 0x18, 0xA2, 0x2F, 0x0A, 0x30, 0x83, 0x96, +0x28, 0xC2, 0x83, 0x52, 0x03, 0x5C, 0x5C, 0xD5, 0x83, 0x96, 0x27, 0x48, 0xA1, 0xC0, 0xA0, 0xC1, +0x26, 0x08, 0xA0, 0x47, 0x03, 0x18, 0xA1, 0x4A, 0x83, 0x52, 0x5E, 0x88, 0x30, 0xFE, 0x84, 0x80, +0x83, 0x93, 0x00, 0x48, 0xD9, 0x40, 0x5E, 0x88, 0x38, 0x3E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x96, +0xA3, 0x00, 0x83, 0x52, 0x59, 0x48, 0x83, 0x96, 0xA2, 0xC0, 0x01, 0xF0, 0x83, 0x52, 0xD9, 0x40, +0x5E, 0xCA, 0x1C, 0x2F, 0x03, 0xD0, 0xD9, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x1A, 0x2F, 0x59, 0x48, +0x13, 0x45, 0x03, 0x9D, 0x28, 0xEF, 0x5E, 0x88, 0x28, 0xFE, 0x84, 0x80, 0x00, 0xCB, 0x9C, 0x6F, +0x5E, 0x88, 0x40, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x5D, 0xC6, 0x03, 0x9D, 0x9C, 0x6F, 0x5E, 0x88, +0x20, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x96, 0x24, 0x06, 0x03, 0x9D, 0x3B, 0xAF, 0x83, 0x52, +0x03, 0x53, 0x5C, 0xD5, 0x9C, 0x6F, 0x83, 0x52, 0x5D, 0x88, 0x4A, 0x3E, 0x84, 0x80, 0x00, 0x48, +0x83, 0x96, 0x22, 0x47, 0x83, 0x52, 0xD9, 0x40, 0x83, 0x96, 0x23, 0x08, 0x03, 0x18, 0x23, 0x4A, +0x83, 0x52, 0xDA, 0x40, 0x80, 0x7A, 0xDB, 0x80, 0x83, 0x96, 0x21, 0xC8, 0x80, 0x7A, 0x83, 0x52, +0x5B, 0x82, 0x03, 0x9D, 0x57, 0xAF, 0x83, 0x96, 0x20, 0x88, 0x83, 0x52, 0x59, 0x42, 0x03, 0x5C, +0x9C, 0x6F, 0x83, 0x52, 0x03, 0x53, 0x5D, 0x88, 0x4A, 0x3E, 0x84, 0x80, 0x83, 0x96, 0x23, 0x08, +0x83, 0x52, 0xDA, 0x40, 0x83, 0x93, 0x00, 0x48, 0x83, 0x96, 0x22, 0xC2, 0x83, 0x52, 0xD9, 0x40, +0x03, 0x5C, 0xDA, 0xC3, 0x83, 0x96, 0x21, 0xC8, 0x80, 0x7A, 0x83, 0x52, 0xDB, 0x80, 0x5A, 0x48, +0x80, 0x7A, 0x5B, 0x82, 0x03, 0x9D, 0x77, 0xEF, 0x59, 0x48, 0x83, 0x96, 0x20, 0x82, 0x03, 0x5C, +0x9C, 0x6F, 0x83, 0x52, 0x03, 0x53, 0x5E, 0x88, 0x48, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, +0x02, 0xBE, 0xD9, 0x40, 0x00, 0xB0, 0x03, 0x18, 0x01, 0xF0, 0xDA, 0x40, 0x80, 0x7A, 0xDB, 0x80, +0x80, 0xF0, 0x5B, 0x82, 0x03, 0x9D, 0x90, 0xEF, 0x83, 0x96, 0x28, 0xC8, 0x83, 0x52, 0x59, 0x42, +0x03, 0x18, 0x37, 0xAF, 0x83, 0x52, 0x03, 0x53, 0x5E, 0x88, 0x28, 0xFE, 0x84, 0x80, 0x83, 0x93, +0x80, 0x81, 0x5E, 0x88, 0xE8, 0x27, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x5C, 0xD9, 0xA2, 0x2F, +0xDE, 0x0A, 0xF2, 0x6E, 0x5C, 0xD9, 0x08, 0x40, 0xDE, 0xC1, 0x08, 0xF0, 0x5E, 0x82, 0x03, 0x18, +0x08, 0x40, 0x01, 0xF0, 0xD9, 0x40, 0x5E, 0xCA, 0xAF, 0xEF, 0x03, 0xD0, 0xD9, 0x0D, 0xFF, 0x7E, +0x03, 0x9D, 0xAD, 0xAF, 0x59, 0x48, 0x13, 0x45, 0x03, 0x9D, 0xE6, 0xAF, 0x5E, 0x88, 0x28, 0xFE, +0x84, 0x80, 0x83, 0x93, 0x80, 0x88, 0x03, 0x9D, 0xE6, 0xAF, 0x5E, 0x88, 0x30, 0xFE, 0x84, 0x80, +0x83, 0x96, 0x26, 0x08, 0x80, 0x40, 0x83, 0x52, 0x5E, 0x88, 0x38, 0x3E, 0x84, 0x80, 0x83, 0x96, +0x27, 0x48, 0x80, 0x40, 0x83, 0x52, 0x5E, 0x88, 0x48, 0xFE, 0x84, 0x80, 0x83, 0x96, 0x28, 0xC8, +0x80, 0x40, 0x83, 0x52, 0x5E, 0x88, 0x20, 0xBE, 0x84, 0x80, 0x83, 0x96, 0x24, 0xC8, 0x80, 0x40, +0x83, 0x52, 0x5E, 0x88, 0x40, 0xBE, 0x84, 0x80, 0x5D, 0x88, 0x80, 0x40, 0x5E, 0x88, 0x28, 0xFE, +0x84, 0x80, 0x80, 0x81, 0x80, 0xCA, 0x9E, 0xCA, 0x5C, 0xD5, 0x08, 0x40, 0xDE, 0x0A, 0xA5, 0x6F, +0xD8, 0x00, 0x9B, 0x40, 0x15, 0x95, 0x15, 0x95, 0x15, 0x95, 0x15, 0x95, 0x15, 0x95, 0x15, 0x95, +0x15, 0x95, 0x15, 0x51, 0x01, 0xF0, 0xD7, 0x80, 0x58, 0x4A, 0xF8, 0xAF, 0x03, 0xD0, 0xD7, 0x4D, +0xFF, 0x7E, 0x03, 0x9D, 0xF6, 0xEF, 0x57, 0x88, 0x13, 0x45, 0x03, 0x59, 0x08, 0x40, 0xF2, 0xAF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, +0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF }; diff --git a/loragw_hal/src/loragw_hal.c b/loragw_hal/src/loragw_hal.c index 1738916..5b261f2 100644 --- a/loragw_hal/src/loragw_hal.c +++ b/loragw_hal/src/loragw_hal.c @@ -58,7 +58,7 @@ const uint32_t rf_rx_bandwidth[LGW_RF_CHAIN_NB] = LGW_RF_RX_BANDWIDTH; const uint32_t rf_tx_lowfreq[LGW_RF_CHAIN_NB] = LGW_RF_TX_LOWFREQ; const uint32_t rf_tx_upfreq[LGW_RF_CHAIN_NB] = LGW_RF_TX_UPFREQ; -#define MCU_ARB_FW_BYTE 2048 /* size of the firmware IN BYTES (= twice the number of 14b words) */ +#define MCU_ARB_FW_BYTE 8192 /* size of the firmware IN BYTES (= twice the number of 14b words) */ #define MCU_AGC_FW_BYTE 8192 /* size of the firmware IN BYTES (= twice the number of 14b words) */ #define SX1257_CLK_OUT 1 @@ -74,8 +74,9 @@ const uint32_t rf_tx_upfreq[LGW_RF_CHAIN_NB] = LGW_RF_TX_UPFREQ; #define SX1257_RX_ADC_TRIM 6 /* 0 to 7, 6 for 32MHz ref, 5 for 36MHz ref */ #define SX1257_RXBB_BW 2 -#define RSSI_OFFSET_LORA_MULTI -127.0 /* calibrated value */ -#define RSSI_OFFSET_LORA_STD 0.0 /* RSSI not working properly on that IF channel */ +#define RSSI_OFFSET_LORA_MULTI -130.0 /* calibrated value */ +#define RSSI_OFFSET_LORA_STD -168.0 /* calibrated for all bandwidth */ +#define RSSI_OFFSET_FSK 0.0 /* TODO */ #define TX_METADATA_NB 16 #define RX_METADATA_NB 16 @@ -322,13 +323,15 @@ void lgw_constant_adjust(void) { // lgw_reg_w(LGW_CHIRP_INVERT_RX,1); /* default 1 */ // lgw_reg_w(LGW_RX_EDGE_SELECT,0); /* default 0 */ // lgw_reg_w(LGW_MBWSSF_MODEM_INVERT_IQ,0); /* default 0 */ - lgw_reg_w(LGW_DC_NOTCH_EN,1); /* default 0 */ - // lgw_reg_w(LGW_RSSI_BB_FILTER_ALPHA,7); /* default 7 */ + // lgw_reg_w(LGW_DC_NOTCH_EN,1); /* default 1 */ + lgw_reg_w(LGW_RSSI_BB_FILTER_ALPHA,9); /* default 7 */ lgw_reg_w(LGW_RSSI_DEC_FILTER_ALPHA,7); /* default 5 */ lgw_reg_w(LGW_RSSI_CHANN_FILTER_ALPHA,7); /* default 8 */ // lgw_reg_w(LGW_RSSI_BB_DEFAULT_VALUE,32); /* default 32 */ lgw_reg_w(LGW_RSSI_CHANN_DEFAULT_VALUE,90); /* default 100 */ lgw_reg_w(LGW_RSSI_DEC_DEFAULT_VALUE,90); /* default 100 */ + // lgw_reg_w(LGW_DEC_GAIN_OFFSET, 8); /* default 8 */ + // lgw_reg_w(LGW_CHAN_GAIN_OFFSET, 7); /* default 7 */ /* Correlator setup */ // lgw_reg_w(LGW_CORR_DETECT_EN,126); /* default 126 */ @@ -364,7 +367,6 @@ void lgw_constant_adjust(void) { // lgw_reg_w(LGW_PAYLOAD_FINE_TIMING_GAIN,2); /* default 2 */ // lgw_reg_w(LGW_TRACKING_INTEGRAL,0); /* default 0 */ // lgw_reg_w(LGW_ADJUST_MODEM_START_OFFSET_RDX8,0); /* default 0 */ - // lgw_reg_w(LGW_ADJUST_MODEM_START_OFFSET_RDX4,0); /* default 0 */ // lgw_reg_w(LGW_ADJUST_MODEM_START_OFFSET_SF12_RDX4,4092); /* default 4092 */ // lgw_reg_w(LGW_MAX_PAYLOAD_LEN,255); /* default 255 */ @@ -384,9 +386,35 @@ void lgw_constant_adjust(void) { // lgw_reg_w(LGW_MBWSSF_TRACKING_INTEGRAL,0); /* default 0 */ // lgw_reg_w(LGW_MBWSSF_AGC_FREEZE_ON_DETECT,1); /* default 1 */ + /* FSK datapath */ + lgw_reg_w(LGW_FSK_RX_INVERT,1); /* default 0 */ + lgw_reg_w(LGW_FSK_MODEM_INVERT_IQ,1); /* default 0 */ + + /* FSK demod */ + // lgw_reg_w(LGW_FSK_AUTO_AFC_ON,0); /* default 0 */ + // lgw_reg_w(LGW_FSK_BROADCAST,0); /* default 0 */ + lgw_reg_w(LGW_FSK_CRC_EN,1); /* default 0 */ + // lgw_reg_w(LGW_FSK_CRC_IBM,0); /* default 0 */ + // lgw_reg_w(LGW_FSK_DCFREE_ENC,0); /* default 0 */ + lgw_reg_w(LGW_FSK_ERROR_OSR_TOL,10); /* default 0 */ + lgw_reg_w(LGW_FSK_MODEM_INVERT_IQ,1); /* default 0 */ + // lgw_reg_w(LGW_FSK_NODE_ADRS,0); /* default 0 */ + lgw_reg_w(LGW_FSK_PATTERN_TIMEOUT_CFG,64); /* default 0 */ + lgw_reg_w(LGW_FSK_PKT_LENGTH,64); /* default 0 */ + lgw_reg_w(LGW_FSK_PKT_MODE,1); /* default 0 */ + lgw_reg_w(LGW_FSK_PSIZE,3); /* default 0 */ + lgw_reg_w(LGW_FSK_REF_PATTERN_LSB,0x55); /* default 0 */ + lgw_reg_w(LGW_FSK_REF_PATTERN_MSB,0x55); /* default 0 */ + lgw_reg_w(LGW_FSK_RSSI_LENGTH,4); /* default 0 */ + lgw_reg_w(LGW_FSK_CH_BW_EXPO,2); /* 125kHz (default 0, 500kHz) */ + + /* FSK mod */ + lgw_reg_w(LGW_FSK_TX_PSIZE,3); /* default 0 */ + lgw_reg_w(LGW_FSK_TX_GAUSSIAN_SELECT_BT,1); /* default 0 */ + /* TX */ // lgw_reg_w(LGW_TX_MODE,0); /* default 0 */ - lgw_reg_w(LGW_TX_START_DELAY,5000); /* default 0 */ + lgw_reg_w(LGW_TX_START_DELAY,1000); /* default 0 */ lgw_reg_w(LGW_TX_SWAP_IQ,1); /* "normal" polarity; default 0 */ return; @@ -465,10 +493,6 @@ int lgw_rxif_setconf(uint8_t if_chain, struct lgw_conf_rxif_s conf) { fill default if necessary, and commit configuration if everything is OK */ switch (ifmod_config[if_chain]) { case IF_LORA_STD: - if (conf.rf_chain != 0) { - DEBUG_MSG("ERROR: LORA_STD IF CHAIN CAN ONLY BE ASSOCIATED TO RF_CHAIN 0\n"); - return LGW_HAL_ERROR; - } /* fill default parameters if needed */ if (conf.bandwidth == 0) { conf.bandwidth = BW_250KHZ; @@ -556,9 +580,10 @@ int lgw_start(void) { /* reset the registers (also shuts the radios down) */ lgw_soft_reset(); - /* Ungate clock (gated by default), needed for SPI master to SX1257 */ - lgw_reg_w(LGW_CLK32M_EN, 1); - lgw_reg_w(LGW_CLKHS_EN, 1); + /* Ungate clocks (gated by default) */ + lgw_reg_w(LGW_GLOBAL_EN, 1); + // lgw_reg_w(LGW_CLK32M_EN, 1); + // lgw_reg_w(LGW_CLKHS_EN, 1); /* switch on and reset the radios (also starts the 32 MHz XTAL) */ lgw_reg_w(LGW_RADIO_A_EN,1); /* radio A *must* be started to get 32 MHz clk */ @@ -581,14 +606,7 @@ int lgw_start(void) { lgw_reg_w(LGW_FORCE_HOST_FE_CTRL,0); lgw_reg_w(LGW_FORCE_DEC_FILTER_GAIN,0); - // /* TODO load the calibration firmware and wait for calibration to end */ - // load_firmware(MCU_AGC, cal_firmware, ARRAY_SIZE(cal_firmware)); - // lgw_reg_w(LGW_MCU_RST, 0); /* start the AGC MCU */ - // lgw_reg_w(LGW_FORCE_HOST_REG_CTRL,0); /* let the AGC MCU control the registers */ - // do { - // lgw_reg_r(LGW_VERSION, &read_value); - // } while (read_value == 0); - // lgw_reg_w(LGW_MCU_RST, 3); /* reset all MCU */ + /* TODO load the calibration firmware and wait for calibration to end */ /* in the absence of calibration firmware, do a "manual" calibration */ lgw_reg_w(LGW_TX_OFFSET_I,10); @@ -653,9 +671,6 @@ int lgw_start(void) { lgw_reg_w(LGW_MCU_RST_0, 0); lgw_reg_w(LGW_MCU_RST_1, 0); - /* Show that nanoC is configured (LED 602 green, blue at reset)*/ - lgw_reg_w(LGW_LED_REG, 5); - lgw_is_started = true; return LGW_HAL_SUCCESS; } @@ -740,16 +755,11 @@ int lgw_receive(uint8_t max_pkt, struct lgw_pkt_rx_s *pkt_data) { if ((ifmod == IF_LORA_MULTI) || (ifmod == IF_LORA_STD)) { DEBUG_MSG("Note: Lora packet\n"); - if ((buff[s+1] & 0x01) == 1) { /* CRC enabled */ - if (stat_fifo == 1) { - p->status = STAT_CRC_OK; - } else if (stat_fifo == 3){ - p->status = STAT_CRC_BAD; - } else { - p->status = STAT_UNDEFINED; - } - } else { - p->status = STAT_NO_CRC; + switch(stat_fifo & 0x07) { + case 5: p->status = STAT_CRC_OK; break; + case 7: p->status = STAT_CRC_BAD; break; + case 1: p->status = STAT_NO_CRC; break; + default: p->status = STAT_UNDEFINED; } p->modulation = MOD_LORA; p->snr = ((float)((int8_t)buff[s+2]))/4; @@ -999,14 +1009,12 @@ int lgw_status(uint8_t select, uint8_t *code) { lgw_reg_r(LGW_TX_STATUS, &read_value); if (lgw_is_started == false) { *code = TX_OFF; - } else if ((read_value & 0x70) == 0) { - *code = TX_EMPTY; - } else if ((read_value & 0x10) != 0) { - *code = TX_DELAYED; - } else if ((read_value & 0x60) != 0) { + } else if ((read_value & 0x10) == 0) { /* bit 4 @1: TX programmed */ + *code = TX_FREE; + } else if ((read_value & 0x60) != 0) { /* bit 5 or 6 @1: TX sequence */ *code = TX_EMITTING; } else { - *code = TX_STATUS_UNKNOWN; + *code = TX_SCHEDULED; } return LGW_HAL_SUCCESS; diff --git a/loragw_hal/src/loragw_reg.c b/loragw_hal/src/loragw_reg.c index 716c6c0..a9122d2 100644 --- a/loragw_hal/src/loragw_reg.c +++ b/loragw_hal/src/loragw_reg.c @@ -66,7 +66,7 @@ this file is autogenerated from registers description const struct lgw_reg_s loregs[LGW_TOTALREGS] = { {-1,0,0,0,2,0,0}, /* PAGE_REG */ {-1,0,7,0,1,0,0}, /* SOFT_RESET */ - {-1,1,0,0,8,1,101}, /* VERSION */ + {-1,1,0,0,8,1,103}, /* VERSION */ {-1,2,0,0,16,0,0}, /* RX_DATA_BUF_ADDR */ {-1,4,0,0,8,0,0}, /* RX_DATA_BUF_DATA */ {-1,5,0,0,8,0,0}, /* TX_DATA_BUF_ADDR */ @@ -82,8 +82,9 @@ const struct lgw_reg_s loregs[LGW_TOTALREGS] = { {-1,16,0,0,1,0,0}, /* MBWSSF_MODEM_ENABLE */ {-1,16,1,0,1,0,0}, /* CONCENTRATOR_MODEM_ENABLE */ {-1,16,2,0,1,0,0}, /* FSK_MODEM_ENABLE */ - {-1,17,0,0,1,0,0}, /* CLK32M_EN */ - {-1,17,1,0,1,0,0}, /* CLKHS_EN */ + {-1,16,3,0,1,0,0}, /* GLOBAL_EN */ + {-1,17,0,0,1,0,1}, /* CLK32M_EN */ + {-1,17,1,0,1,0,1}, /* CLKHS_EN */ {-1,18,0,0,1,0,0}, /* START_BIST0 */ {-1,18,1,0,1,0,0}, /* START_BIST1 */ {-1,18,2,0,1,0,0}, /* CLEAR_BIST0 */ @@ -143,14 +144,16 @@ const struct lgw_reg_s loregs[LGW_TOTALREGS] = { {-1,29,0,0,5,0,0}, /* GPIO_MODE */ {-1,30,0,0,5,1,0}, /* GPIO_PIN_REG_IN */ {-1,31,0,0,5,0,0}, /* GPIO_PIN_REG_OUT */ - {-1,32,0,0,8,0,0}, /* MCU_AGC_STATUS */ + {-1,32,0,0,8,1,0}, /* MCU_AGC_STATUS */ + {-1,125,0,0,8,1,0}, /* MCU_ARB_STATUS */ {-1,126,0,0,8,1,1}, /* CHIP_ID */ - {-1,127,0,0,1,0,0}, /* EMERGENCY_FORCE_HOST_CTRL */ + {-1,127,0,0,1,0,1}, /* EMERGENCY_FORCE_HOST_CTRL */ {0,33,0,0,1,0,0}, /* RX_INVERT_IQ */ {0,33,1,0,1,0,1}, /* MODEM_INVERT_IQ */ {0,33,2,0,1,0,0}, /* MBWSSF_MODEM_INVERT_IQ */ {0,33,3,0,1,0,0}, /* RX_EDGE_SELECT */ {0,33,4,0,1,0,0}, /* MISC_RADIO_EN */ + {0,33,5,0,1,0,0}, /* FSK_MODEM_INVERT_IQ */ {0,34,0,0,4,0,7}, /* FILTER_GAIN */ {0,35,0,0,8,0,240}, /* RADIO_SELECT */ {0,36,0,1,13,0,-384}, /* IF_FREQ_0 */ @@ -189,7 +192,6 @@ const struct lgw_reg_s loregs[LGW_TOTALREGS] = { {0,77,0,0,4,0,4}, /* CORR_SIG_NOISE_RATIO_SF12 */ {0,78,0,0,4,0,4}, /* CORR_NUM_SAME_PEAK */ {0,78,4,0,3,0,5}, /* CORR_MAC_GAIN */ - {0,79,0,0,12,0,0}, /* ADJUST_MODEM_START_OFFSET_RDX8 */ {0,81,0,0,12,0,0}, /* ADJUST_MODEM_START_OFFSET_RDX4 */ {0,83,0,0,12,0,4092}, /* ADJUST_MODEM_START_OFFSET_SF12_RDX4 */ {0,85,0,0,8,0,7}, /* DBG_CORR_SELECT_SF */ @@ -197,7 +199,7 @@ const struct lgw_reg_s loregs[LGW_TOTALREGS] = { {0,87,0,0,8,1,0}, /* DBG_DETECT_CPT */ {0,88,0,0,8,1,0}, /* DBG_SYMB_CPT */ {0,89,0,0,1,0,1}, /* CHIRP_INVERT_RX */ - {0,89,1,0,1,0,0}, /* DC_NOTCH_EN */ + {0,89,1,0,1,0,1}, /* DC_NOTCH_EN */ {0,90,0,0,1,0,0}, /* IMPLICIT_CRC_EN */ {0,90,1,0,3,0,0}, /* IMPLICIT_CODING_RATE */ {0,91,0,0,8,0,0}, /* IMPLICIT_PAYLOAD_LENGHT */ @@ -219,7 +221,6 @@ const struct lgw_reg_s loregs[LGW_TOTALREGS] = { {0,103,0,0,8,0,0}, /* ZERO_PAD */ {0,104,0,0,4,0,8}, /* DEC_GAIN_OFFSET */ {0,104,4,0,4,0,7}, /* CHAN_GAIN_OFFSET */ - {0,105,0,0,1,0,1}, /* FORCE_HOST_REG_CTRL */ {0,105,1,0,1,0,1}, /* FORCE_HOST_RADIO_CTRL */ {0,105,2,0,1,0,1}, /* FORCE_HOST_FE_CTRL */ {0,105,3,0,1,0,1}, /* FORCE_DEC_FILTER_GAIN */ @@ -249,13 +250,15 @@ const struct lgw_reg_s loregs[LGW_TOTALREGS] = { {1,34,0,0,16,0,0}, /* TX_START_DELAY */ {1,36,0,0,4,0,1}, /* TX_FRAME_SYNCH_PEAK1_POS */ {1,36,4,0,4,0,2}, /* TX_FRAME_SYNCH_PEAK2_POS */ - {1,39,0,0,8,0,0}, /* TX_OFFSET_I */ - {1,40,0,0,8,0,0}, /* TX_OFFSET_Q */ + {1,37,0,0,3,0,0}, /* TX_RAMP_DURATION */ + {1,39,0,1,8,0,0}, /* TX_OFFSET_I */ + {1,40,0,1,8,0,0}, /* TX_OFFSET_Q */ {1,41,0,0,1,0,0}, /* TX_MODE */ {1,41,1,0,4,0,0}, /* TX_ZERO_PAD */ {1,41,5,0,1,0,0}, /* TX_EDGE_SELECT */ + {1,41,6,0,1,0,0}, /* TX_EDGE_SELECT_TOP */ {1,42,0,0,2,0,0}, /* TX_GAIN */ - {1,42,2,0,3,0,0}, /* TX_CHIRP_LOW_PASS */ + {1,42,2,0,3,0,5}, /* TX_CHIRP_LOW_PASS */ {1,42,5,0,2,0,0}, /* TX_FCC_WIDEBAND */ {1,42,7,0,1,0,1}, /* TX_SWAP_IQ */ {1,43,0,0,1,0,0}, /* MBWSSF_IMPLICIT_HEADER */ @@ -286,14 +289,37 @@ const struct lgw_reg_s loregs[LGW_TOTALREGS] = { {1,60,0,0,4,0,7}, /* MBWSSF_RATE_SF */ {1,60,4,0,1,0,1}, /* MBWSSF_ONLY_CRC_EN */ {1,61,0,0,8,0,255}, /* MBWSSF_MAX_PAYLOAD_LEN */ - {1,62,0,0,8,1,0}, /* TX_STATUS */ + {1,62,0,0,8,1,128}, /* TX_STATUS */ + {1,63,0,0,3,0,0}, /* FSK_CH_BW_EXPO */ + {1,63,3,0,3,0,0}, /* FSK_RSSI_LENGTH */ + {1,63,6,0,1,0,0}, /* FSK_RX_INVERT */ + {1,63,7,0,1,0,0}, /* FSK_PKT_MODE */ + {1,64,0,0,3,0,0}, /* FSK_PSIZE */ + {1,64,3,0,1,0,0}, /* FSK_CRC_EN */ + {1,64,4,0,2,0,0}, /* FSK_DCFREE_ENC */ + {1,64,6,0,1,0,0}, /* FSK_CRC_IBM */ + {1,65,0,0,5,0,0}, /* FSK_ERROR_OSR_TOL */ + {1,65,7,0,1,0,0}, /* FSK_RADIO_SELECT */ + {1,66,0,0,16,0,0}, /* FSK_BR_RATIO */ + {1,68,0,0,32,0,0}, /* FSK_REF_PATTERN_LSB */ + {1,72,0,0,32,0,0}, /* FSK_REF_PATTERN_MSB */ + {1,76,0,0,8,0,0}, /* FSK_PKT_LENGTH */ + {1,77,0,0,1,0,1}, /* FSK_TX_GAUSSIAN_EN */ + {1,77,1,0,2,0,0}, /* FSK_TX_GAUSSIAN_SELECT_BT */ + {1,77,3,0,1,0,1}, /* FSK_TX_PATTERN_EN */ + {1,77,4,0,1,0,0}, /* FSK_TX_PREAMBLE_SEQ */ + {1,77,5,0,3,0,0}, /* FSK_TX_PSIZE */ + {1,80,0,0,8,0,0}, /* FSK_NODE_ADRS */ + {1,81,0,0,8,0,0}, /* FSK_BROADCAST */ + {1,82,0,0,1,0,1}, /* FSK_AUTO_AFC_ON */ + {1,83,0,0,10,0,0}, /* FSK_PATTERN_TIMEOUT_CFG */ {2,33,0,0,8,0,0}, /* SPI_RADIO_A__DATA */ {2,34,0,0,8,1,0}, /* SPI_RADIO_A__DATA_READBACK */ - {2,35,0,0,14,0,0}, /* SPI_RADIO_A__ADDR */ + {2,35,0,0,8,0,0}, /* SPI_RADIO_A__ADDR */ {2,37,0,0,1,0,0}, /* SPI_RADIO_A__CS */ {2,38,0,0,8,0,0}, /* SPI_RADIO_B__DATA */ {2,39,0,0,8,1,0}, /* SPI_RADIO_B__DATA_READBACK */ - {2,40,0,0,14,0,0}, /* SPI_RADIO_B__ADDR */ + {2,40,0,0,8,0,0}, /* SPI_RADIO_B__ADDR */ {2,42,0,0,1,0,0}, /* SPI_RADIO_B__CS */ {2,43,0,0,1,0,0}, /* RADIO_A_EN */ {2,43,1,0,1,0,0}, /* RADIO_B_EN */ @@ -312,7 +338,6 @@ const struct lgw_reg_s loregs[LGW_TOTALREGS] = { {2,47,6,0,1,0,0}, /* CAPTURE_FORCE_TRIGGER */ {2,47,7,0,1,0,0}, /* CAPTURE_WRAP */ {2,48,0,0,16,0,0}, /* CAPTURE_PERIOD */ - {2,50,0,0,3,0,3}, /* LED_REG */ {2,51,0,0,8,1,0}, /* MODEM_STATUS */ {2,52,0,0,8,1,0}, /* VALID_HEADER_COUNTER_0 */ {2,54,0,0,8,1,0}, /* VALID_PACKET_COUNTER_0 */ @@ -359,7 +384,11 @@ const struct lgw_reg_s loregs[LGW_TOTALREGS] = { {2,89,1,0,1,0,1}, /* GPS_POL */ {2,90,0,1,8,0,0}, /* SW_TEST_REG1 */ {2,91,2,1,6,0,0}, /* SW_TEST_REG2 */ - {2,92,0,1,16,0,0} /* SW_TEST_REG3 */ + {2,92,0,1,16,0,0}, /* SW_TEST_REG3 */ + {2,94,0,0,4,1,0}, /* DATA_MNGT_STATUS */ + {2,95,0,0,5,1,0}, /* DATA_MNGT_CPT_FRAME_ALLOCATED */ + {2,96,0,0,5,1,0}, /* DATA_MNGT_CPT_FRAME_FINISHED */ + {2,97,0,0,5,1,0} /* DATA_MNGT_CPT_FRAME_READEN */ }; /* -------------------------------------------------------------------------- */ -- cgit v1.2.3