diff --git a/SampleSrc/TestBuild/TestBuild.ino b/SampleSrc/TestBuild/TestBuild.ino new file mode 100644 index 0000000..f2f9147 --- /dev/null +++ b/SampleSrc/TestBuild/TestBuild.ino @@ -0,0 +1,109 @@ +#include "M5StickCPlus.h" +#include +#include + +esp_now_peer_info_t peerInfo; +int line = 0; + +void Init_ESPNOW() +{ // ESPNowの初期化 + // 引用: https://101010.fun/iot/esp32-m5stickc-plus-esp-now.html + WiFi.mode(WIFI_STA); + WiFi.disconnect(); + if (esp_now_init() == ESP_OK) + { + M5.Lcd.println("ESP-Now Init Success"); + } + else + { + M5.Lcd.println("ESP-Now Init failed"); + ESP.restart(); + } + // マルチキャスト用Slave登録 + memset(&peerInfo, 0, sizeof(peerInfo)); + for (int i = 0; i < 6; ++i) + { + peerInfo.peer_addr[i] = (uint8_t)0xff; + } + esp_err_t addStatus = esp_now_add_peer(&peerInfo); + if (addStatus == ESP_OK) + { + // Pair success + M5.Lcd.println("Pair success"); + esp_now_register_send_cb(onESPNOWSent); //送信後のコールバック関数を指定する + esp_now_register_recv_cb(onESPNOWReceive); ///受信時のコールバック関数を指定する + } +} +// データを送信した後に実行されるコールバック関数 +// 引用: https://101010.fun/iot/esp32-m5stickc-plus-esp-now.html +void onESPNOWSent(const uint8_t *mac_addr, esp_now_send_status_t status) +{ + // char macStr[18]; + // snprintf(macStr, sizeof(macStr), "%02X:%02X:%02X:%02X:%02X:%02X", + // mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); + line++; + if (line > 3) + { + M5.Lcd.fillScreen(YELLOW); + M5.Lcd.setCursor(0, 0, 1); + line = 0; + M5.Beep.tone(2000, 500); + } + else + { + M5.Beep.tone(1000, 500); + } + M5.Lcd.setTextColor(BLACK, GREEN); + + M5.Lcd.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail"); +} + +// データを受け取った時に実行されるコールバック関数 +void onESPNOWReceive(const uint8_t *mac_addr, const uint8_t *data, int data_len) +{ + char macStr[18]; + snprintf(macStr, sizeof(macStr), "%02X:%02X:%02X:%02X:%02X:%02X", + mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); + // Serial.println(); + // Serial.printf("Last Packet Recv from: %s\n", macStr); + // Serial.printf("Last Packet Recv Data(%d): ", data_len); + if (data[0] == 100 && data[1] == 254) // 100,254に深い意味はない。uint8_tは0〜255の数値 + { + line++; + if (line > 3) + { + M5.Beep.tone(2000, 1000); + M5.Lcd.fillScreen(YELLOW); + M5.Lcd.setCursor(0, 0, 1); + line = 0; + } + M5.Lcd.setTextColor(BLACK, CYAN); + + M5.Lcd.printf(" %s\n", macStr); + M5.Lcd.printf("Data: %d %d\n", data[0], data[1]); + } +} + +void setup() +{ + M5.begin(); + M5.Lcd.setRotation(3); + M5.Lcd.fillScreen(YELLOW); + + M5.Lcd.setTextColor(BLACK, YELLOW); + M5.Lcd.setCursor(0, 0, 1); + M5.Lcd.setTextSize(2); + + Init_ESPNOW(); +} +void loop() +{ + M5.update(); + M5.Beep.update(); + if (M5.BtnA.wasReleased()) + { + uint8_t data[2] = {100, 254}; // 送信データ  100, 254に深い意味はない。uint8_tは0〜255の数値 + esp_err_t result = esp_now_send(peerInfo.peer_addr, data, sizeof(data)); + } + delay(20); +} diff --git a/SampleSrc/TestBuild/arduino-cli.yaml b/SampleSrc/TestBuild/arduino-cli.yaml new file mode 100644 index 0000000..7b63f79 --- /dev/null +++ b/SampleSrc/TestBuild/arduino-cli.yaml @@ -0,0 +1,4 @@ +board_manager: + additional_urls: + - https://dl.espressif.com/dl/package_esp32_index.json + diff --git a/SampleSrc/TestBuild/coin05_16k.ino b/SampleSrc/TestBuild/coin05_16k.ino new file mode 100644 index 0000000..bc95974 --- /dev/null +++ b/SampleSrc/TestBuild/coin05_16k.ino @@ -0,0 +1,1207 @@ +const uint8_t coin05_16k_raw[] PROGMEM = { + 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, + 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x81, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x7f, + 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x7f, 0x7f, + 0x80, 0x7f, 0x7f, 0x81, 0x7d, 0xa3, 0xb9, 0xa8, 0xb2, 0xd4, 0xd2, 0xc2, + 0xc5, 0xaa, 0x83, 0x7f, 0x83, 0x61, 0x49, 0x50, 0x4c, 0x4f, 0x74, 0x86, + 0x7a, 0x8d, 0xb0, 0xb2, 0xae, 0xb4, 0x9d, 0x7b, 0x7f, 0x7f, 0x5c, 0x48, + 0x50, 0x4a, 0x51, 0x77, 0x86, 0x7d, 0x95, 0xb8, 0xb9, 0xb7, 0xbb, 0xa1, + 0x7e, 0x7e, 0x76, 0x4f, 0x3a, 0x41, 0x3f, 0x47, 0x70, 0x85, 0x82, 0xa0, + 0xc8, 0xc8, 0xc1, 0xc5, 0xa6, 0x7d, 0x7e, 0x72, 0x41, 0x2e, 0x38, 0x33, + 0x44, 0x75, 0x83, 0x84, 0xb0, 0xd6, 0xd4, 0xd6, 0xd0, 0xa0, 0x7d, 0x7b, + 0x5c, 0x2b, 0x1e, 0x1c, 0x1f, 0x47, 0x77, 0x87, 0x9c, 0xc8, 0xe3, 0xe9, + 0xe9, 0xce, 0x9c, 0x7c, 0x6a, 0x4a, 0x28, 0x1b, 0x1a, 0x26, 0x4d, 0x79, + 0x90, 0xa5, 0xc8, 0xdd, 0xdb, 0xd6, 0xc5, 0x99, 0x75, 0x65, 0x49, 0x28, + 0x28, 0x32, 0x31, 0x4b, 0x78, 0x8d, 0x9f, 0xc7, 0xd7, 0xc9, 0xcc, 0xca, + 0xa1, 0x82, 0x78, 0x54, 0x2e, 0x34, 0x39, 0x2f, 0x4a, 0x70, 0x78, 0x90, + 0xc0, 0xcc, 0xc2, 0xcc, 0xbf, 0x95, 0x89, 0x83, 0x56, 0x37, 0x3e, 0x36, + 0x37, 0x62, 0x7a, 0x74, 0x91, 0xbd, 0xc3, 0xc8, 0xd3, 0xb1, 0x87, 0x89, + 0x7e, 0x50, 0x3a, 0x36, 0x24, 0x33, 0x67, 0x7b, 0x7b, 0xa0, 0xc6, 0xce, + 0xdc, 0xe2, 0xba, 0x8e, 0x85, 0x70, 0x42, 0x2b, 0x24, 0x16, 0x25, 0x59, + 0x76, 0x80, 0xa5, 0xd0, 0xdb, 0xe2, 0xe6, 0xc0, 0x8d, 0x80, 0x71, 0x45, + 0x28, 0x27, 0x21, 0x32, 0x68, 0x88, 0x86, 0xa0, 0xca, 0xd3, 0xd1, 0xd0, + 0xaa, 0x77, 0x72, 0x73, 0x4c, 0x30, 0x36, 0x35, 0x42, 0x77, 0x92, 0x84, + 0x97, 0xc2, 0xc6, 0xbe, 0xc2, 0xa2, 0x74, 0x77, 0x7d, 0x56, 0x3e, 0x49, + 0x45, 0x4d, 0x79, 0x8c, 0x7b, 0x91, 0xb8, 0xb7, 0xb0, 0xb8, 0x9c, 0x77, + 0x7f, 0x7f, 0x58, 0x45, 0x50, 0x49, 0x53, 0x7a, 0x84, 0x7a, 0x94, 0xb5, + 0xb2, 0xb1, 0xb5, 0x99, 0x7b, 0x83, 0x7d, 0x58, 0x4a, 0x51, 0x49, 0x56, + 0x7b, 0x82, 0x7a, 0x97, 0xb5, 0xb0, 0xb0, 0xb4, 0x95, 0x7a, 0x83, 0x7a, + 0x54, 0x4a, 0x51, 0x4a, 0x5a, 0x7e, 0x83, 0x7c, 0x9b, 0xb6, 0xb0, 0xb0, + 0xb2, 0x91, 0x79, 0x83, 0x77, 0x52, 0x4b, 0x52, 0x4a, 0x5c, 0x80, 0x81, + 0x7d, 0x9e, 0xb5, 0xae, 0xb1, 0xb0, 0x8e, 0x79, 0x84, 0x74, 0x51, 0x4d, + 0x52, 0x4b, 0x60, 0x82, 0x7f, 0x7d, 0xa0, 0xb5, 0xad, 0xb2, 0xaf, 0x8a, + 0x7a, 0x86, 0x72, 0x4e, 0x4e, 0x50, 0x49, 0x63, 0x84, 0x7e, 0x7f, 0xa4, + 0xb5, 0xae, 0xb4, 0xad, 0x87, 0x7b, 0x85, 0x6e, 0x4c, 0x4e, 0x50, 0x4a, + 0x66, 0x85, 0x7d, 0x82, 0xa8, 0xb5, 0xad, 0xb4, 0xaa, 0x85, 0x7c, 0x85, + 0x6b, 0x4c, 0x4f, 0x4f, 0x4c, 0x6a, 0x84, 0x7b, 0x84, 0xa9, 0xb4, 0xad, + 0xb4, 0xa8, 0x82, 0x7d, 0x85, 0x68, 0x4b, 0x50, 0x4f, 0x4d, 0x6d, 0x85, + 0x7b, 0x87, 0xab, 0xb3, 0xae, 0xb4, 0xa5, 0x81, 0x7e, 0x83, 0x65, 0x4b, + 0x50, 0x4e, 0x4e, 0x70, 0x85, 0x7a, 0x89, 0xae, 0xb2, 0xad, 0xb5, 0xa1, + 0x7f, 0x7f, 0x82, 0x61, 0x4b, 0x51, 0x4d, 0x50, 0x73, 0x84, 0x7a, 0x8d, + 0xb0, 0xb1, 0xae, 0xb5, 0x9f, 0x7d, 0x80, 0x81, 0x5d, 0x4a, 0x52, 0x4c, + 0x52, 0x77, 0x84, 0x7a, 0x91, 0xb2, 0xb0, 0xae, 0xb4, 0x9b, 0x7c, 0x82, + 0x7e, 0x5a, 0x4a, 0x52, 0x4b, 0x54, 0x7a, 0x83, 0x7a, 0x94, 0xb3, 0xb0, + 0xaf, 0xb4, 0x97, 0x7a, 0x83, 0x7d, 0x57, 0x4b, 0x52, 0x4b, 0x58, 0x7c, + 0x83, 0x7a, 0x97, 0xb3, 0xaf, 0xaf, 0xb2, 0x94, 0x7a, 0x83, 0x7a, 0x55, + 0x4b, 0x53, 0x4b, 0x5a, 0x7f, 0x81, 0x7b, 0x9b, 0xb5, 0xae, 0xb0, 0xb1, + 0x91, 0x7b, 0x84, 0x77, 0x53, 0x4c, 0x51, 0x4b, 0x5e, 0x80, 0x80, 0x7d, + 0x9e, 0xb4, 0xaf, 0xb1, 0xb0, 0x8d, 0x7a, 0x84, 0x74, 0x51, 0x4d, 0x51, + 0x4a, 0x61, 0x81, 0x7f, 0x7e, 0xa1, 0xb4, 0xae, 0xb2, 0xae, 0x8b, 0x7a, + 0x84, 0x71, 0x4f, 0x4d, 0x51, 0x4b, 0x64, 0x83, 0x7e, 0x80, 0xa4, 0xb4, + 0xad, 0xb3, 0xab, 0x88, 0x7b, 0x84, 0x6e, 0x4e, 0x4f, 0x50, 0x4c, 0x67, + 0x84, 0x7d, 0x83, 0xa7, 0xb3, 0xad, 0xb3, 0xaa, 0x84, 0x7c, 0x84, 0x6a, + 0x4c, 0x50, 0x50, 0x4c, 0x6b, 0x85, 0x7c, 0x85, 0xaa, 0xb3, 0xad, 0xb3, + 0xa6, 0x83, 0x7d, 0x83, 0x67, 0x4c, 0x51, 0x4f, 0x4e, 0x6e, 0x85, 0x7b, + 0x87, 0xab, 0xb2, 0xac, 0xb4, 0xa4, 0x80, 0x7e, 0x83, 0x64, 0x4b, 0x51, + 0x4e, 0x4f, 0x71, 0x84, 0x7a, 0x8a, 0xad, 0xb2, 0xad, 0xb4, 0xa1, 0x7e, + 0x7f, 0x82, 0x61, 0x4b, 0x52, 0x4e, 0x51, 0x75, 0x84, 0x7a, 0x8d, 0xb0, + 0xb1, 0xae, 0xb3, 0x9d, 0x7d, 0x80, 0x80, 0x5d, 0x4b, 0x52, 0x4d, 0x53, + 0x77, 0x84, 0x7a, 0x90, 0xb1, 0xb0, 0xad, 0xb3, 0x9a, 0x7b, 0x82, 0x7f, + 0x5a, 0x4b, 0x53, 0x4c, 0x56, 0x7a, 0x83, 0x7a, 0x94, 0xb2, 0xaf, 0xae, + 0xb2, 0x97, 0x7b, 0x83, 0x7c, 0x58, 0x4b, 0x53, 0x4c, 0x58, 0x7d, 0x82, + 0x7b, 0x97, 0xb3, 0xae, 0xaf, 0xb1, 0x93, 0x7b, 0x83, 0x79, 0x55, 0x4d, + 0x53, 0x4c, 0x5c, 0x7e, 0x81, 0x7c, 0x9a, 0xb3, 0xae, 0xaf, 0xb0, 0x90, + 0x7a, 0x84, 0x77, 0x53, 0x4d, 0x53, 0x4b, 0x5e, 0x80, 0x80, 0x7c, 0x9e, + 0xb4, 0xad, 0xb1, 0xaf, 0x8d, 0x7a, 0x85, 0x74, 0x52, 0x4e, 0x52, 0x4b, + 0x61, 0x82, 0x7f, 0x7e, 0xa0, 0xb4, 0xac, 0xb1, 0xad, 0x8a, 0x7a, 0x85, + 0x71, 0x4f, 0x4f, 0x52, 0x4c, 0x65, 0x83, 0x7f, 0x80, 0xa4, 0xb3, 0xac, + 0xb1, 0xaa, 0x86, 0x7b, 0x84, 0x6d, 0x4e, 0x4f, 0x51, 0x4d, 0x69, 0x85, + 0x7d, 0x82, 0xa7, 0xb3, 0xac, 0xb2, 0xa7, 0x84, 0x7c, 0x84, 0x6a, 0x4d, + 0x50, 0x50, 0x4e, 0x6c, 0x85, 0x7c, 0x85, 0xa9, 0xb3, 0xac, 0xb3, 0xa5, + 0x81, 0x7d, 0x84, 0x67, 0x4c, 0x51, 0x4f, 0x4f, 0x6f, 0x85, 0x7c, 0x88, + 0xab, 0xb1, 0xac, 0xb3, 0xa2, 0x7f, 0x7e, 0x82, 0x64, 0x4c, 0x52, 0x4f, + 0x50, 0x72, 0x85, 0x7b, 0x8a, 0xad, 0xb1, 0xad, 0xb3, 0x9f, 0x7e, 0x7f, + 0x81, 0x61, 0x4c, 0x52, 0x4e, 0x52, 0x74, 0x84, 0x7a, 0x8e, 0xae, 0xb1, + 0xad, 0xb3, 0x9d, 0x7c, 0x81, 0x80, 0x5e, 0x4b, 0x53, 0x4d, 0x54, 0x77, + 0x84, 0x7a, 0x91, 0xb0, 0xaf, 0xae, 0xb2, 0x99, 0x7c, 0x82, 0x7d, 0x5b, + 0x4c, 0x52, 0x4d, 0x57, 0x7a, 0x83, 0x7b, 0x94, 0xb1, 0xaf, 0xae, 0xb2, + 0x96, 0x7b, 0x83, 0x7c, 0x58, 0x4d, 0x53, 0x4c, 0x5a, 0x7c, 0x82, 0x7b, + 0x97, 0xb1, 0xae, 0xaf, 0xb0, 0x92, 0x7a, 0x83, 0x79, 0x56, 0x4d, 0x53, + 0x4c, 0x5d, 0x7f, 0x81, 0x7c, 0x9a, 0xb2, 0xad, 0xaf, 0xaf, 0x8f, 0x7a, + 0x84, 0x77, 0x54, 0x4e, 0x53, 0x4d, 0x5f, 0x80, 0x80, 0x7d, 0x9d, 0xb3, + 0xad, 0xb0, 0xae, 0x8c, 0x7a, 0x84, 0x74, 0x52, 0x4e, 0x52, 0x4c, 0x62, + 0x81, 0x7f, 0x7f, 0xa0, 0xb2, 0xac, 0xb0, 0xac, 0x8a, 0x7b, 0x84, 0x71, + 0x51, 0x4f, 0x52, 0x4d, 0x65, 0x83, 0x7e, 0x80, 0xa3, 0xb3, 0xac, 0xb1, + 0xa9, 0x87, 0x7c, 0x84, 0x6e, 0x4f, 0x50, 0x51, 0x4e, 0x69, 0x83, 0x7d, + 0x83, 0xa5, 0xb2, 0xac, 0xb2, 0xa7, 0x84, 0x7c, 0x84, 0x6b, 0x4e, 0x51, + 0x51, 0x4e, 0x6c, 0x84, 0x7c, 0x84, 0xa8, 0xb1, 0xac, 0xb2, 0xa5, 0x82, + 0x7d, 0x83, 0x68, 0x4e, 0x52, 0x50, 0x50, 0x6f, 0x85, 0x7b, 0x87, 0xaa, + 0xb1, 0xac, 0xb3, 0xa2, 0x80, 0x7e, 0x83, 0x64, 0x4d, 0x53, 0x4f, 0x51, + 0x72, 0x84, 0x7b, 0x8b, 0xac, 0xb0, 0xac, 0xb2, 0x9f, 0x7e, 0x7f, 0x81, + 0x62, 0x4d, 0x53, 0x4f, 0x53, 0x76, 0x85, 0x7a, 0x8d, 0xae, 0xaf, 0xac, + 0xb2, 0x9c, 0x7d, 0x80, 0x80, 0x5f, 0x4d, 0x53, 0x4e, 0x55, 0x78, 0x84, + 0x7a, 0x90, 0xaf, 0xaf, 0xac, 0xb2, 0x99, 0x7b, 0x81, 0x7e, 0x5c, 0x4d, + 0x54, 0x4d, 0x58, 0x7b, 0x83, 0x7a, 0x93, 0xb0, 0xad, 0xad, 0xb0, 0x95, + 0x7b, 0x82, 0x7c, 0x5a, 0x4e, 0x54, 0x4d, 0x5a, 0x7d, 0x82, 0x7b, 0x96, + 0xb1, 0xac, 0xae, 0xb0, 0x92, 0x7b, 0x84, 0x7a, 0x57, 0x4f, 0x54, 0x4d, + 0x5d, 0x7f, 0x81, 0x7c, 0x99, 0xb1, 0xac, 0xae, 0xaf, 0x8f, 0x7a, 0x84, + 0x77, 0x55, 0x4f, 0x54, 0x4d, 0x60, 0x81, 0x80, 0x7d, 0x9d, 0xb1, 0xab, + 0xaf, 0xac, 0x8c, 0x7b, 0x84, 0x73, 0x53, 0x50, 0x54, 0x4e, 0x63, 0x82, + 0x7f, 0x7f, 0xa0, 0xb1, 0xab, 0xb0, 0xab, 0x89, 0x7b, 0x85, 0x71, 0x51, + 0x51, 0x53, 0x4e, 0x66, 0x82, 0x7d, 0x81, 0xa3, 0xb1, 0xab, 0xb0, 0xa9, + 0x86, 0x7c, 0x84, 0x6e, 0x50, 0x51, 0x53, 0x4e, 0x6a, 0x84, 0x7d, 0x83, + 0xa6, 0xb1, 0xab, 0xb1, 0xa6, 0x84, 0x7d, 0x84, 0x6a, 0x4f, 0x52, 0x52, + 0x50, 0x6d, 0x84, 0x7c, 0x86, 0xa7, 0xb0, 0xaa, 0xb1, 0xa4, 0x81, 0x7d, + 0x83, 0x67, 0x4e, 0x53, 0x51, 0x51, 0x71, 0x85, 0x7b, 0x88, 0xaa, 0xaf, + 0xab, 0xb1, 0xa0, 0x7f, 0x7e, 0x82, 0x64, 0x4e, 0x54, 0x51, 0x52, 0x73, + 0x85, 0x7b, 0x8b, 0xab, 0xae, 0xab, 0xb1, 0x9d, 0x7e, 0x80, 0x81, 0x61, + 0x4e, 0x55, 0x50, 0x55, 0x76, 0x84, 0x7b, 0x8e, 0xad, 0xae, 0xab, 0xb1, + 0x9b, 0x7c, 0x81, 0x7f, 0x5f, 0x4f, 0x55, 0x4f, 0x56, 0x79, 0x83, 0x7a, + 0x91, 0xae, 0xac, 0xab, 0xb0, 0x97, 0x7c, 0x81, 0x7d, 0x5c, 0x4f, 0x55, + 0x4f, 0x59, 0x7b, 0x82, 0x7b, 0x94, 0xaf, 0xac, 0xac, 0xb0, 0x95, 0x7b, + 0x83, 0x7c, 0x5a, 0x4f, 0x55, 0x4e, 0x5b, 0x7c, 0x81, 0x7b, 0x96, 0xaf, + 0xab, 0xad, 0xae, 0x92, 0x7b, 0x83, 0x79, 0x58, 0x50, 0x56, 0x4e, 0x5e, + 0x7f, 0x81, 0x7c, 0x99, 0xb0, 0xaa, 0xad, 0xad, 0x8f, 0x7b, 0x84, 0x77, + 0x56, 0x51, 0x55, 0x4f, 0x61, 0x80, 0x80, 0x7d, 0x9c, 0xb0, 0xaa, 0xad, + 0xac, 0x8b, 0x7b, 0x85, 0x74, 0x53, 0x51, 0x55, 0x4e, 0x64, 0x82, 0x7f, + 0x7f, 0x9f, 0xb0, 0xaa, 0xae, 0xa9, 0x89, 0x7b, 0x85, 0x71, 0x53, 0x52, + 0x54, 0x4f, 0x67, 0x83, 0x7d, 0x80, 0xa2, 0xb0, 0xa9, 0xaf, 0xa7, 0x86, + 0x7c, 0x85, 0x6e, 0x51, 0x53, 0x53, 0x50, 0x6a, 0x83, 0x7c, 0x83, 0xa4, + 0xaf, 0xaa, 0xaf, 0xa5, 0x83, 0x7d, 0x84, 0x6b, 0x50, 0x53, 0x53, 0x50, + 0x6d, 0x84, 0x7c, 0x85, 0xa7, 0xaf, 0xaa, 0xb0, 0xa2, 0x81, 0x7d, 0x83, + 0x68, 0x4f, 0x54, 0x52, 0x51, 0x70, 0x85, 0x7b, 0x87, 0xa8, 0xaf, 0xaa, + 0xb0, 0xa0, 0x7f, 0x7f, 0x83, 0x64, 0x4f, 0x56, 0x51, 0x54, 0x73, 0x84, + 0x7a, 0x89, 0xaa, 0xad, 0xaa, 0xb0, 0x9d, 0x7e, 0x81, 0x82, 0x62, 0x4f, + 0x56, 0x51, 0x54, 0x76, 0x84, 0x79, 0x8c, 0xad, 0xad, 0xaa, 0xb0, 0x99, + 0x7d, 0x82, 0x80, 0x5f, 0x4f, 0x56, 0x51, 0x58, 0x7a, 0x83, 0x7a, 0x90, + 0xad, 0xad, 0xaa, 0xaf, 0x97, 0x7a, 0x83, 0x7e, 0x5c, 0x4f, 0x55, 0x4f, + 0x5b, 0x7a, 0x83, 0x7c, 0x93, 0xae, 0xac, 0xad, 0xae, 0x93, 0x7c, 0x83, + 0x7c, 0x5a, 0x4f, 0x56, 0x4f, 0x5b, 0x7c, 0x80, 0x7b, 0x96, 0xae, 0xab, + 0xae, 0xaf, 0x92, 0x7c, 0x84, 0x7a, 0x57, 0x4f, 0x55, 0x4e, 0x5e, 0x7e, + 0x81, 0x7e, 0x99, 0xaf, 0xac, 0xae, 0xad, 0x8d, 0x7a, 0x86, 0x77, 0x54, + 0x50, 0x56, 0x50, 0x61, 0x80, 0x80, 0x7e, 0x9c, 0xb0, 0xab, 0xae, 0xaa, + 0x89, 0x7b, 0x85, 0x73, 0x54, 0x51, 0x56, 0x50, 0x65, 0x83, 0x7e, 0x7f, + 0xa0, 0xaf, 0xa9, 0xae, 0xa9, 0x88, 0x7b, 0x86, 0x71, 0x51, 0x55, 0x55, + 0x4f, 0x68, 0x82, 0x7e, 0x83, 0xa1, 0xae, 0xaa, 0xb0, 0xa7, 0x84, 0x7c, + 0x84, 0x6e, 0x51, 0x53, 0x54, 0x50, 0x6c, 0x85, 0x7c, 0x84, 0xa5, 0xae, + 0xa9, 0xae, 0xa4, 0x83, 0x7c, 0x84, 0x6b, 0x51, 0x55, 0x53, 0x51, 0x6e, + 0x85, 0x7d, 0x86, 0xa7, 0xad, 0xa9, 0xb1, 0xa1, 0x7f, 0x7d, 0x84, 0x69, + 0x4f, 0x56, 0x54, 0x52, 0x71, 0x84, 0x7c, 0x8a, 0xa9, 0xad, 0xaa, 0xb0, + 0x9f, 0x80, 0x7d, 0x7f, 0x65, 0x50, 0x54, 0x51, 0x55, 0x75, 0x85, 0x7c, + 0x8c, 0xac, 0xad, 0xa8, 0xaf, 0x9c, 0x7d, 0x7f, 0x7f, 0x61, 0x50, 0x55, + 0x51, 0x58, 0x76, 0x84, 0x7e, 0x8f, 0xaa, 0xac, 0xaa, 0xae, 0x99, 0x7e, + 0x81, 0x7e, 0x60, 0x50, 0x56, 0x50, 0x57, 0x7a, 0x84, 0x7a, 0x90, 0xab, + 0xb0, 0x96, 0x7b, 0x82, 0x7d, 0x5d, 0x4e, 0x5e, 0x7c, 0x7f, 0x7a, 0x96, + 0xaf, 0xac, 0x8f, 0x7b, 0x84, 0x79, 0x5a, 0x4f, 0x63, 0x82, 0x80, 0x7c, + 0x9c, 0xae, 0xa4, 0x87, 0x7b, 0x83, 0x71, 0x56, 0x51, 0x68, 0x84, 0x7e, + 0x81, 0xa2, 0xb1, 0xa4, 0x84, 0x7d, 0x86, 0x6b, 0x50, 0x52, 0x6e, 0x85, + 0x7b, 0x86, 0xa5, 0xb1, 0xa1, 0x81, 0x7d, 0x82, 0x67, 0x4f, 0x55, 0x76, + 0x84, 0x77, 0x8b, 0xab, 0xb0, 0x9b, 0x7e, 0x80, 0x80, 0x62, 0x50, 0x59, + 0x77, 0x81, 0x7b, 0x92, 0xab, 0xad, 0x95, 0x7b, 0x82, 0x7d, 0x5d, 0x4e, + 0x5d, 0x7e, 0x82, 0x7d, 0x98, 0xac, 0xaa, 0x90, 0x7b, 0x83, 0x76, 0x59, + 0x51, 0x62, 0x82, 0x81, 0x7e, 0x9c, 0xae, 0xa8, 0x8b, 0x79, 0x83, 0x73, + 0x56, 0x51, 0x66, 0x82, 0x7f, 0x82, 0xa0, 0xaf, 0xa4, 0x85, 0x7a, 0x84, + 0x6e, 0x53, 0x52, 0x6d, 0x86, 0x7d, 0x86, 0xa5, 0xae, 0x9e, 0x80, 0x7d, + 0x81, 0x66, 0x52, 0x55, 0x74, 0x87, 0x7b, 0x8b, 0xa9, 0xaf, 0x9b, 0x7c, + 0x7f, 0x80, 0x62, 0x4f, 0x58, 0x79, 0x85, 0x7b, 0x92, 0xac, 0xae, 0x95, + 0x7a, 0x81, 0x7b, 0x5c, 0x4d, 0x5c, 0x7e, 0x83, 0x7b, 0x96, 0xae, 0xab, + 0x8f, 0x7b, 0x83, 0x76, 0x59, 0x4f, 0x63, 0x81, 0x80, 0x7e, 0x9b, 0xaf, + 0xa9, 0x8a, 0x7b, 0x85, 0x73, 0x55, 0x51, 0x69, 0x83, 0x7d, 0x81, 0xa0, + 0xaf, 0xa4, 0x85, 0x7b, 0x84, 0x6e, 0x53, 0x52, 0x6e, 0x85, 0x7b, 0x84, + 0xa4, 0xaf, 0x9f, 0x80, 0x7d, 0x83, 0x68, 0x51, 0x56, 0x73, 0x85, 0x7a, + 0x8a, 0xa8, 0xad, 0x9a, 0x7e, 0x80, 0x80, 0x63, 0x51, 0x59, 0x78, 0x84, + 0x7a, 0x90, 0xab, 0xac, 0x96, 0x7c, 0x82, 0x7c, 0x5e, 0x50, 0x5d, 0x7c, + 0x82, 0x7b, 0x95, 0xad, 0xab, 0x8f, 0x7a, 0x85, 0x79, 0x59, 0x50, 0x63, + 0x80, 0x80, 0x7e, 0x9b, 0xae, 0xa8, 0x8a, 0x7b, 0x84, 0x72, 0x56, 0x50, + 0x68, 0x84, 0x7d, 0x80, 0xa0, 0xaf, 0xa4, 0x85, 0x7c, 0x84, 0x6d, 0x53, + 0x53, 0x6e, 0x85, 0x7c, 0x85, 0xa4, 0xaf, 0xa0, 0x80, 0x7e, 0x83, 0x68, + 0x51, 0x56, 0x73, 0x84, 0x7b, 0x8a, 0xa7, 0xae, 0x9b, 0x7e, 0x80, 0x80, + 0x64, 0x50, 0x58, 0x78, 0x84, 0x79, 0x8f, 0xaa, 0xae, 0x96, 0x7b, 0x82, + 0x7e, 0x5e, 0x4f, 0x5e, 0x7c, 0x82, 0x7b, 0x95, 0xac, 0xab, 0x90, 0x7a, + 0x84, 0x79, 0x5a, 0x50, 0x62, 0x80, 0x80, 0x7c, 0x9a, 0xae, 0xa8, 0x8b, + 0x7b, 0x85, 0x74, 0x57, 0x51, 0x67, 0x83, 0x7d, 0x80, 0x9f, 0xaf, 0xa5, + 0x85, 0x7c, 0x85, 0x6e, 0x53, 0x53, 0x6d, 0x84, 0x7c, 0x85, 0xa3, 0xae, + 0x9f, 0x81, 0x7e, 0x82, 0x69, 0x52, 0x56, 0x73, 0x85, 0x7a, 0x89, 0xa8, + 0xae, 0x9a, 0x7e, 0x80, 0x80, 0x63, 0x51, 0x5a, 0x78, 0x83, 0x7b, 0x8f, + 0xa9, 0xad, 0x95, 0x7b, 0x82, 0x7d, 0x5e, 0x50, 0x5e, 0x7c, 0x82, 0x7b, + 0x94, 0xac, 0xaa, 0x90, 0x7b, 0x83, 0x78, 0x5b, 0x51, 0x62, 0x80, 0x80, + 0x7d, 0x99, 0xad, 0xa8, 0x8b, 0x7b, 0x84, 0x74, 0x57, 0x52, 0x67, 0x82, + 0x7e, 0x81, 0x9e, 0xad, 0xa4, 0x86, 0x7c, 0x84, 0x6e, 0x55, 0x54, 0x6d, + 0x84, 0x7c, 0x84, 0xa3, 0xae, 0xa0, 0x82, 0x7d, 0x83, 0x69, 0x53, 0x56, + 0x72, 0x84, 0x7b, 0x89, 0xa6, 0xae, 0x9b, 0x7e, 0x80, 0x81, 0x64, 0x51, + 0x5a, 0x77, 0x83, 0x7a, 0x8e, 0xa9, 0xac, 0x96, 0x7c, 0x82, 0x7d, 0x60, + 0x51, 0x5d, 0x7c, 0x83, 0x7b, 0x94, 0xab, 0xaa, 0x90, 0x7a, 0x83, 0x79, + 0x5b, 0x51, 0x62, 0x80, 0x81, 0x7e, 0x99, 0xad, 0xa8, 0x8a, 0x7a, 0x84, + 0x74, 0x57, 0x52, 0x67, 0x83, 0x7f, 0x80, 0x9e, 0xad, 0xa4, 0x86, 0x7c, + 0x83, 0x6e, 0x55, 0x54, 0x6d, 0x84, 0x7c, 0x84, 0xa3, 0xae, 0xa0, 0x81, + 0x7d, 0x83, 0x69, 0x53, 0x56, 0x72, 0x84, 0x7b, 0x89, 0xa6, 0xad, 0x9b, + 0x7e, 0x80, 0x80, 0x64, 0x52, 0x5a, 0x77, 0x84, 0x7a, 0x8f, 0xa9, 0xab, + 0x96, 0x7c, 0x82, 0x7d, 0x5f, 0x52, 0x5e, 0x7c, 0x82, 0x7c, 0x94, 0xab, + 0xaa, 0x90, 0x7a, 0x83, 0x79, 0x5b, 0x51, 0x63, 0x80, 0x81, 0x7d, 0x99, + 0xac, 0xa7, 0x8a, 0x7a, 0x84, 0x74, 0x58, 0x52, 0x68, 0x83, 0x7e, 0x80, + 0x9e, 0xad, 0xa3, 0x86, 0x7b, 0x84, 0x6f, 0x55, 0x55, 0x6d, 0x84, 0x7d, + 0x84, 0xa2, 0xad, 0x9f, 0x81, 0x7d, 0x83, 0x6a, 0x53, 0x57, 0x72, 0x84, + 0x7b, 0x88, 0xa5, 0xac, 0x9b, 0x7e, 0x80, 0x81, 0x64, 0x52, 0x5a, 0x77, + 0x84, 0x7a, 0x8e, 0xa9, 0xab, 0x96, 0x7b, 0x81, 0x7d, 0x5f, 0x51, 0x5e, + 0x7c, 0x82, 0x7c, 0x94, 0xab, 0xa9, 0x90, 0x7b, 0x83, 0x79, 0x5b, 0x52, + 0x62, 0x7f, 0x80, 0x7d, 0x99, 0xac, 0xa7, 0x8b, 0x7b, 0x84, 0x74, 0x58, + 0x53, 0x68, 0x82, 0x7e, 0x80, 0x9e, 0xad, 0xa4, 0x86, 0x7b, 0x84, 0x6f, + 0x55, 0x55, 0x6d, 0x84, 0x7d, 0x84, 0xa2, 0xad, 0x9f, 0x81, 0x7d, 0x83, + 0x6a, 0x53, 0x57, 0x72, 0x84, 0x7b, 0x88, 0xa6, 0xac, 0x9b, 0x7f, 0x7f, + 0x81, 0x65, 0x52, 0x5a, 0x77, 0x83, 0x7b, 0x8e, 0xa8, 0xab, 0x96, 0x7c, + 0x82, 0x7e, 0x60, 0x52, 0x5e, 0x7b, 0x82, 0x7b, 0x93, 0xaa, 0xa9, 0x91, + 0x7b, 0x83, 0x79, 0x5d, 0x52, 0x62, 0x7f, 0x81, 0x7d, 0x98, 0xab, 0xa7, + 0x8b, 0x7a, 0x84, 0x75, 0x59, 0x53, 0x68, 0x82, 0x7f, 0x80, 0x9d, 0xac, + 0xa4, 0x86, 0x7b, 0x84, 0x6f, 0x56, 0x55, 0x6c, 0x84, 0x7d, 0x84, 0xa2, + 0xac, 0x9f, 0x82, 0x7d, 0x82, 0x6a, 0x54, 0x57, 0x72, 0x84, 0x7b, 0x88, + 0xa5, 0xac, 0x9b, 0x7e, 0x7f, 0x81, 0x66, 0x52, 0x5b, 0x77, 0x84, 0x7b, + 0x8d, 0xa7, 0xab, 0x96, 0x7c, 0x82, 0x7e, 0x61, 0x52, 0x5e, 0x7b, 0x82, + 0x7b, 0x92, 0xaa, 0xa9, 0x91, 0x7b, 0x83, 0x7a, 0x5d, 0x52, 0x62, 0x7f, + 0x81, 0x7d, 0x98, 0xab, 0xa7, 0x8c, 0x7a, 0x84, 0x75, 0x59, 0x53, 0x67, + 0x82, 0x7f, 0x80, 0x9d, 0xac, 0xa3, 0x87, 0x7c, 0x83, 0x70, 0x57, 0x55, + 0x6d, 0x84, 0x7c, 0x83, 0xa1, 0xac, 0xa0, 0x82, 0x7d, 0x83, 0x6b, 0x54, + 0x57, 0x72, 0x84, 0x7c, 0x88, 0xa4, 0xac, 0x9b, 0x7e, 0x7f, 0x81, 0x66, + 0x53, 0x5a, 0x77, 0x84, 0x7a, 0x8c, 0xa7, 0xab, 0x96, 0x7d, 0x81, 0x7e, + 0x62, 0x52, 0x5e, 0x7b, 0x82, 0x7b, 0x92, 0xa9, 0xa9, 0x91, 0x7a, 0x83, + 0x7b, 0x5d, 0x52, 0x63, 0x7f, 0x81, 0x7d, 0x97, 0xab, 0xa6, 0x8b, 0x7b, + 0x84, 0x76, 0x5a, 0x53, 0x67, 0x82, 0x7f, 0x7f, 0x9c, 0xac, 0xa3, 0x87, + 0x7b, 0x84, 0x71, 0x57, 0x55, 0x6d, 0x83, 0x7d, 0x83, 0xa0, 0xac, 0x9f, + 0x82, 0x7d, 0x84, 0x6c, 0x55, 0x58, 0x72, 0x84, 0x7b, 0x87, 0xa4, 0xab, + 0x9b, 0x7f, 0x7f, 0x81, 0x67, 0x54, 0x5b, 0x77, 0x84, 0x7a, 0x8c, 0xa7, + 0xaa, 0x96, 0x7c, 0x81, 0x7f, 0x62, 0x54, 0x5f, 0x7b, 0x82, 0x7b, 0x91, + 0xa8, 0xa8, 0x91, 0x7a, 0x84, 0x7b, 0x5e, 0x53, 0x63, 0x7f, 0x81, 0x7c, + 0x96, 0xaa, 0xa6, 0x8b, 0x7b, 0x84, 0x76, 0x5b, 0x54, 0x68, 0x82, 0x7e, + 0x7f, 0x9b, 0xab, 0xa3, 0x86, 0x7b, 0x85, 0x71, 0x57, 0x56, 0x6d, 0x83, + 0x7c, 0x82, 0x9f, 0xab, 0x9f, 0x82, 0x7d, 0x84, 0x6c, 0x56, 0x58, 0x72, + 0x84, 0x7b, 0x86, 0xa3, 0xab, 0x9b, 0x7f, 0x7f, 0x82, 0x67, 0x54, 0x5b, + 0x77, 0x83, 0x7a, 0x8c, 0xa6, 0xaa, 0x96, 0x7c, 0x82, 0x7f, 0x62, 0x53, + 0x5f, 0x7b, 0x82, 0x7b, 0x91, 0xa9, 0xa8, 0x91, 0x7b, 0x83, 0x7a, 0x5e, + 0x54, 0x63, 0x7f, 0x81, 0x7c, 0x97, 0xaa, 0xa5, 0x8b, 0x7a, 0x84, 0x76, + 0x5a, 0x55, 0x68, 0x81, 0x7f, 0x7f, 0x9b, 0xaa, 0xa2, 0x86, 0x7c, 0x84, + 0x71, 0x58, 0x56, 0x6d, 0x83, 0x7d, 0x82, 0xa0, 0xab, 0x9f, 0x82, 0x7d, + 0x83, 0x6c, 0x56, 0x58, 0x72, 0x84, 0x7b, 0x87, 0xa3, 0xab, 0x9b, 0x7e, + 0x7f, 0x82, 0x67, 0x54, 0x5c, 0x77, 0x84, 0x7a, 0x8c, 0xa6, 0xa9, 0x95, + 0x7c, 0x81, 0x7f, 0x63, 0x53, 0x5f, 0x7b, 0x83, 0x7a, 0x91, 0xa9, 0xa8, + 0x91, 0x7b, 0x83, 0x7b, 0x5e, 0x54, 0x63, 0x7f, 0x80, 0x7c, 0x96, 0xa9, + 0xa5, 0x8b, 0x7a, 0x85, 0x77, 0x5b, 0x55, 0x68, 0x82, 0x7e, 0x7e, 0x9b, + 0xaa, 0xa2, 0x87, 0x7c, 0x85, 0x72, 0x58, 0x56, 0x6d, 0x84, 0x7c, 0x82, + 0x9f, 0xaa, 0x9f, 0x82, 0x7c, 0x84, 0x6d, 0x56, 0x59, 0x72, 0x84, 0x7b, + 0x87, 0xa3, 0xaa, 0x9b, 0x7e, 0x7f, 0x82, 0x67, 0x54, 0x5b, 0x77, 0x85, + 0x7a, 0x8b, 0xa6, 0xa9, 0x95, 0x7c, 0x81, 0x7f, 0x63, 0x54, 0x5f, 0x7b, + 0x82, 0x7a, 0x91, 0xa8, 0xa8, 0x90, 0x7a, 0x83, 0x7c, 0x5e, 0x54, 0x64, + 0x7f, 0x81, 0x7c, 0x96, 0xa9, 0xa5, 0x8b, 0x7a, 0x84, 0x77, 0x5b, 0x54, + 0x68, 0x82, 0x7f, 0x7e, 0x9b, 0xaa, 0xa2, 0x87, 0x7b, 0x84, 0x72, 0x58, + 0x56, 0x6d, 0x83, 0x7d, 0x83, 0x9f, 0xaa, 0x9f, 0x82, 0x7d, 0x83, 0x6c, + 0x56, 0x59, 0x72, 0x84, 0x7c, 0x87, 0xa2, 0xaa, 0x9b, 0x7f, 0x7f, 0x81, + 0x68, 0x55, 0x5b, 0x76, 0x84, 0x7b, 0x8b, 0xa5, 0xa9, 0x96, 0x7d, 0x81, + 0x7f, 0x63, 0x54, 0x5f, 0x7a, 0x82, 0x7b, 0x91, 0xa7, 0xa7, 0x91, 0x7b, + 0x83, 0x7b, 0x60, 0x54, 0x62, 0x7f, 0x81, 0x7c, 0x95, 0xa9, 0xa5, 0x8c, + 0x7b, 0x84, 0x77, 0x5c, 0x55, 0x67, 0x81, 0x7f, 0x7e, 0x9a, 0xaa, 0xa3, + 0x87, 0x7b, 0x85, 0x72, 0x59, 0x56, 0x6c, 0x83, 0x7d, 0x82, 0x9e, 0xaa, + 0x9f, 0x83, 0x7d, 0x84, 0x6d, 0x57, 0x58, 0x71, 0x84, 0x7b, 0x86, 0xa2, + 0xaa, 0x9b, 0x7f, 0x7e, 0x82, 0x68, 0x55, 0x5b, 0x76, 0x84, 0x7b, 0x8b, + 0xa5, 0xa9, 0x96, 0x7c, 0x81, 0x7f, 0x64, 0x54, 0x5f, 0x7b, 0x83, 0x7b, + 0x90, 0xa7, 0xa7, 0x91, 0x7b, 0x83, 0x7b, 0x60, 0x55, 0x62, 0x7e, 0x81, + 0x7c, 0x95, 0xa8, 0xa5, 0x8c, 0x7b, 0x83, 0x77, 0x5c, 0x56, 0x67, 0x81, + 0x7f, 0x7f, 0x9a, 0xa9, 0xa3, 0x87, 0x7b, 0x84, 0x72, 0x59, 0x57, 0x6c, + 0x84, 0x7d, 0x81, 0x9e, 0xaa, 0x9f, 0x83, 0x7d, 0x83, 0x6d, 0x57, 0x59, + 0x71, 0x84, 0x7b, 0x86, 0xa1, 0xa9, 0x9b, 0x7f, 0x7f, 0x82, 0x69, 0x55, + 0x5c, 0x76, 0x84, 0x7a, 0x8b, 0xa4, 0xa9, 0x96, 0x7c, 0x81, 0x7f, 0x64, + 0x55, 0x5f, 0x7b, 0x83, 0x7a, 0x90, 0xa7, 0xa7, 0x91, 0x7b, 0x82, 0x7c, + 0x60, 0x55, 0x63, 0x7e, 0x81, 0x7c, 0x95, 0xa8, 0xa5, 0x8c, 0x7b, 0x84, + 0x77, 0x5c, 0x56, 0x67, 0x81, 0x7f, 0x7e, 0x9a, 0xa9, 0xa2, 0x87, 0x7c, + 0x84, 0x72, 0x5a, 0x57, 0x6c, 0x83, 0x7d, 0x82, 0x9d, 0xaa, 0x9f, 0x83, + 0x7d, 0x84, 0x6e, 0x57, 0x59, 0x71, 0x84, 0x7c, 0x86, 0xa1, 0xaa, 0x9b, + 0x7f, 0x7f, 0x82, 0x69, 0x56, 0x5b, 0x75, 0x84, 0x7b, 0x8a, 0xa4, 0xa9, + 0x97, 0x7d, 0x80, 0x7f, 0x64, 0x55, 0x5e, 0x7a, 0x83, 0x7b, 0x90, 0xa6, + 0xa8, 0x92, 0x7b, 0x82, 0x7c, 0x60, 0x55, 0x63, 0x7e, 0x82, 0x7d, 0x94, + 0xa8, 0xa5, 0x8c, 0x7b, 0x83, 0x77, 0x5d, 0x56, 0x67, 0x81, 0x80, 0x7e, + 0x99, 0xa9, 0xa2, 0x88, 0x7b, 0x84, 0x73, 0x5a, 0x57, 0x6c, 0x83, 0x7e, + 0x82, 0x9d, 0xa9, 0x9e, 0x82, 0x7c, 0x84, 0x6e, 0x58, 0x5a, 0x71, 0x84, + 0x7c, 0x85, 0xa0, 0xa8, 0x9a, 0x7f, 0x7f, 0x82, 0x6a, 0x57, 0x5c, 0x76, + 0x84, 0x7a, 0x8a, 0xa4, 0xa8, 0x96, 0x7d, 0x81, 0x80, 0x65, 0x56, 0x60, + 0x7a, 0x83, 0x7b, 0x8f, 0xa6, 0xa6, 0x91, 0x7b, 0x83, 0x7c, 0x61, 0x56, + 0x64, 0x7e, 0x81, 0x7b, 0x94, 0xa7, 0xa4, 0x8c, 0x7b, 0x83, 0x78, 0x5e, + 0x57, 0x68, 0x81, 0x7f, 0x7e, 0x99, 0xa8, 0xa1, 0x87, 0x7b, 0x84, 0x73, + 0x5b, 0x58, 0x6c, 0x82, 0x7d, 0x81, 0x9c, 0xa8, 0x9e, 0x83, 0x7d, 0x83, + 0x6e, 0x59, 0x5a, 0x71, 0x84, 0x7b, 0x85, 0xa0, 0xa8, 0x9a, 0x80, 0x7e, + 0x82, 0x6a, 0x58, 0x5d, 0x76, 0x83, 0x7b, 0x8a, 0xa2, 0xa7, 0x96, 0x7d, + 0x81, 0x80, 0x65, 0x56, 0x60, 0x7a, 0x83, 0x7b, 0x8f, 0xa6, 0xa6, 0x91, + 0x7c, 0x82, 0x7c, 0x61, 0x56, 0x63, 0x7e, 0x81, 0x7b, 0x94, 0xa7, 0xa4, + 0x8c, 0x7b, 0x83, 0x78, 0x5e, 0x57, 0x68, 0x80, 0x7f, 0x7e, 0x98, 0xa8, + 0xa1, 0x88, 0x7c, 0x84, 0x74, 0x5b, 0x58, 0x6c, 0x83, 0x7d, 0x81, 0x9c, + 0xa8, 0x9e, 0x84, 0x7d, 0x83, 0x70, 0x5a, 0x5a, 0x71, 0x83, 0x7b, 0x85, + 0x9f, 0xa8, 0x9a, 0x80, 0x7f, 0x83, 0x6b, 0x57, 0x5d, 0x76, 0x84, 0x7b, + 0x89, 0xa2, 0xa7, 0x95, 0x7d, 0x80, 0x80, 0x66, 0x57, 0x60, 0x7b, 0x83, + 0x7b, 0x8e, 0xa5, 0xa5, 0x91, 0x7b, 0x82, 0x7c, 0x62, 0x57, 0x64, 0x7e, + 0x81, 0x7c, 0x93, 0xa7, 0xa4, 0x8c, 0x7b, 0x84, 0x78, 0x5e, 0x57, 0x68, + 0x81, 0x7f, 0x7e, 0x98, 0xa8, 0xa1, 0x88, 0x7c, 0x84, 0x74, 0x5b, 0x58, + 0x6c, 0x83, 0x7d, 0x81, 0x9c, 0xa8, 0x9e, 0x83, 0x7c, 0x83, 0x6f, 0x59, + 0x5a, 0x71, 0x84, 0x7c, 0x85, 0x9f, 0xa7, 0x9a, 0x80, 0x7f, 0x82, 0x6a, + 0x58, 0x5d, 0x75, 0x84, 0x7b, 0x89, 0xa2, 0xa7, 0x96, 0x7d, 0x80, 0x80, + 0x66, 0x57, 0x60, 0x7a, 0x83, 0x7b, 0x8e, 0xa4, 0xa6, 0x91, 0x7b, 0x82, + 0x7c, 0x62, 0x57, 0x64, 0x7d, 0x81, 0x7d, 0x93, 0xa6, 0xa4, 0x8c, 0x7b, + 0x83, 0x78, 0x5f, 0x57, 0x68, 0x81, 0x80, 0x7e, 0x97, 0xa7, 0xa1, 0x87, + 0x7b, 0x83, 0x74, 0x5c, 0x58, 0x6d, 0x83, 0x7e, 0x81, 0x9b, 0xa8, 0x9e, + 0x83, 0x7d, 0x84, 0x6f, 0x5a, 0x5a, 0x71, 0x83, 0x7c, 0x85, 0x9f, 0xa8, + 0x9a, 0x80, 0x7f, 0x82, 0x6b, 0x58, 0x5c, 0x75, 0x84, 0x7b, 0x89, 0xa2, + 0xa7, 0x96, 0x7d, 0x80, 0x80, 0x67, 0x57, 0x60, 0x7a, 0x83, 0x7c, 0x8e, + 0xa4, 0xa6, 0x91, 0x7b, 0x82, 0x7c, 0x63, 0x57, 0x63, 0x7e, 0x82, 0x7c, + 0x92, 0xa6, 0xa3, 0x8d, 0x7b, 0x83, 0x78, 0x5f, 0x58, 0x68, 0x80, 0x80, + 0x7e, 0x97, 0xa6, 0xa1, 0x88, 0x7b, 0x84, 0x74, 0x5c, 0x59, 0x6c, 0x82, + 0x7e, 0x81, 0x9b, 0xa7, 0x9e, 0x84, 0x7d, 0x83, 0x70, 0x5a, 0x5a, 0x71, + 0x84, 0x7c, 0x84, 0x9f, 0xa7, 0x9a, 0x80, 0x7e, 0x82, 0x6b, 0x59, 0x5d, + 0x76, 0x84, 0x7c, 0x89, 0xa1, 0xa6, 0x96, 0x7d, 0x80, 0x80, 0x67, 0x58, + 0x60, 0x79, 0x83, 0x7b, 0x8d, 0xa4, 0xa5, 0x91, 0x7c, 0x82, 0x7d, 0x63, + 0x58, 0x64, 0x7d, 0x81, 0x7c, 0x92, 0xa5, 0xa3, 0x8d, 0x7b, 0x83, 0x79, + 0x60, 0x58, 0x68, 0x80, 0x80, 0x7e, 0x96, 0xa6, 0xa1, 0x88, 0x7c, 0x84, + 0x74, 0x5d, 0x5a, 0x6c, 0x82, 0x7e, 0x80, 0x9b, 0xa6, 0x9d, 0x84, 0x7d, + 0x83, 0x70, 0x5b, 0x5b, 0x71, 0x83, 0x7c, 0x84, 0x9e, 0xa6, 0x9a, 0x80, + 0x7e, 0x83, 0x6c, 0x59, 0x5e, 0x75, 0x83, 0x7b, 0x88, 0xa1, 0xa6, 0x96, + 0x7e, 0x80, 0x80, 0x68, 0x58, 0x60, 0x79, 0x83, 0x7b, 0x8d, 0xa3, 0xa5, + 0x92, 0x7c, 0x81, 0x7d, 0x64, 0x58, 0x64, 0x7d, 0x82, 0x7c, 0x91, 0xa5, + 0xa3, 0x8d, 0x7b, 0x83, 0x7a, 0x60, 0x58, 0x68, 0x80, 0x80, 0x7d, 0x95, + 0xa6, 0xa0, 0x88, 0x7c, 0x84, 0x76, 0x5e, 0x59, 0x6d, 0x82, 0x7e, 0x80, + 0x9a, 0xa6, 0x9d, 0x84, 0x7d, 0x84, 0x71, 0x5b, 0x5b, 0x71, 0x83, 0x7c, + 0x83, 0x9d, 0xa7, 0x9a, 0x81, 0x7f, 0x83, 0x6c, 0x59, 0x5d, 0x75, 0x84, + 0x7b, 0x87, 0xa1, 0xa6, 0x96, 0x7e, 0x80, 0x80, 0x69, 0x58, 0x60, 0x7a, + 0x83, 0x7b, 0x8c, 0xa3, 0xa5, 0x91, 0x7c, 0x82, 0x7e, 0x64, 0x58, 0x64, + 0x7d, 0x81, 0x7b, 0x91, 0xa5, 0xa3, 0x8c, 0x7c, 0x83, 0x7a, 0x61, 0x58, + 0x68, 0x80, 0x80, 0x7d, 0x95, 0xa6, 0xa0, 0x88, 0x7b, 0x83, 0x76, 0x5e, + 0x5a, 0x6d, 0x82, 0x7e, 0x80, 0x9a, 0xa6, 0x9d, 0x83, 0x7c, 0x83, 0x71, + 0x5b, 0x5b, 0x71, 0x84, 0x7d, 0x84, 0x9e, 0xa6, 0x9a, 0x80, 0x7e, 0x82, + 0x6c, 0x5a, 0x5e, 0x75, 0x84, 0x7b, 0x88, 0xa0, 0xa5, 0x96, 0x7d, 0x80, + 0x81, 0x68, 0x59, 0x61, 0x79, 0x83, 0x7b, 0x8c, 0xa2, 0xa4, 0x91, 0x7c, + 0x82, 0x7d, 0x64, 0x59, 0x64, 0x7d, 0x82, 0x7b, 0x91, 0xa4, 0xa2, 0x8d, + 0x7b, 0x83, 0x7a, 0x61, 0x59, 0x68, 0x80, 0x80, 0x7d, 0x96, 0xa5, 0xa0, + 0x88, 0x7b, 0x84, 0x76, 0x5e, 0x5a, 0x6c, 0x82, 0x7f, 0x80, 0x99, 0xa5, + 0x9d, 0x84, 0x7d, 0x83, 0x71, 0x5c, 0x5c, 0x70, 0x84, 0x7c, 0x84, 0x9d, + 0xa5, 0x9a, 0x81, 0x7e, 0x82, 0x6c, 0x5a, 0x5e, 0x75, 0x83, 0x7b, 0x88, + 0xa0, 0xa5, 0x95, 0x7e, 0x80, 0x80, 0x68, 0x5a, 0x61, 0x79, 0x83, 0x7b, + 0x8c, 0xa2, 0xa3, 0x91, 0x7c, 0x81, 0x7d, 0x65, 0x59, 0x64, 0x7d, 0x82, + 0x7b, 0x90, 0xa3, 0xa2, 0x8d, 0x7b, 0x83, 0x7a, 0x61, 0x5a, 0x68, 0x7f, + 0x80, 0x7d, 0x95, 0xa4, 0xa0, 0x88, 0x7c, 0x84, 0x76, 0x5f, 0x5a, 0x6c, + 0x82, 0x7e, 0x80, 0x99, 0xa5, 0x9d, 0x84, 0x7d, 0x83, 0x71, 0x5c, 0x5c, + 0x71, 0x83, 0x7c, 0x83, 0x9c, 0xa5, 0x9a, 0x80, 0x7e, 0x83, 0x6d, 0x5a, + 0x5e, 0x75, 0x83, 0x7b, 0x87, 0x9f, 0xa5, 0x96, 0x7e, 0x80, 0x81, 0x69, + 0x5a, 0x61, 0x7a, 0x83, 0x7b, 0x8b, 0xa2, 0xa4, 0x91, 0x7c, 0x81, 0x7e, + 0x65, 0x59, 0x65, 0x7d, 0x82, 0x7c, 0x90, 0xa3, 0xa2, 0x8c, 0x7b, 0x83, + 0x7a, 0x62, 0x5a, 0x68, 0x80, 0x80, 0x7d, 0x94, 0xa4, 0xa0, 0x89, 0x7c, + 0x83, 0x76, 0x5f, 0x5a, 0x6c, 0x82, 0x7e, 0x80, 0x99, 0xa5, 0x9d, 0x84, + 0x7c, 0x84, 0x72, 0x5c, 0x5c, 0x70, 0x83, 0x7d, 0x83, 0x9c, 0xa5, 0x9a, + 0x80, 0x7e, 0x82, 0x6d, 0x5b, 0x5e, 0x74, 0x84, 0x7c, 0x87, 0x9f, 0xa4, + 0x96, 0x7e, 0x80, 0x80, 0x69, 0x5a, 0x61, 0x79, 0x83, 0x7b, 0x8c, 0xa1, + 0xa4, 0x92, 0x7c, 0x81, 0x7e, 0x65, 0x5a, 0x64, 0x7c, 0x82, 0x7c, 0x90, + 0xa3, 0xa2, 0x8d, 0x7b, 0x83, 0x7a, 0x63, 0x5a, 0x68, 0x80, 0x80, 0x7d, + 0x94, 0xa4, 0xa0, 0x89, 0x7c, 0x83, 0x77, 0x5f, 0x5b, 0x6c, 0x82, 0x7e, + 0x80, 0x98, 0xa5, 0x9d, 0x84, 0x7c, 0x84, 0x72, 0x5d, 0x5d, 0x70, 0x83, + 0x7d, 0x82, 0x9b, 0xa4, 0x9a, 0x81, 0x7e, 0x82, 0x6e, 0x5c, 0x5e, 0x75, + 0x84, 0x7b, 0x87, 0x9f, 0xa5, 0x96, 0x7e, 0x7f, 0x81, 0x6a, 0x5a, 0x61, + 0x79, 0x83, 0x7b, 0x8b, 0xa0, 0xa3, 0x91, 0x7c, 0x81, 0x7e, 0x67, 0x5a, + 0x64, 0x7d, 0x82, 0x7b, 0x8f, 0xa2, 0xa1, 0x8d, 0x7c, 0x82, 0x7b, 0x63, + 0x5a, 0x68, 0x80, 0x80, 0x7d, 0x94, 0xa4, 0xa0, 0x88, 0x7b, 0x84, 0x77, + 0x5f, 0x5b, 0x6c, 0x82, 0x7e, 0x80, 0x98, 0xa4, 0x9c, 0x84, 0x7c, 0x83, + 0x72, 0x5e, 0x5c, 0x71, 0x84, 0x7d, 0x83, 0x9b, 0xa5, 0x99, 0x81, 0x7d, + 0x82, 0x6e, 0x5c, 0x5f, 0x75, 0x84, 0x7c, 0x87, 0x9e, 0xa4, 0x95, 0x7e, + 0x7f, 0x81, 0x6a, 0x5b, 0x62, 0x79, 0x83, 0x7b, 0x8b, 0xa1, 0xa3, 0x91, + 0x7c, 0x81, 0x7e, 0x66, 0x5a, 0x64, 0x7d, 0x82, 0x7c, 0x90, 0xa3, 0xa1, + 0x8d, 0x7c, 0x82, 0x7b, 0x62, 0x5b, 0x69, 0x7f, 0x80, 0x7d, 0x94, 0xa3, + 0x9f, 0x88, 0x7c, 0x83, 0x77, 0x60, 0x5c, 0x6c, 0x82, 0x7f, 0x80, 0x98, + 0xa4, 0x9c, 0x85, 0x7d, 0x83, 0x73, 0x5e, 0x5d, 0x71, 0x83, 0x7d, 0x83, + 0x9b, 0xa4, 0x99, 0x81, 0x7e, 0x83, 0x6e, 0x5b, 0x5f, 0x74, 0x83, 0x7c, + 0x86, 0x9e, 0xa3, 0x95, 0x7f, 0x80, 0x81, 0x6a, 0x5b, 0x62, 0x79, 0x83, + 0x7b, 0x8b, 0xa0, 0xa2, 0x91, 0x7d, 0x81, 0x7e, 0x66, 0x5b, 0x65, 0x7c, + 0x82, 0x7c, 0x8f, 0xa1, 0xa1, 0x8d, 0x7b, 0x83, 0x7b, 0x63, 0x5b, 0x69, + 0x7f, 0x80, 0x7d, 0x93, 0xa3, 0x9e, 0x89, 0x7c, 0x83, 0x77, 0x61, 0x5c, + 0x6c, 0x82, 0x7e, 0x7f, 0x97, 0xa4, 0x9c, 0x85, 0x7c, 0x84, 0x73, 0x5e, + 0x5d, 0x71, 0x83, 0x7d, 0x83, 0x9a, 0xa4, 0x99, 0x81, 0x7e, 0x82, 0x6f, + 0x5d, 0x5f, 0x74, 0x84, 0x7c, 0x86, 0x9e, 0xa3, 0x95, 0x7f, 0x7f, 0x81, + 0x6b, 0x5b, 0x61, 0x79, 0x83, 0x7b, 0x8a, 0xa0, 0xa3, 0x91, 0x7c, 0x81, + 0x7f, 0x67, 0x5b, 0x65, 0x7c, 0x82, 0x7c, 0x8e, 0xa1, 0xa1, 0x8d, 0x7c, + 0x82, 0x7b, 0x64, 0x5b, 0x68, 0x7f, 0x80, 0x7d, 0x93, 0xa3, 0x9f, 0x89, + 0x7c, 0x83, 0x77, 0x61, 0x5c, 0x6c, 0x81, 0x7f, 0x80, 0x97, 0xa3, 0x9c, + 0x85, 0x7c, 0x83, 0x73, 0x5e, 0x5e, 0x70, 0x83, 0x7e, 0x82, 0x9a, 0xa3, + 0x99, 0x82, 0x7d, 0x82, 0x6f, 0x5d, 0x5f, 0x74, 0x84, 0x7c, 0x86, 0x9d, + 0xa3, 0x96, 0x7e, 0x7f, 0x81, 0x6b, 0x5c, 0x62, 0x78, 0x83, 0x7c, 0x8a, + 0x9f, 0xa2, 0x91, 0x7d, 0x81, 0x7e, 0x68, 0x5b, 0x65, 0x7c, 0x82, 0x7c, + 0x8e, 0xa1, 0xa1, 0x8d, 0x7c, 0x82, 0x7b, 0x64, 0x5c, 0x68, 0x7f, 0x81, + 0x7d, 0x92, 0xa2, 0x9f, 0x88, 0x7b, 0x83, 0x78, 0x61, 0x5c, 0x6d, 0x81, + 0x7f, 0x7f, 0x96, 0xa3, 0x9c, 0x85, 0x7c, 0x83, 0x73, 0x5f, 0x5d, 0x71, + 0x83, 0x7d, 0x82, 0x9a, 0xa3, 0x99, 0x81, 0x7e, 0x82, 0x70, 0x5d, 0x60, + 0x75, 0x83, 0x7c, 0x86, 0x9c, 0xa3, 0x95, 0x7e, 0x7f, 0x81, 0x6b, 0x5c, + 0x62, 0x79, 0x83, 0x7c, 0x8a, 0x9f, 0xa2, 0x91, 0x7d, 0x81, 0x7e, 0x68, + 0x5c, 0x65, 0x7d, 0x82, 0x7b, 0x8e, 0xa1, 0xa1, 0x8d, 0x7b, 0x82, 0x7b, + 0x64, 0x5c, 0x69, 0x7f, 0x80, 0x7d, 0x92, 0xa2, 0x9f, 0x89, 0x7c, 0x83, + 0x77, 0x62, 0x5d, 0x6c, 0x81, 0x7f, 0x7f, 0x96, 0xa3, 0x9c, 0x85, 0x7d, + 0x83, 0x74, 0x5f, 0x5e, 0x70, 0x82, 0x7d, 0x82, 0x9a, 0xa3, 0x99, 0x81, + 0x7e, 0x83, 0x6f, 0x5d, 0x60, 0x74, 0x83, 0x7c, 0x86, 0x9c, 0xa2, 0x95, + 0x7f, 0x80, 0x81, 0x6c, 0x5c, 0x62, 0x78, 0x83, 0x7b, 0x8a, 0x9f, 0xa2, + 0x91, 0x7d, 0x81, 0x7f, 0x68, 0x5c, 0x65, 0x7c, 0x82, 0x7c, 0x8d, 0xa0, + 0xa0, 0x8d, 0x7c, 0x83, 0x7c, 0x65, 0x5c, 0x69, 0x7f, 0x80, 0x7d, 0x92, + 0xa2, 0x9e, 0x89, 0x7c, 0x83, 0x78, 0x62, 0x5d, 0x6c, 0x81, 0x7e, 0x7f, + 0x96, 0xa2, 0x9b, 0x85, 0x7d, 0x84, 0x74, 0x60, 0x5f, 0x71, 0x82, 0x7d, + 0x82, 0x99, 0xa2, 0x98, 0x81, 0x7e, 0x83, 0x70, 0x5e, 0x60, 0x74, 0x83, + 0x7c, 0x85, 0x9c, 0xa2, 0x95, 0x7f, 0x7f, 0x81, 0x6c, 0x5d, 0x62, 0x78, + 0x83, 0x7b, 0x89, 0x9e, 0xa1, 0x91, 0x7d, 0x81, 0x7f, 0x68, 0x5d, 0x66, + 0x7c, 0x82, 0x7c, 0x8d, 0xa0, 0xa0, 0x8d, 0x7c, 0x82, 0x7c, 0x65, 0x5d, + 0x68, 0x7f, 0x81, 0x7c, 0x92, 0xa1, 0x9e, 0x89, 0x7c, 0x83, 0x78, 0x63, + 0x5d, 0x6c, 0x80, 0x7f, 0x7f, 0x95, 0xa2, 0x9c, 0x85, 0x7d, 0x83, 0x74, + 0x60, 0x5f, 0x70, 0x82, 0x7e, 0x82, 0x99, 0xa2, 0x99, 0x82, 0x7e, 0x82, + 0x70, 0x5f, 0x60, 0x74, 0x83, 0x7c, 0x85, 0x9b, 0xa1, 0x95, 0x7f, 0x7f, + 0x81, 0x6d, 0x5d, 0x63, 0x78, 0x83, 0x7c, 0x89, 0x9d, 0xa1, 0x91, 0x7c, + 0x81, 0x7f, 0x69, 0x5d, 0x65, 0x7c, 0x83, 0x7c, 0x8d, 0x9f, 0x9f, 0x8d, + 0x7c, 0x82, 0x7c, 0x66, 0x5d, 0x69, 0x7e, 0x81, 0x7d, 0x91, 0xa0, 0x9e, + 0x89, 0x7b, 0x83, 0x79, 0x63, 0x5e, 0x6c, 0x81, 0x7f, 0x7f, 0x94, 0xa1, + 0x9c, 0x85, 0x7c, 0x83, 0x75, 0x61, 0x5f, 0x70, 0x83, 0x7d, 0x81, 0x98, + 0xa1, 0x99, 0x82, 0x7d, 0x83, 0x71, 0x5f, 0x60, 0x74, 0x83, 0x7c, 0x85, + 0x9b, 0xa1, 0x95, 0x7f, 0x7f, 0x82, 0x6d, 0x5e, 0x63, 0x78, 0x83, 0x7c, + 0x89, 0x9d, 0xa1, 0x91, 0x7d, 0x81, 0x7f, 0x69, 0x5d, 0x65, 0x7c, 0x82, + 0x7c, 0x8d, 0x9f, 0x9f, 0x8d, 0x7c, 0x82, 0x7c, 0x66, 0x5d, 0x69, 0x7f, + 0x81, 0x7d, 0x90, 0xa0, 0x9d, 0x89, 0x7c, 0x83, 0x79, 0x64, 0x5e, 0x6c, + 0x81, 0x7f, 0x7e, 0x94, 0xa1, 0x9b, 0x86, 0x7c, 0x83, 0x75, 0x61, 0x5f, + 0x70, 0x82, 0x7e, 0x81, 0x97, 0xa1, 0x99, 0x82, 0x7d, 0x83, 0x71, 0x5f, + 0x61, 0x74, 0x83, 0x7c, 0x85, 0x9b, 0xa1, 0x95, 0x7f, 0x7f, 0x81, 0x6d, + 0x5e, 0x62, 0x78, 0x83, 0x7c, 0x88, 0x9d, 0xa0, 0x91, 0x7d, 0x80, 0x7f, + 0x6a, 0x5e, 0x66, 0x7b, 0x82, 0x7c, 0x8c, 0x9e, 0x9f, 0x8d, 0x7c, 0x82, + 0x7c, 0x66, 0x5e, 0x69, 0x7e, 0x81, 0x7d, 0x90, 0xa0, 0x9d, 0x89, 0x7c, + 0x82, 0x79, 0x64, 0x5e, 0x6c, 0x81, 0x7f, 0x7f, 0x94, 0xa0, 0x9b, 0x86, + 0x7c, 0x83, 0x75, 0x62, 0x60, 0x71, 0x82, 0x7e, 0x81, 0x97, 0xa0, 0x98, + 0x82, 0x7d, 0x82, 0x71, 0x60, 0x61, 0x74, 0x84, 0x7d, 0x84, 0x9a, 0xa0, + 0x95, 0x7f, 0x7f, 0x81, 0x6e, 0x5f, 0x63, 0x78, 0x83, 0x7c, 0x88, 0x9c, + 0xa0, 0x91, 0x7d, 0x80, 0x80, 0x6a, 0x5e, 0x66, 0x7c, 0x82, 0x7c, 0x8c, + 0x9e, 0x9e, 0x8d, 0x7c, 0x82, 0x7c, 0x67, 0x5e, 0x69, 0x7f, 0x81, 0x7c, + 0x90, 0xa0, 0x9d, 0x89, 0x7c, 0x83, 0x7a, 0x64, 0x5f, 0x6d, 0x81, 0x7f, + 0x7e, 0x93, 0xa0, 0x9b, 0x86, 0x7c, 0x83, 0x76, 0x62, 0x60, 0x70, 0x82, + 0x7e, 0x81, 0x97, 0xa0, 0x98, 0x82, 0x7d, 0x82, 0x72, 0x60, 0x61, 0x74, + 0x83, 0x7d, 0x84, 0x9a, 0xa0, 0x95, 0x7f, 0x7e, 0x82, 0x6e, 0x5f, 0x64, + 0x78, 0x83, 0x7c, 0x88, 0x9c, 0x9f, 0x91, 0x7d, 0x80, 0x7f, 0x6a, 0x5f, + 0x66, 0x7b, 0x83, 0x7c, 0x8b, 0x9e, 0x9e, 0x8d, 0x7c, 0x81, 0x7d, 0x67, + 0x5f, 0x69, 0x7e, 0x81, 0x7d, 0x8f, 0x9f, 0x9d, 0x8a, 0x7b, 0x83, 0x7a, + 0x64, 0x5f, 0x6c, 0x81, 0x80, 0x7e, 0x93, 0xa0, 0x9b, 0x86, 0x7c, 0x83, + 0x76, 0x62, 0x5f, 0x70, 0x83, 0x7e, 0x80, 0x97, 0xa0, 0x98, 0x83, 0x7d, + 0x83, 0x72, 0x60, 0x62, 0x74, 0x82, 0x7d, 0x84, 0x99, 0xa0, 0x95, 0x7f, + 0x7f, 0x82, 0x6e, 0x5f, 0x63, 0x78, 0x83, 0x7c, 0x87, 0x9c, 0x9f, 0x91, + 0x7e, 0x80, 0x80, 0x6b, 0x5f, 0x66, 0x7c, 0x82, 0x7c, 0x8b, 0x9e, 0x9e, + 0x8e, 0x7c, 0x82, 0x7e, 0x68, 0x5f, 0x69, 0x7e, 0x81, 0x7c, 0x8f, 0x9f, + 0x9d, 0x89, 0x7b, 0x83, 0x7a, 0x65, 0x5f, 0x6c, 0x81, 0x80, 0x7e, 0x92, + 0xa0, 0x9a, 0x86, 0x7c, 0x83, 0x77, 0x63, 0x60, 0x70, 0x82, 0x7e, 0x80, + 0x96, 0xa0, 0x98, 0x82, 0x7d, 0x83, 0x73, 0x61, 0x62, 0x74, 0x83, 0x7d, + 0x84, 0x99, 0x9f, 0x95, 0x80, 0x7f, 0x81, 0x6f, 0x60, 0x63, 0x78, 0x83, + 0x7c, 0x87, 0x9b, 0x9f, 0x91, 0x7e, 0x80, 0x80, 0x6b, 0x60, 0x66, 0x7b, + 0x82, 0x7c, 0x8b, 0x9d, 0x9e, 0x8e, 0x7c, 0x82, 0x7d, 0x68, 0x5f, 0x69, + 0x7e, 0x81, 0x7c, 0x8f, 0x9f, 0x9c, 0x8a, 0x7c, 0x83, 0x7a, 0x65, 0x5f, + 0x6d, 0x81, 0x7f, 0x7e, 0x93, 0x9f, 0x9a, 0x86, 0x7c, 0x83, 0x76, 0x63, + 0x60, 0x70, 0x82, 0x7e, 0x81, 0x96, 0x9f, 0x98, 0x83, 0x7e, 0x83, 0x72, + 0x61, 0x62, 0x74, 0x83, 0x7c, 0x83, 0x99, 0x9f, 0x95, 0x80, 0x7f, 0x82, + 0x6f, 0x60, 0x64, 0x78, 0x83, 0x7c, 0x87, 0x9b, 0x9f, 0x91, 0x7d, 0x80, + 0x80, 0x6b, 0x5f, 0x67, 0x7b, 0x82, 0x7c, 0x8b, 0x9d, 0x9e, 0x8d, 0x7c, + 0x82, 0x7d, 0x68, 0x5f, 0x69, 0x7e, 0x81, 0x7c, 0x8f, 0x9e, 0x9c, 0x8a, + 0x7c, 0x82, 0x7a, 0x66, 0x60, 0x6d, 0x80, 0x80, 0x7e, 0x92, 0x9e, 0x9a, + 0x86, 0x7c, 0x83, 0x77, 0x63, 0x61, 0x70, 0x82, 0x7e, 0x81, 0x95, 0x9e, + 0x97, 0x83, 0x7d, 0x83, 0x73, 0x62, 0x62, 0x74, 0x83, 0x7d, 0x83, 0x98, + 0x9f, 0x94, 0x80, 0x7e, 0x81, 0x6f, 0x61, 0x65, 0x77, 0x83, 0x7c, 0x87, + 0x9a, 0x9e, 0x91, 0x7e, 0x80, 0x7f, 0x6c, 0x60, 0x67, 0x7b, 0x82, 0x7c, + 0x8b, 0x9c, 0x9d, 0x8d, 0x7d, 0x82, 0x7d, 0x69, 0x60, 0x6a, 0x7e, 0x81, + 0x7d, 0x8e, 0x9d, 0x9c, 0x8a, 0x7c, 0x83, 0x7a, 0x66, 0x60, 0x6d, 0x80, + 0x7f, 0x7e, 0x92, 0x9e, 0x9a, 0x86, 0x7d, 0x83, 0x76, 0x64, 0x61, 0x70, + 0x82, 0x7e, 0x80, 0x96, 0x9f, 0x97, 0x83, 0x7d, 0x82, 0x73, 0x62, 0x63, + 0x74, 0x83, 0x7d, 0x84, 0x98, 0x9e, 0x94, 0x80, 0x7f, 0x82, 0x6f, 0x61, + 0x65, 0x78, 0x83, 0x7c, 0x87, 0x9a, 0x9e, 0x91, 0x7e, 0x80, 0x80, 0x6c, + 0x60, 0x67, 0x7b, 0x82, 0x7c, 0x8a, 0x9c, 0x9d, 0x8d, 0x7d, 0x81, 0x7d, + 0x69, 0x60, 0x6a, 0x7d, 0x81, 0x7d, 0x8e, 0x9d, 0x9b, 0x8a, 0x7c, 0x82, + 0x7a, 0x67, 0x60, 0x6d, 0x80, 0x80, 0x7e, 0x92, 0x9e, 0x99, 0x86, 0x7c, + 0x82, 0x77, 0x65, 0x61, 0x70, 0x82, 0x7e, 0x81, 0x95, 0x9e, 0x97, 0x83, + 0x7d, 0x83, 0x73, 0x62, 0x63, 0x74, 0x83, 0x7d, 0x84, 0x97, 0x9e, 0x94, + 0x80, 0x7e, 0x81, 0x70, 0x62, 0x65, 0x78, 0x83, 0x7c, 0x86, 0x9a, 0x9e, + 0x91, 0x7e, 0x80, 0x80, 0x6d, 0x61, 0x67, 0x7b, 0x82, 0x7c, 0x8a, 0x9b, + 0x9d, 0x8d, 0x7d, 0x81, 0x7e, 0x6a, 0x61, 0x6a, 0x7e, 0x81, 0x7d, 0x8e, + 0x9d, 0x9b, 0x8a, 0x7c, 0x82, 0x7a, 0x67, 0x61, 0x6d, 0x80, 0x80, 0x7e, + 0x91, 0x9e, 0x99, 0x86, 0x7c, 0x83, 0x77, 0x65, 0x62, 0x71, 0x82, 0x7e, + 0x80, 0x94, 0x9e, 0x97, 0x83, 0x7d, 0x83, 0x74, 0x63, 0x63, 0x74, 0x83, + 0x7d, 0x83, 0x97, 0x9e, 0x94, 0x80, 0x7f, 0x82, 0x70, 0x62, 0x65, 0x77, + 0x83, 0x7c, 0x86, 0x99, 0x9d, 0x91, 0x7e, 0x80, 0x80, 0x6d, 0x61, 0x67, + 0x7b, 0x82, 0x7c, 0x8a, 0x9b, 0x9d, 0x8d, 0x7d, 0x81, 0x7d, 0x6a, 0x61, + 0x6a, 0x7e, 0x81, 0x7c, 0x8d, 0x9d, 0x9b, 0x8a, 0x7c, 0x82, 0x7b, 0x67, + 0x61, 0x6d, 0x80, 0x80, 0x7e, 0x91, 0x9d, 0x9a, 0x86, 0x7c, 0x83, 0x77, + 0x65, 0x62, 0x70, 0x82, 0x7e, 0x80, 0x94, 0x9e, 0x97, 0x83, 0x7d, 0x82, + 0x74, 0x63, 0x63, 0x74, 0x83, 0x7d, 0x83, 0x97, 0x9e, 0x94, 0x80, 0x7e, + 0x82, 0x71, 0x62, 0x65, 0x77, 0x82, 0x7c, 0x86, 0x99, 0x9d, 0x91, 0x7e, + 0x80, 0x80, 0x6d, 0x62, 0x67, 0x7a, 0x82, 0x7c, 0x89, 0x9b, 0x9c, 0x8d, + 0x7d, 0x81, 0x7e, 0x6a, 0x61, 0x6a, 0x7e, 0x81, 0x7d, 0x8d, 0x9c, 0x9b, + 0x8a, 0x7c, 0x82, 0x7b, 0x67, 0x61, 0x6d, 0x80, 0x80, 0x7e, 0x91, 0x9d, + 0x99, 0x86, 0x7c, 0x82, 0x77, 0x66, 0x62, 0x70, 0x82, 0x7f, 0x80, 0x94, + 0x9d, 0x97, 0x83, 0x7d, 0x83, 0x74, 0x64, 0x64, 0x74, 0x82, 0x7d, 0x83, + 0x96, 0x9d, 0x94, 0x80, 0x7e, 0x82, 0x71, 0x62, 0x65, 0x77, 0x83, 0x7c, + 0x86, 0x99, 0x9d, 0x91, 0x7e, 0x80, 0x80, 0x6e, 0x62, 0x67, 0x7b, 0x82, + 0x7c, 0x89, 0x9b, 0x9c, 0x8d, 0x7d, 0x81, 0x7e, 0x6a, 0x61, 0x6a, 0x7d, + 0x81, 0x7d, 0x8d, 0x9c, 0x9b, 0x8a, 0x7c, 0x82, 0x7b, 0x68, 0x62, 0x6d, + 0x80, 0x80, 0x7e, 0x90, 0x9d, 0x99, 0x87, 0x7c, 0x82, 0x78, 0x66, 0x62, + 0x70, 0x82, 0x7e, 0x80, 0x93, 0x9d, 0x97, 0x83, 0x7d, 0x83, 0x75, 0x64, + 0x64, 0x74, 0x82, 0x7e, 0x83, 0x96, 0x9d, 0x94, 0x80, 0x7e, 0x81, 0x71, + 0x63, 0x65, 0x78, 0x83, 0x7c, 0x85, 0x98, 0x9c, 0x90, 0x7e, 0x7f, 0x80, + 0x6e, 0x62, 0x68, 0x7b, 0x82, 0x7c, 0x89, 0x9a, 0x9c, 0x8d, 0x7d, 0x81, + 0x7e, 0x6b, 0x62, 0x6b, 0x7d, 0x81, 0x7d, 0x8c, 0x9b, 0x9a, 0x8a, 0x7c, + 0x82, 0x7b, 0x69, 0x62, 0x6e, 0x80, 0x80, 0x7e, 0x90, 0x9c, 0x98, 0x86, + 0x7c, 0x83, 0x78, 0x66, 0x63, 0x71, 0x81, 0x7f, 0x80, 0x93, 0x9c, 0x96, + 0x83, 0x7d, 0x83, 0x75, 0x65, 0x64, 0x74, 0x82, 0x7d, 0x82, 0x96, 0x9c, + 0x93, 0x81, 0x7e, 0x82, 0x72, 0x63, 0x66, 0x77, 0x82, 0x7c, 0x85, 0x98, + 0x9c, 0x90, 0x7e, 0x80, 0x81, 0x6e, 0x62, 0x68, 0x7b, 0x82, 0x7c, 0x89, + 0x9a, 0x9b, 0x8d, 0x7d, 0x81, 0x7e, 0x6b, 0x62, 0x6b, 0x7e, 0x82, 0x7c, + 0x8c, 0x9b, 0x9a, 0x8a, 0x7c, 0x82, 0x7c, 0x69, 0x63, 0x6e, 0x80, 0x80, + 0x7e, 0x90, 0x9c, 0x98, 0x86, 0x7c, 0x83, 0x78, 0x66, 0x63, 0x71, 0x81, + 0x7f, 0x80, 0x93, 0x9c, 0x96, 0x83, 0x7d, 0x82, 0x75, 0x65, 0x64, 0x74, + 0x82, 0x7d, 0x82, 0x95, 0x9d, 0x93, 0x80, 0x7e, 0x82, 0x72, 0x63, 0x66, + 0x78, 0x83, 0x7d, 0x85, 0x97, 0x9c, 0x90, 0x7e, 0x80, 0x80, 0x6f, 0x63, + 0x68, 0x7b, 0x82, 0x7c, 0x88, 0x9a, 0x9b, 0x8d, 0x7d, 0x81, 0x7e, 0x6c, + 0x62, 0x6b, 0x7d, 0x81, 0x7d, 0x8c, 0x9b, 0x9a, 0x8a, 0x7c, 0x82, 0x7c, + 0x69, 0x63, 0x6e, 0x80, 0x80, 0x7e, 0x8f, 0x9b, 0x98, 0x86, 0x7d, 0x83, + 0x78, 0x67, 0x64, 0x71, 0x81, 0x7f, 0x7f, 0x92, 0x9c, 0x96, 0x83, 0x7d, + 0x83, 0x75, 0x65, 0x65, 0x74, 0x82, 0x7d, 0x82, 0x95, 0x9c, 0x93, 0x81, + 0x7e, 0x82, 0x72, 0x64, 0x67, 0x77, 0x82, 0x7d, 0x85, 0x97, 0x9b, 0x90, + 0x7f, 0x80, 0x80, 0x6f, 0x63, 0x68, 0x7b, 0x82, 0x7c, 0x88, 0x99, 0x9b, + 0x8d, 0x7d, 0x81, 0x7f, 0x6c, 0x63, 0x6b, 0x7d, 0x81, 0x7d, 0x8c, 0x9a, + 0x99, 0x8a, 0x7d, 0x82, 0x7c, 0x6a, 0x63, 0x6e, 0x7f, 0x80, 0x7d, 0x8f, + 0x9b, 0x97, 0x87, 0x7d, 0x82, 0x79, 0x67, 0x64, 0x71, 0x81, 0x7f, 0x80, + 0x92, 0x9b, 0x96, 0x83, 0x7d, 0x83, 0x76, 0x65, 0x65, 0x74, 0x82, 0x7e, + 0x82, 0x94, 0x9b, 0x93, 0x81, 0x7e, 0x82, 0x72, 0x65, 0x66, 0x77, 0x82, + 0x7c, 0x85, 0x97, 0x9b, 0x90, 0x7f, 0x7f, 0x80, 0x6f, 0x63, 0x68, 0x7a, + 0x82, 0x7c, 0x88, 0x99, 0x9a, 0x8d, 0x7d, 0x81, 0x7e, 0x6c, 0x63, 0x6b, + 0x7d, 0x82, 0x7d, 0x8b, 0x9a, 0x99, 0x8a, 0x7d, 0x81, 0x7c, 0x6a, 0x64, + 0x6e, 0x7f, 0x80, 0x7e, 0x8f, 0x9b, 0x98, 0x87, 0x7c, 0x82, 0x79, 0x67, + 0x64, 0x71, 0x81, 0x7f, 0x7f, 0x92, 0x9b, 0x96, 0x84, 0x7d, 0x82, 0x76, + 0x66, 0x65, 0x74, 0x82, 0x7e, 0x81, 0x95, 0x9b, 0x93, 0x81, 0x7e, 0x82, + 0x73, 0x65, 0x67, 0x77, 0x83, 0x7d, 0x85, 0x96, 0x9b, 0x90, 0x7e, 0x7f, + 0x81, 0x6f, 0x64, 0x69, 0x7a, 0x82, 0x7d, 0x88, 0x98, 0x9a, 0x8d, 0x7d, + 0x81, 0x7e, 0x6d, 0x63, 0x6b, 0x7d, 0x81, 0x7c, 0x8b, 0x9a, 0x99, 0x8a, + 0x7d, 0x82, 0x7c, 0x6a, 0x64, 0x6e, 0x7f, 0x80, 0x7e, 0x8e, 0x9a, 0x98, + 0x87, 0x7d, 0x83, 0x79, 0x68, 0x65, 0x71, 0x81, 0x7f, 0x7f, 0x92, 0x9b, + 0x95, 0x83, 0x7d, 0x82, 0x76, 0x66, 0x65, 0x74, 0x82, 0x7d, 0x82, 0x94, + 0x9b, 0x93, 0x81, 0x7e, 0x82, 0x73, 0x65, 0x67, 0x77, 0x82, 0x7d, 0x85, + 0x96, 0x9b, 0x90, 0x7f, 0x80, 0x80, 0x70, 0x64, 0x69, 0x7a, 0x82, 0x7c, + 0x88, 0x98, 0x9a, 0x8d, 0x7e, 0x81, 0x7f, 0x6d, 0x64, 0x6b, 0x7d, 0x81, + 0x7d, 0x8b, 0x99, 0x99, 0x8a, 0x7c, 0x82, 0x7c, 0x6a, 0x64, 0x6e, 0x7f, + 0x80, 0x7e, 0x8e, 0x9a, 0x97, 0x87, 0x7d, 0x82, 0x79, 0x69, 0x65, 0x71, + 0x81, 0x7f, 0x7f, 0x91, 0x9a, 0x95, 0x84, 0x7d, 0x82, 0x76, 0x67, 0x66, + 0x74, 0x82, 0x7d, 0x82, 0x94, 0x9b, 0x93, 0x81, 0x7e, 0x82, 0x73, 0x65, + 0x67, 0x77, 0x82, 0x7d, 0x84, 0x96, 0x9a, 0x90, 0x7f, 0x7f, 0x80, 0x70, + 0x65, 0x69, 0x7a, 0x82, 0x7c, 0x88, 0x98, 0x9a, 0x8d, 0x7d, 0x80, 0x7f, + 0x6d, 0x64, 0x6b, 0x7d, 0x81, 0x7d, 0x8b, 0x99, 0x98, 0x8a, 0x7c, 0x82, + 0x7c, 0x6b, 0x64, 0x6e, 0x7f, 0x80, 0x7d, 0x8e, 0x9a, 0x97, 0x87, 0x7c, + 0x82, 0x7a, 0x69, 0x65, 0x71, 0x81, 0x7f, 0x7f, 0x91, 0x9a, 0x96, 0x84, + 0x7d, 0x83, 0x76, 0x67, 0x66, 0x74, 0x82, 0x7e, 0x81, 0x93, 0x9a, 0x93, + 0x81, 0x7e, 0x82, 0x73, 0x66, 0x67, 0x77, 0x83, 0x7d, 0x84, 0x96, 0x9a, + 0x90, 0x7f, 0x7f, 0x81, 0x70, 0x65, 0x69, 0x7a, 0x82, 0x7d, 0x87, 0x97, + 0x99, 0x8d, 0x7d, 0x80, 0x7f, 0x6e, 0x65, 0x6c, 0x7d, 0x82, 0x7d, 0x8a, + 0x98, 0x98, 0x8a, 0x7d, 0x81, 0x7c, 0x6b, 0x65, 0x6e, 0x7f, 0x80, 0x7e, + 0x8d, 0x99, 0x97, 0x87, 0x7c, 0x82, 0x7a, 0x69, 0x65, 0x71, 0x81, 0x7f, + 0x7f, 0x90, 0x9a, 0x95, 0x84, 0x7d, 0x82, 0x77, 0x68, 0x66, 0x74, 0x82, + 0x7e, 0x81, 0x93, 0x9a, 0x93, 0x81, 0x7e, 0x82, 0x74, 0x66, 0x67, 0x77, + 0x82, 0x7d, 0x84, 0x95, 0x9a, 0x90, 0x7f, 0x7f, 0x81, 0x71, 0x65, 0x69, + 0x7a, 0x82, 0x7d, 0x87, 0x97, 0x99, 0x8d, 0x7e, 0x80, 0x7f, 0x6e, 0x65, + 0x6b, 0x7d, 0x82, 0x7d, 0x8a, 0x98, 0x98, 0x8a, 0x7d, 0x81, 0x7d, 0x6c, + 0x65, 0x6e, 0x7f, 0x80, 0x7e, 0x8d, 0x99, 0x97, 0x87, 0x7c, 0x82, 0x7a, + 0x6a, 0x66, 0x71, 0x81, 0x7f, 0x7f, 0x90, 0x99, 0x94, 0x84, 0x7d, 0x82, + 0x77, 0x68, 0x66, 0x74, 0x82, 0x7e, 0x81, 0x92, 0x99, 0x92, 0x81, 0x7e, + 0x82, 0x74, 0x67, 0x68, 0x77, 0x82, 0x7d, 0x84, 0x94, 0x99, 0x90, 0x7f, + 0x7f, 0x81, 0x71, 0x66, 0x69, 0x7a, 0x82, 0x7d, 0x87, 0x96, 0x98, 0x8d, + 0x7e, 0x80, 0x7f, 0x6e, 0x66, 0x6c, 0x7d, 0x81, 0x7d, 0x8a, 0x97, 0x98, + 0x8a, 0x7d, 0x81, 0x7d, 0x6c, 0x66, 0x6f, 0x7f, 0x80, 0x7e, 0x8d, 0x98, + 0x96, 0x87, 0x7d, 0x82, 0x7a, 0x6a, 0x66, 0x71, 0x81, 0x7f, 0x7f, 0x90, + 0x99, 0x94, 0x84, 0x7d, 0x82, 0x77, 0x68, 0x67, 0x74, 0x82, 0x7e, 0x81, + 0x92, 0x99, 0x92, 0x81, 0x7e, 0x82, 0x74, 0x67, 0x68, 0x77, 0x82, 0x7d, + 0x84, 0x94, 0x99, 0x90, 0x7f, 0x7f, 0x80, 0x71, 0x66, 0x6a, 0x7a, 0x82, + 0x7d, 0x87, 0x96, 0x98, 0x8d, 0x7e, 0x80, 0x7f, 0x6f, 0x66, 0x6c, 0x7d, + 0x81, 0x7d, 0x8a, 0x97, 0x97, 0x8a, 0x7d, 0x81, 0x7d, 0x6c, 0x66, 0x6e, + 0x7f, 0x81, 0x7e, 0x8d, 0x98, 0x96, 0x87, 0x7d, 0x82, 0x7a, 0x6a, 0x67, + 0x71, 0x81, 0x7f, 0x7f, 0x8f, 0x98, 0x94, 0x84, 0x7d, 0x82, 0x77, 0x69, + 0x68, 0x74, 0x82, 0x7e, 0x81, 0x92, 0x98, 0x92, 0x81, 0x7e, 0x82, 0x74, + 0x67, 0x68, 0x77, 0x82, 0x7d, 0x84, 0x94, 0x99, 0x8f, 0x7f, 0x7f, 0x81, + 0x72, 0x67, 0x6a, 0x7a, 0x82, 0x7d, 0x87, 0x95, 0x98, 0x8d, 0x7e, 0x81, + 0x7f, 0x6f, 0x66, 0x6c, 0x7c, 0x81, 0x7d, 0x89, 0x97, 0x97, 0x8a, 0x7d, + 0x81, 0x7d, 0x6d, 0x66, 0x6e, 0x7f, 0x80, 0x7d, 0x8c, 0x98, 0x96, 0x87, + 0x7d, 0x82, 0x7b, 0x6b, 0x67, 0x71, 0x80, 0x7f, 0x7f, 0x8f, 0x98, 0x94, + 0x84, 0x7d, 0x82, 0x78, 0x69, 0x67, 0x74, 0x82, 0x7e, 0x81, 0x91, 0x98, + 0x92, 0x82, 0x7e, 0x82, 0x75, 0x68, 0x69, 0x77, 0x82, 0x7d, 0x83, 0x93, + 0x98, 0x90, 0x7f, 0x7f, 0x81, 0x72, 0x67, 0x6a, 0x7a, 0x82, 0x7d, 0x86, + 0x95, 0x98, 0x8d, 0x7e, 0x80, 0x7f, 0x6f, 0x66, 0x6c, 0x7c, 0x81, 0x7d, + 0x89, 0x97, 0x97, 0x8a, 0x7d, 0x81, 0x7d, 0x6d, 0x66, 0x6f, 0x7f, 0x80, + 0x7e, 0x8c, 0x97, 0x96, 0x87, 0x7d, 0x82, 0x7b, 0x6b, 0x67, 0x71, 0x80, + 0x7f, 0x7f, 0x8e, 0x98, 0x94, 0x84, 0x7d, 0x82, 0x78, 0x6a, 0x68, 0x74, + 0x81, 0x7e, 0x81, 0x91, 0x98, 0x92, 0x82, 0x7e, 0x82, 0x75, 0x68, 0x69, + 0x77, 0x82, 0x7d, 0x83, 0x93, 0x98, 0x8f, 0x7f, 0x7f, 0x81, 0x72, 0x67, + 0x6b, 0x7a, 0x82, 0x7d, 0x86, 0x95, 0x97, 0x8d, 0x7e, 0x80, 0x7f, 0x70, + 0x67, 0x6d, 0x7c, 0x81, 0x7d, 0x89, 0x96, 0x96, 0x8a, 0x7d, 0x81, 0x7e, + 0x6d, 0x67, 0x6f, 0x7e, 0x81, 0x7e, 0x8c, 0x97, 0x95, 0x87, 0x7d, 0x82, + 0x7b, 0x6b, 0x67, 0x71, 0x81, 0x7f, 0x7f, 0x8f, 0x98, 0x93, 0x84, 0x7d, + 0x82, 0x78, 0x6a, 0x68, 0x74, 0x81, 0x7e, 0x81, 0x91, 0x97, 0x92, 0x82, + 0x7e, 0x82, 0x75, 0x69, 0x69, 0x77, 0x82, 0x7d, 0x83, 0x93, 0x97, 0x8f, + 0x80, 0x7f, 0x81, 0x73, 0x68, 0x6b, 0x7a, 0x82, 0x7d, 0x86, 0x95, 0x97, + 0x8c, 0x7e, 0x80, 0x7f, 0x70, 0x67, 0x6d, 0x7c, 0x81, 0x7d, 0x89, 0x96, + 0x96, 0x89, 0x7d, 0x81, 0x7d, 0x6e, 0x67, 0x6f, 0x7f, 0x81, 0x7d, 0x8b, + 0x97, 0x95, 0x87, 0x7d, 0x81, 0x7b, 0x6c, 0x68, 0x72, 0x80, 0x7f, 0x7f, + 0x8e, 0x97, 0x94, 0x84, 0x7d, 0x82, 0x78, 0x6a, 0x68, 0x74, 0x81, 0x7f, + 0x81, 0x91, 0x97, 0x91, 0x82, 0x7e, 0x81, 0x76, 0x69, 0x69, 0x77, 0x82, + 0x7e, 0x83, 0x93, 0x97, 0x8f, 0x80, 0x7f, 0x81, 0x73, 0x68, 0x6b, 0x7a, + 0x82, 0x7d, 0x86, 0x94, 0x97, 0x8c, 0x7e, 0x80, 0x7f, 0x70, 0x68, 0x6d, + 0x7c, 0x81, 0x7d, 0x89, 0x95, 0x96, 0x8a, 0x7d, 0x81, 0x7d, 0x6e, 0x68, + 0x6f, 0x7f, 0x81, 0x7e, 0x8b, 0x96, 0x95, 0x87, 0x7d, 0x81, 0x7b, 0x6c, + 0x68, 0x72, 0x80, 0x80, 0x7f, 0x8e, 0x97, 0x93, 0x84, 0x7d, 0x82, 0x78, + 0x6b, 0x69, 0x74, 0x82, 0x7e, 0x81, 0x90, 0x97, 0x91, 0x82, 0x7e, 0x82, + 0x76, 0x69, 0x6a, 0x77, 0x82, 0x7e, 0x83, 0x92, 0x97, 0x8f, 0x7f, 0x7f, + 0x81, 0x73, 0x68, 0x6b, 0x7a, 0x82, 0x7d, 0x85, 0x94, 0x96, 0x8c, 0x7e, + 0x80, 0x7f, 0x71, 0x68, 0x6d, 0x7d, 0x82, 0x7d, 0x88, 0x95, 0x95, 0x8a, + 0x7d, 0x81, 0x7e, 0x6e, 0x68, 0x6f, 0x7f, 0x81, 0x7e, 0x8b, 0x96, 0x95, + 0x87, 0x7d, 0x82, 0x7b, 0x6c, 0x68, 0x72, 0x80, 0x80, 0x7e, 0x8d, 0x96, + 0x93, 0x84, 0x7d, 0x82, 0x79, 0x6b, 0x69, 0x74, 0x82, 0x7e, 0x80, 0x90, + 0x96, 0x91, 0x82, 0x7e, 0x82, 0x76, 0x6a, 0x6a, 0x77, 0x82, 0x7d, 0x82, + 0x92, 0x96, 0x8f, 0x80, 0x7f, 0x81, 0x74, 0x69, 0x6c, 0x7a, 0x82, 0x7d, + 0x85, 0x93, 0x96, 0x8c, 0x7e, 0x80, 0x80, 0x71, 0x68, 0x6e, 0x7c, 0x82, + 0x7d, 0x88, 0x94, 0x95, 0x89, 0x7d, 0x81, 0x7e, 0x6f, 0x68, 0x70, 0x7e, + 0x81, 0x7d, 0x8a, 0x95, 0x94, 0x87, 0x7d, 0x82, 0x7c, 0x6d, 0x69, 0x72, + 0x80, 0x80, 0x7e, 0x8d, 0x96, 0x93, 0x84, 0x7d, 0x82, 0x79, 0x6b, 0x69, + 0x74, 0x81, 0x7e, 0x80, 0x8f, 0x96, 0x91, 0x82, 0x7e, 0x82, 0x76, 0x6a, + 0x6b, 0x77, 0x82, 0x7d, 0x82, 0x91, 0x96, 0x8f, 0x80, 0x7f, 0x81, 0x74, + 0x69, 0x6c, 0x7a, 0x82, 0x7d, 0x85, 0x93, 0x96, 0x8c, 0x7e, 0x80, 0x80, + 0x71, 0x69, 0x6e, 0x7c, 0x81, 0x7d, 0x88, 0x94, 0x95, 0x8a, 0x7e, 0x81, + 0x7e, 0x6f, 0x69, 0x70, 0x7e, 0x81, 0x7d, 0x8a, 0x95, 0x94, 0x87, 0x7d, + 0x81, 0x7c, 0x6d, 0x69, 0x72, 0x80, 0x80, 0x7f, 0x8d, 0x96, 0x93, 0x84, + 0x7d, 0x82, 0x79, 0x6b, 0x6a, 0x75, 0x81, 0x7f, 0x80, 0x8f, 0x96, 0x91, + 0x82, 0x7e, 0x82, 0x77, 0x6b, 0x6a, 0x77, 0x82, 0x7e, 0x82, 0x91, 0x96, + 0x8f, 0x80, 0x7f, 0x81, 0x74, 0x6a, 0x6c, 0x7a, 0x82, 0x7d, 0x85, 0x92, + 0x95, 0x8c, 0x7e, 0x80, 0x80, 0x72, 0x69, 0x6e, 0x7c, 0x82, 0x7d, 0x87, + 0x94, 0x94, 0x8a, 0x7d, 0x81, 0x7e, 0x70, 0x69, 0x70, 0x7e, 0x81, 0x7e, + 0x8a, 0x94, 0x94, 0x87, 0x7d, 0x82, 0x7c, 0x6e, 0x6a, 0x72, 0x7f, 0x80, + 0x7f, 0x8c, 0x95, 0x92, 0x85, 0x7d, 0x82, 0x79, 0x6c, 0x6a, 0x74, 0x81, + 0x7e, 0x80, 0x8f, 0x95, 0x90, 0x82, 0x7e, 0x82, 0x77, 0x6b, 0x6b, 0x77, + 0x82, 0x7e, 0x82, 0x90, 0x95, 0x8f, 0x80, 0x7f, 0x81, 0x74, 0x6a, 0x6c, + 0x7a, 0x82, 0x7d, 0x84, 0x92, 0x95, 0x8c, 0x7e, 0x80, 0x80, 0x72, 0x6a, + 0x6e, 0x7c, 0x82, 0x7d, 0x87, 0x94, 0x94, 0x89, 0x7d, 0x81, 0x7e, 0x70, + 0x69, 0x70, 0x7e, 0x81, 0x7e, 0x8a, 0x94, 0x93, 0x87, 0x7d, 0x82, 0x7c, + 0x6e, 0x6a, 0x72, 0x80, 0x80, 0x7e, 0x8c, 0x95, 0x92, 0x84, 0x7d, 0x82, + 0x7a, 0x6c, 0x6a, 0x75, 0x81, 0x7f, 0x80, 0x8e, 0x95, 0x90, 0x82, 0x7e, + 0x82, 0x77, 0x6b, 0x6b, 0x77, 0x82, 0x7e, 0x82, 0x90, 0x95, 0x8e, 0x80, + 0x7f, 0x81, 0x75, 0x6a, 0x6c, 0x7a, 0x82, 0x7d, 0x84, 0x92, 0x95, 0x8c, + 0x7e, 0x80, 0x80, 0x72, 0x6a, 0x6e, 0x7c, 0x82, 0x7d, 0x87, 0x93, 0x94, + 0x89, 0x7d, 0x81, 0x7e, 0x70, 0x6a, 0x70, 0x7e, 0x81, 0x7e, 0x89, 0x94, + 0x93, 0x87, 0x7d, 0x81, 0x7c, 0x6e, 0x6a, 0x72, 0x80, 0x80, 0x7e, 0x8c, + 0x95, 0x92, 0x84, 0x7d, 0x82, 0x7a, 0x6d, 0x6b, 0x75, 0x81, 0x7f, 0x80, + 0x8e, 0x95, 0x90, 0x82, 0x7e, 0x82, 0x77, 0x6b, 0x6b, 0x77, 0x82, 0x7e, + 0x82, 0x90, 0x95, 0x8e, 0x80, 0x7e, 0x81, 0x75, 0x6b, 0x6c, 0x7a, 0x82, + 0x7d, 0x84, 0x92, 0x94, 0x8c, 0x7e, 0x80, 0x80, 0x72, 0x6a, 0x6f, 0x7c, + 0x81, 0x7d, 0x87, 0x93, 0x94, 0x89, 0x7d, 0x81, 0x7e, 0x70, 0x6a, 0x70, + 0x7e, 0x81, 0x7d, 0x89, 0x94, 0x93, 0x87, 0x7d, 0x81, 0x7c, 0x6f, 0x6a, + 0x72, 0x80, 0x80, 0x7e, 0x8c, 0x94, 0x92, 0x84, 0x7d, 0x82, 0x7a, 0x6d, + 0x6b, 0x75, 0x81, 0x7f, 0x80, 0x8e, 0x94, 0x90, 0x82, 0x7e, 0x82, 0x78, + 0x6c, 0x6c, 0x77, 0x82, 0x7e, 0x81, 0x90, 0x95, 0x8e, 0x80, 0x7f, 0x81, + 0x75, 0x6b, 0x6d, 0x7a, 0x82, 0x7d, 0x84, 0x91, 0x94, 0x8c, 0x7e, 0x80, + 0x80, 0x73, 0x6a, 0x6f, 0x7c, 0x82, 0x7d, 0x86, 0x93, 0x93, 0x89, 0x7e, + 0x80, 0x7e, 0x71, 0x6a, 0x70, 0x7e, 0x81, 0x7d, 0x89, 0x93, 0x92, 0x87, + 0x7d, 0x81, 0x7c, 0x6f, 0x6b, 0x73, 0x80, 0x80, 0x7e, 0x8b, 0x94, 0x91, + 0x84, 0x7d, 0x82, 0x7a, 0x6d, 0x6b, 0x75, 0x81, 0x7f, 0x7f, 0x8d, 0x94, + 0x8f, 0x82, 0x7e, 0x82, 0x78, 0x6c, 0x6c, 0x77, 0x81, 0x7e, 0x82, 0x8f, + 0x94, 0x8e, 0x80, 0x7f, 0x81, 0x75, 0x6b, 0x6d, 0x7a, 0x82, 0x7e, 0x84, + 0x91, 0x94, 0x8c, 0x7f, 0x80, 0x80, 0x73, 0x6b, 0x6f, 0x7c, 0x81, 0x7d, + 0x86, 0x92, 0x93, 0x89, 0x7e, 0x81, 0x7e, 0x71, 0x6b, 0x71, 0x7e, 0x81, + 0x7e, 0x89, 0x93, 0x93, 0x87, 0x7d, 0x81, 0x7c, 0x6f, 0x6b, 0x73, 0x7f, + 0x80, 0x7e, 0x8b, 0x93, 0x91, 0x84, 0x7d, 0x81, 0x7a, 0x6e, 0x6b, 0x75, + 0x81, 0x7f, 0x80, 0x8d, 0x94, 0x90, 0x82, 0x7e, 0x82, 0x78, 0x6c, 0x6c, + 0x77, 0x81, 0x7e, 0x81, 0x8f, 0x94, 0x8e, 0x80, 0x7f, 0x81, 0x76, 0x6c, + 0x6d, 0x79, 0x81, 0x7d, 0x83, 0x91, 0x93, 0x8c, 0x7f, 0x80, 0x80, 0x74, + 0x6b, 0x6f, 0x7c, 0x81, 0x7d, 0x86, 0x92, 0x93, 0x89, 0x7e, 0x80, 0x7f, + 0x71, 0x6b, 0x71, 0x7e, 0x81, 0x7d, 0x88, 0x93, 0x92, 0x87, 0x7d, 0x81, + 0x7d, 0x70, 0x6b, 0x72, 0x80, 0x80, 0x7e, 0x8b, 0x93, 0x91, 0x85, 0x7d, + 0x81, 0x7b, 0x6e, 0x6c, 0x75, 0x81, 0x7f, 0x80, 0x8d, 0x93, 0x90, 0x82, + 0x7e, 0x81, 0x78, 0x6d, 0x6d, 0x77, 0x82, 0x7e, 0x81, 0x8e, 0x93, 0x8d, + 0x80, 0x7e, 0x81, 0x76, 0x6c, 0x6e, 0x7a, 0x82, 0x7d, 0x83, 0x90, 0x93, + 0x8b, 0x7f, 0x7f, 0x80, 0x74, 0x6c, 0x6f, 0x7c, 0x82, 0x7e, 0x86, 0x91, + 0x93, 0x89, 0x7e, 0x80, 0x7e, 0x72, 0x6b, 0x71, 0x7e, 0x81, 0x7e, 0x88, + 0x92, 0x92, 0x87, 0x7d, 0x81, 0x7d, 0x70, 0x6c, 0x73, 0x80, 0x80, 0x7f, + 0x8a, 0x93, 0x91, 0x85, 0x7d, 0x81, 0x7b, 0x6e, 0x6c, 0x75, 0x80, 0x7f, + 0x80, 0x8c, 0x93, 0x8f, 0x82, 0x7e, 0x81, 0x78, 0x6d, 0x6d, 0x77, 0x82, + 0x7e, 0x81, 0x8f, 0x93, 0x8d, 0x80, 0x7e, 0x81, 0x76, 0x6c, 0x6e, 0x7a, + 0x82, 0x7e, 0x83, 0x90, 0x93, 0x8b, 0x7f, 0x7f, 0x80, 0x74, 0x6c, 0x6f, + 0x7c, 0x81, 0x7d, 0x85, 0x91, 0x92, 0x89, 0x7e, 0x80, 0x7f, 0x72, 0x6c, + 0x71, 0x7e, 0x81, 0x7d, 0x88, 0x92, 0x91, 0x87, 0x7d, 0x81, 0x7d, 0x70, + 0x6c, 0x73, 0x7f, 0x80, 0x7e, 0x8a, 0x93, 0x90, 0x84, 0x7d, 0x81, 0x7b, + 0x6f, 0x6c, 0x75, 0x81, 0x7f, 0x7f, 0x8c, 0x93, 0x8f, 0x82, 0x7e, 0x81, + 0x79, 0x6e, 0x6d, 0x78, 0x81, 0x7e, 0x81, 0x8e, 0x93, 0x8d, 0x80, 0x7e, + 0x81, 0x77, 0x6d, 0x6e, 0x7a, 0x82, 0x7e, 0x83, 0x8f, 0x93, 0x8b, 0x7f, + 0x80, 0x80, 0x74, 0x6c, 0x6f, 0x7c, 0x81, 0x7d, 0x85, 0x91, 0x92, 0x89, + 0x7e, 0x80, 0x7f, 0x72, 0x6c, 0x71, 0x7e, 0x81, 0x7d, 0x87, 0x91, 0x91, + 0x87, 0x7d, 0x81, 0x7d, 0x71, 0x6c, 0x73, 0x7f, 0x80, 0x7e, 0x8a, 0x92, + 0x90, 0x84, 0x7e, 0x82, 0x7b, 0x6f, 0x6d, 0x75, 0x81, 0x7f, 0x7f, 0x8c, + 0x92, 0x8f, 0x82, 0x7e, 0x82, 0x79, 0x6e, 0x6e, 0x77, 0x81, 0x7e, 0x81, + 0x8d, 0x92, 0x8d, 0x80, 0x7f, 0x81, 0x77, 0x6d, 0x6e, 0x7a, 0x82, 0x7e, + 0x83, 0x8f, 0x92, 0x8b, 0x7f, 0x7f, 0x80, 0x75, 0x6d, 0x70, 0x7c, 0x81, + 0x7e, 0x85, 0x90, 0x92, 0x89, 0x7e, 0x80, 0x7f, 0x73, 0x6d, 0x72, 0x7e, + 0x81, 0x7e, 0x87, 0x91, 0x91, 0x87, 0x7e, 0x81, 0x7d, 0x71, 0x6d, 0x73, + 0x7f, 0x80, 0x7e, 0x8a, 0x92, 0x90, 0x85, 0x7d, 0x81, 0x7b, 0x70, 0x6d, + 0x76, 0x80, 0x7f, 0x80, 0x8b, 0x92, 0x8f, 0x82, 0x7e, 0x81, 0x79, 0x6e, + 0x6e, 0x78, 0x81, 0x7f, 0x81, 0x8d, 0x92, 0x8d, 0x81, 0x7e, 0x81, 0x77, + 0x6e, 0x6f, 0x7a, 0x81, 0x7e, 0x83, 0x8f, 0x92, 0x8b, 0x7f, 0x7f, 0x80, + 0x75, 0x6d, 0x70, 0x7c, 0x81, 0x7e, 0x85, 0x90, 0x91, 0x89, 0x7e, 0x80, + 0x7f, 0x73, 0x6d, 0x72, 0x7e, 0x81, 0x7e, 0x87, 0x91, 0x90, 0x86, 0x7e, + 0x81, 0x7d, 0x72, 0x6d, 0x74, 0x7f, 0x80, 0x7e, 0x89, 0x91, 0x90, 0x84, + 0x7d, 0x81, 0x7c, 0x70, 0x6d, 0x76, 0x80, 0x7f, 0x7f, 0x8b, 0x92, 0x8e, + 0x82, 0x7e, 0x81, 0x79, 0x6f, 0x6e, 0x78, 0x81, 0x7e, 0x81, 0x8d, 0x92, + 0x8d, 0x81, 0x7e, 0x81, 0x77, 0x6e, 0x6f, 0x7a, 0x81, 0x7e, 0x83, 0x8e, + 0x91, 0x8b, 0x7f, 0x7f, 0x80, 0x75, 0x6d, 0x70, 0x7c, 0x81, 0x7e, 0x85, + 0x90, 0x91, 0x89, 0x7e, 0x80, 0x7f, 0x73, 0x6d, 0x72, 0x7e, 0x81, 0x7d, + 0x87, 0x90, 0x90, 0x87, 0x7d, 0x81, 0x7e, 0x72, 0x6d, 0x74, 0x7f, 0x80, + 0x7e, 0x89, 0x91, 0x8f, 0x84, 0x7e, 0x81, 0x7b, 0x70, 0x6e, 0x75, 0x80, + 0x7f, 0x7f, 0x8b, 0x91, 0x8e, 0x82, 0x7e, 0x82, 0x79, 0x6f, 0x6e, 0x78, + 0x81, 0x7e, 0x81, 0x8d, 0x91, 0x8d, 0x80, 0x7e, 0x81, 0x77, 0x6e, 0x6f, + 0x7a, 0x81, 0x7e, 0x83, 0x8e, 0x91, 0x8b, 0x7f, 0x7f, 0x80, 0x76, 0x6e, + 0x70, 0x7c, 0x81, 0x7d, 0x84, 0x8f, 0x91, 0x89, 0x7e, 0x80, 0x7f, 0x74, + 0x6e, 0x72, 0x7d, 0x81, 0x7e, 0x86, 0x90, 0x90, 0x87, 0x7e, 0x81, 0x7e, + 0x72, 0x6e, 0x74, 0x7f, 0x80, 0x7e, 0x89, 0x91, 0x8f, 0x85, 0x7e, 0x81, + 0x7c, 0x71, 0x6e, 0x76, 0x80, 0x7f, 0x7f, 0x8b, 0x91, 0x8e, 0x82, 0x7e, + 0x82, 0x7a, 0x6f, 0x6f, 0x78, 0x81, 0x7e, 0x80, 0x8c, 0x91, 0x8c, 0x80, + 0x7e, 0x81, 0x78, 0x6f, 0x70, 0x7a, 0x82, 0x7e, 0x82, 0x8e, 0x91, 0x8a, + 0x7f, 0x7f, 0x80, 0x76, 0x6e, 0x71, 0x7c, 0x81, 0x7e, 0x84, 0x8f, 0x91, + 0x89, 0x7e, 0x80, 0x7f, 0x74, 0x6e, 0x72, 0x7e, 0x81, 0x7e, 0x86, 0x90, + 0x90, 0x86, 0x7e, 0x81, 0x7e, 0x72, 0x6e, 0x74, 0x7f, 0x80, 0x7e, 0x89, + 0x90, 0x8f, 0x84, 0x7d, 0x81, 0x7c, 0x71, 0x6e, 0x76, 0x80, 0x7f, 0x7f, + 0x8a, 0x91, 0x8e, 0x82, 0x7e, 0x82, 0x7a, 0x70, 0x6f, 0x78, 0x81, 0x7e, + 0x80, 0x8c, 0x91, 0x8c, 0x81, 0x7f, 0x81, 0x78, 0x6f, 0x70, 0x7a, 0x81, + 0x7e, 0x82, 0x8e, 0x91, 0x8a, 0x7f, 0x7f, 0x80, 0x76, 0x6e, 0x71, 0x7c, + 0x81, 0x7e, 0x84, 0x8f, 0x90, 0x88, 0x7e, 0x80, 0x7f, 0x74, 0x6e, 0x72, + 0x7e, 0x81, 0x7e, 0x86, 0x8f, 0x8f, 0x86, 0x7e, 0x81, 0x7e, 0x73, 0x6e, + 0x74, 0x7f, 0x80, 0x7e, 0x88, 0x90, 0x8f, 0x84, 0x7d, 0x81, 0x7c, 0x71, + 0x6f, 0x76, 0x80, 0x7f, 0x7f, 0x8a, 0x90, 0x8d, 0x82, 0x7e, 0x81, 0x7a, + 0x70, 0x6f, 0x78, 0x81, 0x7e, 0x80, 0x8c, 0x91, 0x8c, 0x81, 0x7f, 0x81, + 0x78, 0x6f, 0x70, 0x7a, 0x81, 0x7e, 0x82, 0x8d, 0x90, 0x8a, 0x7f, 0x7f, + 0x80, 0x76, 0x6f, 0x71, 0x7c, 0x81, 0x7e, 0x84, 0x8e, 0x90, 0x88, 0x7f, + 0x80, 0x7f, 0x75, 0x6f, 0x73, 0x7e, 0x81, 0x7e, 0x86, 0x8f, 0x8f, 0x86, + 0x7e, 0x81, 0x7e, 0x73, 0x6f, 0x74, 0x7f, 0x80, 0x7e, 0x88, 0x8f, 0x8e, + 0x84, 0x7e, 0x81, 0x7c, 0x72, 0x6f, 0x76, 0x80, 0x7f, 0x7f, 0x8a, 0x90, + 0x8d, 0x83, 0x7e, 0x81, 0x7b, 0x71, 0x70, 0x78, 0x81, 0x7e, 0x80, 0x8b, + 0x90, 0x8c, 0x81, 0x7f, 0x81, 0x79, 0x70, 0x70, 0x7a, 0x81, 0x7e, 0x82, + 0x8d, 0x90, 0x8a, 0x80, 0x7f, 0x80, 0x77, 0x6f, 0x71, 0x7c, 0x81, 0x7e, + 0x84, 0x8e, 0x90, 0x88, 0x7e, 0x80, 0x7f, 0x75, 0x6f, 0x73, 0x7d, 0x81, + 0x7e, 0x86, 0x8f, 0x8f, 0x86, 0x7e, 0x81, 0x7e, 0x73, 0x6f, 0x74, 0x7f, + 0x80, 0x7e, 0x87, 0x8f, 0x8e, 0x85, 0x7e, 0x81, 0x7c, 0x72, 0x6f, 0x76, + 0x80, 0x7f, 0x7f, 0x89, 0x90, 0x8d, 0x82, 0x7e, 0x81, 0x7b, 0x71, 0x70, + 0x78, 0x81, 0x7f, 0x80, 0x8b, 0x90, 0x8b, 0x81, 0x7e, 0x81, 0x79, 0x70, + 0x71, 0x7a, 0x81, 0x7e, 0x82, 0x8c, 0x8f, 0x8a, 0x7f, 0x7f, 0x80, 0x77, + 0x70, 0x72, 0x7c, 0x81, 0x7e, 0x84, 0x8d, 0x8f, 0x88, 0x7e, 0x80, 0x80, + 0x75, 0x6f, 0x73, 0x7e, 0x81, 0x7e, 0x86, 0x8e, 0x8e, 0x86, 0x7e, 0x81, + 0x7e, 0x74, 0x6f, 0x75, 0x7f, 0x80, 0x7e, 0x87, 0x8f, 0x8e, 0x84, 0x7e, + 0x81, 0x7d, 0x73, 0x70, 0x76, 0x80, 0x7f, 0x7f, 0x89, 0x8f, 0x8d, 0x82, + 0x7e, 0x81, 0x7b, 0x71, 0x70, 0x78, 0x81, 0x7f, 0x80, 0x8b, 0x8f, 0x8b, + 0x81, 0x7e, 0x81, 0x79, 0x71, 0x71, 0x7a, 0x81, 0x7e, 0x82, 0x8c, 0x8f, + 0x8a, 0x80, 0x7f, 0x80, 0x77, 0x70, 0x72, 0x7c, 0x81, 0x7e, 0x84, 0x8d, + 0x8f, 0x88, 0x7e, 0x80, 0x7f, 0x75, 0x70, 0x73, 0x7d, 0x81, 0x7e, 0x85, + 0x8e, 0x8e, 0x86, 0x7e, 0x80, 0x7e, 0x74, 0x70, 0x75, 0x7f, 0x80, 0x7e, + 0x87, 0x8e, 0x8e, 0x84, 0x7e, 0x81, 0x7d, 0x72, 0x70, 0x76, 0x80, 0x80, + 0x7f, 0x89, 0x8f, 0x8c, 0x82, 0x7e, 0x81, 0x7b, 0x72, 0x70, 0x78, 0x81, + 0x7f, 0x80, 0x8a, 0x8f, 0x8b, 0x81, 0x7e, 0x81, 0x79, 0x71, 0x71, 0x7a, + 0x81, 0x7e, 0x82, 0x8c, 0x8f, 0x8a, 0x7f, 0x7f, 0x80, 0x77, 0x70, 0x72, + 0x7c, 0x81, 0x7e, 0x83, 0x8d, 0x8f, 0x88, 0x7f, 0x80, 0x7f, 0x76, 0x70, + 0x73, 0x7d, 0x81, 0x7e, 0x85, 0x8e, 0x8e, 0x86, 0x7e, 0x80, 0x7e, 0x74, + 0x70, 0x75, 0x7f, 0x80, 0x7e, 0x87, 0x8e, 0x8d, 0x84, 0x7e, 0x81, 0x7d, + 0x73, 0x70, 0x76, 0x80, 0x7f, 0x7f, 0x89, 0x8e, 0x8c, 0x83, 0x7e, 0x81, + 0x7b, 0x72, 0x71, 0x78, 0x81, 0x7f, 0x80, 0x8a, 0x8f, 0x8b, 0x81, 0x7e, + 0x81, 0x79, 0x71, 0x72, 0x7a, 0x81, 0x7e, 0x81, 0x8b, 0x8e, 0x89, 0x80, + 0x7f, 0x80, 0x78, 0x71, 0x72, 0x7c, 0x81, 0x7e, 0x83, 0x8c, 0x8e, 0x88, + 0x7f, 0x80, 0x80, 0x76, 0x71, 0x74, 0x7d, 0x81, 0x7e, 0x85, 0x8d, 0x8e, + 0x86, 0x7e, 0x80, 0x7e, 0x75, 0x71, 0x75, 0x7f, 0x80, 0x7e, 0x87, 0x8e, + 0x8d, 0x84, 0x7e, 0x81, 0x7d, 0x74, 0x71, 0x77, 0x80, 0x7f, 0x7f, 0x88, + 0x8e, 0x8c, 0x82, 0x7e, 0x81, 0x7b, 0x72, 0x71, 0x78, 0x81, 0x7f, 0x80, + 0x8a, 0x8e, 0x8b, 0x81, 0x7f, 0x81, 0x7a, 0x72, 0x72, 0x7a, 0x81, 0x7e, + 0x81, 0x8b, 0x8e, 0x89, 0x80, 0x7f, 0x80, 0x78, 0x71, 0x73, 0x7c, 0x81, + 0x7e, 0x83, 0x8c, 0x8e, 0x88, 0x7f, 0x80, 0x80, 0x76, 0x71, 0x74, 0x7d, + 0x81, 0x7e, 0x85, 0x8d, 0x8d, 0x86, 0x7e, 0x80, 0x7e, 0x75, 0x71, 0x76, + 0x7f, 0x80, 0x7e, 0x87, 0x8d, 0x8c, 0x84, 0x7e, 0x81, 0x7d, 0x74, 0x71, + 0x77, 0x80, 0x80, 0x7f, 0x88, 0x8e, 0x8b, 0x82, 0x7e, 0x81, 0x7b, 0x73, + 0x72, 0x79, 0x81, 0x7f, 0x80, 0x8a, 0x8e, 0x8a, 0x81, 0x7e, 0x81, 0x7a, + 0x72, 0x72, 0x7a, 0x81, 0x7e, 0x81, 0x8b, 0x8e, 0x89, 0x80, 0x7f, 0x80, + 0x78, 0x72, 0x73, 0x7c, 0x81, 0x7e, 0x83, 0x8c, 0x8d, 0x87, 0x7f, 0x80, + 0x7f, 0x77, 0x71, 0x74, 0x7e, 0x81, 0x7e, 0x85, 0x8c, 0x8d, 0x86, 0x7e, + 0x80, 0x7e, 0x75, 0x71, 0x76, 0x7f, 0x80, 0x7e, 0x86, 0x8d, 0x8c, 0x84, + 0x7e, 0x81, 0x7d, 0x74, 0x71, 0x77, 0x80, 0x80, 0x7f, 0x88, 0x8d, 0x8b, + 0x82, 0x7e, 0x81, 0x7c, 0x73, 0x72, 0x79, 0x81, 0x7f, 0x80, 0x89, 0x8d, + 0x8a, 0x81, 0x7e, 0x81, 0x7a, 0x73, 0x73, 0x7a, 0x81, 0x7e, 0x81, 0x8a, + 0x8d, 0x89, 0x80, 0x7f, 0x80, 0x78, 0x72, 0x73, 0x7c, 0x81, 0x7e, 0x83, + 0x8b, 0x8d, 0x87, 0x7f, 0x80, 0x7f, 0x77, 0x72, 0x74, 0x7d, 0x81, 0x7e, + 0x84, 0x8c, 0x8d, 0x86, 0x7e, 0x80, 0x7f, 0x76, 0x72, 0x76, 0x7f, 0x80, + 0x7e, 0x86, 0x8c, 0x8c, 0x84, 0x7e, 0x81, 0x7d, 0x75, 0x72, 0x77, 0x80, + 0x80, 0x7f, 0x88, 0x8d, 0x8b, 0x83, 0x7e, 0x81, 0x7c, 0x73, 0x72, 0x79, + 0x80, 0x7f, 0x80, 0x89, 0x8d, 0x8a, 0x81, 0x7e, 0x81, 0x7a, 0x73, 0x73, + 0x7a, 0x81, 0x7e, 0x81, 0x8a, 0x8d, 0x89, 0x80, 0x7f, 0x80, 0x79, 0x72, + 0x74, 0x7c, 0x81, 0x7e, 0x83, 0x8b, 0x8d, 0x87, 0x7f, 0x80, 0x80, 0x77, + 0x72, 0x75, 0x7d, 0x80, 0x7e, 0x84, 0x8c, 0x8c, 0x86, 0x7e, 0x80, 0x7f, + 0x76, 0x72, 0x76, 0x7f, 0x80, 0x7e, 0x86, 0x8c, 0x8b, 0x84, 0x7e, 0x81, + 0x7d, 0x75, 0x72, 0x77, 0x80, 0x80, 0x7f, 0x87, 0x8d, 0x8b, 0x82, 0x7e, + 0x81, 0x7c, 0x74, 0x73, 0x79, 0x80, 0x7f, 0x80, 0x88, 0x8d, 0x8a, 0x81, + 0x7f, 0x81, 0x7a, 0x73, 0x73, 0x7a, 0x81, 0x7e, 0x81, 0x8a, 0x8c, 0x88, + 0x80, 0x7f, 0x80, 0x79, 0x73, 0x74, 0x7c, 0x81, 0x7e, 0x82, 0x8b, 0x8c, + 0x87, 0x7f, 0x80, 0x80, 0x77, 0x72, 0x75, 0x7d, 0x81, 0x7e, 0x84, 0x8b, + 0x8c, 0x85, 0x7e, 0x80, 0x7f, 0x76, 0x72, 0x76, 0x7f, 0x80, 0x7e, 0x85, + 0x8c, 0x8b, 0x84, 0x7e, 0x81, 0x7e, 0x75, 0x73, 0x78, 0x80, 0x80, 0x7f, + 0x87, 0x8c, 0x8b, 0x82, 0x7e, 0x81, 0x7c, 0x74, 0x73, 0x79, 0x80, 0x7f, + 0x80, 0x88, 0x8c, 0x89, 0x81, 0x7f, 0x81, 0x7b, 0x73, 0x73, 0x7b, 0x81, + 0x7e, 0x81, 0x89, 0x8c, 0x88, 0x80, 0x7f, 0x81, 0x79, 0x73, 0x74, 0x7c, + 0x81, 0x7e, 0x82, 0x8a, 0x8c, 0x87, 0x7f, 0x80, 0x80, 0x78, 0x73, 0x75, + 0x7d, 0x81, 0x7e, 0x84, 0x8b, 0x8c, 0x85, 0x7e, 0x80, 0x7f, 0x76, 0x73, + 0x76, 0x7f, 0x80, 0x7e, 0x85, 0x8c, 0x8b, 0x84, 0x7e, 0x81, 0x7d, 0x75, + 0x73, 0x78, 0x7f, 0x80, 0x7f, 0x87, 0x8c, 0x8a, 0x82, 0x7f, 0x81, 0x7c, + 0x75, 0x73, 0x79, 0x80, 0x7f, 0x80, 0x88, 0x8c, 0x89, 0x81, 0x7f, 0x81, + 0x7b, 0x74, 0x74, 0x7b, 0x81, 0x7f, 0x81, 0x89, 0x8c, 0x88, 0x80, 0x7f, + 0x80, 0x79, 0x73, 0x75, 0x7c, 0x81, 0x7e, 0x82, 0x8a, 0x8c, 0x87, 0x7f, + 0x80, 0x80, 0x78, 0x73, 0x75, 0x7d, 0x81, 0x7e, 0x84, 0x8b, 0x8b, 0x85, + 0x7e, 0x80, 0x7f, 0x77, 0x73, 0x77, 0x7f, 0x80, 0x7e, 0x85, 0x8b, 0x8b, + 0x84, 0x7e, 0x81, 0x7e, 0x76, 0x73, 0x78, 0x80, 0x80, 0x7f, 0x86, 0x8c, + 0x8a, 0x82, 0x7e, 0x81, 0x7c, 0x75, 0x74, 0x79, 0x80, 0x7f, 0x80, 0x88, + 0x8c, 0x89, 0x81, 0x7e, 0x81, 0x7b, 0x74, 0x74, 0x7b, 0x81, 0x7f, 0x81, + 0x89, 0x8c, 0x88, 0x80, 0x7f, 0x80, 0x7a, 0x74, 0x75, 0x7c, 0x81, 0x7e, + 0x82, 0x8a, 0x8b, 0x87, 0x7f, 0x7f, 0x80, 0x78, 0x73, 0x76, 0x7d, 0x81, + 0x7e, 0x83, 0x8a, 0x8b, 0x85, 0x7e, 0x80, 0x7f, 0x77, 0x73, 0x77, 0x7f, + 0x80, 0x7e, 0x85, 0x8b, 0x8a, 0x84, 0x7e, 0x80, 0x7e, 0x76, 0x74, 0x78, + 0x80, 0x80, 0x7f, 0x86, 0x8b, 0x8a, 0x82, 0x7e, 0x81, 0x7d, 0x75, 0x74, + 0x79, 0x80, 0x7f, 0x80, 0x87, 0x8b, 0x89, 0x81, 0x7f, 0x81, 0x7b, 0x75, + 0x74, 0x7b, 0x81, 0x7f, 0x81, 0x89, 0x8b, 0x88, 0x80, 0x7f, 0x80, 0x7a, + 0x74, 0x75, 0x7c, 0x81, 0x7e, 0x82, 0x89, 0x8b, 0x86, 0x7f, 0x80, 0x80, + 0x78, 0x74, 0x76, 0x7d, 0x81, 0x7e, 0x83, 0x8a, 0x8b, 0x85, 0x7f, 0x80, + 0x7f, 0x77, 0x74, 0x77, 0x7f, 0x80, 0x7e, 0x85, 0x8b, 0x8a, 0x84, 0x7e, + 0x80, 0x7e, 0x76, 0x74, 0x78, 0x7f, 0x80, 0x7f, 0x86, 0x8b, 0x89, 0x82, + 0x7e, 0x81, 0x7d, 0x76, 0x74, 0x79, 0x80, 0x7f, 0x80, 0x87, 0x8b, 0x88, + 0x81, 0x7f, 0x81, 0x7b, 0x75, 0x75, 0x7b, 0x81, 0x7f, 0x80, 0x88, 0x8b, + 0x87, 0x80, 0x7f, 0x80, 0x7a, 0x75, 0x76, 0x7c, 0x81, 0x7e, 0x82, 0x89, + 0x8b, 0x86, 0x7f, 0x80, 0x80, 0x79, 0x74, 0x76, 0x7d, 0x81, 0x7e, 0x83, + 0x8a, 0x8a, 0x85, 0x7f, 0x80, 0x7f, 0x78, 0x74, 0x77, 0x7f, 0x80, 0x7e, + 0x84, 0x8a, 0x8a, 0x84, 0x7e, 0x80, 0x7e, 0x77, 0x74, 0x78, 0x7f, 0x80, + 0x7f, 0x86, 0x8a, 0x89, 0x82, 0x7e, 0x81, 0x7d, 0x76, 0x74, 0x7a, 0x80, + 0x7f, 0x80, 0x87, 0x8b, 0x88, 0x81, 0x7f, 0x81, 0x7c, 0x75, 0x75, 0x7b, + 0x80, 0x7f, 0x81, 0x88, 0x8b, 0x87, 0x80, 0x7f, 0x80, 0x7a, 0x75, 0x76, + 0x7c, 0x81, 0x7e, 0x82, 0x89, 0x8a, 0x86, 0x7f, 0x80, 0x80, 0x79, 0x75, + 0x76, 0x7d, 0x80, 0x7e, 0x83, 0x89, 0x8a, 0x85, 0x7f, 0x80, 0x7f, 0x78, + 0x74, 0x77, 0x7e, 0x80, 0x7e, 0x84, 0x8a, 0x8a, 0x84, 0x7e, 0x80, 0x7e, + 0x77, 0x75, 0x79, 0x7f, 0x80, 0x7f, 0x85, 0x8a, 0x89, 0x82, 0x7e, 0x81, + 0x7d, 0x76, 0x75, 0x7a, 0x80, 0x7f, 0x7f, 0x87, 0x8a, 0x88, 0x81, 0x7e, + 0x81, 0x7c, 0x75, 0x75, 0x7b, 0x80, 0x7f, 0x80, 0x88, 0x8a, 0x87, 0x80, + 0x7f, 0x80, 0x7a, 0x75, 0x76, 0x7c, 0x81, 0x7f, 0x82, 0x88, 0x8a, 0x86, + 0x7f, 0x7f, 0x80, 0x79, 0x75, 0x77, 0x7d, 0x81, 0x7e, 0x83, 0x89, 0x8a, + 0x85, 0x7f, 0x80, 0x7f, 0x78, 0x75, 0x78, 0x7f, 0x80, 0x7e, 0x84, 0x8a, + 0x89, 0x84, 0x7e, 0x80, 0x7e, 0x77, 0x75, 0x79, 0x7f, 0x80, 0x7f, 0x85, + 0x8a, 0x89, 0x82, 0x7e, 0x81, 0x7d, 0x77, 0x75, 0x7a, 0x80, 0x7f, 0x7f, + 0x86, 0x8a, 0x88, 0x81, 0x7f, 0x81, 0x7c, 0x76, 0x76, 0x7b, 0x81, 0x7f, + 0x80, 0x87, 0x8a, 0x87, 0x80, 0x7f, 0x80, 0x7b, 0x76, 0x76, 0x7c, 0x81, + 0x7f, 0x81, 0x88, 0x8a, 0x86, 0x7f, 0x7f, 0x80, 0x7a, 0x75, 0x77, 0x7d, + 0x80, 0x7e, 0x83, 0x89, 0x89, 0x85, 0x7f, 0x80, 0x7f, 0x79, 0x75, 0x78, + 0x7f, 0x80, 0x7e, 0x84, 0x89, 0x89, 0x83, 0x7e, 0x80, 0x7e, 0x78, 0x75, + 0x79, 0x7f, 0x80, 0x7f, 0x85, 0x89, 0x88, 0x82, 0x7e, 0x81, 0x7d, 0x77, + 0x75, 0x7a, 0x80, 0x7f, 0x7f, 0x86, 0x8a, 0x88, 0x81, 0x7f, 0x80, 0x7c, + 0x76, 0x76, 0x7b, 0x80, 0x7f, 0x80, 0x87, 0x8a, 0x87, 0x80, 0x7f, 0x80, + 0x7b, 0x76, 0x76, 0x7c, 0x81, 0x7f, 0x81, 0x88, 0x89, 0x86, 0x7f, 0x7f, + 0x80, 0x7a, 0x76, 0x77, 0x7e, 0x81, 0x7e, 0x82, 0x88, 0x89, 0x84, 0x7f, + 0x80, 0x7f, 0x79, 0x76, 0x78, 0x7f, 0x80, 0x7e, 0x84, 0x89, 0x89, 0x83, + 0x7e, 0x80, 0x7e, 0x78, 0x76, 0x79, 0x7f, 0x80, 0x7f, 0x85, 0x89, 0x88, + 0x82, 0x7e, 0x80, 0x7d, 0x77, 0x76, 0x7a, 0x80, 0x7f, 0x7f, 0x86, 0x89, + 0x87, 0x81, 0x7f, 0x80, 0x7c, 0x77, 0x76, 0x7b, 0x80, 0x7f, 0x80, 0x87, + 0x89, 0x86, 0x80, 0x7f, 0x80, 0x7b, 0x76, 0x77, 0x7d, 0x81, 0x7f, 0x81, + 0x87, 0x89, 0x85, 0x7f, 0x7f, 0x80, 0x7a, 0x76, 0x77, 0x7e, 0x81, 0x7e, + 0x82, 0x88, 0x89, 0x84, 0x7f, 0x80, 0x7f, 0x79, 0x76, 0x78, 0x7f, 0x80, + 0x7f, 0x83, 0x88, 0x88, 0x83, 0x7e, 0x80, 0x7e, 0x78, 0x76, 0x79, 0x7f, + 0x80, 0x7f, 0x85, 0x89, 0x88, 0x82, 0x7f, 0x80, 0x7d, 0x77, 0x76, 0x7a, + 0x80, 0x7f, 0x7f, 0x86, 0x89, 0x87, 0x81, 0x7f, 0x81, 0x7c, 0x77, 0x77, + 0x7b, 0x80, 0x7f, 0x80, 0x86, 0x89, 0x86, 0x80, 0x7f, 0x80, 0x7b, 0x77, + 0x77, 0x7d, 0x81, 0x7f, 0x81, 0x87, 0x89, 0x85, 0x7f, 0x7f, 0x80, 0x7a, + 0x76, 0x78, 0x7e, 0x80, 0x7e, 0x82, 0x88, 0x88, 0x84, 0x7f, 0x80, 0x7f, + 0x79, 0x76, 0x79, 0x7f, 0x80, 0x7e, 0x83, 0x88, 0x88, 0x83, 0x7e, 0x80, + 0x7e, 0x79, 0x76, 0x79, 0x7f, 0x80, 0x7f, 0x84, 0x88, 0x88, 0x82, 0x7e, + 0x80, 0x7e, 0x78, 0x77, 0x7b, 0x80, 0x7f, 0x7f, 0x85, 0x88, 0x87, 0x81, + 0x7f, 0x81, 0x7d, 0x77, 0x77, 0x7c, 0x80, 0x7f, 0x80, 0x86, 0x88, 0x86, + 0x80, 0x7f, 0x80, 0x7c, 0x77, 0x77, 0x7d, 0x81, 0x7f, 0x81, 0x87, 0x88, + 0x85, 0x7f, 0x7f, 0x80, 0x7a, 0x77, 0x78, 0x7e, 0x80, 0x7f, 0x82, 0x87, + 0x88, 0x84, 0x7f, 0x80, 0x7f, 0x7a, 0x77, 0x79, 0x7f, 0x80, 0x7e, 0x83, + 0x88, 0x88, 0x83, 0x7f, 0x80, 0x7f, 0x79, 0x77, 0x7a, 0x7f, 0x80, 0x7f, + 0x84, 0x88, 0x87, 0x82, 0x7f, 0x80, 0x7e, 0x78, 0x77, 0x7b, 0x80, 0x7f, + 0x7f, 0x85, 0x88, 0x86, 0x81, 0x7f, 0x80, 0x7d, 0x78, 0x77, 0x7c, 0x80, + 0x7f, 0x80, 0x86, 0x88, 0x86, 0x80, 0x7f, 0x80, 0x7c, 0x77, 0x78, 0x7d, + 0x80, 0x7f, 0x81, 0x86, 0x88, 0x85, 0x7f, 0x7f, 0x80, 0x7b, 0x77, 0x78, + 0x7e, 0x80, 0x7f, 0x82, 0x87, 0x88, 0x84, 0x7f, 0x80, 0x7f, 0x7a, 0x77, + 0x79, 0x7f, 0x80, 0x7f, 0x83, 0x87, 0x87, 0x83, 0x7f, 0x80, 0x7f, 0x79, + 0x77, 0x7a, 0x7f, 0x80, 0x7f, 0x84, 0x88, 0x87, 0x82, 0x7f, 0x80, 0x7e, + 0x78, 0x77, 0x7b, 0x80, 0x7f, 0x7f, 0x85, 0x88, 0x86, 0x81, 0x7f, 0x80, + 0x7d, 0x78, 0x78, 0x7c, 0x80, 0x7f, 0x80, 0x85, 0x88, 0x86, 0x80, 0x7f, + 0x80, 0x7c, 0x78, 0x78, 0x7d, 0x80, 0x7f, 0x81, 0x86, 0x88, 0x85, 0x7f, + 0x7f, 0x80, 0x7b, 0x78, 0x79, 0x7e, 0x80, 0x7f, 0x82, 0x87, 0x87, 0x84, + 0x7f, 0x80, 0x7f, 0x7a, 0x77, 0x79, 0x7e, 0x80, 0x7f, 0x83, 0x87, 0x87, + 0x83, 0x7f, 0x80, 0x7f, 0x79, 0x77, 0x7a, 0x7f, 0x80, 0x7f, 0x84, 0x87, + 0x87, 0x82, 0x7f, 0x80, 0x7e, 0x79, 0x78, 0x7b, 0x80, 0x7f, 0x7f, 0x84, + 0x87, 0x86, 0x81, 0x7f, 0x80, 0x7d, 0x78, 0x78, 0x7c, 0x80, 0x7f, 0x80, + 0x85, 0x87, 0x85, 0x80, 0x7f, 0x80, 0x7c, 0x78, 0x78, 0x7d, 0x80, 0x7f, + 0x81, 0x86, 0x87, 0x84, 0x7f, 0x7f, 0x80, 0x7b, 0x78, 0x79, 0x7e, 0x80, + 0x7f, 0x82, 0x86, 0x87, 0x84, 0x7f, 0x80, 0x7f, 0x7a, 0x78, 0x7a, 0x7f, + 0x80, 0x7f, 0x82, 0x87, 0x87, 0x83, 0x7f, 0x80, 0x7f, 0x7a, 0x78, 0x7a, + 0x7f, 0x80, 0x7f, 0x83, 0x87, 0x86, 0x82, 0x7f, 0x80, 0x7e, 0x79, 0x78, + 0x7b, 0x80, 0x7f, 0x7f, 0x84, 0x87, 0x86, 0x81, 0x7f, 0x80, 0x7d, 0x79, + 0x78, 0x7c, 0x80, 0x7f, 0x80, 0x85, 0x87, 0x85, 0x80, 0x7f, 0x80, 0x7c, + 0x78, 0x79, 0x7d, 0x80, 0x7f, 0x81, 0x86, 0x87, 0x84, 0x7f, 0x7f, 0x80, + 0x7b, 0x78, 0x79, 0x7e, 0x80, 0x7f, 0x81, 0x86, 0x87, 0x84, 0x7f, 0x80, + 0x7f, 0x7b, 0x78, 0x7a, 0x7f, 0x80, 0x7f, 0x82, 0x86, 0x86, 0x83, 0x7f, + 0x80, 0x7f, 0x7a, 0x78, 0x7a, 0x7f, 0x80, 0x7f, 0x83, 0x87, 0x86, 0x82, + 0x7f, 0x80, 0x7e, 0x79, 0x78, 0x7b, 0x80, 0x80, 0x7f, 0x84, 0x87, 0x86, + 0x81, 0x7f, 0x80, 0x7d, 0x79, 0x79, 0x7c, 0x80, 0x7f, 0x80, 0x85, 0x87, + 0x85, 0x80, 0x7f, 0x80, 0x7c, 0x79, 0x79, 0x7d, 0x80, 0x7f, 0x81, 0x85, + 0x87, 0x84, 0x7f, 0x7f, 0x80, 0x7c, 0x79, 0x79, 0x7e, 0x80, 0x7f, 0x81, + 0x86, 0x86, 0x83, 0x7f, 0x80, 0x7f, 0x7b, 0x78, 0x7a, 0x7f, 0x80, 0x7f, + 0x82, 0x86, 0x86, 0x82, 0x7f, 0x80, 0x7f, 0x7a, 0x78, 0x7b, 0x7f, 0x80, + 0x7f, 0x83, 0x86, 0x86, 0x82, 0x7f, 0x80, 0x7e, 0x7a, 0x79, 0x7b, 0x80, + 0x80, 0x7f, 0x84, 0x86, 0x85, 0x81, 0x7f, 0x80, 0x7d, 0x79, 0x79, 0x7c, + 0x80, 0x7f, 0x80, 0x84, 0x86, 0x85, 0x80, 0x7f, 0x80, 0x7d, 0x79, 0x79, + 0x7d, 0x80, 0x7f, 0x80, 0x85, 0x86, 0x84, 0x7f, 0x7f, 0x80, 0x7c, 0x79, + 0x7a, 0x7e, 0x80, 0x7f, 0x81, 0x85, 0x86, 0x83, 0x7f, 0x80, 0x7f, 0x7b, + 0x79, 0x7a, 0x7f, 0x80, 0x7f, 0x82, 0x86, 0x86, 0x82, 0x7f, 0x80, 0x7f, + 0x7b, 0x79, 0x7b, 0x7f, 0x80, 0x7f, 0x83, 0x86, 0x85, 0x82, 0x7f, 0x80, + 0x7e, 0x7a, 0x79, 0x7c, 0x80, 0x80, 0x7f, 0x83, 0x86, 0x85, 0x81, 0x7f, + 0x80, 0x7e, 0x7a, 0x79, 0x7c, 0x80, 0x7f, 0x80, 0x84, 0x86, 0x84, 0x80, + 0x7f, 0x80, 0x7d, 0x79, 0x79, 0x7d, 0x80, 0x7f, 0x80, 0x85, 0x86, 0x84, + 0x80, 0x7f, 0x80, 0x7c, 0x79, 0x7a, 0x7e, 0x80, 0x7f, 0x81, 0x85, 0x86, + 0x83, 0x7f, 0x80, 0x80, 0x7b, 0x79, 0x7a, 0x7f, 0x80, 0x7f, 0x82, 0x85, + 0x85, 0x82, 0x7f, 0x80, 0x7f, 0x7b, 0x79, 0x7b, 0x7f, 0x80, 0x7f, 0x83, + 0x85, 0x85, 0x81, 0x7f, 0x80, 0x7e, 0x7a, 0x79, 0x7c, 0x80, 0x7f, 0x7f, + 0x83, 0x86, 0x85, 0x81, 0x7f, 0x80, 0x7e, 0x7a, 0x7a, 0x7d, 0x80, 0x7f, + 0x80, 0x84, 0x86, 0x84, 0x80, 0x7f, 0x80, 0x7d, 0x7a, 0x7a, 0x7d, 0x80, + 0x7f, 0x80, 0x84, 0x86, 0x84, 0x80, 0x7f, 0x80, 0x7c, 0x7a, 0x7a, 0x7e, + 0x80, 0x7f, 0x81, 0x85, 0x85, 0x83, 0x7f, 0x80, 0x7f, 0x7c, 0x7a, 0x7b, + 0x7f, 0x80, 0x7f, 0x82, 0x85, 0x85, 0x82, 0x7f, 0x80, 0x7f, 0x7b, 0x7a, + 0x7b, 0x7f, 0x80, 0x7f, 0x82, 0x85, 0x85, 0x81, 0x7f, 0x80, 0x7e, 0x7b, + 0x7a, 0x7c, 0x80, 0x80, 0x7f, 0x83, 0x85, 0x84, 0x81, 0x7f, 0x80, 0x7e, + 0x7a, 0x7a, 0x7d, 0x80, 0x7f, 0x80, 0x84, 0x85, 0x84, 0x80, 0x7f, 0x80, + 0x7d, 0x7a, 0x7a, 0x7d, 0x80, 0x7f, 0x80, 0x84, 0x85, 0x83, 0x80, 0x7f, + 0x80, 0x7d, 0x7a, 0x7b, 0x7e, 0x80, 0x7f, 0x81, 0x84, 0x85, 0x83, 0x7f, + 0x80, 0x7f, 0x7c, 0x7a, 0x7b, 0x7f, 0x80, 0x7f, 0x82, 0x85, 0x85, 0x82, + 0x7f, 0x80, 0x7f, 0x7b, 0x7a, 0x7c, 0x7f, 0x80, 0x7f, 0x82, 0x85, 0x84, + 0x81, 0x7f, 0x80, 0x7e, 0x7b, 0x7a, 0x7c, 0x80, 0x80, 0x7f, 0x83, 0x85, + 0x84, 0x81, 0x7f, 0x80, 0x7e, 0x7b, 0x7a, 0x7d, 0x80, 0x7f, 0x80, 0x83, + 0x85, 0x84, 0x80, 0x7f, 0x80, 0x7d, 0x7a, 0x7a, 0x7d, 0x80, 0x7f, 0x80, + 0x84, 0x85, 0x83, 0x80, 0x7f, 0x80, 0x7d, 0x7a, 0x7b, 0x7e, 0x80, 0x7f, + 0x81, 0x84, 0x85, 0x83, 0x7f, 0x80, 0x80, 0x7c, 0x7a, 0x7b, 0x7f, 0x80, + 0x7f, 0x81, 0x84, 0x85, 0x82, 0x7f, 0x80, 0x7f, 0x7c, 0x7a, 0x7c, 0x7f, + 0x80, 0x7f, 0x82, 0x85, 0x84, 0x81, 0x7f, 0x80, 0x7f, 0x7b, 0x7a, 0x7c, + 0x80, 0x7f, 0x7f, 0x82, 0x85, 0x84, 0x81, 0x7f, 0x80, 0x7e, 0x7b, 0x7a, + 0x7d, 0x80, 0x7f, 0x80, 0x83, 0x85, 0x83, 0x80, 0x7f, 0x80, 0x7d, 0x7b, + 0x7b, 0x7e, 0x80, 0x7f, 0x80, 0x84, 0x85, 0x83, 0x80, 0x7f, 0x80, 0x7d, + 0x7b, 0x7b, 0x7e, 0x80, 0x7f, 0x81, 0x84, 0x84, 0x82, 0x7f, 0x80, 0x80, + 0x7c, 0x7b, 0x7c, 0x7f, 0x80, 0x7f, 0x81, 0x84, 0x84, 0x82, 0x7f, 0x80, + 0x7f, 0x7c, 0x7b, 0x7c, 0x7f, 0x80, 0x7f, 0x82, 0x84, 0x84, 0x81, 0x7f, + 0x80, 0x7f, 0x7c, 0x7b, 0x7d, 0x80, 0x80, 0x7f, 0x82, 0x84, 0x84, 0x81, + 0x7f, 0x80, 0x7e, 0x7b, 0x7b, 0x7d, 0x80, 0x7f, 0x80, 0x83, 0x84, 0x83, + 0x80, 0x7f, 0x80, 0x7e, 0x7b, 0x7b, 0x7e, 0x80, 0x7f, 0x80, 0x83, 0x84, + 0x83, 0x80, 0x7f, 0x80, 0x7d, 0x7b, 0x7b, 0x7e, 0x80, 0x7f, 0x81, 0x83, + 0x84, 0x82, 0x7f, 0x80, 0x80, 0x7d, 0x7b, 0x7c, 0x7f, 0x80, 0x7f, 0x81, + 0x84, 0x84, 0x82, 0x7f, 0x80, 0x7f, 0x7c, 0x7b, 0x7c, 0x7f, 0x80, 0x7f, + 0x82, 0x84, 0x84, 0x81, 0x7f, 0x80, 0x7f, 0x7c, 0x7b, 0x7d, 0x80, 0x80, + 0x7f, 0x82, 0x84, 0x83, 0x81, 0x7f, 0x80, 0x7e, 0x7c, 0x7b, 0x7d, 0x80, + 0x7f, 0x80, 0x83, 0x84, 0x83, 0x80, 0x7f, 0x80, 0x7e, 0x7b, 0x7b, 0x7e, + 0x80, 0x7f, 0x80, 0x83, 0x84, 0x82, 0x80, 0x7f, 0x80, 0x7d, 0x7b, 0x7c, + 0x7e, 0x80, 0x7f, 0x80, 0x83, 0x84, 0x82, 0x7f, 0x80, 0x80, 0x7d, 0x7b, + 0x7c, 0x7f, 0x80, 0x7f, 0x81, 0x83, 0x84, 0x81, 0x7f, 0x80, 0x7f, 0x7c, + 0x7b, 0x7d, 0x7f, 0x80, 0x7f, 0x81, 0x83, 0x83, 0x81, 0x7f, 0x80, 0x7f, + 0x7c, 0x7b, 0x7d, 0x80, 0x7f, 0x7f, 0x82, 0x84, 0x83, 0x80, 0x7f, 0x80, + 0x7e, 0x7c, 0x7c, 0x7d, 0x80, 0x7f, 0x80, 0x82, 0x84, 0x83, 0x80, 0x7f, + 0x80, 0x7e, 0x7c, 0x7c, 0x7e, 0x80, 0x7f, 0x80, 0x83, 0x84, 0x82, 0x80, + 0x7f, 0x80, 0x7e, 0x7c, 0x7c, 0x7e, 0x80, 0x7f, 0x80, 0x83, 0x83, 0x82, + 0x7f, 0x7f, 0x80, 0x7d, 0x7c, 0x7c, 0x7f, 0x80, 0x7f, 0x81, 0x83, 0x83, + 0x81, 0x7f, 0x80, 0x7f, 0x7d, 0x7c, 0x7d, 0x7f, 0x80, 0x7f, 0x81, 0x83, + 0x83, 0x81, 0x7f, 0x80, 0x7f, 0x7c, 0x7c, 0x7d, 0x80, 0x80, 0x7f, 0x82, + 0x83, 0x83, 0x80, 0x7f, 0x80, 0x7f, 0x7c, 0x7c, 0x7e, 0x80, 0x7f, 0x80, + 0x82, 0x83, 0x82, 0x80, 0x7f, 0x80, 0x7e, 0x7c, 0x7c, 0x7e, 0x80, 0x7f, + 0x80, 0x82, 0x83, 0x82, 0x80, 0x7f, 0x80, 0x7e, 0x7c, 0x7c, 0x7e, 0x80, + 0x7f, 0x80, 0x83, 0x83, 0x82, 0x7f, 0x7f, 0x80, 0x7d, 0x7c, 0x7d, 0x7f, + 0x80, 0x7f, 0x81, 0x83, 0x83, 0x81, 0x7f, 0x80, 0x7f, 0x7d, 0x7c, 0x7d, + 0x7f, 0x80, 0x7f, 0x81, 0x83, 0x83, 0x81, 0x7f, 0x80, 0x7f, 0x7d, 0x7c, + 0x7d, 0x80, 0x80, 0x7f, 0x81, 0x83, 0x82, 0x80, 0x7f, 0x80, 0x7f, 0x7d, + 0x7c, 0x7e, 0x80, 0x7f, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7f, 0x80, 0x7e, + 0x7c, 0x7c, 0x7e, 0x80, 0x7f, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7f, 0x80, + 0x7e, 0x7c, 0x7d, 0x7f, 0x80, 0x7f, 0x80, 0x82, 0x83, 0x81, 0x7f, 0x80, + 0x80, 0x7e, 0x7c, 0x7d, 0x7f, 0x80, 0x7f, 0x81, 0x82, 0x82, 0x81, 0x7f, + 0x80, 0x7f, 0x7d, 0x7c, 0x7d, 0x7f, 0x80, 0x7f, 0x81, 0x82, 0x82, 0x81, + 0x7f, 0x80, 0x7f, 0x7d, 0x7c, 0x7e, 0x80, 0x80, 0x7f, 0x81, 0x82, 0x82, + 0x80, 0x7f, 0x80, 0x7f, 0x7d, 0x7d, 0x7e, 0x80, 0x7f, 0x80, 0x82, 0x82, + 0x82, 0x80, 0x7f, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7f, 0x80, 0x82, + 0x82, 0x81, 0x80, 0x7f, 0x80, 0x7e, 0x7d, 0x7d, 0x7f, 0x80, 0x7f, 0x80, + 0x82, 0x82, 0x81, 0x7f, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7f, 0x80, 0x7f, + 0x80, 0x82, 0x82, 0x81, 0x7f, 0x80, 0x7f, 0x7e, 0x7d, 0x7d, 0x7f, 0x80, + 0x7f, 0x81, 0x82, 0x82, 0x80, 0x7f, 0x80, 0x7f, 0x7d, 0x7d, 0x7e, 0x80, + 0x80, 0x7f, 0x81, 0x82, 0x82, 0x80, 0x7f, 0x80, 0x7f, 0x7d, 0x7d, 0x7e, + 0x80, 0x7f, 0x80, 0x81, 0x82, 0x82, 0x80, 0x7f, 0x80, 0x7f, 0x7d, 0x7d, + 0x7e, 0x80, 0x7f, 0x80, 0x81, 0x82, 0x81, 0x80, 0x7f, 0x80, 0x7e, 0x7d, + 0x7d, 0x7f, 0x80, 0x7f, 0x80, 0x82, 0x82, 0x81, 0x7f, 0x80, 0x80, 0x7e, + 0x7d, 0x7d, 0x7f, 0x80, 0x7f, 0x80, 0x82, 0x82, 0x81, 0x7f, 0x80, 0x7f, + 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, 0x81, 0x82, 0x82, 0x80, 0x7f, 0x80, + 0x7f, 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, 0x81, 0x82, 0x82, 0x80, 0x7f, + 0x80, 0x7f, 0x7d, 0x7d, 0x7e, 0x80, 0x7f, 0x7f, 0x81, 0x82, 0x81, 0x80, + 0x7f, 0x80, 0x7f, 0x7d, 0x7d, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x82, 0x81, + 0x80, 0x7f, 0x80, 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x82, + 0x81, 0x7f, 0x80, 0x80, 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, + 0x82, 0x81, 0x7f, 0x80, 0x7f, 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, 0x80, + 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, + 0x81, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x80, 0x7f, + 0x7f, 0x81, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, + 0x7f, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, + 0x80, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x7f, 0x80, 0x80, 0x7e, 0x7e, 0x7e, + 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, + 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, + 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, + 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x7f, 0x81, 0x81, 0x81, 0x80, 0x7f, 0x80, + 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7f, + 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7f, + 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x80, + 0x7f, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, + 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x81, + 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x7f, 0x80, + 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x81, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, + 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, + 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, + 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, + 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f +}; +const uint32_t coin05_16k_raw_len = 14437; \ No newline at end of file diff --git a/SampleSrc/TestBuild/coin05_8k.ino b/SampleSrc/TestBuild/coin05_8k.ino new file mode 100644 index 0000000..bcc4b72 --- /dev/null +++ b/SampleSrc/TestBuild/coin05_8k.ino @@ -0,0 +1,605 @@ +const uint8_t coin05_8k_raw[] PROGMEM = { + 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, + 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x7f, 0x80, + 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7e, 0x81, 0x7d, 0x82, 0x7c, 0x8a, 0xad, 0xb8, 0xd2, + 0xbd, 0x8e, 0x76, 0x52, 0x4a, 0x6f, 0x84, 0xa4, 0xb8, 0x97, 0x7e, 0x63, + 0x45, 0x5c, 0x7e, 0x97, 0xbe, 0xb2, 0x8a, 0x6c, 0x40, 0x3e, 0x6b, 0x8d, + 0xbb, 0xcc, 0xa1, 0x7a, 0x4c, 0x2a, 0x50, 0x7e, 0xac, 0xdf, 0xc3, 0x88, + 0x57, 0x1b, 0x27, 0x6e, 0xa3, 0xe0, 0xe7, 0xa1, 0x64, 0x2e, 0x16, 0x4e, + 0x91, 0xc4, 0xe2, 0xbd, 0x7b, 0x46, 0x27, 0x38, 0x6e, 0xa9, 0xcf, 0xce, + 0xa7, 0x6d, 0x3b, 0x2f, 0x4c, 0x7d, 0xb5, 0xcf, 0xb5, 0x8c, 0x5c, 0x32, + 0x45, 0x70, 0x94, 0xc8, 0xc7, 0x95, 0x74, 0x3e, 0x28, 0x5c, 0x88, 0xba, + 0xe2, 0xba, 0x7f, 0x4c, 0x18, 0x2f, 0x70, 0xa6, 0xe0, 0xdc, 0x99, 0x67, + 0x2f, 0x21, 0x62, 0x91, 0xbe, 0xdc, 0xa4, 0x72, 0x53, 0x29, 0x50, 0x86, + 0x9d, 0xc8, 0xb8, 0x83, 0x6f, 0x48, 0x43, 0x73, 0x88, 0xa9, 0xbd, 0x96, + 0x7c, 0x61, 0x42, 0x5f, 0x7d, 0x95, 0xb9, 0xaa, 0x88, 0x73, 0x4d, 0x4d, + 0x72, 0x86, 0xaa, 0xb8, 0x94, 0x7d, 0x5f, 0x45, 0x63, 0x7f, 0x98, 0xb9, + 0xa6, 0x85, 0x70, 0x4b, 0x51, 0x75, 0x89, 0xac, 0xb5, 0x91, 0x7b, 0x5d, + 0x47, 0x66, 0x80, 0x99, 0xb8, 0xa3, 0x83, 0x6f, 0x4a, 0x53, 0x77, 0x8a, + 0xaf, 0xb3, 0x8f, 0x7a, 0x59, 0x46, 0x69, 0x81, 0x9e, 0xb9, 0x9f, 0x82, + 0x6b, 0x48, 0x57, 0x78, 0x8c, 0xb1, 0xb0, 0x8c, 0x79, 0x56, 0x49, 0x6c, + 0x82, 0xa0, 0xb9, 0x9c, 0x81, 0x69, 0x47, 0x5a, 0x7a, 0x8f, 0xb3, 0xad, + 0x8a, 0x77, 0x53, 0x4b, 0x6f, 0x84, 0xa4, 0xb8, 0x99, 0x7f, 0x65, 0x46, + 0x5e, 0x7c, 0x93, 0xb5, 0xaa, 0x88, 0x74, 0x4f, 0x4d, 0x72, 0x85, 0xa7, + 0xb7, 0x95, 0x7e, 0x62, 0x46, 0x62, 0x7e, 0x95, 0xb7, 0xa7, 0x85, 0x72, + 0x4d, 0x50, 0x74, 0x87, 0xab, 0xb5, 0x92, 0x7c, 0x5e, 0x46, 0x65, 0x7f, + 0x99, 0xb8, 0xa4, 0x84, 0x6f, 0x4b, 0x53, 0x76, 0x8a, 0xad, 0xb3, 0x90, + 0x7a, 0x5b, 0x47, 0x68, 0x80, 0x9c, 0xb8, 0xa1, 0x82, 0x6c, 0x49, 0x56, + 0x78, 0x8c, 0xb0, 0xb1, 0x8d, 0x79, 0x58, 0x48, 0x6b, 0x82, 0x9f, 0xb8, + 0x9d, 0x81, 0x6a, 0x48, 0x59, 0x7a, 0x8e, 0xb2, 0xae, 0x8b, 0x77, 0x54, + 0x4a, 0x6e, 0x83, 0xa2, 0xb8, 0x9a, 0x80, 0x67, 0x47, 0x5d, 0x7b, 0x91, + 0xb4, 0xab, 0x88, 0x75, 0x52, 0x4d, 0x71, 0x85, 0xa5, 0xb7, 0x96, 0x7e, + 0x63, 0x47, 0x60, 0x7d, 0x94, 0xb6, 0xa8, 0x87, 0x73, 0x4f, 0x4f, 0x73, + 0x86, 0xa8, 0xb5, 0x93, 0x7d, 0x60, 0x47, 0x64, 0x7e, 0x97, 0xb7, 0xa5, + 0x85, 0x71, 0x4c, 0x52, 0x75, 0x88, 0xab, 0xb4, 0x90, 0x7b, 0x5d, 0x47, + 0x67, 0x80, 0x99, 0xb7, 0xa1, 0x83, 0x6e, 0x4b, 0x55, 0x78, 0x8b, 0xae, + 0xb1, 0x8d, 0x7a, 0x59, 0x49, 0x6b, 0x81, 0x9d, 0xb7, 0x9d, 0x81, 0x6b, + 0x49, 0x59, 0x7a, 0x8d, 0xb0, 0xaf, 0x8b, 0x78, 0x56, 0x4a, 0x6d, 0x83, + 0xa0, 0xb7, 0x9a, 0x80, 0x68, 0x49, 0x5c, 0x7b, 0x8f, 0xb2, 0xac, 0x89, + 0x76, 0x53, 0x4c, 0x70, 0x84, 0xa3, 0xb7, 0x98, 0x7f, 0x65, 0x47, 0x5f, + 0x7c, 0x92, 0xb4, 0xa9, 0x87, 0x74, 0x51, 0x4e, 0x72, 0x86, 0xa6, 0xb6, + 0x94, 0x7e, 0x62, 0x48, 0x63, 0x7e, 0x95, 0xb5, 0xa6, 0x85, 0x72, 0x4f, + 0x51, 0x75, 0x87, 0xa9, 0xb4, 0x91, 0x7c, 0x5f, 0x48, 0x66, 0x7f, 0x98, + 0xb7, 0xa2, 0x83, 0x70, 0x4c, 0x54, 0x77, 0x89, 0xac, 0xb2, 0x8f, 0x7b, + 0x5c, 0x49, 0x69, 0x80, 0x9b, 0xb7, 0x9f, 0x82, 0x6d, 0x4b, 0x58, 0x79, + 0x8b, 0xaf, 0xaf, 0x8c, 0x79, 0x59, 0x4a, 0x6c, 0x82, 0x9e, 0xb7, 0x9c, + 0x81, 0x6a, 0x4a, 0x5b, 0x7a, 0x8e, 0xb1, 0xad, 0x8a, 0x77, 0x56, 0x4c, + 0x6f, 0x83, 0xa1, 0xb6, 0x98, 0x7f, 0x67, 0x49, 0x5e, 0x7c, 0x90, 0xb2, + 0xa9, 0x88, 0x76, 0x53, 0x4e, 0x72, 0x84, 0xa4, 0xb5, 0x95, 0x7e, 0x64, + 0x48, 0x62, 0x7d, 0x93, 0xb4, 0xa6, 0x86, 0x74, 0x51, 0x51, 0x74, 0x86, + 0xa6, 0xb3, 0x92, 0x7d, 0x62, 0x49, 0x65, 0x7e, 0x95, 0xb4, 0xa3, 0x84, + 0x71, 0x4f, 0x54, 0x76, 0x88, 0xaa, 0xb1, 0x8f, 0x7c, 0x5e, 0x4a, 0x68, + 0x80, 0x99, 0xb5, 0xa0, 0x83, 0x6f, 0x4d, 0x57, 0x78, 0x8a, 0xac, 0xaf, + 0x8d, 0x7a, 0x5b, 0x4b, 0x6b, 0x81, 0x9c, 0xb6, 0x9c, 0x81, 0x6b, 0x4b, + 0x5a, 0x7a, 0x8d, 0xaf, 0xad, 0x8a, 0x78, 0x58, 0x4d, 0x6f, 0x83, 0x9f, + 0xb5, 0x99, 0x80, 0x69, 0x4b, 0x5e, 0x7c, 0x8f, 0xb0, 0xaa, 0x88, 0x76, + 0x55, 0x4f, 0x71, 0x84, 0xa2, 0xb4, 0x96, 0x7f, 0x66, 0x4a, 0x61, 0x7d, + 0x91, 0xb1, 0xa7, 0x87, 0x74, 0x53, 0x51, 0x73, 0x86, 0xa5, 0xb3, 0x94, + 0x7e, 0x63, 0x4a, 0x64, 0x7e, 0x94, 0xb3, 0xa4, 0x85, 0x73, 0x51, 0x54, + 0x75, 0x87, 0xa7, 0xb1, 0x91, 0x7c, 0x60, 0x4b, 0x67, 0x7f, 0x97, 0xb4, + 0xa1, 0x84, 0x70, 0x4f, 0x56, 0x77, 0x89, 0xaa, 0xaf, 0x8e, 0x7b, 0x5d, + 0x4c, 0x6a, 0x80, 0x99, 0xb4, 0x9d, 0x82, 0x6e, 0x4d, 0x5a, 0x79, 0x8b, + 0xad, 0xad, 0x8c, 0x79, 0x5a, 0x4d, 0x6d, 0x82, 0x9d, 0xb4, 0x9a, 0x81, + 0x6b, 0x4c, 0x5c, 0x7b, 0x8d, 0xaf, 0xaa, 0x89, 0x78, 0x57, 0x4f, 0x70, + 0x83, 0x9f, 0xb3, 0x97, 0x81, 0x68, 0x4c, 0x5f, 0x7c, 0x8f, 0xb1, 0xa7, + 0x88, 0x76, 0x54, 0x52, 0x72, 0x84, 0xa2, 0xb3, 0x93, 0x7f, 0x65, 0x4b, + 0x63, 0x7e, 0x92, 0xb3, 0xa5, 0x86, 0x74, 0x52, 0x53, 0x73, 0x86, 0xa5, + 0xb3, 0x93, 0x7e, 0x61, 0x4a, 0x65, 0x7f, 0x95, 0xb4, 0xa2, 0x84, 0x72, + 0x4f, 0x56, 0x76, 0x88, 0xa9, 0xb0, 0x8e, 0x7c, 0x5e, 0x4c, 0x6a, 0x80, + 0x98, 0xb3, 0x9e, 0x83, 0x6f, 0x4f, 0x59, 0x78, 0x8b, 0xaa, 0xaf, 0x8c, + 0x7a, 0x5c, 0x4d, 0x6d, 0x82, 0x9b, 0xb3, 0x9b, 0x81, 0x6c, 0x4e, 0x5b, + 0x7b, 0x8c, 0xad, 0xab, 0x89, 0x78, 0x5a, 0x4f, 0x6f, 0x83, 0x9f, 0xb3, + 0x99, 0x7e, 0x69, 0x4b, 0x5f, 0x7d, 0x8f, 0xb0, 0xa6, 0x89, 0x73, 0x58, + 0x4e, 0x75, 0x83, 0xa4, 0xae, 0x99, 0x7c, 0x6a, 0x48, 0x65, 0x7a, 0x94, + 0xab, 0x83, 0x77, 0x50, 0x78, 0x7f, 0xaf, 0x8f, 0x82, 0x5b, 0x66, 0x80, + 0x98, 0xa4, 0x7d, 0x72, 0x51, 0x80, 0x84, 0xb2, 0x86, 0x81, 0x50, 0x6f, + 0x7e, 0xa3, 0x9f, 0x7e, 0x68, 0x56, 0x82, 0x89, 0xb3, 0x7f, 0x7e, 0x4e, + 0x77, 0x7d, 0xac, 0x92, 0x81, 0x5f, 0x5f, 0x82, 0x93, 0xab, 0x7d, 0x77, + 0x4e, 0x80, 0x80, 0xb1, 0x88, 0x81, 0x56, 0x6a, 0x7f, 0x9e, 0xa2, 0x7d, + 0x6f, 0x52, 0x82, 0x86, 0xb1, 0x81, 0x7f, 0x4f, 0x75, 0x7e, 0xa8, 0x98, + 0x7f, 0x64, 0x5a, 0x83, 0x8f, 0xaf, 0x7e, 0x7a, 0x4b, 0x7c, 0x7f, 0xaf, + 0x8e, 0x81, 0x59, 0x65, 0x80, 0x98, 0xa8, 0x7d, 0x74, 0x50, 0x81, 0x82, + 0xb2, 0x84, 0x82, 0x52, 0x6f, 0x7e, 0xa2, 0x9d, 0x7e, 0x6b, 0x56, 0x82, + 0x89, 0xb0, 0x80, 0x7e, 0x4e, 0x78, 0x7d, 0xab, 0x93, 0x81, 0x60, 0x60, + 0x80, 0x93, 0xab, 0x7e, 0x79, 0x4e, 0x7e, 0x80, 0xb0, 0x89, 0x82, 0x56, + 0x6b, 0x7f, 0x9d, 0xa2, 0x7e, 0x6f, 0x53, 0x82, 0x85, 0xb2, 0x82, 0x81, + 0x50, 0x74, 0x7d, 0xa7, 0x98, 0x80, 0x65, 0x5a, 0x81, 0x8d, 0xaf, 0x7e, + 0x7d, 0x4d, 0x7c, 0x7e, 0xae, 0x8e, 0x82, 0x5b, 0x65, 0x80, 0x97, 0xa7, + 0x7e, 0x75, 0x50, 0x80, 0x81, 0xb2, 0x85, 0x82, 0x53, 0x6f, 0x7e, 0xa1, + 0x9d, 0x7f, 0x6b, 0x57, 0x82, 0x88, 0xb0, 0x80, 0x7f, 0x4f, 0x78, 0x7d, + 0xaa, 0x93, 0x81, 0x61, 0x5f, 0x81, 0x92, 0xab, 0x7e, 0x79, 0x4f, 0x7e, + 0x7f, 0xaf, 0x8a, 0x82, 0x58, 0x6a, 0x7f, 0x9c, 0xa2, 0x7e, 0x70, 0x53, + 0x81, 0x84, 0xb1, 0x83, 0x80, 0x51, 0x73, 0x7e, 0xa5, 0x98, 0x80, 0x66, + 0x5b, 0x81, 0x8c, 0xad, 0x7f, 0x7c, 0x4f, 0x7b, 0x7e, 0xad, 0x8e, 0x81, + 0x5c, 0x65, 0x80, 0x97, 0xa7, 0x7d, 0x75, 0x50, 0x80, 0x82, 0xb0, 0x86, + 0x81, 0x54, 0x6f, 0x7e, 0xa1, 0x9e, 0x7e, 0x6c, 0x56, 0x82, 0x88, 0xaf, + 0x80, 0x7e, 0x50, 0x77, 0x7e, 0xa9, 0x93, 0x80, 0x61, 0x60, 0x81, 0x92, + 0xaa, 0x7d, 0x79, 0x4f, 0x7e, 0x80, 0xaf, 0x89, 0x81, 0x58, 0x6a, 0x7f, + 0x9b, 0xa2, 0x7e, 0x70, 0x54, 0x81, 0x84, 0xb0, 0x82, 0x81, 0x52, 0x74, + 0x7e, 0xa4, 0x98, 0x80, 0x67, 0x5b, 0x81, 0x8c, 0xad, 0x7e, 0x7c, 0x4f, + 0x7b, 0x7e, 0xac, 0x8e, 0x81, 0x5d, 0x65, 0x80, 0x96, 0xa6, 0x7e, 0x75, + 0x51, 0x80, 0x82, 0xb0, 0x86, 0x81, 0x55, 0x6f, 0x7e, 0xa0, 0x9d, 0x7e, + 0x6c, 0x57, 0x82, 0x88, 0xaf, 0x81, 0x7f, 0x51, 0x77, 0x7d, 0xa8, 0x93, + 0x81, 0x62, 0x5f, 0x81, 0x90, 0xaa, 0x7e, 0x79, 0x50, 0x7e, 0x7f, 0xad, + 0x8a, 0x82, 0x5a, 0x6a, 0x7f, 0x9a, 0xa2, 0x7e, 0x71, 0x54, 0x81, 0x84, + 0xaf, 0x83, 0x80, 0x53, 0x73, 0x7e, 0xa4, 0x98, 0x7f, 0x68, 0x5b, 0x81, + 0x8b, 0xad, 0x7f, 0x7d, 0x50, 0x7a, 0x7e, 0xab, 0x8f, 0x81, 0x5e, 0x64, + 0x80, 0x95, 0xa6, 0x7d, 0x76, 0x52, 0x80, 0x81, 0xae, 0x86, 0x81, 0x56, + 0x6f, 0x7e, 0x9f, 0x9d, 0x7e, 0x6d, 0x57, 0x82, 0x87, 0xae, 0x80, 0x7f, + 0x51, 0x77, 0x7d, 0xa7, 0x93, 0x80, 0x64, 0x60, 0x81, 0x8f, 0xaa, 0x7e, + 0x7a, 0x51, 0x7e, 0x7f, 0xad, 0x8a, 0x81, 0x5a, 0x69, 0x7f, 0x99, 0xa2, + 0x7e, 0x72, 0x54, 0x81, 0x84, 0xae, 0x83, 0x81, 0x54, 0x73, 0x7e, 0xa2, + 0x98, 0x7f, 0x69, 0x5c, 0x81, 0x8a, 0xac, 0x7f, 0x7e, 0x52, 0x7b, 0x7d, + 0xa9, 0x8e, 0x82, 0x5f, 0x65, 0x80, 0x94, 0xa6, 0x7e, 0x77, 0x53, 0x7f, + 0x80, 0xae, 0x86, 0x82, 0x57, 0x6f, 0x7e, 0x9d, 0x9c, 0x7f, 0x6e, 0x58, + 0x82, 0x86, 0xad, 0x80, 0x80, 0x53, 0x77, 0x7d, 0xa6, 0x93, 0x81, 0x64, + 0x60, 0x81, 0x8f, 0xa9, 0x7e, 0x7a, 0x52, 0x7e, 0x7f, 0xac, 0x8a, 0x82, + 0x5b, 0x6a, 0x7f, 0x98, 0xa1, 0x7e, 0x72, 0x55, 0x81, 0x83, 0xae, 0x83, + 0x81, 0x54, 0x74, 0x7d, 0xa2, 0x97, 0x80, 0x69, 0x5c, 0x81, 0x8a, 0xab, + 0x7f, 0x7e, 0x52, 0x7b, 0x7e, 0xa9, 0x8e, 0x81, 0x60, 0x65, 0x80, 0x93, + 0xa5, 0x7e, 0x77, 0x53, 0x80, 0x80, 0xad, 0x86, 0x82, 0x58, 0x6f, 0x7e, + 0x9d, 0x9d, 0x7e, 0x6e, 0x58, 0x82, 0x86, 0xad, 0x80, 0x80, 0x53, 0x78, + 0x7d, 0xa5, 0x93, 0x80, 0x65, 0x61, 0x81, 0x8e, 0xa9, 0x7e, 0x7b, 0x52, + 0x7e, 0x7f, 0xab, 0x8a, 0x82, 0x5c, 0x6a, 0x7f, 0x98, 0xa1, 0x7e, 0x73, + 0x55, 0x81, 0x83, 0xad, 0x83, 0x81, 0x55, 0x73, 0x7e, 0xa1, 0x98, 0x7f, + 0x6a, 0x5c, 0x81, 0x8a, 0xab, 0x7f, 0x7e, 0x53, 0x7a, 0x7e, 0xa8, 0x8f, + 0x81, 0x61, 0x65, 0x80, 0x93, 0xa5, 0x7e, 0x77, 0x53, 0x7f, 0x80, 0xac, + 0x87, 0x82, 0x59, 0x6e, 0x7e, 0x9c, 0x9d, 0x7f, 0x6f, 0x58, 0x81, 0x86, + 0xad, 0x81, 0x80, 0x54, 0x77, 0x7e, 0xa4, 0x93, 0x80, 0x66, 0x60, 0x81, + 0x8e, 0xa8, 0x7e, 0x7b, 0x53, 0x7d, 0x7f, 0xaa, 0x8a, 0x81, 0x5d, 0x6a, + 0x7f, 0x97, 0xa1, 0x7e, 0x74, 0x56, 0x81, 0x83, 0xac, 0x83, 0x81, 0x56, + 0x73, 0x7e, 0xa0, 0x98, 0x7f, 0x6b, 0x5c, 0x81, 0x89, 0xaa, 0x7f, 0x7e, + 0x53, 0x7b, 0x7e, 0xa7, 0x8e, 0x81, 0x62, 0x65, 0x80, 0x92, 0xa5, 0x7e, + 0x78, 0x54, 0x7f, 0x80, 0xac, 0x87, 0x82, 0x5a, 0x6e, 0x7e, 0x9b, 0x9d, + 0x7e, 0x70, 0x58, 0x81, 0x85, 0xac, 0x81, 0x80, 0x54, 0x76, 0x7e, 0xa4, + 0x94, 0x80, 0x66, 0x60, 0x81, 0x8d, 0xa8, 0x7e, 0x7b, 0x53, 0x7d, 0x7f, + 0xaa, 0x8b, 0x81, 0x5d, 0x69, 0x80, 0x96, 0xa1, 0x7d, 0x74, 0x56, 0x81, + 0x83, 0xab, 0x83, 0x81, 0x57, 0x73, 0x7e, 0x9f, 0x98, 0x7f, 0x6c, 0x5d, + 0x81, 0x88, 0xaa, 0x7f, 0x7e, 0x54, 0x7a, 0x7e, 0xa6, 0x8e, 0x81, 0x63, + 0x65, 0x80, 0x91, 0xa4, 0x7d, 0x78, 0x55, 0x7f, 0x80, 0xaa, 0x86, 0x82, + 0x5b, 0x6e, 0x7e, 0x9a, 0x9c, 0x7f, 0x70, 0x5a, 0x81, 0x85, 0xaa, 0x81, + 0x80, 0x56, 0x77, 0x7d, 0xa2, 0x93, 0x80, 0x67, 0x61, 0x81, 0x8d, 0xa7, + 0x7e, 0x7c, 0x54, 0x7d, 0x7e, 0xa9, 0x8b, 0x81, 0x5f, 0x69, 0x7f, 0x96, + 0xa0, 0x7e, 0x75, 0x57, 0x80, 0x82, 0xaa, 0x84, 0x81, 0x59, 0x73, 0x7d, + 0x9e, 0x97, 0x80, 0x6d, 0x5d, 0x81, 0x88, 0xa9, 0x7f, 0x7e, 0x55, 0x7a, + 0x7e, 0xa5, 0x8e, 0x81, 0x63, 0x66, 0x80, 0x91, 0xa4, 0x7e, 0x79, 0x55, + 0x7f, 0x80, 0xaa, 0x87, 0x82, 0x5b, 0x6e, 0x7f, 0x9a, 0x9c, 0x7e, 0x71, + 0x5a, 0x81, 0x85, 0xaa, 0x81, 0x80, 0x57, 0x76, 0x7d, 0xa2, 0x93, 0x80, + 0x68, 0x61, 0x81, 0x8c, 0xa7, 0x7e, 0x7c, 0x55, 0x7d, 0x7f, 0xa7, 0x8a, + 0x81, 0x5f, 0x6a, 0x80, 0x95, 0xa0, 0x7d, 0x75, 0x58, 0x81, 0x82, 0xaa, + 0x84, 0x81, 0x59, 0x72, 0x7e, 0x9d, 0x98, 0x7f, 0x6d, 0x5d, 0x81, 0x88, + 0xa9, 0x7f, 0x7e, 0x56, 0x7a, 0x7e, 0xa5, 0x8f, 0x80, 0x64, 0x65, 0x81, + 0x90, 0xa4, 0x7e, 0x79, 0x56, 0x7f, 0x80, 0xa9, 0x87, 0x81, 0x5d, 0x6e, + 0x7f, 0x99, 0x9c, 0x7e, 0x71, 0x5a, 0x81, 0x85, 0xa9, 0x81, 0x80, 0x58, + 0x76, 0x7e, 0xa1, 0x93, 0x80, 0x69, 0x61, 0x81, 0x8b, 0xa6, 0x7e, 0x7c, + 0x56, 0x7c, 0x7e, 0xa6, 0x8b, 0x81, 0x61, 0x6a, 0x80, 0x94, 0xa0, 0x7e, + 0x76, 0x58, 0x80, 0x82, 0xa9, 0x84, 0x81, 0x5a, 0x72, 0x7e, 0x9c, 0x98, + 0x7f, 0x6e, 0x5e, 0x81, 0x87, 0xa8, 0x80, 0x7f, 0x57, 0x79, 0x7e, 0xa3, + 0x8f, 0x81, 0x65, 0x65, 0x81, 0x8f, 0xa3, 0x7e, 0x7a, 0x57, 0x7f, 0x7f, + 0xa7, 0x87, 0x82, 0x5e, 0x6e, 0x7e, 0x97, 0x9c, 0x7e, 0x73, 0x5b, 0x81, + 0x83, 0xa9, 0x82, 0x81, 0x58, 0x76, 0x7d, 0xa0, 0x93, 0x80, 0x6a, 0x61, + 0x81, 0x8a, 0xa6, 0x7e, 0x7d, 0x57, 0x7c, 0x7e, 0xa6, 0x8b, 0x82, 0x62, + 0x6a, 0x80, 0x93, 0xa0, 0x7d, 0x76, 0x59, 0x81, 0x81, 0xa8, 0x84, 0x81, + 0x5b, 0x72, 0x7e, 0x9c, 0x98, 0x7e, 0x6e, 0x5e, 0x82, 0x87, 0xa7, 0x7f, + 0x7f, 0x58, 0x7a, 0x7e, 0xa2, 0x8f, 0x80, 0x66, 0x66, 0x81, 0x8f, 0xa3, + 0x7e, 0x7a, 0x57, 0x7f, 0x7f, 0xa7, 0x87, 0x81, 0x5e, 0x6e, 0x7f, 0x97, + 0x9c, 0x7e, 0x73, 0x5b, 0x81, 0x84, 0xa8, 0x82, 0x80, 0x59, 0x76, 0x7e, + 0x9f, 0x93, 0x80, 0x6a, 0x62, 0x81, 0x8a, 0xa5, 0x7e, 0x7d, 0x58, 0x7d, + 0x7e, 0xa5, 0x8b, 0x81, 0x63, 0x6a, 0x80, 0x92, 0x9f, 0x7e, 0x77, 0x59, + 0x80, 0x81, 0xa8, 0x84, 0x81, 0x5c, 0x72, 0x7e, 0x9b, 0x97, 0x7f, 0x6f, + 0x5e, 0x81, 0x86, 0xa7, 0x80, 0x7f, 0x58, 0x7a, 0x7d, 0xa2, 0x8f, 0x80, + 0x67, 0x66, 0x81, 0x8e, 0xa2, 0x7e, 0x7b, 0x58, 0x7f, 0x7f, 0xa6, 0x87, + 0x81, 0x5f, 0x6e, 0x7f, 0x96, 0x9c, 0x7e, 0x73, 0x5b, 0x81, 0x83, 0xa8, + 0x82, 0x80, 0x5a, 0x76, 0x7e, 0x9e, 0x94, 0x80, 0x6b, 0x62, 0x81, 0x8a, + 0xa5, 0x7f, 0x7d, 0x58, 0x7c, 0x7e, 0xa4, 0x8b, 0x81, 0x63, 0x6a, 0x80, + 0x91, 0xa0, 0x7e, 0x77, 0x5a, 0x80, 0x81, 0xa7, 0x84, 0x81, 0x5d, 0x72, + 0x7e, 0x99, 0x97, 0x7f, 0x70, 0x5f, 0x81, 0x86, 0xa6, 0x80, 0x7f, 0x59, + 0x79, 0x7e, 0xa1, 0x8f, 0x80, 0x68, 0x66, 0x81, 0x8d, 0xa2, 0x7e, 0x7b, + 0x59, 0x7e, 0x7f, 0xa6, 0x87, 0x81, 0x60, 0x6e, 0x7f, 0x96, 0x9b, 0x7e, + 0x74, 0x5c, 0x81, 0x83, 0xa7, 0x81, 0x80, 0x5b, 0x76, 0x7e, 0x9d, 0x93, + 0x7f, 0x6c, 0x62, 0x81, 0x89, 0xa4, 0x7e, 0x7d, 0x59, 0x7c, 0x7e, 0xa3, + 0x8b, 0x81, 0x64, 0x6a, 0x80, 0x91, 0x9f, 0x7e, 0x78, 0x5a, 0x80, 0x81, + 0xa6, 0x84, 0x81, 0x5d, 0x72, 0x7e, 0x99, 0x97, 0x7f, 0x70, 0x5f, 0x81, + 0x86, 0xa6, 0x80, 0x7f, 0x5a, 0x79, 0x7e, 0xa0, 0x8f, 0x80, 0x68, 0x66, + 0x80, 0x8d, 0xa1, 0x7e, 0x7b, 0x5a, 0x7e, 0x7f, 0xa4, 0x87, 0x81, 0x61, + 0x6e, 0x7f, 0x95, 0x9b, 0x7e, 0x74, 0x5c, 0x81, 0x83, 0xa6, 0x82, 0x80, + 0x5c, 0x76, 0x7e, 0x9c, 0x93, 0x80, 0x6d, 0x62, 0x81, 0x89, 0xa4, 0x7f, + 0x7e, 0x5a, 0x7c, 0x7e, 0xa2, 0x8b, 0x81, 0x65, 0x6a, 0x80, 0x90, 0x9f, + 0x7e, 0x78, 0x5b, 0x7f, 0x81, 0xa5, 0x85, 0x81, 0x5e, 0x72, 0x7f, 0x99, + 0x97, 0x7e, 0x71, 0x5f, 0x81, 0x86, 0xa5, 0x80, 0x7f, 0x5b, 0x79, 0x7e, + 0x9f, 0x8f, 0x80, 0x69, 0x66, 0x81, 0x8c, 0xa1, 0x7e, 0x7b, 0x5a, 0x7e, + 0x7f, 0xa4, 0x88, 0x81, 0x62, 0x6e, 0x7f, 0x94, 0x9b, 0x7e, 0x75, 0x5d, + 0x81, 0x83, 0xa5, 0x82, 0x81, 0x5d, 0x76, 0x7e, 0x9c, 0x93, 0x7f, 0x6d, + 0x63, 0x81, 0x88, 0xa3, 0x7f, 0x7e, 0x5a, 0x7c, 0x7e, 0xa2, 0x8b, 0x81, + 0x65, 0x6a, 0x80, 0x90, 0x9e, 0x7e, 0x78, 0x5b, 0x7f, 0x80, 0xa5, 0x85, + 0x81, 0x5f, 0x72, 0x7e, 0x98, 0x97, 0x7f, 0x71, 0x60, 0x81, 0x85, 0xa4, + 0x81, 0x7f, 0x5b, 0x79, 0x7d, 0x9f, 0x8f, 0x80, 0x69, 0x66, 0x80, 0x8c, + 0xa1, 0x7e, 0x7c, 0x5b, 0x7e, 0x7f, 0xa3, 0x88, 0x81, 0x63, 0x6e, 0x7f, + 0x93, 0x9a, 0x7e, 0x75, 0x5e, 0x80, 0x82, 0xa4, 0x82, 0x81, 0x5d, 0x76, + 0x7e, 0x9b, 0x93, 0x80, 0x6e, 0x63, 0x81, 0x88, 0xa2, 0x7f, 0x7e, 0x5b, + 0x7c, 0x7e, 0xa1, 0x8b, 0x81, 0x66, 0x6a, 0x80, 0x8f, 0x9e, 0x7e, 0x79, + 0x5c, 0x7f, 0x80, 0xa4, 0x85, 0x81, 0x60, 0x72, 0x7f, 0x97, 0x97, 0x7f, + 0x72, 0x60, 0x81, 0x85, 0xa3, 0x81, 0x80, 0x5c, 0x79, 0x7e, 0x9d, 0x8f, + 0x80, 0x6a, 0x67, 0x81, 0x8b, 0xa0, 0x7e, 0x7c, 0x5b, 0x7e, 0x7f, 0xa2, + 0x88, 0x81, 0x63, 0x6e, 0x7f, 0x92, 0x9a, 0x7e, 0x76, 0x5e, 0x80, 0x82, + 0xa4, 0x82, 0x81, 0x5e, 0x75, 0x7e, 0x9a, 0x93, 0x7f, 0x6f, 0x63, 0x81, + 0x88, 0xa2, 0x7f, 0x7e, 0x5c, 0x7b, 0x7e, 0xa0, 0x8b, 0x81, 0x67, 0x6a, + 0x80, 0x8e, 0x9d, 0x7e, 0x79, 0x5d, 0x7f, 0x80, 0xa3, 0x85, 0x81, 0x61, + 0x72, 0x7f, 0x96, 0x97, 0x7f, 0x73, 0x61, 0x81, 0x84, 0xa3, 0x80, 0x80, + 0x5d, 0x78, 0x7e, 0x9c, 0x8f, 0x80, 0x6c, 0x67, 0x81, 0x8b, 0x9f, 0x7e, + 0x7c, 0x5c, 0x7e, 0x7f, 0xa1, 0x88, 0x81, 0x64, 0x6e, 0x7f, 0x92, 0x9a, + 0x7e, 0x76, 0x5f, 0x80, 0x82, 0xa3, 0x82, 0x81, 0x5f, 0x75, 0x7e, 0x99, + 0x93, 0x7f, 0x6f, 0x64, 0x81, 0x87, 0xa1, 0x7f, 0x7e, 0x5d, 0x7b, 0x7e, + 0x9e, 0x8b, 0x80, 0x68, 0x6b, 0x80, 0x8e, 0x9d, 0x7e, 0x7a, 0x5d, 0x7f, + 0x80, 0xa2, 0x85, 0x81, 0x62, 0x72, 0x7f, 0x95, 0x97, 0x7e, 0x73, 0x61, + 0x81, 0x84, 0xa2, 0x80, 0x80, 0x5e, 0x79, 0x7e, 0x9b, 0x8f, 0x80, 0x6c, + 0x67, 0x81, 0x8a, 0x9f, 0x7e, 0x7c, 0x5d, 0x7e, 0x7f, 0xa0, 0x88, 0x81, + 0x65, 0x6e, 0x80, 0x91, 0x9a, 0x7e, 0x77, 0x5f, 0x80, 0x81, 0xa2, 0x83, + 0x81, 0x60, 0x75, 0x7e, 0x98, 0x93, 0x7f, 0x70, 0x64, 0x81, 0x87, 0xa1, + 0x7f, 0x7f, 0x5d, 0x7b, 0x7e, 0x9e, 0x8b, 0x81, 0x69, 0x6a, 0x80, 0x8d, + 0x9d, 0x7e, 0x7a, 0x5e, 0x80, 0x7f, 0xa1, 0x85, 0x81, 0x63, 0x72, 0x7f, + 0x94, 0x96, 0x7e, 0x74, 0x61, 0x81, 0x84, 0xa1, 0x81, 0x80, 0x5f, 0x78, + 0x7e, 0x9b, 0x8f, 0x80, 0x6d, 0x67, 0x80, 0x89, 0x9f, 0x7f, 0x7d, 0x5e, + 0x7d, 0x7e, 0x9f, 0x88, 0x81, 0x66, 0x6e, 0x7f, 0x90, 0x9a, 0x7e, 0x77, + 0x5f, 0x80, 0x81, 0xa2, 0x83, 0x81, 0x61, 0x75, 0x7e, 0x97, 0x93, 0x7f, + 0x71, 0x64, 0x81, 0x86, 0xa0, 0x7f, 0x7e, 0x5e, 0x7b, 0x7e, 0x9d, 0x8c, + 0x80, 0x6a, 0x6b, 0x80, 0x8d, 0x9c, 0x7e, 0x7a, 0x5f, 0x7f, 0x80, 0xa0, + 0x85, 0x81, 0x64, 0x72, 0x7f, 0x93, 0x96, 0x7f, 0x74, 0x62, 0x81, 0x83, + 0xa0, 0x81, 0x80, 0x60, 0x78, 0x7e, 0x9a, 0x8f, 0x80, 0x6d, 0x68, 0x80, + 0x89, 0x9e, 0x7f, 0x7d, 0x5e, 0x7d, 0x7f, 0x9f, 0x88, 0x81, 0x67, 0x6e, + 0x7f, 0x90, 0x99, 0x7e, 0x77, 0x60, 0x80, 0x81, 0xa1, 0x83, 0x80, 0x62, + 0x75, 0x7e, 0x97, 0x92, 0x7f, 0x71, 0x65, 0x81, 0x86, 0x9f, 0x80, 0x7f, + 0x5f, 0x7b, 0x7e, 0x9c, 0x8c, 0x80, 0x6a, 0x6b, 0x80, 0x8c, 0x9c, 0x7e, + 0x7a, 0x5f, 0x7f, 0x80, 0x9f, 0x85, 0x81, 0x65, 0x72, 0x7f, 0x93, 0x96, + 0x7e, 0x75, 0x62, 0x81, 0x83, 0xa0, 0x81, 0x80, 0x61, 0x78, 0x7e, 0x99, + 0x8f, 0x80, 0x6e, 0x68, 0x81, 0x89, 0x9d, 0x7f, 0x7d, 0x5f, 0x7d, 0x7f, + 0x9e, 0x88, 0x81, 0x68, 0x6f, 0x80, 0x8f, 0x99, 0x7e, 0x78, 0x61, 0x80, + 0x81, 0x9f, 0x83, 0x81, 0x63, 0x75, 0x7e, 0x96, 0x92, 0x7f, 0x72, 0x65, + 0x81, 0x85, 0x9f, 0x80, 0x7f, 0x60, 0x7b, 0x7e, 0x9b, 0x8c, 0x80, 0x6b, + 0x6b, 0x80, 0x8c, 0x9b, 0x7e, 0x7b, 0x60, 0x7f, 0x80, 0x9f, 0x86, 0x81, + 0x65, 0x72, 0x7f, 0x92, 0x96, 0x7f, 0x75, 0x63, 0x81, 0x83, 0x9f, 0x81, + 0x80, 0x61, 0x78, 0x7e, 0x98, 0x8f, 0x80, 0x6f, 0x68, 0x80, 0x88, 0x9d, + 0x7f, 0x7d, 0x60, 0x7d, 0x7e, 0x9d, 0x88, 0x81, 0x68, 0x6e, 0x80, 0x8f, + 0x98, 0x7e, 0x78, 0x61, 0x80, 0x81, 0x9f, 0x83, 0x81, 0x63, 0x75, 0x7e, + 0x95, 0x92, 0x7f, 0x72, 0x65, 0x81, 0x85, 0x9e, 0x7f, 0x7f, 0x60, 0x7b, + 0x7e, 0x9b, 0x8b, 0x80, 0x6c, 0x6b, 0x81, 0x8b, 0x9b, 0x7e, 0x7b, 0x60, + 0x7f, 0x80, 0x9e, 0x86, 0x81, 0x66, 0x72, 0x7f, 0x92, 0x95, 0x7e, 0x76, + 0x63, 0x81, 0x83, 0x9f, 0x81, 0x80, 0x62, 0x78, 0x7e, 0x98, 0x8f, 0x7f, + 0x70, 0x68, 0x81, 0x88, 0x9c, 0x7e, 0x7d, 0x61, 0x7d, 0x7f, 0x9c, 0x88, + 0x81, 0x69, 0x6f, 0x80, 0x8e, 0x98, 0x7e, 0x79, 0x62, 0x80, 0x81, 0x9e, + 0x83, 0x81, 0x64, 0x75, 0x7e, 0x94, 0x92, 0x7f, 0x73, 0x66, 0x81, 0x85, + 0x9e, 0x80, 0x7f, 0x61, 0x7b, 0x7e, 0x9a, 0x8b, 0x80, 0x6c, 0x6c, 0x80, + 0x8a, 0x9a, 0x7e, 0x7c, 0x61, 0x7f, 0x7f, 0x9d, 0x86, 0x81, 0x67, 0x72, + 0x7f, 0x91, 0x95, 0x7e, 0x76, 0x64, 0x81, 0x82, 0x9e, 0x81, 0x80, 0x63, + 0x78, 0x7e, 0x97, 0x8f, 0x80, 0x70, 0x69, 0x81, 0x87, 0x9c, 0x7f, 0x7e, + 0x61, 0x7d, 0x7e, 0x9c, 0x88, 0x81, 0x6a, 0x6f, 0x80, 0x8d, 0x98, 0x7e, + 0x79, 0x63, 0x80, 0x80, 0x9d, 0x83, 0x81, 0x65, 0x75, 0x7e, 0x93, 0x92, + 0x7f, 0x73, 0x67, 0x81, 0x84, 0x9d, 0x80, 0x7f, 0x62, 0x7b, 0x7e, 0x99, + 0x8b, 0x80, 0x6d, 0x6c, 0x80, 0x8a, 0x9a, 0x7e, 0x7c, 0x62, 0x7f, 0x7f, + 0x9c, 0x86, 0x81, 0x68, 0x72, 0x7f, 0x90, 0x94, 0x7f, 0x77, 0x65, 0x80, + 0x82, 0x9d, 0x81, 0x80, 0x64, 0x78, 0x7e, 0x96, 0x8f, 0x80, 0x70, 0x69, + 0x81, 0x87, 0x9b, 0x7f, 0x7e, 0x62, 0x7d, 0x7f, 0x9a, 0x88, 0x80, 0x6b, + 0x6f, 0x80, 0x8d, 0x97, 0x7e, 0x7a, 0x63, 0x80, 0x80, 0x9d, 0x83, 0x81, + 0x66, 0x75, 0x7e, 0x93, 0x92, 0x7f, 0x74, 0x67, 0x81, 0x84, 0x9c, 0x80, + 0x7f, 0x63, 0x7b, 0x7e, 0x98, 0x8b, 0x80, 0x6e, 0x6c, 0x80, 0x8a, 0x9a, + 0x7e, 0x7c, 0x62, 0x7e, 0x7f, 0x9c, 0x86, 0x81, 0x68, 0x72, 0x7f, 0x90, + 0x94, 0x7f, 0x77, 0x65, 0x80, 0x82, 0x9d, 0x81, 0x80, 0x64, 0x78, 0x7e, + 0x96, 0x8f, 0x80, 0x71, 0x69, 0x80, 0x87, 0x9b, 0x7f, 0x7e, 0x63, 0x7d, + 0x7e, 0x9a, 0x88, 0x81, 0x6b, 0x6f, 0x80, 0x8c, 0x97, 0x7e, 0x7a, 0x64, + 0x80, 0x80, 0x9c, 0x83, 0x81, 0x66, 0x75, 0x7e, 0x92, 0x91, 0x7f, 0x74, + 0x67, 0x81, 0x84, 0x9c, 0x80, 0x7f, 0x64, 0x7b, 0x7e, 0x97, 0x8b, 0x80, + 0x6f, 0x6c, 0x80, 0x89, 0x99, 0x7e, 0x7c, 0x63, 0x7e, 0x7f, 0x9b, 0x86, + 0x81, 0x69, 0x72, 0x7f, 0x8f, 0x94, 0x7e, 0x77, 0x65, 0x80, 0x82, 0x9c, + 0x82, 0x80, 0x65, 0x78, 0x7e, 0x95, 0x8f, 0x7f, 0x72, 0x6a, 0x81, 0x86, + 0x9a, 0x7f, 0x7e, 0x64, 0x7d, 0x7f, 0x99, 0x88, 0x80, 0x6c, 0x6f, 0x80, + 0x8c, 0x97, 0x7e, 0x7a, 0x64, 0x80, 0x80, 0x9b, 0x84, 0x81, 0x67, 0x75, + 0x7f, 0x91, 0x91, 0x7f, 0x75, 0x67, 0x81, 0x84, 0x9b, 0x80, 0x7f, 0x64, + 0x7a, 0x7e, 0x97, 0x8b, 0x80, 0x6f, 0x6c, 0x80, 0x89, 0x98, 0x7e, 0x7c, + 0x64, 0x7e, 0x7f, 0x9a, 0x86, 0x81, 0x6a, 0x72, 0x7f, 0x8e, 0x94, 0x7e, + 0x78, 0x66, 0x80, 0x81, 0x9b, 0x81, 0x80, 0x66, 0x78, 0x7e, 0x94, 0x8e, + 0x7f, 0x73, 0x6a, 0x81, 0x86, 0x9a, 0x7f, 0x7e, 0x64, 0x7c, 0x7f, 0x98, + 0x88, 0x80, 0x6d, 0x70, 0x80, 0x8b, 0x96, 0x7e, 0x7a, 0x65, 0x7f, 0x80, + 0x9a, 0x84, 0x81, 0x68, 0x75, 0x7f, 0x91, 0x91, 0x7f, 0x76, 0x68, 0x81, + 0x83, 0x9a, 0x80, 0x7f, 0x65, 0x7a, 0x7e, 0x96, 0x8b, 0x80, 0x70, 0x6d, + 0x80, 0x88, 0x98, 0x7f, 0x7d, 0x65, 0x7e, 0x7f, 0x99, 0x86, 0x80, 0x6b, + 0x73, 0x7f, 0x8e, 0x93, 0x7e, 0x78, 0x67, 0x80, 0x82, 0x9a, 0x82, 0x80, + 0x67, 0x78, 0x7e, 0x93, 0x8e, 0x7f, 0x73, 0x6b, 0x80, 0x86, 0x99, 0x7f, + 0x7e, 0x65, 0x7c, 0x7e, 0x97, 0x89, 0x80, 0x6d, 0x70, 0x80, 0x8b, 0x96, + 0x7f, 0x7b, 0x66, 0x7f, 0x80, 0x9a, 0x84, 0x81, 0x69, 0x75, 0x7f, 0x90, + 0x91, 0x7f, 0x76, 0x69, 0x80, 0x83, 0x9a, 0x80, 0x80, 0x66, 0x7a, 0x7e, + 0x95, 0x8b, 0x80, 0x70, 0x6d, 0x80, 0x88, 0x98, 0x7f, 0x7d, 0x65, 0x7e, + 0x7f, 0x98, 0x86, 0x81, 0x6b, 0x72, 0x7f, 0x8d, 0x93, 0x7f, 0x79, 0x67, + 0x80, 0x81, 0x9a, 0x82, 0x80, 0x67, 0x78, 0x7f, 0x92, 0x8e, 0x7f, 0x73, + 0x6b, 0x81, 0x85, 0x98, 0x7f, 0x7f, 0x66, 0x7c, 0x7e, 0x96, 0x88, 0x80, + 0x6e, 0x70, 0x80, 0x8a, 0x95, 0x7e, 0x7b, 0x66, 0x7f, 0x80, 0x99, 0x84, + 0x81, 0x6a, 0x75, 0x7f, 0x8f, 0x90, 0x7f, 0x76, 0x69, 0x80, 0x83, 0x99, + 0x80, 0x7f, 0x67, 0x7a, 0x7f, 0x94, 0x8b, 0x80, 0x71, 0x6e, 0x80, 0x87, + 0x97, 0x7f, 0x7d, 0x66, 0x7e, 0x7f, 0x98, 0x86, 0x80, 0x6c, 0x73, 0x80, + 0x8d, 0x93, 0x7e, 0x79, 0x68, 0x80, 0x81, 0x99, 0x82, 0x80, 0x68, 0x78, + 0x7f, 0x92, 0x8e, 0x7f, 0x74, 0x6b, 0x81, 0x85, 0x98, 0x7f, 0x7e, 0x67, + 0x7c, 0x7f, 0x96, 0x88, 0x80, 0x6f, 0x70, 0x80, 0x8a, 0x95, 0x7e, 0x7b, + 0x67, 0x7f, 0x80, 0x98, 0x84, 0x80, 0x6a, 0x76, 0x7f, 0x8f, 0x90, 0x7f, + 0x77, 0x6a, 0x81, 0x83, 0x98, 0x80, 0x80, 0x68, 0x7a, 0x7e, 0x93, 0x8b, + 0x80, 0x72, 0x6e, 0x80, 0x87, 0x96, 0x7f, 0x7d, 0x67, 0x7e, 0x7f, 0x97, + 0x86, 0x80, 0x6d, 0x73, 0x80, 0x8c, 0x92, 0x7e, 0x7a, 0x68, 0x80, 0x81, + 0x98, 0x82, 0x80, 0x69, 0x78, 0x7f, 0x91, 0x8d, 0x7f, 0x75, 0x6c, 0x81, + 0x84, 0x97, 0x7f, 0x7f, 0x68, 0x7d, 0x7e, 0x95, 0x88, 0x80, 0x70, 0x71, + 0x80, 0x89, 0x94, 0x7e, 0x7c, 0x68, 0x7f, 0x80, 0x97, 0x84, 0x81, 0x6b, + 0x76, 0x7f, 0x8e, 0x90, 0x7f, 0x77, 0x6a, 0x80, 0x82, 0x97, 0x81, 0x80, + 0x68, 0x7a, 0x7e, 0x93, 0x8b, 0x80, 0x73, 0x6e, 0x80, 0x86, 0x96, 0x7f, + 0x7d, 0x68, 0x7e, 0x7f, 0x96, 0x86, 0x80, 0x6e, 0x73, 0x80, 0x8b, 0x92, + 0x7e, 0x7a, 0x69, 0x80, 0x81, 0x97, 0x82, 0x80, 0x6a, 0x78, 0x7f, 0x90, + 0x8d, 0x7f, 0x75, 0x6c, 0x81, 0x84, 0x96, 0x80, 0x7f, 0x68, 0x7c, 0x7f, + 0x94, 0x88, 0x80, 0x71, 0x71, 0x80, 0x88, 0x94, 0x7f, 0x7c, 0x69, 0x7f, + 0x80, 0x96, 0x84, 0x81, 0x6c, 0x76, 0x7f, 0x8d, 0x90, 0x7f, 0x78, 0x6b, + 0x80, 0x82, 0x97, 0x81, 0x80, 0x69, 0x7a, 0x7f, 0x92, 0x8b, 0x80, 0x73, + 0x6f, 0x80, 0x86, 0x95, 0x7f, 0x7e, 0x68, 0x7e, 0x7f, 0x95, 0x86, 0x80, + 0x6f, 0x73, 0x80, 0x8b, 0x91, 0x7f, 0x7a, 0x6a, 0x80, 0x81, 0x97, 0x82, + 0x80, 0x6b, 0x78, 0x7f, 0x90, 0x8d, 0x7f, 0x76, 0x6c, 0x81, 0x84, 0x96, + 0x7f, 0x7f, 0x69, 0x7c, 0x7f, 0x93, 0x88, 0x80, 0x71, 0x71, 0x80, 0x88, + 0x93, 0x7e, 0x7c, 0x69, 0x7f, 0x7f, 0x96, 0x84, 0x80, 0x6d, 0x76, 0x7f, + 0x8d, 0x8f, 0x7f, 0x78, 0x6b, 0x80, 0x82, 0x96, 0x81, 0x80, 0x6a, 0x7a, + 0x7f, 0x91, 0x8a, 0x80, 0x74, 0x6f, 0x80, 0x86, 0x94, 0x7f, 0x7e, 0x69, + 0x7e, 0x7f, 0x94, 0x86, 0x80, 0x6f, 0x73, 0x80, 0x8a, 0x91, 0x7f, 0x7a, + 0x6a, 0x80, 0x80, 0x96, 0x82, 0x80, 0x6b, 0x78, 0x7f, 0x8f, 0x8d, 0x7f, + 0x76, 0x6d, 0x80, 0x84, 0x95, 0x80, 0x7f, 0x69, 0x7c, 0x7f, 0x93, 0x88, + 0x80, 0x72, 0x71, 0x80, 0x88, 0x93, 0x7f, 0x7c, 0x6a, 0x7f, 0x7f, 0x95, + 0x84, 0x81, 0x6e, 0x76, 0x7f, 0x8c, 0x8f, 0x7f, 0x79, 0x6c, 0x80, 0x82, + 0x95, 0x81, 0x80, 0x6b, 0x7a, 0x7f, 0x90, 0x8a, 0x7f, 0x74, 0x6f, 0x80, + 0x85, 0x94, 0x7f, 0x7e, 0x6a, 0x7e, 0x7f, 0x93, 0x86, 0x80, 0x70, 0x74, + 0x80, 0x8a, 0x91, 0x7f, 0x7b, 0x6b, 0x80, 0x80, 0x95, 0x82, 0x80, 0x6c, + 0x78, 0x7f, 0x8e, 0x8d, 0x7f, 0x77, 0x6d, 0x80, 0x83, 0x95, 0x80, 0x7f, + 0x6a, 0x7c, 0x7f, 0x92, 0x88, 0x80, 0x72, 0x71, 0x80, 0x87, 0x92, 0x7f, + 0x7d, 0x6a, 0x7f, 0x7f, 0x94, 0x84, 0x80, 0x6e, 0x76, 0x80, 0x8c, 0x8f, + 0x7e, 0x79, 0x6c, 0x80, 0x81, 0x95, 0x81, 0x80, 0x6c, 0x7a, 0x7f, 0x8f, + 0x8a, 0x7f, 0x75, 0x70, 0x81, 0x85, 0x93, 0x7f, 0x7e, 0x6b, 0x7e, 0x7f, + 0x93, 0x86, 0x80, 0x71, 0x74, 0x80, 0x89, 0x90, 0x7f, 0x7b, 0x6b, 0x80, + 0x80, 0x94, 0x82, 0x80, 0x6d, 0x78, 0x7f, 0x8d, 0x8c, 0x7f, 0x77, 0x6e, + 0x80, 0x83, 0x94, 0x80, 0x7f, 0x6b, 0x7c, 0x7f, 0x91, 0x88, 0x80, 0x73, + 0x72, 0x80, 0x87, 0x92, 0x7f, 0x7d, 0x6b, 0x7f, 0x7f, 0x93, 0x84, 0x80, + 0x6f, 0x76, 0x7f, 0x8b, 0x8e, 0x7f, 0x79, 0x6d, 0x80, 0x81, 0x94, 0x81, + 0x80, 0x6c, 0x7a, 0x7f, 0x8f, 0x8a, 0x80, 0x75, 0x70, 0x80, 0x84, 0x93, + 0x7f, 0x7e, 0x6b, 0x7e, 0x7f, 0x92, 0x86, 0x80, 0x71, 0x74, 0x80, 0x88, + 0x90, 0x7f, 0x7c, 0x6c, 0x80, 0x80, 0x93, 0x82, 0x80, 0x6e, 0x78, 0x7f, + 0x8d, 0x8c, 0x7f, 0x78, 0x6e, 0x80, 0x83, 0x93, 0x80, 0x7f, 0x6c, 0x7c, + 0x7f, 0x90, 0x88, 0x80, 0x74, 0x72, 0x80, 0x86, 0x91, 0x7f, 0x7d, 0x6c, + 0x7f, 0x7f, 0x93, 0x84, 0x80, 0x70, 0x76, 0x7f, 0x8a, 0x8e, 0x7f, 0x7a, + 0x6d, 0x80, 0x81, 0x93, 0x81, 0x80, 0x6d, 0x7a, 0x7f, 0x8e, 0x8a, 0x7f, + 0x76, 0x70, 0x80, 0x84, 0x92, 0x7f, 0x7f, 0x6c, 0x7e, 0x7f, 0x91, 0x86, + 0x80, 0x72, 0x74, 0x80, 0x88, 0x8f, 0x7f, 0x7c, 0x6d, 0x80, 0x80, 0x93, + 0x82, 0x80, 0x6f, 0x78, 0x7f, 0x8c, 0x8c, 0x7f, 0x78, 0x6f, 0x80, 0x83, + 0x92, 0x80, 0x7f, 0x6d, 0x7c, 0x7f, 0x8f, 0x87, 0x80, 0x74, 0x73, 0x80, + 0x86, 0x91, 0x7f, 0x7d, 0x6d, 0x7f, 0x7f, 0x92, 0x84, 0x80, 0x70, 0x76, + 0x7f, 0x8a, 0x8e, 0x7f, 0x7a, 0x6e, 0x80, 0x81, 0x93, 0x81, 0x80, 0x6e, + 0x7a, 0x7f, 0x8e, 0x89, 0x7f, 0x76, 0x71, 0x80, 0x84, 0x92, 0x7f, 0x7f, + 0x6d, 0x7d, 0x7f, 0x90, 0x86, 0x80, 0x73, 0x75, 0x80, 0x87, 0x8f, 0x7f, + 0x7c, 0x6d, 0x7f, 0x80, 0x92, 0x82, 0x80, 0x6f, 0x79, 0x7f, 0x8b, 0x8b, + 0x7f, 0x79, 0x70, 0x80, 0x82, 0x92, 0x80, 0x80, 0x6e, 0x7c, 0x7f, 0x8f, + 0x87, 0x80, 0x75, 0x73, 0x80, 0x85, 0x90, 0x7f, 0x7e, 0x6d, 0x7f, 0x7f, + 0x91, 0x84, 0x80, 0x71, 0x77, 0x7f, 0x89, 0x8d, 0x7f, 0x7b, 0x6f, 0x80, + 0x81, 0x92, 0x81, 0x80, 0x6f, 0x7a, 0x7f, 0x8d, 0x89, 0x7f, 0x77, 0x71, + 0x80, 0x84, 0x91, 0x7f, 0x7f, 0x6e, 0x7e, 0x7f, 0x90, 0x85, 0x80, 0x73, + 0x75, 0x80, 0x87, 0x8e, 0x7f, 0x7c, 0x6e, 0x80, 0x80, 0x91, 0x82, 0x80, + 0x70, 0x79, 0x7f, 0x8b, 0x8b, 0x7f, 0x79, 0x70, 0x80, 0x82, 0x91, 0x80, + 0x7f, 0x6e, 0x7c, 0x7f, 0x8e, 0x87, 0x80, 0x75, 0x73, 0x80, 0x85, 0x90, + 0x7f, 0x7e, 0x6e, 0x7e, 0x7f, 0x90, 0x84, 0x81, 0x72, 0x77, 0x7f, 0x89, + 0x8d, 0x7f, 0x7b, 0x6f, 0x80, 0x81, 0x91, 0x81, 0x80, 0x70, 0x7a, 0x7f, + 0x8c, 0x89, 0x7f, 0x77, 0x72, 0x80, 0x83, 0x90, 0x7f, 0x7f, 0x6e, 0x7d, + 0x7f, 0x8f, 0x85, 0x80, 0x74, 0x75, 0x80, 0x86, 0x8e, 0x7f, 0x7d, 0x6f, + 0x7f, 0x80, 0x90, 0x82, 0x80, 0x71, 0x79, 0x7f, 0x8a, 0x8b, 0x7f, 0x79, + 0x71, 0x80, 0x82, 0x90, 0x80, 0x80, 0x6f, 0x7c, 0x7f, 0x8d, 0x87, 0x80, + 0x76, 0x74, 0x80, 0x85, 0x8f, 0x7f, 0x7e, 0x6f, 0x7f, 0x7f, 0x8f, 0x84, + 0x80, 0x73, 0x77, 0x80, 0x88, 0x8c, 0x7f, 0x7b, 0x70, 0x80, 0x81, 0x90, + 0x81, 0x80, 0x70, 0x7b, 0x7f, 0x8b, 0x89, 0x7f, 0x78, 0x72, 0x80, 0x83, + 0x8f, 0x7f, 0x7f, 0x6f, 0x7d, 0x7f, 0x8e, 0x85, 0x80, 0x74, 0x75, 0x80, + 0x86, 0x8d, 0x7f, 0x7d, 0x6f, 0x7f, 0x80, 0x90, 0x82, 0x80, 0x72, 0x79, + 0x7f, 0x89, 0x8b, 0x7f, 0x7a, 0x71, 0x80, 0x82, 0x90, 0x80, 0x80, 0x70, + 0x7c, 0x7f, 0x8d, 0x87, 0x80, 0x76, 0x74, 0x80, 0x84, 0x8e, 0x7f, 0x7e, + 0x6f, 0x7e, 0x7f, 0x8f, 0x84, 0x80, 0x73, 0x77, 0x80, 0x88, 0x8c, 0x7f, + 0x7c, 0x70, 0x80, 0x80, 0x90, 0x81, 0x80, 0x71, 0x7b, 0x7f, 0x8b, 0x88, + 0x7f, 0x79, 0x73, 0x80, 0x83, 0x8f, 0x7f, 0x7f, 0x70, 0x7d, 0x7f, 0x8d, + 0x85, 0x80, 0x75, 0x76, 0x80, 0x86, 0x8d, 0x7f, 0x7d, 0x70, 0x7f, 0x80, + 0x8f, 0x82, 0x80, 0x73, 0x79, 0x7f, 0x89, 0x8a, 0x7f, 0x7a, 0x72, 0x80, + 0x81, 0x8f, 0x80, 0x80, 0x71, 0x7c, 0x7f, 0x8c, 0x87, 0x80, 0x77, 0x74, + 0x80, 0x84, 0x8e, 0x7f, 0x7e, 0x70, 0x7f, 0x7f, 0x8e, 0x83, 0x80, 0x74, + 0x78, 0x80, 0x87, 0x8b, 0x7f, 0x7c, 0x71, 0x80, 0x81, 0x8f, 0x81, 0x80, + 0x72, 0x7b, 0x7f, 0x8a, 0x88, 0x7f, 0x79, 0x73, 0x80, 0x83, 0x8e, 0x7f, + 0x7f, 0x71, 0x7d, 0x7f, 0x8d, 0x85, 0x80, 0x76, 0x76, 0x80, 0x85, 0x8c, + 0x7f, 0x7d, 0x71, 0x7f, 0x80, 0x8e, 0x82, 0x80, 0x73, 0x79, 0x7f, 0x88, + 0x89, 0x7f, 0x7b, 0x73, 0x80, 0x81, 0x8e, 0x80, 0x80, 0x72, 0x7c, 0x7f, + 0x8b, 0x86, 0x80, 0x78, 0x75, 0x80, 0x84, 0x8d, 0x7f, 0x7e, 0x71, 0x7e, + 0x7f, 0x8d, 0x84, 0x80, 0x75, 0x78, 0x80, 0x87, 0x8b, 0x7f, 0x7c, 0x72, + 0x80, 0x80, 0x8e, 0x81, 0x80, 0x73, 0x7b, 0x7f, 0x89, 0x88, 0x7f, 0x79, + 0x74, 0x80, 0x82, 0x8d, 0x80, 0x7f, 0x72, 0x7d, 0x7f, 0x8c, 0x85, 0x80, + 0x76, 0x77, 0x80, 0x85, 0x8c, 0x7f, 0x7d, 0x72, 0x7f, 0x80, 0x8d, 0x82, + 0x80, 0x74, 0x79, 0x7f, 0x88, 0x89, 0x7f, 0x7b, 0x73, 0x80, 0x81, 0x8d, + 0x80, 0x80, 0x72, 0x7c, 0x7f, 0x8a, 0x86, 0x80, 0x78, 0x75, 0x80, 0x83, + 0x8c, 0x7f, 0x7f, 0x72, 0x7e, 0x7f, 0x8c, 0x83, 0x80, 0x75, 0x78, 0x7f, + 0x86, 0x8a, 0x7f, 0x7c, 0x72, 0x80, 0x80, 0x8d, 0x81, 0x80, 0x73, 0x7b, + 0x7f, 0x89, 0x88, 0x7f, 0x7a, 0x74, 0x80, 0x82, 0x8d, 0x80, 0x7f, 0x72, + 0x7e, 0x7f, 0x8b, 0x85, 0x80, 0x77, 0x77, 0x80, 0x85, 0x8b, 0x7f, 0x7e, + 0x72, 0x7f, 0x7f, 0x8c, 0x82, 0x80, 0x74, 0x7a, 0x7f, 0x87, 0x89, 0x7f, + 0x7b, 0x74, 0x80, 0x81, 0x8d, 0x80, 0x80, 0x73, 0x7c, 0x7f, 0x8a, 0x86, + 0x80, 0x79, 0x76, 0x80, 0x83, 0x8c, 0x7f, 0x7f, 0x73, 0x7e, 0x7f, 0x8b, + 0x83, 0x80, 0x76, 0x78, 0x80, 0x86, 0x8a, 0x7f, 0x7d, 0x73, 0x80, 0x80, + 0x8c, 0x81, 0x80, 0x74, 0x7b, 0x7f, 0x88, 0x87, 0x7f, 0x7a, 0x75, 0x80, + 0x82, 0x8c, 0x80, 0x7f, 0x73, 0x7e, 0x7f, 0x8a, 0x84, 0x80, 0x78, 0x77, + 0x80, 0x84, 0x8b, 0x7f, 0x7e, 0x73, 0x7f, 0x80, 0x8c, 0x82, 0x80, 0x75, + 0x7a, 0x7f, 0x87, 0x88, 0x7f, 0x7c, 0x74, 0x80, 0x81, 0x8c, 0x80, 0x80, + 0x74, 0x7c, 0x7f, 0x89, 0x86, 0x80, 0x79, 0x76, 0x80, 0x83, 0x8b, 0x7f, + 0x7f, 0x73, 0x7e, 0x7f, 0x8b, 0x83, 0x80, 0x77, 0x79, 0x80, 0x85, 0x89, + 0x7f, 0x7d, 0x74, 0x80, 0x80, 0x8b, 0x81, 0x80, 0x75, 0x7b, 0x7f, 0x87, + 0x87, 0x7f, 0x7b, 0x75, 0x80, 0x81, 0x8b, 0x80, 0x7f, 0x74, 0x7e, 0x7f, + 0x8a, 0x84, 0x80, 0x78, 0x78, 0x80, 0x84, 0x8a, 0x7f, 0x7e, 0x74, 0x7f, + 0x7f, 0x8b, 0x82, 0x80, 0x76, 0x7a, 0x7f, 0x86, 0x88, 0x7f, 0x7c, 0x75, + 0x80, 0x81, 0x8b, 0x80, 0x80, 0x75, 0x7c, 0x7f, 0x88, 0x86, 0x80, 0x7a, + 0x77, 0x80, 0x82, 0x8a, 0x7f, 0x7f, 0x74, 0x7e, 0x7f, 0x8a, 0x83, 0x80, + 0x77, 0x79, 0x80, 0x85, 0x89, 0x7f, 0x7d, 0x74, 0x80, 0x80, 0x8b, 0x81, + 0x80, 0x75, 0x7b, 0x7f, 0x87, 0x86, 0x7f, 0x7b, 0x76, 0x80, 0x81, 0x8b, + 0x80, 0x7f, 0x74, 0x7e, 0x7f, 0x89, 0x84, 0x80, 0x79, 0x78, 0x80, 0x83, + 0x89, 0x7f, 0x7e, 0x74, 0x7f, 0x7f, 0x8a, 0x82, 0x80, 0x77, 0x7a, 0x7f, + 0x86, 0x87, 0x7f, 0x7c, 0x75, 0x80, 0x80, 0x8b, 0x80, 0x80, 0x75, 0x7d, + 0x7f, 0x88, 0x85, 0x7f, 0x7a, 0x77, 0x80, 0x82, 0x8a, 0x7f, 0x7f, 0x75, + 0x7e, 0x7f, 0x89, 0x83, 0x80, 0x78, 0x79, 0x80, 0x84, 0x88, 0x7f, 0x7d, + 0x75, 0x80, 0x80, 0x8a, 0x81, 0x80, 0x76, 0x7c, 0x7f, 0x86, 0x86, 0x7f, + 0x7b, 0x76, 0x80, 0x81, 0x8a, 0x80, 0x7f, 0x75, 0x7e, 0x7f, 0x88, 0x84, + 0x80, 0x79, 0x78, 0x80, 0x83, 0x89, 0x7f, 0x7e, 0x75, 0x7f, 0x7f, 0x89, + 0x82, 0x80, 0x77, 0x7b, 0x7f, 0x85, 0x87, 0x7f, 0x7d, 0x76, 0x80, 0x80, + 0x8a, 0x80, 0x80, 0x76, 0x7d, 0x7f, 0x87, 0x85, 0x7f, 0x7b, 0x78, 0x80, + 0x82, 0x89, 0x7f, 0x7f, 0x75, 0x7e, 0x7f, 0x89, 0x83, 0x80, 0x78, 0x7a, + 0x80, 0x84, 0x88, 0x7f, 0x7e, 0x76, 0x80, 0x80, 0x89, 0x81, 0x80, 0x77, + 0x7c, 0x7f, 0x86, 0x86, 0x7f, 0x7c, 0x77, 0x80, 0x81, 0x89, 0x80, 0x7f, + 0x76, 0x7e, 0x7f, 0x88, 0x83, 0x80, 0x7a, 0x79, 0x80, 0x83, 0x88, 0x7f, + 0x7e, 0x76, 0x7f, 0x7f, 0x89, 0x82, 0x80, 0x78, 0x7b, 0x7f, 0x85, 0x87, + 0x7f, 0x7d, 0x77, 0x80, 0x80, 0x89, 0x80, 0x80, 0x77, 0x7d, 0x7f, 0x86, + 0x85, 0x7f, 0x7b, 0x78, 0x80, 0x82, 0x88, 0x7f, 0x7f, 0x76, 0x7f, 0x7f, + 0x88, 0x83, 0x80, 0x79, 0x7a, 0x80, 0x83, 0x87, 0x7f, 0x7e, 0x77, 0x7f, + 0x80, 0x89, 0x81, 0x80, 0x78, 0x7c, 0x7f, 0x85, 0x85, 0x7f, 0x7c, 0x78, + 0x80, 0x81, 0x89, 0x80, 0x80, 0x77, 0x7e, 0x7f, 0x87, 0x83, 0x80, 0x7a, + 0x79, 0x80, 0x82, 0x88, 0x7f, 0x7f, 0x77, 0x7f, 0x7f, 0x88, 0x82, 0x80, + 0x79, 0x7b, 0x80, 0x84, 0x86, 0x7f, 0x7d, 0x77, 0x80, 0x80, 0x88, 0x80, + 0x80, 0x78, 0x7d, 0x7f, 0x86, 0x84, 0x7f, 0x7b, 0x79, 0x80, 0x81, 0x88, + 0x7f, 0x7f, 0x77, 0x7e, 0x7f, 0x87, 0x82, 0x80, 0x7a, 0x7a, 0x80, 0x83, + 0x87, 0x7f, 0x7e, 0x77, 0x7f, 0x80, 0x88, 0x81, 0x80, 0x78, 0x7c, 0x7f, + 0x85, 0x85, 0x7f, 0x7c, 0x78, 0x80, 0x81, 0x88, 0x80, 0x80, 0x78, 0x7e, + 0x7f, 0x86, 0x83, 0x80, 0x7b, 0x7a, 0x80, 0x82, 0x87, 0x7f, 0x7f, 0x77, + 0x7f, 0x7f, 0x87, 0x81, 0x80, 0x79, 0x7c, 0x7f, 0x84, 0x86, 0x7f, 0x7d, + 0x78, 0x80, 0x80, 0x88, 0x80, 0x80, 0x78, 0x7d, 0x7f, 0x85, 0x84, 0x7f, + 0x7c, 0x79, 0x80, 0x81, 0x87, 0x7f, 0x7f, 0x78, 0x7f, 0x7f, 0x86, 0x82, + 0x80, 0x7a, 0x7b, 0x80, 0x83, 0x86, 0x7f, 0x7e, 0x78, 0x7f, 0x80, 0x87, + 0x81, 0x80, 0x79, 0x7d, 0x7f, 0x84, 0x84, 0x7f, 0x7d, 0x79, 0x80, 0x81, + 0x87, 0x80, 0x80, 0x78, 0x7e, 0x7f, 0x85, 0x83, 0x80, 0x7b, 0x7a, 0x80, + 0x82, 0x86, 0x7f, 0x7f, 0x78, 0x7f, 0x7f, 0x86, 0x81, 0x80, 0x7a, 0x7c, + 0x80, 0x83, 0x85, 0x7f, 0x7e, 0x79, 0x80, 0x80, 0x87, 0x80, 0x80, 0x79, + 0x7d, 0x7f, 0x85, 0x83, 0x7f, 0x7c, 0x7a, 0x80, 0x81, 0x86, 0x7f, 0x7f, + 0x79, 0x7f, 0x7f, 0x86, 0x82, 0x80, 0x7b, 0x7b, 0x80, 0x82, 0x85, 0x7f, + 0x7e, 0x79, 0x7f, 0x80, 0x86, 0x81, 0x80, 0x7a, 0x7d, 0x7f, 0x84, 0x84, + 0x7f, 0x7d, 0x79, 0x80, 0x80, 0x86, 0x80, 0x80, 0x79, 0x7e, 0x7f, 0x85, + 0x83, 0x80, 0x7c, 0x7b, 0x80, 0x81, 0x86, 0x7f, 0x7f, 0x79, 0x7f, 0x7f, + 0x86, 0x81, 0x80, 0x7b, 0x7c, 0x7f, 0x83, 0x85, 0x7f, 0x7e, 0x79, 0x80, + 0x80, 0x86, 0x80, 0x80, 0x7a, 0x7e, 0x7f, 0x84, 0x83, 0x7f, 0x7d, 0x7a, + 0x80, 0x81, 0x86, 0x80, 0x7f, 0x79, 0x7f, 0x7f, 0x85, 0x82, 0x80, 0x7b, + 0x7c, 0x80, 0x82, 0x85, 0x7f, 0x7e, 0x79, 0x7f, 0x80, 0x86, 0x81, 0x80, + 0x7a, 0x7d, 0x7f, 0x83, 0x84, 0x7f, 0x7d, 0x7a, 0x80, 0x80, 0x86, 0x80, + 0x80, 0x7a, 0x7e, 0x7f, 0x84, 0x82, 0x80, 0x7c, 0x7b, 0x80, 0x81, 0x85, + 0x7f, 0x7f, 0x7a, 0x7f, 0x7f, 0x85, 0x81, 0x80, 0x7b, 0x7c, 0x7f, 0x82, + 0x84, 0x7f, 0x7e, 0x7a, 0x80, 0x80, 0x85, 0x80, 0x80, 0x7a, 0x7e, 0x7f, + 0x84, 0x83, 0x7f, 0x7d, 0x7b, 0x80, 0x81, 0x85, 0x7f, 0x7f, 0x7a, 0x7f, + 0x7f, 0x84, 0x82, 0x80, 0x7c, 0x7c, 0x80, 0x82, 0x84, 0x7f, 0x7f, 0x7a, + 0x7f, 0x80, 0x85, 0x80, 0x80, 0x7b, 0x7d, 0x7f, 0x83, 0x83, 0x7f, 0x7e, + 0x7b, 0x80, 0x80, 0x85, 0x80, 0x80, 0x7a, 0x7e, 0x7f, 0x84, 0x82, 0x80, + 0x7d, 0x7c, 0x80, 0x81, 0x84, 0x7f, 0x7f, 0x7a, 0x7f, 0x7f, 0x84, 0x81, + 0x80, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x7f, 0x7e, 0x7b, 0x80, 0x80, 0x85, + 0x80, 0x80, 0x7b, 0x7e, 0x7f, 0x83, 0x82, 0x7f, 0x7d, 0x7b, 0x80, 0x80, + 0x84, 0x80, 0x7f, 0x7b, 0x7f, 0x7f, 0x84, 0x81, 0x80, 0x7c, 0x7c, 0x80, + 0x81, 0x84, 0x7f, 0x7f, 0x7b, 0x7f, 0x7f, 0x84, 0x80, 0x80, 0x7c, 0x7d, + 0x7f, 0x82, 0x83, 0x7f, 0x7e, 0x7b, 0x80, 0x80, 0x84, 0x80, 0x80, 0x7b, + 0x7e, 0x7f, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x80, 0x81, 0x84, 0x7f, 0x7f, + 0x7b, 0x7f, 0x7f, 0x84, 0x81, 0x80, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x7f, + 0x7f, 0x7b, 0x80, 0x80, 0x84, 0x80, 0x80, 0x7c, 0x7e, 0x7f, 0x82, 0x82, + 0x7f, 0x7e, 0x7c, 0x80, 0x80, 0x84, 0x7f, 0x7f, 0x7b, 0x7f, 0x7f, 0x83, + 0x81, 0x80, 0x7d, 0x7d, 0x80, 0x81, 0x83, 0x7f, 0x7f, 0x7c, 0x7f, 0x7f, + 0x83, 0x80, 0x80, 0x7c, 0x7e, 0x7f, 0x82, 0x82, 0x7f, 0x7e, 0x7c, 0x80, + 0x80, 0x83, 0x80, 0x80, 0x7c, 0x7f, 0x7f, 0x82, 0x81, 0x7f, 0x7e, 0x7d, + 0x80, 0x81, 0x83, 0x7f, 0x7f, 0x7c, 0x7f, 0x7f, 0x83, 0x81, 0x80, 0x7d, + 0x7e, 0x80, 0x81, 0x82, 0x7f, 0x7f, 0x7c, 0x80, 0x80, 0x83, 0x80, 0x80, + 0x7c, 0x7e, 0x7f, 0x82, 0x82, 0x7f, 0x7e, 0x7d, 0x80, 0x80, 0x83, 0x80, + 0x7f, 0x7c, 0x7f, 0x7f, 0x82, 0x81, 0x80, 0x7d, 0x7d, 0x80, 0x81, 0x82, + 0x7f, 0x7f, 0x7c, 0x7f, 0x7f, 0x83, 0x80, 0x80, 0x7d, 0x7e, 0x7f, 0x81, + 0x82, 0x7f, 0x7f, 0x7d, 0x80, 0x80, 0x83, 0x80, 0x80, 0x7d, 0x7f, 0x7f, + 0x82, 0x81, 0x80, 0x7e, 0x7d, 0x80, 0x80, 0x82, 0x7f, 0x7f, 0x7d, 0x7f, + 0x7f, 0x82, 0x80, 0x80, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x7f, 0x7f, 0x7d, + 0x80, 0x80, 0x82, 0x80, 0x80, 0x7d, 0x7f, 0x7f, 0x81, 0x81, 0x7f, 0x7e, + 0x7d, 0x80, 0x80, 0x82, 0x80, 0x7f, 0x7d, 0x7f, 0x7f, 0x82, 0x81, 0x80, + 0x7e, 0x7e, 0x80, 0x80, 0x82, 0x7f, 0x7f, 0x7d, 0x7f, 0x7f, 0x82, 0x80, + 0x80, 0x7e, 0x7e, 0x7f, 0x81, 0x81, 0x7f, 0x7f, 0x7d, 0x80, 0x80, 0x82, + 0x80, 0x80, 0x7d, 0x7f, 0x7f, 0x81, 0x81, 0x7f, 0x7e, 0x7e, 0x80, 0x80, + 0x82, 0x7f, 0x7f, 0x7d, 0x7f, 0x7f, 0x82, 0x80, 0x80, 0x7e, 0x7e, 0x80, + 0x80, 0x81, 0x7f, 0x7f, 0x7d, 0x80, 0x80, 0x82, 0x80, 0x80, 0x7e, 0x7f, + 0x7f, 0x81, 0x81, 0x7f, 0x7f, 0x7e, 0x80, 0x80, 0x81, 0x80, 0x7f, 0x7e, + 0x7f, 0x7f, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x7f, 0x7f, + 0x7e, 0x7f, 0x7f, 0x81, 0x80, 0x80, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x7f, + 0x7f, 0x7e, 0x80, 0x80, 0x81, 0x80, 0x80, 0x7e, 0x7f, 0x7f, 0x81, 0x80, + 0x7f, 0x7f, 0x7e, 0x80, 0x80, 0x81, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x81, + 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x7f, 0x7f, 0x7e, 0x7f, 0x80, + 0x81, 0x80, 0x80, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x80, + 0x80, 0x81, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, + 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, + 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, + 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, + 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f +}; +const uint32_t coin05_8k_raw_len = 7218; diff --git a/SampleSrc/TestBuild/compile.sh b/SampleSrc/TestBuild/compile.sh new file mode 100755 index 0000000..ec6a064 --- /dev/null +++ b/SampleSrc/TestBuild/compile.sh @@ -0,0 +1,8 @@ +#!/bin/bash + + +# arduino-cli compile --fqbn esp32:esp32:m5stick-c --export-binaries M5StickCPlus_FactoryTest2022.ino + +# get folder name, and set to [dir] variable. +dir=${PWD##*/} +arduino-cli compile --fqbn esp32:esp32:m5stick-c --export-binaries ${dir}.ino diff --git a/SampleSrc/TestBuild/monitor.sh b/SampleSrc/TestBuild/monitor.sh new file mode 100755 index 0000000..b4e05f0 --- /dev/null +++ b/SampleSrc/TestBuild/monitor.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# get serial port via board list, choose lines including "USB", and pick up 1st word +serial=`arduino-cli board list | grep USB | awk '{print $1}'` + +echo ${serial} +if [ -z "${serial}" ]; then + echo "No device connected." + exit +fi + +# open serial monitor (CTRL+C to quit) +arduino-cli monitor -p ${serial} --config baudrate=115200 diff --git a/SampleSrc/TestBuild/setup.sh b/SampleSrc/TestBuild/setup.sh new file mode 100755 index 0000000..e0d7e99 --- /dev/null +++ b/SampleSrc/TestBuild/setup.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# commented commands were not necessary for 1st setup, but necessary for future updates/upgrades +#arduino-cli update +#arduino-cli upgrade + +# arduino-cli core update-index --additional-urls https://dl.espressif.com/dl/package_esp32_index.json +arduino-cli core update-index --config-file arduino-cli.yaml + +# install core (board / platform) +arduino-cli core install esp32:esp32 + +# show the list of installed platforms +arduino-cli core list + +# install library +arduino-cli lib install M5StickCPlus + +# Optional for IRsend samples +arduino-cli lib install IRremoteESP8266 +arduino-cli lib install WiFi HttpClient +arduino-cli lib install Regexp Dictionary +arduino-cli lib install ArduinoJson +#arduino-cli lib install WiFiMulti_Generic + + +## You can find other libraries as follows. +# arduino-cli lib search [keyword] +## if you get too much candidates, use grep to filter +# arduino-cli lib search [keyword] | grep -e "^Name" + + +# Finally, just show board list +arduino-cli board list diff --git a/SampleSrc/TestBuild/testbuild_fromParent.sh b/SampleSrc/TestBuild/testbuild_fromParent.sh new file mode 100755 index 0000000..fbf45b0 --- /dev/null +++ b/SampleSrc/TestBuild/testbuild_fromParent.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# update src list +cd .. +ls *.ino > srclist.tmp + +cd TestBuild + +for f in `cat ../srclist.tmp` ; do + echo ${f} + cp ../${f} TestBuild.ino + ./compile.sh +done + +# delete srclist tmpfile +cd .. +rm srclist.tmp +cd TestBuild diff --git a/SampleSrc/TestBuild/upload.sh b/SampleSrc/TestBuild/upload.sh new file mode 100755 index 0000000..51b70e8 --- /dev/null +++ b/SampleSrc/TestBuild/upload.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +## get serial port via board list, choose lines including "USB", and pick up 1st word +serials=`arduino-cli board list | grep USB | awk '{print $1}'` + +# echo ${serials} +if [ -z "${serials}" ]; then + echo "No device connected." + exit +fi + + +## if multiple ports found, try uploading to all ports. +seriallist=($serials) + +## print the list +# echo ${seriallist[@]} + +for ser in ${seriallist[@]} ; do + echo ${ser} + arduino-cli upload --fqbn esp32:esp32:m5stick-c -p ${ser} "." +done + diff --git a/SampleSrc/Upload.sh b/SampleSrc/Upload.sh new file mode 100755 index 0000000..d30bc49 --- /dev/null +++ b/SampleSrc/Upload.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +### (1) mosi hikisuu ga areba, suguni jikkou +if [ $# -eq 1 ] ; then + file=$1 + echo "compile ${file}" + cp ${file} TestBuild/TestBuild.ino + cd TestBuild + ./compile.sh && ./upload.sh #&& ./monitor.sh + cd .. + exit +fi + +### (2) hikisuu ga nakereba, list and select + +ary=() + +for i in *.ino ; do + ary+=("$i") +done + +for i in ${!ary[@]} ; do + echo "$i : ${ary[$i]}" +done + +echo -n "Input num for build&upload (q:quit) > " +read input + +if [[ "$input" == "q" ]]; then + exit +fi + +if [ -n "${ary[$input]}" ]; then + echo "$input : ${ary[$input]}" + file=${ary[$input]} + cp ${file} TestBuild/TestBuild.ino + cd TestBuild + ./compile.sh && ./upload.sh #&& ./monitor.sh + cd .. +else + echo "Sorry, ${input} is not found." +fi + + + diff --git a/SampleSrc/accgyro.ino b/SampleSrc/accgyro.ino new file mode 100644 index 0000000..f0955b1 --- /dev/null +++ b/SampleSrc/accgyro.ino @@ -0,0 +1,27 @@ +// 参考にしたサイト: https://qiita.com/kitazaki/items/1ce671532270cd44fabf + +#include + +float gyroX, gyroY, gyroZ; // ジャイロデータ  +float ax, ay, az; // 加速度データ + +void setup() { + M5.begin(); + M5.Lcd.setRotation(3); + M5.IMU.Init(); + Serial.begin(115200); + Serial.println(""); +} +void loop() { + M5.IMU.getGyroData(&gyroX, &gyroY, &gyroZ); + M5.IMU.getAccelData(&ax, &ay, &az); + M5.Lcd.setCursor(0, 10, 2); + + M5.Lcd.printf("aX :%7.2f \naY :%7.2f \naZ :%7.2f mg \n\n", ax , ay , az ); + Serial.printf("%7.2f , %7.2f , %7.2f \n", ax , ay , az); //シリアルプロッタ用の出力 + + M5.Lcd.printf("gX :%7.2f \ngY :%7.2f \ngZ :%7.2f mg ", gyroX * M5.IMU.gRes, gyroY * M5.IMU.gRes, gyroZ * M5.IMU.gRes); + // Serial.printf("%7.2f,%7.2f,%7.2f,", gyroX * M5.IMU.gRes, gyroY * M5.IMU.gRes, gyroZ * M5.IMU.gRes); + + delay(50); +} \ No newline at end of file diff --git a/SampleSrc/analogread.ino b/SampleSrc/analogread.ino new file mode 100644 index 0000000..402677c --- /dev/null +++ b/SampleSrc/analogread.ino @@ -0,0 +1,24 @@ +#include + +int PIN = 26; + +// +--- 15kΩ抵抗 --+-- CdSセル --+ +// | | | +// GND G26 3V3 +// https://www.storange.jp/2012/03/arduinocds.html + +// 注意点: https://lang-ship.com/reference/unofficial/M5StickC/Peripherals/ADC/ + +void setup() { + M5.begin(); + + pinMode(PIN, ANALOG); // PINのモード設定 + + // https://lang-ship.com/blog/work/m5stickc-io/ +} + +void loop() { + Serial.printf("%04d\n", analogRead(PIN) ); // 暗 0〜4095 明 + + delay(1000); +} \ No newline at end of file diff --git a/SampleSrc/bts01_master.ino b/SampleSrc/bts01_master.ino new file mode 100644 index 0000000..b758796 --- /dev/null +++ b/SampleSrc/bts01_master.ino @@ -0,0 +1,105 @@ +#include +#include + +BluetoothSerial SerialBT; + +bool willConnect = true; +bool connected; + +const char* dname = "BT_Serial_00"; // Slave device name + +void setup() { + M5.begin(); + M5.Lcd.setRotation(3); + M5.Lcd.fillScreen(BLUE); + + M5.Lcd.setTextColor(BLACK, CYAN); + M5.Lcd.setCursor(0, 0, 1); + M5.Lcd.setTextSize(2); + + Serial.begin(115200); + SerialBT.begin("BT_Serial_01", true); + Serial.println("The device started in master mode, make sure remote BT device is on!"); + + // connect(address) is fast (upto 10 secs max), connect(name) is slow (upto 30 secs max) as it needs + // to resolve name to address first, but it allows to connect to different devices with the same name. + // Set CoreDebugLevel to Info to view devices bluetooth address and device names + if (false) { + connected = SerialBT.connect(dname); + } else { + // uint8_t address[6] = {0x24, 0xA1, 0x60, 0x47, 0x84, 0x4E}; // MACアドレスが 24:A1:60:47:84:4E のとき + uint8_t address[6] = {0x94, 0xB9, 0x7e, 0xad, 0x53, 0x92}; + connected = SerialBT.connect(address); + } + if (connected) { + Serial.println("Connected Succesfully!"); + M5.Beep.tone(2000, 1000); + M5.Lcd.fillScreen(CYAN); + } + // disconnect() may take upto 10 secs max + // if (SerialBT.disconnect()) { + // connected = false; + // Serial.println("Disconnected Succesfully!"); + // } + // this would reconnect to the name(will use address, if resolved) or address used with connect(name/address). + //SerialBT.connect(); +} + +void connectOrDisconnect(bool willCon) { + if (willCon && connected) return; + if (willCon) { + if (connected) { + Serial.println("Connected Succesfully!"); + M5.Beep.tone(2000, 1000); + M5.Lcd.fillScreen(CYAN); + } else { + while (!SerialBT.connected(10000)) { + Serial.println("Failed to connect. Make sure remote device is available and in range, then restart app."); + M5.Lcd.fillScreen(PURPLE); + } + } + } else { + if ( SerialBT.disconnect() ) { + connected = false; + Serial.println("Disconnected Succesfully!"); + M5.Lcd.fillScreen(BLUE); + } + } +} +int line = 0; +void loop() { + connectOrDisconnect( willConnect ); + + char c; + if (Serial.available()) { + SerialBT.write(c = Serial.read()); + Serial.printf("read:%c\n", c); + } + if (SerialBT.available()) { + Serial.write(c = SerialBT.read()); + M5.Lcd.print(c); + if (c == 0xa) line++; + if (line > 7) { + M5.Lcd.fillScreen(CYAN); M5.Lcd.setCursor(0, 0, 1); + line = 0; + } + } + + M5.update(); M5.Beep.update(); + if (M5.BtnA.wasReleasefor(1000) ) { + SerialBT.println("[A] was Pressed longer than 1s"); + } else if (M5.BtnA.wasReleased()) { + SerialBT.println("[A] was Pressed"); + } else if (M5.BtnB.wasReleasefor(1000) ) { + SerialBT.println("[B] was Pressed longer than 1s"); + if (SerialBT.disconnect()) { + connected = false; + M5.Lcd.fillScreen(PURPLE); + } + } else if (M5.BtnB.wasReleased()) { + SerialBT.println("[B] was Pressed"); + } else if (M5.Axp.GetBtnPress() == 2) { + SerialBT.println("[Power] was Pressed"); + } + delay(20); +} diff --git a/SampleSrc/bts01_showmac.ino b/SampleSrc/bts01_showmac.ino new file mode 100644 index 0000000..dc91218 --- /dev/null +++ b/SampleSrc/bts01_showmac.ino @@ -0,0 +1,11 @@ +void setup(void) { + Serial.begin(115200); +} + +void loop() { + Serial.println("-----------------"); + uint8_t macBT[6]; + esp_read_mac(macBT, ESP_MAC_BT); + Serial.printf("%02X:%02X:%02X:%02X:%02X:%02X\r\n", macBT[0], macBT[1], macBT[2], macBT[3], macBT[4], macBT[5]); + delay(5000); +} \ No newline at end of file diff --git a/SampleSrc/bts01_slave.ino b/SampleSrc/bts01_slave.ino new file mode 100644 index 0000000..01e38a8 --- /dev/null +++ b/SampleSrc/bts01_slave.ino @@ -0,0 +1,61 @@ +#include +#include "BluetoothSerial.h" + +BluetoothSerial SerialBT; + +const char* dname = "BT_Serial_00"; // Slave device name + +void setup() { + M5.begin(); + M5.Lcd.setRotation(3); + M5.Lcd.fillScreen(YELLOW); + M5.Lcd.setTextColor(BLACK, YELLOW); + M5.Lcd.setCursor(0, 0, 1); + M5.Lcd.setTextSize(2); + + Serial.begin(115200); + SerialBT.begin(dname); //Bluetooth device name + Serial.println("The device started, now you can pair it with bluetooth!"); + + uint8_t macBT[6]; + esp_read_mac(macBT, ESP_MAC_BT); + char mac[20]; + sprintf(mac, "%02X:%02X:%02X:%02X:%02X:%02X", macBT[0], macBT[1], macBT[2], macBT[3], macBT[4], macBT[5]); + Serial.println(mac); + M5.Lcd.println(mac); + +} + +int line = 0; +void loop() { + char c; + if (Serial.available()) { + SerialBT.write(c = Serial.read()); + Serial.printf("read:%c\n", c); + } + if (SerialBT.available()) { + Serial.write(c = SerialBT.read()); + SerialBT.write(c + 0); + M5.Lcd.print(c); + if (c == 0xa) line++; + if (line > 7) { + M5.Lcd.fillScreen(YELLOW); M5.Lcd.setCursor(0, 0, 1); + line = 0; + } + } + + M5.update(); + if (M5.BtnA.wasReleasefor(1000) ) { + SerialBT.println("[A] was Pressed longer than 1s"); + } else if (M5.BtnA.wasReleased()) { + SerialBT.println("[A] was Pressed"); + } else if (M5.BtnB.wasReleasefor(1000) ) { + SerialBT.println("[B] was Pressed longer than 1s"); + } else if (M5.BtnB.wasReleased()) { + SerialBT.println("[B] was Pressed"); + } else if (M5.Axp.GetBtnPress() == 2) { + SerialBT.println("[Power] was Pressed"); + } + + delay(20); +} \ No newline at end of file diff --git a/SampleSrc/button01.ino b/SampleSrc/button01.ino new file mode 100644 index 0000000..c125448 --- /dev/null +++ b/SampleSrc/button01.ino @@ -0,0 +1,23 @@ +#include + +void setup() { + M5.begin(); + M5.Lcd.setRotation(3); +} + +void loop() { + M5.update(); // 各ボタンの状態を(読み取って)更新する:ボタンを判定するときは必須。 + + if (M5.BtnA.wasReleasefor(1000) ) { + Serial.println("[A] was Pressed longer than 1s"); + } else if (M5.BtnA.wasReleased()) { + Serial.println("[A] was Pressed"); + } else if (M5.BtnB.wasReleasefor(1000) ) { + Serial.println("[B] was Pressed longer than 1s"); + } else if (M5.BtnB.wasReleased()) { + Serial.println("[B] was Pressed"); + } else if (M5.Axp.GetBtnPress() == 2) { + Serial.println("[Power] was Pressed"); + } + delay(10); +} \ No newline at end of file diff --git a/SampleSrc/cds01.ino b/SampleSrc/cds01.ino new file mode 100644 index 0000000..539570c --- /dev/null +++ b/SampleSrc/cds01.ino @@ -0,0 +1,19 @@ +int PIN = 26; + +// +--- 15kΩ抵抗 --+-- CdSセル --+ +// | | | +// GND G26 3V3 +// https://www.storange.jp/2012/03/arduinocds.html + +// 注意点: https://lang-ship.com/reference/unofficial/M5StickC/Peripherals/ADC/ + +void setup() { + Serial.begin(115200); + pinMode(PIN, ANALOG); // PINのモード設定 + // https://lang-ship.com/blog/work/m5stickc-io/ +} + +void loop() { + Serial.printf("%04d\n", analogRead(PIN) ); // 暗 0 〜 4095 明 + delay(1000); +} \ No newline at end of file diff --git a/SampleSrc/coin05_16k.ino.txt b/SampleSrc/coin05_16k.ino.txt new file mode 100644 index 0000000..bc95974 --- /dev/null +++ b/SampleSrc/coin05_16k.ino.txt @@ -0,0 +1,1207 @@ +const uint8_t coin05_16k_raw[] PROGMEM = { + 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, + 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x81, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x7f, + 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x7f, 0x7f, + 0x80, 0x7f, 0x7f, 0x81, 0x7d, 0xa3, 0xb9, 0xa8, 0xb2, 0xd4, 0xd2, 0xc2, + 0xc5, 0xaa, 0x83, 0x7f, 0x83, 0x61, 0x49, 0x50, 0x4c, 0x4f, 0x74, 0x86, + 0x7a, 0x8d, 0xb0, 0xb2, 0xae, 0xb4, 0x9d, 0x7b, 0x7f, 0x7f, 0x5c, 0x48, + 0x50, 0x4a, 0x51, 0x77, 0x86, 0x7d, 0x95, 0xb8, 0xb9, 0xb7, 0xbb, 0xa1, + 0x7e, 0x7e, 0x76, 0x4f, 0x3a, 0x41, 0x3f, 0x47, 0x70, 0x85, 0x82, 0xa0, + 0xc8, 0xc8, 0xc1, 0xc5, 0xa6, 0x7d, 0x7e, 0x72, 0x41, 0x2e, 0x38, 0x33, + 0x44, 0x75, 0x83, 0x84, 0xb0, 0xd6, 0xd4, 0xd6, 0xd0, 0xa0, 0x7d, 0x7b, + 0x5c, 0x2b, 0x1e, 0x1c, 0x1f, 0x47, 0x77, 0x87, 0x9c, 0xc8, 0xe3, 0xe9, + 0xe9, 0xce, 0x9c, 0x7c, 0x6a, 0x4a, 0x28, 0x1b, 0x1a, 0x26, 0x4d, 0x79, + 0x90, 0xa5, 0xc8, 0xdd, 0xdb, 0xd6, 0xc5, 0x99, 0x75, 0x65, 0x49, 0x28, + 0x28, 0x32, 0x31, 0x4b, 0x78, 0x8d, 0x9f, 0xc7, 0xd7, 0xc9, 0xcc, 0xca, + 0xa1, 0x82, 0x78, 0x54, 0x2e, 0x34, 0x39, 0x2f, 0x4a, 0x70, 0x78, 0x90, + 0xc0, 0xcc, 0xc2, 0xcc, 0xbf, 0x95, 0x89, 0x83, 0x56, 0x37, 0x3e, 0x36, + 0x37, 0x62, 0x7a, 0x74, 0x91, 0xbd, 0xc3, 0xc8, 0xd3, 0xb1, 0x87, 0x89, + 0x7e, 0x50, 0x3a, 0x36, 0x24, 0x33, 0x67, 0x7b, 0x7b, 0xa0, 0xc6, 0xce, + 0xdc, 0xe2, 0xba, 0x8e, 0x85, 0x70, 0x42, 0x2b, 0x24, 0x16, 0x25, 0x59, + 0x76, 0x80, 0xa5, 0xd0, 0xdb, 0xe2, 0xe6, 0xc0, 0x8d, 0x80, 0x71, 0x45, + 0x28, 0x27, 0x21, 0x32, 0x68, 0x88, 0x86, 0xa0, 0xca, 0xd3, 0xd1, 0xd0, + 0xaa, 0x77, 0x72, 0x73, 0x4c, 0x30, 0x36, 0x35, 0x42, 0x77, 0x92, 0x84, + 0x97, 0xc2, 0xc6, 0xbe, 0xc2, 0xa2, 0x74, 0x77, 0x7d, 0x56, 0x3e, 0x49, + 0x45, 0x4d, 0x79, 0x8c, 0x7b, 0x91, 0xb8, 0xb7, 0xb0, 0xb8, 0x9c, 0x77, + 0x7f, 0x7f, 0x58, 0x45, 0x50, 0x49, 0x53, 0x7a, 0x84, 0x7a, 0x94, 0xb5, + 0xb2, 0xb1, 0xb5, 0x99, 0x7b, 0x83, 0x7d, 0x58, 0x4a, 0x51, 0x49, 0x56, + 0x7b, 0x82, 0x7a, 0x97, 0xb5, 0xb0, 0xb0, 0xb4, 0x95, 0x7a, 0x83, 0x7a, + 0x54, 0x4a, 0x51, 0x4a, 0x5a, 0x7e, 0x83, 0x7c, 0x9b, 0xb6, 0xb0, 0xb0, + 0xb2, 0x91, 0x79, 0x83, 0x77, 0x52, 0x4b, 0x52, 0x4a, 0x5c, 0x80, 0x81, + 0x7d, 0x9e, 0xb5, 0xae, 0xb1, 0xb0, 0x8e, 0x79, 0x84, 0x74, 0x51, 0x4d, + 0x52, 0x4b, 0x60, 0x82, 0x7f, 0x7d, 0xa0, 0xb5, 0xad, 0xb2, 0xaf, 0x8a, + 0x7a, 0x86, 0x72, 0x4e, 0x4e, 0x50, 0x49, 0x63, 0x84, 0x7e, 0x7f, 0xa4, + 0xb5, 0xae, 0xb4, 0xad, 0x87, 0x7b, 0x85, 0x6e, 0x4c, 0x4e, 0x50, 0x4a, + 0x66, 0x85, 0x7d, 0x82, 0xa8, 0xb5, 0xad, 0xb4, 0xaa, 0x85, 0x7c, 0x85, + 0x6b, 0x4c, 0x4f, 0x4f, 0x4c, 0x6a, 0x84, 0x7b, 0x84, 0xa9, 0xb4, 0xad, + 0xb4, 0xa8, 0x82, 0x7d, 0x85, 0x68, 0x4b, 0x50, 0x4f, 0x4d, 0x6d, 0x85, + 0x7b, 0x87, 0xab, 0xb3, 0xae, 0xb4, 0xa5, 0x81, 0x7e, 0x83, 0x65, 0x4b, + 0x50, 0x4e, 0x4e, 0x70, 0x85, 0x7a, 0x89, 0xae, 0xb2, 0xad, 0xb5, 0xa1, + 0x7f, 0x7f, 0x82, 0x61, 0x4b, 0x51, 0x4d, 0x50, 0x73, 0x84, 0x7a, 0x8d, + 0xb0, 0xb1, 0xae, 0xb5, 0x9f, 0x7d, 0x80, 0x81, 0x5d, 0x4a, 0x52, 0x4c, + 0x52, 0x77, 0x84, 0x7a, 0x91, 0xb2, 0xb0, 0xae, 0xb4, 0x9b, 0x7c, 0x82, + 0x7e, 0x5a, 0x4a, 0x52, 0x4b, 0x54, 0x7a, 0x83, 0x7a, 0x94, 0xb3, 0xb0, + 0xaf, 0xb4, 0x97, 0x7a, 0x83, 0x7d, 0x57, 0x4b, 0x52, 0x4b, 0x58, 0x7c, + 0x83, 0x7a, 0x97, 0xb3, 0xaf, 0xaf, 0xb2, 0x94, 0x7a, 0x83, 0x7a, 0x55, + 0x4b, 0x53, 0x4b, 0x5a, 0x7f, 0x81, 0x7b, 0x9b, 0xb5, 0xae, 0xb0, 0xb1, + 0x91, 0x7b, 0x84, 0x77, 0x53, 0x4c, 0x51, 0x4b, 0x5e, 0x80, 0x80, 0x7d, + 0x9e, 0xb4, 0xaf, 0xb1, 0xb0, 0x8d, 0x7a, 0x84, 0x74, 0x51, 0x4d, 0x51, + 0x4a, 0x61, 0x81, 0x7f, 0x7e, 0xa1, 0xb4, 0xae, 0xb2, 0xae, 0x8b, 0x7a, + 0x84, 0x71, 0x4f, 0x4d, 0x51, 0x4b, 0x64, 0x83, 0x7e, 0x80, 0xa4, 0xb4, + 0xad, 0xb3, 0xab, 0x88, 0x7b, 0x84, 0x6e, 0x4e, 0x4f, 0x50, 0x4c, 0x67, + 0x84, 0x7d, 0x83, 0xa7, 0xb3, 0xad, 0xb3, 0xaa, 0x84, 0x7c, 0x84, 0x6a, + 0x4c, 0x50, 0x50, 0x4c, 0x6b, 0x85, 0x7c, 0x85, 0xaa, 0xb3, 0xad, 0xb3, + 0xa6, 0x83, 0x7d, 0x83, 0x67, 0x4c, 0x51, 0x4f, 0x4e, 0x6e, 0x85, 0x7b, + 0x87, 0xab, 0xb2, 0xac, 0xb4, 0xa4, 0x80, 0x7e, 0x83, 0x64, 0x4b, 0x51, + 0x4e, 0x4f, 0x71, 0x84, 0x7a, 0x8a, 0xad, 0xb2, 0xad, 0xb4, 0xa1, 0x7e, + 0x7f, 0x82, 0x61, 0x4b, 0x52, 0x4e, 0x51, 0x75, 0x84, 0x7a, 0x8d, 0xb0, + 0xb1, 0xae, 0xb3, 0x9d, 0x7d, 0x80, 0x80, 0x5d, 0x4b, 0x52, 0x4d, 0x53, + 0x77, 0x84, 0x7a, 0x90, 0xb1, 0xb0, 0xad, 0xb3, 0x9a, 0x7b, 0x82, 0x7f, + 0x5a, 0x4b, 0x53, 0x4c, 0x56, 0x7a, 0x83, 0x7a, 0x94, 0xb2, 0xaf, 0xae, + 0xb2, 0x97, 0x7b, 0x83, 0x7c, 0x58, 0x4b, 0x53, 0x4c, 0x58, 0x7d, 0x82, + 0x7b, 0x97, 0xb3, 0xae, 0xaf, 0xb1, 0x93, 0x7b, 0x83, 0x79, 0x55, 0x4d, + 0x53, 0x4c, 0x5c, 0x7e, 0x81, 0x7c, 0x9a, 0xb3, 0xae, 0xaf, 0xb0, 0x90, + 0x7a, 0x84, 0x77, 0x53, 0x4d, 0x53, 0x4b, 0x5e, 0x80, 0x80, 0x7c, 0x9e, + 0xb4, 0xad, 0xb1, 0xaf, 0x8d, 0x7a, 0x85, 0x74, 0x52, 0x4e, 0x52, 0x4b, + 0x61, 0x82, 0x7f, 0x7e, 0xa0, 0xb4, 0xac, 0xb1, 0xad, 0x8a, 0x7a, 0x85, + 0x71, 0x4f, 0x4f, 0x52, 0x4c, 0x65, 0x83, 0x7f, 0x80, 0xa4, 0xb3, 0xac, + 0xb1, 0xaa, 0x86, 0x7b, 0x84, 0x6d, 0x4e, 0x4f, 0x51, 0x4d, 0x69, 0x85, + 0x7d, 0x82, 0xa7, 0xb3, 0xac, 0xb2, 0xa7, 0x84, 0x7c, 0x84, 0x6a, 0x4d, + 0x50, 0x50, 0x4e, 0x6c, 0x85, 0x7c, 0x85, 0xa9, 0xb3, 0xac, 0xb3, 0xa5, + 0x81, 0x7d, 0x84, 0x67, 0x4c, 0x51, 0x4f, 0x4f, 0x6f, 0x85, 0x7c, 0x88, + 0xab, 0xb1, 0xac, 0xb3, 0xa2, 0x7f, 0x7e, 0x82, 0x64, 0x4c, 0x52, 0x4f, + 0x50, 0x72, 0x85, 0x7b, 0x8a, 0xad, 0xb1, 0xad, 0xb3, 0x9f, 0x7e, 0x7f, + 0x81, 0x61, 0x4c, 0x52, 0x4e, 0x52, 0x74, 0x84, 0x7a, 0x8e, 0xae, 0xb1, + 0xad, 0xb3, 0x9d, 0x7c, 0x81, 0x80, 0x5e, 0x4b, 0x53, 0x4d, 0x54, 0x77, + 0x84, 0x7a, 0x91, 0xb0, 0xaf, 0xae, 0xb2, 0x99, 0x7c, 0x82, 0x7d, 0x5b, + 0x4c, 0x52, 0x4d, 0x57, 0x7a, 0x83, 0x7b, 0x94, 0xb1, 0xaf, 0xae, 0xb2, + 0x96, 0x7b, 0x83, 0x7c, 0x58, 0x4d, 0x53, 0x4c, 0x5a, 0x7c, 0x82, 0x7b, + 0x97, 0xb1, 0xae, 0xaf, 0xb0, 0x92, 0x7a, 0x83, 0x79, 0x56, 0x4d, 0x53, + 0x4c, 0x5d, 0x7f, 0x81, 0x7c, 0x9a, 0xb2, 0xad, 0xaf, 0xaf, 0x8f, 0x7a, + 0x84, 0x77, 0x54, 0x4e, 0x53, 0x4d, 0x5f, 0x80, 0x80, 0x7d, 0x9d, 0xb3, + 0xad, 0xb0, 0xae, 0x8c, 0x7a, 0x84, 0x74, 0x52, 0x4e, 0x52, 0x4c, 0x62, + 0x81, 0x7f, 0x7f, 0xa0, 0xb2, 0xac, 0xb0, 0xac, 0x8a, 0x7b, 0x84, 0x71, + 0x51, 0x4f, 0x52, 0x4d, 0x65, 0x83, 0x7e, 0x80, 0xa3, 0xb3, 0xac, 0xb1, + 0xa9, 0x87, 0x7c, 0x84, 0x6e, 0x4f, 0x50, 0x51, 0x4e, 0x69, 0x83, 0x7d, + 0x83, 0xa5, 0xb2, 0xac, 0xb2, 0xa7, 0x84, 0x7c, 0x84, 0x6b, 0x4e, 0x51, + 0x51, 0x4e, 0x6c, 0x84, 0x7c, 0x84, 0xa8, 0xb1, 0xac, 0xb2, 0xa5, 0x82, + 0x7d, 0x83, 0x68, 0x4e, 0x52, 0x50, 0x50, 0x6f, 0x85, 0x7b, 0x87, 0xaa, + 0xb1, 0xac, 0xb3, 0xa2, 0x80, 0x7e, 0x83, 0x64, 0x4d, 0x53, 0x4f, 0x51, + 0x72, 0x84, 0x7b, 0x8b, 0xac, 0xb0, 0xac, 0xb2, 0x9f, 0x7e, 0x7f, 0x81, + 0x62, 0x4d, 0x53, 0x4f, 0x53, 0x76, 0x85, 0x7a, 0x8d, 0xae, 0xaf, 0xac, + 0xb2, 0x9c, 0x7d, 0x80, 0x80, 0x5f, 0x4d, 0x53, 0x4e, 0x55, 0x78, 0x84, + 0x7a, 0x90, 0xaf, 0xaf, 0xac, 0xb2, 0x99, 0x7b, 0x81, 0x7e, 0x5c, 0x4d, + 0x54, 0x4d, 0x58, 0x7b, 0x83, 0x7a, 0x93, 0xb0, 0xad, 0xad, 0xb0, 0x95, + 0x7b, 0x82, 0x7c, 0x5a, 0x4e, 0x54, 0x4d, 0x5a, 0x7d, 0x82, 0x7b, 0x96, + 0xb1, 0xac, 0xae, 0xb0, 0x92, 0x7b, 0x84, 0x7a, 0x57, 0x4f, 0x54, 0x4d, + 0x5d, 0x7f, 0x81, 0x7c, 0x99, 0xb1, 0xac, 0xae, 0xaf, 0x8f, 0x7a, 0x84, + 0x77, 0x55, 0x4f, 0x54, 0x4d, 0x60, 0x81, 0x80, 0x7d, 0x9d, 0xb1, 0xab, + 0xaf, 0xac, 0x8c, 0x7b, 0x84, 0x73, 0x53, 0x50, 0x54, 0x4e, 0x63, 0x82, + 0x7f, 0x7f, 0xa0, 0xb1, 0xab, 0xb0, 0xab, 0x89, 0x7b, 0x85, 0x71, 0x51, + 0x51, 0x53, 0x4e, 0x66, 0x82, 0x7d, 0x81, 0xa3, 0xb1, 0xab, 0xb0, 0xa9, + 0x86, 0x7c, 0x84, 0x6e, 0x50, 0x51, 0x53, 0x4e, 0x6a, 0x84, 0x7d, 0x83, + 0xa6, 0xb1, 0xab, 0xb1, 0xa6, 0x84, 0x7d, 0x84, 0x6a, 0x4f, 0x52, 0x52, + 0x50, 0x6d, 0x84, 0x7c, 0x86, 0xa7, 0xb0, 0xaa, 0xb1, 0xa4, 0x81, 0x7d, + 0x83, 0x67, 0x4e, 0x53, 0x51, 0x51, 0x71, 0x85, 0x7b, 0x88, 0xaa, 0xaf, + 0xab, 0xb1, 0xa0, 0x7f, 0x7e, 0x82, 0x64, 0x4e, 0x54, 0x51, 0x52, 0x73, + 0x85, 0x7b, 0x8b, 0xab, 0xae, 0xab, 0xb1, 0x9d, 0x7e, 0x80, 0x81, 0x61, + 0x4e, 0x55, 0x50, 0x55, 0x76, 0x84, 0x7b, 0x8e, 0xad, 0xae, 0xab, 0xb1, + 0x9b, 0x7c, 0x81, 0x7f, 0x5f, 0x4f, 0x55, 0x4f, 0x56, 0x79, 0x83, 0x7a, + 0x91, 0xae, 0xac, 0xab, 0xb0, 0x97, 0x7c, 0x81, 0x7d, 0x5c, 0x4f, 0x55, + 0x4f, 0x59, 0x7b, 0x82, 0x7b, 0x94, 0xaf, 0xac, 0xac, 0xb0, 0x95, 0x7b, + 0x83, 0x7c, 0x5a, 0x4f, 0x55, 0x4e, 0x5b, 0x7c, 0x81, 0x7b, 0x96, 0xaf, + 0xab, 0xad, 0xae, 0x92, 0x7b, 0x83, 0x79, 0x58, 0x50, 0x56, 0x4e, 0x5e, + 0x7f, 0x81, 0x7c, 0x99, 0xb0, 0xaa, 0xad, 0xad, 0x8f, 0x7b, 0x84, 0x77, + 0x56, 0x51, 0x55, 0x4f, 0x61, 0x80, 0x80, 0x7d, 0x9c, 0xb0, 0xaa, 0xad, + 0xac, 0x8b, 0x7b, 0x85, 0x74, 0x53, 0x51, 0x55, 0x4e, 0x64, 0x82, 0x7f, + 0x7f, 0x9f, 0xb0, 0xaa, 0xae, 0xa9, 0x89, 0x7b, 0x85, 0x71, 0x53, 0x52, + 0x54, 0x4f, 0x67, 0x83, 0x7d, 0x80, 0xa2, 0xb0, 0xa9, 0xaf, 0xa7, 0x86, + 0x7c, 0x85, 0x6e, 0x51, 0x53, 0x53, 0x50, 0x6a, 0x83, 0x7c, 0x83, 0xa4, + 0xaf, 0xaa, 0xaf, 0xa5, 0x83, 0x7d, 0x84, 0x6b, 0x50, 0x53, 0x53, 0x50, + 0x6d, 0x84, 0x7c, 0x85, 0xa7, 0xaf, 0xaa, 0xb0, 0xa2, 0x81, 0x7d, 0x83, + 0x68, 0x4f, 0x54, 0x52, 0x51, 0x70, 0x85, 0x7b, 0x87, 0xa8, 0xaf, 0xaa, + 0xb0, 0xa0, 0x7f, 0x7f, 0x83, 0x64, 0x4f, 0x56, 0x51, 0x54, 0x73, 0x84, + 0x7a, 0x89, 0xaa, 0xad, 0xaa, 0xb0, 0x9d, 0x7e, 0x81, 0x82, 0x62, 0x4f, + 0x56, 0x51, 0x54, 0x76, 0x84, 0x79, 0x8c, 0xad, 0xad, 0xaa, 0xb0, 0x99, + 0x7d, 0x82, 0x80, 0x5f, 0x4f, 0x56, 0x51, 0x58, 0x7a, 0x83, 0x7a, 0x90, + 0xad, 0xad, 0xaa, 0xaf, 0x97, 0x7a, 0x83, 0x7e, 0x5c, 0x4f, 0x55, 0x4f, + 0x5b, 0x7a, 0x83, 0x7c, 0x93, 0xae, 0xac, 0xad, 0xae, 0x93, 0x7c, 0x83, + 0x7c, 0x5a, 0x4f, 0x56, 0x4f, 0x5b, 0x7c, 0x80, 0x7b, 0x96, 0xae, 0xab, + 0xae, 0xaf, 0x92, 0x7c, 0x84, 0x7a, 0x57, 0x4f, 0x55, 0x4e, 0x5e, 0x7e, + 0x81, 0x7e, 0x99, 0xaf, 0xac, 0xae, 0xad, 0x8d, 0x7a, 0x86, 0x77, 0x54, + 0x50, 0x56, 0x50, 0x61, 0x80, 0x80, 0x7e, 0x9c, 0xb0, 0xab, 0xae, 0xaa, + 0x89, 0x7b, 0x85, 0x73, 0x54, 0x51, 0x56, 0x50, 0x65, 0x83, 0x7e, 0x7f, + 0xa0, 0xaf, 0xa9, 0xae, 0xa9, 0x88, 0x7b, 0x86, 0x71, 0x51, 0x55, 0x55, + 0x4f, 0x68, 0x82, 0x7e, 0x83, 0xa1, 0xae, 0xaa, 0xb0, 0xa7, 0x84, 0x7c, + 0x84, 0x6e, 0x51, 0x53, 0x54, 0x50, 0x6c, 0x85, 0x7c, 0x84, 0xa5, 0xae, + 0xa9, 0xae, 0xa4, 0x83, 0x7c, 0x84, 0x6b, 0x51, 0x55, 0x53, 0x51, 0x6e, + 0x85, 0x7d, 0x86, 0xa7, 0xad, 0xa9, 0xb1, 0xa1, 0x7f, 0x7d, 0x84, 0x69, + 0x4f, 0x56, 0x54, 0x52, 0x71, 0x84, 0x7c, 0x8a, 0xa9, 0xad, 0xaa, 0xb0, + 0x9f, 0x80, 0x7d, 0x7f, 0x65, 0x50, 0x54, 0x51, 0x55, 0x75, 0x85, 0x7c, + 0x8c, 0xac, 0xad, 0xa8, 0xaf, 0x9c, 0x7d, 0x7f, 0x7f, 0x61, 0x50, 0x55, + 0x51, 0x58, 0x76, 0x84, 0x7e, 0x8f, 0xaa, 0xac, 0xaa, 0xae, 0x99, 0x7e, + 0x81, 0x7e, 0x60, 0x50, 0x56, 0x50, 0x57, 0x7a, 0x84, 0x7a, 0x90, 0xab, + 0xb0, 0x96, 0x7b, 0x82, 0x7d, 0x5d, 0x4e, 0x5e, 0x7c, 0x7f, 0x7a, 0x96, + 0xaf, 0xac, 0x8f, 0x7b, 0x84, 0x79, 0x5a, 0x4f, 0x63, 0x82, 0x80, 0x7c, + 0x9c, 0xae, 0xa4, 0x87, 0x7b, 0x83, 0x71, 0x56, 0x51, 0x68, 0x84, 0x7e, + 0x81, 0xa2, 0xb1, 0xa4, 0x84, 0x7d, 0x86, 0x6b, 0x50, 0x52, 0x6e, 0x85, + 0x7b, 0x86, 0xa5, 0xb1, 0xa1, 0x81, 0x7d, 0x82, 0x67, 0x4f, 0x55, 0x76, + 0x84, 0x77, 0x8b, 0xab, 0xb0, 0x9b, 0x7e, 0x80, 0x80, 0x62, 0x50, 0x59, + 0x77, 0x81, 0x7b, 0x92, 0xab, 0xad, 0x95, 0x7b, 0x82, 0x7d, 0x5d, 0x4e, + 0x5d, 0x7e, 0x82, 0x7d, 0x98, 0xac, 0xaa, 0x90, 0x7b, 0x83, 0x76, 0x59, + 0x51, 0x62, 0x82, 0x81, 0x7e, 0x9c, 0xae, 0xa8, 0x8b, 0x79, 0x83, 0x73, + 0x56, 0x51, 0x66, 0x82, 0x7f, 0x82, 0xa0, 0xaf, 0xa4, 0x85, 0x7a, 0x84, + 0x6e, 0x53, 0x52, 0x6d, 0x86, 0x7d, 0x86, 0xa5, 0xae, 0x9e, 0x80, 0x7d, + 0x81, 0x66, 0x52, 0x55, 0x74, 0x87, 0x7b, 0x8b, 0xa9, 0xaf, 0x9b, 0x7c, + 0x7f, 0x80, 0x62, 0x4f, 0x58, 0x79, 0x85, 0x7b, 0x92, 0xac, 0xae, 0x95, + 0x7a, 0x81, 0x7b, 0x5c, 0x4d, 0x5c, 0x7e, 0x83, 0x7b, 0x96, 0xae, 0xab, + 0x8f, 0x7b, 0x83, 0x76, 0x59, 0x4f, 0x63, 0x81, 0x80, 0x7e, 0x9b, 0xaf, + 0xa9, 0x8a, 0x7b, 0x85, 0x73, 0x55, 0x51, 0x69, 0x83, 0x7d, 0x81, 0xa0, + 0xaf, 0xa4, 0x85, 0x7b, 0x84, 0x6e, 0x53, 0x52, 0x6e, 0x85, 0x7b, 0x84, + 0xa4, 0xaf, 0x9f, 0x80, 0x7d, 0x83, 0x68, 0x51, 0x56, 0x73, 0x85, 0x7a, + 0x8a, 0xa8, 0xad, 0x9a, 0x7e, 0x80, 0x80, 0x63, 0x51, 0x59, 0x78, 0x84, + 0x7a, 0x90, 0xab, 0xac, 0x96, 0x7c, 0x82, 0x7c, 0x5e, 0x50, 0x5d, 0x7c, + 0x82, 0x7b, 0x95, 0xad, 0xab, 0x8f, 0x7a, 0x85, 0x79, 0x59, 0x50, 0x63, + 0x80, 0x80, 0x7e, 0x9b, 0xae, 0xa8, 0x8a, 0x7b, 0x84, 0x72, 0x56, 0x50, + 0x68, 0x84, 0x7d, 0x80, 0xa0, 0xaf, 0xa4, 0x85, 0x7c, 0x84, 0x6d, 0x53, + 0x53, 0x6e, 0x85, 0x7c, 0x85, 0xa4, 0xaf, 0xa0, 0x80, 0x7e, 0x83, 0x68, + 0x51, 0x56, 0x73, 0x84, 0x7b, 0x8a, 0xa7, 0xae, 0x9b, 0x7e, 0x80, 0x80, + 0x64, 0x50, 0x58, 0x78, 0x84, 0x79, 0x8f, 0xaa, 0xae, 0x96, 0x7b, 0x82, + 0x7e, 0x5e, 0x4f, 0x5e, 0x7c, 0x82, 0x7b, 0x95, 0xac, 0xab, 0x90, 0x7a, + 0x84, 0x79, 0x5a, 0x50, 0x62, 0x80, 0x80, 0x7c, 0x9a, 0xae, 0xa8, 0x8b, + 0x7b, 0x85, 0x74, 0x57, 0x51, 0x67, 0x83, 0x7d, 0x80, 0x9f, 0xaf, 0xa5, + 0x85, 0x7c, 0x85, 0x6e, 0x53, 0x53, 0x6d, 0x84, 0x7c, 0x85, 0xa3, 0xae, + 0x9f, 0x81, 0x7e, 0x82, 0x69, 0x52, 0x56, 0x73, 0x85, 0x7a, 0x89, 0xa8, + 0xae, 0x9a, 0x7e, 0x80, 0x80, 0x63, 0x51, 0x5a, 0x78, 0x83, 0x7b, 0x8f, + 0xa9, 0xad, 0x95, 0x7b, 0x82, 0x7d, 0x5e, 0x50, 0x5e, 0x7c, 0x82, 0x7b, + 0x94, 0xac, 0xaa, 0x90, 0x7b, 0x83, 0x78, 0x5b, 0x51, 0x62, 0x80, 0x80, + 0x7d, 0x99, 0xad, 0xa8, 0x8b, 0x7b, 0x84, 0x74, 0x57, 0x52, 0x67, 0x82, + 0x7e, 0x81, 0x9e, 0xad, 0xa4, 0x86, 0x7c, 0x84, 0x6e, 0x55, 0x54, 0x6d, + 0x84, 0x7c, 0x84, 0xa3, 0xae, 0xa0, 0x82, 0x7d, 0x83, 0x69, 0x53, 0x56, + 0x72, 0x84, 0x7b, 0x89, 0xa6, 0xae, 0x9b, 0x7e, 0x80, 0x81, 0x64, 0x51, + 0x5a, 0x77, 0x83, 0x7a, 0x8e, 0xa9, 0xac, 0x96, 0x7c, 0x82, 0x7d, 0x60, + 0x51, 0x5d, 0x7c, 0x83, 0x7b, 0x94, 0xab, 0xaa, 0x90, 0x7a, 0x83, 0x79, + 0x5b, 0x51, 0x62, 0x80, 0x81, 0x7e, 0x99, 0xad, 0xa8, 0x8a, 0x7a, 0x84, + 0x74, 0x57, 0x52, 0x67, 0x83, 0x7f, 0x80, 0x9e, 0xad, 0xa4, 0x86, 0x7c, + 0x83, 0x6e, 0x55, 0x54, 0x6d, 0x84, 0x7c, 0x84, 0xa3, 0xae, 0xa0, 0x81, + 0x7d, 0x83, 0x69, 0x53, 0x56, 0x72, 0x84, 0x7b, 0x89, 0xa6, 0xad, 0x9b, + 0x7e, 0x80, 0x80, 0x64, 0x52, 0x5a, 0x77, 0x84, 0x7a, 0x8f, 0xa9, 0xab, + 0x96, 0x7c, 0x82, 0x7d, 0x5f, 0x52, 0x5e, 0x7c, 0x82, 0x7c, 0x94, 0xab, + 0xaa, 0x90, 0x7a, 0x83, 0x79, 0x5b, 0x51, 0x63, 0x80, 0x81, 0x7d, 0x99, + 0xac, 0xa7, 0x8a, 0x7a, 0x84, 0x74, 0x58, 0x52, 0x68, 0x83, 0x7e, 0x80, + 0x9e, 0xad, 0xa3, 0x86, 0x7b, 0x84, 0x6f, 0x55, 0x55, 0x6d, 0x84, 0x7d, + 0x84, 0xa2, 0xad, 0x9f, 0x81, 0x7d, 0x83, 0x6a, 0x53, 0x57, 0x72, 0x84, + 0x7b, 0x88, 0xa5, 0xac, 0x9b, 0x7e, 0x80, 0x81, 0x64, 0x52, 0x5a, 0x77, + 0x84, 0x7a, 0x8e, 0xa9, 0xab, 0x96, 0x7b, 0x81, 0x7d, 0x5f, 0x51, 0x5e, + 0x7c, 0x82, 0x7c, 0x94, 0xab, 0xa9, 0x90, 0x7b, 0x83, 0x79, 0x5b, 0x52, + 0x62, 0x7f, 0x80, 0x7d, 0x99, 0xac, 0xa7, 0x8b, 0x7b, 0x84, 0x74, 0x58, + 0x53, 0x68, 0x82, 0x7e, 0x80, 0x9e, 0xad, 0xa4, 0x86, 0x7b, 0x84, 0x6f, + 0x55, 0x55, 0x6d, 0x84, 0x7d, 0x84, 0xa2, 0xad, 0x9f, 0x81, 0x7d, 0x83, + 0x6a, 0x53, 0x57, 0x72, 0x84, 0x7b, 0x88, 0xa6, 0xac, 0x9b, 0x7f, 0x7f, + 0x81, 0x65, 0x52, 0x5a, 0x77, 0x83, 0x7b, 0x8e, 0xa8, 0xab, 0x96, 0x7c, + 0x82, 0x7e, 0x60, 0x52, 0x5e, 0x7b, 0x82, 0x7b, 0x93, 0xaa, 0xa9, 0x91, + 0x7b, 0x83, 0x79, 0x5d, 0x52, 0x62, 0x7f, 0x81, 0x7d, 0x98, 0xab, 0xa7, + 0x8b, 0x7a, 0x84, 0x75, 0x59, 0x53, 0x68, 0x82, 0x7f, 0x80, 0x9d, 0xac, + 0xa4, 0x86, 0x7b, 0x84, 0x6f, 0x56, 0x55, 0x6c, 0x84, 0x7d, 0x84, 0xa2, + 0xac, 0x9f, 0x82, 0x7d, 0x82, 0x6a, 0x54, 0x57, 0x72, 0x84, 0x7b, 0x88, + 0xa5, 0xac, 0x9b, 0x7e, 0x7f, 0x81, 0x66, 0x52, 0x5b, 0x77, 0x84, 0x7b, + 0x8d, 0xa7, 0xab, 0x96, 0x7c, 0x82, 0x7e, 0x61, 0x52, 0x5e, 0x7b, 0x82, + 0x7b, 0x92, 0xaa, 0xa9, 0x91, 0x7b, 0x83, 0x7a, 0x5d, 0x52, 0x62, 0x7f, + 0x81, 0x7d, 0x98, 0xab, 0xa7, 0x8c, 0x7a, 0x84, 0x75, 0x59, 0x53, 0x67, + 0x82, 0x7f, 0x80, 0x9d, 0xac, 0xa3, 0x87, 0x7c, 0x83, 0x70, 0x57, 0x55, + 0x6d, 0x84, 0x7c, 0x83, 0xa1, 0xac, 0xa0, 0x82, 0x7d, 0x83, 0x6b, 0x54, + 0x57, 0x72, 0x84, 0x7c, 0x88, 0xa4, 0xac, 0x9b, 0x7e, 0x7f, 0x81, 0x66, + 0x53, 0x5a, 0x77, 0x84, 0x7a, 0x8c, 0xa7, 0xab, 0x96, 0x7d, 0x81, 0x7e, + 0x62, 0x52, 0x5e, 0x7b, 0x82, 0x7b, 0x92, 0xa9, 0xa9, 0x91, 0x7a, 0x83, + 0x7b, 0x5d, 0x52, 0x63, 0x7f, 0x81, 0x7d, 0x97, 0xab, 0xa6, 0x8b, 0x7b, + 0x84, 0x76, 0x5a, 0x53, 0x67, 0x82, 0x7f, 0x7f, 0x9c, 0xac, 0xa3, 0x87, + 0x7b, 0x84, 0x71, 0x57, 0x55, 0x6d, 0x83, 0x7d, 0x83, 0xa0, 0xac, 0x9f, + 0x82, 0x7d, 0x84, 0x6c, 0x55, 0x58, 0x72, 0x84, 0x7b, 0x87, 0xa4, 0xab, + 0x9b, 0x7f, 0x7f, 0x81, 0x67, 0x54, 0x5b, 0x77, 0x84, 0x7a, 0x8c, 0xa7, + 0xaa, 0x96, 0x7c, 0x81, 0x7f, 0x62, 0x54, 0x5f, 0x7b, 0x82, 0x7b, 0x91, + 0xa8, 0xa8, 0x91, 0x7a, 0x84, 0x7b, 0x5e, 0x53, 0x63, 0x7f, 0x81, 0x7c, + 0x96, 0xaa, 0xa6, 0x8b, 0x7b, 0x84, 0x76, 0x5b, 0x54, 0x68, 0x82, 0x7e, + 0x7f, 0x9b, 0xab, 0xa3, 0x86, 0x7b, 0x85, 0x71, 0x57, 0x56, 0x6d, 0x83, + 0x7c, 0x82, 0x9f, 0xab, 0x9f, 0x82, 0x7d, 0x84, 0x6c, 0x56, 0x58, 0x72, + 0x84, 0x7b, 0x86, 0xa3, 0xab, 0x9b, 0x7f, 0x7f, 0x82, 0x67, 0x54, 0x5b, + 0x77, 0x83, 0x7a, 0x8c, 0xa6, 0xaa, 0x96, 0x7c, 0x82, 0x7f, 0x62, 0x53, + 0x5f, 0x7b, 0x82, 0x7b, 0x91, 0xa9, 0xa8, 0x91, 0x7b, 0x83, 0x7a, 0x5e, + 0x54, 0x63, 0x7f, 0x81, 0x7c, 0x97, 0xaa, 0xa5, 0x8b, 0x7a, 0x84, 0x76, + 0x5a, 0x55, 0x68, 0x81, 0x7f, 0x7f, 0x9b, 0xaa, 0xa2, 0x86, 0x7c, 0x84, + 0x71, 0x58, 0x56, 0x6d, 0x83, 0x7d, 0x82, 0xa0, 0xab, 0x9f, 0x82, 0x7d, + 0x83, 0x6c, 0x56, 0x58, 0x72, 0x84, 0x7b, 0x87, 0xa3, 0xab, 0x9b, 0x7e, + 0x7f, 0x82, 0x67, 0x54, 0x5c, 0x77, 0x84, 0x7a, 0x8c, 0xa6, 0xa9, 0x95, + 0x7c, 0x81, 0x7f, 0x63, 0x53, 0x5f, 0x7b, 0x83, 0x7a, 0x91, 0xa9, 0xa8, + 0x91, 0x7b, 0x83, 0x7b, 0x5e, 0x54, 0x63, 0x7f, 0x80, 0x7c, 0x96, 0xa9, + 0xa5, 0x8b, 0x7a, 0x85, 0x77, 0x5b, 0x55, 0x68, 0x82, 0x7e, 0x7e, 0x9b, + 0xaa, 0xa2, 0x87, 0x7c, 0x85, 0x72, 0x58, 0x56, 0x6d, 0x84, 0x7c, 0x82, + 0x9f, 0xaa, 0x9f, 0x82, 0x7c, 0x84, 0x6d, 0x56, 0x59, 0x72, 0x84, 0x7b, + 0x87, 0xa3, 0xaa, 0x9b, 0x7e, 0x7f, 0x82, 0x67, 0x54, 0x5b, 0x77, 0x85, + 0x7a, 0x8b, 0xa6, 0xa9, 0x95, 0x7c, 0x81, 0x7f, 0x63, 0x54, 0x5f, 0x7b, + 0x82, 0x7a, 0x91, 0xa8, 0xa8, 0x90, 0x7a, 0x83, 0x7c, 0x5e, 0x54, 0x64, + 0x7f, 0x81, 0x7c, 0x96, 0xa9, 0xa5, 0x8b, 0x7a, 0x84, 0x77, 0x5b, 0x54, + 0x68, 0x82, 0x7f, 0x7e, 0x9b, 0xaa, 0xa2, 0x87, 0x7b, 0x84, 0x72, 0x58, + 0x56, 0x6d, 0x83, 0x7d, 0x83, 0x9f, 0xaa, 0x9f, 0x82, 0x7d, 0x83, 0x6c, + 0x56, 0x59, 0x72, 0x84, 0x7c, 0x87, 0xa2, 0xaa, 0x9b, 0x7f, 0x7f, 0x81, + 0x68, 0x55, 0x5b, 0x76, 0x84, 0x7b, 0x8b, 0xa5, 0xa9, 0x96, 0x7d, 0x81, + 0x7f, 0x63, 0x54, 0x5f, 0x7a, 0x82, 0x7b, 0x91, 0xa7, 0xa7, 0x91, 0x7b, + 0x83, 0x7b, 0x60, 0x54, 0x62, 0x7f, 0x81, 0x7c, 0x95, 0xa9, 0xa5, 0x8c, + 0x7b, 0x84, 0x77, 0x5c, 0x55, 0x67, 0x81, 0x7f, 0x7e, 0x9a, 0xaa, 0xa3, + 0x87, 0x7b, 0x85, 0x72, 0x59, 0x56, 0x6c, 0x83, 0x7d, 0x82, 0x9e, 0xaa, + 0x9f, 0x83, 0x7d, 0x84, 0x6d, 0x57, 0x58, 0x71, 0x84, 0x7b, 0x86, 0xa2, + 0xaa, 0x9b, 0x7f, 0x7e, 0x82, 0x68, 0x55, 0x5b, 0x76, 0x84, 0x7b, 0x8b, + 0xa5, 0xa9, 0x96, 0x7c, 0x81, 0x7f, 0x64, 0x54, 0x5f, 0x7b, 0x83, 0x7b, + 0x90, 0xa7, 0xa7, 0x91, 0x7b, 0x83, 0x7b, 0x60, 0x55, 0x62, 0x7e, 0x81, + 0x7c, 0x95, 0xa8, 0xa5, 0x8c, 0x7b, 0x83, 0x77, 0x5c, 0x56, 0x67, 0x81, + 0x7f, 0x7f, 0x9a, 0xa9, 0xa3, 0x87, 0x7b, 0x84, 0x72, 0x59, 0x57, 0x6c, + 0x84, 0x7d, 0x81, 0x9e, 0xaa, 0x9f, 0x83, 0x7d, 0x83, 0x6d, 0x57, 0x59, + 0x71, 0x84, 0x7b, 0x86, 0xa1, 0xa9, 0x9b, 0x7f, 0x7f, 0x82, 0x69, 0x55, + 0x5c, 0x76, 0x84, 0x7a, 0x8b, 0xa4, 0xa9, 0x96, 0x7c, 0x81, 0x7f, 0x64, + 0x55, 0x5f, 0x7b, 0x83, 0x7a, 0x90, 0xa7, 0xa7, 0x91, 0x7b, 0x82, 0x7c, + 0x60, 0x55, 0x63, 0x7e, 0x81, 0x7c, 0x95, 0xa8, 0xa5, 0x8c, 0x7b, 0x84, + 0x77, 0x5c, 0x56, 0x67, 0x81, 0x7f, 0x7e, 0x9a, 0xa9, 0xa2, 0x87, 0x7c, + 0x84, 0x72, 0x5a, 0x57, 0x6c, 0x83, 0x7d, 0x82, 0x9d, 0xaa, 0x9f, 0x83, + 0x7d, 0x84, 0x6e, 0x57, 0x59, 0x71, 0x84, 0x7c, 0x86, 0xa1, 0xaa, 0x9b, + 0x7f, 0x7f, 0x82, 0x69, 0x56, 0x5b, 0x75, 0x84, 0x7b, 0x8a, 0xa4, 0xa9, + 0x97, 0x7d, 0x80, 0x7f, 0x64, 0x55, 0x5e, 0x7a, 0x83, 0x7b, 0x90, 0xa6, + 0xa8, 0x92, 0x7b, 0x82, 0x7c, 0x60, 0x55, 0x63, 0x7e, 0x82, 0x7d, 0x94, + 0xa8, 0xa5, 0x8c, 0x7b, 0x83, 0x77, 0x5d, 0x56, 0x67, 0x81, 0x80, 0x7e, + 0x99, 0xa9, 0xa2, 0x88, 0x7b, 0x84, 0x73, 0x5a, 0x57, 0x6c, 0x83, 0x7e, + 0x82, 0x9d, 0xa9, 0x9e, 0x82, 0x7c, 0x84, 0x6e, 0x58, 0x5a, 0x71, 0x84, + 0x7c, 0x85, 0xa0, 0xa8, 0x9a, 0x7f, 0x7f, 0x82, 0x6a, 0x57, 0x5c, 0x76, + 0x84, 0x7a, 0x8a, 0xa4, 0xa8, 0x96, 0x7d, 0x81, 0x80, 0x65, 0x56, 0x60, + 0x7a, 0x83, 0x7b, 0x8f, 0xa6, 0xa6, 0x91, 0x7b, 0x83, 0x7c, 0x61, 0x56, + 0x64, 0x7e, 0x81, 0x7b, 0x94, 0xa7, 0xa4, 0x8c, 0x7b, 0x83, 0x78, 0x5e, + 0x57, 0x68, 0x81, 0x7f, 0x7e, 0x99, 0xa8, 0xa1, 0x87, 0x7b, 0x84, 0x73, + 0x5b, 0x58, 0x6c, 0x82, 0x7d, 0x81, 0x9c, 0xa8, 0x9e, 0x83, 0x7d, 0x83, + 0x6e, 0x59, 0x5a, 0x71, 0x84, 0x7b, 0x85, 0xa0, 0xa8, 0x9a, 0x80, 0x7e, + 0x82, 0x6a, 0x58, 0x5d, 0x76, 0x83, 0x7b, 0x8a, 0xa2, 0xa7, 0x96, 0x7d, + 0x81, 0x80, 0x65, 0x56, 0x60, 0x7a, 0x83, 0x7b, 0x8f, 0xa6, 0xa6, 0x91, + 0x7c, 0x82, 0x7c, 0x61, 0x56, 0x63, 0x7e, 0x81, 0x7b, 0x94, 0xa7, 0xa4, + 0x8c, 0x7b, 0x83, 0x78, 0x5e, 0x57, 0x68, 0x80, 0x7f, 0x7e, 0x98, 0xa8, + 0xa1, 0x88, 0x7c, 0x84, 0x74, 0x5b, 0x58, 0x6c, 0x83, 0x7d, 0x81, 0x9c, + 0xa8, 0x9e, 0x84, 0x7d, 0x83, 0x70, 0x5a, 0x5a, 0x71, 0x83, 0x7b, 0x85, + 0x9f, 0xa8, 0x9a, 0x80, 0x7f, 0x83, 0x6b, 0x57, 0x5d, 0x76, 0x84, 0x7b, + 0x89, 0xa2, 0xa7, 0x95, 0x7d, 0x80, 0x80, 0x66, 0x57, 0x60, 0x7b, 0x83, + 0x7b, 0x8e, 0xa5, 0xa5, 0x91, 0x7b, 0x82, 0x7c, 0x62, 0x57, 0x64, 0x7e, + 0x81, 0x7c, 0x93, 0xa7, 0xa4, 0x8c, 0x7b, 0x84, 0x78, 0x5e, 0x57, 0x68, + 0x81, 0x7f, 0x7e, 0x98, 0xa8, 0xa1, 0x88, 0x7c, 0x84, 0x74, 0x5b, 0x58, + 0x6c, 0x83, 0x7d, 0x81, 0x9c, 0xa8, 0x9e, 0x83, 0x7c, 0x83, 0x6f, 0x59, + 0x5a, 0x71, 0x84, 0x7c, 0x85, 0x9f, 0xa7, 0x9a, 0x80, 0x7f, 0x82, 0x6a, + 0x58, 0x5d, 0x75, 0x84, 0x7b, 0x89, 0xa2, 0xa7, 0x96, 0x7d, 0x80, 0x80, + 0x66, 0x57, 0x60, 0x7a, 0x83, 0x7b, 0x8e, 0xa4, 0xa6, 0x91, 0x7b, 0x82, + 0x7c, 0x62, 0x57, 0x64, 0x7d, 0x81, 0x7d, 0x93, 0xa6, 0xa4, 0x8c, 0x7b, + 0x83, 0x78, 0x5f, 0x57, 0x68, 0x81, 0x80, 0x7e, 0x97, 0xa7, 0xa1, 0x87, + 0x7b, 0x83, 0x74, 0x5c, 0x58, 0x6d, 0x83, 0x7e, 0x81, 0x9b, 0xa8, 0x9e, + 0x83, 0x7d, 0x84, 0x6f, 0x5a, 0x5a, 0x71, 0x83, 0x7c, 0x85, 0x9f, 0xa8, + 0x9a, 0x80, 0x7f, 0x82, 0x6b, 0x58, 0x5c, 0x75, 0x84, 0x7b, 0x89, 0xa2, + 0xa7, 0x96, 0x7d, 0x80, 0x80, 0x67, 0x57, 0x60, 0x7a, 0x83, 0x7c, 0x8e, + 0xa4, 0xa6, 0x91, 0x7b, 0x82, 0x7c, 0x63, 0x57, 0x63, 0x7e, 0x82, 0x7c, + 0x92, 0xa6, 0xa3, 0x8d, 0x7b, 0x83, 0x78, 0x5f, 0x58, 0x68, 0x80, 0x80, + 0x7e, 0x97, 0xa6, 0xa1, 0x88, 0x7b, 0x84, 0x74, 0x5c, 0x59, 0x6c, 0x82, + 0x7e, 0x81, 0x9b, 0xa7, 0x9e, 0x84, 0x7d, 0x83, 0x70, 0x5a, 0x5a, 0x71, + 0x84, 0x7c, 0x84, 0x9f, 0xa7, 0x9a, 0x80, 0x7e, 0x82, 0x6b, 0x59, 0x5d, + 0x76, 0x84, 0x7c, 0x89, 0xa1, 0xa6, 0x96, 0x7d, 0x80, 0x80, 0x67, 0x58, + 0x60, 0x79, 0x83, 0x7b, 0x8d, 0xa4, 0xa5, 0x91, 0x7c, 0x82, 0x7d, 0x63, + 0x58, 0x64, 0x7d, 0x81, 0x7c, 0x92, 0xa5, 0xa3, 0x8d, 0x7b, 0x83, 0x79, + 0x60, 0x58, 0x68, 0x80, 0x80, 0x7e, 0x96, 0xa6, 0xa1, 0x88, 0x7c, 0x84, + 0x74, 0x5d, 0x5a, 0x6c, 0x82, 0x7e, 0x80, 0x9b, 0xa6, 0x9d, 0x84, 0x7d, + 0x83, 0x70, 0x5b, 0x5b, 0x71, 0x83, 0x7c, 0x84, 0x9e, 0xa6, 0x9a, 0x80, + 0x7e, 0x83, 0x6c, 0x59, 0x5e, 0x75, 0x83, 0x7b, 0x88, 0xa1, 0xa6, 0x96, + 0x7e, 0x80, 0x80, 0x68, 0x58, 0x60, 0x79, 0x83, 0x7b, 0x8d, 0xa3, 0xa5, + 0x92, 0x7c, 0x81, 0x7d, 0x64, 0x58, 0x64, 0x7d, 0x82, 0x7c, 0x91, 0xa5, + 0xa3, 0x8d, 0x7b, 0x83, 0x7a, 0x60, 0x58, 0x68, 0x80, 0x80, 0x7d, 0x95, + 0xa6, 0xa0, 0x88, 0x7c, 0x84, 0x76, 0x5e, 0x59, 0x6d, 0x82, 0x7e, 0x80, + 0x9a, 0xa6, 0x9d, 0x84, 0x7d, 0x84, 0x71, 0x5b, 0x5b, 0x71, 0x83, 0x7c, + 0x83, 0x9d, 0xa7, 0x9a, 0x81, 0x7f, 0x83, 0x6c, 0x59, 0x5d, 0x75, 0x84, + 0x7b, 0x87, 0xa1, 0xa6, 0x96, 0x7e, 0x80, 0x80, 0x69, 0x58, 0x60, 0x7a, + 0x83, 0x7b, 0x8c, 0xa3, 0xa5, 0x91, 0x7c, 0x82, 0x7e, 0x64, 0x58, 0x64, + 0x7d, 0x81, 0x7b, 0x91, 0xa5, 0xa3, 0x8c, 0x7c, 0x83, 0x7a, 0x61, 0x58, + 0x68, 0x80, 0x80, 0x7d, 0x95, 0xa6, 0xa0, 0x88, 0x7b, 0x83, 0x76, 0x5e, + 0x5a, 0x6d, 0x82, 0x7e, 0x80, 0x9a, 0xa6, 0x9d, 0x83, 0x7c, 0x83, 0x71, + 0x5b, 0x5b, 0x71, 0x84, 0x7d, 0x84, 0x9e, 0xa6, 0x9a, 0x80, 0x7e, 0x82, + 0x6c, 0x5a, 0x5e, 0x75, 0x84, 0x7b, 0x88, 0xa0, 0xa5, 0x96, 0x7d, 0x80, + 0x81, 0x68, 0x59, 0x61, 0x79, 0x83, 0x7b, 0x8c, 0xa2, 0xa4, 0x91, 0x7c, + 0x82, 0x7d, 0x64, 0x59, 0x64, 0x7d, 0x82, 0x7b, 0x91, 0xa4, 0xa2, 0x8d, + 0x7b, 0x83, 0x7a, 0x61, 0x59, 0x68, 0x80, 0x80, 0x7d, 0x96, 0xa5, 0xa0, + 0x88, 0x7b, 0x84, 0x76, 0x5e, 0x5a, 0x6c, 0x82, 0x7f, 0x80, 0x99, 0xa5, + 0x9d, 0x84, 0x7d, 0x83, 0x71, 0x5c, 0x5c, 0x70, 0x84, 0x7c, 0x84, 0x9d, + 0xa5, 0x9a, 0x81, 0x7e, 0x82, 0x6c, 0x5a, 0x5e, 0x75, 0x83, 0x7b, 0x88, + 0xa0, 0xa5, 0x95, 0x7e, 0x80, 0x80, 0x68, 0x5a, 0x61, 0x79, 0x83, 0x7b, + 0x8c, 0xa2, 0xa3, 0x91, 0x7c, 0x81, 0x7d, 0x65, 0x59, 0x64, 0x7d, 0x82, + 0x7b, 0x90, 0xa3, 0xa2, 0x8d, 0x7b, 0x83, 0x7a, 0x61, 0x5a, 0x68, 0x7f, + 0x80, 0x7d, 0x95, 0xa4, 0xa0, 0x88, 0x7c, 0x84, 0x76, 0x5f, 0x5a, 0x6c, + 0x82, 0x7e, 0x80, 0x99, 0xa5, 0x9d, 0x84, 0x7d, 0x83, 0x71, 0x5c, 0x5c, + 0x71, 0x83, 0x7c, 0x83, 0x9c, 0xa5, 0x9a, 0x80, 0x7e, 0x83, 0x6d, 0x5a, + 0x5e, 0x75, 0x83, 0x7b, 0x87, 0x9f, 0xa5, 0x96, 0x7e, 0x80, 0x81, 0x69, + 0x5a, 0x61, 0x7a, 0x83, 0x7b, 0x8b, 0xa2, 0xa4, 0x91, 0x7c, 0x81, 0x7e, + 0x65, 0x59, 0x65, 0x7d, 0x82, 0x7c, 0x90, 0xa3, 0xa2, 0x8c, 0x7b, 0x83, + 0x7a, 0x62, 0x5a, 0x68, 0x80, 0x80, 0x7d, 0x94, 0xa4, 0xa0, 0x89, 0x7c, + 0x83, 0x76, 0x5f, 0x5a, 0x6c, 0x82, 0x7e, 0x80, 0x99, 0xa5, 0x9d, 0x84, + 0x7c, 0x84, 0x72, 0x5c, 0x5c, 0x70, 0x83, 0x7d, 0x83, 0x9c, 0xa5, 0x9a, + 0x80, 0x7e, 0x82, 0x6d, 0x5b, 0x5e, 0x74, 0x84, 0x7c, 0x87, 0x9f, 0xa4, + 0x96, 0x7e, 0x80, 0x80, 0x69, 0x5a, 0x61, 0x79, 0x83, 0x7b, 0x8c, 0xa1, + 0xa4, 0x92, 0x7c, 0x81, 0x7e, 0x65, 0x5a, 0x64, 0x7c, 0x82, 0x7c, 0x90, + 0xa3, 0xa2, 0x8d, 0x7b, 0x83, 0x7a, 0x63, 0x5a, 0x68, 0x80, 0x80, 0x7d, + 0x94, 0xa4, 0xa0, 0x89, 0x7c, 0x83, 0x77, 0x5f, 0x5b, 0x6c, 0x82, 0x7e, + 0x80, 0x98, 0xa5, 0x9d, 0x84, 0x7c, 0x84, 0x72, 0x5d, 0x5d, 0x70, 0x83, + 0x7d, 0x82, 0x9b, 0xa4, 0x9a, 0x81, 0x7e, 0x82, 0x6e, 0x5c, 0x5e, 0x75, + 0x84, 0x7b, 0x87, 0x9f, 0xa5, 0x96, 0x7e, 0x7f, 0x81, 0x6a, 0x5a, 0x61, + 0x79, 0x83, 0x7b, 0x8b, 0xa0, 0xa3, 0x91, 0x7c, 0x81, 0x7e, 0x67, 0x5a, + 0x64, 0x7d, 0x82, 0x7b, 0x8f, 0xa2, 0xa1, 0x8d, 0x7c, 0x82, 0x7b, 0x63, + 0x5a, 0x68, 0x80, 0x80, 0x7d, 0x94, 0xa4, 0xa0, 0x88, 0x7b, 0x84, 0x77, + 0x5f, 0x5b, 0x6c, 0x82, 0x7e, 0x80, 0x98, 0xa4, 0x9c, 0x84, 0x7c, 0x83, + 0x72, 0x5e, 0x5c, 0x71, 0x84, 0x7d, 0x83, 0x9b, 0xa5, 0x99, 0x81, 0x7d, + 0x82, 0x6e, 0x5c, 0x5f, 0x75, 0x84, 0x7c, 0x87, 0x9e, 0xa4, 0x95, 0x7e, + 0x7f, 0x81, 0x6a, 0x5b, 0x62, 0x79, 0x83, 0x7b, 0x8b, 0xa1, 0xa3, 0x91, + 0x7c, 0x81, 0x7e, 0x66, 0x5a, 0x64, 0x7d, 0x82, 0x7c, 0x90, 0xa3, 0xa1, + 0x8d, 0x7c, 0x82, 0x7b, 0x62, 0x5b, 0x69, 0x7f, 0x80, 0x7d, 0x94, 0xa3, + 0x9f, 0x88, 0x7c, 0x83, 0x77, 0x60, 0x5c, 0x6c, 0x82, 0x7f, 0x80, 0x98, + 0xa4, 0x9c, 0x85, 0x7d, 0x83, 0x73, 0x5e, 0x5d, 0x71, 0x83, 0x7d, 0x83, + 0x9b, 0xa4, 0x99, 0x81, 0x7e, 0x83, 0x6e, 0x5b, 0x5f, 0x74, 0x83, 0x7c, + 0x86, 0x9e, 0xa3, 0x95, 0x7f, 0x80, 0x81, 0x6a, 0x5b, 0x62, 0x79, 0x83, + 0x7b, 0x8b, 0xa0, 0xa2, 0x91, 0x7d, 0x81, 0x7e, 0x66, 0x5b, 0x65, 0x7c, + 0x82, 0x7c, 0x8f, 0xa1, 0xa1, 0x8d, 0x7b, 0x83, 0x7b, 0x63, 0x5b, 0x69, + 0x7f, 0x80, 0x7d, 0x93, 0xa3, 0x9e, 0x89, 0x7c, 0x83, 0x77, 0x61, 0x5c, + 0x6c, 0x82, 0x7e, 0x7f, 0x97, 0xa4, 0x9c, 0x85, 0x7c, 0x84, 0x73, 0x5e, + 0x5d, 0x71, 0x83, 0x7d, 0x83, 0x9a, 0xa4, 0x99, 0x81, 0x7e, 0x82, 0x6f, + 0x5d, 0x5f, 0x74, 0x84, 0x7c, 0x86, 0x9e, 0xa3, 0x95, 0x7f, 0x7f, 0x81, + 0x6b, 0x5b, 0x61, 0x79, 0x83, 0x7b, 0x8a, 0xa0, 0xa3, 0x91, 0x7c, 0x81, + 0x7f, 0x67, 0x5b, 0x65, 0x7c, 0x82, 0x7c, 0x8e, 0xa1, 0xa1, 0x8d, 0x7c, + 0x82, 0x7b, 0x64, 0x5b, 0x68, 0x7f, 0x80, 0x7d, 0x93, 0xa3, 0x9f, 0x89, + 0x7c, 0x83, 0x77, 0x61, 0x5c, 0x6c, 0x81, 0x7f, 0x80, 0x97, 0xa3, 0x9c, + 0x85, 0x7c, 0x83, 0x73, 0x5e, 0x5e, 0x70, 0x83, 0x7e, 0x82, 0x9a, 0xa3, + 0x99, 0x82, 0x7d, 0x82, 0x6f, 0x5d, 0x5f, 0x74, 0x84, 0x7c, 0x86, 0x9d, + 0xa3, 0x96, 0x7e, 0x7f, 0x81, 0x6b, 0x5c, 0x62, 0x78, 0x83, 0x7c, 0x8a, + 0x9f, 0xa2, 0x91, 0x7d, 0x81, 0x7e, 0x68, 0x5b, 0x65, 0x7c, 0x82, 0x7c, + 0x8e, 0xa1, 0xa1, 0x8d, 0x7c, 0x82, 0x7b, 0x64, 0x5c, 0x68, 0x7f, 0x81, + 0x7d, 0x92, 0xa2, 0x9f, 0x88, 0x7b, 0x83, 0x78, 0x61, 0x5c, 0x6d, 0x81, + 0x7f, 0x7f, 0x96, 0xa3, 0x9c, 0x85, 0x7c, 0x83, 0x73, 0x5f, 0x5d, 0x71, + 0x83, 0x7d, 0x82, 0x9a, 0xa3, 0x99, 0x81, 0x7e, 0x82, 0x70, 0x5d, 0x60, + 0x75, 0x83, 0x7c, 0x86, 0x9c, 0xa3, 0x95, 0x7e, 0x7f, 0x81, 0x6b, 0x5c, + 0x62, 0x79, 0x83, 0x7c, 0x8a, 0x9f, 0xa2, 0x91, 0x7d, 0x81, 0x7e, 0x68, + 0x5c, 0x65, 0x7d, 0x82, 0x7b, 0x8e, 0xa1, 0xa1, 0x8d, 0x7b, 0x82, 0x7b, + 0x64, 0x5c, 0x69, 0x7f, 0x80, 0x7d, 0x92, 0xa2, 0x9f, 0x89, 0x7c, 0x83, + 0x77, 0x62, 0x5d, 0x6c, 0x81, 0x7f, 0x7f, 0x96, 0xa3, 0x9c, 0x85, 0x7d, + 0x83, 0x74, 0x5f, 0x5e, 0x70, 0x82, 0x7d, 0x82, 0x9a, 0xa3, 0x99, 0x81, + 0x7e, 0x83, 0x6f, 0x5d, 0x60, 0x74, 0x83, 0x7c, 0x86, 0x9c, 0xa2, 0x95, + 0x7f, 0x80, 0x81, 0x6c, 0x5c, 0x62, 0x78, 0x83, 0x7b, 0x8a, 0x9f, 0xa2, + 0x91, 0x7d, 0x81, 0x7f, 0x68, 0x5c, 0x65, 0x7c, 0x82, 0x7c, 0x8d, 0xa0, + 0xa0, 0x8d, 0x7c, 0x83, 0x7c, 0x65, 0x5c, 0x69, 0x7f, 0x80, 0x7d, 0x92, + 0xa2, 0x9e, 0x89, 0x7c, 0x83, 0x78, 0x62, 0x5d, 0x6c, 0x81, 0x7e, 0x7f, + 0x96, 0xa2, 0x9b, 0x85, 0x7d, 0x84, 0x74, 0x60, 0x5f, 0x71, 0x82, 0x7d, + 0x82, 0x99, 0xa2, 0x98, 0x81, 0x7e, 0x83, 0x70, 0x5e, 0x60, 0x74, 0x83, + 0x7c, 0x85, 0x9c, 0xa2, 0x95, 0x7f, 0x7f, 0x81, 0x6c, 0x5d, 0x62, 0x78, + 0x83, 0x7b, 0x89, 0x9e, 0xa1, 0x91, 0x7d, 0x81, 0x7f, 0x68, 0x5d, 0x66, + 0x7c, 0x82, 0x7c, 0x8d, 0xa0, 0xa0, 0x8d, 0x7c, 0x82, 0x7c, 0x65, 0x5d, + 0x68, 0x7f, 0x81, 0x7c, 0x92, 0xa1, 0x9e, 0x89, 0x7c, 0x83, 0x78, 0x63, + 0x5d, 0x6c, 0x80, 0x7f, 0x7f, 0x95, 0xa2, 0x9c, 0x85, 0x7d, 0x83, 0x74, + 0x60, 0x5f, 0x70, 0x82, 0x7e, 0x82, 0x99, 0xa2, 0x99, 0x82, 0x7e, 0x82, + 0x70, 0x5f, 0x60, 0x74, 0x83, 0x7c, 0x85, 0x9b, 0xa1, 0x95, 0x7f, 0x7f, + 0x81, 0x6d, 0x5d, 0x63, 0x78, 0x83, 0x7c, 0x89, 0x9d, 0xa1, 0x91, 0x7c, + 0x81, 0x7f, 0x69, 0x5d, 0x65, 0x7c, 0x83, 0x7c, 0x8d, 0x9f, 0x9f, 0x8d, + 0x7c, 0x82, 0x7c, 0x66, 0x5d, 0x69, 0x7e, 0x81, 0x7d, 0x91, 0xa0, 0x9e, + 0x89, 0x7b, 0x83, 0x79, 0x63, 0x5e, 0x6c, 0x81, 0x7f, 0x7f, 0x94, 0xa1, + 0x9c, 0x85, 0x7c, 0x83, 0x75, 0x61, 0x5f, 0x70, 0x83, 0x7d, 0x81, 0x98, + 0xa1, 0x99, 0x82, 0x7d, 0x83, 0x71, 0x5f, 0x60, 0x74, 0x83, 0x7c, 0x85, + 0x9b, 0xa1, 0x95, 0x7f, 0x7f, 0x82, 0x6d, 0x5e, 0x63, 0x78, 0x83, 0x7c, + 0x89, 0x9d, 0xa1, 0x91, 0x7d, 0x81, 0x7f, 0x69, 0x5d, 0x65, 0x7c, 0x82, + 0x7c, 0x8d, 0x9f, 0x9f, 0x8d, 0x7c, 0x82, 0x7c, 0x66, 0x5d, 0x69, 0x7f, + 0x81, 0x7d, 0x90, 0xa0, 0x9d, 0x89, 0x7c, 0x83, 0x79, 0x64, 0x5e, 0x6c, + 0x81, 0x7f, 0x7e, 0x94, 0xa1, 0x9b, 0x86, 0x7c, 0x83, 0x75, 0x61, 0x5f, + 0x70, 0x82, 0x7e, 0x81, 0x97, 0xa1, 0x99, 0x82, 0x7d, 0x83, 0x71, 0x5f, + 0x61, 0x74, 0x83, 0x7c, 0x85, 0x9b, 0xa1, 0x95, 0x7f, 0x7f, 0x81, 0x6d, + 0x5e, 0x62, 0x78, 0x83, 0x7c, 0x88, 0x9d, 0xa0, 0x91, 0x7d, 0x80, 0x7f, + 0x6a, 0x5e, 0x66, 0x7b, 0x82, 0x7c, 0x8c, 0x9e, 0x9f, 0x8d, 0x7c, 0x82, + 0x7c, 0x66, 0x5e, 0x69, 0x7e, 0x81, 0x7d, 0x90, 0xa0, 0x9d, 0x89, 0x7c, + 0x82, 0x79, 0x64, 0x5e, 0x6c, 0x81, 0x7f, 0x7f, 0x94, 0xa0, 0x9b, 0x86, + 0x7c, 0x83, 0x75, 0x62, 0x60, 0x71, 0x82, 0x7e, 0x81, 0x97, 0xa0, 0x98, + 0x82, 0x7d, 0x82, 0x71, 0x60, 0x61, 0x74, 0x84, 0x7d, 0x84, 0x9a, 0xa0, + 0x95, 0x7f, 0x7f, 0x81, 0x6e, 0x5f, 0x63, 0x78, 0x83, 0x7c, 0x88, 0x9c, + 0xa0, 0x91, 0x7d, 0x80, 0x80, 0x6a, 0x5e, 0x66, 0x7c, 0x82, 0x7c, 0x8c, + 0x9e, 0x9e, 0x8d, 0x7c, 0x82, 0x7c, 0x67, 0x5e, 0x69, 0x7f, 0x81, 0x7c, + 0x90, 0xa0, 0x9d, 0x89, 0x7c, 0x83, 0x7a, 0x64, 0x5f, 0x6d, 0x81, 0x7f, + 0x7e, 0x93, 0xa0, 0x9b, 0x86, 0x7c, 0x83, 0x76, 0x62, 0x60, 0x70, 0x82, + 0x7e, 0x81, 0x97, 0xa0, 0x98, 0x82, 0x7d, 0x82, 0x72, 0x60, 0x61, 0x74, + 0x83, 0x7d, 0x84, 0x9a, 0xa0, 0x95, 0x7f, 0x7e, 0x82, 0x6e, 0x5f, 0x64, + 0x78, 0x83, 0x7c, 0x88, 0x9c, 0x9f, 0x91, 0x7d, 0x80, 0x7f, 0x6a, 0x5f, + 0x66, 0x7b, 0x83, 0x7c, 0x8b, 0x9e, 0x9e, 0x8d, 0x7c, 0x81, 0x7d, 0x67, + 0x5f, 0x69, 0x7e, 0x81, 0x7d, 0x8f, 0x9f, 0x9d, 0x8a, 0x7b, 0x83, 0x7a, + 0x64, 0x5f, 0x6c, 0x81, 0x80, 0x7e, 0x93, 0xa0, 0x9b, 0x86, 0x7c, 0x83, + 0x76, 0x62, 0x5f, 0x70, 0x83, 0x7e, 0x80, 0x97, 0xa0, 0x98, 0x83, 0x7d, + 0x83, 0x72, 0x60, 0x62, 0x74, 0x82, 0x7d, 0x84, 0x99, 0xa0, 0x95, 0x7f, + 0x7f, 0x82, 0x6e, 0x5f, 0x63, 0x78, 0x83, 0x7c, 0x87, 0x9c, 0x9f, 0x91, + 0x7e, 0x80, 0x80, 0x6b, 0x5f, 0x66, 0x7c, 0x82, 0x7c, 0x8b, 0x9e, 0x9e, + 0x8e, 0x7c, 0x82, 0x7e, 0x68, 0x5f, 0x69, 0x7e, 0x81, 0x7c, 0x8f, 0x9f, + 0x9d, 0x89, 0x7b, 0x83, 0x7a, 0x65, 0x5f, 0x6c, 0x81, 0x80, 0x7e, 0x92, + 0xa0, 0x9a, 0x86, 0x7c, 0x83, 0x77, 0x63, 0x60, 0x70, 0x82, 0x7e, 0x80, + 0x96, 0xa0, 0x98, 0x82, 0x7d, 0x83, 0x73, 0x61, 0x62, 0x74, 0x83, 0x7d, + 0x84, 0x99, 0x9f, 0x95, 0x80, 0x7f, 0x81, 0x6f, 0x60, 0x63, 0x78, 0x83, + 0x7c, 0x87, 0x9b, 0x9f, 0x91, 0x7e, 0x80, 0x80, 0x6b, 0x60, 0x66, 0x7b, + 0x82, 0x7c, 0x8b, 0x9d, 0x9e, 0x8e, 0x7c, 0x82, 0x7d, 0x68, 0x5f, 0x69, + 0x7e, 0x81, 0x7c, 0x8f, 0x9f, 0x9c, 0x8a, 0x7c, 0x83, 0x7a, 0x65, 0x5f, + 0x6d, 0x81, 0x7f, 0x7e, 0x93, 0x9f, 0x9a, 0x86, 0x7c, 0x83, 0x76, 0x63, + 0x60, 0x70, 0x82, 0x7e, 0x81, 0x96, 0x9f, 0x98, 0x83, 0x7e, 0x83, 0x72, + 0x61, 0x62, 0x74, 0x83, 0x7c, 0x83, 0x99, 0x9f, 0x95, 0x80, 0x7f, 0x82, + 0x6f, 0x60, 0x64, 0x78, 0x83, 0x7c, 0x87, 0x9b, 0x9f, 0x91, 0x7d, 0x80, + 0x80, 0x6b, 0x5f, 0x67, 0x7b, 0x82, 0x7c, 0x8b, 0x9d, 0x9e, 0x8d, 0x7c, + 0x82, 0x7d, 0x68, 0x5f, 0x69, 0x7e, 0x81, 0x7c, 0x8f, 0x9e, 0x9c, 0x8a, + 0x7c, 0x82, 0x7a, 0x66, 0x60, 0x6d, 0x80, 0x80, 0x7e, 0x92, 0x9e, 0x9a, + 0x86, 0x7c, 0x83, 0x77, 0x63, 0x61, 0x70, 0x82, 0x7e, 0x81, 0x95, 0x9e, + 0x97, 0x83, 0x7d, 0x83, 0x73, 0x62, 0x62, 0x74, 0x83, 0x7d, 0x83, 0x98, + 0x9f, 0x94, 0x80, 0x7e, 0x81, 0x6f, 0x61, 0x65, 0x77, 0x83, 0x7c, 0x87, + 0x9a, 0x9e, 0x91, 0x7e, 0x80, 0x7f, 0x6c, 0x60, 0x67, 0x7b, 0x82, 0x7c, + 0x8b, 0x9c, 0x9d, 0x8d, 0x7d, 0x82, 0x7d, 0x69, 0x60, 0x6a, 0x7e, 0x81, + 0x7d, 0x8e, 0x9d, 0x9c, 0x8a, 0x7c, 0x83, 0x7a, 0x66, 0x60, 0x6d, 0x80, + 0x7f, 0x7e, 0x92, 0x9e, 0x9a, 0x86, 0x7d, 0x83, 0x76, 0x64, 0x61, 0x70, + 0x82, 0x7e, 0x80, 0x96, 0x9f, 0x97, 0x83, 0x7d, 0x82, 0x73, 0x62, 0x63, + 0x74, 0x83, 0x7d, 0x84, 0x98, 0x9e, 0x94, 0x80, 0x7f, 0x82, 0x6f, 0x61, + 0x65, 0x78, 0x83, 0x7c, 0x87, 0x9a, 0x9e, 0x91, 0x7e, 0x80, 0x80, 0x6c, + 0x60, 0x67, 0x7b, 0x82, 0x7c, 0x8a, 0x9c, 0x9d, 0x8d, 0x7d, 0x81, 0x7d, + 0x69, 0x60, 0x6a, 0x7d, 0x81, 0x7d, 0x8e, 0x9d, 0x9b, 0x8a, 0x7c, 0x82, + 0x7a, 0x67, 0x60, 0x6d, 0x80, 0x80, 0x7e, 0x92, 0x9e, 0x99, 0x86, 0x7c, + 0x82, 0x77, 0x65, 0x61, 0x70, 0x82, 0x7e, 0x81, 0x95, 0x9e, 0x97, 0x83, + 0x7d, 0x83, 0x73, 0x62, 0x63, 0x74, 0x83, 0x7d, 0x84, 0x97, 0x9e, 0x94, + 0x80, 0x7e, 0x81, 0x70, 0x62, 0x65, 0x78, 0x83, 0x7c, 0x86, 0x9a, 0x9e, + 0x91, 0x7e, 0x80, 0x80, 0x6d, 0x61, 0x67, 0x7b, 0x82, 0x7c, 0x8a, 0x9b, + 0x9d, 0x8d, 0x7d, 0x81, 0x7e, 0x6a, 0x61, 0x6a, 0x7e, 0x81, 0x7d, 0x8e, + 0x9d, 0x9b, 0x8a, 0x7c, 0x82, 0x7a, 0x67, 0x61, 0x6d, 0x80, 0x80, 0x7e, + 0x91, 0x9e, 0x99, 0x86, 0x7c, 0x83, 0x77, 0x65, 0x62, 0x71, 0x82, 0x7e, + 0x80, 0x94, 0x9e, 0x97, 0x83, 0x7d, 0x83, 0x74, 0x63, 0x63, 0x74, 0x83, + 0x7d, 0x83, 0x97, 0x9e, 0x94, 0x80, 0x7f, 0x82, 0x70, 0x62, 0x65, 0x77, + 0x83, 0x7c, 0x86, 0x99, 0x9d, 0x91, 0x7e, 0x80, 0x80, 0x6d, 0x61, 0x67, + 0x7b, 0x82, 0x7c, 0x8a, 0x9b, 0x9d, 0x8d, 0x7d, 0x81, 0x7d, 0x6a, 0x61, + 0x6a, 0x7e, 0x81, 0x7c, 0x8d, 0x9d, 0x9b, 0x8a, 0x7c, 0x82, 0x7b, 0x67, + 0x61, 0x6d, 0x80, 0x80, 0x7e, 0x91, 0x9d, 0x9a, 0x86, 0x7c, 0x83, 0x77, + 0x65, 0x62, 0x70, 0x82, 0x7e, 0x80, 0x94, 0x9e, 0x97, 0x83, 0x7d, 0x82, + 0x74, 0x63, 0x63, 0x74, 0x83, 0x7d, 0x83, 0x97, 0x9e, 0x94, 0x80, 0x7e, + 0x82, 0x71, 0x62, 0x65, 0x77, 0x82, 0x7c, 0x86, 0x99, 0x9d, 0x91, 0x7e, + 0x80, 0x80, 0x6d, 0x62, 0x67, 0x7a, 0x82, 0x7c, 0x89, 0x9b, 0x9c, 0x8d, + 0x7d, 0x81, 0x7e, 0x6a, 0x61, 0x6a, 0x7e, 0x81, 0x7d, 0x8d, 0x9c, 0x9b, + 0x8a, 0x7c, 0x82, 0x7b, 0x67, 0x61, 0x6d, 0x80, 0x80, 0x7e, 0x91, 0x9d, + 0x99, 0x86, 0x7c, 0x82, 0x77, 0x66, 0x62, 0x70, 0x82, 0x7f, 0x80, 0x94, + 0x9d, 0x97, 0x83, 0x7d, 0x83, 0x74, 0x64, 0x64, 0x74, 0x82, 0x7d, 0x83, + 0x96, 0x9d, 0x94, 0x80, 0x7e, 0x82, 0x71, 0x62, 0x65, 0x77, 0x83, 0x7c, + 0x86, 0x99, 0x9d, 0x91, 0x7e, 0x80, 0x80, 0x6e, 0x62, 0x67, 0x7b, 0x82, + 0x7c, 0x89, 0x9b, 0x9c, 0x8d, 0x7d, 0x81, 0x7e, 0x6a, 0x61, 0x6a, 0x7d, + 0x81, 0x7d, 0x8d, 0x9c, 0x9b, 0x8a, 0x7c, 0x82, 0x7b, 0x68, 0x62, 0x6d, + 0x80, 0x80, 0x7e, 0x90, 0x9d, 0x99, 0x87, 0x7c, 0x82, 0x78, 0x66, 0x62, + 0x70, 0x82, 0x7e, 0x80, 0x93, 0x9d, 0x97, 0x83, 0x7d, 0x83, 0x75, 0x64, + 0x64, 0x74, 0x82, 0x7e, 0x83, 0x96, 0x9d, 0x94, 0x80, 0x7e, 0x81, 0x71, + 0x63, 0x65, 0x78, 0x83, 0x7c, 0x85, 0x98, 0x9c, 0x90, 0x7e, 0x7f, 0x80, + 0x6e, 0x62, 0x68, 0x7b, 0x82, 0x7c, 0x89, 0x9a, 0x9c, 0x8d, 0x7d, 0x81, + 0x7e, 0x6b, 0x62, 0x6b, 0x7d, 0x81, 0x7d, 0x8c, 0x9b, 0x9a, 0x8a, 0x7c, + 0x82, 0x7b, 0x69, 0x62, 0x6e, 0x80, 0x80, 0x7e, 0x90, 0x9c, 0x98, 0x86, + 0x7c, 0x83, 0x78, 0x66, 0x63, 0x71, 0x81, 0x7f, 0x80, 0x93, 0x9c, 0x96, + 0x83, 0x7d, 0x83, 0x75, 0x65, 0x64, 0x74, 0x82, 0x7d, 0x82, 0x96, 0x9c, + 0x93, 0x81, 0x7e, 0x82, 0x72, 0x63, 0x66, 0x77, 0x82, 0x7c, 0x85, 0x98, + 0x9c, 0x90, 0x7e, 0x80, 0x81, 0x6e, 0x62, 0x68, 0x7b, 0x82, 0x7c, 0x89, + 0x9a, 0x9b, 0x8d, 0x7d, 0x81, 0x7e, 0x6b, 0x62, 0x6b, 0x7e, 0x82, 0x7c, + 0x8c, 0x9b, 0x9a, 0x8a, 0x7c, 0x82, 0x7c, 0x69, 0x63, 0x6e, 0x80, 0x80, + 0x7e, 0x90, 0x9c, 0x98, 0x86, 0x7c, 0x83, 0x78, 0x66, 0x63, 0x71, 0x81, + 0x7f, 0x80, 0x93, 0x9c, 0x96, 0x83, 0x7d, 0x82, 0x75, 0x65, 0x64, 0x74, + 0x82, 0x7d, 0x82, 0x95, 0x9d, 0x93, 0x80, 0x7e, 0x82, 0x72, 0x63, 0x66, + 0x78, 0x83, 0x7d, 0x85, 0x97, 0x9c, 0x90, 0x7e, 0x80, 0x80, 0x6f, 0x63, + 0x68, 0x7b, 0x82, 0x7c, 0x88, 0x9a, 0x9b, 0x8d, 0x7d, 0x81, 0x7e, 0x6c, + 0x62, 0x6b, 0x7d, 0x81, 0x7d, 0x8c, 0x9b, 0x9a, 0x8a, 0x7c, 0x82, 0x7c, + 0x69, 0x63, 0x6e, 0x80, 0x80, 0x7e, 0x8f, 0x9b, 0x98, 0x86, 0x7d, 0x83, + 0x78, 0x67, 0x64, 0x71, 0x81, 0x7f, 0x7f, 0x92, 0x9c, 0x96, 0x83, 0x7d, + 0x83, 0x75, 0x65, 0x65, 0x74, 0x82, 0x7d, 0x82, 0x95, 0x9c, 0x93, 0x81, + 0x7e, 0x82, 0x72, 0x64, 0x67, 0x77, 0x82, 0x7d, 0x85, 0x97, 0x9b, 0x90, + 0x7f, 0x80, 0x80, 0x6f, 0x63, 0x68, 0x7b, 0x82, 0x7c, 0x88, 0x99, 0x9b, + 0x8d, 0x7d, 0x81, 0x7f, 0x6c, 0x63, 0x6b, 0x7d, 0x81, 0x7d, 0x8c, 0x9a, + 0x99, 0x8a, 0x7d, 0x82, 0x7c, 0x6a, 0x63, 0x6e, 0x7f, 0x80, 0x7d, 0x8f, + 0x9b, 0x97, 0x87, 0x7d, 0x82, 0x79, 0x67, 0x64, 0x71, 0x81, 0x7f, 0x80, + 0x92, 0x9b, 0x96, 0x83, 0x7d, 0x83, 0x76, 0x65, 0x65, 0x74, 0x82, 0x7e, + 0x82, 0x94, 0x9b, 0x93, 0x81, 0x7e, 0x82, 0x72, 0x65, 0x66, 0x77, 0x82, + 0x7c, 0x85, 0x97, 0x9b, 0x90, 0x7f, 0x7f, 0x80, 0x6f, 0x63, 0x68, 0x7a, + 0x82, 0x7c, 0x88, 0x99, 0x9a, 0x8d, 0x7d, 0x81, 0x7e, 0x6c, 0x63, 0x6b, + 0x7d, 0x82, 0x7d, 0x8b, 0x9a, 0x99, 0x8a, 0x7d, 0x81, 0x7c, 0x6a, 0x64, + 0x6e, 0x7f, 0x80, 0x7e, 0x8f, 0x9b, 0x98, 0x87, 0x7c, 0x82, 0x79, 0x67, + 0x64, 0x71, 0x81, 0x7f, 0x7f, 0x92, 0x9b, 0x96, 0x84, 0x7d, 0x82, 0x76, + 0x66, 0x65, 0x74, 0x82, 0x7e, 0x81, 0x95, 0x9b, 0x93, 0x81, 0x7e, 0x82, + 0x73, 0x65, 0x67, 0x77, 0x83, 0x7d, 0x85, 0x96, 0x9b, 0x90, 0x7e, 0x7f, + 0x81, 0x6f, 0x64, 0x69, 0x7a, 0x82, 0x7d, 0x88, 0x98, 0x9a, 0x8d, 0x7d, + 0x81, 0x7e, 0x6d, 0x63, 0x6b, 0x7d, 0x81, 0x7c, 0x8b, 0x9a, 0x99, 0x8a, + 0x7d, 0x82, 0x7c, 0x6a, 0x64, 0x6e, 0x7f, 0x80, 0x7e, 0x8e, 0x9a, 0x98, + 0x87, 0x7d, 0x83, 0x79, 0x68, 0x65, 0x71, 0x81, 0x7f, 0x7f, 0x92, 0x9b, + 0x95, 0x83, 0x7d, 0x82, 0x76, 0x66, 0x65, 0x74, 0x82, 0x7d, 0x82, 0x94, + 0x9b, 0x93, 0x81, 0x7e, 0x82, 0x73, 0x65, 0x67, 0x77, 0x82, 0x7d, 0x85, + 0x96, 0x9b, 0x90, 0x7f, 0x80, 0x80, 0x70, 0x64, 0x69, 0x7a, 0x82, 0x7c, + 0x88, 0x98, 0x9a, 0x8d, 0x7e, 0x81, 0x7f, 0x6d, 0x64, 0x6b, 0x7d, 0x81, + 0x7d, 0x8b, 0x99, 0x99, 0x8a, 0x7c, 0x82, 0x7c, 0x6a, 0x64, 0x6e, 0x7f, + 0x80, 0x7e, 0x8e, 0x9a, 0x97, 0x87, 0x7d, 0x82, 0x79, 0x69, 0x65, 0x71, + 0x81, 0x7f, 0x7f, 0x91, 0x9a, 0x95, 0x84, 0x7d, 0x82, 0x76, 0x67, 0x66, + 0x74, 0x82, 0x7d, 0x82, 0x94, 0x9b, 0x93, 0x81, 0x7e, 0x82, 0x73, 0x65, + 0x67, 0x77, 0x82, 0x7d, 0x84, 0x96, 0x9a, 0x90, 0x7f, 0x7f, 0x80, 0x70, + 0x65, 0x69, 0x7a, 0x82, 0x7c, 0x88, 0x98, 0x9a, 0x8d, 0x7d, 0x80, 0x7f, + 0x6d, 0x64, 0x6b, 0x7d, 0x81, 0x7d, 0x8b, 0x99, 0x98, 0x8a, 0x7c, 0x82, + 0x7c, 0x6b, 0x64, 0x6e, 0x7f, 0x80, 0x7d, 0x8e, 0x9a, 0x97, 0x87, 0x7c, + 0x82, 0x7a, 0x69, 0x65, 0x71, 0x81, 0x7f, 0x7f, 0x91, 0x9a, 0x96, 0x84, + 0x7d, 0x83, 0x76, 0x67, 0x66, 0x74, 0x82, 0x7e, 0x81, 0x93, 0x9a, 0x93, + 0x81, 0x7e, 0x82, 0x73, 0x66, 0x67, 0x77, 0x83, 0x7d, 0x84, 0x96, 0x9a, + 0x90, 0x7f, 0x7f, 0x81, 0x70, 0x65, 0x69, 0x7a, 0x82, 0x7d, 0x87, 0x97, + 0x99, 0x8d, 0x7d, 0x80, 0x7f, 0x6e, 0x65, 0x6c, 0x7d, 0x82, 0x7d, 0x8a, + 0x98, 0x98, 0x8a, 0x7d, 0x81, 0x7c, 0x6b, 0x65, 0x6e, 0x7f, 0x80, 0x7e, + 0x8d, 0x99, 0x97, 0x87, 0x7c, 0x82, 0x7a, 0x69, 0x65, 0x71, 0x81, 0x7f, + 0x7f, 0x90, 0x9a, 0x95, 0x84, 0x7d, 0x82, 0x77, 0x68, 0x66, 0x74, 0x82, + 0x7e, 0x81, 0x93, 0x9a, 0x93, 0x81, 0x7e, 0x82, 0x74, 0x66, 0x67, 0x77, + 0x82, 0x7d, 0x84, 0x95, 0x9a, 0x90, 0x7f, 0x7f, 0x81, 0x71, 0x65, 0x69, + 0x7a, 0x82, 0x7d, 0x87, 0x97, 0x99, 0x8d, 0x7e, 0x80, 0x7f, 0x6e, 0x65, + 0x6b, 0x7d, 0x82, 0x7d, 0x8a, 0x98, 0x98, 0x8a, 0x7d, 0x81, 0x7d, 0x6c, + 0x65, 0x6e, 0x7f, 0x80, 0x7e, 0x8d, 0x99, 0x97, 0x87, 0x7c, 0x82, 0x7a, + 0x6a, 0x66, 0x71, 0x81, 0x7f, 0x7f, 0x90, 0x99, 0x94, 0x84, 0x7d, 0x82, + 0x77, 0x68, 0x66, 0x74, 0x82, 0x7e, 0x81, 0x92, 0x99, 0x92, 0x81, 0x7e, + 0x82, 0x74, 0x67, 0x68, 0x77, 0x82, 0x7d, 0x84, 0x94, 0x99, 0x90, 0x7f, + 0x7f, 0x81, 0x71, 0x66, 0x69, 0x7a, 0x82, 0x7d, 0x87, 0x96, 0x98, 0x8d, + 0x7e, 0x80, 0x7f, 0x6e, 0x66, 0x6c, 0x7d, 0x81, 0x7d, 0x8a, 0x97, 0x98, + 0x8a, 0x7d, 0x81, 0x7d, 0x6c, 0x66, 0x6f, 0x7f, 0x80, 0x7e, 0x8d, 0x98, + 0x96, 0x87, 0x7d, 0x82, 0x7a, 0x6a, 0x66, 0x71, 0x81, 0x7f, 0x7f, 0x90, + 0x99, 0x94, 0x84, 0x7d, 0x82, 0x77, 0x68, 0x67, 0x74, 0x82, 0x7e, 0x81, + 0x92, 0x99, 0x92, 0x81, 0x7e, 0x82, 0x74, 0x67, 0x68, 0x77, 0x82, 0x7d, + 0x84, 0x94, 0x99, 0x90, 0x7f, 0x7f, 0x80, 0x71, 0x66, 0x6a, 0x7a, 0x82, + 0x7d, 0x87, 0x96, 0x98, 0x8d, 0x7e, 0x80, 0x7f, 0x6f, 0x66, 0x6c, 0x7d, + 0x81, 0x7d, 0x8a, 0x97, 0x97, 0x8a, 0x7d, 0x81, 0x7d, 0x6c, 0x66, 0x6e, + 0x7f, 0x81, 0x7e, 0x8d, 0x98, 0x96, 0x87, 0x7d, 0x82, 0x7a, 0x6a, 0x67, + 0x71, 0x81, 0x7f, 0x7f, 0x8f, 0x98, 0x94, 0x84, 0x7d, 0x82, 0x77, 0x69, + 0x68, 0x74, 0x82, 0x7e, 0x81, 0x92, 0x98, 0x92, 0x81, 0x7e, 0x82, 0x74, + 0x67, 0x68, 0x77, 0x82, 0x7d, 0x84, 0x94, 0x99, 0x8f, 0x7f, 0x7f, 0x81, + 0x72, 0x67, 0x6a, 0x7a, 0x82, 0x7d, 0x87, 0x95, 0x98, 0x8d, 0x7e, 0x81, + 0x7f, 0x6f, 0x66, 0x6c, 0x7c, 0x81, 0x7d, 0x89, 0x97, 0x97, 0x8a, 0x7d, + 0x81, 0x7d, 0x6d, 0x66, 0x6e, 0x7f, 0x80, 0x7d, 0x8c, 0x98, 0x96, 0x87, + 0x7d, 0x82, 0x7b, 0x6b, 0x67, 0x71, 0x80, 0x7f, 0x7f, 0x8f, 0x98, 0x94, + 0x84, 0x7d, 0x82, 0x78, 0x69, 0x67, 0x74, 0x82, 0x7e, 0x81, 0x91, 0x98, + 0x92, 0x82, 0x7e, 0x82, 0x75, 0x68, 0x69, 0x77, 0x82, 0x7d, 0x83, 0x93, + 0x98, 0x90, 0x7f, 0x7f, 0x81, 0x72, 0x67, 0x6a, 0x7a, 0x82, 0x7d, 0x86, + 0x95, 0x98, 0x8d, 0x7e, 0x80, 0x7f, 0x6f, 0x66, 0x6c, 0x7c, 0x81, 0x7d, + 0x89, 0x97, 0x97, 0x8a, 0x7d, 0x81, 0x7d, 0x6d, 0x66, 0x6f, 0x7f, 0x80, + 0x7e, 0x8c, 0x97, 0x96, 0x87, 0x7d, 0x82, 0x7b, 0x6b, 0x67, 0x71, 0x80, + 0x7f, 0x7f, 0x8e, 0x98, 0x94, 0x84, 0x7d, 0x82, 0x78, 0x6a, 0x68, 0x74, + 0x81, 0x7e, 0x81, 0x91, 0x98, 0x92, 0x82, 0x7e, 0x82, 0x75, 0x68, 0x69, + 0x77, 0x82, 0x7d, 0x83, 0x93, 0x98, 0x8f, 0x7f, 0x7f, 0x81, 0x72, 0x67, + 0x6b, 0x7a, 0x82, 0x7d, 0x86, 0x95, 0x97, 0x8d, 0x7e, 0x80, 0x7f, 0x70, + 0x67, 0x6d, 0x7c, 0x81, 0x7d, 0x89, 0x96, 0x96, 0x8a, 0x7d, 0x81, 0x7e, + 0x6d, 0x67, 0x6f, 0x7e, 0x81, 0x7e, 0x8c, 0x97, 0x95, 0x87, 0x7d, 0x82, + 0x7b, 0x6b, 0x67, 0x71, 0x81, 0x7f, 0x7f, 0x8f, 0x98, 0x93, 0x84, 0x7d, + 0x82, 0x78, 0x6a, 0x68, 0x74, 0x81, 0x7e, 0x81, 0x91, 0x97, 0x92, 0x82, + 0x7e, 0x82, 0x75, 0x69, 0x69, 0x77, 0x82, 0x7d, 0x83, 0x93, 0x97, 0x8f, + 0x80, 0x7f, 0x81, 0x73, 0x68, 0x6b, 0x7a, 0x82, 0x7d, 0x86, 0x95, 0x97, + 0x8c, 0x7e, 0x80, 0x7f, 0x70, 0x67, 0x6d, 0x7c, 0x81, 0x7d, 0x89, 0x96, + 0x96, 0x89, 0x7d, 0x81, 0x7d, 0x6e, 0x67, 0x6f, 0x7f, 0x81, 0x7d, 0x8b, + 0x97, 0x95, 0x87, 0x7d, 0x81, 0x7b, 0x6c, 0x68, 0x72, 0x80, 0x7f, 0x7f, + 0x8e, 0x97, 0x94, 0x84, 0x7d, 0x82, 0x78, 0x6a, 0x68, 0x74, 0x81, 0x7f, + 0x81, 0x91, 0x97, 0x91, 0x82, 0x7e, 0x81, 0x76, 0x69, 0x69, 0x77, 0x82, + 0x7e, 0x83, 0x93, 0x97, 0x8f, 0x80, 0x7f, 0x81, 0x73, 0x68, 0x6b, 0x7a, + 0x82, 0x7d, 0x86, 0x94, 0x97, 0x8c, 0x7e, 0x80, 0x7f, 0x70, 0x68, 0x6d, + 0x7c, 0x81, 0x7d, 0x89, 0x95, 0x96, 0x8a, 0x7d, 0x81, 0x7d, 0x6e, 0x68, + 0x6f, 0x7f, 0x81, 0x7e, 0x8b, 0x96, 0x95, 0x87, 0x7d, 0x81, 0x7b, 0x6c, + 0x68, 0x72, 0x80, 0x80, 0x7f, 0x8e, 0x97, 0x93, 0x84, 0x7d, 0x82, 0x78, + 0x6b, 0x69, 0x74, 0x82, 0x7e, 0x81, 0x90, 0x97, 0x91, 0x82, 0x7e, 0x82, + 0x76, 0x69, 0x6a, 0x77, 0x82, 0x7e, 0x83, 0x92, 0x97, 0x8f, 0x7f, 0x7f, + 0x81, 0x73, 0x68, 0x6b, 0x7a, 0x82, 0x7d, 0x85, 0x94, 0x96, 0x8c, 0x7e, + 0x80, 0x7f, 0x71, 0x68, 0x6d, 0x7d, 0x82, 0x7d, 0x88, 0x95, 0x95, 0x8a, + 0x7d, 0x81, 0x7e, 0x6e, 0x68, 0x6f, 0x7f, 0x81, 0x7e, 0x8b, 0x96, 0x95, + 0x87, 0x7d, 0x82, 0x7b, 0x6c, 0x68, 0x72, 0x80, 0x80, 0x7e, 0x8d, 0x96, + 0x93, 0x84, 0x7d, 0x82, 0x79, 0x6b, 0x69, 0x74, 0x82, 0x7e, 0x80, 0x90, + 0x96, 0x91, 0x82, 0x7e, 0x82, 0x76, 0x6a, 0x6a, 0x77, 0x82, 0x7d, 0x82, + 0x92, 0x96, 0x8f, 0x80, 0x7f, 0x81, 0x74, 0x69, 0x6c, 0x7a, 0x82, 0x7d, + 0x85, 0x93, 0x96, 0x8c, 0x7e, 0x80, 0x80, 0x71, 0x68, 0x6e, 0x7c, 0x82, + 0x7d, 0x88, 0x94, 0x95, 0x89, 0x7d, 0x81, 0x7e, 0x6f, 0x68, 0x70, 0x7e, + 0x81, 0x7d, 0x8a, 0x95, 0x94, 0x87, 0x7d, 0x82, 0x7c, 0x6d, 0x69, 0x72, + 0x80, 0x80, 0x7e, 0x8d, 0x96, 0x93, 0x84, 0x7d, 0x82, 0x79, 0x6b, 0x69, + 0x74, 0x81, 0x7e, 0x80, 0x8f, 0x96, 0x91, 0x82, 0x7e, 0x82, 0x76, 0x6a, + 0x6b, 0x77, 0x82, 0x7d, 0x82, 0x91, 0x96, 0x8f, 0x80, 0x7f, 0x81, 0x74, + 0x69, 0x6c, 0x7a, 0x82, 0x7d, 0x85, 0x93, 0x96, 0x8c, 0x7e, 0x80, 0x80, + 0x71, 0x69, 0x6e, 0x7c, 0x81, 0x7d, 0x88, 0x94, 0x95, 0x8a, 0x7e, 0x81, + 0x7e, 0x6f, 0x69, 0x70, 0x7e, 0x81, 0x7d, 0x8a, 0x95, 0x94, 0x87, 0x7d, + 0x81, 0x7c, 0x6d, 0x69, 0x72, 0x80, 0x80, 0x7f, 0x8d, 0x96, 0x93, 0x84, + 0x7d, 0x82, 0x79, 0x6b, 0x6a, 0x75, 0x81, 0x7f, 0x80, 0x8f, 0x96, 0x91, + 0x82, 0x7e, 0x82, 0x77, 0x6b, 0x6a, 0x77, 0x82, 0x7e, 0x82, 0x91, 0x96, + 0x8f, 0x80, 0x7f, 0x81, 0x74, 0x6a, 0x6c, 0x7a, 0x82, 0x7d, 0x85, 0x92, + 0x95, 0x8c, 0x7e, 0x80, 0x80, 0x72, 0x69, 0x6e, 0x7c, 0x82, 0x7d, 0x87, + 0x94, 0x94, 0x8a, 0x7d, 0x81, 0x7e, 0x70, 0x69, 0x70, 0x7e, 0x81, 0x7e, + 0x8a, 0x94, 0x94, 0x87, 0x7d, 0x82, 0x7c, 0x6e, 0x6a, 0x72, 0x7f, 0x80, + 0x7f, 0x8c, 0x95, 0x92, 0x85, 0x7d, 0x82, 0x79, 0x6c, 0x6a, 0x74, 0x81, + 0x7e, 0x80, 0x8f, 0x95, 0x90, 0x82, 0x7e, 0x82, 0x77, 0x6b, 0x6b, 0x77, + 0x82, 0x7e, 0x82, 0x90, 0x95, 0x8f, 0x80, 0x7f, 0x81, 0x74, 0x6a, 0x6c, + 0x7a, 0x82, 0x7d, 0x84, 0x92, 0x95, 0x8c, 0x7e, 0x80, 0x80, 0x72, 0x6a, + 0x6e, 0x7c, 0x82, 0x7d, 0x87, 0x94, 0x94, 0x89, 0x7d, 0x81, 0x7e, 0x70, + 0x69, 0x70, 0x7e, 0x81, 0x7e, 0x8a, 0x94, 0x93, 0x87, 0x7d, 0x82, 0x7c, + 0x6e, 0x6a, 0x72, 0x80, 0x80, 0x7e, 0x8c, 0x95, 0x92, 0x84, 0x7d, 0x82, + 0x7a, 0x6c, 0x6a, 0x75, 0x81, 0x7f, 0x80, 0x8e, 0x95, 0x90, 0x82, 0x7e, + 0x82, 0x77, 0x6b, 0x6b, 0x77, 0x82, 0x7e, 0x82, 0x90, 0x95, 0x8e, 0x80, + 0x7f, 0x81, 0x75, 0x6a, 0x6c, 0x7a, 0x82, 0x7d, 0x84, 0x92, 0x95, 0x8c, + 0x7e, 0x80, 0x80, 0x72, 0x6a, 0x6e, 0x7c, 0x82, 0x7d, 0x87, 0x93, 0x94, + 0x89, 0x7d, 0x81, 0x7e, 0x70, 0x6a, 0x70, 0x7e, 0x81, 0x7e, 0x89, 0x94, + 0x93, 0x87, 0x7d, 0x81, 0x7c, 0x6e, 0x6a, 0x72, 0x80, 0x80, 0x7e, 0x8c, + 0x95, 0x92, 0x84, 0x7d, 0x82, 0x7a, 0x6d, 0x6b, 0x75, 0x81, 0x7f, 0x80, + 0x8e, 0x95, 0x90, 0x82, 0x7e, 0x82, 0x77, 0x6b, 0x6b, 0x77, 0x82, 0x7e, + 0x82, 0x90, 0x95, 0x8e, 0x80, 0x7e, 0x81, 0x75, 0x6b, 0x6c, 0x7a, 0x82, + 0x7d, 0x84, 0x92, 0x94, 0x8c, 0x7e, 0x80, 0x80, 0x72, 0x6a, 0x6f, 0x7c, + 0x81, 0x7d, 0x87, 0x93, 0x94, 0x89, 0x7d, 0x81, 0x7e, 0x70, 0x6a, 0x70, + 0x7e, 0x81, 0x7d, 0x89, 0x94, 0x93, 0x87, 0x7d, 0x81, 0x7c, 0x6f, 0x6a, + 0x72, 0x80, 0x80, 0x7e, 0x8c, 0x94, 0x92, 0x84, 0x7d, 0x82, 0x7a, 0x6d, + 0x6b, 0x75, 0x81, 0x7f, 0x80, 0x8e, 0x94, 0x90, 0x82, 0x7e, 0x82, 0x78, + 0x6c, 0x6c, 0x77, 0x82, 0x7e, 0x81, 0x90, 0x95, 0x8e, 0x80, 0x7f, 0x81, + 0x75, 0x6b, 0x6d, 0x7a, 0x82, 0x7d, 0x84, 0x91, 0x94, 0x8c, 0x7e, 0x80, + 0x80, 0x73, 0x6a, 0x6f, 0x7c, 0x82, 0x7d, 0x86, 0x93, 0x93, 0x89, 0x7e, + 0x80, 0x7e, 0x71, 0x6a, 0x70, 0x7e, 0x81, 0x7d, 0x89, 0x93, 0x92, 0x87, + 0x7d, 0x81, 0x7c, 0x6f, 0x6b, 0x73, 0x80, 0x80, 0x7e, 0x8b, 0x94, 0x91, + 0x84, 0x7d, 0x82, 0x7a, 0x6d, 0x6b, 0x75, 0x81, 0x7f, 0x7f, 0x8d, 0x94, + 0x8f, 0x82, 0x7e, 0x82, 0x78, 0x6c, 0x6c, 0x77, 0x81, 0x7e, 0x82, 0x8f, + 0x94, 0x8e, 0x80, 0x7f, 0x81, 0x75, 0x6b, 0x6d, 0x7a, 0x82, 0x7e, 0x84, + 0x91, 0x94, 0x8c, 0x7f, 0x80, 0x80, 0x73, 0x6b, 0x6f, 0x7c, 0x81, 0x7d, + 0x86, 0x92, 0x93, 0x89, 0x7e, 0x81, 0x7e, 0x71, 0x6b, 0x71, 0x7e, 0x81, + 0x7e, 0x89, 0x93, 0x93, 0x87, 0x7d, 0x81, 0x7c, 0x6f, 0x6b, 0x73, 0x7f, + 0x80, 0x7e, 0x8b, 0x93, 0x91, 0x84, 0x7d, 0x81, 0x7a, 0x6e, 0x6b, 0x75, + 0x81, 0x7f, 0x80, 0x8d, 0x94, 0x90, 0x82, 0x7e, 0x82, 0x78, 0x6c, 0x6c, + 0x77, 0x81, 0x7e, 0x81, 0x8f, 0x94, 0x8e, 0x80, 0x7f, 0x81, 0x76, 0x6c, + 0x6d, 0x79, 0x81, 0x7d, 0x83, 0x91, 0x93, 0x8c, 0x7f, 0x80, 0x80, 0x74, + 0x6b, 0x6f, 0x7c, 0x81, 0x7d, 0x86, 0x92, 0x93, 0x89, 0x7e, 0x80, 0x7f, + 0x71, 0x6b, 0x71, 0x7e, 0x81, 0x7d, 0x88, 0x93, 0x92, 0x87, 0x7d, 0x81, + 0x7d, 0x70, 0x6b, 0x72, 0x80, 0x80, 0x7e, 0x8b, 0x93, 0x91, 0x85, 0x7d, + 0x81, 0x7b, 0x6e, 0x6c, 0x75, 0x81, 0x7f, 0x80, 0x8d, 0x93, 0x90, 0x82, + 0x7e, 0x81, 0x78, 0x6d, 0x6d, 0x77, 0x82, 0x7e, 0x81, 0x8e, 0x93, 0x8d, + 0x80, 0x7e, 0x81, 0x76, 0x6c, 0x6e, 0x7a, 0x82, 0x7d, 0x83, 0x90, 0x93, + 0x8b, 0x7f, 0x7f, 0x80, 0x74, 0x6c, 0x6f, 0x7c, 0x82, 0x7e, 0x86, 0x91, + 0x93, 0x89, 0x7e, 0x80, 0x7e, 0x72, 0x6b, 0x71, 0x7e, 0x81, 0x7e, 0x88, + 0x92, 0x92, 0x87, 0x7d, 0x81, 0x7d, 0x70, 0x6c, 0x73, 0x80, 0x80, 0x7f, + 0x8a, 0x93, 0x91, 0x85, 0x7d, 0x81, 0x7b, 0x6e, 0x6c, 0x75, 0x80, 0x7f, + 0x80, 0x8c, 0x93, 0x8f, 0x82, 0x7e, 0x81, 0x78, 0x6d, 0x6d, 0x77, 0x82, + 0x7e, 0x81, 0x8f, 0x93, 0x8d, 0x80, 0x7e, 0x81, 0x76, 0x6c, 0x6e, 0x7a, + 0x82, 0x7e, 0x83, 0x90, 0x93, 0x8b, 0x7f, 0x7f, 0x80, 0x74, 0x6c, 0x6f, + 0x7c, 0x81, 0x7d, 0x85, 0x91, 0x92, 0x89, 0x7e, 0x80, 0x7f, 0x72, 0x6c, + 0x71, 0x7e, 0x81, 0x7d, 0x88, 0x92, 0x91, 0x87, 0x7d, 0x81, 0x7d, 0x70, + 0x6c, 0x73, 0x7f, 0x80, 0x7e, 0x8a, 0x93, 0x90, 0x84, 0x7d, 0x81, 0x7b, + 0x6f, 0x6c, 0x75, 0x81, 0x7f, 0x7f, 0x8c, 0x93, 0x8f, 0x82, 0x7e, 0x81, + 0x79, 0x6e, 0x6d, 0x78, 0x81, 0x7e, 0x81, 0x8e, 0x93, 0x8d, 0x80, 0x7e, + 0x81, 0x77, 0x6d, 0x6e, 0x7a, 0x82, 0x7e, 0x83, 0x8f, 0x93, 0x8b, 0x7f, + 0x80, 0x80, 0x74, 0x6c, 0x6f, 0x7c, 0x81, 0x7d, 0x85, 0x91, 0x92, 0x89, + 0x7e, 0x80, 0x7f, 0x72, 0x6c, 0x71, 0x7e, 0x81, 0x7d, 0x87, 0x91, 0x91, + 0x87, 0x7d, 0x81, 0x7d, 0x71, 0x6c, 0x73, 0x7f, 0x80, 0x7e, 0x8a, 0x92, + 0x90, 0x84, 0x7e, 0x82, 0x7b, 0x6f, 0x6d, 0x75, 0x81, 0x7f, 0x7f, 0x8c, + 0x92, 0x8f, 0x82, 0x7e, 0x82, 0x79, 0x6e, 0x6e, 0x77, 0x81, 0x7e, 0x81, + 0x8d, 0x92, 0x8d, 0x80, 0x7f, 0x81, 0x77, 0x6d, 0x6e, 0x7a, 0x82, 0x7e, + 0x83, 0x8f, 0x92, 0x8b, 0x7f, 0x7f, 0x80, 0x75, 0x6d, 0x70, 0x7c, 0x81, + 0x7e, 0x85, 0x90, 0x92, 0x89, 0x7e, 0x80, 0x7f, 0x73, 0x6d, 0x72, 0x7e, + 0x81, 0x7e, 0x87, 0x91, 0x91, 0x87, 0x7e, 0x81, 0x7d, 0x71, 0x6d, 0x73, + 0x7f, 0x80, 0x7e, 0x8a, 0x92, 0x90, 0x85, 0x7d, 0x81, 0x7b, 0x70, 0x6d, + 0x76, 0x80, 0x7f, 0x80, 0x8b, 0x92, 0x8f, 0x82, 0x7e, 0x81, 0x79, 0x6e, + 0x6e, 0x78, 0x81, 0x7f, 0x81, 0x8d, 0x92, 0x8d, 0x81, 0x7e, 0x81, 0x77, + 0x6e, 0x6f, 0x7a, 0x81, 0x7e, 0x83, 0x8f, 0x92, 0x8b, 0x7f, 0x7f, 0x80, + 0x75, 0x6d, 0x70, 0x7c, 0x81, 0x7e, 0x85, 0x90, 0x91, 0x89, 0x7e, 0x80, + 0x7f, 0x73, 0x6d, 0x72, 0x7e, 0x81, 0x7e, 0x87, 0x91, 0x90, 0x86, 0x7e, + 0x81, 0x7d, 0x72, 0x6d, 0x74, 0x7f, 0x80, 0x7e, 0x89, 0x91, 0x90, 0x84, + 0x7d, 0x81, 0x7c, 0x70, 0x6d, 0x76, 0x80, 0x7f, 0x7f, 0x8b, 0x92, 0x8e, + 0x82, 0x7e, 0x81, 0x79, 0x6f, 0x6e, 0x78, 0x81, 0x7e, 0x81, 0x8d, 0x92, + 0x8d, 0x81, 0x7e, 0x81, 0x77, 0x6e, 0x6f, 0x7a, 0x81, 0x7e, 0x83, 0x8e, + 0x91, 0x8b, 0x7f, 0x7f, 0x80, 0x75, 0x6d, 0x70, 0x7c, 0x81, 0x7e, 0x85, + 0x90, 0x91, 0x89, 0x7e, 0x80, 0x7f, 0x73, 0x6d, 0x72, 0x7e, 0x81, 0x7d, + 0x87, 0x90, 0x90, 0x87, 0x7d, 0x81, 0x7e, 0x72, 0x6d, 0x74, 0x7f, 0x80, + 0x7e, 0x89, 0x91, 0x8f, 0x84, 0x7e, 0x81, 0x7b, 0x70, 0x6e, 0x75, 0x80, + 0x7f, 0x7f, 0x8b, 0x91, 0x8e, 0x82, 0x7e, 0x82, 0x79, 0x6f, 0x6e, 0x78, + 0x81, 0x7e, 0x81, 0x8d, 0x91, 0x8d, 0x80, 0x7e, 0x81, 0x77, 0x6e, 0x6f, + 0x7a, 0x81, 0x7e, 0x83, 0x8e, 0x91, 0x8b, 0x7f, 0x7f, 0x80, 0x76, 0x6e, + 0x70, 0x7c, 0x81, 0x7d, 0x84, 0x8f, 0x91, 0x89, 0x7e, 0x80, 0x7f, 0x74, + 0x6e, 0x72, 0x7d, 0x81, 0x7e, 0x86, 0x90, 0x90, 0x87, 0x7e, 0x81, 0x7e, + 0x72, 0x6e, 0x74, 0x7f, 0x80, 0x7e, 0x89, 0x91, 0x8f, 0x85, 0x7e, 0x81, + 0x7c, 0x71, 0x6e, 0x76, 0x80, 0x7f, 0x7f, 0x8b, 0x91, 0x8e, 0x82, 0x7e, + 0x82, 0x7a, 0x6f, 0x6f, 0x78, 0x81, 0x7e, 0x80, 0x8c, 0x91, 0x8c, 0x80, + 0x7e, 0x81, 0x78, 0x6f, 0x70, 0x7a, 0x82, 0x7e, 0x82, 0x8e, 0x91, 0x8a, + 0x7f, 0x7f, 0x80, 0x76, 0x6e, 0x71, 0x7c, 0x81, 0x7e, 0x84, 0x8f, 0x91, + 0x89, 0x7e, 0x80, 0x7f, 0x74, 0x6e, 0x72, 0x7e, 0x81, 0x7e, 0x86, 0x90, + 0x90, 0x86, 0x7e, 0x81, 0x7e, 0x72, 0x6e, 0x74, 0x7f, 0x80, 0x7e, 0x89, + 0x90, 0x8f, 0x84, 0x7d, 0x81, 0x7c, 0x71, 0x6e, 0x76, 0x80, 0x7f, 0x7f, + 0x8a, 0x91, 0x8e, 0x82, 0x7e, 0x82, 0x7a, 0x70, 0x6f, 0x78, 0x81, 0x7e, + 0x80, 0x8c, 0x91, 0x8c, 0x81, 0x7f, 0x81, 0x78, 0x6f, 0x70, 0x7a, 0x81, + 0x7e, 0x82, 0x8e, 0x91, 0x8a, 0x7f, 0x7f, 0x80, 0x76, 0x6e, 0x71, 0x7c, + 0x81, 0x7e, 0x84, 0x8f, 0x90, 0x88, 0x7e, 0x80, 0x7f, 0x74, 0x6e, 0x72, + 0x7e, 0x81, 0x7e, 0x86, 0x8f, 0x8f, 0x86, 0x7e, 0x81, 0x7e, 0x73, 0x6e, + 0x74, 0x7f, 0x80, 0x7e, 0x88, 0x90, 0x8f, 0x84, 0x7d, 0x81, 0x7c, 0x71, + 0x6f, 0x76, 0x80, 0x7f, 0x7f, 0x8a, 0x90, 0x8d, 0x82, 0x7e, 0x81, 0x7a, + 0x70, 0x6f, 0x78, 0x81, 0x7e, 0x80, 0x8c, 0x91, 0x8c, 0x81, 0x7f, 0x81, + 0x78, 0x6f, 0x70, 0x7a, 0x81, 0x7e, 0x82, 0x8d, 0x90, 0x8a, 0x7f, 0x7f, + 0x80, 0x76, 0x6f, 0x71, 0x7c, 0x81, 0x7e, 0x84, 0x8e, 0x90, 0x88, 0x7f, + 0x80, 0x7f, 0x75, 0x6f, 0x73, 0x7e, 0x81, 0x7e, 0x86, 0x8f, 0x8f, 0x86, + 0x7e, 0x81, 0x7e, 0x73, 0x6f, 0x74, 0x7f, 0x80, 0x7e, 0x88, 0x8f, 0x8e, + 0x84, 0x7e, 0x81, 0x7c, 0x72, 0x6f, 0x76, 0x80, 0x7f, 0x7f, 0x8a, 0x90, + 0x8d, 0x83, 0x7e, 0x81, 0x7b, 0x71, 0x70, 0x78, 0x81, 0x7e, 0x80, 0x8b, + 0x90, 0x8c, 0x81, 0x7f, 0x81, 0x79, 0x70, 0x70, 0x7a, 0x81, 0x7e, 0x82, + 0x8d, 0x90, 0x8a, 0x80, 0x7f, 0x80, 0x77, 0x6f, 0x71, 0x7c, 0x81, 0x7e, + 0x84, 0x8e, 0x90, 0x88, 0x7e, 0x80, 0x7f, 0x75, 0x6f, 0x73, 0x7d, 0x81, + 0x7e, 0x86, 0x8f, 0x8f, 0x86, 0x7e, 0x81, 0x7e, 0x73, 0x6f, 0x74, 0x7f, + 0x80, 0x7e, 0x87, 0x8f, 0x8e, 0x85, 0x7e, 0x81, 0x7c, 0x72, 0x6f, 0x76, + 0x80, 0x7f, 0x7f, 0x89, 0x90, 0x8d, 0x82, 0x7e, 0x81, 0x7b, 0x71, 0x70, + 0x78, 0x81, 0x7f, 0x80, 0x8b, 0x90, 0x8b, 0x81, 0x7e, 0x81, 0x79, 0x70, + 0x71, 0x7a, 0x81, 0x7e, 0x82, 0x8c, 0x8f, 0x8a, 0x7f, 0x7f, 0x80, 0x77, + 0x70, 0x72, 0x7c, 0x81, 0x7e, 0x84, 0x8d, 0x8f, 0x88, 0x7e, 0x80, 0x80, + 0x75, 0x6f, 0x73, 0x7e, 0x81, 0x7e, 0x86, 0x8e, 0x8e, 0x86, 0x7e, 0x81, + 0x7e, 0x74, 0x6f, 0x75, 0x7f, 0x80, 0x7e, 0x87, 0x8f, 0x8e, 0x84, 0x7e, + 0x81, 0x7d, 0x73, 0x70, 0x76, 0x80, 0x7f, 0x7f, 0x89, 0x8f, 0x8d, 0x82, + 0x7e, 0x81, 0x7b, 0x71, 0x70, 0x78, 0x81, 0x7f, 0x80, 0x8b, 0x8f, 0x8b, + 0x81, 0x7e, 0x81, 0x79, 0x71, 0x71, 0x7a, 0x81, 0x7e, 0x82, 0x8c, 0x8f, + 0x8a, 0x80, 0x7f, 0x80, 0x77, 0x70, 0x72, 0x7c, 0x81, 0x7e, 0x84, 0x8d, + 0x8f, 0x88, 0x7e, 0x80, 0x7f, 0x75, 0x70, 0x73, 0x7d, 0x81, 0x7e, 0x85, + 0x8e, 0x8e, 0x86, 0x7e, 0x80, 0x7e, 0x74, 0x70, 0x75, 0x7f, 0x80, 0x7e, + 0x87, 0x8e, 0x8e, 0x84, 0x7e, 0x81, 0x7d, 0x72, 0x70, 0x76, 0x80, 0x80, + 0x7f, 0x89, 0x8f, 0x8c, 0x82, 0x7e, 0x81, 0x7b, 0x72, 0x70, 0x78, 0x81, + 0x7f, 0x80, 0x8a, 0x8f, 0x8b, 0x81, 0x7e, 0x81, 0x79, 0x71, 0x71, 0x7a, + 0x81, 0x7e, 0x82, 0x8c, 0x8f, 0x8a, 0x7f, 0x7f, 0x80, 0x77, 0x70, 0x72, + 0x7c, 0x81, 0x7e, 0x83, 0x8d, 0x8f, 0x88, 0x7f, 0x80, 0x7f, 0x76, 0x70, + 0x73, 0x7d, 0x81, 0x7e, 0x85, 0x8e, 0x8e, 0x86, 0x7e, 0x80, 0x7e, 0x74, + 0x70, 0x75, 0x7f, 0x80, 0x7e, 0x87, 0x8e, 0x8d, 0x84, 0x7e, 0x81, 0x7d, + 0x73, 0x70, 0x76, 0x80, 0x7f, 0x7f, 0x89, 0x8e, 0x8c, 0x83, 0x7e, 0x81, + 0x7b, 0x72, 0x71, 0x78, 0x81, 0x7f, 0x80, 0x8a, 0x8f, 0x8b, 0x81, 0x7e, + 0x81, 0x79, 0x71, 0x72, 0x7a, 0x81, 0x7e, 0x81, 0x8b, 0x8e, 0x89, 0x80, + 0x7f, 0x80, 0x78, 0x71, 0x72, 0x7c, 0x81, 0x7e, 0x83, 0x8c, 0x8e, 0x88, + 0x7f, 0x80, 0x80, 0x76, 0x71, 0x74, 0x7d, 0x81, 0x7e, 0x85, 0x8d, 0x8e, + 0x86, 0x7e, 0x80, 0x7e, 0x75, 0x71, 0x75, 0x7f, 0x80, 0x7e, 0x87, 0x8e, + 0x8d, 0x84, 0x7e, 0x81, 0x7d, 0x74, 0x71, 0x77, 0x80, 0x7f, 0x7f, 0x88, + 0x8e, 0x8c, 0x82, 0x7e, 0x81, 0x7b, 0x72, 0x71, 0x78, 0x81, 0x7f, 0x80, + 0x8a, 0x8e, 0x8b, 0x81, 0x7f, 0x81, 0x7a, 0x72, 0x72, 0x7a, 0x81, 0x7e, + 0x81, 0x8b, 0x8e, 0x89, 0x80, 0x7f, 0x80, 0x78, 0x71, 0x73, 0x7c, 0x81, + 0x7e, 0x83, 0x8c, 0x8e, 0x88, 0x7f, 0x80, 0x80, 0x76, 0x71, 0x74, 0x7d, + 0x81, 0x7e, 0x85, 0x8d, 0x8d, 0x86, 0x7e, 0x80, 0x7e, 0x75, 0x71, 0x76, + 0x7f, 0x80, 0x7e, 0x87, 0x8d, 0x8c, 0x84, 0x7e, 0x81, 0x7d, 0x74, 0x71, + 0x77, 0x80, 0x80, 0x7f, 0x88, 0x8e, 0x8b, 0x82, 0x7e, 0x81, 0x7b, 0x73, + 0x72, 0x79, 0x81, 0x7f, 0x80, 0x8a, 0x8e, 0x8a, 0x81, 0x7e, 0x81, 0x7a, + 0x72, 0x72, 0x7a, 0x81, 0x7e, 0x81, 0x8b, 0x8e, 0x89, 0x80, 0x7f, 0x80, + 0x78, 0x72, 0x73, 0x7c, 0x81, 0x7e, 0x83, 0x8c, 0x8d, 0x87, 0x7f, 0x80, + 0x7f, 0x77, 0x71, 0x74, 0x7e, 0x81, 0x7e, 0x85, 0x8c, 0x8d, 0x86, 0x7e, + 0x80, 0x7e, 0x75, 0x71, 0x76, 0x7f, 0x80, 0x7e, 0x86, 0x8d, 0x8c, 0x84, + 0x7e, 0x81, 0x7d, 0x74, 0x71, 0x77, 0x80, 0x80, 0x7f, 0x88, 0x8d, 0x8b, + 0x82, 0x7e, 0x81, 0x7c, 0x73, 0x72, 0x79, 0x81, 0x7f, 0x80, 0x89, 0x8d, + 0x8a, 0x81, 0x7e, 0x81, 0x7a, 0x73, 0x73, 0x7a, 0x81, 0x7e, 0x81, 0x8a, + 0x8d, 0x89, 0x80, 0x7f, 0x80, 0x78, 0x72, 0x73, 0x7c, 0x81, 0x7e, 0x83, + 0x8b, 0x8d, 0x87, 0x7f, 0x80, 0x7f, 0x77, 0x72, 0x74, 0x7d, 0x81, 0x7e, + 0x84, 0x8c, 0x8d, 0x86, 0x7e, 0x80, 0x7f, 0x76, 0x72, 0x76, 0x7f, 0x80, + 0x7e, 0x86, 0x8c, 0x8c, 0x84, 0x7e, 0x81, 0x7d, 0x75, 0x72, 0x77, 0x80, + 0x80, 0x7f, 0x88, 0x8d, 0x8b, 0x83, 0x7e, 0x81, 0x7c, 0x73, 0x72, 0x79, + 0x80, 0x7f, 0x80, 0x89, 0x8d, 0x8a, 0x81, 0x7e, 0x81, 0x7a, 0x73, 0x73, + 0x7a, 0x81, 0x7e, 0x81, 0x8a, 0x8d, 0x89, 0x80, 0x7f, 0x80, 0x79, 0x72, + 0x74, 0x7c, 0x81, 0x7e, 0x83, 0x8b, 0x8d, 0x87, 0x7f, 0x80, 0x80, 0x77, + 0x72, 0x75, 0x7d, 0x80, 0x7e, 0x84, 0x8c, 0x8c, 0x86, 0x7e, 0x80, 0x7f, + 0x76, 0x72, 0x76, 0x7f, 0x80, 0x7e, 0x86, 0x8c, 0x8b, 0x84, 0x7e, 0x81, + 0x7d, 0x75, 0x72, 0x77, 0x80, 0x80, 0x7f, 0x87, 0x8d, 0x8b, 0x82, 0x7e, + 0x81, 0x7c, 0x74, 0x73, 0x79, 0x80, 0x7f, 0x80, 0x88, 0x8d, 0x8a, 0x81, + 0x7f, 0x81, 0x7a, 0x73, 0x73, 0x7a, 0x81, 0x7e, 0x81, 0x8a, 0x8c, 0x88, + 0x80, 0x7f, 0x80, 0x79, 0x73, 0x74, 0x7c, 0x81, 0x7e, 0x82, 0x8b, 0x8c, + 0x87, 0x7f, 0x80, 0x80, 0x77, 0x72, 0x75, 0x7d, 0x81, 0x7e, 0x84, 0x8b, + 0x8c, 0x85, 0x7e, 0x80, 0x7f, 0x76, 0x72, 0x76, 0x7f, 0x80, 0x7e, 0x85, + 0x8c, 0x8b, 0x84, 0x7e, 0x81, 0x7e, 0x75, 0x73, 0x78, 0x80, 0x80, 0x7f, + 0x87, 0x8c, 0x8b, 0x82, 0x7e, 0x81, 0x7c, 0x74, 0x73, 0x79, 0x80, 0x7f, + 0x80, 0x88, 0x8c, 0x89, 0x81, 0x7f, 0x81, 0x7b, 0x73, 0x73, 0x7b, 0x81, + 0x7e, 0x81, 0x89, 0x8c, 0x88, 0x80, 0x7f, 0x81, 0x79, 0x73, 0x74, 0x7c, + 0x81, 0x7e, 0x82, 0x8a, 0x8c, 0x87, 0x7f, 0x80, 0x80, 0x78, 0x73, 0x75, + 0x7d, 0x81, 0x7e, 0x84, 0x8b, 0x8c, 0x85, 0x7e, 0x80, 0x7f, 0x76, 0x73, + 0x76, 0x7f, 0x80, 0x7e, 0x85, 0x8c, 0x8b, 0x84, 0x7e, 0x81, 0x7d, 0x75, + 0x73, 0x78, 0x7f, 0x80, 0x7f, 0x87, 0x8c, 0x8a, 0x82, 0x7f, 0x81, 0x7c, + 0x75, 0x73, 0x79, 0x80, 0x7f, 0x80, 0x88, 0x8c, 0x89, 0x81, 0x7f, 0x81, + 0x7b, 0x74, 0x74, 0x7b, 0x81, 0x7f, 0x81, 0x89, 0x8c, 0x88, 0x80, 0x7f, + 0x80, 0x79, 0x73, 0x75, 0x7c, 0x81, 0x7e, 0x82, 0x8a, 0x8c, 0x87, 0x7f, + 0x80, 0x80, 0x78, 0x73, 0x75, 0x7d, 0x81, 0x7e, 0x84, 0x8b, 0x8b, 0x85, + 0x7e, 0x80, 0x7f, 0x77, 0x73, 0x77, 0x7f, 0x80, 0x7e, 0x85, 0x8b, 0x8b, + 0x84, 0x7e, 0x81, 0x7e, 0x76, 0x73, 0x78, 0x80, 0x80, 0x7f, 0x86, 0x8c, + 0x8a, 0x82, 0x7e, 0x81, 0x7c, 0x75, 0x74, 0x79, 0x80, 0x7f, 0x80, 0x88, + 0x8c, 0x89, 0x81, 0x7e, 0x81, 0x7b, 0x74, 0x74, 0x7b, 0x81, 0x7f, 0x81, + 0x89, 0x8c, 0x88, 0x80, 0x7f, 0x80, 0x7a, 0x74, 0x75, 0x7c, 0x81, 0x7e, + 0x82, 0x8a, 0x8b, 0x87, 0x7f, 0x7f, 0x80, 0x78, 0x73, 0x76, 0x7d, 0x81, + 0x7e, 0x83, 0x8a, 0x8b, 0x85, 0x7e, 0x80, 0x7f, 0x77, 0x73, 0x77, 0x7f, + 0x80, 0x7e, 0x85, 0x8b, 0x8a, 0x84, 0x7e, 0x80, 0x7e, 0x76, 0x74, 0x78, + 0x80, 0x80, 0x7f, 0x86, 0x8b, 0x8a, 0x82, 0x7e, 0x81, 0x7d, 0x75, 0x74, + 0x79, 0x80, 0x7f, 0x80, 0x87, 0x8b, 0x89, 0x81, 0x7f, 0x81, 0x7b, 0x75, + 0x74, 0x7b, 0x81, 0x7f, 0x81, 0x89, 0x8b, 0x88, 0x80, 0x7f, 0x80, 0x7a, + 0x74, 0x75, 0x7c, 0x81, 0x7e, 0x82, 0x89, 0x8b, 0x86, 0x7f, 0x80, 0x80, + 0x78, 0x74, 0x76, 0x7d, 0x81, 0x7e, 0x83, 0x8a, 0x8b, 0x85, 0x7f, 0x80, + 0x7f, 0x77, 0x74, 0x77, 0x7f, 0x80, 0x7e, 0x85, 0x8b, 0x8a, 0x84, 0x7e, + 0x80, 0x7e, 0x76, 0x74, 0x78, 0x7f, 0x80, 0x7f, 0x86, 0x8b, 0x89, 0x82, + 0x7e, 0x81, 0x7d, 0x76, 0x74, 0x79, 0x80, 0x7f, 0x80, 0x87, 0x8b, 0x88, + 0x81, 0x7f, 0x81, 0x7b, 0x75, 0x75, 0x7b, 0x81, 0x7f, 0x80, 0x88, 0x8b, + 0x87, 0x80, 0x7f, 0x80, 0x7a, 0x75, 0x76, 0x7c, 0x81, 0x7e, 0x82, 0x89, + 0x8b, 0x86, 0x7f, 0x80, 0x80, 0x79, 0x74, 0x76, 0x7d, 0x81, 0x7e, 0x83, + 0x8a, 0x8a, 0x85, 0x7f, 0x80, 0x7f, 0x78, 0x74, 0x77, 0x7f, 0x80, 0x7e, + 0x84, 0x8a, 0x8a, 0x84, 0x7e, 0x80, 0x7e, 0x77, 0x74, 0x78, 0x7f, 0x80, + 0x7f, 0x86, 0x8a, 0x89, 0x82, 0x7e, 0x81, 0x7d, 0x76, 0x74, 0x7a, 0x80, + 0x7f, 0x80, 0x87, 0x8b, 0x88, 0x81, 0x7f, 0x81, 0x7c, 0x75, 0x75, 0x7b, + 0x80, 0x7f, 0x81, 0x88, 0x8b, 0x87, 0x80, 0x7f, 0x80, 0x7a, 0x75, 0x76, + 0x7c, 0x81, 0x7e, 0x82, 0x89, 0x8a, 0x86, 0x7f, 0x80, 0x80, 0x79, 0x75, + 0x76, 0x7d, 0x80, 0x7e, 0x83, 0x89, 0x8a, 0x85, 0x7f, 0x80, 0x7f, 0x78, + 0x74, 0x77, 0x7e, 0x80, 0x7e, 0x84, 0x8a, 0x8a, 0x84, 0x7e, 0x80, 0x7e, + 0x77, 0x75, 0x79, 0x7f, 0x80, 0x7f, 0x85, 0x8a, 0x89, 0x82, 0x7e, 0x81, + 0x7d, 0x76, 0x75, 0x7a, 0x80, 0x7f, 0x7f, 0x87, 0x8a, 0x88, 0x81, 0x7e, + 0x81, 0x7c, 0x75, 0x75, 0x7b, 0x80, 0x7f, 0x80, 0x88, 0x8a, 0x87, 0x80, + 0x7f, 0x80, 0x7a, 0x75, 0x76, 0x7c, 0x81, 0x7f, 0x82, 0x88, 0x8a, 0x86, + 0x7f, 0x7f, 0x80, 0x79, 0x75, 0x77, 0x7d, 0x81, 0x7e, 0x83, 0x89, 0x8a, + 0x85, 0x7f, 0x80, 0x7f, 0x78, 0x75, 0x78, 0x7f, 0x80, 0x7e, 0x84, 0x8a, + 0x89, 0x84, 0x7e, 0x80, 0x7e, 0x77, 0x75, 0x79, 0x7f, 0x80, 0x7f, 0x85, + 0x8a, 0x89, 0x82, 0x7e, 0x81, 0x7d, 0x77, 0x75, 0x7a, 0x80, 0x7f, 0x7f, + 0x86, 0x8a, 0x88, 0x81, 0x7f, 0x81, 0x7c, 0x76, 0x76, 0x7b, 0x81, 0x7f, + 0x80, 0x87, 0x8a, 0x87, 0x80, 0x7f, 0x80, 0x7b, 0x76, 0x76, 0x7c, 0x81, + 0x7f, 0x81, 0x88, 0x8a, 0x86, 0x7f, 0x7f, 0x80, 0x7a, 0x75, 0x77, 0x7d, + 0x80, 0x7e, 0x83, 0x89, 0x89, 0x85, 0x7f, 0x80, 0x7f, 0x79, 0x75, 0x78, + 0x7f, 0x80, 0x7e, 0x84, 0x89, 0x89, 0x83, 0x7e, 0x80, 0x7e, 0x78, 0x75, + 0x79, 0x7f, 0x80, 0x7f, 0x85, 0x89, 0x88, 0x82, 0x7e, 0x81, 0x7d, 0x77, + 0x75, 0x7a, 0x80, 0x7f, 0x7f, 0x86, 0x8a, 0x88, 0x81, 0x7f, 0x80, 0x7c, + 0x76, 0x76, 0x7b, 0x80, 0x7f, 0x80, 0x87, 0x8a, 0x87, 0x80, 0x7f, 0x80, + 0x7b, 0x76, 0x76, 0x7c, 0x81, 0x7f, 0x81, 0x88, 0x89, 0x86, 0x7f, 0x7f, + 0x80, 0x7a, 0x76, 0x77, 0x7e, 0x81, 0x7e, 0x82, 0x88, 0x89, 0x84, 0x7f, + 0x80, 0x7f, 0x79, 0x76, 0x78, 0x7f, 0x80, 0x7e, 0x84, 0x89, 0x89, 0x83, + 0x7e, 0x80, 0x7e, 0x78, 0x76, 0x79, 0x7f, 0x80, 0x7f, 0x85, 0x89, 0x88, + 0x82, 0x7e, 0x80, 0x7d, 0x77, 0x76, 0x7a, 0x80, 0x7f, 0x7f, 0x86, 0x89, + 0x87, 0x81, 0x7f, 0x80, 0x7c, 0x77, 0x76, 0x7b, 0x80, 0x7f, 0x80, 0x87, + 0x89, 0x86, 0x80, 0x7f, 0x80, 0x7b, 0x76, 0x77, 0x7d, 0x81, 0x7f, 0x81, + 0x87, 0x89, 0x85, 0x7f, 0x7f, 0x80, 0x7a, 0x76, 0x77, 0x7e, 0x81, 0x7e, + 0x82, 0x88, 0x89, 0x84, 0x7f, 0x80, 0x7f, 0x79, 0x76, 0x78, 0x7f, 0x80, + 0x7f, 0x83, 0x88, 0x88, 0x83, 0x7e, 0x80, 0x7e, 0x78, 0x76, 0x79, 0x7f, + 0x80, 0x7f, 0x85, 0x89, 0x88, 0x82, 0x7f, 0x80, 0x7d, 0x77, 0x76, 0x7a, + 0x80, 0x7f, 0x7f, 0x86, 0x89, 0x87, 0x81, 0x7f, 0x81, 0x7c, 0x77, 0x77, + 0x7b, 0x80, 0x7f, 0x80, 0x86, 0x89, 0x86, 0x80, 0x7f, 0x80, 0x7b, 0x77, + 0x77, 0x7d, 0x81, 0x7f, 0x81, 0x87, 0x89, 0x85, 0x7f, 0x7f, 0x80, 0x7a, + 0x76, 0x78, 0x7e, 0x80, 0x7e, 0x82, 0x88, 0x88, 0x84, 0x7f, 0x80, 0x7f, + 0x79, 0x76, 0x79, 0x7f, 0x80, 0x7e, 0x83, 0x88, 0x88, 0x83, 0x7e, 0x80, + 0x7e, 0x79, 0x76, 0x79, 0x7f, 0x80, 0x7f, 0x84, 0x88, 0x88, 0x82, 0x7e, + 0x80, 0x7e, 0x78, 0x77, 0x7b, 0x80, 0x7f, 0x7f, 0x85, 0x88, 0x87, 0x81, + 0x7f, 0x81, 0x7d, 0x77, 0x77, 0x7c, 0x80, 0x7f, 0x80, 0x86, 0x88, 0x86, + 0x80, 0x7f, 0x80, 0x7c, 0x77, 0x77, 0x7d, 0x81, 0x7f, 0x81, 0x87, 0x88, + 0x85, 0x7f, 0x7f, 0x80, 0x7a, 0x77, 0x78, 0x7e, 0x80, 0x7f, 0x82, 0x87, + 0x88, 0x84, 0x7f, 0x80, 0x7f, 0x7a, 0x77, 0x79, 0x7f, 0x80, 0x7e, 0x83, + 0x88, 0x88, 0x83, 0x7f, 0x80, 0x7f, 0x79, 0x77, 0x7a, 0x7f, 0x80, 0x7f, + 0x84, 0x88, 0x87, 0x82, 0x7f, 0x80, 0x7e, 0x78, 0x77, 0x7b, 0x80, 0x7f, + 0x7f, 0x85, 0x88, 0x86, 0x81, 0x7f, 0x80, 0x7d, 0x78, 0x77, 0x7c, 0x80, + 0x7f, 0x80, 0x86, 0x88, 0x86, 0x80, 0x7f, 0x80, 0x7c, 0x77, 0x78, 0x7d, + 0x80, 0x7f, 0x81, 0x86, 0x88, 0x85, 0x7f, 0x7f, 0x80, 0x7b, 0x77, 0x78, + 0x7e, 0x80, 0x7f, 0x82, 0x87, 0x88, 0x84, 0x7f, 0x80, 0x7f, 0x7a, 0x77, + 0x79, 0x7f, 0x80, 0x7f, 0x83, 0x87, 0x87, 0x83, 0x7f, 0x80, 0x7f, 0x79, + 0x77, 0x7a, 0x7f, 0x80, 0x7f, 0x84, 0x88, 0x87, 0x82, 0x7f, 0x80, 0x7e, + 0x78, 0x77, 0x7b, 0x80, 0x7f, 0x7f, 0x85, 0x88, 0x86, 0x81, 0x7f, 0x80, + 0x7d, 0x78, 0x78, 0x7c, 0x80, 0x7f, 0x80, 0x85, 0x88, 0x86, 0x80, 0x7f, + 0x80, 0x7c, 0x78, 0x78, 0x7d, 0x80, 0x7f, 0x81, 0x86, 0x88, 0x85, 0x7f, + 0x7f, 0x80, 0x7b, 0x78, 0x79, 0x7e, 0x80, 0x7f, 0x82, 0x87, 0x87, 0x84, + 0x7f, 0x80, 0x7f, 0x7a, 0x77, 0x79, 0x7e, 0x80, 0x7f, 0x83, 0x87, 0x87, + 0x83, 0x7f, 0x80, 0x7f, 0x79, 0x77, 0x7a, 0x7f, 0x80, 0x7f, 0x84, 0x87, + 0x87, 0x82, 0x7f, 0x80, 0x7e, 0x79, 0x78, 0x7b, 0x80, 0x7f, 0x7f, 0x84, + 0x87, 0x86, 0x81, 0x7f, 0x80, 0x7d, 0x78, 0x78, 0x7c, 0x80, 0x7f, 0x80, + 0x85, 0x87, 0x85, 0x80, 0x7f, 0x80, 0x7c, 0x78, 0x78, 0x7d, 0x80, 0x7f, + 0x81, 0x86, 0x87, 0x84, 0x7f, 0x7f, 0x80, 0x7b, 0x78, 0x79, 0x7e, 0x80, + 0x7f, 0x82, 0x86, 0x87, 0x84, 0x7f, 0x80, 0x7f, 0x7a, 0x78, 0x7a, 0x7f, + 0x80, 0x7f, 0x82, 0x87, 0x87, 0x83, 0x7f, 0x80, 0x7f, 0x7a, 0x78, 0x7a, + 0x7f, 0x80, 0x7f, 0x83, 0x87, 0x86, 0x82, 0x7f, 0x80, 0x7e, 0x79, 0x78, + 0x7b, 0x80, 0x7f, 0x7f, 0x84, 0x87, 0x86, 0x81, 0x7f, 0x80, 0x7d, 0x79, + 0x78, 0x7c, 0x80, 0x7f, 0x80, 0x85, 0x87, 0x85, 0x80, 0x7f, 0x80, 0x7c, + 0x78, 0x79, 0x7d, 0x80, 0x7f, 0x81, 0x86, 0x87, 0x84, 0x7f, 0x7f, 0x80, + 0x7b, 0x78, 0x79, 0x7e, 0x80, 0x7f, 0x81, 0x86, 0x87, 0x84, 0x7f, 0x80, + 0x7f, 0x7b, 0x78, 0x7a, 0x7f, 0x80, 0x7f, 0x82, 0x86, 0x86, 0x83, 0x7f, + 0x80, 0x7f, 0x7a, 0x78, 0x7a, 0x7f, 0x80, 0x7f, 0x83, 0x87, 0x86, 0x82, + 0x7f, 0x80, 0x7e, 0x79, 0x78, 0x7b, 0x80, 0x80, 0x7f, 0x84, 0x87, 0x86, + 0x81, 0x7f, 0x80, 0x7d, 0x79, 0x79, 0x7c, 0x80, 0x7f, 0x80, 0x85, 0x87, + 0x85, 0x80, 0x7f, 0x80, 0x7c, 0x79, 0x79, 0x7d, 0x80, 0x7f, 0x81, 0x85, + 0x87, 0x84, 0x7f, 0x7f, 0x80, 0x7c, 0x79, 0x79, 0x7e, 0x80, 0x7f, 0x81, + 0x86, 0x86, 0x83, 0x7f, 0x80, 0x7f, 0x7b, 0x78, 0x7a, 0x7f, 0x80, 0x7f, + 0x82, 0x86, 0x86, 0x82, 0x7f, 0x80, 0x7f, 0x7a, 0x78, 0x7b, 0x7f, 0x80, + 0x7f, 0x83, 0x86, 0x86, 0x82, 0x7f, 0x80, 0x7e, 0x7a, 0x79, 0x7b, 0x80, + 0x80, 0x7f, 0x84, 0x86, 0x85, 0x81, 0x7f, 0x80, 0x7d, 0x79, 0x79, 0x7c, + 0x80, 0x7f, 0x80, 0x84, 0x86, 0x85, 0x80, 0x7f, 0x80, 0x7d, 0x79, 0x79, + 0x7d, 0x80, 0x7f, 0x80, 0x85, 0x86, 0x84, 0x7f, 0x7f, 0x80, 0x7c, 0x79, + 0x7a, 0x7e, 0x80, 0x7f, 0x81, 0x85, 0x86, 0x83, 0x7f, 0x80, 0x7f, 0x7b, + 0x79, 0x7a, 0x7f, 0x80, 0x7f, 0x82, 0x86, 0x86, 0x82, 0x7f, 0x80, 0x7f, + 0x7b, 0x79, 0x7b, 0x7f, 0x80, 0x7f, 0x83, 0x86, 0x85, 0x82, 0x7f, 0x80, + 0x7e, 0x7a, 0x79, 0x7c, 0x80, 0x80, 0x7f, 0x83, 0x86, 0x85, 0x81, 0x7f, + 0x80, 0x7e, 0x7a, 0x79, 0x7c, 0x80, 0x7f, 0x80, 0x84, 0x86, 0x84, 0x80, + 0x7f, 0x80, 0x7d, 0x79, 0x79, 0x7d, 0x80, 0x7f, 0x80, 0x85, 0x86, 0x84, + 0x80, 0x7f, 0x80, 0x7c, 0x79, 0x7a, 0x7e, 0x80, 0x7f, 0x81, 0x85, 0x86, + 0x83, 0x7f, 0x80, 0x80, 0x7b, 0x79, 0x7a, 0x7f, 0x80, 0x7f, 0x82, 0x85, + 0x85, 0x82, 0x7f, 0x80, 0x7f, 0x7b, 0x79, 0x7b, 0x7f, 0x80, 0x7f, 0x83, + 0x85, 0x85, 0x81, 0x7f, 0x80, 0x7e, 0x7a, 0x79, 0x7c, 0x80, 0x7f, 0x7f, + 0x83, 0x86, 0x85, 0x81, 0x7f, 0x80, 0x7e, 0x7a, 0x7a, 0x7d, 0x80, 0x7f, + 0x80, 0x84, 0x86, 0x84, 0x80, 0x7f, 0x80, 0x7d, 0x7a, 0x7a, 0x7d, 0x80, + 0x7f, 0x80, 0x84, 0x86, 0x84, 0x80, 0x7f, 0x80, 0x7c, 0x7a, 0x7a, 0x7e, + 0x80, 0x7f, 0x81, 0x85, 0x85, 0x83, 0x7f, 0x80, 0x7f, 0x7c, 0x7a, 0x7b, + 0x7f, 0x80, 0x7f, 0x82, 0x85, 0x85, 0x82, 0x7f, 0x80, 0x7f, 0x7b, 0x7a, + 0x7b, 0x7f, 0x80, 0x7f, 0x82, 0x85, 0x85, 0x81, 0x7f, 0x80, 0x7e, 0x7b, + 0x7a, 0x7c, 0x80, 0x80, 0x7f, 0x83, 0x85, 0x84, 0x81, 0x7f, 0x80, 0x7e, + 0x7a, 0x7a, 0x7d, 0x80, 0x7f, 0x80, 0x84, 0x85, 0x84, 0x80, 0x7f, 0x80, + 0x7d, 0x7a, 0x7a, 0x7d, 0x80, 0x7f, 0x80, 0x84, 0x85, 0x83, 0x80, 0x7f, + 0x80, 0x7d, 0x7a, 0x7b, 0x7e, 0x80, 0x7f, 0x81, 0x84, 0x85, 0x83, 0x7f, + 0x80, 0x7f, 0x7c, 0x7a, 0x7b, 0x7f, 0x80, 0x7f, 0x82, 0x85, 0x85, 0x82, + 0x7f, 0x80, 0x7f, 0x7b, 0x7a, 0x7c, 0x7f, 0x80, 0x7f, 0x82, 0x85, 0x84, + 0x81, 0x7f, 0x80, 0x7e, 0x7b, 0x7a, 0x7c, 0x80, 0x80, 0x7f, 0x83, 0x85, + 0x84, 0x81, 0x7f, 0x80, 0x7e, 0x7b, 0x7a, 0x7d, 0x80, 0x7f, 0x80, 0x83, + 0x85, 0x84, 0x80, 0x7f, 0x80, 0x7d, 0x7a, 0x7a, 0x7d, 0x80, 0x7f, 0x80, + 0x84, 0x85, 0x83, 0x80, 0x7f, 0x80, 0x7d, 0x7a, 0x7b, 0x7e, 0x80, 0x7f, + 0x81, 0x84, 0x85, 0x83, 0x7f, 0x80, 0x80, 0x7c, 0x7a, 0x7b, 0x7f, 0x80, + 0x7f, 0x81, 0x84, 0x85, 0x82, 0x7f, 0x80, 0x7f, 0x7c, 0x7a, 0x7c, 0x7f, + 0x80, 0x7f, 0x82, 0x85, 0x84, 0x81, 0x7f, 0x80, 0x7f, 0x7b, 0x7a, 0x7c, + 0x80, 0x7f, 0x7f, 0x82, 0x85, 0x84, 0x81, 0x7f, 0x80, 0x7e, 0x7b, 0x7a, + 0x7d, 0x80, 0x7f, 0x80, 0x83, 0x85, 0x83, 0x80, 0x7f, 0x80, 0x7d, 0x7b, + 0x7b, 0x7e, 0x80, 0x7f, 0x80, 0x84, 0x85, 0x83, 0x80, 0x7f, 0x80, 0x7d, + 0x7b, 0x7b, 0x7e, 0x80, 0x7f, 0x81, 0x84, 0x84, 0x82, 0x7f, 0x80, 0x80, + 0x7c, 0x7b, 0x7c, 0x7f, 0x80, 0x7f, 0x81, 0x84, 0x84, 0x82, 0x7f, 0x80, + 0x7f, 0x7c, 0x7b, 0x7c, 0x7f, 0x80, 0x7f, 0x82, 0x84, 0x84, 0x81, 0x7f, + 0x80, 0x7f, 0x7c, 0x7b, 0x7d, 0x80, 0x80, 0x7f, 0x82, 0x84, 0x84, 0x81, + 0x7f, 0x80, 0x7e, 0x7b, 0x7b, 0x7d, 0x80, 0x7f, 0x80, 0x83, 0x84, 0x83, + 0x80, 0x7f, 0x80, 0x7e, 0x7b, 0x7b, 0x7e, 0x80, 0x7f, 0x80, 0x83, 0x84, + 0x83, 0x80, 0x7f, 0x80, 0x7d, 0x7b, 0x7b, 0x7e, 0x80, 0x7f, 0x81, 0x83, + 0x84, 0x82, 0x7f, 0x80, 0x80, 0x7d, 0x7b, 0x7c, 0x7f, 0x80, 0x7f, 0x81, + 0x84, 0x84, 0x82, 0x7f, 0x80, 0x7f, 0x7c, 0x7b, 0x7c, 0x7f, 0x80, 0x7f, + 0x82, 0x84, 0x84, 0x81, 0x7f, 0x80, 0x7f, 0x7c, 0x7b, 0x7d, 0x80, 0x80, + 0x7f, 0x82, 0x84, 0x83, 0x81, 0x7f, 0x80, 0x7e, 0x7c, 0x7b, 0x7d, 0x80, + 0x7f, 0x80, 0x83, 0x84, 0x83, 0x80, 0x7f, 0x80, 0x7e, 0x7b, 0x7b, 0x7e, + 0x80, 0x7f, 0x80, 0x83, 0x84, 0x82, 0x80, 0x7f, 0x80, 0x7d, 0x7b, 0x7c, + 0x7e, 0x80, 0x7f, 0x80, 0x83, 0x84, 0x82, 0x7f, 0x80, 0x80, 0x7d, 0x7b, + 0x7c, 0x7f, 0x80, 0x7f, 0x81, 0x83, 0x84, 0x81, 0x7f, 0x80, 0x7f, 0x7c, + 0x7b, 0x7d, 0x7f, 0x80, 0x7f, 0x81, 0x83, 0x83, 0x81, 0x7f, 0x80, 0x7f, + 0x7c, 0x7b, 0x7d, 0x80, 0x7f, 0x7f, 0x82, 0x84, 0x83, 0x80, 0x7f, 0x80, + 0x7e, 0x7c, 0x7c, 0x7d, 0x80, 0x7f, 0x80, 0x82, 0x84, 0x83, 0x80, 0x7f, + 0x80, 0x7e, 0x7c, 0x7c, 0x7e, 0x80, 0x7f, 0x80, 0x83, 0x84, 0x82, 0x80, + 0x7f, 0x80, 0x7e, 0x7c, 0x7c, 0x7e, 0x80, 0x7f, 0x80, 0x83, 0x83, 0x82, + 0x7f, 0x7f, 0x80, 0x7d, 0x7c, 0x7c, 0x7f, 0x80, 0x7f, 0x81, 0x83, 0x83, + 0x81, 0x7f, 0x80, 0x7f, 0x7d, 0x7c, 0x7d, 0x7f, 0x80, 0x7f, 0x81, 0x83, + 0x83, 0x81, 0x7f, 0x80, 0x7f, 0x7c, 0x7c, 0x7d, 0x80, 0x80, 0x7f, 0x82, + 0x83, 0x83, 0x80, 0x7f, 0x80, 0x7f, 0x7c, 0x7c, 0x7e, 0x80, 0x7f, 0x80, + 0x82, 0x83, 0x82, 0x80, 0x7f, 0x80, 0x7e, 0x7c, 0x7c, 0x7e, 0x80, 0x7f, + 0x80, 0x82, 0x83, 0x82, 0x80, 0x7f, 0x80, 0x7e, 0x7c, 0x7c, 0x7e, 0x80, + 0x7f, 0x80, 0x83, 0x83, 0x82, 0x7f, 0x7f, 0x80, 0x7d, 0x7c, 0x7d, 0x7f, + 0x80, 0x7f, 0x81, 0x83, 0x83, 0x81, 0x7f, 0x80, 0x7f, 0x7d, 0x7c, 0x7d, + 0x7f, 0x80, 0x7f, 0x81, 0x83, 0x83, 0x81, 0x7f, 0x80, 0x7f, 0x7d, 0x7c, + 0x7d, 0x80, 0x80, 0x7f, 0x81, 0x83, 0x82, 0x80, 0x7f, 0x80, 0x7f, 0x7d, + 0x7c, 0x7e, 0x80, 0x7f, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7f, 0x80, 0x7e, + 0x7c, 0x7c, 0x7e, 0x80, 0x7f, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7f, 0x80, + 0x7e, 0x7c, 0x7d, 0x7f, 0x80, 0x7f, 0x80, 0x82, 0x83, 0x81, 0x7f, 0x80, + 0x80, 0x7e, 0x7c, 0x7d, 0x7f, 0x80, 0x7f, 0x81, 0x82, 0x82, 0x81, 0x7f, + 0x80, 0x7f, 0x7d, 0x7c, 0x7d, 0x7f, 0x80, 0x7f, 0x81, 0x82, 0x82, 0x81, + 0x7f, 0x80, 0x7f, 0x7d, 0x7c, 0x7e, 0x80, 0x80, 0x7f, 0x81, 0x82, 0x82, + 0x80, 0x7f, 0x80, 0x7f, 0x7d, 0x7d, 0x7e, 0x80, 0x7f, 0x80, 0x82, 0x82, + 0x82, 0x80, 0x7f, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7f, 0x80, 0x82, + 0x82, 0x81, 0x80, 0x7f, 0x80, 0x7e, 0x7d, 0x7d, 0x7f, 0x80, 0x7f, 0x80, + 0x82, 0x82, 0x81, 0x7f, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7f, 0x80, 0x7f, + 0x80, 0x82, 0x82, 0x81, 0x7f, 0x80, 0x7f, 0x7e, 0x7d, 0x7d, 0x7f, 0x80, + 0x7f, 0x81, 0x82, 0x82, 0x80, 0x7f, 0x80, 0x7f, 0x7d, 0x7d, 0x7e, 0x80, + 0x80, 0x7f, 0x81, 0x82, 0x82, 0x80, 0x7f, 0x80, 0x7f, 0x7d, 0x7d, 0x7e, + 0x80, 0x7f, 0x80, 0x81, 0x82, 0x82, 0x80, 0x7f, 0x80, 0x7f, 0x7d, 0x7d, + 0x7e, 0x80, 0x7f, 0x80, 0x81, 0x82, 0x81, 0x80, 0x7f, 0x80, 0x7e, 0x7d, + 0x7d, 0x7f, 0x80, 0x7f, 0x80, 0x82, 0x82, 0x81, 0x7f, 0x80, 0x80, 0x7e, + 0x7d, 0x7d, 0x7f, 0x80, 0x7f, 0x80, 0x82, 0x82, 0x81, 0x7f, 0x80, 0x7f, + 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, 0x81, 0x82, 0x82, 0x80, 0x7f, 0x80, + 0x7f, 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, 0x81, 0x82, 0x82, 0x80, 0x7f, + 0x80, 0x7f, 0x7d, 0x7d, 0x7e, 0x80, 0x7f, 0x7f, 0x81, 0x82, 0x81, 0x80, + 0x7f, 0x80, 0x7f, 0x7d, 0x7d, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x82, 0x81, + 0x80, 0x7f, 0x80, 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x82, + 0x81, 0x7f, 0x80, 0x80, 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, + 0x82, 0x81, 0x7f, 0x80, 0x7f, 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, 0x80, + 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, + 0x81, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x80, 0x7f, + 0x7f, 0x81, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, + 0x7f, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, + 0x80, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x7f, 0x80, 0x80, 0x7e, 0x7e, 0x7e, + 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, + 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, + 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, + 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x7f, 0x81, 0x81, 0x81, 0x80, 0x7f, 0x80, + 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7f, + 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7f, + 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x80, + 0x7f, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, + 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x81, + 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x7f, 0x80, + 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x81, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, + 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, + 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, + 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, + 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f +}; +const uint32_t coin05_16k_raw_len = 14437; \ No newline at end of file diff --git a/SampleSrc/coin05_8k.ino.txt b/SampleSrc/coin05_8k.ino.txt new file mode 100644 index 0000000..bcc4b72 --- /dev/null +++ b/SampleSrc/coin05_8k.ino.txt @@ -0,0 +1,605 @@ +const uint8_t coin05_8k_raw[] PROGMEM = { + 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, + 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x7f, 0x80, + 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7e, 0x81, 0x7d, 0x82, 0x7c, 0x8a, 0xad, 0xb8, 0xd2, + 0xbd, 0x8e, 0x76, 0x52, 0x4a, 0x6f, 0x84, 0xa4, 0xb8, 0x97, 0x7e, 0x63, + 0x45, 0x5c, 0x7e, 0x97, 0xbe, 0xb2, 0x8a, 0x6c, 0x40, 0x3e, 0x6b, 0x8d, + 0xbb, 0xcc, 0xa1, 0x7a, 0x4c, 0x2a, 0x50, 0x7e, 0xac, 0xdf, 0xc3, 0x88, + 0x57, 0x1b, 0x27, 0x6e, 0xa3, 0xe0, 0xe7, 0xa1, 0x64, 0x2e, 0x16, 0x4e, + 0x91, 0xc4, 0xe2, 0xbd, 0x7b, 0x46, 0x27, 0x38, 0x6e, 0xa9, 0xcf, 0xce, + 0xa7, 0x6d, 0x3b, 0x2f, 0x4c, 0x7d, 0xb5, 0xcf, 0xb5, 0x8c, 0x5c, 0x32, + 0x45, 0x70, 0x94, 0xc8, 0xc7, 0x95, 0x74, 0x3e, 0x28, 0x5c, 0x88, 0xba, + 0xe2, 0xba, 0x7f, 0x4c, 0x18, 0x2f, 0x70, 0xa6, 0xe0, 0xdc, 0x99, 0x67, + 0x2f, 0x21, 0x62, 0x91, 0xbe, 0xdc, 0xa4, 0x72, 0x53, 0x29, 0x50, 0x86, + 0x9d, 0xc8, 0xb8, 0x83, 0x6f, 0x48, 0x43, 0x73, 0x88, 0xa9, 0xbd, 0x96, + 0x7c, 0x61, 0x42, 0x5f, 0x7d, 0x95, 0xb9, 0xaa, 0x88, 0x73, 0x4d, 0x4d, + 0x72, 0x86, 0xaa, 0xb8, 0x94, 0x7d, 0x5f, 0x45, 0x63, 0x7f, 0x98, 0xb9, + 0xa6, 0x85, 0x70, 0x4b, 0x51, 0x75, 0x89, 0xac, 0xb5, 0x91, 0x7b, 0x5d, + 0x47, 0x66, 0x80, 0x99, 0xb8, 0xa3, 0x83, 0x6f, 0x4a, 0x53, 0x77, 0x8a, + 0xaf, 0xb3, 0x8f, 0x7a, 0x59, 0x46, 0x69, 0x81, 0x9e, 0xb9, 0x9f, 0x82, + 0x6b, 0x48, 0x57, 0x78, 0x8c, 0xb1, 0xb0, 0x8c, 0x79, 0x56, 0x49, 0x6c, + 0x82, 0xa0, 0xb9, 0x9c, 0x81, 0x69, 0x47, 0x5a, 0x7a, 0x8f, 0xb3, 0xad, + 0x8a, 0x77, 0x53, 0x4b, 0x6f, 0x84, 0xa4, 0xb8, 0x99, 0x7f, 0x65, 0x46, + 0x5e, 0x7c, 0x93, 0xb5, 0xaa, 0x88, 0x74, 0x4f, 0x4d, 0x72, 0x85, 0xa7, + 0xb7, 0x95, 0x7e, 0x62, 0x46, 0x62, 0x7e, 0x95, 0xb7, 0xa7, 0x85, 0x72, + 0x4d, 0x50, 0x74, 0x87, 0xab, 0xb5, 0x92, 0x7c, 0x5e, 0x46, 0x65, 0x7f, + 0x99, 0xb8, 0xa4, 0x84, 0x6f, 0x4b, 0x53, 0x76, 0x8a, 0xad, 0xb3, 0x90, + 0x7a, 0x5b, 0x47, 0x68, 0x80, 0x9c, 0xb8, 0xa1, 0x82, 0x6c, 0x49, 0x56, + 0x78, 0x8c, 0xb0, 0xb1, 0x8d, 0x79, 0x58, 0x48, 0x6b, 0x82, 0x9f, 0xb8, + 0x9d, 0x81, 0x6a, 0x48, 0x59, 0x7a, 0x8e, 0xb2, 0xae, 0x8b, 0x77, 0x54, + 0x4a, 0x6e, 0x83, 0xa2, 0xb8, 0x9a, 0x80, 0x67, 0x47, 0x5d, 0x7b, 0x91, + 0xb4, 0xab, 0x88, 0x75, 0x52, 0x4d, 0x71, 0x85, 0xa5, 0xb7, 0x96, 0x7e, + 0x63, 0x47, 0x60, 0x7d, 0x94, 0xb6, 0xa8, 0x87, 0x73, 0x4f, 0x4f, 0x73, + 0x86, 0xa8, 0xb5, 0x93, 0x7d, 0x60, 0x47, 0x64, 0x7e, 0x97, 0xb7, 0xa5, + 0x85, 0x71, 0x4c, 0x52, 0x75, 0x88, 0xab, 0xb4, 0x90, 0x7b, 0x5d, 0x47, + 0x67, 0x80, 0x99, 0xb7, 0xa1, 0x83, 0x6e, 0x4b, 0x55, 0x78, 0x8b, 0xae, + 0xb1, 0x8d, 0x7a, 0x59, 0x49, 0x6b, 0x81, 0x9d, 0xb7, 0x9d, 0x81, 0x6b, + 0x49, 0x59, 0x7a, 0x8d, 0xb0, 0xaf, 0x8b, 0x78, 0x56, 0x4a, 0x6d, 0x83, + 0xa0, 0xb7, 0x9a, 0x80, 0x68, 0x49, 0x5c, 0x7b, 0x8f, 0xb2, 0xac, 0x89, + 0x76, 0x53, 0x4c, 0x70, 0x84, 0xa3, 0xb7, 0x98, 0x7f, 0x65, 0x47, 0x5f, + 0x7c, 0x92, 0xb4, 0xa9, 0x87, 0x74, 0x51, 0x4e, 0x72, 0x86, 0xa6, 0xb6, + 0x94, 0x7e, 0x62, 0x48, 0x63, 0x7e, 0x95, 0xb5, 0xa6, 0x85, 0x72, 0x4f, + 0x51, 0x75, 0x87, 0xa9, 0xb4, 0x91, 0x7c, 0x5f, 0x48, 0x66, 0x7f, 0x98, + 0xb7, 0xa2, 0x83, 0x70, 0x4c, 0x54, 0x77, 0x89, 0xac, 0xb2, 0x8f, 0x7b, + 0x5c, 0x49, 0x69, 0x80, 0x9b, 0xb7, 0x9f, 0x82, 0x6d, 0x4b, 0x58, 0x79, + 0x8b, 0xaf, 0xaf, 0x8c, 0x79, 0x59, 0x4a, 0x6c, 0x82, 0x9e, 0xb7, 0x9c, + 0x81, 0x6a, 0x4a, 0x5b, 0x7a, 0x8e, 0xb1, 0xad, 0x8a, 0x77, 0x56, 0x4c, + 0x6f, 0x83, 0xa1, 0xb6, 0x98, 0x7f, 0x67, 0x49, 0x5e, 0x7c, 0x90, 0xb2, + 0xa9, 0x88, 0x76, 0x53, 0x4e, 0x72, 0x84, 0xa4, 0xb5, 0x95, 0x7e, 0x64, + 0x48, 0x62, 0x7d, 0x93, 0xb4, 0xa6, 0x86, 0x74, 0x51, 0x51, 0x74, 0x86, + 0xa6, 0xb3, 0x92, 0x7d, 0x62, 0x49, 0x65, 0x7e, 0x95, 0xb4, 0xa3, 0x84, + 0x71, 0x4f, 0x54, 0x76, 0x88, 0xaa, 0xb1, 0x8f, 0x7c, 0x5e, 0x4a, 0x68, + 0x80, 0x99, 0xb5, 0xa0, 0x83, 0x6f, 0x4d, 0x57, 0x78, 0x8a, 0xac, 0xaf, + 0x8d, 0x7a, 0x5b, 0x4b, 0x6b, 0x81, 0x9c, 0xb6, 0x9c, 0x81, 0x6b, 0x4b, + 0x5a, 0x7a, 0x8d, 0xaf, 0xad, 0x8a, 0x78, 0x58, 0x4d, 0x6f, 0x83, 0x9f, + 0xb5, 0x99, 0x80, 0x69, 0x4b, 0x5e, 0x7c, 0x8f, 0xb0, 0xaa, 0x88, 0x76, + 0x55, 0x4f, 0x71, 0x84, 0xa2, 0xb4, 0x96, 0x7f, 0x66, 0x4a, 0x61, 0x7d, + 0x91, 0xb1, 0xa7, 0x87, 0x74, 0x53, 0x51, 0x73, 0x86, 0xa5, 0xb3, 0x94, + 0x7e, 0x63, 0x4a, 0x64, 0x7e, 0x94, 0xb3, 0xa4, 0x85, 0x73, 0x51, 0x54, + 0x75, 0x87, 0xa7, 0xb1, 0x91, 0x7c, 0x60, 0x4b, 0x67, 0x7f, 0x97, 0xb4, + 0xa1, 0x84, 0x70, 0x4f, 0x56, 0x77, 0x89, 0xaa, 0xaf, 0x8e, 0x7b, 0x5d, + 0x4c, 0x6a, 0x80, 0x99, 0xb4, 0x9d, 0x82, 0x6e, 0x4d, 0x5a, 0x79, 0x8b, + 0xad, 0xad, 0x8c, 0x79, 0x5a, 0x4d, 0x6d, 0x82, 0x9d, 0xb4, 0x9a, 0x81, + 0x6b, 0x4c, 0x5c, 0x7b, 0x8d, 0xaf, 0xaa, 0x89, 0x78, 0x57, 0x4f, 0x70, + 0x83, 0x9f, 0xb3, 0x97, 0x81, 0x68, 0x4c, 0x5f, 0x7c, 0x8f, 0xb1, 0xa7, + 0x88, 0x76, 0x54, 0x52, 0x72, 0x84, 0xa2, 0xb3, 0x93, 0x7f, 0x65, 0x4b, + 0x63, 0x7e, 0x92, 0xb3, 0xa5, 0x86, 0x74, 0x52, 0x53, 0x73, 0x86, 0xa5, + 0xb3, 0x93, 0x7e, 0x61, 0x4a, 0x65, 0x7f, 0x95, 0xb4, 0xa2, 0x84, 0x72, + 0x4f, 0x56, 0x76, 0x88, 0xa9, 0xb0, 0x8e, 0x7c, 0x5e, 0x4c, 0x6a, 0x80, + 0x98, 0xb3, 0x9e, 0x83, 0x6f, 0x4f, 0x59, 0x78, 0x8b, 0xaa, 0xaf, 0x8c, + 0x7a, 0x5c, 0x4d, 0x6d, 0x82, 0x9b, 0xb3, 0x9b, 0x81, 0x6c, 0x4e, 0x5b, + 0x7b, 0x8c, 0xad, 0xab, 0x89, 0x78, 0x5a, 0x4f, 0x6f, 0x83, 0x9f, 0xb3, + 0x99, 0x7e, 0x69, 0x4b, 0x5f, 0x7d, 0x8f, 0xb0, 0xa6, 0x89, 0x73, 0x58, + 0x4e, 0x75, 0x83, 0xa4, 0xae, 0x99, 0x7c, 0x6a, 0x48, 0x65, 0x7a, 0x94, + 0xab, 0x83, 0x77, 0x50, 0x78, 0x7f, 0xaf, 0x8f, 0x82, 0x5b, 0x66, 0x80, + 0x98, 0xa4, 0x7d, 0x72, 0x51, 0x80, 0x84, 0xb2, 0x86, 0x81, 0x50, 0x6f, + 0x7e, 0xa3, 0x9f, 0x7e, 0x68, 0x56, 0x82, 0x89, 0xb3, 0x7f, 0x7e, 0x4e, + 0x77, 0x7d, 0xac, 0x92, 0x81, 0x5f, 0x5f, 0x82, 0x93, 0xab, 0x7d, 0x77, + 0x4e, 0x80, 0x80, 0xb1, 0x88, 0x81, 0x56, 0x6a, 0x7f, 0x9e, 0xa2, 0x7d, + 0x6f, 0x52, 0x82, 0x86, 0xb1, 0x81, 0x7f, 0x4f, 0x75, 0x7e, 0xa8, 0x98, + 0x7f, 0x64, 0x5a, 0x83, 0x8f, 0xaf, 0x7e, 0x7a, 0x4b, 0x7c, 0x7f, 0xaf, + 0x8e, 0x81, 0x59, 0x65, 0x80, 0x98, 0xa8, 0x7d, 0x74, 0x50, 0x81, 0x82, + 0xb2, 0x84, 0x82, 0x52, 0x6f, 0x7e, 0xa2, 0x9d, 0x7e, 0x6b, 0x56, 0x82, + 0x89, 0xb0, 0x80, 0x7e, 0x4e, 0x78, 0x7d, 0xab, 0x93, 0x81, 0x60, 0x60, + 0x80, 0x93, 0xab, 0x7e, 0x79, 0x4e, 0x7e, 0x80, 0xb0, 0x89, 0x82, 0x56, + 0x6b, 0x7f, 0x9d, 0xa2, 0x7e, 0x6f, 0x53, 0x82, 0x85, 0xb2, 0x82, 0x81, + 0x50, 0x74, 0x7d, 0xa7, 0x98, 0x80, 0x65, 0x5a, 0x81, 0x8d, 0xaf, 0x7e, + 0x7d, 0x4d, 0x7c, 0x7e, 0xae, 0x8e, 0x82, 0x5b, 0x65, 0x80, 0x97, 0xa7, + 0x7e, 0x75, 0x50, 0x80, 0x81, 0xb2, 0x85, 0x82, 0x53, 0x6f, 0x7e, 0xa1, + 0x9d, 0x7f, 0x6b, 0x57, 0x82, 0x88, 0xb0, 0x80, 0x7f, 0x4f, 0x78, 0x7d, + 0xaa, 0x93, 0x81, 0x61, 0x5f, 0x81, 0x92, 0xab, 0x7e, 0x79, 0x4f, 0x7e, + 0x7f, 0xaf, 0x8a, 0x82, 0x58, 0x6a, 0x7f, 0x9c, 0xa2, 0x7e, 0x70, 0x53, + 0x81, 0x84, 0xb1, 0x83, 0x80, 0x51, 0x73, 0x7e, 0xa5, 0x98, 0x80, 0x66, + 0x5b, 0x81, 0x8c, 0xad, 0x7f, 0x7c, 0x4f, 0x7b, 0x7e, 0xad, 0x8e, 0x81, + 0x5c, 0x65, 0x80, 0x97, 0xa7, 0x7d, 0x75, 0x50, 0x80, 0x82, 0xb0, 0x86, + 0x81, 0x54, 0x6f, 0x7e, 0xa1, 0x9e, 0x7e, 0x6c, 0x56, 0x82, 0x88, 0xaf, + 0x80, 0x7e, 0x50, 0x77, 0x7e, 0xa9, 0x93, 0x80, 0x61, 0x60, 0x81, 0x92, + 0xaa, 0x7d, 0x79, 0x4f, 0x7e, 0x80, 0xaf, 0x89, 0x81, 0x58, 0x6a, 0x7f, + 0x9b, 0xa2, 0x7e, 0x70, 0x54, 0x81, 0x84, 0xb0, 0x82, 0x81, 0x52, 0x74, + 0x7e, 0xa4, 0x98, 0x80, 0x67, 0x5b, 0x81, 0x8c, 0xad, 0x7e, 0x7c, 0x4f, + 0x7b, 0x7e, 0xac, 0x8e, 0x81, 0x5d, 0x65, 0x80, 0x96, 0xa6, 0x7e, 0x75, + 0x51, 0x80, 0x82, 0xb0, 0x86, 0x81, 0x55, 0x6f, 0x7e, 0xa0, 0x9d, 0x7e, + 0x6c, 0x57, 0x82, 0x88, 0xaf, 0x81, 0x7f, 0x51, 0x77, 0x7d, 0xa8, 0x93, + 0x81, 0x62, 0x5f, 0x81, 0x90, 0xaa, 0x7e, 0x79, 0x50, 0x7e, 0x7f, 0xad, + 0x8a, 0x82, 0x5a, 0x6a, 0x7f, 0x9a, 0xa2, 0x7e, 0x71, 0x54, 0x81, 0x84, + 0xaf, 0x83, 0x80, 0x53, 0x73, 0x7e, 0xa4, 0x98, 0x7f, 0x68, 0x5b, 0x81, + 0x8b, 0xad, 0x7f, 0x7d, 0x50, 0x7a, 0x7e, 0xab, 0x8f, 0x81, 0x5e, 0x64, + 0x80, 0x95, 0xa6, 0x7d, 0x76, 0x52, 0x80, 0x81, 0xae, 0x86, 0x81, 0x56, + 0x6f, 0x7e, 0x9f, 0x9d, 0x7e, 0x6d, 0x57, 0x82, 0x87, 0xae, 0x80, 0x7f, + 0x51, 0x77, 0x7d, 0xa7, 0x93, 0x80, 0x64, 0x60, 0x81, 0x8f, 0xaa, 0x7e, + 0x7a, 0x51, 0x7e, 0x7f, 0xad, 0x8a, 0x81, 0x5a, 0x69, 0x7f, 0x99, 0xa2, + 0x7e, 0x72, 0x54, 0x81, 0x84, 0xae, 0x83, 0x81, 0x54, 0x73, 0x7e, 0xa2, + 0x98, 0x7f, 0x69, 0x5c, 0x81, 0x8a, 0xac, 0x7f, 0x7e, 0x52, 0x7b, 0x7d, + 0xa9, 0x8e, 0x82, 0x5f, 0x65, 0x80, 0x94, 0xa6, 0x7e, 0x77, 0x53, 0x7f, + 0x80, 0xae, 0x86, 0x82, 0x57, 0x6f, 0x7e, 0x9d, 0x9c, 0x7f, 0x6e, 0x58, + 0x82, 0x86, 0xad, 0x80, 0x80, 0x53, 0x77, 0x7d, 0xa6, 0x93, 0x81, 0x64, + 0x60, 0x81, 0x8f, 0xa9, 0x7e, 0x7a, 0x52, 0x7e, 0x7f, 0xac, 0x8a, 0x82, + 0x5b, 0x6a, 0x7f, 0x98, 0xa1, 0x7e, 0x72, 0x55, 0x81, 0x83, 0xae, 0x83, + 0x81, 0x54, 0x74, 0x7d, 0xa2, 0x97, 0x80, 0x69, 0x5c, 0x81, 0x8a, 0xab, + 0x7f, 0x7e, 0x52, 0x7b, 0x7e, 0xa9, 0x8e, 0x81, 0x60, 0x65, 0x80, 0x93, + 0xa5, 0x7e, 0x77, 0x53, 0x80, 0x80, 0xad, 0x86, 0x82, 0x58, 0x6f, 0x7e, + 0x9d, 0x9d, 0x7e, 0x6e, 0x58, 0x82, 0x86, 0xad, 0x80, 0x80, 0x53, 0x78, + 0x7d, 0xa5, 0x93, 0x80, 0x65, 0x61, 0x81, 0x8e, 0xa9, 0x7e, 0x7b, 0x52, + 0x7e, 0x7f, 0xab, 0x8a, 0x82, 0x5c, 0x6a, 0x7f, 0x98, 0xa1, 0x7e, 0x73, + 0x55, 0x81, 0x83, 0xad, 0x83, 0x81, 0x55, 0x73, 0x7e, 0xa1, 0x98, 0x7f, + 0x6a, 0x5c, 0x81, 0x8a, 0xab, 0x7f, 0x7e, 0x53, 0x7a, 0x7e, 0xa8, 0x8f, + 0x81, 0x61, 0x65, 0x80, 0x93, 0xa5, 0x7e, 0x77, 0x53, 0x7f, 0x80, 0xac, + 0x87, 0x82, 0x59, 0x6e, 0x7e, 0x9c, 0x9d, 0x7f, 0x6f, 0x58, 0x81, 0x86, + 0xad, 0x81, 0x80, 0x54, 0x77, 0x7e, 0xa4, 0x93, 0x80, 0x66, 0x60, 0x81, + 0x8e, 0xa8, 0x7e, 0x7b, 0x53, 0x7d, 0x7f, 0xaa, 0x8a, 0x81, 0x5d, 0x6a, + 0x7f, 0x97, 0xa1, 0x7e, 0x74, 0x56, 0x81, 0x83, 0xac, 0x83, 0x81, 0x56, + 0x73, 0x7e, 0xa0, 0x98, 0x7f, 0x6b, 0x5c, 0x81, 0x89, 0xaa, 0x7f, 0x7e, + 0x53, 0x7b, 0x7e, 0xa7, 0x8e, 0x81, 0x62, 0x65, 0x80, 0x92, 0xa5, 0x7e, + 0x78, 0x54, 0x7f, 0x80, 0xac, 0x87, 0x82, 0x5a, 0x6e, 0x7e, 0x9b, 0x9d, + 0x7e, 0x70, 0x58, 0x81, 0x85, 0xac, 0x81, 0x80, 0x54, 0x76, 0x7e, 0xa4, + 0x94, 0x80, 0x66, 0x60, 0x81, 0x8d, 0xa8, 0x7e, 0x7b, 0x53, 0x7d, 0x7f, + 0xaa, 0x8b, 0x81, 0x5d, 0x69, 0x80, 0x96, 0xa1, 0x7d, 0x74, 0x56, 0x81, + 0x83, 0xab, 0x83, 0x81, 0x57, 0x73, 0x7e, 0x9f, 0x98, 0x7f, 0x6c, 0x5d, + 0x81, 0x88, 0xaa, 0x7f, 0x7e, 0x54, 0x7a, 0x7e, 0xa6, 0x8e, 0x81, 0x63, + 0x65, 0x80, 0x91, 0xa4, 0x7d, 0x78, 0x55, 0x7f, 0x80, 0xaa, 0x86, 0x82, + 0x5b, 0x6e, 0x7e, 0x9a, 0x9c, 0x7f, 0x70, 0x5a, 0x81, 0x85, 0xaa, 0x81, + 0x80, 0x56, 0x77, 0x7d, 0xa2, 0x93, 0x80, 0x67, 0x61, 0x81, 0x8d, 0xa7, + 0x7e, 0x7c, 0x54, 0x7d, 0x7e, 0xa9, 0x8b, 0x81, 0x5f, 0x69, 0x7f, 0x96, + 0xa0, 0x7e, 0x75, 0x57, 0x80, 0x82, 0xaa, 0x84, 0x81, 0x59, 0x73, 0x7d, + 0x9e, 0x97, 0x80, 0x6d, 0x5d, 0x81, 0x88, 0xa9, 0x7f, 0x7e, 0x55, 0x7a, + 0x7e, 0xa5, 0x8e, 0x81, 0x63, 0x66, 0x80, 0x91, 0xa4, 0x7e, 0x79, 0x55, + 0x7f, 0x80, 0xaa, 0x87, 0x82, 0x5b, 0x6e, 0x7f, 0x9a, 0x9c, 0x7e, 0x71, + 0x5a, 0x81, 0x85, 0xaa, 0x81, 0x80, 0x57, 0x76, 0x7d, 0xa2, 0x93, 0x80, + 0x68, 0x61, 0x81, 0x8c, 0xa7, 0x7e, 0x7c, 0x55, 0x7d, 0x7f, 0xa7, 0x8a, + 0x81, 0x5f, 0x6a, 0x80, 0x95, 0xa0, 0x7d, 0x75, 0x58, 0x81, 0x82, 0xaa, + 0x84, 0x81, 0x59, 0x72, 0x7e, 0x9d, 0x98, 0x7f, 0x6d, 0x5d, 0x81, 0x88, + 0xa9, 0x7f, 0x7e, 0x56, 0x7a, 0x7e, 0xa5, 0x8f, 0x80, 0x64, 0x65, 0x81, + 0x90, 0xa4, 0x7e, 0x79, 0x56, 0x7f, 0x80, 0xa9, 0x87, 0x81, 0x5d, 0x6e, + 0x7f, 0x99, 0x9c, 0x7e, 0x71, 0x5a, 0x81, 0x85, 0xa9, 0x81, 0x80, 0x58, + 0x76, 0x7e, 0xa1, 0x93, 0x80, 0x69, 0x61, 0x81, 0x8b, 0xa6, 0x7e, 0x7c, + 0x56, 0x7c, 0x7e, 0xa6, 0x8b, 0x81, 0x61, 0x6a, 0x80, 0x94, 0xa0, 0x7e, + 0x76, 0x58, 0x80, 0x82, 0xa9, 0x84, 0x81, 0x5a, 0x72, 0x7e, 0x9c, 0x98, + 0x7f, 0x6e, 0x5e, 0x81, 0x87, 0xa8, 0x80, 0x7f, 0x57, 0x79, 0x7e, 0xa3, + 0x8f, 0x81, 0x65, 0x65, 0x81, 0x8f, 0xa3, 0x7e, 0x7a, 0x57, 0x7f, 0x7f, + 0xa7, 0x87, 0x82, 0x5e, 0x6e, 0x7e, 0x97, 0x9c, 0x7e, 0x73, 0x5b, 0x81, + 0x83, 0xa9, 0x82, 0x81, 0x58, 0x76, 0x7d, 0xa0, 0x93, 0x80, 0x6a, 0x61, + 0x81, 0x8a, 0xa6, 0x7e, 0x7d, 0x57, 0x7c, 0x7e, 0xa6, 0x8b, 0x82, 0x62, + 0x6a, 0x80, 0x93, 0xa0, 0x7d, 0x76, 0x59, 0x81, 0x81, 0xa8, 0x84, 0x81, + 0x5b, 0x72, 0x7e, 0x9c, 0x98, 0x7e, 0x6e, 0x5e, 0x82, 0x87, 0xa7, 0x7f, + 0x7f, 0x58, 0x7a, 0x7e, 0xa2, 0x8f, 0x80, 0x66, 0x66, 0x81, 0x8f, 0xa3, + 0x7e, 0x7a, 0x57, 0x7f, 0x7f, 0xa7, 0x87, 0x81, 0x5e, 0x6e, 0x7f, 0x97, + 0x9c, 0x7e, 0x73, 0x5b, 0x81, 0x84, 0xa8, 0x82, 0x80, 0x59, 0x76, 0x7e, + 0x9f, 0x93, 0x80, 0x6a, 0x62, 0x81, 0x8a, 0xa5, 0x7e, 0x7d, 0x58, 0x7d, + 0x7e, 0xa5, 0x8b, 0x81, 0x63, 0x6a, 0x80, 0x92, 0x9f, 0x7e, 0x77, 0x59, + 0x80, 0x81, 0xa8, 0x84, 0x81, 0x5c, 0x72, 0x7e, 0x9b, 0x97, 0x7f, 0x6f, + 0x5e, 0x81, 0x86, 0xa7, 0x80, 0x7f, 0x58, 0x7a, 0x7d, 0xa2, 0x8f, 0x80, + 0x67, 0x66, 0x81, 0x8e, 0xa2, 0x7e, 0x7b, 0x58, 0x7f, 0x7f, 0xa6, 0x87, + 0x81, 0x5f, 0x6e, 0x7f, 0x96, 0x9c, 0x7e, 0x73, 0x5b, 0x81, 0x83, 0xa8, + 0x82, 0x80, 0x5a, 0x76, 0x7e, 0x9e, 0x94, 0x80, 0x6b, 0x62, 0x81, 0x8a, + 0xa5, 0x7f, 0x7d, 0x58, 0x7c, 0x7e, 0xa4, 0x8b, 0x81, 0x63, 0x6a, 0x80, + 0x91, 0xa0, 0x7e, 0x77, 0x5a, 0x80, 0x81, 0xa7, 0x84, 0x81, 0x5d, 0x72, + 0x7e, 0x99, 0x97, 0x7f, 0x70, 0x5f, 0x81, 0x86, 0xa6, 0x80, 0x7f, 0x59, + 0x79, 0x7e, 0xa1, 0x8f, 0x80, 0x68, 0x66, 0x81, 0x8d, 0xa2, 0x7e, 0x7b, + 0x59, 0x7e, 0x7f, 0xa6, 0x87, 0x81, 0x60, 0x6e, 0x7f, 0x96, 0x9b, 0x7e, + 0x74, 0x5c, 0x81, 0x83, 0xa7, 0x81, 0x80, 0x5b, 0x76, 0x7e, 0x9d, 0x93, + 0x7f, 0x6c, 0x62, 0x81, 0x89, 0xa4, 0x7e, 0x7d, 0x59, 0x7c, 0x7e, 0xa3, + 0x8b, 0x81, 0x64, 0x6a, 0x80, 0x91, 0x9f, 0x7e, 0x78, 0x5a, 0x80, 0x81, + 0xa6, 0x84, 0x81, 0x5d, 0x72, 0x7e, 0x99, 0x97, 0x7f, 0x70, 0x5f, 0x81, + 0x86, 0xa6, 0x80, 0x7f, 0x5a, 0x79, 0x7e, 0xa0, 0x8f, 0x80, 0x68, 0x66, + 0x80, 0x8d, 0xa1, 0x7e, 0x7b, 0x5a, 0x7e, 0x7f, 0xa4, 0x87, 0x81, 0x61, + 0x6e, 0x7f, 0x95, 0x9b, 0x7e, 0x74, 0x5c, 0x81, 0x83, 0xa6, 0x82, 0x80, + 0x5c, 0x76, 0x7e, 0x9c, 0x93, 0x80, 0x6d, 0x62, 0x81, 0x89, 0xa4, 0x7f, + 0x7e, 0x5a, 0x7c, 0x7e, 0xa2, 0x8b, 0x81, 0x65, 0x6a, 0x80, 0x90, 0x9f, + 0x7e, 0x78, 0x5b, 0x7f, 0x81, 0xa5, 0x85, 0x81, 0x5e, 0x72, 0x7f, 0x99, + 0x97, 0x7e, 0x71, 0x5f, 0x81, 0x86, 0xa5, 0x80, 0x7f, 0x5b, 0x79, 0x7e, + 0x9f, 0x8f, 0x80, 0x69, 0x66, 0x81, 0x8c, 0xa1, 0x7e, 0x7b, 0x5a, 0x7e, + 0x7f, 0xa4, 0x88, 0x81, 0x62, 0x6e, 0x7f, 0x94, 0x9b, 0x7e, 0x75, 0x5d, + 0x81, 0x83, 0xa5, 0x82, 0x81, 0x5d, 0x76, 0x7e, 0x9c, 0x93, 0x7f, 0x6d, + 0x63, 0x81, 0x88, 0xa3, 0x7f, 0x7e, 0x5a, 0x7c, 0x7e, 0xa2, 0x8b, 0x81, + 0x65, 0x6a, 0x80, 0x90, 0x9e, 0x7e, 0x78, 0x5b, 0x7f, 0x80, 0xa5, 0x85, + 0x81, 0x5f, 0x72, 0x7e, 0x98, 0x97, 0x7f, 0x71, 0x60, 0x81, 0x85, 0xa4, + 0x81, 0x7f, 0x5b, 0x79, 0x7d, 0x9f, 0x8f, 0x80, 0x69, 0x66, 0x80, 0x8c, + 0xa1, 0x7e, 0x7c, 0x5b, 0x7e, 0x7f, 0xa3, 0x88, 0x81, 0x63, 0x6e, 0x7f, + 0x93, 0x9a, 0x7e, 0x75, 0x5e, 0x80, 0x82, 0xa4, 0x82, 0x81, 0x5d, 0x76, + 0x7e, 0x9b, 0x93, 0x80, 0x6e, 0x63, 0x81, 0x88, 0xa2, 0x7f, 0x7e, 0x5b, + 0x7c, 0x7e, 0xa1, 0x8b, 0x81, 0x66, 0x6a, 0x80, 0x8f, 0x9e, 0x7e, 0x79, + 0x5c, 0x7f, 0x80, 0xa4, 0x85, 0x81, 0x60, 0x72, 0x7f, 0x97, 0x97, 0x7f, + 0x72, 0x60, 0x81, 0x85, 0xa3, 0x81, 0x80, 0x5c, 0x79, 0x7e, 0x9d, 0x8f, + 0x80, 0x6a, 0x67, 0x81, 0x8b, 0xa0, 0x7e, 0x7c, 0x5b, 0x7e, 0x7f, 0xa2, + 0x88, 0x81, 0x63, 0x6e, 0x7f, 0x92, 0x9a, 0x7e, 0x76, 0x5e, 0x80, 0x82, + 0xa4, 0x82, 0x81, 0x5e, 0x75, 0x7e, 0x9a, 0x93, 0x7f, 0x6f, 0x63, 0x81, + 0x88, 0xa2, 0x7f, 0x7e, 0x5c, 0x7b, 0x7e, 0xa0, 0x8b, 0x81, 0x67, 0x6a, + 0x80, 0x8e, 0x9d, 0x7e, 0x79, 0x5d, 0x7f, 0x80, 0xa3, 0x85, 0x81, 0x61, + 0x72, 0x7f, 0x96, 0x97, 0x7f, 0x73, 0x61, 0x81, 0x84, 0xa3, 0x80, 0x80, + 0x5d, 0x78, 0x7e, 0x9c, 0x8f, 0x80, 0x6c, 0x67, 0x81, 0x8b, 0x9f, 0x7e, + 0x7c, 0x5c, 0x7e, 0x7f, 0xa1, 0x88, 0x81, 0x64, 0x6e, 0x7f, 0x92, 0x9a, + 0x7e, 0x76, 0x5f, 0x80, 0x82, 0xa3, 0x82, 0x81, 0x5f, 0x75, 0x7e, 0x99, + 0x93, 0x7f, 0x6f, 0x64, 0x81, 0x87, 0xa1, 0x7f, 0x7e, 0x5d, 0x7b, 0x7e, + 0x9e, 0x8b, 0x80, 0x68, 0x6b, 0x80, 0x8e, 0x9d, 0x7e, 0x7a, 0x5d, 0x7f, + 0x80, 0xa2, 0x85, 0x81, 0x62, 0x72, 0x7f, 0x95, 0x97, 0x7e, 0x73, 0x61, + 0x81, 0x84, 0xa2, 0x80, 0x80, 0x5e, 0x79, 0x7e, 0x9b, 0x8f, 0x80, 0x6c, + 0x67, 0x81, 0x8a, 0x9f, 0x7e, 0x7c, 0x5d, 0x7e, 0x7f, 0xa0, 0x88, 0x81, + 0x65, 0x6e, 0x80, 0x91, 0x9a, 0x7e, 0x77, 0x5f, 0x80, 0x81, 0xa2, 0x83, + 0x81, 0x60, 0x75, 0x7e, 0x98, 0x93, 0x7f, 0x70, 0x64, 0x81, 0x87, 0xa1, + 0x7f, 0x7f, 0x5d, 0x7b, 0x7e, 0x9e, 0x8b, 0x81, 0x69, 0x6a, 0x80, 0x8d, + 0x9d, 0x7e, 0x7a, 0x5e, 0x80, 0x7f, 0xa1, 0x85, 0x81, 0x63, 0x72, 0x7f, + 0x94, 0x96, 0x7e, 0x74, 0x61, 0x81, 0x84, 0xa1, 0x81, 0x80, 0x5f, 0x78, + 0x7e, 0x9b, 0x8f, 0x80, 0x6d, 0x67, 0x80, 0x89, 0x9f, 0x7f, 0x7d, 0x5e, + 0x7d, 0x7e, 0x9f, 0x88, 0x81, 0x66, 0x6e, 0x7f, 0x90, 0x9a, 0x7e, 0x77, + 0x5f, 0x80, 0x81, 0xa2, 0x83, 0x81, 0x61, 0x75, 0x7e, 0x97, 0x93, 0x7f, + 0x71, 0x64, 0x81, 0x86, 0xa0, 0x7f, 0x7e, 0x5e, 0x7b, 0x7e, 0x9d, 0x8c, + 0x80, 0x6a, 0x6b, 0x80, 0x8d, 0x9c, 0x7e, 0x7a, 0x5f, 0x7f, 0x80, 0xa0, + 0x85, 0x81, 0x64, 0x72, 0x7f, 0x93, 0x96, 0x7f, 0x74, 0x62, 0x81, 0x83, + 0xa0, 0x81, 0x80, 0x60, 0x78, 0x7e, 0x9a, 0x8f, 0x80, 0x6d, 0x68, 0x80, + 0x89, 0x9e, 0x7f, 0x7d, 0x5e, 0x7d, 0x7f, 0x9f, 0x88, 0x81, 0x67, 0x6e, + 0x7f, 0x90, 0x99, 0x7e, 0x77, 0x60, 0x80, 0x81, 0xa1, 0x83, 0x80, 0x62, + 0x75, 0x7e, 0x97, 0x92, 0x7f, 0x71, 0x65, 0x81, 0x86, 0x9f, 0x80, 0x7f, + 0x5f, 0x7b, 0x7e, 0x9c, 0x8c, 0x80, 0x6a, 0x6b, 0x80, 0x8c, 0x9c, 0x7e, + 0x7a, 0x5f, 0x7f, 0x80, 0x9f, 0x85, 0x81, 0x65, 0x72, 0x7f, 0x93, 0x96, + 0x7e, 0x75, 0x62, 0x81, 0x83, 0xa0, 0x81, 0x80, 0x61, 0x78, 0x7e, 0x99, + 0x8f, 0x80, 0x6e, 0x68, 0x81, 0x89, 0x9d, 0x7f, 0x7d, 0x5f, 0x7d, 0x7f, + 0x9e, 0x88, 0x81, 0x68, 0x6f, 0x80, 0x8f, 0x99, 0x7e, 0x78, 0x61, 0x80, + 0x81, 0x9f, 0x83, 0x81, 0x63, 0x75, 0x7e, 0x96, 0x92, 0x7f, 0x72, 0x65, + 0x81, 0x85, 0x9f, 0x80, 0x7f, 0x60, 0x7b, 0x7e, 0x9b, 0x8c, 0x80, 0x6b, + 0x6b, 0x80, 0x8c, 0x9b, 0x7e, 0x7b, 0x60, 0x7f, 0x80, 0x9f, 0x86, 0x81, + 0x65, 0x72, 0x7f, 0x92, 0x96, 0x7f, 0x75, 0x63, 0x81, 0x83, 0x9f, 0x81, + 0x80, 0x61, 0x78, 0x7e, 0x98, 0x8f, 0x80, 0x6f, 0x68, 0x80, 0x88, 0x9d, + 0x7f, 0x7d, 0x60, 0x7d, 0x7e, 0x9d, 0x88, 0x81, 0x68, 0x6e, 0x80, 0x8f, + 0x98, 0x7e, 0x78, 0x61, 0x80, 0x81, 0x9f, 0x83, 0x81, 0x63, 0x75, 0x7e, + 0x95, 0x92, 0x7f, 0x72, 0x65, 0x81, 0x85, 0x9e, 0x7f, 0x7f, 0x60, 0x7b, + 0x7e, 0x9b, 0x8b, 0x80, 0x6c, 0x6b, 0x81, 0x8b, 0x9b, 0x7e, 0x7b, 0x60, + 0x7f, 0x80, 0x9e, 0x86, 0x81, 0x66, 0x72, 0x7f, 0x92, 0x95, 0x7e, 0x76, + 0x63, 0x81, 0x83, 0x9f, 0x81, 0x80, 0x62, 0x78, 0x7e, 0x98, 0x8f, 0x7f, + 0x70, 0x68, 0x81, 0x88, 0x9c, 0x7e, 0x7d, 0x61, 0x7d, 0x7f, 0x9c, 0x88, + 0x81, 0x69, 0x6f, 0x80, 0x8e, 0x98, 0x7e, 0x79, 0x62, 0x80, 0x81, 0x9e, + 0x83, 0x81, 0x64, 0x75, 0x7e, 0x94, 0x92, 0x7f, 0x73, 0x66, 0x81, 0x85, + 0x9e, 0x80, 0x7f, 0x61, 0x7b, 0x7e, 0x9a, 0x8b, 0x80, 0x6c, 0x6c, 0x80, + 0x8a, 0x9a, 0x7e, 0x7c, 0x61, 0x7f, 0x7f, 0x9d, 0x86, 0x81, 0x67, 0x72, + 0x7f, 0x91, 0x95, 0x7e, 0x76, 0x64, 0x81, 0x82, 0x9e, 0x81, 0x80, 0x63, + 0x78, 0x7e, 0x97, 0x8f, 0x80, 0x70, 0x69, 0x81, 0x87, 0x9c, 0x7f, 0x7e, + 0x61, 0x7d, 0x7e, 0x9c, 0x88, 0x81, 0x6a, 0x6f, 0x80, 0x8d, 0x98, 0x7e, + 0x79, 0x63, 0x80, 0x80, 0x9d, 0x83, 0x81, 0x65, 0x75, 0x7e, 0x93, 0x92, + 0x7f, 0x73, 0x67, 0x81, 0x84, 0x9d, 0x80, 0x7f, 0x62, 0x7b, 0x7e, 0x99, + 0x8b, 0x80, 0x6d, 0x6c, 0x80, 0x8a, 0x9a, 0x7e, 0x7c, 0x62, 0x7f, 0x7f, + 0x9c, 0x86, 0x81, 0x68, 0x72, 0x7f, 0x90, 0x94, 0x7f, 0x77, 0x65, 0x80, + 0x82, 0x9d, 0x81, 0x80, 0x64, 0x78, 0x7e, 0x96, 0x8f, 0x80, 0x70, 0x69, + 0x81, 0x87, 0x9b, 0x7f, 0x7e, 0x62, 0x7d, 0x7f, 0x9a, 0x88, 0x80, 0x6b, + 0x6f, 0x80, 0x8d, 0x97, 0x7e, 0x7a, 0x63, 0x80, 0x80, 0x9d, 0x83, 0x81, + 0x66, 0x75, 0x7e, 0x93, 0x92, 0x7f, 0x74, 0x67, 0x81, 0x84, 0x9c, 0x80, + 0x7f, 0x63, 0x7b, 0x7e, 0x98, 0x8b, 0x80, 0x6e, 0x6c, 0x80, 0x8a, 0x9a, + 0x7e, 0x7c, 0x62, 0x7e, 0x7f, 0x9c, 0x86, 0x81, 0x68, 0x72, 0x7f, 0x90, + 0x94, 0x7f, 0x77, 0x65, 0x80, 0x82, 0x9d, 0x81, 0x80, 0x64, 0x78, 0x7e, + 0x96, 0x8f, 0x80, 0x71, 0x69, 0x80, 0x87, 0x9b, 0x7f, 0x7e, 0x63, 0x7d, + 0x7e, 0x9a, 0x88, 0x81, 0x6b, 0x6f, 0x80, 0x8c, 0x97, 0x7e, 0x7a, 0x64, + 0x80, 0x80, 0x9c, 0x83, 0x81, 0x66, 0x75, 0x7e, 0x92, 0x91, 0x7f, 0x74, + 0x67, 0x81, 0x84, 0x9c, 0x80, 0x7f, 0x64, 0x7b, 0x7e, 0x97, 0x8b, 0x80, + 0x6f, 0x6c, 0x80, 0x89, 0x99, 0x7e, 0x7c, 0x63, 0x7e, 0x7f, 0x9b, 0x86, + 0x81, 0x69, 0x72, 0x7f, 0x8f, 0x94, 0x7e, 0x77, 0x65, 0x80, 0x82, 0x9c, + 0x82, 0x80, 0x65, 0x78, 0x7e, 0x95, 0x8f, 0x7f, 0x72, 0x6a, 0x81, 0x86, + 0x9a, 0x7f, 0x7e, 0x64, 0x7d, 0x7f, 0x99, 0x88, 0x80, 0x6c, 0x6f, 0x80, + 0x8c, 0x97, 0x7e, 0x7a, 0x64, 0x80, 0x80, 0x9b, 0x84, 0x81, 0x67, 0x75, + 0x7f, 0x91, 0x91, 0x7f, 0x75, 0x67, 0x81, 0x84, 0x9b, 0x80, 0x7f, 0x64, + 0x7a, 0x7e, 0x97, 0x8b, 0x80, 0x6f, 0x6c, 0x80, 0x89, 0x98, 0x7e, 0x7c, + 0x64, 0x7e, 0x7f, 0x9a, 0x86, 0x81, 0x6a, 0x72, 0x7f, 0x8e, 0x94, 0x7e, + 0x78, 0x66, 0x80, 0x81, 0x9b, 0x81, 0x80, 0x66, 0x78, 0x7e, 0x94, 0x8e, + 0x7f, 0x73, 0x6a, 0x81, 0x86, 0x9a, 0x7f, 0x7e, 0x64, 0x7c, 0x7f, 0x98, + 0x88, 0x80, 0x6d, 0x70, 0x80, 0x8b, 0x96, 0x7e, 0x7a, 0x65, 0x7f, 0x80, + 0x9a, 0x84, 0x81, 0x68, 0x75, 0x7f, 0x91, 0x91, 0x7f, 0x76, 0x68, 0x81, + 0x83, 0x9a, 0x80, 0x7f, 0x65, 0x7a, 0x7e, 0x96, 0x8b, 0x80, 0x70, 0x6d, + 0x80, 0x88, 0x98, 0x7f, 0x7d, 0x65, 0x7e, 0x7f, 0x99, 0x86, 0x80, 0x6b, + 0x73, 0x7f, 0x8e, 0x93, 0x7e, 0x78, 0x67, 0x80, 0x82, 0x9a, 0x82, 0x80, + 0x67, 0x78, 0x7e, 0x93, 0x8e, 0x7f, 0x73, 0x6b, 0x80, 0x86, 0x99, 0x7f, + 0x7e, 0x65, 0x7c, 0x7e, 0x97, 0x89, 0x80, 0x6d, 0x70, 0x80, 0x8b, 0x96, + 0x7f, 0x7b, 0x66, 0x7f, 0x80, 0x9a, 0x84, 0x81, 0x69, 0x75, 0x7f, 0x90, + 0x91, 0x7f, 0x76, 0x69, 0x80, 0x83, 0x9a, 0x80, 0x80, 0x66, 0x7a, 0x7e, + 0x95, 0x8b, 0x80, 0x70, 0x6d, 0x80, 0x88, 0x98, 0x7f, 0x7d, 0x65, 0x7e, + 0x7f, 0x98, 0x86, 0x81, 0x6b, 0x72, 0x7f, 0x8d, 0x93, 0x7f, 0x79, 0x67, + 0x80, 0x81, 0x9a, 0x82, 0x80, 0x67, 0x78, 0x7f, 0x92, 0x8e, 0x7f, 0x73, + 0x6b, 0x81, 0x85, 0x98, 0x7f, 0x7f, 0x66, 0x7c, 0x7e, 0x96, 0x88, 0x80, + 0x6e, 0x70, 0x80, 0x8a, 0x95, 0x7e, 0x7b, 0x66, 0x7f, 0x80, 0x99, 0x84, + 0x81, 0x6a, 0x75, 0x7f, 0x8f, 0x90, 0x7f, 0x76, 0x69, 0x80, 0x83, 0x99, + 0x80, 0x7f, 0x67, 0x7a, 0x7f, 0x94, 0x8b, 0x80, 0x71, 0x6e, 0x80, 0x87, + 0x97, 0x7f, 0x7d, 0x66, 0x7e, 0x7f, 0x98, 0x86, 0x80, 0x6c, 0x73, 0x80, + 0x8d, 0x93, 0x7e, 0x79, 0x68, 0x80, 0x81, 0x99, 0x82, 0x80, 0x68, 0x78, + 0x7f, 0x92, 0x8e, 0x7f, 0x74, 0x6b, 0x81, 0x85, 0x98, 0x7f, 0x7e, 0x67, + 0x7c, 0x7f, 0x96, 0x88, 0x80, 0x6f, 0x70, 0x80, 0x8a, 0x95, 0x7e, 0x7b, + 0x67, 0x7f, 0x80, 0x98, 0x84, 0x80, 0x6a, 0x76, 0x7f, 0x8f, 0x90, 0x7f, + 0x77, 0x6a, 0x81, 0x83, 0x98, 0x80, 0x80, 0x68, 0x7a, 0x7e, 0x93, 0x8b, + 0x80, 0x72, 0x6e, 0x80, 0x87, 0x96, 0x7f, 0x7d, 0x67, 0x7e, 0x7f, 0x97, + 0x86, 0x80, 0x6d, 0x73, 0x80, 0x8c, 0x92, 0x7e, 0x7a, 0x68, 0x80, 0x81, + 0x98, 0x82, 0x80, 0x69, 0x78, 0x7f, 0x91, 0x8d, 0x7f, 0x75, 0x6c, 0x81, + 0x84, 0x97, 0x7f, 0x7f, 0x68, 0x7d, 0x7e, 0x95, 0x88, 0x80, 0x70, 0x71, + 0x80, 0x89, 0x94, 0x7e, 0x7c, 0x68, 0x7f, 0x80, 0x97, 0x84, 0x81, 0x6b, + 0x76, 0x7f, 0x8e, 0x90, 0x7f, 0x77, 0x6a, 0x80, 0x82, 0x97, 0x81, 0x80, + 0x68, 0x7a, 0x7e, 0x93, 0x8b, 0x80, 0x73, 0x6e, 0x80, 0x86, 0x96, 0x7f, + 0x7d, 0x68, 0x7e, 0x7f, 0x96, 0x86, 0x80, 0x6e, 0x73, 0x80, 0x8b, 0x92, + 0x7e, 0x7a, 0x69, 0x80, 0x81, 0x97, 0x82, 0x80, 0x6a, 0x78, 0x7f, 0x90, + 0x8d, 0x7f, 0x75, 0x6c, 0x81, 0x84, 0x96, 0x80, 0x7f, 0x68, 0x7c, 0x7f, + 0x94, 0x88, 0x80, 0x71, 0x71, 0x80, 0x88, 0x94, 0x7f, 0x7c, 0x69, 0x7f, + 0x80, 0x96, 0x84, 0x81, 0x6c, 0x76, 0x7f, 0x8d, 0x90, 0x7f, 0x78, 0x6b, + 0x80, 0x82, 0x97, 0x81, 0x80, 0x69, 0x7a, 0x7f, 0x92, 0x8b, 0x80, 0x73, + 0x6f, 0x80, 0x86, 0x95, 0x7f, 0x7e, 0x68, 0x7e, 0x7f, 0x95, 0x86, 0x80, + 0x6f, 0x73, 0x80, 0x8b, 0x91, 0x7f, 0x7a, 0x6a, 0x80, 0x81, 0x97, 0x82, + 0x80, 0x6b, 0x78, 0x7f, 0x90, 0x8d, 0x7f, 0x76, 0x6c, 0x81, 0x84, 0x96, + 0x7f, 0x7f, 0x69, 0x7c, 0x7f, 0x93, 0x88, 0x80, 0x71, 0x71, 0x80, 0x88, + 0x93, 0x7e, 0x7c, 0x69, 0x7f, 0x7f, 0x96, 0x84, 0x80, 0x6d, 0x76, 0x7f, + 0x8d, 0x8f, 0x7f, 0x78, 0x6b, 0x80, 0x82, 0x96, 0x81, 0x80, 0x6a, 0x7a, + 0x7f, 0x91, 0x8a, 0x80, 0x74, 0x6f, 0x80, 0x86, 0x94, 0x7f, 0x7e, 0x69, + 0x7e, 0x7f, 0x94, 0x86, 0x80, 0x6f, 0x73, 0x80, 0x8a, 0x91, 0x7f, 0x7a, + 0x6a, 0x80, 0x80, 0x96, 0x82, 0x80, 0x6b, 0x78, 0x7f, 0x8f, 0x8d, 0x7f, + 0x76, 0x6d, 0x80, 0x84, 0x95, 0x80, 0x7f, 0x69, 0x7c, 0x7f, 0x93, 0x88, + 0x80, 0x72, 0x71, 0x80, 0x88, 0x93, 0x7f, 0x7c, 0x6a, 0x7f, 0x7f, 0x95, + 0x84, 0x81, 0x6e, 0x76, 0x7f, 0x8c, 0x8f, 0x7f, 0x79, 0x6c, 0x80, 0x82, + 0x95, 0x81, 0x80, 0x6b, 0x7a, 0x7f, 0x90, 0x8a, 0x7f, 0x74, 0x6f, 0x80, + 0x85, 0x94, 0x7f, 0x7e, 0x6a, 0x7e, 0x7f, 0x93, 0x86, 0x80, 0x70, 0x74, + 0x80, 0x8a, 0x91, 0x7f, 0x7b, 0x6b, 0x80, 0x80, 0x95, 0x82, 0x80, 0x6c, + 0x78, 0x7f, 0x8e, 0x8d, 0x7f, 0x77, 0x6d, 0x80, 0x83, 0x95, 0x80, 0x7f, + 0x6a, 0x7c, 0x7f, 0x92, 0x88, 0x80, 0x72, 0x71, 0x80, 0x87, 0x92, 0x7f, + 0x7d, 0x6a, 0x7f, 0x7f, 0x94, 0x84, 0x80, 0x6e, 0x76, 0x80, 0x8c, 0x8f, + 0x7e, 0x79, 0x6c, 0x80, 0x81, 0x95, 0x81, 0x80, 0x6c, 0x7a, 0x7f, 0x8f, + 0x8a, 0x7f, 0x75, 0x70, 0x81, 0x85, 0x93, 0x7f, 0x7e, 0x6b, 0x7e, 0x7f, + 0x93, 0x86, 0x80, 0x71, 0x74, 0x80, 0x89, 0x90, 0x7f, 0x7b, 0x6b, 0x80, + 0x80, 0x94, 0x82, 0x80, 0x6d, 0x78, 0x7f, 0x8d, 0x8c, 0x7f, 0x77, 0x6e, + 0x80, 0x83, 0x94, 0x80, 0x7f, 0x6b, 0x7c, 0x7f, 0x91, 0x88, 0x80, 0x73, + 0x72, 0x80, 0x87, 0x92, 0x7f, 0x7d, 0x6b, 0x7f, 0x7f, 0x93, 0x84, 0x80, + 0x6f, 0x76, 0x7f, 0x8b, 0x8e, 0x7f, 0x79, 0x6d, 0x80, 0x81, 0x94, 0x81, + 0x80, 0x6c, 0x7a, 0x7f, 0x8f, 0x8a, 0x80, 0x75, 0x70, 0x80, 0x84, 0x93, + 0x7f, 0x7e, 0x6b, 0x7e, 0x7f, 0x92, 0x86, 0x80, 0x71, 0x74, 0x80, 0x88, + 0x90, 0x7f, 0x7c, 0x6c, 0x80, 0x80, 0x93, 0x82, 0x80, 0x6e, 0x78, 0x7f, + 0x8d, 0x8c, 0x7f, 0x78, 0x6e, 0x80, 0x83, 0x93, 0x80, 0x7f, 0x6c, 0x7c, + 0x7f, 0x90, 0x88, 0x80, 0x74, 0x72, 0x80, 0x86, 0x91, 0x7f, 0x7d, 0x6c, + 0x7f, 0x7f, 0x93, 0x84, 0x80, 0x70, 0x76, 0x7f, 0x8a, 0x8e, 0x7f, 0x7a, + 0x6d, 0x80, 0x81, 0x93, 0x81, 0x80, 0x6d, 0x7a, 0x7f, 0x8e, 0x8a, 0x7f, + 0x76, 0x70, 0x80, 0x84, 0x92, 0x7f, 0x7f, 0x6c, 0x7e, 0x7f, 0x91, 0x86, + 0x80, 0x72, 0x74, 0x80, 0x88, 0x8f, 0x7f, 0x7c, 0x6d, 0x80, 0x80, 0x93, + 0x82, 0x80, 0x6f, 0x78, 0x7f, 0x8c, 0x8c, 0x7f, 0x78, 0x6f, 0x80, 0x83, + 0x92, 0x80, 0x7f, 0x6d, 0x7c, 0x7f, 0x8f, 0x87, 0x80, 0x74, 0x73, 0x80, + 0x86, 0x91, 0x7f, 0x7d, 0x6d, 0x7f, 0x7f, 0x92, 0x84, 0x80, 0x70, 0x76, + 0x7f, 0x8a, 0x8e, 0x7f, 0x7a, 0x6e, 0x80, 0x81, 0x93, 0x81, 0x80, 0x6e, + 0x7a, 0x7f, 0x8e, 0x89, 0x7f, 0x76, 0x71, 0x80, 0x84, 0x92, 0x7f, 0x7f, + 0x6d, 0x7d, 0x7f, 0x90, 0x86, 0x80, 0x73, 0x75, 0x80, 0x87, 0x8f, 0x7f, + 0x7c, 0x6d, 0x7f, 0x80, 0x92, 0x82, 0x80, 0x6f, 0x79, 0x7f, 0x8b, 0x8b, + 0x7f, 0x79, 0x70, 0x80, 0x82, 0x92, 0x80, 0x80, 0x6e, 0x7c, 0x7f, 0x8f, + 0x87, 0x80, 0x75, 0x73, 0x80, 0x85, 0x90, 0x7f, 0x7e, 0x6d, 0x7f, 0x7f, + 0x91, 0x84, 0x80, 0x71, 0x77, 0x7f, 0x89, 0x8d, 0x7f, 0x7b, 0x6f, 0x80, + 0x81, 0x92, 0x81, 0x80, 0x6f, 0x7a, 0x7f, 0x8d, 0x89, 0x7f, 0x77, 0x71, + 0x80, 0x84, 0x91, 0x7f, 0x7f, 0x6e, 0x7e, 0x7f, 0x90, 0x85, 0x80, 0x73, + 0x75, 0x80, 0x87, 0x8e, 0x7f, 0x7c, 0x6e, 0x80, 0x80, 0x91, 0x82, 0x80, + 0x70, 0x79, 0x7f, 0x8b, 0x8b, 0x7f, 0x79, 0x70, 0x80, 0x82, 0x91, 0x80, + 0x7f, 0x6e, 0x7c, 0x7f, 0x8e, 0x87, 0x80, 0x75, 0x73, 0x80, 0x85, 0x90, + 0x7f, 0x7e, 0x6e, 0x7e, 0x7f, 0x90, 0x84, 0x81, 0x72, 0x77, 0x7f, 0x89, + 0x8d, 0x7f, 0x7b, 0x6f, 0x80, 0x81, 0x91, 0x81, 0x80, 0x70, 0x7a, 0x7f, + 0x8c, 0x89, 0x7f, 0x77, 0x72, 0x80, 0x83, 0x90, 0x7f, 0x7f, 0x6e, 0x7d, + 0x7f, 0x8f, 0x85, 0x80, 0x74, 0x75, 0x80, 0x86, 0x8e, 0x7f, 0x7d, 0x6f, + 0x7f, 0x80, 0x90, 0x82, 0x80, 0x71, 0x79, 0x7f, 0x8a, 0x8b, 0x7f, 0x79, + 0x71, 0x80, 0x82, 0x90, 0x80, 0x80, 0x6f, 0x7c, 0x7f, 0x8d, 0x87, 0x80, + 0x76, 0x74, 0x80, 0x85, 0x8f, 0x7f, 0x7e, 0x6f, 0x7f, 0x7f, 0x8f, 0x84, + 0x80, 0x73, 0x77, 0x80, 0x88, 0x8c, 0x7f, 0x7b, 0x70, 0x80, 0x81, 0x90, + 0x81, 0x80, 0x70, 0x7b, 0x7f, 0x8b, 0x89, 0x7f, 0x78, 0x72, 0x80, 0x83, + 0x8f, 0x7f, 0x7f, 0x6f, 0x7d, 0x7f, 0x8e, 0x85, 0x80, 0x74, 0x75, 0x80, + 0x86, 0x8d, 0x7f, 0x7d, 0x6f, 0x7f, 0x80, 0x90, 0x82, 0x80, 0x72, 0x79, + 0x7f, 0x89, 0x8b, 0x7f, 0x7a, 0x71, 0x80, 0x82, 0x90, 0x80, 0x80, 0x70, + 0x7c, 0x7f, 0x8d, 0x87, 0x80, 0x76, 0x74, 0x80, 0x84, 0x8e, 0x7f, 0x7e, + 0x6f, 0x7e, 0x7f, 0x8f, 0x84, 0x80, 0x73, 0x77, 0x80, 0x88, 0x8c, 0x7f, + 0x7c, 0x70, 0x80, 0x80, 0x90, 0x81, 0x80, 0x71, 0x7b, 0x7f, 0x8b, 0x88, + 0x7f, 0x79, 0x73, 0x80, 0x83, 0x8f, 0x7f, 0x7f, 0x70, 0x7d, 0x7f, 0x8d, + 0x85, 0x80, 0x75, 0x76, 0x80, 0x86, 0x8d, 0x7f, 0x7d, 0x70, 0x7f, 0x80, + 0x8f, 0x82, 0x80, 0x73, 0x79, 0x7f, 0x89, 0x8a, 0x7f, 0x7a, 0x72, 0x80, + 0x81, 0x8f, 0x80, 0x80, 0x71, 0x7c, 0x7f, 0x8c, 0x87, 0x80, 0x77, 0x74, + 0x80, 0x84, 0x8e, 0x7f, 0x7e, 0x70, 0x7f, 0x7f, 0x8e, 0x83, 0x80, 0x74, + 0x78, 0x80, 0x87, 0x8b, 0x7f, 0x7c, 0x71, 0x80, 0x81, 0x8f, 0x81, 0x80, + 0x72, 0x7b, 0x7f, 0x8a, 0x88, 0x7f, 0x79, 0x73, 0x80, 0x83, 0x8e, 0x7f, + 0x7f, 0x71, 0x7d, 0x7f, 0x8d, 0x85, 0x80, 0x76, 0x76, 0x80, 0x85, 0x8c, + 0x7f, 0x7d, 0x71, 0x7f, 0x80, 0x8e, 0x82, 0x80, 0x73, 0x79, 0x7f, 0x88, + 0x89, 0x7f, 0x7b, 0x73, 0x80, 0x81, 0x8e, 0x80, 0x80, 0x72, 0x7c, 0x7f, + 0x8b, 0x86, 0x80, 0x78, 0x75, 0x80, 0x84, 0x8d, 0x7f, 0x7e, 0x71, 0x7e, + 0x7f, 0x8d, 0x84, 0x80, 0x75, 0x78, 0x80, 0x87, 0x8b, 0x7f, 0x7c, 0x72, + 0x80, 0x80, 0x8e, 0x81, 0x80, 0x73, 0x7b, 0x7f, 0x89, 0x88, 0x7f, 0x79, + 0x74, 0x80, 0x82, 0x8d, 0x80, 0x7f, 0x72, 0x7d, 0x7f, 0x8c, 0x85, 0x80, + 0x76, 0x77, 0x80, 0x85, 0x8c, 0x7f, 0x7d, 0x72, 0x7f, 0x80, 0x8d, 0x82, + 0x80, 0x74, 0x79, 0x7f, 0x88, 0x89, 0x7f, 0x7b, 0x73, 0x80, 0x81, 0x8d, + 0x80, 0x80, 0x72, 0x7c, 0x7f, 0x8a, 0x86, 0x80, 0x78, 0x75, 0x80, 0x83, + 0x8c, 0x7f, 0x7f, 0x72, 0x7e, 0x7f, 0x8c, 0x83, 0x80, 0x75, 0x78, 0x7f, + 0x86, 0x8a, 0x7f, 0x7c, 0x72, 0x80, 0x80, 0x8d, 0x81, 0x80, 0x73, 0x7b, + 0x7f, 0x89, 0x88, 0x7f, 0x7a, 0x74, 0x80, 0x82, 0x8d, 0x80, 0x7f, 0x72, + 0x7e, 0x7f, 0x8b, 0x85, 0x80, 0x77, 0x77, 0x80, 0x85, 0x8b, 0x7f, 0x7e, + 0x72, 0x7f, 0x7f, 0x8c, 0x82, 0x80, 0x74, 0x7a, 0x7f, 0x87, 0x89, 0x7f, + 0x7b, 0x74, 0x80, 0x81, 0x8d, 0x80, 0x80, 0x73, 0x7c, 0x7f, 0x8a, 0x86, + 0x80, 0x79, 0x76, 0x80, 0x83, 0x8c, 0x7f, 0x7f, 0x73, 0x7e, 0x7f, 0x8b, + 0x83, 0x80, 0x76, 0x78, 0x80, 0x86, 0x8a, 0x7f, 0x7d, 0x73, 0x80, 0x80, + 0x8c, 0x81, 0x80, 0x74, 0x7b, 0x7f, 0x88, 0x87, 0x7f, 0x7a, 0x75, 0x80, + 0x82, 0x8c, 0x80, 0x7f, 0x73, 0x7e, 0x7f, 0x8a, 0x84, 0x80, 0x78, 0x77, + 0x80, 0x84, 0x8b, 0x7f, 0x7e, 0x73, 0x7f, 0x80, 0x8c, 0x82, 0x80, 0x75, + 0x7a, 0x7f, 0x87, 0x88, 0x7f, 0x7c, 0x74, 0x80, 0x81, 0x8c, 0x80, 0x80, + 0x74, 0x7c, 0x7f, 0x89, 0x86, 0x80, 0x79, 0x76, 0x80, 0x83, 0x8b, 0x7f, + 0x7f, 0x73, 0x7e, 0x7f, 0x8b, 0x83, 0x80, 0x77, 0x79, 0x80, 0x85, 0x89, + 0x7f, 0x7d, 0x74, 0x80, 0x80, 0x8b, 0x81, 0x80, 0x75, 0x7b, 0x7f, 0x87, + 0x87, 0x7f, 0x7b, 0x75, 0x80, 0x81, 0x8b, 0x80, 0x7f, 0x74, 0x7e, 0x7f, + 0x8a, 0x84, 0x80, 0x78, 0x78, 0x80, 0x84, 0x8a, 0x7f, 0x7e, 0x74, 0x7f, + 0x7f, 0x8b, 0x82, 0x80, 0x76, 0x7a, 0x7f, 0x86, 0x88, 0x7f, 0x7c, 0x75, + 0x80, 0x81, 0x8b, 0x80, 0x80, 0x75, 0x7c, 0x7f, 0x88, 0x86, 0x80, 0x7a, + 0x77, 0x80, 0x82, 0x8a, 0x7f, 0x7f, 0x74, 0x7e, 0x7f, 0x8a, 0x83, 0x80, + 0x77, 0x79, 0x80, 0x85, 0x89, 0x7f, 0x7d, 0x74, 0x80, 0x80, 0x8b, 0x81, + 0x80, 0x75, 0x7b, 0x7f, 0x87, 0x86, 0x7f, 0x7b, 0x76, 0x80, 0x81, 0x8b, + 0x80, 0x7f, 0x74, 0x7e, 0x7f, 0x89, 0x84, 0x80, 0x79, 0x78, 0x80, 0x83, + 0x89, 0x7f, 0x7e, 0x74, 0x7f, 0x7f, 0x8a, 0x82, 0x80, 0x77, 0x7a, 0x7f, + 0x86, 0x87, 0x7f, 0x7c, 0x75, 0x80, 0x80, 0x8b, 0x80, 0x80, 0x75, 0x7d, + 0x7f, 0x88, 0x85, 0x7f, 0x7a, 0x77, 0x80, 0x82, 0x8a, 0x7f, 0x7f, 0x75, + 0x7e, 0x7f, 0x89, 0x83, 0x80, 0x78, 0x79, 0x80, 0x84, 0x88, 0x7f, 0x7d, + 0x75, 0x80, 0x80, 0x8a, 0x81, 0x80, 0x76, 0x7c, 0x7f, 0x86, 0x86, 0x7f, + 0x7b, 0x76, 0x80, 0x81, 0x8a, 0x80, 0x7f, 0x75, 0x7e, 0x7f, 0x88, 0x84, + 0x80, 0x79, 0x78, 0x80, 0x83, 0x89, 0x7f, 0x7e, 0x75, 0x7f, 0x7f, 0x89, + 0x82, 0x80, 0x77, 0x7b, 0x7f, 0x85, 0x87, 0x7f, 0x7d, 0x76, 0x80, 0x80, + 0x8a, 0x80, 0x80, 0x76, 0x7d, 0x7f, 0x87, 0x85, 0x7f, 0x7b, 0x78, 0x80, + 0x82, 0x89, 0x7f, 0x7f, 0x75, 0x7e, 0x7f, 0x89, 0x83, 0x80, 0x78, 0x7a, + 0x80, 0x84, 0x88, 0x7f, 0x7e, 0x76, 0x80, 0x80, 0x89, 0x81, 0x80, 0x77, + 0x7c, 0x7f, 0x86, 0x86, 0x7f, 0x7c, 0x77, 0x80, 0x81, 0x89, 0x80, 0x7f, + 0x76, 0x7e, 0x7f, 0x88, 0x83, 0x80, 0x7a, 0x79, 0x80, 0x83, 0x88, 0x7f, + 0x7e, 0x76, 0x7f, 0x7f, 0x89, 0x82, 0x80, 0x78, 0x7b, 0x7f, 0x85, 0x87, + 0x7f, 0x7d, 0x77, 0x80, 0x80, 0x89, 0x80, 0x80, 0x77, 0x7d, 0x7f, 0x86, + 0x85, 0x7f, 0x7b, 0x78, 0x80, 0x82, 0x88, 0x7f, 0x7f, 0x76, 0x7f, 0x7f, + 0x88, 0x83, 0x80, 0x79, 0x7a, 0x80, 0x83, 0x87, 0x7f, 0x7e, 0x77, 0x7f, + 0x80, 0x89, 0x81, 0x80, 0x78, 0x7c, 0x7f, 0x85, 0x85, 0x7f, 0x7c, 0x78, + 0x80, 0x81, 0x89, 0x80, 0x80, 0x77, 0x7e, 0x7f, 0x87, 0x83, 0x80, 0x7a, + 0x79, 0x80, 0x82, 0x88, 0x7f, 0x7f, 0x77, 0x7f, 0x7f, 0x88, 0x82, 0x80, + 0x79, 0x7b, 0x80, 0x84, 0x86, 0x7f, 0x7d, 0x77, 0x80, 0x80, 0x88, 0x80, + 0x80, 0x78, 0x7d, 0x7f, 0x86, 0x84, 0x7f, 0x7b, 0x79, 0x80, 0x81, 0x88, + 0x7f, 0x7f, 0x77, 0x7e, 0x7f, 0x87, 0x82, 0x80, 0x7a, 0x7a, 0x80, 0x83, + 0x87, 0x7f, 0x7e, 0x77, 0x7f, 0x80, 0x88, 0x81, 0x80, 0x78, 0x7c, 0x7f, + 0x85, 0x85, 0x7f, 0x7c, 0x78, 0x80, 0x81, 0x88, 0x80, 0x80, 0x78, 0x7e, + 0x7f, 0x86, 0x83, 0x80, 0x7b, 0x7a, 0x80, 0x82, 0x87, 0x7f, 0x7f, 0x77, + 0x7f, 0x7f, 0x87, 0x81, 0x80, 0x79, 0x7c, 0x7f, 0x84, 0x86, 0x7f, 0x7d, + 0x78, 0x80, 0x80, 0x88, 0x80, 0x80, 0x78, 0x7d, 0x7f, 0x85, 0x84, 0x7f, + 0x7c, 0x79, 0x80, 0x81, 0x87, 0x7f, 0x7f, 0x78, 0x7f, 0x7f, 0x86, 0x82, + 0x80, 0x7a, 0x7b, 0x80, 0x83, 0x86, 0x7f, 0x7e, 0x78, 0x7f, 0x80, 0x87, + 0x81, 0x80, 0x79, 0x7d, 0x7f, 0x84, 0x84, 0x7f, 0x7d, 0x79, 0x80, 0x81, + 0x87, 0x80, 0x80, 0x78, 0x7e, 0x7f, 0x85, 0x83, 0x80, 0x7b, 0x7a, 0x80, + 0x82, 0x86, 0x7f, 0x7f, 0x78, 0x7f, 0x7f, 0x86, 0x81, 0x80, 0x7a, 0x7c, + 0x80, 0x83, 0x85, 0x7f, 0x7e, 0x79, 0x80, 0x80, 0x87, 0x80, 0x80, 0x79, + 0x7d, 0x7f, 0x85, 0x83, 0x7f, 0x7c, 0x7a, 0x80, 0x81, 0x86, 0x7f, 0x7f, + 0x79, 0x7f, 0x7f, 0x86, 0x82, 0x80, 0x7b, 0x7b, 0x80, 0x82, 0x85, 0x7f, + 0x7e, 0x79, 0x7f, 0x80, 0x86, 0x81, 0x80, 0x7a, 0x7d, 0x7f, 0x84, 0x84, + 0x7f, 0x7d, 0x79, 0x80, 0x80, 0x86, 0x80, 0x80, 0x79, 0x7e, 0x7f, 0x85, + 0x83, 0x80, 0x7c, 0x7b, 0x80, 0x81, 0x86, 0x7f, 0x7f, 0x79, 0x7f, 0x7f, + 0x86, 0x81, 0x80, 0x7b, 0x7c, 0x7f, 0x83, 0x85, 0x7f, 0x7e, 0x79, 0x80, + 0x80, 0x86, 0x80, 0x80, 0x7a, 0x7e, 0x7f, 0x84, 0x83, 0x7f, 0x7d, 0x7a, + 0x80, 0x81, 0x86, 0x80, 0x7f, 0x79, 0x7f, 0x7f, 0x85, 0x82, 0x80, 0x7b, + 0x7c, 0x80, 0x82, 0x85, 0x7f, 0x7e, 0x79, 0x7f, 0x80, 0x86, 0x81, 0x80, + 0x7a, 0x7d, 0x7f, 0x83, 0x84, 0x7f, 0x7d, 0x7a, 0x80, 0x80, 0x86, 0x80, + 0x80, 0x7a, 0x7e, 0x7f, 0x84, 0x82, 0x80, 0x7c, 0x7b, 0x80, 0x81, 0x85, + 0x7f, 0x7f, 0x7a, 0x7f, 0x7f, 0x85, 0x81, 0x80, 0x7b, 0x7c, 0x7f, 0x82, + 0x84, 0x7f, 0x7e, 0x7a, 0x80, 0x80, 0x85, 0x80, 0x80, 0x7a, 0x7e, 0x7f, + 0x84, 0x83, 0x7f, 0x7d, 0x7b, 0x80, 0x81, 0x85, 0x7f, 0x7f, 0x7a, 0x7f, + 0x7f, 0x84, 0x82, 0x80, 0x7c, 0x7c, 0x80, 0x82, 0x84, 0x7f, 0x7f, 0x7a, + 0x7f, 0x80, 0x85, 0x80, 0x80, 0x7b, 0x7d, 0x7f, 0x83, 0x83, 0x7f, 0x7e, + 0x7b, 0x80, 0x80, 0x85, 0x80, 0x80, 0x7a, 0x7e, 0x7f, 0x84, 0x82, 0x80, + 0x7d, 0x7c, 0x80, 0x81, 0x84, 0x7f, 0x7f, 0x7a, 0x7f, 0x7f, 0x84, 0x81, + 0x80, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x7f, 0x7e, 0x7b, 0x80, 0x80, 0x85, + 0x80, 0x80, 0x7b, 0x7e, 0x7f, 0x83, 0x82, 0x7f, 0x7d, 0x7b, 0x80, 0x80, + 0x84, 0x80, 0x7f, 0x7b, 0x7f, 0x7f, 0x84, 0x81, 0x80, 0x7c, 0x7c, 0x80, + 0x81, 0x84, 0x7f, 0x7f, 0x7b, 0x7f, 0x7f, 0x84, 0x80, 0x80, 0x7c, 0x7d, + 0x7f, 0x82, 0x83, 0x7f, 0x7e, 0x7b, 0x80, 0x80, 0x84, 0x80, 0x80, 0x7b, + 0x7e, 0x7f, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x80, 0x81, 0x84, 0x7f, 0x7f, + 0x7b, 0x7f, 0x7f, 0x84, 0x81, 0x80, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x7f, + 0x7f, 0x7b, 0x80, 0x80, 0x84, 0x80, 0x80, 0x7c, 0x7e, 0x7f, 0x82, 0x82, + 0x7f, 0x7e, 0x7c, 0x80, 0x80, 0x84, 0x7f, 0x7f, 0x7b, 0x7f, 0x7f, 0x83, + 0x81, 0x80, 0x7d, 0x7d, 0x80, 0x81, 0x83, 0x7f, 0x7f, 0x7c, 0x7f, 0x7f, + 0x83, 0x80, 0x80, 0x7c, 0x7e, 0x7f, 0x82, 0x82, 0x7f, 0x7e, 0x7c, 0x80, + 0x80, 0x83, 0x80, 0x80, 0x7c, 0x7f, 0x7f, 0x82, 0x81, 0x7f, 0x7e, 0x7d, + 0x80, 0x81, 0x83, 0x7f, 0x7f, 0x7c, 0x7f, 0x7f, 0x83, 0x81, 0x80, 0x7d, + 0x7e, 0x80, 0x81, 0x82, 0x7f, 0x7f, 0x7c, 0x80, 0x80, 0x83, 0x80, 0x80, + 0x7c, 0x7e, 0x7f, 0x82, 0x82, 0x7f, 0x7e, 0x7d, 0x80, 0x80, 0x83, 0x80, + 0x7f, 0x7c, 0x7f, 0x7f, 0x82, 0x81, 0x80, 0x7d, 0x7d, 0x80, 0x81, 0x82, + 0x7f, 0x7f, 0x7c, 0x7f, 0x7f, 0x83, 0x80, 0x80, 0x7d, 0x7e, 0x7f, 0x81, + 0x82, 0x7f, 0x7f, 0x7d, 0x80, 0x80, 0x83, 0x80, 0x80, 0x7d, 0x7f, 0x7f, + 0x82, 0x81, 0x80, 0x7e, 0x7d, 0x80, 0x80, 0x82, 0x7f, 0x7f, 0x7d, 0x7f, + 0x7f, 0x82, 0x80, 0x80, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x7f, 0x7f, 0x7d, + 0x80, 0x80, 0x82, 0x80, 0x80, 0x7d, 0x7f, 0x7f, 0x81, 0x81, 0x7f, 0x7e, + 0x7d, 0x80, 0x80, 0x82, 0x80, 0x7f, 0x7d, 0x7f, 0x7f, 0x82, 0x81, 0x80, + 0x7e, 0x7e, 0x80, 0x80, 0x82, 0x7f, 0x7f, 0x7d, 0x7f, 0x7f, 0x82, 0x80, + 0x80, 0x7e, 0x7e, 0x7f, 0x81, 0x81, 0x7f, 0x7f, 0x7d, 0x80, 0x80, 0x82, + 0x80, 0x80, 0x7d, 0x7f, 0x7f, 0x81, 0x81, 0x7f, 0x7e, 0x7e, 0x80, 0x80, + 0x82, 0x7f, 0x7f, 0x7d, 0x7f, 0x7f, 0x82, 0x80, 0x80, 0x7e, 0x7e, 0x80, + 0x80, 0x81, 0x7f, 0x7f, 0x7d, 0x80, 0x80, 0x82, 0x80, 0x80, 0x7e, 0x7f, + 0x7f, 0x81, 0x81, 0x7f, 0x7f, 0x7e, 0x80, 0x80, 0x81, 0x80, 0x7f, 0x7e, + 0x7f, 0x7f, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x7f, 0x7f, + 0x7e, 0x7f, 0x7f, 0x81, 0x80, 0x80, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x7f, + 0x7f, 0x7e, 0x80, 0x80, 0x81, 0x80, 0x80, 0x7e, 0x7f, 0x7f, 0x81, 0x80, + 0x7f, 0x7f, 0x7e, 0x80, 0x80, 0x81, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x81, + 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x7f, 0x7f, 0x7e, 0x7f, 0x80, + 0x81, 0x80, 0x80, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x80, + 0x80, 0x81, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, + 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, + 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, + 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, + 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, + 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, + 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f +}; +const uint32_t coin05_8k_raw_len = 7218; diff --git a/SampleSrc/doget.js b/SampleSrc/doget.js new file mode 100644 index 0000000..83d7899 --- /dev/null +++ b/SampleSrc/doget.js @@ -0,0 +1,21 @@ +function doGet(e) { + var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); + var sheet = spreadsheet.getSheetByName('シート1'); + var now = new Date(); + var array = []; + array.push(now); + + for(var k in e['parameter']) { + array.push(k); + array.push(e['parameter'][k]); + } + var params = JSON.stringify(e); + array.push(params); + sheet.appendRow( array ); + + var lastRow = sheet.getLastRow(); + + var output = ContentService.createTextOutput(sheet.getRange(1,3).getValue()+" "+lastRow); + output.setMimeType(ContentService.MimeType.TEXT); + return output; +} \ No newline at end of file diff --git a/SampleSrc/env2.ino b/SampleSrc/env2.ino new file mode 100644 index 0000000..b009203 --- /dev/null +++ b/SampleSrc/env2.ino @@ -0,0 +1,44 @@ +/* + Please install the < Adafruit BMP280 Library > (https://github.com/adafruit/Adafruit_BMP280_Library) + < Adafruit SHT31 Library > (https://github.com/adafruit/Adafruit_SHT31) + from the library manager before use. + This code will display the temperature, humidity and air pressure information on the screen + https://lang-ship.com/blog/work/m5stack-env-ii-unit-u001-b/ + */ +#include +#include +#include +Adafruit_SHT31 sht3x = Adafruit_SHT31(&Wire); +Adafruit_BMP280 bme = Adafruit_BMP280(&Wire); +float tmp = 0.0; +float hum = 0.0; +float pressure = 0.0; +void setup() { + M5.begin(); + M5.Lcd.setRotation(3); + M5.Lcd.setTextSize(3); + Wire.begin(32, 33); + Serial.println(F("ENV Unit(SHT30 and BMP280) test...")); + while (!bme.begin(0x76)) { + Serial.println("Could not find a valid BMP280 sensor, check wiring!"); + M5.Lcd.println("Could not find a valid BMP280 sensor, check wiring!"); + } + while (!sht3x.begin(0x44)) { + Serial.println("Could not find a valid SHT3X sensor, check wiring!"); + M5.Lcd.println("Could not find a valid SHT3X sensor, check wiring!"); + } + M5.Lcd.fillScreen(BLACK); + M5.Lcd.println("ENV Unit test..."); +} +void loop() { + pressure = bme.readPressure(); + tmp = sht3x.readTemperature(); + hum = sht3x.readHumidity(); + Serial.printf("Temperature: %2.2f*C Humidity: %0.2f%% Pressure: %0.2fhPa\r\n", tmp, hum, pressure / 100); + M5.Lcd.setCursor(0, 25); + M5.Lcd.setTextColor(WHITE, BLACK); + M5.Lcd.printf("Temp:%2.2f*C\n", tmp); + M5.Lcd.printf("Humi:%2.2f%%\n", hum); + M5.Lcd.printf("Prs :%2.0fhPa\n", pressure / 100); + delay(1000); +} \ No newline at end of file diff --git a/SampleSrc/espnow01.ino b/SampleSrc/espnow01.ino new file mode 100644 index 0000000..5d9ac81 --- /dev/null +++ b/SampleSrc/espnow01.ino @@ -0,0 +1,125 @@ +// https://lang-ship.com/blog/work/m5stickc-esp-now-1/#toc7 +#include +#include +#include +esp_now_peer_info_t slave; +// 送信コールバック +void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) +{ + char macStr[18]; + snprintf(macStr, sizeof(macStr), "%02X:%02X:%02X:%02X:%02X:%02X", + mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); + Serial.print("Last Packet Sent to: "); + Serial.println(macStr); + Serial.print("Last Packet Send Status: "); + Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail"); + // 画面にも描画 + M5.Lcd.fillScreen(BLACK); + M5.Lcd.setCursor(0, 0); + M5.Lcd.print("Last Packet Sent to: \n "); + M5.Lcd.println(macStr); + M5.Lcd.print("Last Packet Send Status: \n "); + M5.Lcd.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail"); +} +// 受信コールバック +void OnDataRecv(const uint8_t *mac_addr, const uint8_t *data, int data_len) +{ + char macStr[18]; + snprintf(macStr, sizeof(macStr), "%02X:%02X:%02X:%02X:%02X:%02X", + mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); + Serial.printf("Last Packet Recv from: %s\n", macStr); + Serial.printf("Last Packet Recv Data(%d): ", data_len); + for (int i = 0; i < data_len; i++) + { + Serial.print(data[i]); + Serial.print(" "); + } + Serial.println(""); + // 画面にも描画 + M5.Lcd.fillScreen(BLACK); + M5.Lcd.setCursor(0, 0); + M5.Lcd.print("Last Packet Recv from: \n "); + M5.Lcd.println(macStr); + M5.Lcd.printf("Last Packet Recv Data(%d): \n ", data_len); + for (int i = 0; i < data_len; i++) + { + M5.Lcd.print(data[i]); + M5.Lcd.print(" "); + } +} +void setup() +{ + M5.begin(); + M5.Lcd.fillScreen(BLACK); + M5.Lcd.setRotation(3); + M5.Lcd.print("ESP-NOW Test\n"); + // ESP-NOW初期化 + WiFi.mode(WIFI_STA); + WiFi.disconnect(); + if (esp_now_init() == ESP_OK) + { + Serial.println("ESPNow Init Success"); + M5.Lcd.print("ESPNow Init Success\n"); + } + else + { + Serial.println("ESPNow Init Failed"); + M5.Lcd.print("ESPNow Init Failed\n"); + ESP.restart(); + } + // マルチキャスト用Slave登録 + memset(&slave, 0, sizeof(slave)); + for (int i = 0; i < 6; ++i) + { + slave.peer_addr[i] = (uint8_t)0xff; + } + esp_err_t addStatus = esp_now_add_peer(&slave); + if (addStatus == ESP_OK) + { + // Pair success + Serial.println("Pair success"); + } + // ESP-NOWコールバック登録 + esp_now_register_send_cb(OnDataSent); + esp_now_register_recv_cb(OnDataRecv); +} +void loop() +{ + M5.update(); + // ボタンを押したら送信 + if (M5.BtnA.wasPressed()) + { + uint8_t data[2] = {123, 234}; + esp_err_t result = esp_now_send(slave.peer_addr, data, sizeof(data)); + Serial.print("Send Status: "); + if (result == ESP_OK) + { + Serial.println("Success"); + } + else if (result == ESP_ERR_ESPNOW_NOT_INIT) + { + Serial.println("ESPNOW not Init."); + } + else if (result == ESP_ERR_ESPNOW_ARG) + { + Serial.println("Invalid Argument"); + } + else if (result == ESP_ERR_ESPNOW_INTERNAL) + { + Serial.println("Internal Error"); + } + else if (result == ESP_ERR_ESPNOW_NO_MEM) + { + Serial.println("ESP_ERR_ESPNOW_NO_MEM"); + } + else if (result == ESP_ERR_ESPNOW_NOT_FOUND) + { + Serial.println("Peer not found."); + } + else + { + Serial.println("Not sure what happened"); + } + } + delay(1); +} diff --git a/SampleSrc/espnow02.ino b/SampleSrc/espnow02.ino new file mode 100644 index 0000000..f2f9147 --- /dev/null +++ b/SampleSrc/espnow02.ino @@ -0,0 +1,109 @@ +#include "M5StickCPlus.h" +#include +#include + +esp_now_peer_info_t peerInfo; +int line = 0; + +void Init_ESPNOW() +{ // ESPNowの初期化 + // 引用: https://101010.fun/iot/esp32-m5stickc-plus-esp-now.html + WiFi.mode(WIFI_STA); + WiFi.disconnect(); + if (esp_now_init() == ESP_OK) + { + M5.Lcd.println("ESP-Now Init Success"); + } + else + { + M5.Lcd.println("ESP-Now Init failed"); + ESP.restart(); + } + // マルチキャスト用Slave登録 + memset(&peerInfo, 0, sizeof(peerInfo)); + for (int i = 0; i < 6; ++i) + { + peerInfo.peer_addr[i] = (uint8_t)0xff; + } + esp_err_t addStatus = esp_now_add_peer(&peerInfo); + if (addStatus == ESP_OK) + { + // Pair success + M5.Lcd.println("Pair success"); + esp_now_register_send_cb(onESPNOWSent); //送信後のコールバック関数を指定する + esp_now_register_recv_cb(onESPNOWReceive); ///受信時のコールバック関数を指定する + } +} +// データを送信した後に実行されるコールバック関数 +// 引用: https://101010.fun/iot/esp32-m5stickc-plus-esp-now.html +void onESPNOWSent(const uint8_t *mac_addr, esp_now_send_status_t status) +{ + // char macStr[18]; + // snprintf(macStr, sizeof(macStr), "%02X:%02X:%02X:%02X:%02X:%02X", + // mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); + line++; + if (line > 3) + { + M5.Lcd.fillScreen(YELLOW); + M5.Lcd.setCursor(0, 0, 1); + line = 0; + M5.Beep.tone(2000, 500); + } + else + { + M5.Beep.tone(1000, 500); + } + M5.Lcd.setTextColor(BLACK, GREEN); + + M5.Lcd.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail"); +} + +// データを受け取った時に実行されるコールバック関数 +void onESPNOWReceive(const uint8_t *mac_addr, const uint8_t *data, int data_len) +{ + char macStr[18]; + snprintf(macStr, sizeof(macStr), "%02X:%02X:%02X:%02X:%02X:%02X", + mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); + // Serial.println(); + // Serial.printf("Last Packet Recv from: %s\n", macStr); + // Serial.printf("Last Packet Recv Data(%d): ", data_len); + if (data[0] == 100 && data[1] == 254) // 100,254に深い意味はない。uint8_tは0〜255の数値 + { + line++; + if (line > 3) + { + M5.Beep.tone(2000, 1000); + M5.Lcd.fillScreen(YELLOW); + M5.Lcd.setCursor(0, 0, 1); + line = 0; + } + M5.Lcd.setTextColor(BLACK, CYAN); + + M5.Lcd.printf(" %s\n", macStr); + M5.Lcd.printf("Data: %d %d\n", data[0], data[1]); + } +} + +void setup() +{ + M5.begin(); + M5.Lcd.setRotation(3); + M5.Lcd.fillScreen(YELLOW); + + M5.Lcd.setTextColor(BLACK, YELLOW); + M5.Lcd.setCursor(0, 0, 1); + M5.Lcd.setTextSize(2); + + Init_ESPNOW(); +} +void loop() +{ + M5.update(); + M5.Beep.update(); + if (M5.BtnA.wasReleased()) + { + uint8_t data[2] = {100, 254}; // 送信データ  100, 254に深い意味はない。uint8_tは0〜255の数値 + esp_err_t result = esp_now_send(peerInfo.peer_addr, data, sizeof(data)); + } + delay(20); +} diff --git a/SampleSrc/factorytest.ino b/SampleSrc/factorytest.ino new file mode 100644 index 0000000..e0fcb6d --- /dev/null +++ b/SampleSrc/factorytest.ino @@ -0,0 +1,1339 @@ +#include "M5StickCPlus.h" +#include "fft.h" +#include "esp_pm.h" +#include +#include +#include + +#include +#include +#include +#include + +typedef struct +{ + double x; + double y; + double z; +} point_3d_t; + +typedef struct +{ + point_3d_t start_point; + point_3d_t end_point; +} line_3d_t; + +typedef struct +{ + double x; + double y; +} point_2d_t; + +double r_rand = PI / 180; + +double r_alpha = 19.47 * PI / 180; +double r_gamma = 20.7 * PI / 180; + +double sin_alpha = sin(19.47 * PI / 180); +double cos_alpha = cos(19.47 * PI / 180); +double sin_gamma = sin(20.7 * PI / 180); +double cos_gamma = cos(20.7 * PI / 180); + +extern const unsigned char ImageData[768]; +extern const unsigned char error_48[4608]; +extern const unsigned char icon_ir[4608]; +extern const unsigned char icon_ble[4608]; +extern const unsigned char icon_wifi[4608]; +extern const unsigned char icon_ble_disconnect[4608]; + +bool TestMode = false; + +TFT_eSprite Disbuff = TFT_eSprite(&M5.Lcd); + +hw_timer_t *timer = NULL; +volatile SemaphoreHandle_t timerSemaphore; +portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED; +volatile uint8_t TimerCount = 0; + + +void IRAM_ATTR onTimer() +{ + portENTER_CRITICAL_ISR(&timerMux); + digitalWrite(10, TimerCount % 100 ); + TimerCount++; + portEXIT_CRITICAL_ISR(&timerMux); +} + +void checkAXPPress() +{ + if( M5.Axp.GetBtnPress()) + { + do{ + delay(20); + } + while( M5.Axp.GetBtnPress()); + M5.Beep.mute(); + ESP.restart(); + } +} + +void Displaybuff() +{ + if (TestMode) + { + Disbuff.setTextSize(1); + Disbuff.setTextColor(TFT_RED); + Disbuff.drawString("Test Mode", 0, 0, 1); + Disbuff.setTextColor(TFT_WHITE); + } + Disbuff.pushSprite(0, 0); +} + +void ErrorDialog( uint8_t code, const char *str ) +{ + Disbuff.fillRect(28,20,184,95,Disbuff.color565(45,45,45)); + Disbuff.fillRect(30,22,180,91,TFT_BLACK); + //Disbuff.drawRect(30,22,180,91,Disbuff.color565(45,45,45)); + Disbuff.setSwapBytes(true); + Disbuff.pushImage(40, 43, 48, 48, (uint16_t *)error_48); + + Disbuff.setCursor(145, 37); + Disbuff.setTextFont(2); + Disbuff.printf("%02X", code); + Disbuff.drawString("ERROR", 55 + 45, 10 + 27 , 2); + Disbuff.drawString("-----------------", 55 + 45, 30 + 27 , 1); + Disbuff.drawString(str, 55 + 45, 45 + 27 , 1); + Disbuff.drawString("check Hardware ", 55 + 45 , 60 + 27, 1); + Disbuff.pushSprite(0, 0); + + while ((!M5.BtnA.isPressed()) && (!M5.BtnB.isPressed())) + { + M5.update(); + checkAXPPress(); + delay(100); + } + while ((M5.BtnA.isPressed()) || (M5.BtnB.isPressed())) + { + M5.update(); + checkAXPPress(); + M5.Beep.tone(4000); + delay(10); + } + delay(50); + M5.Beep.mute(); + Disbuff.setTextColor(TFT_WHITE); + Disbuff.setTextFont(1); +} + +bool point3Dto2D(point_3d_t *source, point_2d_t *point) +{ + point->x = (source->x * cos_gamma) - (source->y * sin_gamma); + point->y = -(source->x * sin_gamma * sin_alpha) - (source->y * cos_gamma * sin_alpha) + (source->z * cos_alpha); + return true; +} + +bool point2DToDisPoint(point_2d_t *point, uint8_t *x, uint8_t *y) +{ + *x = point->x + 120; + *y = 67 - point->y; + return true; +} + +bool printLine3D(TFT_eSprite *display, line_3d_t *line, uint32_t color) +{ + uint8_t start_x, start_y, end_x, end_y; + point_2d_t point; + point3Dto2D(&line->start_point, &point); + point2DToDisPoint(&point, &start_x, &start_y); + point3Dto2D(&line->end_point, &point); + point2DToDisPoint(&point, &end_x, &end_y); + + display->drawLine(start_x, start_y, end_x, end_y, color); + + return true; +} + +void RotatePoint(point_3d_t *point, double x, double y, double z) +{ + if (x != 0) + { + point->y = point->y * cos(x * r_rand) - point->z * sin(x * r_rand); + point->z = point->y * sin(x * r_rand) + point->z * cos(x * r_rand); + } + + if (y != 0) + { + point->x = point->z * sin(y * r_rand) + point->x * cos(y * r_rand); + point->z = point->z * cos(y * r_rand) - point->x * sin(y * r_rand); + } + + if (z != 0) + { + point->x = point->x * cos(z * r_rand) - point->y * sin(z * r_rand); + point->y = point->x * sin(z * r_rand) + point->y * cos(z * r_rand); + } +} + +void RotatePoint(point_3d_t *point, point_3d_t *point_new, double x, double y, double z) +{ + if (x != 0) + { + point_new->y = point->y * cos(x * r_rand) - point->z * sin(x * r_rand); + point_new->z = point->y * sin(x * r_rand) + point->z * cos(x * r_rand); + } + + if (y != 0) + { + point_new->x = point->z * sin(y * r_rand) + point->x * cos(y * r_rand); + point_new->z = point->z * cos(y * r_rand) - point->x * sin(y * r_rand); + } + + if (z != 0) + { + point_new->x = point->x * cos(z * r_rand) - point->y * sin(z * r_rand); + point_new->y = point->x * sin(z * r_rand) + point->y * cos(z * r_rand); + } +} + +line_3d_t rect[12] = { + {.start_point = {-1, -1, 1}, .end_point = {1, -1, 1}}, + {.start_point = {1, -1, 1}, .end_point = {1, 1, 1}}, + {.start_point = {1, 1, 1}, .end_point = {-1, 1, 1}}, + {.start_point = {-1, 1, 1}, .end_point = {-1, -1, 1}}, + { + .start_point = {-1, -1, 1}, + .end_point = {-1, -1, -1}, + }, + { + .start_point = {1, -1, 1}, + .end_point = {1, -1, -1}, + }, + { + .start_point = {1, 1, 1}, + .end_point = {1, 1, -1}, + }, + { + .start_point = {-1, 1, 1}, + .end_point = {-1, 1, -1}, + }, + {.start_point = {-1, -1, -1}, .end_point = {1, -1, -1}}, + {.start_point = {1, -1, -1}, .end_point = {1, 1, -1}}, + {.start_point = {1, 1, -1}, .end_point = {-1, 1, -1}}, + {.start_point = {-1, 1, -1}, .end_point = {-1, -1, -1}}, +}; + +void MPU6886Test() +{ + float accX = 0; + float accY = 0; + float accZ = 0; + + double theta = 0, last_theta = 0; + double phi = 0, last_phi = 0; + double alpha = 0.2; + + line_3d_t x = { + .start_point = {0, 0, 0}, + .end_point = {0, 0, 0}}; + line_3d_t y = { + .start_point = {0, 0, 0}, + .end_point = {0, 0, 0}}; + line_3d_t z = { + .start_point = {0, 0, 0}, + .end_point = {0, 0, 30}}; + + line_3d_t rect_source[12]; + line_3d_t rect_dis; + for (int n = 0; n < 12; n++) + { + rect_source[n].start_point.x = rect[n].start_point.x * 30; + rect_source[n].start_point.y = rect[n].start_point.y * 30; + rect_source[n].start_point.z = rect[n].start_point.z * 30; + rect_source[n].end_point.x = rect[n].end_point.x * 30; + rect_source[n].end_point.y = rect[n].end_point.y * 30; + rect_source[n].end_point.z = rect[n].end_point.z * 30; + } + + while ((!M5.BtnA.isPressed()) && (!M5.BtnB.isPressed())) + { + + M5.Imu.getAccelData(&accX, &accY, &accZ); + //M5.MPU6886.getAccelData(&accX, &accY, &accZ); + if ((accX < 1) && (accX > -1)) + { + theta = asin(-accX) * 57.295; + } + if (accZ != 0) + { + phi = atan(accY / accZ) * 57.295; + } + + theta = alpha * theta + (1 - alpha) * last_theta; + phi = alpha * phi + (1 - alpha) * last_phi; + + Disbuff.fillRect(0, 0, 240, 135, TFT_BLACK); + Disbuff.setTextSize(1); + Disbuff.setCursor(10, 115); + Disbuff.printf("%.2f", theta); + Disbuff.setCursor(10, 125); + Disbuff.printf("%.2f", phi); + //Displaybuff(); + delay(20); + + z.end_point.x = 0; + z.end_point.y = 0; + z.end_point.z = 60; + RotatePoint(&z.end_point, theta, phi, 0); + RotatePoint(&z.end_point, &x.end_point, -90, 0, 0); + RotatePoint(&z.end_point, &y.end_point, 0, 90, 0); + + for (int n = 0; n < 12; n++) + { + RotatePoint(&rect_source[n].start_point, &rect_dis.start_point, theta, phi, (double)0); + RotatePoint(&rect_source[n].end_point, &rect_dis.end_point, theta, phi, (double)0); + printLine3D(&Disbuff, &rect_dis, TFT_WHITE); + } + //Disbuff.fillRect(0,0,160,80,BLACK); + printLine3D(&Disbuff, &x, TFT_RED); + printLine3D(&Disbuff, &y, TFT_GREEN); + printLine3D(&Disbuff, &z, TFT_BLUE); + /* + Disbuff.setTextColor(TFT_WHITE); + Disbuff.setTextSize(1); + Disbuff.fillRect(0,0,52,18,Disbuff.color565(20,20,20)); + Disbuff.drawString("MPU6886",5,5,1); + */ + Displaybuff(); + last_theta = theta; + last_phi = phi; + + M5.update(); + checkAXPPress(); + } + while ((M5.BtnA.isPressed()) || (M5.BtnB.isPressed())) + { + M5.update(); + checkAXPPress(); + M5.Beep.tone(4000); + delay(10); + } + delay(50); + M5.Beep.mute(); + Disbuff.setTextColor(TFT_WHITE); +} + +SemaphoreHandle_t xSemaphore = NULL; +SemaphoreHandle_t start_dis = NULL; +SemaphoreHandle_t start_fft = NULL; +int8_t i2s_readraw_buff[2048]; +uint8_t fft_dis_buff[241][128] = {0}; +uint16_t posData = 160; + +void MicRecordfft(void *arg) +{ + int16_t *buffptr; + size_t bytesread; + uint16_t count_n = 0; + float adc_data; + double data = 0; + uint16_t ydata; + + while (1) + { + xSemaphoreTake(start_fft, portMAX_DELAY); + xSemaphoreGive(start_fft); + fft_config_t *real_fft_plan = fft_init(1024, FFT_REAL, FFT_FORWARD, NULL, NULL); + i2s_read(I2S_NUM_0, (char *)i2s_readraw_buff, 2048, &bytesread, (100 / portTICK_RATE_MS)); + buffptr = (int16_t *)i2s_readraw_buff; + + for (count_n = 0; count_n < real_fft_plan->size; count_n++) + { + adc_data = (float)map(buffptr[count_n], INT16_MIN, INT16_MAX, -2000, 2000); + real_fft_plan->input[count_n] = adc_data; + } + fft_execute(real_fft_plan); + + xSemaphoreTake(xSemaphore, 100 / portTICK_RATE_MS); + for (count_n = 1; count_n < real_fft_plan->size / 4; count_n++) + { + data = sqrt(real_fft_plan->output[2 * count_n] * real_fft_plan->output[2 * count_n] + real_fft_plan->output[2 * count_n + 1] * real_fft_plan->output[2 * count_n + 1]); + if ((count_n - 1) < 128) + { + data = ( data > 2000 ) ? 2000 : data; + ydata = map(data, 0, 2000, 0, 255); + fft_dis_buff[posData][128 - count_n] = ydata; + } + } + + posData++; + if (posData >= 241) + { + posData = 0; + } + xSemaphoreGive(xSemaphore); + fft_destroy(real_fft_plan); + } +} + +void Drawdisplay(void *arg) +{ + uint16_t count_x = 0, count_y = 0; + uint16_t colorPos; + while (1) + { + xSemaphoreTake(start_dis, portMAX_DELAY); + xSemaphoreGive(start_dis); + xSemaphoreTake(xSemaphore, 500 / portTICK_RATE_MS); + for (count_y = 0; count_y < 128; count_y++) + { + for (count_x = 0; count_x < 240; count_x++) + { + if ((count_x + (posData % 240)) > 240) + { + colorPos = fft_dis_buff[count_x + (posData % 240) - 240][count_y]; + } + else + { + colorPos = fft_dis_buff[count_x + (posData % 240)][count_y]; + } + + Disbuff.drawPixel(count_x, count_y, Disbuff.color565(ImageData[colorPos * 3 + 0], ImageData[colorPos * 3 + 1], ImageData[colorPos * 3 + 2])); + /* + disbuff[ count_y * 160 + count_x ].r = ImageData[ colorPos * 3 + 0 ]; + disbuff[ count_y * 160 + count_x ].g = ImageData[ colorPos * 3 + 1 ]; + disbuff[ count_y * 160 + count_x ].b = ImageData[ colorPos * 3 + 2 ]; + */ + } + } + xSemaphoreGive(xSemaphore); + /* + Disbuff.setTextColor(WHITE); + Disbuff.setTextSize(1); + Disbuff.fillRect(0,0,70,18,Disbuff.color565(20,20,20)); + Disbuff.drawString("MicroPhone",5,5,1); + */ + Disbuff.pushSprite(0, 0); + + } +} + +TaskHandle_t xhandle_display = NULL; +TaskHandle_t xhandle_fft = NULL; + +void DisplayMicro() +{ + Disbuff.fillRect(0, 0, 160, 80, Disbuff.color565(0, 0, 0)); + Disbuff.pushSprite(0, 0); + + xSemaphoreGive(start_dis); + xSemaphoreGive(start_fft); + while ((!M5.BtnA.isPressed()) && (!M5.BtnB.isPressed())) + { + xSemaphoreGive(start_dis); + xSemaphoreGive(start_fft); + M5.update(); + //delay(100); + xSemaphoreTake(start_dis, portMAX_DELAY); + xSemaphoreTake(start_fft, portMAX_DELAY); + } + //xSemaphoreTake( start_dis , portMAX_DELAY ); + //xSemaphoreTake( start_fft , portMAX_DELAY ); + + while ((M5.BtnA.isPressed()) || (M5.BtnB.isPressed())) + { + M5.update(); + checkAXPPress(); + M5.Beep.tone(4000); + delay(10); + } + delay(50); + M5.Beep.mute(); +} + +#define PIN_CLK 0 +#define PIN_DATA 34 + +bool InitI2SMicroPhone() +{ + esp_err_t err = ESP_OK; + i2s_config_t i2s_config = { + .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX | I2S_MODE_PDM), + .sample_rate = 44100, + .bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT, // is fixed at 12bit, stereo, MSB + .channel_format = I2S_CHANNEL_FMT_ALL_RIGHT, + .communication_format = I2S_COMM_FORMAT_I2S, + .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1, + .dma_buf_count = 2, + .dma_buf_len = 128, + }; + + i2s_pin_config_t pin_config; + pin_config.bck_io_num = I2S_PIN_NO_CHANGE; + pin_config.ws_io_num = PIN_CLK; + pin_config.data_out_num = I2S_PIN_NO_CHANGE; + pin_config.data_in_num = PIN_DATA; + + + err += i2s_driver_install(I2S_NUM_0, &i2s_config, 0, NULL); + err += i2s_set_pin(I2S_NUM_0, &pin_config); + err += i2s_set_clk(I2S_NUM_0, 44100, I2S_BITS_PER_SAMPLE_16BIT, I2S_CHANNEL_MONO); + //i2s_set_clk(0) + + if (err != ESP_OK) + { + return false; + } + else + { + return true; + } +} + +void DisplayRTC() +{ + Disbuff.fillRect(0, 0, 240, 135, Disbuff.color565(0, 0, 0)); + //Displaybuff(); + M5.Rtc.GetBm8563Time(); + RTC_TimeTypeDef time; + M5.Rtc.GetTime(&time); + + Disbuff.setTextSize(4); + Disbuff.setCursor(6, 25); + Disbuff.setTextColor(TFT_WHITE); + + while ((!M5.BtnA.isPressed()) && (!M5.BtnB.isPressed())) + { + Disbuff.fillRect(0, 0, 240, 135, Disbuff.color565(0, 0, 0)); + M5.Rtc.GetTime(&time); + Disbuff.setTextSize(4); + Disbuff.setTextColor(TFT_WHITE); + Disbuff.setCursor(25, 50); + Disbuff.printf("%02d:%02d:%02d", time.Hours, time.Minutes, time.Seconds); + Disbuff.fillRect(0,0,240,25,Disbuff.color565(20,20,20)); + Disbuff.setTextSize(2); + Disbuff.drawString("BMP8563 RTC Time",26,5,1); + Displaybuff(); + M5.update(); + checkAXPPress(); + delay(100); + } + while ((M5.BtnA.isPressed()) || (M5.BtnB.isPressed())) + { + M5.update(); + checkAXPPress(); + M5.Beep.tone(4000); + delay(10); + } + delay(50); + M5.Beep.mute(); + Disbuff.setTextColor(TFT_WHITE); +} + +static esp_pm_lock_handle_t rmt_freq_lock; +#define RMT_TX_CHANNEL RMT_CHANNEL_0 +#define RMT_TX_GPIO_NUM GPIO_NUM_9 +#define RMT_CLK_DIV (1) // 80000000 / 1(HZ) + +rmt_item32_t *tx_buffer = NULL; + +void ir_tx_callback(rmt_channel_t channel, void *arg) +{ + //static BaseType_t xHigherPriorityTaskWoken = false; + if (channel == RMT_TX_CHANNEL) + { + esp_pm_lock_release(rmt_freq_lock); + //xHigherPriorityTaskWoken = pdFALSE; + //xSemaphoreGiveFromISR( irTxSem, &xHigherPriorityTaskWoken ); + free(tx_buffer); + } +} + +bool InitIRTx() +{ + rmt_config_t rmt_tx; + rmt_tx.rmt_mode = RMT_MODE_TX; + rmt_tx.channel = RMT_TX_CHANNEL; + rmt_tx.gpio_num = RMT_TX_GPIO_NUM; + + rmt_tx.mem_block_num = 1; + rmt_tx.clk_div = RMT_CLK_DIV; + + rmt_tx.tx_config.loop_en = false; + rmt_tx.tx_config.carrier_duty_percent = 50; + rmt_tx.tx_config.carrier_freq_hz = 38000; + rmt_tx.tx_config.carrier_level = RMT_CARRIER_LEVEL_LOW; + rmt_tx.tx_config.carrier_en = true; + rmt_tx.tx_config.idle_level = RMT_IDLE_LEVEL_HIGH; + rmt_tx.tx_config.idle_output_en = true; + rmt_config(&rmt_tx); + rmt_driver_install(rmt_tx.channel, 0, 0); + + return true; +} + + +bool ir_uart_tx(const uint8_t *src, uint8_t len, bool wait_tx_done) +{ + /* + if(src == NULL || recvFlag == true) { + return false; + } + */ + if (src == NULL) + { + return false; + } + +#if BAUD == 4800 + const rmt_item32_t bit0 = {{{8421, 1, 8421, 1}}}; //Logical 0 + const rmt_item32_t bit1 = {{{8421, 0, 8421, 0}}}; //Logical 1 +#else + const rmt_item32_t bit0 = {{{16842, 1, 16842, 1}}}; //Logical 0 + const rmt_item32_t bit1 = {{{16842, 0, 16842, 0}}}; //Logical 1 +#endif + + uint8_t *psrc = (uint8_t *)src; + //xSemaphoreTake(irTxSem, portMAX_DELAY); + + tx_buffer = (rmt_item32_t *)malloc(sizeof(rmt_item32_t) * 10 * len); + if (tx_buffer == NULL) + { + return false; + } + + rmt_item32_t *pdest = tx_buffer; + + for (uint8_t ptr = 0; ptr < len; ptr++) + { + pdest->val = bit0.val; + pdest++; + for (int i = 0; i < 8; i++) + { + if (*psrc & (0x1 << i)) + { + pdest->val = bit1.val; + } + else + { + pdest->val = bit0.val; + } + pdest++; + } + pdest->val = bit1.val; + pdest++; + psrc++; + } + + esp_pm_lock_acquire(rmt_freq_lock); + rmt_write_items(RMT_TX_CHANNEL, tx_buffer, 10 * len, true); + free(tx_buffer); + return true; +} + + +#define SERVICE_UUID "1bc68b2a-f3e3-11e9-81b4-2a2ae2dbcce4" +#define CHARACTERISTIC_RX_UUID "1bc68da0-f3e3-11e9-81b4-2a2ae2dbcce4" +#define CHARACTERISTIC_TX_UUID "1bc68efe-f3e3-11e9-81b4-2a2ae2dbcce4" + +BLEServer *pServer = NULL; +BLEService *pService = NULL; +BLECharacteristic * pTxCharacteristic; +bool deviceConnected = false; +bool oldDeviceConnected = false; + +class MyServerCallbacks: public BLEServerCallbacks { + void onConnect(BLEServer* pServer) { + deviceConnected = true; + }; + + void onDisconnect(BLEServer* pServer) { + deviceConnected = false; + } +}; + +uint8_t* data = new uint8_t[128]; + +class MyCallbacks: public BLECharacteristicCallbacks { + + void onWrite(BLECharacteristic *pCharacteristic) { + data = pCharacteristic->getData(); + } +}; + +bool InitBLEServer() +{ + uint64_t chipid = ESP.getEfuseMac(); + String blename = "M5-" + String((uint32_t)(chipid >> 32), HEX); + + BLEDevice::init(blename.c_str()); + //BLEDevice::setPower(ESP_PWR_LVL_N12); + pServer = BLEDevice::createServer(); + + pServer->setCallbacks(new MyServerCallbacks()); + pService = pServer->createService(SERVICE_UUID); + pTxCharacteristic = pService->createCharacteristic( + CHARACTERISTIC_RX_UUID, + BLECharacteristic::PROPERTY_NOTIFY + ); + + pTxCharacteristic->addDescriptor(new BLE2902()); + BLECharacteristic * pRxCharacteristic = pService->createCharacteristic( + CHARACTERISTIC_TX_UUID, + BLECharacteristic::PROPERTY_WRITE + ); + pRxCharacteristic->setCallbacks(new MyCallbacks()); + + return true; +} + +bool checkAXP192() +{ + float VBat = M5.Axp.GetBatVoltage(); + + while( VBat < 3.2 ) + { + VBat = M5.Axp.GetBatVoltage(); + ErrorDialog(0x22,"Bat Vol error"); + } + + return true; +} + +uint8_t crc8(uint8_t data, uint8_t *buff, uint32_t length) +{ + uint8_t bit; // bit mask + uint8_t crc = 0xFF; // calculated checksum + uint8_t byteCtr; // byte counter + for (byteCtr = 0; byteCtr < length; byteCtr++) + { + crc ^= (buff[byteCtr]); + for (bit = 8; bit > 0; --bit) + { + if (crc & 0x80) + { + crc = (crc << 1) ^ data; + } + else + { + crc = (crc << 1); + } + } + } + return crc; +} + +int getTempAndHum(float *temp,float *hum ) +{ + static float _tempSave,_HUmSave; + uint8_t databuff[6]; + Wire.beginTransmission(0x44); + Wire.write(0x2c); + Wire.write(0x06); + Wire.endTransmission(); + Wire.requestFrom(0x44,6); + + for( int i = 0; i < 6; i++ ) + { + databuff[i] = Wire.read(); + Serial.printf("%02X ",databuff[i]); + } + Serial.println("--"); + + if( crc8(0x31,&databuff[0],2) == databuff[2] ) + { + uint16_t tempraw = databuff[0] << 8 | databuff[1]; + *temp = -45 + 175 * ( float(tempraw) / 65535.0 ); + _tempSave = *temp; + Serial.printf("Temp:%.2f ",*temp); + } + else + { + *temp = _tempSave; + } + + if( crc8(0x31,&databuff[3],2) == databuff[5] ) + { + uint16_t Humraw = databuff[3] << 8 | databuff[4]; + *hum= 100 * ( float(Humraw) / 65535.0 ); + _HUmSave = *hum; + Serial.printf("Hum:%.2f \n",*hum); + } + else + { + *hum = _HUmSave; + } + return 0; +} + + +void DisIRSend() +{ + uint8_t senddata[20]={0}; + memset(senddata,0x00,sizeof(uint8_t)*20); + + while ((!M5.BtnA.isPressed()) && (!M5.BtnB.isPressed())) + { + Disbuff.fillRect(0, 0, 240, 135, TFT_BLACK); + Disbuff.setSwapBytes(true); + Disbuff.pushImage(180, 16, 48, 48, (uint16_t *)icon_ir); + Disbuff.setTextColor(Disbuff.color565(180,180,180)); + Disbuff.setTextSize(3); + Disbuff.setCursor(12, 20); + Disbuff.printf("IR Send "); + + Disbuff.setTextSize(5); + Disbuff.setCursor(12, 75); + if( senddata[0] % 4 == 0 ) + { + Disbuff.printf("0x%02X> ",senddata[0]); + } + else if( senddata[0] % 4 == 1 ) + { + Disbuff.printf("0x%02X>>",senddata[0]); + } + else if( senddata[0] % 4 == 2 ) + { + Disbuff.printf("0x%02X >>",senddata[0]); + } + else if( senddata[0] % 4 == 3 ) + { + Disbuff.printf("0x%02X >",senddata[0]); + } + + Displaybuff(); + senddata[1]++; + if( senddata[1] > 3 ) + { + senddata[1] = 0; + senddata[0]++; + ir_uart_tx( senddata ,20, true); + } + checkAXPPress(); + M5.update(); + delay(100); + } + while ((M5.BtnA.isPressed()) || (M5.BtnB.isPressed())) + { + M5.update(); + checkAXPPress(); + M5.Beep.tone(4000); + delay(10); + } + delay(50); + M5.Beep.mute(); + Disbuff.setTextColor(TFT_WHITE); +} + +void DisPlayBLESend() +{ + uint8_t senddata[2]={0}; + + pService->start(); + pServer->getAdvertising()->start(); + + uint64_t chipid = ESP.getEfuseMac(); + String blename = "M5-" + String((uint32_t)(chipid >> 32), HEX); + + while ((!M5.BtnA.isPressed()) && (!M5.BtnB.isPressed())) + { + Disbuff.fillRect(0, 0, 240, 135, TFT_BLACK); + if( deviceConnected ) + { + Disbuff.pushImage(180, 16, 48, 48, (uint16_t *)icon_ble); + Disbuff.setTextColor(Disbuff.color565(180,180,180)); + Disbuff.setTextSize(3); + Disbuff.setCursor(12, 20); + //Disbuff.printf("BLE connect!\n"); + Disbuff.printf("BLE Send\n"); + Disbuff.setTextSize(5); + Disbuff.setCursor(12, 75); + if( senddata[0] % 4 == 0 ) + { + Disbuff.printf("0x%02X> ",senddata[0]); + } + else if( senddata[0] % 4 == 1 ) + { + Disbuff.printf("0x%02X>>",senddata[0]); + } + else if( senddata[0] % 4 == 2 ) + { + Disbuff.printf("0x%02X >>",senddata[0]); + } + else if( senddata[0] % 4 == 3 ) + { + Disbuff.printf("0x%02X >",senddata[0]); + } + + senddata[1]++; + if( senddata[1] > 3 ) + { + senddata[1] = 0; + senddata[0]++; + pTxCharacteristic->setValue( senddata, 1 ); + pTxCharacteristic->notify(); + } + } + else + { + Disbuff.setTextSize(2); + Disbuff.setCursor(12, 20); + Disbuff.setTextColor( TFT_RED ); + Disbuff.printf("BLE disconnect\n"); + Disbuff.setCursor(12, 45); + Disbuff.setTextColor(Disbuff.color565(18,150,219)); + + Disbuff.printf(String("Name:"+blename+"\n").c_str()); + Disbuff.setCursor(12, 70); + Disbuff.printf("UUID:1bc68b2a\n"); + Disbuff.pushImage(180, 16, 48, 48, (uint16_t *)icon_ble_disconnect); + } + Displaybuff(); + + M5.update(); + delay(100); + checkAXPPress(); + } + while ((M5.BtnA.isPressed()) || (M5.BtnB.isPressed())) + { + M5.update(); + checkAXPPress(); + M5.Beep.tone(4000); + delay(10); + } + delay(50); + M5.Beep.mute(); + Disbuff.setTextColor(TFT_WHITE); + pService->stop(); + pServer->getAdvertising()->stop(); +} + +void DisplayGroveSHT30() +{ + float tempdata, humdata; + uint8_t count = 0; + + Wire.begin(32,33); + + while ((!M5.BtnA.isPressed()) && (!M5.BtnB.isPressed())) + { + Disbuff.fillRect(0, 0, 240, 135, TFT_BLACK); + Disbuff.setSwapBytes(true); + Disbuff.pushImage(180, 16, 48, 48, (uint16_t *)icon_ir); + Disbuff.setTextColor(Disbuff.color565(180,180,180)); + Disbuff.setTextSize(3); + Disbuff.setCursor(12, 20); + Disbuff.printf("IR Send "); + + if( count >= 10 ) + { + count = 0; + getTempAndHum(&tempdata, &humdata); + + Disbuff.setCursor(12, 50); + Disbuff.printf("%.2f",tempdata); + Disbuff.setCursor(12, 80); + Disbuff.printf("%.2f",humdata); + Disbuff.pushSprite(0,0); + } + checkAXPPress(); + M5.update(); + delay(100); + count ++; + } + while ((M5.BtnA.isPressed()) || (M5.BtnB.isPressed())) + { + M5.update(); + checkAXPPress(); + M5.Beep.tone(4000); + delay(10); + } + delay(50); + M5.Beep.mute(); + Disbuff.setTextColor(TFT_WHITE); + +} +void DisplayTestMode() +{ + float tempdata, humdata; + uint8_t count = 10, count_u = 0, count_t = 0; + + i2s_pin_config_t pin_config; + pin_config.bck_io_num = I2S_PIN_NO_CHANGE; + pin_config.ws_io_num = 33; + pin_config.data_out_num = I2S_PIN_NO_CHANGE; + pin_config.data_in_num = PIN_DATA; + i2s_set_pin(I2S_NUM_0,&pin_config); + + i2s_driver_uninstall(I2S_NUM_0); + + gpio_reset_pin(GPIO_NUM_0); + gpio_reset_pin(GPIO_NUM_26); + + pinMode(26,OUTPUT); + pinMode(25,INPUT_PULLDOWN); + pinMode(36,INPUT_PULLDOWN); + pinMode(0,OUTPUT); + + digitalWrite(0,0); + digitalWrite(26,0); + + + while ((!M5.BtnA.isPressed()) && (!M5.BtnB.isPressed())) + { + Disbuff.fillRect(0, 0, 240, 135, TFT_BLACK); + Disbuff.setSwapBytes(true); + Disbuff.setTextColor(Disbuff.color565(180,180,180)); + Disbuff.setTextSize(3); + + Disbuff.setCursor(12, 7); + if( M5.Axp.GetBatVoltage() > 3.2 ) + { + Disbuff.setTextColor(TFT_GREEN); + } + else + { + Disbuff.setTextColor(TFT_RED); + } + Disbuff.printf("%.2f",M5.Axp.GetBatVoltage()); + Disbuff.setCursor(12, 37); + if( M5.Axp.GetVinVoltage() > 4.6 ) + { + Disbuff.setTextColor(TFT_GREEN); + } + else + { + Disbuff.setTextColor(TFT_RED); + } + Disbuff.printf("%.2f",M5.Axp.GetVinVoltage()); + + digitalWrite(0,0); + digitalWrite(26,0); + count_u = 0; + count_t = 0; + + for( int i = 0 ; i< 10; i++ ) + { + digitalWrite( 0, i % 2 ); + delay(10); + //pin36_adc = analogRead(36); + if(( digitalRead(36) == HIGH )&&( i%2 == 1 )) + { + count_u ++; + } + if(( digitalRead(25) == HIGH )&&( i%2 == 1 )) + { + count_t++; + } + } + + Disbuff.setCursor(110, 7); + if( count_u >= 5 ) + { + Disbuff.setTextColor(TFT_GREEN); + Disbuff.printf("%d G0", count_u); + } + else + { + Disbuff.setTextColor(TFT_RED); + Disbuff.printf("%d G0", count_u); + } + Disbuff.setTextColor(TFT_WHITE); + + Disbuff.setCursor(110, 37); + if( count_t >= 5 ) + { + Disbuff.setTextColor(TFT_GREEN); + Disbuff.printf("%d G25", count_t); + } + else + { + Disbuff.setTextColor(TFT_RED); + Disbuff.printf("%d G25", count_t); + } + Disbuff.setTextColor(TFT_WHITE); + + digitalWrite(0,0); + digitalWrite(26,0); + count_u = 0; + + for( int i = 0 ; i< 10; i++ ) + { + digitalWrite( 26, i % 2 ); + delay(10); + //pin36_adc = analogRead(36); + if(( digitalRead(36) == HIGH )&&( i%2 == 1 )) + { + count_u ++; + } + } + + Disbuff.setCursor(110, 67); + if( count_u >= 5 ) + { + Disbuff.setTextColor(TFT_GREEN); + Disbuff.printf("%d G26", count_u); + } + else + { + Disbuff.setTextColor(TFT_RED); + Disbuff.printf("%d G26", count_u); + } + Disbuff.setTextColor(TFT_WHITE); + + digitalWrite(0,0); + digitalWrite(26,0); + //Serial.printf("G36 Vol:%d\n",analogRead(36)); + + if( count >= 10 ) + { + count = 0; + getTempAndHum(&tempdata, &humdata); + } + + Disbuff.setTextColor(TFT_WHITE); + Disbuff.setCursor(12, 67); + Disbuff.printf("%.1f",tempdata); + Disbuff.setCursor(12, 97); + Disbuff.printf("%.1f",humdata); + + Disbuff.pushSprite(0,0); + + checkAXPPress(); + M5.update(); + delay(10); + count ++; + } + while ((M5.BtnA.isPressed()) || (M5.BtnB.isPressed())) + { + M5.update(); + checkAXPPress(); + M5.Beep.tone(4000); + delay(10); + } + delay(50); + M5.Beep.mute(); + Disbuff.setTextColor(TFT_WHITE); + + InitI2SMicroPhone(); +} + +void ColorBar() +{ + float color_r, color_g, color_b; + + color_r = 0; + color_g = 0; + color_b = 255; + + for (int i = 0; i < 384; i=i+4) + { + if (i < 128) + { + color_r = i * 2; + color_g = 0; + color_b = 255 - (i * 2); + } + else if ((i >= 128) && (i < 256)) + { + color_r = 255 - ((i - 128) * 2); + color_g = (i - 128) * 2; + color_b = 0; + } + else if ((i >= 256) && (i < 384)) + { + color_r = 0; + color_g = 255 - ((i - 256) * 2); + ; + color_b = (i - 256) * 2; + ; + } + Disbuff.fillRect(0, 0, 240, 135, Disbuff.color565(color_r, color_g, color_b)); + Displaybuff(); + } + + for (int i = 0; i < 4; i++) + { + switch (i) + { + case 0: + color_r = 0; + color_g = 0; + color_b = 0; + break; + case 1: + color_r = 255; + color_g = 0; + color_b = 0; + break; + case 2: + color_r = 0; + color_g = 255; + color_b = 0; + break; + case 3: + color_r = 0; + color_g = 0; + color_b = 255; + break; + } + for (int n = 0; n < 240; n++) + { + color_r = (color_r < 255) ? color_r + 1.0625 : 255U; + color_g = (color_g < 255) ? color_g + 1.0625 : 255U; + color_b = (color_b < 255) ? color_b + 1.0625 : 255U; + Disbuff.drawLine(n, i * 33.75, n, (i + 1) * 33.75, Disbuff.color565(color_r, color_g, color_b)); + } + } + Displaybuff(); + delay(500); + + for (int i = 0; i < 4; i++) + { + switch (i) + { + case 0: + color_r = 255; + color_g = 255; + color_b = 255; + break; + case 1: + color_r = 255; + color_g = 0; + color_b = 0; + break; + case 2: + color_r = 0; + color_g = 255; + color_b = 0; + break; + case 3: + color_r = 0; + color_g = 0; + color_b = 255; + break; + } + for (int n = 0; n < 240; n++) + { + color_r = (color_r > 2) ? color_r - 1.0625 : 0U; + color_g = (color_g > 2) ? color_g - 1.0625 : 0U; + color_b = (color_b > 2) ? color_b - 1.0625 : 0U; + Disbuff.drawLine(239 - n, i * 33.75, 239 - n, (i + 1) * 33.75, Disbuff.color565(color_r, color_g, color_b)); + } + } + Displaybuff(); + delay(500); +} + + +uint8_t addrcheckbuff[3] = { + 0x34, // + 0x51, // + 0x68 // +}; + +int checkI2CAddr() +{ + uint8_t faild_count = 0; + + do{ + faild_count = 0; + for (int i = 0; i < sizeof(addrcheckbuff); i++) + { + Wire1.beginTransmission(addrcheckbuff[i]); + if( Wire1.endTransmission() == ESP_OK ) + { + Serial.printf("find %02X addr successful\r\n",addrcheckbuff[i]); + } + else + { + Serial.printf("find %02X addr faild\r\n",addrcheckbuff[i]); + char strbuff[128]; + sprintf(strbuff,"i2c %02X fail",addrcheckbuff[i]); + ErrorDialog(addrcheckbuff[i],(const char *)strbuff); + faild_count ++; + } + } + }while( faild_count != 0 ); + + return 0; +} + +void setup() +{ + M5.begin(); + + Wire.begin(32,33); + + M5.Lcd.setRotation(3); + + Disbuff.createSprite(240, 135); + Disbuff.fillRect(0,0,240,135,Disbuff.color565(10,10,10)); + Disbuff.pushSprite(0,0); + delay(500); + + M5.update(); + if (M5.BtnB.isPressed()) + { + M5.Beep.tone(4000); + delay(100); + M5.Beep.mute(); + TestMode = true; + + while(M5.BtnB.isPressed()) + { + M5.update(); + delay(10); + } + } + M5.Axp.ScreenBreath(12); + + ColorBar(); + + checkI2CAddr(); + checkAXP192(); + + M5.Imu.Init(); + InitI2SMicroPhone(); + InitIRTx(); + InitBLEServer(); + + pinMode(10, OUTPUT); + timerSemaphore = xSemaphoreCreateBinary(); + timer = timerBegin(0, 80, true); + timerAttachInterrupt(timer, &onTimer, true); + timerAlarmWrite(timer, 50000, true); + timerAlarmEnable(timer); + + xSemaphore = xSemaphoreCreateMutex(); + start_dis = xSemaphoreCreateMutex(); + start_fft = xSemaphoreCreateMutex(); + + xSemaphoreTake(start_dis, portMAX_DELAY); + xSemaphoreTake(start_fft, portMAX_DELAY); + + xTaskCreate(Drawdisplay, "Drawdisplay", 1024 * 2, (void *)0, 4, &xhandle_display); + xTaskCreate(MicRecordfft, "MicRecordfft", 1024 * 2, (void *)0, 5, &xhandle_fft); + + Disbuff.pushSprite(0, 0); + +} +bool beepstate = false; + +void loop() +{ + + MPU6886Test(); + DisplayRTC(); + DisplayMicro(); + DisIRSend(); + + if( TestMode ) + { + DisplayTestMode(); + } + + DisPlayBLESend(); + M5.update(); + delay(50); +} + diff --git a/SampleSrc/httpclient01.ino b/SampleSrc/httpclient01.ino new file mode 100644 index 0000000..bef05d4 --- /dev/null +++ b/SampleSrc/httpclient01.ino @@ -0,0 +1,33 @@ +#include +#include // ステータスコードの定義もここにある + +const char* ssid = "miura2g"; +const char* password = "jikken2022"; + +// 天気予報API https://weather.tsukumijima.net/ から、千葉の天気を取得 +const char* weatherapi_url = "http://weather.tsukumijima.net/api/forecast/city/120010"; + +void setup() { + Serial.begin(115200); + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { // 接続中... + delay(50); + Serial.print("."); + } + delay(1000); + + HTTPClient http; // クライアント作成 + http.begin(weatherapi_url); // HTTPでサーバに接続 + int httpCode = http.GET(); // ステータスコードを取得 + if (httpCode > 0) { + Serial.println(httpCode); + if (httpCode == HTTP_CODE_OK) { // ステータスコードが「成功」(200) なら + String payload = http.getString(); + Serial.println(payload); + } + } + http.end(); +} + +void loop() { +} \ No newline at end of file diff --git a/SampleSrc/httpserver01.ino b/SampleSrc/httpserver01.ino new file mode 100644 index 0000000..c1534e9 --- /dev/null +++ b/SampleSrc/httpserver01.ino @@ -0,0 +1,84 @@ +#include + +const char* ssid = "miura2g"; +const char* password = "jikken2022"; + +WiFiServer server(80); + +void setup() { + Serial.begin(115200); + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { // 接続中... + delay(50); + Serial.print("."); + } + String ip = WiFi.localIP().toString(); // m5デバイスのIPアドレス + Serial.printf("\nopen http://%s\n\n", ip.c_str() ); + + server.begin(); // Webサーバを開始 +} + +void loop() { + WiFiClient client = server.available(); + if (client) { + String req = "" ; + String tmp = "" , meth = "" ; + while (client.connected()) { // loop while the client's connected + if (client.available()) { // if there's bytes to read from the client, + char c = client.read(); // read a byte, then + req += c; + if (c == '\n') { // if the byte is a newline character + if (tmp.length() == 0) { // end of request, break while loop + break; + } else { //まだ継続 + if (tmp.startsWith("GET ") || tmp.startsWith("POST ") ) { + meth = tmp; + } + tmp = ""; + } + } else if (c != '\r') { // if you got anything else but a carriage return character, + tmp += c; // add it to the end of the currentLine + } + } + } // end of while + + Serial.println(meth); + if ( meth.startsWith("GET /") ) { + client.println("HTTP/1.1 200 OK"); // header (with response code) + client.println("Content-Type:text/plain"); + client.println(""); // HTTPでは、header と body の区切りは改行 + client.println(meth); + client.println("-- request --"); + client.println(req); + } + + if ( meth.startsWith("POST ") ) { + String post = ""; + char buf[257]; + int n; + while ((n = client.available()) > 0) { + if (n < 256) { + client.readBytes(buf, n) ; + buf[n] = 0 ; + } else { + client.readBytes(buf, 256) ; + buf[256] = 0 ; + } + } + post += buf ; + + client.println("HTTP/1.1 200 OK"); + client.println("Content-Type:text/plain"); + client.println(""); // HTTPでは、header と body の区切りは改行 + client.println(meth); + client.println("-- request --"); + client.println(req); + client.println("-- post data --"); + client.println(post); + } + // close the connection: + client.stop(); + Serial.println(" --- Client Disconnected."); + } + delay(100); +} \ No newline at end of file diff --git a/SampleSrc/irsend01.ino b/SampleSrc/irsend01.ino new file mode 100644 index 0000000..cfb1daf --- /dev/null +++ b/SampleSrc/irsend01.ino @@ -0,0 +1,15 @@ +#include +#include + +uint16_t kIrLed = 9; // 内蔵IrLED +IRsend irsend(kIrLed); + +uint32_t code = 0x2FD48B7; // Toshiba TV Power +void setup() { + irsend.begin(); +} + +void loop() { + irsend.sendNEC( code , 32); + delay(5000); +} \ No newline at end of file diff --git a/SampleSrc/irsend02.ino b/SampleSrc/irsend02.ino new file mode 100644 index 0000000..27ad9be --- /dev/null +++ b/SampleSrc/irsend02.ino @@ -0,0 +1,81 @@ +/* IRremoteESP8266: IRsendDemo - demonstrates sending IR codes with IRsend. + + Version 1.1 January, 2019 + Based on Ken Shirriff's IrsendDemo Version 0.1 July, 2009, + Copyright 2009 Ken Shirriff, http://arcfn.com + + An IR LED circuit *MUST* be connected to the ESP8266 on a pin + as specified by kIrLed below. + + TL;DR: The IR LED needs to be driven by a transistor for a good result. + + Suggested circuit: + https://github.com/crankyoldgit/IRremoteESP8266/wiki#ir-sending + + Common mistakes & tips: + * * Don't just connect the IR LED directly to the pin, it won't + have enough current to drive the IR LED effectively. + * * Make sure you have the IR LED polarity correct. + See: https://learn.sparkfun.com/tutorials/polarity/diode-and-led-polarity + * * Typical digital camera/phones can be used to see if the IR LED is flashed. + Replace the IR LED with a normal LED if you don't have a digital camera + when debugging. + * * Avoid using the following pins unless you really know what you are doing: + * * Pin 0/D3: Can interfere with the boot/program mode & support circuits. + * * Pin 1/TX/TXD0: Any serial transmissions from the ESP8266 will interfere. + * * Pin 3/RX/RXD0: Any serial transmissions to the ESP8266 will interfere. + * * ESP-01 modules are tricky. We suggest you use a module with more GPIOs + for your first time. e.g. ESP-12 etc. +*/ +#include +#include +#include + +const uint16_t kIrLed = 9; // 赤外LEDが接続されたピン番号 + +IRsend irsend(kIrLed); // Set the GPIO to be used to sending the message. + +// Example of data captured by IRrecvDumpV2.ino +uint16_t photoshot[99] = {3488, 1740, 438, 424, 438, 1302, 440, 422, 438, 424, 440, 422, 440, 422, + 440, 422, 438, 424, 438, 424, 438, 424, 438, 424, 438, 426, 438, 424, + 438, 1302, 440, 422, 442, 422, 440, 424, 438, 424, 438, 424, + 442, 420, 438, 1304, 438, 1304, 440, 1302, 438, 424, 438, 424, 438, 424, + 438, 424, 438, 1302, 440, 424, 440, 1302, 440, 422, 438, 424, 440, 422, + 440, 1302, 438, 1304, 438, 424, 438, 424, 438, 1304, 438, 1302, 438, 424, + 438, 424, 462, 1278, 464, 1278, 464, 1278, 462, 1280, 460, 1280, 464, 398, + 464, 398, 438 + }; // PANASONIC 40040E14667C + +uint16_t recording[99] = {3490, 1738, 440, 424, 438, 1304, 438, 424, 438, 424, 438, 424, 438, 424, + 438, 424, 438, 424, 438, 424, 438, 424, 438, 424, 438, 424, 438, 424, + 438, 1302, 440, 424, 442, 422, 438, 424, 438, 424, 438, 424, 438, 424, + 438, 1302, 442, 1302, 438, 1302, 440, 424, 440, 424, 438, 424, 438, 424, + 438, 1302, 442, 420, 442, 1302, 438, 424, 438, 422, 442, 422, 438, 424, + 440, 1302, 438, 1302, 438, 424, 438, 424, 438, 1302, 442, 1300, 440, 424, + 440, 422, 440, 1302, 440, 424, 462, 1278, 464, 400, 464, 398, 464, 1278, 464 + }; // PANASONIC 40040E143329 + +void setup() { + M5.begin(); + Serial.begin(115200); + M5.Lcd.fillScreen(BLUE); + irsend.begin(); +} + +void loop() { + // Serial.println("NEC"); // irsend.sendNEC(0x00FFE01FUL); + // Serial.println("Sony"); // irsend.sendSony(0xa90, 12, 2); // 12 bits & 2 repeats + M5.update(); + if (M5.BtnA.wasReleased()) { + irsend.sendRaw(photoshot, 99, 38); // Send a raw data capture at 38kHz. + M5.Lcd.fillScreen(YELLOW); + } else if (M5.BtnB.wasReleased()) { + irsend.sendRaw(recording, 99, 38); // Send a raw data capture at 38kHz. + M5.Lcd.fillScreen(RED); + } + delay(150); + M5.Lcd.fillScreen(BLUE); + // Serial.println("a Samsung A/C state from IRrecvDumpV2"); + // irsend.sendSamsungAC(samsungState); + // delay(2000); +} \ No newline at end of file diff --git a/SampleSrc/lcd01.ino b/SampleSrc/lcd01.ino new file mode 100644 index 0000000..123ecda --- /dev/null +++ b/SampleSrc/lcd01.ino @@ -0,0 +1,35 @@ +#include + +void setup() { + M5.begin(); + M5.Lcd.setRotation(3); + M5.Lcd.fillRect(0, 0, 240, 135, RED); + //M5StickCPlusの画面サイズは、240 x 135 + + M5.Lcd.fillRect(10, 10, 220, 115, ORANGE); + M5.Lcd.fillRect(20, 20, 200, 95, YELLOW); + M5.Lcd.fillRect(30, 30, 180, 75, GREENYELLOW); + M5.Lcd.fillRect(40, 40, 160, 55, CYAN); + M5.Lcd.fillRect(50, 50, 140, 35, BLUE); + M5.Lcd.fillRect(60, 60, 120, 15, MAGENTA); + + M5.Lcd.setTextFont(1); // 8pixel ASCII font + M5.Lcd.setTextSize(1); // Magnify (x1-7) + M5.Lcd.setTextColor(WHITE); + M5.Lcd.setCursor(10,1); M5.Lcd.print("RED"); + M5.Lcd.setTextColor(BLACK); + M5.Lcd.setCursor(20,11); M5.Lcd.print("ORANGE"); + M5.Lcd.setCursor(30,21); M5.Lcd.print("YELLOW"); + M5.Lcd.setCursor(40,31); M5.Lcd.print("GREENYELLOW"); + M5.Lcd.setCursor(50,41); M5.Lcd.print("CYAN"); + M5.Lcd.setTextColor(WHITE); + M5.Lcd.setCursor(60,51); M5.Lcd.print("BLUE"); + M5.Lcd.setCursor(70,60,2); M5.Lcd.print("MAGENTA (2)"); + // setCursorの第3引数は、TextFont番号 + + M5.Lcd.setTextColor(BLACK); + M5.Lcd.setCursor(30,90,4); M5.Lcd.print("26pixel ASCII (4)"); +} + +void loop() { +} \ No newline at end of file diff --git a/SampleSrc/led01.ino b/SampleSrc/led01.ino new file mode 100644 index 0000000..4149c43 --- /dev/null +++ b/SampleSrc/led01.ino @@ -0,0 +1,15 @@ +int PIN = 10; // 赤色LED G10 +//int PIN = 9; // Ir LED (カメラには映りますが、肉眼では見えません) G9 +// その他、G0 (0) , G25 (25), G26 (26) がつかえます。 +// https://lang-ship.com/blog/work/m5stickc-io/ + +void setup() { + pinMode(PIN, OUTPUT); // PINのモード設定 +} + +void loop() { + digitalWrite(PIN, HIGH); // HIGH = 1 + delay(1000); + digitalWrite(PIN, LOW); // LOW = 0 + delay(500); +} \ No newline at end of file diff --git a/SampleSrc/line01.ino b/SampleSrc/line01.ino new file mode 100644 index 0000000..b6cd9ab --- /dev/null +++ b/SampleSrc/line01.ino @@ -0,0 +1,52 @@ +#include +#include +#include +#include + +WiFiMulti WiFiMulti; + +void setup() { + Serial.begin(115200); + WiFi.mode(WIFI_STA); + WiFiMulti.addAP("miura_asp_2g", "********"); + + // wait for WiFi connection + Serial.print("Waiting for WiFi to connect..."); + while ((WiFiMulti.run() != WL_CONNECTED)) { + Serial.print("."); + delay(50); + } + Serial.println(" connected"); +} + +void loop() { + HTTPClient http; + + if (http.begin("https://notify-api.line.me/api/notify")) { // HTTPS + http.addHeader("Authorization", "Bearer TOKENTOKENTOKEN"); // ここのTOKENTOKEN... の部分に、取得したTokenを指定する + http.addHeader("Content-Type", "application/x-www-form-urlencoded"); // format of postdata + String postdata = "message=日本語でも大丈夫です"; + int httpCode = http.POST(postdata); + + // httpCode will be negative on error + if (httpCode > 0) { + // HTTP header has been send and Server response header has been handled + Serial.printf("[HTTP] GET... code: %d\n", httpCode); + + // file found at server + if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) { + String payload = http.getString(); + Serial.println(payload); + } + } else { + Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str()); + } + http.end(); + } else { + Serial.printf("[HTTP] Unable to connect\n"); + } + + Serial.println(); + Serial.println("Waiting 2 minutes..."); + delay(60*2*1000); // 120秒まつ +} \ No newline at end of file diff --git a/SampleSrc/mqtt01pub.ino b/SampleSrc/mqtt01pub.ino new file mode 100644 index 0000000..aee91ff --- /dev/null +++ b/SampleSrc/mqtt01pub.ino @@ -0,0 +1,70 @@ +// MQTT Publisher example +//#include +#include +// ライブラリで PubSubClient をいれておく ★★★ 重要 ★★★ +#include + +const char* ssid = "miura2g"; +const char* password = "jikken2022"; + +const char* server = "192.168.11.11"; // "mqtt.istlab.info"; +const int port = 1883; // 注:学内ネットワークはポート制限あり。 +const char* pubTopic = "office/temp"; //"ex1/groupXX/sensor";のようにして、他の班とかぶらないようにすること。 +const char* mquser = "ex1"; +//const char* mqpass = "***PASSWORD***"; // 講義システム(三浦担当講義用)を参照すること。 +const char* mqpass = ""; // 講義システム(三浦担当講義用)を参照すること。 +WiFiClient wifiClient; +char* clientid = "m5stickc01_00000001"; //デバイス個別に設定すればなんでもよい +PubSubClient mqttClient(wifiClient); // MQTT Client + +void setup() { + // M5.begin(); + Serial.begin(115200); + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { // 接続中... + Serial.print("."); + delay(200); + } + Serial.println( WiFi.localIP().toString() ); //取得したIPアドレス + // 参考:WiFiデバイスのMACアドレスを取得し、clientid として用いる + // (18行目のclientidの定義を変更し、char clientid[20]とするのがのぞましい) + // uint8_t mac[6]; + // esp_read_mac(mac, ESP_MAC_WIFI_STA); + // sprintf(clientid, "%02X:%02X:%02X:%02X:%02X:%02X", + // mac[0], mac[1], mac[2], mac[3], mac[4], mac[5] ); + mqttClient.setServer(server, port); + + if (!mqttClient.connected()) { + Serial.println("Try (re)connecting..."); + reconnect(); + } +} + +void loop() { + // シリアルコンソールから書き込みがあれば, publishする + byte mbuf[100]; int pos = 0; + while (Serial.available()) { // ノンブロッキング + mbuf[pos] = Serial.read(); + pos++; + } + if (pos > 0) { + mbuf[pos-1] = 0; //改行をNULLに置き換える + Serial.println((char*)mbuf); + // ブローカにデータを送信する。最後の false を true にすると、retained になる。 + bool ret = mqttClient.publish(pubTopic, mbuf, pos-1, false); + if (!ret){ + Serial.println("publish failed."); + } + } + delay(10); +} + +void reconnect() { + while (!mqttClient.connected()) { + if (mqttClient.connect(clientid, mquser, mqpass)) { + Serial.println("Connected to MQTT Broker."); + } else { + Serial.printf("Connect Failed. state=%d", mqttClient.state()); + } + } +} diff --git a/SampleSrc/mqtt01sub.ino b/SampleSrc/mqtt01sub.ino new file mode 100644 index 0000000..6852c61 --- /dev/null +++ b/SampleSrc/mqtt01sub.ino @@ -0,0 +1,82 @@ +// MQTT Subscriber example +// #include +#include +// ライブラリで PubSubClient をいれておく ★★★ 重要 ★★★ +#include +// ライブラリで ArduinoJson v6.xをいれておく ★★★ 重要 ★★★ +// (注意:Arduino_Json v0.1.0 は別物) +#include + +const char* ssid = "miura2g"; +const char* password = "jikken2022"; + +const char* server = "192.168.11.11"; // "mqtt.istlab.info"; +const int port = 1883; // 注:学内ネットワークはポート制限あり。 +const char* pubTopic = "office/temp"; // 例: ex1/groupXX/sensor +const char* mquser = "ex1"; +const char* mqpass = "***PASSWORD***"; +WiFiClient wifiClient; +char* clientid = "m5stickc01_00000001"; //デバイス個別に設定すればなんでもよい +PubSubClient mqttClient(wifiClient); // MQTT Client + +void setup() { +// M5.begin(); + Serial.begin(115200); + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { // 接続中... + Serial.print("."); + delay(200); + } + Serial.println( WiFi.localIP().toString() ); //取得したIPアドレス + // 参考:WiFiデバイスのMACアドレスを取得し、clientid として用いる + // (18行目のclientidの定義を変更し、char clientid[20]とするのがのぞましい) + // uint8_t mac[6]; + // esp_read_mac(mac, ESP_MAC_WIFI_STA); + // sprintf(clientid, "%02X:%02X:%02X:%02X:%02X:%02X", + // mac[0], mac[1], mac[2], mac[3], mac[4], mac[5] ); + mqttClient.setServer(server, port); + mqttClient.setCallback(callback_on_subscribe); + + if (!mqttClient.connected()) { + Serial.println("Try (re)connecting..."); + reconnect(); + } + mqttClient.subscribe(pubTopic); + +} + +void loop() { + + mqttClient.loop(); // データがpublishされたら、callback_on_subscribe が呼ばれる + + delay(100); +} + +void reconnect() { + while (!mqttClient.connected()) { + if (mqttClient.connect(clientid, mquser, mqpass)) { + Serial.println("Connected to MQTT Broker."); + } else { + Serial.printf("Connect Failed. state=%d", mqttClient.state()); + } + } +} + +// データがPublishされたら、ここが実行される。(39行目でコールバック関数を設定しているため) +void callback_on_subscribe(char* topic, byte* payload, unsigned int len) { + char buf[100]; + Serial.print("Message arrived ["); + Serial.print(topic); + Serial.print("] "); + for (int i = 0; i < len ; i++) { + buf[i] = (char)payload[i]; + } + buf[len] = 0; + Serial.println(buf); + return; + // 参考:JSON Parsing example + // StaticJsonDocument<200> sjdoc; + // deserializeJson(sjdoc, buf); + // int intval = sjdoc["intval"]; + // const char* str = sjdoc["string"]; +} \ No newline at end of file diff --git a/SampleSrc/ntp01.ino b/SampleSrc/ntp01.ino new file mode 100644 index 0000000..f8c8868 --- /dev/null +++ b/SampleSrc/ntp01.ino @@ -0,0 +1,31 @@ +#include + +const char* ssid = "miura2g"; +const char* password = "jikken2022"; + +void setup() { + Serial.begin(115200); + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { // 接続中... + Serial.print("."); + } +// char* ntpserver = "ntp.nict.jp"; // 学内のNetworkを利用するときは、10.64.7.184 にする + char* ntpserver = "192.168.11.11"; // 学内のNetworkを利用するときは、10.64.7.184 にする + configTime(9 * 3600, 0, ntpserver);//GMTとの時差(秒) が9*3600, サマータイムで進める時間(秒)が0 +} + +void loop() { + struct tm localTime; + char buf[30]; + getLocalTime(&localTime); + sprintf(buf, ">> %04d/%02d/%02d %02d:%02d:%02d", + localTime.tm_year + 1900, + localTime.tm_mon + 1, + localTime.tm_mday, + localTime.tm_hour, + localTime.tm_min, + localTime.tm_sec + ); + Serial.println(buf); + delay(1000); +} \ No newline at end of file diff --git a/SampleSrc/ota01.ino b/SampleSrc/ota01.ino new file mode 100644 index 0000000..70afdba --- /dev/null +++ b/SampleSrc/ota01.ino @@ -0,0 +1,109 @@ +#include +#include +#include + +const char *ssid = "miura2g"; +const char *password = "jikken2022"; + +void setup() +{ + M5.begin(); + M5.Lcd.setRotation(3); + M5.Lcd.fillScreen(ORANGE); + M5.Lcd.setCursor(10, 50, 4); + + WiFi.begin(ssid, password); // 接続開始 + while (WiFi.status() != WL_CONNECTED) + { // 接続中... + M5.Beep.tone(2000); + delay(200); + M5.Beep.mute(); + delay(300); + M5.Lcd.print("."); + } + // 接続完了!! + M5.Beep.tone(4000); + M5.Lcd.fillScreen(CYAN); + M5.Lcd.setCursor(0, 10, 4); + M5.Lcd.setTextColor(BLACK, CYAN); + M5.Lcd.print(" OTA Test\n Wifi Connected!\n "); + String gotip = WiFi.localIP().toString(); // m5デバイスのIPアドレス + M5.Lcd.println(gotip); + + // MACアドレスを表示 + uint8_t mac[6]; + char macchar[100]; + esp_read_mac(mac, ESP_MAC_WIFI_STA); + sprintf(macchar, " %02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); + String macstr = macchar; + M5.Lcd.println(macstr); + + delay(1500); + M5.Beep.mute(); +} + +void loop() +{ + ArduinoOTA.handle(); + delay(100); + M5.update(); + if (M5.Axp.GetBtnPress()) // 電源ボタン押下したら + { + // ESP.restart(); + M5.Axp.Write1Byte(0x32, M5.Axp.Read8bit(0x32) | 0x80); //電源OFF + } +} + +void ota_setup() { + + // Port defaults to 3232 +// ArduinoOTA.setPort(3232); + + // Hostname defaults to esp3232-[MAC] +// ArduinoOTA.setHostname("m5stickc0123"); + + // No authentication by default + // ArduinoOTA.setPassword("pass"); + // Password can be set with it's md5 value as well + // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3 + // ArduinoOTA.setPasswordHash("4528e6a7bb9341c36c425faf40ef32c3");//pass + + ArduinoOTA + .onStart([]() { + String type; + if (ArduinoOTA.getCommand() == U_FLASH) + type = "sketch"; + else // U_SPIFFS + type = "filesystem"; + }) + .onEnd([]() { + M5.Beep.tone(2000); + delay(150); + M5.Beep.tone(4000); + delay(150); + M5.Beep.tone(8000); + delay(300); + M5.Beep.mute(); + }) + .onProgress([](unsigned int progress, unsigned int total) { + ota_progress(progress, total); + }) + .onError([](ota_error_t error) { + }); + + ArduinoOTA.begin(); +} + +int prev_progress = -1; +char buf[30]; +void ota_progress(unsigned int progress, unsigned int total) { + int cur_progress = (progress / (total / 100)); + sprintf(buf, "OTA %d%% done", cur_progress ); + if (prev_progress < cur_progress) { + M5.Lcd.setCursor(0, 30, 1); + M5.Lcd.fillScreen(BLACK); + M5.Lcd.setTextColor(WHITE, BLACK); + M5.Lcd.println(buf); + prev_progress = cur_progress; + } +} diff --git a/SampleSrc/pref01.ino b/SampleSrc/pref01.ino new file mode 100644 index 0000000..a86d7cc --- /dev/null +++ b/SampleSrc/pref01.ino @@ -0,0 +1,55 @@ +#include +#include + +Preferences pref; + +int count = 0; +void setup() { + M5.begin(); + M5.Lcd.setRotation(0); //縦型 + M5.Lcd.fillScreen(CYAN); + M5.Lcd.setTextSize(2); + loadCount(&count); + M5.Beep.tone(2000, 500); + M5.Lcd.printf("count = %d\n", count); +} + +void loop() { + M5.Beep.update(); + M5.update(); + if (M5.BtnA.wasReleasefor(1000) ) { // Aボタン長押し + count = 0; + saveCount(&count); + M5.Beep.tone(1200, 300); + M5.Lcd.printf("count = %d\n", count); + } else if (M5.BtnA.wasReleased()) { // Aボタン押し + count++ ; + saveCount(&count); + M5.Beep.tone(2000, 300); + M5.Lcd.printf("count = %d\n", count); + } else if (M5.BtnB.wasReleased()) { // Bボタン押し + reboot(); + } else if (M5.Axp.GetBtnPress() == 2) { // 電源ボタン押し + poweroff(); + } + delay(50); +} + +void loadCount(int *c) { + pref.begin("mydata", false); + *c = pref.getInt("count"); + pref.end(); +} +void saveCount(int *c) { + pref.begin("mydata", false); + pref.putInt("count", *c); + pref.end(); +} + +void poweroff() { + M5.Axp.Write1Byte(0x32, M5.Axp.Read8bit(0x32) | 0x80);//PowerOff +} + +void reboot() { + ESP.restart(); +} \ No newline at end of file diff --git a/SampleSrc/pwm01.ino b/SampleSrc/pwm01.ino new file mode 100644 index 0000000..d2c8bf6 --- /dev/null +++ b/SampleSrc/pwm01.ino @@ -0,0 +1,22 @@ +int PIN = 10; // 内蔵LED +int PWM_CH = 1; // 0~3で指定する。0にすると高音が鳴って耳障り? + +void setup() { + pinMode(PIN, OUTPUT); // PINのモード設定 + ledcSetup(PWM_CH, 90, 8); // CH, 周波数(Hz) 【 90Hz より、小さくするとどうなる?】 , 分解能(bit) + ledcAttachPin(PIN, PWM_CH); + // https://lang-ship.com/reference/unofficial/M5StickC/Peripherals/LED_Control/ +} + +void loop() { + int i; + + for (int i = 0 ; i < 256 ; i++) { + ledcWrite(PWM_CH, i); + delay( 5 ); + } + for (int i = 256 ; i > 0 ; i--) { + ledcWrite(PWM_CH, i); + delay( 5 ); + } +} \ No newline at end of file diff --git a/SampleSrc/regexp01.ino b/SampleSrc/regexp01.ino new file mode 100644 index 0000000..5ac99bf --- /dev/null +++ b/SampleSrc/regexp01.ino @@ -0,0 +1,25 @@ +#include +#include + +Dictionary *dict = new Dictionary(); // 辞書/ハッシュ。キー文字列→値 を保持するデータ構造 + +void match_callback (const char * match, // matching string (not null-terminated) + const unsigned int length, // length of matching string + const MatchState & ms) // MatchState in use (to get captures) +{ + char k [10]; // size must be large enough to hold captures + char v [10]; // size must be large enough to hold captures + ms.GetCapture(k, 0); + ms.GetCapture(v, 1); + dict->insert(k, v); // 辞書に追加 (たとえば、 red→120 を追加) +} // end of match_callback + +// たとえば、*cbuf = "red=120&green=255&blue=9" のような文字列を想定する +void param2dict(char *cbuf){ + MatchState ms (cbuf); //正規表現マッチャーの作成 + ms.GlobalMatch ("([a-z]+)=([0-9]+)", match_callback); // (key)=(value) で複数回マッチングする。match_callback は別関数。 + int r = dict->search("red").toInt(); // 辞書 dict + int g = dict->search("green").toInt(); + int b = dict->search("blue").toInt(); + int32_t bgcolor = (int(r * 31 / 255) << 11) | (int(g * 63 / 255) << 5) | (int(b * 31 / 255)); +} diff --git a/SampleSrc/rtc01.ino b/SampleSrc/rtc01.ino new file mode 100644 index 0000000..b3b6d92 --- /dev/null +++ b/SampleSrc/rtc01.ino @@ -0,0 +1,64 @@ +#include +#include +// #include "time.h" + +#define USE_NTP 1 // NTPからRTCに時刻設定するなら1 + +void setRTCfromLT(struct tm lt) { + RTC_DateTypeDef DateStruct; + DateStruct.Year = lt.tm_year + 1900; + DateStruct.Month = lt.tm_mon + 1; + DateStruct.Date = lt.tm_mday; + DateStruct.WeekDay = lt.tm_wday; + M5.Rtc.SetData(&DateStruct); + + RTC_TimeTypeDef TimeStruct; + TimeStruct.Hours = lt.tm_hour; + TimeStruct.Minutes = lt.tm_min; + TimeStruct.Seconds = lt.tm_sec+1; + M5.Rtc.SetTime(&TimeStruct); +} + +void getRTC(char* buf) { + RTC_DateTypeDef DateStruct; + RTC_TimeTypeDef TimeStruct; + M5.Rtc.GetData(&DateStruct); + M5.Rtc.GetTime(&TimeStruct); + sprintf(buf, "%04d/%02d/%02d %02d:%02d:%02d", + DateStruct.Year, DateStruct.Month, DateStruct.Date, + TimeStruct.Hours, TimeStruct.Minutes, TimeStruct.Seconds + ); +} + +void setup() { + M5.begin(); + M5.Lcd.setRotation(3); + Serial.begin(115200); + + if (USE_NTP) { + const char* ssid = "miura2g"; + const char* password = "jikken2022"; + const char* ntpserver = "192.168.11.11"; // or ntp.nict.jp"; // or 10.64.7.184 for CIT-ap1x + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { // 接続中... + Serial.print("."); + } + configTime(9 * 3600, 0, ntpserver); + + struct tm localTime; + while (localTime.tm_year < 80) { + getLocalTime(&localTime); delay(50); + } + setRTCfromLT(localTime); + } +} + +void loop() { + char buf[30]; + getRTC(buf); // bufに、日時文字列を書き込む + Serial.println(buf); + M5.Lcd.fillScreen(BLUE); + M5.Lcd.setCursor(0, 50, 4); + M5.Lcd.println(buf); + delay(1000); +} \ No newline at end of file diff --git a/SampleSrc/serial01.ino b/SampleSrc/serial01.ino new file mode 100644 index 0000000..2947625 --- /dev/null +++ b/SampleSrc/serial01.ino @@ -0,0 +1,9 @@ +int num = 0; +void setup() { + Serial.begin(115200); // 通信速度をbpsで設定 +} +void loop() { + Serial.printf("%d \n" , num); + num++; + delay(500); // 500ミリ秒待つ +} diff --git a/SampleSrc/serial02.ino b/SampleSrc/serial02.ino new file mode 100644 index 0000000..5ccd3cb --- /dev/null +++ b/SampleSrc/serial02.ino @@ -0,0 +1,29 @@ +int num = 0; +char buf[100]; + +void setup() { + Serial.begin(115200); // 通信速度をbpsで設定 +} + +void loop() { + int pos = 0; + while (Serial.available()) { //PCから送信された文字があるあいだ、くりかえす + char c = Serial.read(); // 1バイト読み取る + buf[pos] = c; // 配列buf に格納 + pos++; // 格納位置をひとつ右へ + } + if (pos > 0) { + buf[pos] = 0; // さいごに Null (文字列の終端)を追加(これを忘れるとどうなる?) + Serial.print("> from pc: "); + Serial.print( buf ); // 格納しておいた文字列を表示 + if (buf[0] == '0' && pos == 2) { // buf={ 48(='0'), 10(=改行) } のとき + num = 0; // num を 0 にする + Serial.println( "Reset num" ); + } + delay(2000); + } + + Serial.printf("%d \n" , num ); + num++; + delay(500); +} \ No newline at end of file diff --git a/SampleSrc/servohat01.ino b/SampleSrc/servohat01.ino new file mode 100644 index 0000000..5205ab1 --- /dev/null +++ b/SampleSrc/servohat01.ino @@ -0,0 +1,28 @@ +#define MLOW 5 +#define MHIGH 33 + +void setup() { + ledcSetup(1, 50, 8); //サーボハット CH1 + ledcAttachPin(26, 1); + + pinMode(10, OUTPUT); + ledcSetup(2, 100, 8);//LED CH2 + ledcAttachPin(10, 2); +} + +void loop() { + for (int i = MLOW; i <= MHIGH; i = i + 1) { + ledcWrite(1, i); + int v = map(i, MLOW, MHIGH, 0, 256); // 範囲5〜33に対するiの値を、範囲0〜256に変換 + ledcWrite(2, v); + delay(50); + } + delay(300); + for (int i = MHIGH; i >= MLOW; i = i - 1) { + ledcWrite(1, i); + int v = map(i, MLOW, MHIGH, 0, 256); + ledcWrite(2, v); + delay(20); + } + delay(300); +} \ No newline at end of file diff --git a/SampleSrc/setrotation.html b/SampleSrc/setrotation.html new file mode 100644 index 0000000..1ed0451 --- /dev/null +++ b/SampleSrc/setrotation.html @@ -0,0 +1,3 @@ +© + + diff --git a/SampleSrc/sketch_feb25a.ino b/SampleSrc/sketch_feb25a.ino new file mode 100644 index 0000000..95c2b6e --- /dev/null +++ b/SampleSrc/sketch_feb25a.ino @@ -0,0 +1,9 @@ +void setup() { + // put your setup code here, to run once: + +} + +void loop() { + // put your main code here, to run repeatedly: + +} diff --git a/SampleSrc/sound01.ino b/SampleSrc/sound01.ino new file mode 100644 index 0000000..f468876 --- /dev/null +++ b/SampleSrc/sound01.ino @@ -0,0 +1,34 @@ +#include + +int f[28] = { 262, 294, 330, 349, 392, 440, 494 }; // 配列のサイズは4オクターブ分 +void setup() { + Serial.begin(115200); + M5.begin(); + M5.Lcd.setRotation(3); + for (int i = 0; i < 7; i++) { + f[i + 7] = f[i] * 2; + f[i + 14] = f[i] * 4; + f[i + 21] = f[i] * 8; + } + // setBeep( Hz, ms) でビープ音を設定して、beep()で鳴らす。 + M5.Beep.setBeep(523, 500); M5.Beep.beep(); delay(500); + // tone( Hz, ms ) で鳴らす方法 + M5.Beep.tone(1046, 500); delay(500); + // msを省略し、tone( Hz ) で鳴らす(結局、delayが必要になるので) + M5.Beep.tone(2092); delay(500); + // ここはmsを指定するとよい (loopのM5.Beep.updateが停めてくれるので、delayを省略できる) + M5.Beep.tone(2092 * 2, 1000); +} + +void loop() { + M5.Beep.update(); //tone()やsetBeep()で指定した時間を過ぎていたら音を止める。 + // M5.Beep.mute() とすると、すぐに停止する。 + + while (Serial.available()) { + char c = Serial.read(); + if (c < 'c' || 'z' < c) continue; // c〜zの文字以外なら、以降のwhile内処理をスキップ + M5.Beep.tone( f[c - 'c'] , 1000); // 1秒鳴らす + Serial.println( f[c - 'c'] ); + } + delay(50); +} diff --git a/SampleSrc/speakerhat01.ino b/SampleSrc/speakerhat01.ino new file mode 100644 index 0000000..a369b31 --- /dev/null +++ b/SampleSrc/speakerhat01.ino @@ -0,0 +1,55 @@ +#include + +const int servo_pin = 26; +uint8_t ledChannel = 0; +uint8_t resolution = 8; +uint32_t sampling_rate = 16000; //16kの場合。8kの場合は、8000 + +/* + 別ファイル(ファイル名拡張子は.ino)に、音声データを以下の形式で貼っておく。 + 【音1】 + const uint8_t coin05_8k_raw[] PROGMEM = { 0x80, ... }; + const uint32_t coin05_8k_raw_len = 7218; // ←配列のサイズ + 【音2】 + const uint8_t coin05_16k_raw[] PROGMEM = { 0x80, ... }; + const uint32_t coin05_16k_raw_len = 14437; // ←配列のサイズ + PROGMEM と書くと、フラッシュメモリに配置する + + そのうえで、以下のextern文を、別タブの変数名と合わせて書く。 + 変数名を一致させることが重要です。 +*/ +// 【音1】 +extern const uint8_t coin05_8k_raw[]; +extern const uint32_t coin05_8k_raw_len; +// 【音2】 +extern const uint8_t coin05_16k_raw[]; +extern const uint32_t coin05_16k_raw_len; + +void setup() { + // put your setup code here, to run once: + M5.begin(); + M5.Lcd.setRotation(3); + M5.Lcd.setCursor(0, 30, 4); + M5.Lcd.println(" speaker hat test"); + ledcSetup(ledChannel, sampling_rate * 32, resolution); + ledcAttachPin(servo_pin, ledChannel); + ledcWrite(ledChannel, 0); +} +void playMusic(const uint8_t* music_data, uint32_t len, uint16_t sample_rate) { + uint32_t delay_interval = ((uint32_t)1000000 / sample_rate); + for (int i = 0; i < len; i++) { + ledcWrite(ledChannel, music_data[i]); + delayMicroseconds(delay_interval); + } + ledcWriteTone(ledChannel, 0); +} +void loop() { + M5.update(); + if (M5.BtnA.wasReleased()) { + playMusic(coin05_16k_raw, coin05_16k_raw_len, sampling_rate + 800); //なぜか音が低いので +800した + } else if (M5.BtnB.wasReleased()) { + playMusic(coin05_8k_raw, coin05_8k_raw_len, sampling_rate / 2); // 8kなので、2で割った + } + ledcWriteTone(ledChannel, 0); + delay(100); +} \ No newline at end of file diff --git a/SampleSrc/sprite01.ino b/SampleSrc/sprite01.ino new file mode 100644 index 0000000..bcc0fb8 --- /dev/null +++ b/SampleSrc/sprite01.ino @@ -0,0 +1,39 @@ +#include + +int USE_SPRITE = 0 ; //スプライトを使用するとき1 + +TFT_eSprite spu = TFT_eSprite(&M5.Lcd); // Sprite object + +void setup() { + M5.begin(); + M5.Lcd.setRotation(3); + + spu.setColorDepth(8); + spu.createSprite(240, 135); + + randomSeed(analogRead(0)); +} + +void loop() { + int r = random(100000); + if ( USE_SPRITE ) { + spu.fillSprite( CYAN ); + spu.setCursor(30, 34, 4); spu.setTextSize(2); + spu.setTextColor( WHITE, BLUE ); + spu.printf(" %d \n Sprite ", r ); + spu.pushSprite(0, 0); + } else { + M5.Lcd.fillScreen( CYAN ); + M5.Lcd.setCursor(30, 34, 4); M5.Lcd.setTextSize(2); + M5.Lcd.setTextColor( WHITE, BLUE ); + M5.Lcd.printf(" %d \n LCD ", r); + } + + M5.update(); + if (M5.BtnA.wasReleased()) { + USE_SPRITE = 1 - USE_SPRITE ; // スプライト使用の切り替え(1なら0、0なら1) + M5.Beep.tone(1000 + 1000 * USE_SPRITE, 500); + } + M5.Beep.update(); + delay(100); +} \ No newline at end of file diff --git a/SampleSrc/str01.ino b/SampleSrc/str01.ino new file mode 100644 index 0000000..9d99309 --- /dev/null +++ b/SampleSrc/str01.ino @@ -0,0 +1,69 @@ +#include + +void setup() { + Serial.begin(115200); + M5.begin(); + M5.Lcd.setRotation(3); + Serial.println("整数 または 6文字の16進数(RRGGBB)を入力してください。"); +} + +String str = ""; // String: 可変長の文字列クラス +void loop() { + char buf[100] = {0}; + int pos = 0; + while (Serial.available()) { //PCから送信された文字があるあいだ、くりかえす + char c = Serial.read(); // 1バイト読み取る + buf[pos] = c; // 配列buf に格納 + pos++; // 格納位置をひとつ右へ + } + if (pos > 0) { + buf[pos] = 0; + String sbuf = buf; + sbuf.trim(); //文字列の前と後の空白と改行を取り除く(破壊的メソッド) + str.concat(sbuf); // 文字列の連結 (意味としては、str = str + sbuf) + Serial.println(str); + if (isDigit(sbuf)) { + int num = sbuf.toInt(); + Serial.println( num * num ); + } + if (sbuf.length() == 6) { // RRGGBBとして、LCD画面の背景を塗りつぶす + sbuf.toLowerCase(); + uint8_t r = hexToDec( sbuf.substring(0, 2) ); + uint8_t g = hexToDec( sbuf.substring(2, 4) ); + uint8_t b = hexToDec( sbuf.substring(4, 6) ); + M5.Lcd.fillScreen( getColorUInt16( r , g , b ) ); + M5.Lcd.setCursor(0, 70, 4); + M5.Lcd.printf(" %02x %02x %02x \n", r, g, b); + M5.Lcd.printf(" %d %d %d ", r, g, b); + } + } + delay(50); +} +//全ての文字が0〜9なら、1(true)を返す +bool isDigit(String s) { + bool isAllDigit = true; + const char *p = s.c_str(); // String.c_str() は、NULLで終端されたchar配列の先頭アドレスを返す + while ( *p != 0 ) { + if (*p < '0' || '9' < *p) isAllDigit = false; + p++; + } + return isAllDigit; +} +// M5 用の、16ビットカラー値に変換 引用:https://qiita.com/nnn112358/items/ea6b5e81623ba690343c +uint16_t getColorUInt16(uint8_t red, uint8_t green, uint8_t blue) { + return ((red >> 3) << 11) | ((green >> 2) << 5) | (blue >> 3); +} +// 引数hex が16進表記の文字列だと仮定して、10進の値を返す +uint8_t hexToDec(String hex) { + int dec = 0; + int tmp = 0; + for (int p = 0; p < hex.length(); p++) { + tmp = int(hex.charAt(p)); + if ( '0' <= tmp && tmp <= '9' ) tmp = tmp - '0'; + if ( 'a' <= tmp && tmp <= 'f' ) tmp = tmp - 'a' + 10; + if ( 'A' <= tmp && tmp <= 'F' ) tmp = tmp - 'A' + 10; + tmp = constrain(tmp, 0, 15); //例外処理 + dec = (dec * 16) + tmp; + } + return dec; +} \ No newline at end of file diff --git a/SampleSrc/task01.ino b/SampleSrc/task01.ino new file mode 100644 index 0000000..0a4aec8 --- /dev/null +++ b/SampleSrc/task01.ino @@ -0,0 +1,70 @@ +#include + +int interval_msec[] = { 333, 1000, 2000 }; // Led, Lcd, Beep +TaskHandle_t tH[3]; + +void ledTask(void *pvParam) { + /** setup をここに書く **/ + portTickType lastTime; + int PIN = 10; + pinMode(PIN, OUTPUT); // PINのモード設定 + int highOrLow = 0; + for (;;) { + /** loop をここに書く **/ + lastTime = xTaskGetTickCount(); + vTaskDelayUntil(&lastTime, interval_msec[0] ); // 第2引数に、実行間隔ミリ秒を指定 + digitalWrite(PIN, highOrLow); // HIGH = 1, LOW = 0 + highOrLow = 1 - highOrLow; // HIGH <=> LOW を切り替える + } +} + +void lcdTask(void *pvParam) { + /** setup をここに書く **/ + portTickType lastTime; + M5.Lcd.setRotation(0); + M5.Lcd.fillScreen(GREEN); + M5.Lcd.setTextColor(WHITE, OLIVE); + M5.Lcd.setTextSize(2); + M5.Lcd.setCursor(0, 0); + int count = 0; + for (;;) { + /** loop をここに書く **/ + M5.Lcd.printf("count=%d\n", count); + count++; + lastTime = xTaskGetTickCount(); + vTaskDelayUntil(&lastTime, interval_msec[1] ); // 第2引数に、実行間隔ミリ秒を指定 + if (count % 10 == 0) { + M5.Lcd.fillScreen(GREEN); + M5.Lcd.setCursor(0, 0); + } + } +} + +void beepTask(void *pvParam) { + /** setup をここに書く **/ + portTickType lastTime; + int f[8] = { 262, 294, 330, 349, 392, 440, 494, 524 }; + int note = 0; + for (;;) { + /** loop をここに書く **/ + lastTime = xTaskGetTickCount(); // ここでの時刻を変数に保存 + M5.Beep.tone( f[note] ); + delay(500); //0.5秒鳴らす + M5.Beep.mute(); + note = (note+1)%8; + vTaskDelayUntil(&lastTime, interval_msec[2] ); + // 途中の処理やdelayは含まず、「保存」時刻の2秒後まで待つ。 + } +} + +void setup() { + M5.begin(); + + xTaskCreatePinnedToCore(ledTask , "LedT", 4096, NULL, 1, &tH[0], 1/*<= CoreNo.*/ ); + xTaskCreatePinnedToCore(lcdTask , "LcdT", 4096, NULL, 1, &tH[1], 1/*<= CoreNo.*/ ); + xTaskCreatePinnedToCore(beepTask,"BeepT", 4096, NULL, 1, &tH[2], 0/*<= CoreNo.*/ ); +} + +void loop() { + delay(10); +} \ No newline at end of file diff --git a/SampleSrc/task02.ino b/SampleSrc/task02.ino new file mode 100644 index 0000000..5e42e95 --- /dev/null +++ b/SampleSrc/task02.ino @@ -0,0 +1,45 @@ +xSemaphoreHandle mutex; //ミューテックス(排他制御用) + +void withArgTask(void *pvParam) { + int num = *(int*) pvParam; // 引数は、グローバル変数のアドレスをポインタで渡す + BaseType_t mStatus; + char* tsknm = pcTaskGetTaskName(NULL); //自タスク名を取得するならNULL、他タスク名を取得するならタスクハンドルを引数に指定する。 + while (1) { + mStatus = xSemaphoreTake(mutex, 500); // ミューテックスを取得 + if (mStatus == pdPASS) { + Serial.println("----"); + Serial.printf("[%s] ", tsknm ); + delay(500); + for (int i = 1; i < 6; i++) { + Serial.printf("%d ", i * num); + delay(300); + } + delay(300); + Serial.printf("done \n"); + delay(300); + xSemaphoreGive(mutex); // ミューテックスを解放 + vTaskDelete(NULL); // 自タスクを削除する + } else { + delay(random(10,100)); //ミューテックスがとれなかったらランダムに待つ + } + } +} + +int arg[] = {2, 3, 5, 7, 11} ; +char tskname[5]; + +void setup() { + Serial.begin(115200); + mutex = xSemaphoreCreateMutex(); // ミューテックス作成 +} + +void loop() { + Serial.println("-------"); + if (mutex != NULL) { // ミューテックスの作成に成功していたら + for (int i = 0; i < 5; i++) { + sprintf(tskname, "x%d", arg[i]); + xTaskCreatePinnedToCore(withArgTask, tskname, 4096, &arg[i], 1, NULL , 1); + } + } + delay(20 * 1000); // 次のタスクの仕込みまで、20秒待つ +} \ No newline at end of file diff --git a/SampleSrc/telnet01.ino b/SampleSrc/telnet01.ino new file mode 100644 index 0000000..572ca6e --- /dev/null +++ b/SampleSrc/telnet01.ino @@ -0,0 +1,130 @@ +// オリジナルのWifiTelnetToSerial を、改変しました。 +/* + WiFiTelnetToSerial - Example Transparent UART to Telnet Server for ESP32 + + Copyright (c) 2017 Hristo Gochkov. All rights reserved. + This file is part of the ESP32 WiFi library for Arduino environment. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ +#include +#include + +WiFiMulti wifiMulti; + +//how many clients should be able to telnet to this ESP32 +#define MAX_SRV_CLIENTS 3 +const char* ssid = "miura2g"; +const char* password = "jikken2022"; + +WiFiServer server(23); +WiFiClient serverClients[MAX_SRV_CLIENTS]; + +void setup() { + Serial.begin(115200); + Serial.println("\nConnecting"); + + wifiMulti.addAP(ssid, password); + // wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2"); + // wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3"); + + Serial.println("Connecting Wifi "); + for (int loops = 10; loops > 0; loops--) { + if (wifiMulti.run() == WL_CONNECTED) { + Serial.println(""); + Serial.print("WiFi connected "); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + break; + } + else { + Serial.println(loops); + delay(1000); + } + } + if (wifiMulti.run() != WL_CONNECTED) { + Serial.println("WiFi connect failed"); + delay(1000); + ESP.restart(); + } + + //start UART and the server + // Serial2.begin(9600); + server.begin(); + server.setNoDelay(true); + + Serial.print("Ready! Use 'telnet "); + Serial.print(WiFi.localIP()); + Serial.println(" 23' to connect"); +} + +void loop() { + uint8_t i; + if (wifiMulti.run() == WL_CONNECTED) { + //check if there are any new clients + if (server.hasClient()) { + for (i = 0; i < MAX_SRV_CLIENTS; i++) { + //find free/disconnected spot + if (!serverClients[i] || !serverClients[i].connected()) { + if (serverClients[i]) serverClients[i].stop(); + serverClients[i] = server.available(); + if (!serverClients[i]) Serial.println("available broken"); + Serial.print("New client: "); + Serial.print(i); Serial.print(' '); + Serial.println(serverClients[i].remoteIP()); + break; + } + } + if (i >= MAX_SRV_CLIENTS) { + //no free/disconnected spot so reject + server.available().stop(); + } + } + //check clients for data + for (i = 0; i < MAX_SRV_CLIENTS; i++) { + if (serverClients[i] && serverClients[i].connected()) { + if (serverClients[i].available()) { + //get data from the telnet client and push it to the UART + while (serverClients[i].available()) Serial.write(serverClients[i].read()); + } + } + else { + if (serverClients[i]) { + serverClients[i].stop(); + } + } + } + //check ==UART== => Serial for data + if (Serial.available()) { + size_t len = Serial.available(); + uint8_t sbuf[len]; + Serial.readBytes(sbuf, len); + //push UART data to all connected telnet clients + for (i = 0; i < MAX_SRV_CLIENTS; i++) { + if (serverClients[i] && serverClients[i].connected()) { + serverClients[i].write(sbuf, len); + delay(1); + } + } + } + } + else { + Serial.println("WiFi not connected!"); + for (i = 0; i < MAX_SRV_CLIENTS; i++) { + if (serverClients[i]) serverClients[i].stop(); + } + delay(1000); + } +} \ No newline at end of file diff --git a/SampleSrc/wifi01.ino b/SampleSrc/wifi01.ino new file mode 100644 index 0000000..3c6ff6f --- /dev/null +++ b/SampleSrc/wifi01.ino @@ -0,0 +1,32 @@ +#include +#include + +const char* ssid = "miura2g"; +const char* password = "jikken2022"; + +void setup() { + M5.begin(); + M5.Lcd.setRotation(3); + M5.Lcd.fillScreen(ORANGE); + M5.Lcd.setCursor(10, 50, 4); + + WiFi.begin(ssid, password); // 接続開始 + while (WiFi.status() != WL_CONNECTED) { // 接続中... + M5.Beep.tone(2000); delay(200); + M5.Beep.mute(); delay(300); + M5.Lcd.print("."); + } + // 接続完了!! + M5.Beep.tone(4000); + M5.Lcd.fillScreen(GREEN); + M5.Lcd.setCursor(0, 40, 4); + M5.Lcd.setTextColor(BLACK, GREEN); + M5.Lcd.print(" Wifi Connected!\n "); + String gotip = WiFi.localIP().toString(); // m5デバイスのIPアドレス + M5.Lcd.println(gotip); + delay(1500); + M5.Beep.mute(); +} + +void loop() { +} \ No newline at end of file diff --git a/SampleSrc/wifimac.ino b/SampleSrc/wifimac.ino new file mode 100644 index 0000000..3a668f3 --- /dev/null +++ b/SampleSrc/wifimac.ino @@ -0,0 +1,46 @@ +#include +#include + +const char *ssid = "miura2g"; +const char *password = "jikken2022"; + +void setup() +{ + M5.begin(); + M5.Lcd.setRotation(3); + M5.Lcd.fillScreen(ORANGE); + M5.Lcd.setCursor(10, 50, 4); + + WiFi.begin(ssid, password); // 接続開始 + while (WiFi.status() != WL_CONNECTED) + { // 接続中... + M5.Beep.tone(2000); + delay(200); + M5.Beep.mute(); + delay(300); + M5.Lcd.print("."); + } + // 接続完了!! + M5.Beep.tone(4000); + M5.Lcd.fillScreen(GREEN); + M5.Lcd.setCursor(0, 30, 4); + M5.Lcd.setTextColor(BLACK, GREEN); + M5.Lcd.print(" Wifi Connected!\n "); + String gotip = WiFi.localIP().toString(); // m5デバイスのIPアドレス + M5.Lcd.println(gotip); + + // MACアドレスを表示 + uint8_t mac[6]; + char macchar[100]; + esp_read_mac(mac, ESP_MAC_WIFI_STA); + sprintf(macchar, " %02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); + String macstr = macchar; + M5.Lcd.println(macstr); + + delay(1500); + M5.Beep.mute(); +} + +void loop() +{ +} \ No newline at end of file