From 3b0232de1b6282eacfbff6e50b68fca7e67b8511 Mon Sep 17 00:00:00 2001 From: Eric Severance Date: Mon, 17 Feb 2025 13:03:44 -0800 Subject: [PATCH 01/34] Validate MQTT config by testing a connection (#6076) --- src/mqtt/MQTT.cpp | 158 +++++++++++++++++++++++++--------------- src/mqtt/MQTT.h | 30 ++++---- test/test_mqtt/MQTT.cpp | 63 +++++++++++++++- 3 files changed, 173 insertions(+), 78 deletions(-) diff --git a/src/mqtt/MQTT.cpp b/src/mqtt/MQTT.cpp index 67eba82a6..5f16f909f 100644 --- a/src/mqtt/MQTT.cpp +++ b/src/mqtt/MQTT.cpp @@ -41,7 +41,6 @@ MQTT *mqtt; namespace { constexpr int reconnectMax = 5; -constexpr uint16_t mqttPort = 1883; // FIXME - this size calculation is super sloppy, but it will go away once we dynamically alloc meshpackets static uint8_t bytes[meshtastic_MqttClientProxyMessage_size + 30]; // 12 for channel name and 16 for nodeid @@ -251,6 +250,68 @@ bool isDefaultServer(const String &host) { return host.length() == 0 || host == default_mqtt_address; } + +struct PubSubConfig { + explicit PubSubConfig(const meshtastic_ModuleConfig_MQTTConfig &config) + { + if (*config.address) { + serverAddr = config.address; + mqttUsername = config.username; + mqttPassword = config.password; + } + if (config.tls_enabled) { + serverPort = 8883; + } + std::tie(serverAddr, serverPort) = parseHostAndPort(serverAddr.c_str(), serverPort); + } + + // Defaults + static constexpr uint16_t defaultPort = 1883; + uint16_t serverPort = defaultPort; + String serverAddr = default_mqtt_address; + const char *mqttUsername = default_mqtt_username; + const char *mqttPassword = default_mqtt_password; +}; + +#if HAS_NETWORKING +bool connectPubSub(const PubSubConfig &config, PubSubClient &pubSub, Client &client) +{ + pubSub.setBufferSize(1024); + pubSub.setClient(client); + pubSub.setServer(config.serverAddr.c_str(), config.serverPort); + + LOG_INFO("Connecting directly to MQTT server %s, port: %d, username: %s, password: %s", config.serverAddr.c_str(), + config.serverPort, config.mqttUsername, config.mqttPassword); + + const bool connected = pubSub.connect(owner.id, config.mqttUsername, config.mqttPassword); + if (connected) { + LOG_INFO("MQTT connected"); + } else { + LOG_WARN("Failed to connect to MQTT server"); + } + return connected; +} +#endif + +inline bool isConnectedToNetwork() +{ +#if HAS_WIFI + return WiFi.isConnected(); +#elif HAS_ETHERNET + return Ethernet.linkStatus() == LinkON; +#else + return false; +#endif +} + +/** return true if we have a channel that wants uplink/downlink or map reporting is enabled + */ +bool wantsLink() +{ + const bool hasChannelorMapReport = + moduleConfig.mqtt.enabled && (moduleConfig.mqtt.map_reporting_enabled || channels.anyMqttEnabled()); + return hasChannelorMapReport && (moduleConfig.mqtt.proxy_to_client_enabled || isConnectedToNetwork()); +} } // namespace void MQTT::mqttCallback(char *topic, byte *payload, unsigned int length) @@ -413,46 +474,18 @@ void MQTT::reconnect() return; // Don't try to connect directly to the server } #if HAS_NETWORKING - // Defaults - int serverPort = mqttPort; - const char *serverAddr = default_mqtt_address; - const char *mqttUsername = default_mqtt_username; - const char *mqttPassword = default_mqtt_password; + const PubSubConfig config(moduleConfig.mqtt); MQTTClient *clientConnection = mqttClient.get(); - - if (*moduleConfig.mqtt.address) { - serverAddr = moduleConfig.mqtt.address; - mqttUsername = moduleConfig.mqtt.username; - mqttPassword = moduleConfig.mqtt.password; - } -#if HAS_WIFI && !defined(ARCH_PORTDUINO) && !defined(CONFIG_IDF_TARGET_ESP32C6) +#if MQTT_SUPPORTS_TLS if (moduleConfig.mqtt.tls_enabled) { - // change default for encrypted to 8883 - try { - serverPort = 8883; - wifiSecureClient.setInsecure(); - LOG_INFO("Use TLS-encrypted session"); - clientConnection = &wifiSecureClient; - } catch (const std::exception &e) { - LOG_ERROR("MQTT ERROR: %s", e.what()); - } + mqttClientTLS.setInsecure(); + LOG_INFO("Use TLS-encrypted session"); + clientConnection = &mqttClientTLS; } else { LOG_INFO("Use non-TLS-encrypted session"); } #endif - std::pair hostAndPort = parseHostAndPort(serverAddr, serverPort); - serverAddr = hostAndPort.first.c_str(); - serverPort = hostAndPort.second; - pubSub.setServer(serverAddr, serverPort); - pubSub.setBufferSize(1024); - - LOG_INFO("Connect directly to MQTT server %s, port: %d, username: %s, password: %s", serverAddr, serverPort, mqttUsername, - mqttPassword); - - pubSub.setClient(*clientConnection); - bool connected = pubSub.connect(owner.id, mqttUsername, mqttPassword); - if (connected) { - LOG_INFO("MQTT connected"); + if (connectPubSub(config, pubSub, *clientConnection)) { enabled = true; // Start running background process again runASAP = true; reconnectCount = 0; @@ -507,23 +540,6 @@ void MQTT::sendSubscriptions() #endif } -bool MQTT::wantsLink() const -{ - bool hasChannelorMapReport = - moduleConfig.mqtt.enabled && (moduleConfig.mqtt.map_reporting_enabled || channels.anyMqttEnabled()); - - if (hasChannelorMapReport && moduleConfig.mqtt.proxy_to_client_enabled) - return true; - -#if HAS_WIFI - return hasChannelorMapReport && WiFi.isConnected(); -#endif -#if HAS_ETHERNET - return hasChannelorMapReport && Ethernet.linkStatus() == LinkON; -#endif - return false; -} - int32_t MQTT::runOnce() { #if HAS_NETWORKING @@ -567,18 +583,42 @@ int32_t MQTT::runOnce() return 30000; } -bool MQTT::isValidConfig(const meshtastic_ModuleConfig_MQTTConfig &config) +bool MQTT::isValidConfig(const meshtastic_ModuleConfig_MQTTConfig &config, MQTTClient *client) { - String host; - uint16_t port; - std::tie(host, port) = parseHostAndPort(config.address, mqttPort); - const bool defaultServer = isDefaultServer(host); + const PubSubConfig parsed(config); + + if (config.enabled && !config.proxy_to_client_enabled) { +#if HAS_NETWORKING + std::unique_ptr clientConnection; + if (config.tls_enabled) { +#if MQTT_SUPPORTS_TLS + MQTTClientTLS *tlsClient = new MQTTClientTLS; + clientConnection.reset(tlsClient); + tlsClient->setInsecure(); +#else + LOG_ERROR("Invalid MQTT config: tls_enabled is not supported on this node"); + return false; +#endif + } else { + clientConnection.reset(new MQTTClient); + } + std::unique_ptr pubSub(new PubSubClient); + if (isConnectedToNetwork()) { + return connectPubSub(parsed, *pubSub, (client != nullptr) ? *client : *clientConnection); + } +#else + LOG_ERROR("Invalid MQTT config: proxy_to_client_enabled must be enabled on nodes that do not have a network"); + return false; +#endif + } + + const bool defaultServer = isDefaultServer(parsed.serverAddr); if (defaultServer && config.tls_enabled) { LOG_ERROR("Invalid MQTT config: TLS was enabled, but the default server does not support TLS"); return false; } - if (defaultServer && port != mqttPort) { - LOG_ERROR("Invalid MQTT config: Unsupported port '%d' for the default MQTT server", port); + if (defaultServer && parsed.serverPort != PubSubConfig::defaultPort) { + LOG_ERROR("Invalid MQTT config: Unsupported port '%d' for the default MQTT server", parsed.serverPort); return false; } return true; diff --git a/src/mqtt/MQTT.h b/src/mqtt/MQTT.h index f7e3864f8..5cda90218 100644 --- a/src/mqtt/MQTT.h +++ b/src/mqtt/MQTT.h @@ -10,12 +10,10 @@ #endif #if HAS_WIFI #include -#if !defined(ARCH_PORTDUINO) -#if defined(ESP_ARDUINO_VERSION_MAJOR) && ESP_ARDUINO_VERSION_MAJOR < 3 +#if __has_include() #include #endif #endif -#endif #if HAS_ETHERNET #include #endif @@ -61,7 +59,8 @@ class MQTT : private concurrency::OSThread bool isUsingDefaultServer() { return isConfiguredForDefaultServer; } - static bool isValidConfig(const meshtastic_ModuleConfig_MQTTConfig &config); + /// Validate the meshtastic_ModuleConfig_MQTTConfig. + static bool isValidConfig(const meshtastic_ModuleConfig_MQTTConfig &config) { return isValidConfig(config, nullptr); } protected: struct QueueEntry { @@ -78,22 +77,23 @@ class MQTT : private concurrency::OSThread #ifndef PIO_UNIT_TESTING private: #endif - // supposedly the current version is busted: - // http://www.iotsharing.com/2017/08/how-to-use-esp32-mqtts-with-mqtts-mosquitto-broker-tls-ssl.html #if HAS_WIFI using MQTTClient = WiFiClient; -#if !defined(ARCH_PORTDUINO) -#if (defined(ESP_ARDUINO_VERSION_MAJOR) && ESP_ARDUINO_VERSION_MAJOR < 3) || defined(RPI_PICO) - WiFiClientSecure wifiSecureClient; +#if __has_include() + using MQTTClientTLS = WiFiClientSecure; +#define MQTT_SUPPORTS_TLS 1 #endif -#endif -#endif -#if HAS_ETHERNET +#elif HAS_ETHERNET using MQTTClient = EthernetClient; +#else + using MQTTClient = void; #endif #if HAS_NETWORKING std::unique_ptr mqttClient; +#if MQTT_SUPPORTS_TLS + MQTTClientTLS mqttClientTLS; +#endif PubSubClient pubSub; explicit MQTT(std::unique_ptr mqttClient); #endif @@ -109,10 +109,6 @@ class MQTT : private concurrency::OSThread uint32_t map_position_precision = default_map_position_precision; uint32_t map_publish_interval_msecs = default_map_publish_interval_secs * 1000; - /** return true if we have a channel that wants uplink/downlink or map reporting is enabled - */ - bool wantsLink() const; - /** Attempt to connect to server if necessary */ void reconnect(); @@ -124,6 +120,8 @@ class MQTT : private concurrency::OSThread /// Callback for direct mqtt subscription messages static void mqttCallback(char *topic, byte *payload, unsigned int length); + static bool isValidConfig(const meshtastic_ModuleConfig_MQTTConfig &config, MQTTClient *client); + /// Called when a new publish arrives from the MQTT server void onReceive(char *topic, byte *payload, size_t length); diff --git a/test/test_mqtt/MQTT.cpp b/test/test_mqtt/MQTT.cpp index c00922548..50a98001a 100644 --- a/test/test_mqtt/MQTT.cpp +++ b/test/test_mqtt/MQTT.cpp @@ -94,6 +94,7 @@ class MockPubSubServer : public WiFiClient int connect(IPAddress ip, uint16_t port) override { + port_ = port; if (refuseConnection_) return 0; connected_ = true; @@ -101,6 +102,8 @@ class MockPubSubServer : public WiFiClient } int connect(const char *host, uint16_t port) override { + host_ = host; + port_ = port; if (refuseConnection_) return 0; connected_ = true; @@ -197,6 +200,8 @@ class MockPubSubServer : public WiFiClient bool connected_ = false; bool refuseConnection_ = false; // Simulate a failed connection. uint32_t ipAddress_ = 0x01010101; // IP address of the MQTT server. + std::string host_; // Requested host. + uint16_t port_; // Requested port. std::list buffer_; // Buffer of messages for the pubSub client to receive. std::string command_; // Current command received from the pubSub client. std::set subscriptions_; // Topics that the pubSub client has subscribed to. @@ -242,6 +247,7 @@ class MQTTUnitTest : public MQTT mqttClient.release(); delete pubsub; } + using MQTT::isValidConfig; using MQTT::reconnect; int queueSize() { return mqttQueue.numUsed(); } void reportToMap(std::optional precision = std::nullopt) @@ -801,13 +807,25 @@ void test_customMqttRoot(void) } // Empty configuration is valid. -void test_configurationEmptyIsValid(void) +void test_configEmptyIsValid(void) { - meshtastic_ModuleConfig_MQTTConfig config; + meshtastic_ModuleConfig_MQTTConfig config = {}; TEST_ASSERT_TRUE(MQTT::isValidConfig(config)); } +// Empty 'enabled' configuration is valid. +void test_configEnabledEmptyIsValid(void) +{ + meshtastic_ModuleConfig_MQTTConfig config = {.enabled = true}; + MockPubSubServer client; + + TEST_ASSERT_TRUE(MQTTUnitTest::isValidConfig(config, &client)); + TEST_ASSERT_TRUE(client.connected_); + TEST_ASSERT_EQUAL_STRING(default_mqtt_address, client.host_.c_str()); + TEST_ASSERT_EQUAL(1883, client.port_); +} + // Configuration with the default server is valid. void test_configWithDefaultServer(void) { @@ -832,6 +850,41 @@ void test_configWithDefaultServerAndInvalidTLSEnabled(void) TEST_ASSERT_FALSE(MQTT::isValidConfig(config)); } +// isValidConfig connects to a custom host and port. +void test_configCustomHostAndPort(void) +{ + meshtastic_ModuleConfig_MQTTConfig config = {.enabled = true, .address = "server:1234"}; + MockPubSubServer client; + + TEST_ASSERT_TRUE(MQTTUnitTest::isValidConfig(config, &client)); + TEST_ASSERT_TRUE(client.connected_); + TEST_ASSERT_EQUAL_STRING("server", client.host_.c_str()); + TEST_ASSERT_EQUAL(1234, client.port_); +} + +// isValidConfig returns false if a connection cannot be established. +void test_configWithConnectionFailure(void) +{ + meshtastic_ModuleConfig_MQTTConfig config = {.enabled = true, .address = "server"}; + MockPubSubServer client; + client.refuseConnection_ = true; + + TEST_ASSERT_FALSE(MQTTUnitTest::isValidConfig(config, &client)); +} + +// isValidConfig returns true when tls_enabled is supported, or false otherwise. +void test_configWithTLSEnabled(void) +{ + meshtastic_ModuleConfig_MQTTConfig config = {.enabled = true, .address = "server", .tls_enabled = true}; + MockPubSubServer client; + +#if MQTT_SUPPORTS_TLS + TEST_ASSERT_TRUE(MQTTUnitTest::isValidConfig(config, &client)); +#else + TEST_ASSERT_FALSE(MQTTUnitTest::isValidConfig(config, &client)); +#endif +} + void setup() { initializeTestEnvironment(); @@ -875,10 +928,14 @@ void setup() RUN_TEST(test_enabled); RUN_TEST(test_disabled); RUN_TEST(test_customMqttRoot); - RUN_TEST(test_configurationEmptyIsValid); + RUN_TEST(test_configEmptyIsValid); + RUN_TEST(test_configEnabledEmptyIsValid); RUN_TEST(test_configWithDefaultServer); RUN_TEST(test_configWithDefaultServerAndInvalidPort); RUN_TEST(test_configWithDefaultServerAndInvalidTLSEnabled); + RUN_TEST(test_configCustomHostAndPort); + RUN_TEST(test_configWithConnectionFailure); + RUN_TEST(test_configWithTLSEnabled); exit(UNITY_END()); } #else From c67aa25d19aaa4773fc3ee457ad421c9daf2c01d Mon Sep 17 00:00:00 2001 From: noahhaon <170715+noahhaon@users.noreply.github.com> Date: Tue, 18 Feb 2025 20:25:55 +0100 Subject: [PATCH 02/34] Add missing traceroute fields to serialized JSON output (#6087) --- src/serialization/MeshPacketSerializer.cpp | 23 +++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/serialization/MeshPacketSerializer.cpp b/src/serialization/MeshPacketSerializer.cpp index 2f0d881f2..2c1dc0ca7 100644 --- a/src/serialization/MeshPacketSerializer.cpp +++ b/src/serialization/MeshPacketSerializer.cpp @@ -220,7 +220,11 @@ std::string MeshPacketSerializer::JsonSerialize(const meshtastic_MeshPacket *mp, if (pb_decode_from_bytes(mp->decoded.payload.bytes, mp->decoded.payload.size, &meshtastic_RouteDiscovery_msg, &scratch)) { decoded = &scratch; - JSONArray route; // Route this message took + JSONArray route; // Route this message took + JSONArray routeBack; // Route this message took back + JSONArray snrTowards; // Snr for forward route + JSONArray snrBack; // Snr for reverse route + // Lambda function for adding a long name to the route auto addToRoute = [](JSONArray *route, NodeNum num) { char long_name[40] = "Unknown"; @@ -236,7 +240,24 @@ std::string MeshPacketSerializer::JsonSerialize(const meshtastic_MeshPacket *mp, } addToRoute(&route, mp->from); // Ended at the original destination (source of response) + addToRoute(&routeBack, mp->from); // Started at the original destination (source of response) + for (uint8_t i = 0; i < decoded->route_back_count; i++) { + addToRoute(&routeBack, decoded->route_back[i]); + } + addToRoute(&routeBack, mp->to); // Ended at the original transmitter (destination of response) + + for (uint8_t i = 0; i < decoded->snr_back_count; i++) { + snrBack.push_back(new JSONValue((float)decoded->snr_back[i] / 4)); + } + + for (uint8_t i = 0; i < decoded->snr_towards_count; i++) { + snrTowards.push_back(new JSONValue((float)decoded->snr_towards[i] / 4)); + } + msgPayload["route"] = new JSONValue(route); + msgPayload["route_back"] = new JSONValue(routeBack); + msgPayload["snr_back"] = new JSONValue(snrBack); + msgPayload["snr_towards"] = new JSONValue(snrTowards); jsonObj["payload"] = new JSONValue(msgPayload); } else if (shouldLog) { LOG_ERROR(errStr, msgType.c_str()); From 191ca8ce124d9adbc9843ec5de0a3edf3f2c0af9 Mon Sep 17 00:00:00 2001 From: rcarteraz Date: Tue, 18 Feb 2025 14:56:13 -0700 Subject: [PATCH 03/34] update readme add logo image (#6088) --- .github/meshtastic_logo.png | Bin 0 -> 91300 bytes README.md | 31 ++++++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 .github/meshtastic_logo.png diff --git a/.github/meshtastic_logo.png b/.github/meshtastic_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..11c5db18c71249b1ac78d30ca2ffeafd5629912b GIT binary patch literal 91300 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 K{aMp7;(q|(7(V|1 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index ca8a924fd..f34bf1839 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ -# Meshtastic Firmware + + + + + + ## Overview -This repository contains the device firmware for the Meshtastic project. +This repository contains the official device firmware for Meshtastic, an open-source LoRa mesh networking project designed for long-range, low-power communication without relying on internet or cellular infrastructure. The firmware supports various hardware platforms, including ESP32, nRF52, RP2040/RP2350, and Linux-based devices. -- **[Building Instructions](https://meshtastic.org/docs/development/firmware/build)** -- **[Flashing Instructions](https://meshtastic.org/docs/getting-started/flashing-firmware/)** +Meshtastic enables text messaging, location sharing, and telemetry over a decentralized mesh network, making it ideal for outdoor adventures, emergency preparedness, and remote operations. + +### Get Started + +- 🔧 **[Building Instructions](https://meshtastic.org/docs/development/firmware/build)** – Learn how to compile the firmware from source. +- âš¡ **[Flashing Instructions](https://meshtastic.org/docs/getting-started/flashing-firmware/)** – Install or update the firmware on your device. + +Join our community and help improve Meshtastic! 🚀 ## Stats -![Alt](https://repobeats.axiom.co/api/embed/a92f097d9197ae853e780ec53d7d126e545629ab.svg "Repobeats analytics image") +![Alt](https://repobeats.axiom.co/api/embed/8025e56c482ec63541593cc5bd322c19d5c0bdcf.svg "Repobeats analytics image") From 79b3a1e60e6080d6b27ea43e98012a9cf32fa9a3 Mon Sep 17 00:00:00 2001 From: Ikko Eltociear Ashimine Date: Wed, 19 Feb 2025 20:58:41 +0900 Subject: [PATCH 04/34] chore: update unishox2.h (#6092) occuring -> occurring --- src/mesh/compression/unishox2.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mesh/compression/unishox2.h b/src/mesh/compression/unishox2.h index 5e2cc8b4c..823128f02 100644 --- a/src/mesh/compression/unishox2.h +++ b/src/mesh/compression/unishox2.h @@ -291,8 +291,8 @@ extern int unishox2_decompress_simple(const char *in, int len, char *out); * @param[in] olen length of 'out' buffer in bytes. Can be omitted if sufficient buffer is provided * @param[in] usx_hcodes Horizontal codes (array of bytes). See macro section for samples. * @param[in] usx_hcode_lens Length of each element in usx_hcodes array - * @param[in] usx_freq_seq Frequently occuring sequences. See USX_FREQ_SEQ_* macros for samples - * @param[in] usx_templates Templates of frequently occuring patterns. See USX_TEMPLATES macro. + * @param[in] usx_freq_seq Frequently occurring sequences. See USX_FREQ_SEQ_* macros for samples + * @param[in] usx_templates Templates of frequently occurring patterns. See USX_TEMPLATES macro. */ extern int unishox2_compress(const char *in, int len, UNISHOX_API_OUT_AND_LEN(char *out, int olen), const unsigned char usx_hcodes[], const unsigned char usx_hcode_lens[], const char *usx_freq_seq[], @@ -310,8 +310,8 @@ extern int unishox2_compress(const char *in, int len, UNISHOX_API_OUT_AND_LEN(ch * @param[in] olen length of 'out' buffer in bytes. Can be omitted if sufficient buffer is provided * @param[in] usx_hcodes Horizontal codes (array of bytes). See macro section for samples. * @param[in] usx_hcode_lens Length of each element in usx_hcodes array - * @param[in] usx_freq_seq Frequently occuring sequences. See USX_FREQ_SEQ_* macros for samples - * @param[in] usx_templates Templates of frequently occuring patterns. See USX_TEMPLATES macro. + * @param[in] usx_freq_seq Frequently occurring sequences. See USX_FREQ_SEQ_* macros for samples + * @param[in] usx_templates Templates of frequently occurring patterns. See USX_TEMPLATES macro. */ extern int unishox2_decompress(const char *in, int len, UNISHOX_API_OUT_AND_LEN(char *out, int olen), const unsigned char usx_hcodes[], const unsigned char usx_hcode_lens[], const char *usx_freq_seq[], @@ -344,4 +344,4 @@ extern int unishox2_decompress_lines(const char *in, int len, UNISHOX_API_OUT_AN const unsigned char usx_hcodes[], const unsigned char usx_hcode_lens[], const char *usx_freq_seq[], const char *usx_templates[], struct us_lnk_lst *prev_lines); -#endif \ No newline at end of file +#endif From 5da5803c4c99d2fbce6ef8cf45ce1b1f6656c721 Mon Sep 17 00:00:00 2001 From: Austin Date: Wed, 19 Feb 2025 07:14:46 -0500 Subject: [PATCH 05/34] Trunk: Annotate PRs and Auto-Upgrade (#6091) --- .github/workflows/nightly.yml | 20 ++++++++++++-- .github/workflows/trunk_annotate.pr.yml | 26 +++++++++++++++++++ .../{trunk-check.yml => trunk_check.yml} | 0 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/trunk_annotate.pr.yml rename .github/workflows/{trunk-check.yml => trunk_check.yml} (100%) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index e249823a7..7a35e2b99 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -4,9 +4,11 @@ on: - cron: 0 8 * * 1-5 workflow_dispatch: {} +permissions: read-all + jobs: trunk_check: - name: Trunk Check Upload + name: Trunk Check and Upload runs-on: ubuntu-latest steps: @@ -14,6 +16,20 @@ jobs: uses: actions/checkout@v4 - name: Trunk Check - uses: trunk-io/trunk-action@782e83f803ca6e369f035d64c6ba2768174ba61b + uses: trunk-io/trunk-action@v1 with: trunk-token: ${{ secrets.TRUNK_TOKEN }} + + trunk_upgrade: + name: Trunk Upgrade (PR) + runs-on: ubuntu-latest + permissions: + contents: write # For trunk to create PRs + pull-requests: write # For trunk to create PRs + steps: + - name: Checkout + uses: actions/checkout@v4 + + # See https://github.com/trunk-io/trunk-action/blob/v1/readme.md#automatic-upgrades + - name: Trunk Upgrade + uses: trunk-io/trunk-action/upgrade@v1 diff --git a/.github/workflows/trunk_annotate.pr.yml b/.github/workflows/trunk_annotate.pr.yml new file mode 100644 index 000000000..ac5cdc0d5 --- /dev/null +++ b/.github/workflows/trunk_annotate.pr.yml @@ -0,0 +1,26 @@ +name: Annotate PR with trunk issues +# See: https://github.com/trunk-io/trunk-action/blob/v1/readme.md#getting-inline-annotations-for-fork-prs + +on: + workflow_run: + workflows: [Pull Request] # Name from `trunk_check.yml` + types: [completed] + +permissions: read-all + +jobs: + trunk_check: + name: Trunk Code Quality Annotate + runs-on: ubuntu-latest + permissions: + checks: write # For trunk to post annotations + contents: read # For repo checkout + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Trunk Check + uses: trunk-io/trunk-action@v1 + with: + post-annotations: true diff --git a/.github/workflows/trunk-check.yml b/.github/workflows/trunk_check.yml similarity index 100% rename from .github/workflows/trunk-check.yml rename to .github/workflows/trunk_check.yml From 93c64cb44227f46a9aa6839603fec1e025bf24df Mon Sep 17 00:00:00 2001 From: Tom Fifield Date: Wed, 19 Feb 2025 20:32:38 +0800 Subject: [PATCH 06/34] Dependencies: minor version updates (#6045) platformio/espressif32@6.9.0 --> 6.10.0 lewisxhe/XPowersLib@^0.2.6 --> 0.2.7 platformio/framework-arduinoststm32@~Oct 2024 --> 4.20900.0 zinggjm/GxEPD2@^1.4.9 --> 1.6.2 tool-esptoolpy@^1.40500.0 --> 1.40801.0 Used platformio tool to check, kept to minor version updates, checked release notes for any breaking changes. --- arch/esp32/esp32.ini | 8 ++++---- arch/esp32/esp32c6.ini | 4 ++-- arch/stm32/stm32.ini | 4 ++-- platformio.ini | 2 +- variants/Dongle_nRF52840-pca10059-v1/platformio.ini | 4 ++-- variants/ME25LS01-4Y10TD_e-ink/platformio.ini | 4 ++-- variants/MakePython_nRF52840_eink/platformio.ini | 2 +- variants/TWC_mesh_v4/platformio.ini | 4 ++-- variants/esp32-s3-pico/platformio.ini | 2 +- variants/m5stack_coreink/platformio.ini | 4 ++-- variants/my_esp32s3_diy_eink/platformio.ini | 6 +++--- variants/my_esp32s3_diy_oled/platformio.ini | 4 ++-- variants/rak4631_epaper/platformio.ini | 4 ++-- variants/rak4631_epaper_onrxtx/platformio.ini | 4 ++-- 14 files changed, 28 insertions(+), 28 deletions(-) diff --git a/arch/esp32/esp32.ini b/arch/esp32/esp32.ini index d6a756bec..e02e3ed85 100644 --- a/arch/esp32/esp32.ini +++ b/arch/esp32/esp32.ini @@ -2,7 +2,7 @@ [esp32_base] extends = arduino_base custom_esp32_kind = esp32 -platform = platformio/espressif32@6.9.0 +platform = platformio/espressif32@6.10.0 build_src_filter = ${arduino_base.build_src_filter} - - - - - @@ -45,9 +45,9 @@ lib_deps = ${environmental_base.lib_deps} ${radiolib_base.lib_deps} https://github.com/meshtastic/esp32_https_server.git#23665b3adc080a311dcbb586ed5941b5f94d6ea2 - h2zero/NimBLE-Arduino@^1.4.2 + h2zero/NimBLE-Arduino@^1.4.3 https://github.com/dbinfrago/libpax.git#3cdc0371c375676a97967547f4065607d4c53fd1 - lewisxhe/XPowersLib@^0.2.6 + lewisxhe/XPowersLib@^0.2.7 https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f rweather/Crypto@^0.4.0 @@ -65,4 +65,4 @@ lib_ignore = ; customize the partition table ; http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables -board_build.partitions = partition-table.csv \ No newline at end of file +board_build.partitions = partition-table.csv diff --git a/arch/esp32/esp32c6.ini b/arch/esp32/esp32c6.ini index 3f8b1bdbe..d0425812f 100644 --- a/arch/esp32/esp32c6.ini +++ b/arch/esp32/esp32c6.ini @@ -24,7 +24,7 @@ lib_deps = ${networking_base.lib_deps} ${environmental_base.lib_deps} ${radiolib_base.lib_deps} - lewisxhe/XPowersLib@^0.2.6 + lewisxhe/XPowersLib@^0.2.7 https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f rweather/Crypto@^0.4.0 @@ -38,4 +38,4 @@ lib_ignore = NonBlockingRTTTL NimBLE-Arduino libpax - \ No newline at end of file + diff --git a/arch/stm32/stm32.ini b/arch/stm32/stm32.ini index 46f41db3a..d7bb0c583 100644 --- a/arch/stm32/stm32.ini +++ b/arch/stm32/stm32.ini @@ -1,7 +1,7 @@ [stm32_base] extends = arduino_base platform = ststm32 -platform_packages = platformio/framework-arduinoststm32@https://github.com/stm32duino/Arduino_Core_STM32.git#ea74156acd823b6d14739f389e6cdc648f8ee36e +platform_packages = platformio/framework-arduinoststm32@^4.20900.0 build_type = release @@ -41,4 +41,4 @@ lib_deps = lib_ignore = mathertel/OneButton@2.6.1 - Wire \ No newline at end of file + Wire diff --git a/platformio.ini b/platformio.ini index 1c51e53b4..98b93c34d 100644 --- a/platformio.ini +++ b/platformio.ini @@ -59,7 +59,7 @@ lib_deps = https://github.com/meshtastic/arduino-fsm.git#7db3702bf0cfe97b783d6c72595e3f38e0b19159 https://github.com/meshtastic/TinyGPSPlus.git#71a82db35f3b973440044c476d4bcdc673b104f4 https://github.com/meshtastic/ArduinoThread.git#1ae8778c85d0a2a729f989e0b1e7d7c4dc84eef0 - nanopb/Nanopb@0.4.9 + nanopb/Nanopb@0.4.91 erriez/ErriezCRC32@1.0.1 ; Used for the code analysis in PIO Home / Inspect diff --git a/variants/Dongle_nRF52840-pca10059-v1/platformio.ini b/variants/Dongle_nRF52840-pca10059-v1/platformio.ini index a98656e86..9e87fd237 100644 --- a/variants/Dongle_nRF52840-pca10059-v1/platformio.ini +++ b/variants/Dongle_nRF52840-pca10059-v1/platformio.ini @@ -10,5 +10,5 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/Dongle_nRF52840-pca10059-v build_src_filter = ${nrf52_base.build_src_filter} +<../variants/Dongle_nRF52840-pca10059-v1> lib_deps = ${nrf52840_base.lib_deps} - zinggjm/GxEPD2@^1.4.9 -debug_tool = jlink \ No newline at end of file + zinggjm/GxEPD2@^1.6.2 +debug_tool = jlink diff --git a/variants/ME25LS01-4Y10TD_e-ink/platformio.ini b/variants/ME25LS01-4Y10TD_e-ink/platformio.ini index f2e3a49e3..62314040a 100644 --- a/variants/ME25LS01-4Y10TD_e-ink/platformio.ini +++ b/variants/ME25LS01-4Y10TD_e-ink/platformio.ini @@ -13,7 +13,7 @@ board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld build_src_filter = ${nrf52_base.build_src_filter} +<../variants/ME25LS01-4Y10TD_e-ink> lib_deps = ${nrf52840_base.lib_deps} - zinggjm/GxEPD2@^1.5.8 + zinggjm/GxEPD2@^1.6.2 ; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm) upload_protocol = nrfutil -upload_port = /dev/ttyACM1 \ No newline at end of file +upload_port = /dev/ttyACM1 diff --git a/variants/MakePython_nRF52840_eink/platformio.ini b/variants/MakePython_nRF52840_eink/platformio.ini index b11b54c7d..db7c967e5 100644 --- a/variants/MakePython_nRF52840_eink/platformio.ini +++ b/variants/MakePython_nRF52840_eink/platformio.ini @@ -9,7 +9,7 @@ build_src_filter = ${nrf52_base.build_src_filter} +<../variants/MakePython_nRF52 lib_deps = ${nrf52840_base.lib_deps} https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f - zinggjm/GxEPD2@^1.4.9 + zinggjm/GxEPD2@^1.6.2 -DEINK_DISPLAY_MODEL=GxEPD2_290_T5D -DEINK_WIDTH=296 -DEINK_HEIGHT=128 diff --git a/variants/TWC_mesh_v4/platformio.ini b/variants/TWC_mesh_v4/platformio.ini index 4fb382334..2eb58bf9f 100644 --- a/variants/TWC_mesh_v4/platformio.ini +++ b/variants/TWC_mesh_v4/platformio.ini @@ -6,5 +6,5 @@ build_flags = ${nrf52840_base.build_flags} -I variants/TWC_mesh_v4 -D TWC_mesh_v build_src_filter = ${nrf52_base.build_src_filter} +<../variants/TWC_mesh_v4> lib_deps = ${nrf52840_base.lib_deps} - zinggjm/GxEPD2@^1.4.9 -debug_tool = jlink \ No newline at end of file + zinggjm/GxEPD2@^1.6.2 +debug_tool = jlink diff --git a/variants/esp32-s3-pico/platformio.ini b/variants/esp32-s3-pico/platformio.ini index 916f623bd..20a41ba56 100644 --- a/variants/esp32-s3-pico/platformio.ini +++ b/variants/esp32-s3-pico/platformio.ini @@ -21,5 +21,5 @@ build_flags = ${esp32s3_base.build_flags} -DEINK_HEIGHT=128 lib_deps = ${esp32s3_base.lib_deps} - zinggjm/GxEPD2@^1.5.3 + zinggjm/GxEPD2@^1.6.2 adafruit/Adafruit NeoPixel @ ^1.12.0 diff --git a/variants/m5stack_coreink/platformio.ini b/variants/m5stack_coreink/platformio.ini index c0c8bd30e..70da53379 100644 --- a/variants/m5stack_coreink/platformio.ini +++ b/variants/m5stack_coreink/platformio.ini @@ -17,11 +17,11 @@ build_flags = -DM5STACK lib_deps = ${esp32_base.lib_deps} - zinggjm/GxEPD2@^1.5.3 + zinggjm/GxEPD2@^1.6.2 lewisxhe/PCF8563_Library@^1.0.1 lib_ignore = m5stack-coreink monitor_filters = esp32_exception_decoder board_build.f_cpu = 240000000L upload_protocol = esptool -upload_port = /dev/ttyACM0 \ No newline at end of file +upload_port = /dev/ttyACM0 diff --git a/variants/my_esp32s3_diy_eink/platformio.ini b/variants/my_esp32s3_diy_eink/platformio.ini index b2404566f..22643597f 100644 --- a/variants/my_esp32s3_diy_eink/platformio.ini +++ b/variants/my_esp32s3_diy_eink/platformio.ini @@ -9,10 +9,10 @@ upload_protocol = esptool ;upload_port = /dev/ttyACM1 upload_speed = 921600 platform_packages = - tool-esptoolpy@^1.40500.0 + tool-esptoolpy@^1.40801.0 lib_deps = ${esp32_base.lib_deps} - zinggjm/GxEPD2@^1.5.1 + zinggjm/GxEPD2@^1.6.2 adafruit/Adafruit NeoPixel @ ^1.12.0 build_unflags = ${esp32s3_base.build_unflags} @@ -26,4 +26,4 @@ build_flags = -DEINK_HEIGHT=128 -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue - -DARDUINO_USB_MODE=0 \ No newline at end of file + -DARDUINO_USB_MODE=0 diff --git a/variants/my_esp32s3_diy_oled/platformio.ini b/variants/my_esp32s3_diy_oled/platformio.ini index 0fbbaa899..ce65c516e 100644 --- a/variants/my_esp32s3_diy_oled/platformio.ini +++ b/variants/my_esp32s3_diy_oled/platformio.ini @@ -9,7 +9,7 @@ upload_protocol = esptool ;upload_port = /dev/ttyACM0 upload_speed = 921600 platform_packages = - tool-esptoolpy@^1.40500.0 + tool-esptoolpy@^1.40801.0 lib_deps = ${esp32_base.lib_deps} adafruit/Adafruit NeoPixel @ ^1.12.0 @@ -21,4 +21,4 @@ build_flags = ${esp32_base.build_flags} -D PRIVATE_HW -I variants/my_esp32s3_diy_oled -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue - -DARDUINO_USB_MODE=0 \ No newline at end of file + -DARDUINO_USB_MODE=0 diff --git a/variants/rak4631_epaper/platformio.ini b/variants/rak4631_epaper/platformio.ini index 2479f09c8..b851691ed 100644 --- a/variants/rak4631_epaper/platformio.ini +++ b/variants/rak4631_epaper/platformio.ini @@ -13,10 +13,10 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631 build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_epaper> lib_deps = ${nrf52840_base.lib_deps} - zinggjm/GxEPD2@^1.4.9 + zinggjm/GxEPD2@^1.6.2 melopero/Melopero RV3028@^1.1.0 rakwireless/RAKwireless NCP5623 RGB LED library@^1.0.2 beegee-tokyo/RAKwireless RAK12034@^1.0.0 debug_tool = jlink ; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm) -;upload_protocol = jlink \ No newline at end of file +;upload_protocol = jlink diff --git a/variants/rak4631_epaper_onrxtx/platformio.ini b/variants/rak4631_epaper_onrxtx/platformio.ini index 8c1b8eee8..8612a3f3d 100644 --- a/variants/rak4631_epaper_onrxtx/platformio.ini +++ b/variants/rak4631_epaper_onrxtx/platformio.ini @@ -15,11 +15,11 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631 build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_epaper_onrxtx> lib_deps = ${nrf52840_base.lib_deps} - zinggjm/GxEPD2@^1.5.1 + zinggjm/GxEPD2@^1.6.2 melopero/Melopero RV3028@^1.1.0 rakwireless/RAKwireless NCP5623 RGB LED library@^1.0.2 beegee-tokyo/RAKwireless RAK12034@^1.0.0 debug_tool = jlink ; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm) ;upload_protocol = jlink -;upload_port = /dev/ttyACM3 \ No newline at end of file +;upload_port = /dev/ttyACM3 From bb73555209323017da121ce4b6be5d5ba84db46e Mon Sep 17 00:00:00 2001 From: Sebastian Muszynski Date: Wed, 19 Feb 2025 13:36:59 +0100 Subject: [PATCH 07/34] Expose INA219 measurement as battery voltage for Seeed Xiao ESP32S3 (#6070) * Expose INA219 measurement as battery voltage for Seeed Xiao ESP32S3 * Define BATTERY_PIN and don't block a random GPIO --- variants/seeed_xiao_s3/variant.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/variants/seeed_xiao_s3/variant.h b/variants/seeed_xiao_s3/variant.h index 8f9282a7a..d8dcbc8d4 100644 --- a/variants/seeed_xiao_s3/variant.h +++ b/variants/seeed_xiao_s3/variant.h @@ -36,6 +36,10 @@ L76K GPS Module Information : https://www.seeedstudio.com/L76K-GNSS-Module-for-S #define BUTTON_PIN 21 // This is the Program Button #define BUTTON_NEED_PULLUP +#define BATTERY_PIN -1 +#define ADC_CHANNEL ADC1_GPIO1_CHANNEL +#define BATTERY_SENSE_RESOLUTION_BITS 12 + /*Warning: https://www.seeedstudio.com/L76K-GNSS-Module-for-Seeed-Studio-XIAO-p-5864.html L76K Expansion Board can not directly used, L76K Reset Pin needs to override or physically remove it, From 337265a07f4aa076eebb50b1b7333d55ae9f2dfd Mon Sep 17 00:00:00 2001 From: Austin Date: Wed, 19 Feb 2025 18:43:23 -0500 Subject: [PATCH 08/34] Trunk: Another annotation attempt (#6100) --- .github/workflows/nightly.yml | 4 ++- ..._annotate.pr.yml => trunk_annotate_pr.yml} | 0 .github/workflows/trunk_check.yml | 2 ++ .trunk/trunk.yaml | 32 +++++++++---------- 4 files changed, 20 insertions(+), 18 deletions(-) rename .github/workflows/{trunk_annotate.pr.yml => trunk_annotate_pr.yml} (100%) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 7a35e2b99..28ba12fcc 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -21,6 +21,7 @@ jobs: trunk-token: ${{ secrets.TRUNK_TOKEN }} trunk_upgrade: + # See: https://github.com/trunk-io/trunk-action/blob/v1/readme.md#automatic-upgrades name: Trunk Upgrade (PR) runs-on: ubuntu-latest permissions: @@ -30,6 +31,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 - # See https://github.com/trunk-io/trunk-action/blob/v1/readme.md#automatic-upgrades - name: Trunk Upgrade uses: trunk-io/trunk-action/upgrade@v1 + with: + base: master diff --git a/.github/workflows/trunk_annotate.pr.yml b/.github/workflows/trunk_annotate_pr.yml similarity index 100% rename from .github/workflows/trunk_annotate.pr.yml rename to .github/workflows/trunk_annotate_pr.yml diff --git a/.github/workflows/trunk_check.yml b/.github/workflows/trunk_check.yml index 6ed905bc8..2e74ab25f 100644 --- a/.github/workflows/trunk_check.yml +++ b/.github/workflows/trunk_check.yml @@ -20,3 +20,5 @@ jobs: - name: Trunk Check uses: trunk-io/trunk-action@v1 + with: + save-annotations: true diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index f2393592c..12b8608f2 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -1,37 +1,35 @@ version: 0.1 cli: - version: 1.22.8 + version: 1.22.10 plugins: sources: - id: trunk - ref: v1.6.6 + ref: v1.6.7 uri: https://github.com/trunk-io/plugins lint: enabled: - - prettier@3.4.2 - - trufflehog@3.86.1 + - prettier@3.5.1 + - trufflehog@3.88.10 - yamllint@1.35.1 - - bandit@1.8.0 - - checkov@3.2.334 + - bandit@1.8.3 + - checkov@3.2.372 - terrascan@1.19.9 - - trivy@0.58.0 - #- trufflehog@3.63.2-rc0 + - trivy@0.59.1 - taplo@0.9.3 - - ruff@0.8.3 - - isort@5.13.2 - - markdownlint@0.43.0 - - oxipng@9.1.3 + - ruff@0.9.6 + - isort@6.0.0 + - markdownlint@0.44.0 + - oxipng@9.1.4 - svgo@3.3.2 - - actionlint@1.7.4 - - flake8@7.1.1 + - actionlint@1.7.7 + - flake8@7.1.2 - hadolint@2.12.1-beta - shfmt@3.6.0 - shellcheck@0.10.0 - - black@24.10.0 + - black@25.1.0 - git-diff-check - - gitleaks@8.21.2 + - gitleaks@8.23.3 - clang-format@16.0.3 - #- prettier@3.3.3 ignore: - linters: [ALL] paths: From f1dc1b309a46190670d5a42f3880d0d1573b5887 Mon Sep 17 00:00:00 2001 From: Austin Date: Wed, 19 Feb 2025 19:14:54 -0500 Subject: [PATCH 09/34] PIO: Cleanup dependency naming (#6090) --- arch/nrf52/nrf52.ini | 4 ++-- arch/stm32/stm32.ini | 4 ++-- variants/MakePython_nRF52840_eink/platformio.ini | 8 ++++---- variants/icarus/platformio.ini | 4 ++-- variants/my_esp32s3_diy_eink/platformio.ini | 4 ++-- variants/my_esp32s3_diy_oled/platformio.ini | 4 ++-- variants/rak11310/platformio.ini | 2 +- variants/trackerd/platformio.ini | 7 +------ 8 files changed, 16 insertions(+), 21 deletions(-) diff --git a/arch/nrf52/nrf52.ini b/arch/nrf52/nrf52.ini index b68977c78..606cabac6 100644 --- a/arch/nrf52/nrf52.ini +++ b/arch/nrf52/nrf52.ini @@ -4,8 +4,8 @@ platform = platformio/nordicnrf52@^10.7.0 extends = arduino_base platform_packages = ; our custom Git version until they merge our PR - framework-arduinoadafruitnrf52 @ https://github.com/meshtastic/Adafruit_nRF52_Arduino.git#e13f5820002a4fb2a5e6754b42ace185277e5adf - toolchain-gccarmnoneeabi@~1.90301.0 + platformio/framework-arduinoadafruitnrf52 @ https://github.com/meshtastic/Adafruit_nRF52_Arduino.git#e13f5820002a4fb2a5e6754b42ace185277e5adf + platformio/toolchain-gccarmnoneeabi@~1.90301.0 build_type = debug build_flags = diff --git a/arch/stm32/stm32.ini b/arch/stm32/stm32.ini index d7bb0c583..efa1ab0e4 100644 --- a/arch/stm32/stm32.ini +++ b/arch/stm32/stm32.ini @@ -1,6 +1,6 @@ [stm32_base] extends = arduino_base -platform = ststm32 +platform = platformio/ststm32 platform_packages = platformio/framework-arduinoststm32@^4.20900.0 build_type = release @@ -41,4 +41,4 @@ lib_deps = lib_ignore = mathertel/OneButton@2.6.1 - Wire + Wire \ No newline at end of file diff --git a/variants/MakePython_nRF52840_eink/platformio.ini b/variants/MakePython_nRF52840_eink/platformio.ini index db7c967e5..b7ce97dcb 100644 --- a/variants/MakePython_nRF52840_eink/platformio.ini +++ b/variants/MakePython_nRF52840_eink/platformio.ini @@ -5,13 +5,13 @@ board = nordic_pca10059 build_flags = ${nrf52840_base.build_flags} -Ivariants/MakePython_nRF52840_eink -D PRIVATE_HW -L "${platformio.libdeps_dir}/${this.__env__}/bsec2/src/cortex-m4/fpv4-sp-d16-hard" -D PIN_EINK_EN + -DEINK_DISPLAY_MODEL=GxEPD2_290_T5D + -DEINK_WIDTH=296 + -DEINK_HEIGHT=128 build_src_filter = ${nrf52_base.build_src_filter} +<../variants/MakePython_nRF52840_eink> lib_deps = ${nrf52840_base.lib_deps} https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f zinggjm/GxEPD2@^1.6.2 - -DEINK_DISPLAY_MODEL=GxEPD2_290_T5D - -DEINK_WIDTH=296 - -DEINK_HEIGHT=128 debug_tool = jlink -;upload_port = /dev/ttyACM4 +;upload_port = /dev/ttyACM4 \ No newline at end of file diff --git a/variants/icarus/platformio.ini b/variants/icarus/platformio.ini index 11f09cab4..b1dc01fc1 100644 --- a/variants/icarus/platformio.ini +++ b/variants/icarus/platformio.ini @@ -6,7 +6,7 @@ board_check = true board_build.mcu = esp32s3 upload_protocol = esptool upload_speed = 921600 -platform_packages = framework-arduinoespressif32@https://github.com/PowerFeather/powerfeather-meshtastic-arduino-lib/releases/download/2.0.16a/esp32-2.0.16.zip +platform_packages = platformio/framework-arduinoespressif32@https://github.com/PowerFeather/powerfeather-meshtastic-arduino-lib/releases/download/2.0.16a/esp32-2.0.16.zip lib_deps = ${esp32s3_base.lib_deps} build_unflags = @@ -16,4 +16,4 @@ build_flags = ${esp32s3_base.build_flags} -D PRIVATE_HW -I variants/icarus -DBOARD_HAS_PSRAM - -DARDUINO_USB_MODE=0 + -DARDUINO_USB_MODE=0 \ No newline at end of file diff --git a/variants/my_esp32s3_diy_eink/platformio.ini b/variants/my_esp32s3_diy_eink/platformio.ini index 22643597f..98613e4fb 100644 --- a/variants/my_esp32s3_diy_eink/platformio.ini +++ b/variants/my_esp32s3_diy_eink/platformio.ini @@ -9,7 +9,7 @@ upload_protocol = esptool ;upload_port = /dev/ttyACM1 upload_speed = 921600 platform_packages = - tool-esptoolpy@^1.40801.0 + platformio/tool-esptoolpy@^1.40801.0 lib_deps = ${esp32_base.lib_deps} zinggjm/GxEPD2@^1.6.2 @@ -26,4 +26,4 @@ build_flags = -DEINK_HEIGHT=128 -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue - -DARDUINO_USB_MODE=0 + -DARDUINO_USB_MODE=0 \ No newline at end of file diff --git a/variants/my_esp32s3_diy_oled/platformio.ini b/variants/my_esp32s3_diy_oled/platformio.ini index ce65c516e..346cc9cac 100644 --- a/variants/my_esp32s3_diy_oled/platformio.ini +++ b/variants/my_esp32s3_diy_oled/platformio.ini @@ -9,7 +9,7 @@ upload_protocol = esptool ;upload_port = /dev/ttyACM0 upload_speed = 921600 platform_packages = - tool-esptoolpy@^1.40801.0 + platformio/tool-esptoolpy@^1.40801.0 lib_deps = ${esp32_base.lib_deps} adafruit/Adafruit NeoPixel @ ^1.12.0 @@ -21,4 +21,4 @@ build_flags = ${esp32_base.build_flags} -D PRIVATE_HW -I variants/my_esp32s3_diy_oled -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue - -DARDUINO_USB_MODE=0 + -DARDUINO_USB_MODE=0 \ No newline at end of file diff --git a/variants/rak11310/platformio.ini b/variants/rak11310/platformio.ini index 0cc60bc7c..d1da962ca 100644 --- a/variants/rak11310/platformio.ini +++ b/variants/rak11310/platformio.ini @@ -18,4 +18,4 @@ lib_deps = ${networking_base.lib_deps} https://github.com/RAKWireless/RAK13800-W5100S.git#1.0.2 debug_build_flags = ${rp2040_base.build_flags}, -g -debug_tool = cmsis-dap ; for e.g. Picotool +debug_tool = cmsis-dap ; for e.g. Picotool \ No newline at end of file diff --git a/variants/trackerd/platformio.ini b/variants/trackerd/platformio.ini index 6fba190f3..654534a15 100644 --- a/variants/trackerd/platformio.ini +++ b/variants/trackerd/platformio.ini @@ -1,13 +1,8 @@ [env:trackerd] extends = esp32_base -;platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-upstream -platform = espressif32 board = pico32 board_build.f_flash = 80000000L build_flags = ${esp32_base.build_flags} -D PRIVATE_HW -I variants/trackerd -D BSFILE=\"boards/dragino_lbt2.h\" -;board_build.partitions = no_ota.csv -;platform_packages = -; platformio/framework-arduinoespressif32@3 -;platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.1-RC1 +;board_build.partitions = no_ota.csv \ No newline at end of file From 9930bba3f5c65b679449cea5f8b990e7728fa4f1 Mon Sep 17 00:00:00 2001 From: Mictronics Date: Thu, 20 Feb 2025 10:56:34 +0100 Subject: [PATCH 10/34] Add Pico2W variant including Wifi support. (#6062) --- arch/rp2xx0/rp2350.ini | 5 ++- src/mesh/api/ServerAPI.cpp | 4 ++- variants/rpipico2/platformio.ini | 2 +- variants/rpipico2w/platformio.ini | 30 ++++++++++++++++++ variants/rpipico2w/variant.h | 52 +++++++++++++++++++++++++++++++ 5 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 variants/rpipico2w/platformio.ini create mode 100644 variants/rpipico2w/variant.h diff --git a/arch/rp2xx0/rp2350.ini b/arch/rp2xx0/rp2350.ini index ab16e24b4..6f1e4400e 100644 --- a/arch/rp2xx0/rp2350.ini +++ b/arch/rp2xx0/rp2350.ini @@ -1,8 +1,8 @@ ; Common settings for rp2040 Processor based targets [rp2350_base] -platform = https://github.com/maxgerhardt/platform-raspberrypi.git#19e30129fb1428b823be585c787dcb4ac0d9014c ; For arduino-pico >=4.2.1 +platform = https://github.com/maxgerhardt/platform-raspberrypi.git#76ecf3c7e9dd4503af0331154c4ca1cddc4b03e5 ; For arduino-pico >= 4.4.3 extends = arduino_base -platform_packages = framework-arduinopico@https://github.com/earlephilhower/arduino-pico.git#6024e9a7e82a72e38dd90f42029ba3748835eb2e ; 4.3.0 with fix MDNS +platform_packages = framework-arduinopico@https://github.com/earlephilhower/arduino-pico.git#4.4.3 board_build.core = earlephilhower board_build.filesystem_size = 0.5m @@ -10,7 +10,6 @@ build_flags = ${arduino_base.build_flags} -Wno-unused-variable -Wcast-align -Isrc/platform/rp2xx0 -D__PLAT_RP2350__ -# -D _POSIX_THREADS build_src_filter = ${arduino_base.build_src_filter} - - - - - - - - - - - diff --git a/src/mesh/api/ServerAPI.cpp b/src/mesh/api/ServerAPI.cpp index e28e4c815..1a506421c 100644 --- a/src/mesh/api/ServerAPI.cpp +++ b/src/mesh/api/ServerAPI.cpp @@ -51,6 +51,8 @@ template int32_t APIServerPort::runOnce() #else auto client = U::available(); #endif +#elif defined(ARCH_RP2040) + auto client = U::accept(); #else auto client = U::available(); #endif @@ -78,4 +80,4 @@ template int32_t APIServerPort::runOnce() waitTime = 100; #endif return 100; // only check occasionally for incoming connections -} +} \ No newline at end of file diff --git a/variants/rpipico2/platformio.ini b/variants/rpipico2/platformio.ini index 24714efd5..de4954ea2 100644 --- a/variants/rpipico2/platformio.ini +++ b/variants/rpipico2/platformio.ini @@ -9,7 +9,7 @@ build_flags = ${rp2350_base.build_flags} -Ivariants/rpipico2 -DDEBUG_RP2040_PORT=Serial -DHW_SPI1_DEVICE - -L "${platformio.libdeps_dir}/${this.__env__}/bsec2/src/cortex-m0plus" + -L "${platformio.libdeps_dir}/${this.__env__}/bsec2/src/cortex-m33" lib_deps = ${rp2350_base.lib_deps} debug_build_flags = ${rp2350_base.build_flags}, -g diff --git a/variants/rpipico2w/platformio.ini b/variants/rpipico2w/platformio.ini new file mode 100644 index 000000000..351774221 --- /dev/null +++ b/variants/rpipico2w/platformio.ini @@ -0,0 +1,30 @@ +[env:pico2w] +extends = rp2350_base +board = rpipico2w +upload_protocol = jlink +# debug settings for external openocd with RP2040 support (custom build) +debug_tool = custom +debug_init_cmds = + target extended-remote localhost:3333 + $INIT_BREAK + monitor reset halt + $LOAD_CMDS + monitor init + monitor reset halt + +# add our variants files to the include and src paths +build_flags = ${rp2350_base.build_flags} + -DRPI_PICO2 + -Ivariants/rpipico2w +# -DDEBUG_RP2040_PORT=Serial + -DHW_SPI1_DEVICE + -DARDUINO_RASPBERRY_PI_PICO_2W + -DARDUINO_ARCH_RP2040 + -DHAS_WIFI=1 + -L "${platformio.libdeps_dir}/${this.__env__}/bsec2/src/cortex-m33" + -fexceptions # for exception handling in MQTT +build_src_filter = ${rp2350_base.build_src_filter} + +lib_deps = + ${rp2350_base.lib_deps} + ${networking_base.lib_deps} +debug_build_flags = ${rp2350_base.build_flags}, -g \ No newline at end of file diff --git a/variants/rpipico2w/variant.h b/variants/rpipico2w/variant.h new file mode 100644 index 000000000..c7689048a --- /dev/null +++ b/variants/rpipico2w/variant.h @@ -0,0 +1,52 @@ +// #define RADIOLIB_CUSTOM_ARDUINO 1 +// #define RADIOLIB_TONE_UNSUPPORTED 1 +// #define RADIOLIB_SOFTWARE_SERIAL_UNSUPPORTED 1 + +#define ARDUINO_ARCH_AVR + +#ifndef HAS_WIFI +#define HAS_WIFI 1 +#endif + +// default I2C pins: +// SDA = 4 +// SCL = 5 + +// Recommended pins for SerialModule: +// txd = 8 +// rxd = 9 + +#define EXT_NOTIFY_OUT 22 +#define BUTTON_PIN 17 + +#define BATTERY_PIN 26 +// ratio of voltage divider = 3.0 (R17=200k, R18=100k) +#define ADC_MULTIPLIER 3.1 // 3.0 + a bit for being optimistic +#define BATTERY_SENSE_RESOLUTION_BITS ADC_RESOLUTION + +#define USE_SX1262 + +#undef LORA_SCK +#undef LORA_MISO +#undef LORA_MOSI +#undef LORA_CS + +#define LORA_SCK 10 +#define LORA_MISO 12 +#define LORA_MOSI 11 +#define LORA_CS 3 + +#define LORA_DIO0 RADIOLIB_NC +#define LORA_RESET 15 +#define LORA_DIO1 20 +#define LORA_DIO2 2 +#define LORA_DIO3 RADIOLIB_NC + +#ifdef USE_SX1262 +#define SX126X_CS LORA_CS +#define SX126X_DIO1 LORA_DIO1 +#define SX126X_BUSY LORA_DIO2 +#define SX126X_RESET LORA_RESET +#define SX126X_DIO2_AS_RF_SWITCH +#define SX126X_DIO3_TCXO_VOLTAGE 1.8 +#endif \ No newline at end of file From 994e22aba9e1bee9124a1d7e265de5f0c35d09f3 Mon Sep 17 00:00:00 2001 From: rostekus <34031791+rostekus@users.noreply.github.com> Date: Thu, 20 Feb 2025 14:36:49 +0100 Subject: [PATCH 11/34] feat: added BMP-390 support to the BMP-3xx sensors (#6103) --- src/detect/ScanI2CTwoWire.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/detect/ScanI2CTwoWire.cpp b/src/detect/ScanI2CTwoWire.cpp index 880e5c131..41cfe1517 100644 --- a/src/detect/ScanI2CTwoWire.cpp +++ b/src/detect/ScanI2CTwoWire.cpp @@ -244,6 +244,10 @@ void ScanI2CTwoWire::scanPort(I2CPort port, uint8_t *address, uint8_t asize) logFoundDevice("BMP-388", (uint8_t)addr.address); type = BMP_3XX; break; + case 0x60: // BMP-390 should be 0x60 + logFoundDevice("BMP-390", (uint8_t)addr.address); + type = BMP_3XX; + break; case 0x58: // BMP-280 should be 0x58 default: logFoundDevice("BMP-280", (uint8_t)addr.address); @@ -521,4 +525,4 @@ void ScanI2CTwoWire::logFoundDevice(const char *device, uint8_t address) { LOG_INFO("%s found at address 0x%x", device, address); } -#endif +#endif \ No newline at end of file From ec0eafedab6b3a49cb26c1017a59e5717cb36a31 Mon Sep 17 00:00:00 2001 From: Tom Fifield Date: Thu, 20 Feb 2025 21:48:37 +0800 Subject: [PATCH 12/34] Move variant-specific lines back to variant (#6044) Last release a change introduced different branching functions in gps.cpp based on the model of a device. This makes the code less readable and introduces the potential for bugs. This patch creates a new variable, GPS_PROBETRIES that can be set in variant.h of devices that will control how many times we will probe for GPS presence. It sets up the T1000-E to use this variable and cleans the code in gps.c --- src/gps/GPS.cpp | 16 ++++++---------- variants/tracker-t1000-e/variant.h | 1 + 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/gps/GPS.cpp b/src/gps/GPS.cpp index c2aae0381..f4b07664f 100644 --- a/src/gps/GPS.cpp +++ b/src/gps/GPS.cpp @@ -437,6 +437,10 @@ static const int serialSpeeds[3] = {9600, 115200, 38400}; static const int rareSerialSpeeds[3] = {4800, 57600, GPS_BAUDRATE}; #endif +#ifndef GPS_PROBETRIES +#define GPS_PROBETRIES 2 +#endif + /** * @brief Setup the GPS based on the model detected. * We detect the GPS by cycling through a set of baud rates, first common then rare. @@ -460,11 +464,7 @@ bool GPS::setup() digitalWrite(PIN_GPS_EN, HIGH); delay(1000); #endif -#ifdef TRACKER_T1000_E - if (probeTries < 5) { -#else - if (probeTries < 2) { -#endif + if (probeTries < GPS_PROBETRIES) { LOG_DEBUG("Probe for GPS at %d", serialSpeeds[speedSelect]); gnssModel = probe(serialSpeeds[speedSelect]); if (gnssModel == GNSS_MODEL_UNKNOWN) { @@ -475,11 +475,7 @@ bool GPS::setup() } } // Rare Serial Speeds -#ifdef TRACKER_T1000_E - if (probeTries == 5) { -#else - if (probeTries == 2) { -#endif + if (probeTries == GPS_PROBETRIES) { LOG_DEBUG("Probe for GPS at %d", rareSerialSpeeds[speedSelect]); gnssModel = probe(rareSerialSpeeds[speedSelect]); if (gnssModel == GNSS_MODEL_UNKNOWN) { diff --git a/variants/tracker-t1000-e/variant.h b/variants/tracker-t1000-e/variant.h index e65f26c93..0d98a3033 100644 --- a/variants/tracker-t1000-e/variant.h +++ b/variants/tracker-t1000-e/variant.h @@ -111,6 +111,7 @@ extern "C" { #define GPS_TX_PIN PIN_SERIAL1_TX #define GPS_BAUDRATE 115200 +#define GPS_PROBETRIES 5 #define PIN_GPS_EN (32 + 11) // P1.11 #define GPS_EN_ACTIVE HIGH From 4709d21df845222aa5aa6dfe91bf82a3bd09b1cc Mon Sep 17 00:00:00 2001 From: GUVWAF <78759985+GUVWAF@users.noreply.github.com> Date: Thu, 20 Feb 2025 21:34:09 +0100 Subject: [PATCH 13/34] Ignore and disallow multi-hop traceroutes destined to broadcast address (#6109) * Ignore traceroutes destined to broadcast address * Disallow multi-hop traceroute request to broadcast address * Allow zero-hop broadcast requests --- src/mesh/PhoneAPI.cpp | 5 +++++ src/modules/TraceRouteModule.cpp | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/src/mesh/PhoneAPI.cpp b/src/mesh/PhoneAPI.cpp index 6789acbb3..699e6e0e4 100644 --- a/src/mesh/PhoneAPI.cpp +++ b/src/mesh/PhoneAPI.cpp @@ -643,6 +643,11 @@ bool PhoneAPI::handleToRadioPacket(meshtastic_MeshPacket &p) meshtastic_QueueStatus qs = router->getQueueStatus(); service->sendQueueStatusToPhone(qs, 0, p.id); return false; + } else if (p.decoded.portnum == meshtastic_PortNum_TRACEROUTE_APP && isBroadcast(p.to) && p.hop_limit > 0) { + sendNotification(meshtastic_LogRecord_Level_WARNING, p.id, "Multi-hop traceroute to broadcast address is not allowed"); + meshtastic_QueueStatus qs = router->getQueueStatus(); + service->sendQueueStatusToPhone(qs, 0, p.id); + return false; } else if (p.decoded.portnum == meshtastic_PortNum_POSITION_APP && lastPortNumToRadio[p.decoded.portnum] && Throttle::isWithinTimespanMs(lastPortNumToRadio[p.decoded.portnum], FIVE_SECONDS_MS)) { LOG_WARN("Rate limit portnum %d", p.decoded.portnum); diff --git a/src/modules/TraceRouteModule.cpp b/src/modules/TraceRouteModule.cpp index 79b14de0a..e9aaf9d30 100644 --- a/src/modules/TraceRouteModule.cpp +++ b/src/modules/TraceRouteModule.cpp @@ -150,6 +150,12 @@ meshtastic_MeshPacket *TraceRouteModule::allocReply() { assert(currentRequest); + // Ignore multi-hop broadcast requests + if (isBroadcast(currentRequest->to) && currentRequest->hop_limit < currentRequest->hop_start) { + ignoreRequest = true; + return NULL; + } + // Copy the payload of the current request auto req = *currentRequest; const auto &p = req.decoded; From 4942c7b71fb0ca759789943418697a3d2013861f Mon Sep 17 00:00:00 2001 From: GUVWAF <78759985+GUVWAF@users.noreply.github.com> Date: Thu, 20 Feb 2025 22:28:01 +0100 Subject: [PATCH 14/34] Fix PowerTelemetry initialization (#6106) --- src/modules/Telemetry/PowerTelemetry.cpp | 41 +++++++++++++----------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/src/modules/Telemetry/PowerTelemetry.cpp b/src/modules/Telemetry/PowerTelemetry.cpp index 04bcbe200..14901f0af 100644 --- a/src/modules/Telemetry/PowerTelemetry.cpp +++ b/src/modules/Telemetry/PowerTelemetry.cpp @@ -31,7 +31,6 @@ int32_t PowerTelemetryModule::runOnce() doDeepSleep(nightyNightMs, true, false); } - uint32_t result = UINT32_MAX; /* Uncomment the preferences below if you want to use the module without having to configure it from the PythonAPI or WebUI. @@ -46,25 +45,33 @@ int32_t PowerTelemetryModule::runOnce() return disable(); } + uint32_t sendToMeshIntervalMs = Default::getConfiguredOrDefaultMsScaled( + moduleConfig.telemetry.power_update_interval, default_telemetry_broadcast_interval_secs, numOnlineNodes); + if (firstTime) { // This is the first time the OSThread library has called this function, so do some setup firstTime = 0; + uint32_t result = UINT32_MAX; + #if HAS_TELEMETRY && !defined(ARCH_PORTDUINO) if (moduleConfig.telemetry.power_measurement_enabled) { LOG_INFO("Power Telemetry: init"); - // it's possible to have this module enabled, only for displaying values on the screen. - // therefore, we should only enable the sensor loop if measurement is also enabled - if (ina219Sensor.hasSensor() && !ina219Sensor.isInitialized()) - result = ina219Sensor.runOnce(); - if (ina226Sensor.hasSensor() && !ina226Sensor.isInitialized()) - result = ina226Sensor.runOnce(); - if (ina260Sensor.hasSensor() && !ina260Sensor.isInitialized()) - result = ina260Sensor.runOnce(); - if (ina3221Sensor.hasSensor() && !ina3221Sensor.isInitialized()) - result = ina3221Sensor.runOnce(); - if (max17048Sensor.hasSensor() && !max17048Sensor.isInitialized()) - result = max17048Sensor.runOnce(); + // If sensor is already initialized by EnvironmentTelemetryModule, then we don't need to initialize it again, + // but we need to set the result to != UINT32_MAX to avoid it being disabled + if (ina219Sensor.hasSensor()) + result = ina219Sensor.isInitialized() ? 0 : ina219Sensor.runOnce(); + if (ina226Sensor.hasSensor()) + result = ina226Sensor.isInitialized() ? 0 : ina226Sensor.runOnce(); + if (ina260Sensor.hasSensor()) + result = ina260Sensor.isInitialized() ? 0 : ina260Sensor.runOnce(); + if (ina3221Sensor.hasSensor()) + result = ina3221Sensor.isInitialized() ? 0 : ina3221Sensor.runOnce(); + if (max17048Sensor.hasSensor()) + result = max17048Sensor.isInitialized() ? 0 : max17048Sensor.runOnce(); } + + // it's possible to have this module enabled, only for displaying values on the screen. + // therefore, we should only enable the sensor loop if measurement is also enabled return result == UINT32_MAX ? disable() : setStartDelay(); #else return disable(); @@ -74,10 +81,7 @@ int32_t PowerTelemetryModule::runOnce() if (!moduleConfig.telemetry.power_measurement_enabled) return disable(); - if (((lastSentToMesh == 0) || - !Throttle::isWithinTimespanMs(lastSentToMesh, Default::getConfiguredOrDefaultMsScaled( - moduleConfig.telemetry.power_update_interval, - default_telemetry_broadcast_interval_secs, numOnlineNodes))) && + if (((lastSentToMesh == 0) || !Throttle::isWithinTimespanMs(lastSentToMesh, sendToMeshIntervalMs)) && airTime->isTxAllowedAirUtil()) { sendTelemetry(); lastSentToMesh = millis(); @@ -89,8 +93,9 @@ int32_t PowerTelemetryModule::runOnce() lastSentToPhone = millis(); } } - return min(sendToPhoneIntervalMs, result); + return min(sendToPhoneIntervalMs, sendToMeshIntervalMs); } + bool PowerTelemetryModule::wantUIFrame() { return moduleConfig.telemetry.power_screen_enabled; From 1be28520a70376457e333fe242dc19afff5ae7b5 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Thu, 20 Feb 2025 18:30:09 -0600 Subject: [PATCH 15/34] Perhaps fix TXCO reports on pro-micro (#6110) * Perhaps fix TXCO reports on pro-micro * Missed one --- src/main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index f4599e0e3..be498421c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -931,6 +931,7 @@ void setup() if (!sxIf->init()) { LOG_WARN("No SX1262 radio"); delete sxIf; + rIf = NULL; } else { LOG_INFO("SX1262 init success"); rIf = sxIf; @@ -947,6 +948,7 @@ void setup() if (!sxIf->init()) { LOG_WARN("No SX1262 radio with TCXO, Vref %fV", SX126X_DIO3_TCXO_VOLTAGE); delete sxIf; + rIf = NULL; } else { LOG_INFO("SX1262 init success, TCXO, Vref %fV", SX126X_DIO3_TCXO_VOLTAGE); rIf = sxIf; From 3787cf78034fad1534a954c7b654dace05cbf4e4 Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 20 Feb 2025 20:55:38 -0500 Subject: [PATCH 16/34] meshtasticd deb: Build armv6-compatible binary (#6104) --- debian/control | 1 + debian/rules | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/debian/control b/debian/control index bb79d1958..b3a8eb58e 100644 --- a/debian/control +++ b/debian/control @@ -3,6 +3,7 @@ Section: misc Priority: optional Maintainer: Austin Lane Build-Depends: debhelper-compat (= 13), + lsb-release, tar, gzip, platformio, diff --git a/debian/rules b/debian/rules index a1a27c2f2..0612ba352 100755 --- a/debian/rules +++ b/debian/rules @@ -11,6 +11,15 @@ PIO_ENV:=\ PLATFORMIO_LIBDEPS_DIR=pio/libdeps \ PLATFORMIO_PACKAGES_DIR=pio/packages +# Raspbian armhf builds should be compatible with armv6-hardfloat +# https://www.valvers.com/open-software/raspberry-pi/bare-metal-programming-in-c-part-1/#rpi1-compiler-flags +ifneq (,$(findstring Raspbian,$(shell lsb_release -is))) +ifeq ($(DEB_BUILD_ARCH),armhf) +PIO_ENV+=\ + PLATFORMIO_BUILD_FLAGS="-mfloat-abi=hard -mfpu=vfp -march=armv6zk" +endif +endif + override_dh_auto_build: # Extract tarballs within source deb tar -xf pio.tar From fe1ced748046f9a2f0c4e544177ac15bd51f609f Mon Sep 17 00:00:00 2001 From: Tom Fifield Date: Sat, 22 Feb 2025 06:53:46 +0800 Subject: [PATCH 17/34] GPS Factory Reset no longer needed. (#6116) In 2020 there was a bad batch of tbeams whose ubloxen went a little loopy. We factory reset them to bring them sane again. It's now 2025, the problem with tbeam is long fixed, and this is not necessary for any other devices we're aware of. Removing the function to make our code more maintainable. There is an associated protobuf entry did_gps_reset that we might be able to re-purpose for something else, or remove in 3.0. --- src/gps/GPS.cpp | 84 ------------------------------------------------- src/gps/GPS.h | 2 -- 2 files changed, 86 deletions(-) diff --git a/src/gps/GPS.cpp b/src/gps/GPS.cpp index f4b07664f..2989a59bd 100644 --- a/src/gps/GPS.cpp +++ b/src/gps/GPS.cpp @@ -48,8 +48,6 @@ HardwareSerial *GPS::_serial_gps = nullptr; GPS *gps = nullptr; -static const char *ACK_SUCCESS_MESSAGE = "Get ack success!"; - static GPSUpdateScheduling scheduling; /// Multiple GPS instances might use the same serial port (in sequence), but we can @@ -1039,14 +1037,6 @@ int32_t GPS::runOnce() if (config.position.gps_mode != meshtastic_Config_PositionConfig_GpsMode_ENABLED) { return disable(); } - // ONCE we will factory reset the GPS for bug #327 - if (!devicestate.did_gps_reset) { - LOG_WARN("GPS FactoryReset requested"); - if (gps->factoryReset()) { // If we don't succeed try again next time - devicestate.did_gps_reset = true; - nodeDB->saveToDisk(SEGMENT_DEVICESTATE); - } - } GPSInitFinished = true; publishUpdate(); } @@ -1059,24 +1049,6 @@ int32_t GPS::runOnce() if (whileActive()) { // if we have received valid NMEA claim we are connected setConnected(); - } else { - if ((config.position.gps_mode == meshtastic_Config_PositionConfig_GpsMode_ENABLED) && - IS_ONE_OF(gnssModel, GNSS_MODEL_UBLOX6, GNSS_MODEL_UBLOX7, GNSS_MODEL_UBLOX8, GNSS_MODEL_UBLOX9, - GNSS_MODEL_UBLOX10)) { - // reset the GPS on next bootup - if (devicestate.did_gps_reset && scheduling.elapsedSearchMs() > 60 * 1000UL && !hasFlow()) { - LOG_DEBUG("GPS is not found, try factory reset on next boot"); - devicestate.did_gps_reset = false; - nodeDB->saveToDisk(SEGMENT_DEVICESTATE); - return disable(); // Stop the GPS thread as it can do nothing useful until next reboot. - } - } - } - // At least one GPS has a bad habit of losing its mind from time to time - if (rebootsSeen > 2) { - rebootsSeen = 0; - LOG_DEBUG("Would normally factoryReset()"); - // gps->factoryReset(); } // If we're due for an update, wake the GPS @@ -1411,62 +1383,6 @@ static int32_t toDegInt(RawDegrees d) return r; } -bool GPS::factoryReset() -{ -#ifdef PIN_GPS_REINIT - // The L76K GNSS on the T-Echo requires the RESET pin to be pulled LOW - pinMode(PIN_GPS_REINIT, OUTPUT); - digitalWrite(PIN_GPS_REINIT, 0); - delay(150); // The L76K datasheet calls for at least 100MS delay - digitalWrite(PIN_GPS_REINIT, 1); -#endif - - if (HW_VENDOR == meshtastic_HardwareModel_TBEAM) { - byte _message_reset1[] = {0xB5, 0x62, 0x06, 0x09, 0x0D, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x1C, 0xA2}; - _serial_gps->write(_message_reset1, sizeof(_message_reset1)); - if (getACK(0x05, 0x01, 10000)) { - LOG_DEBUG(ACK_SUCCESS_MESSAGE); - } - delay(100); - byte _message_reset2[] = {0xB5, 0x62, 0x06, 0x09, 0x0D, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1B, 0xA1}; - _serial_gps->write(_message_reset2, sizeof(_message_reset2)); - if (getACK(0x05, 0x01, 10000)) { - LOG_DEBUG(ACK_SUCCESS_MESSAGE); - } - delay(100); - byte _message_reset3[] = {0xB5, 0x62, 0x06, 0x09, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x03, 0x1D, 0xB3}; - _serial_gps->write(_message_reset3, sizeof(_message_reset3)); - if (getACK(0x05, 0x01, 10000)) { - LOG_DEBUG(ACK_SUCCESS_MESSAGE); - } - } else if (gnssModel == GNSS_MODEL_MTK) { - // send the CAS10 to perform a factory restart of the device (and other device that support PCAS statements) - LOG_INFO("GNSS Factory Reset via PCAS10,3"); - _serial_gps->write("$PCAS10,3*1F\r\n"); - delay(100); - } else if (gnssModel == GNSS_MODEL_ATGM336H) { - LOG_INFO("Factory Reset via CAS-CFG-RST"); - uint8_t msglen = makeCASPacket(0x06, 0x02, sizeof(_message_CAS_CFG_RST_FACTORY), _message_CAS_CFG_RST_FACTORY); - _serial_gps->write(UBXscratch, msglen); - delay(100); - } else { - // fire this for good measure, if we have an L76B - won't harm other devices. - _serial_gps->write("$PMTK104*37\r\n"); - // No PMTK_ACK for this command. - delay(100); - // send the UBLOX Factory Reset Command regardless of detect state, something is very wrong, just assume it's - // UBLOX. Factory Reset - byte _message_reset[] = {0xB5, 0x62, 0x06, 0x09, 0x0D, 0x00, 0xFF, 0xFB, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x17, 0x2B, 0x7E}; - _serial_gps->write(_message_reset, sizeof(_message_reset)); - } - delay(1000); - return true; -} - /** * Perform any processing that should be done only while the GPS is awake and looking for a fix. * Override this method to check for new locations diff --git a/src/gps/GPS.h b/src/gps/GPS.h index df85b7cbf..01a4fe745 100644 --- a/src/gps/GPS.h +++ b/src/gps/GPS.h @@ -101,8 +101,6 @@ class GPS : private concurrency::OSThread // Empty the input buffer as quickly as possible void clearBuffer(); - virtual bool factoryReset(); - // Creates an instance of the GPS class. // Returns the new instance or null if the GPS is not present. static GPS *createGps(); From cfcd9cc21044dfb8795bbf04caf77a14cd2aa040 Mon Sep 17 00:00:00 2001 From: GUVWAF <78759985+GUVWAF@users.noreply.github.com> Date: Sat, 22 Feb 2025 15:03:05 +0100 Subject: [PATCH 18/34] Revert "Rak4631 remove spi1 (#6042)" (#6121) This reverts commit 9b46cb4ef08688a2f424c76d8425561e4f5db844. --- src/detect/einkScan.h | 16 ++++++++-------- variants/rak4631/variant.h | 18 +++++++++++------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/detect/einkScan.h b/src/detect/einkScan.h index 5bc218d00..d20c7b6e5 100644 --- a/src/detect/einkScan.h +++ b/src/detect/einkScan.h @@ -6,28 +6,28 @@ void d_writeCommand(uint8_t c) { - SPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0)); + SPI1.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0)); if (PIN_EINK_DC >= 0) digitalWrite(PIN_EINK_DC, LOW); if (PIN_EINK_CS >= 0) digitalWrite(PIN_EINK_CS, LOW); - SPI.transfer(c); + SPI1.transfer(c); if (PIN_EINK_CS >= 0) digitalWrite(PIN_EINK_CS, HIGH); if (PIN_EINK_DC >= 0) digitalWrite(PIN_EINK_DC, HIGH); - SPI.endTransaction(); + SPI1.endTransaction(); } void d_writeData(uint8_t d) { - SPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0)); + SPI1.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0)); if (PIN_EINK_CS >= 0) digitalWrite(PIN_EINK_CS, LOW); - SPI.transfer(d); + SPI1.transfer(d); if (PIN_EINK_CS >= 0) digitalWrite(PIN_EINK_CS, HIGH); - SPI.endTransaction(); + SPI1.endTransaction(); } unsigned long d_waitWhileBusy(uint16_t busy_time) @@ -53,7 +53,7 @@ unsigned long d_waitWhileBusy(uint16_t busy_time) void scanEInkDevice(void) { - SPI.begin(); + SPI1.begin(); d_writeCommand(0x22); d_writeData(0x83); d_writeCommand(0x20); @@ -62,6 +62,6 @@ void scanEInkDevice(void) LOG_DEBUG("EInk display found"); else LOG_DEBUG("EInk display not found"); - SPI.end(); + SPI1.end(); } #endif \ No newline at end of file diff --git a/variants/rak4631/variant.h b/variants/rak4631/variant.h index f50f3b880..bc5541336 100644 --- a/variants/rak4631/variant.h +++ b/variants/rak4631/variant.h @@ -107,11 +107,15 @@ static const uint8_t AREF = PIN_AREF; /* * SPI Interfaces */ -#define SPI_INTERFACES_COUNT 1 +#define SPI_INTERFACES_COUNT 2 -#define PIN_SPI_MISO (29) -#define PIN_SPI_MOSI (30) -#define PIN_SPI_SCK (3) +#define PIN_SPI_MISO (45) +#define PIN_SPI_MOSI (44) +#define PIN_SPI_SCK (43) + +#define PIN_SPI1_MISO (29) // (0 + 29) +#define PIN_SPI1_MOSI (30) // (0 + 30) +#define PIN_SPI1_SCK (3) // (0 + 3) static const uint8_t SS = 42; static const uint8_t MOSI = PIN_SPI_MOSI; @@ -126,8 +130,8 @@ static const uint8_t SCK = PIN_SPI_SCK; #define PIN_EINK_BUSY (0 + 4) #define PIN_EINK_DC (0 + 17) #define PIN_EINK_RES (-1) -#define PIN_EINK_SCLK PIN_SPI_SCK -#define PIN_EINK_MOSI PIN_SPI_MOSI // also called SDI +#define PIN_EINK_SCLK (0 + 3) +#define PIN_EINK_MOSI (0 + 30) // also called SDI // #define USE_EINK @@ -255,7 +259,7 @@ SO GPIO 39/TXEN MAY NOT BE DEFINED FOR SUCCESSFUL OPERATION OF THE SX1262 - TG #define PIN_ETHERNET_RESET 21 #define PIN_ETHERNET_SS PIN_EINK_CS -#define ETH_SPI_PORT SPI +#define ETH_SPI_PORT SPI1 #define AQ_SET_PIN 10 #ifdef __cplusplus From efca2b5849d1636914f0da6fbfdab2cad9d746c0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 22 Feb 2025 11:19:07 -0600 Subject: [PATCH 19/34] [create-pull-request] automated change (#6122) Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com> --- protobufs | 2 +- src/mesh/generated/meshtastic/deviceonly.pb.h | 3 ++- src/mesh/generated/meshtastic/mesh.pb.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/protobufs b/protobufs index 068646653..e2790151f 160000 --- a/protobufs +++ b/protobufs @@ -1 +1 @@ -Subproject commit 068646653e8375fc145988026ad242a3cf70f7ab +Subproject commit e2790151f058c0e885863a15eea0b4e4edf4aaaa diff --git a/src/mesh/generated/meshtastic/deviceonly.pb.h b/src/mesh/generated/meshtastic/deviceonly.pb.h index c0a0fee91..4fda082e3 100644 --- a/src/mesh/generated/meshtastic/deviceonly.pb.h +++ b/src/mesh/generated/meshtastic/deviceonly.pb.h @@ -122,7 +122,8 @@ typedef struct _meshtastic_DeviceState { Indicates developer is testing and changes should never be saved to flash. Deprecated in 2.3.1 */ bool no_save; - /* Some GPS receivers seem to have bogus settings from the factory, so we always do one factory reset. */ + /* Previously used to manage GPS factory resets. + Deprecated in 2.5.23 */ bool did_gps_reset; /* We keep the last received waypoint stored in the device flash, so we can show it on the screen. diff --git a/src/mesh/generated/meshtastic/mesh.pb.h b/src/mesh/generated/meshtastic/mesh.pb.h index de8a1a353..3353a020f 100644 --- a/src/mesh/generated/meshtastic/mesh.pb.h +++ b/src/mesh/generated/meshtastic/mesh.pb.h @@ -1775,4 +1775,4 @@ extern const pb_msgdesc_t meshtastic_ChunkedPayloadResponse_msg; } /* extern "C" */ #endif -#endif \ No newline at end of file +#endif From 7d8e0ede6ccb4c621c70589834562276cb128687 Mon Sep 17 00:00:00 2001 From: Tom Fifield Date: Sun, 23 Feb 2025 20:14:37 +0800 Subject: [PATCH 20/34] Reduce some log levels. (#6127) This patch takes a few LOG_INFO messages and turns them into LOG_DEBUG. The logs appear to be mostly useful to developers, rather than end users and as such placing them at INFO level is too high a priority. --- src/modules/AdminModule.cpp | 24 ++++++++++++------------ src/nimble/NimbleBluetooth.cpp | 6 +++--- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/modules/AdminModule.cpp b/src/modules/AdminModule.cpp index 530d0b82e..631afd737 100644 --- a/src/modules/AdminModule.cpp +++ b/src/modules/AdminModule.cpp @@ -123,23 +123,23 @@ bool AdminModule::handleReceivedProtobuf(const meshtastic_MeshPacket &mp, meshta * Getters */ case meshtastic_AdminMessage_get_owner_request_tag: - LOG_INFO("Client got owner"); + LOG_DEBUG("Client got owner"); handleGetOwner(mp); break; case meshtastic_AdminMessage_get_config_request_tag: - LOG_INFO("Client got config"); + LOG_DEBUG("Client got config"); handleGetConfig(mp, r->get_config_request); break; case meshtastic_AdminMessage_get_module_config_request_tag: - LOG_INFO("Client got module config"); + LOG_DEBUG("Client got module config"); handleGetModuleConfig(mp, r->get_module_config_request); break; case meshtastic_AdminMessage_get_channel_request_tag: { uint32_t i = r->get_channel_request - 1; - LOG_INFO("Client got channel %u", i); + LOG_DEBUG("Client got channel %u", i); if (i >= MAX_NUM_CHANNELS) myReply = allocErrorResponse(meshtastic_Routing_Error_BAD_REQUEST, &mp); else @@ -151,35 +151,35 @@ bool AdminModule::handleReceivedProtobuf(const meshtastic_MeshPacket &mp, meshta * Setters */ case meshtastic_AdminMessage_set_owner_tag: - LOG_INFO("Client set owner"); + LOG_DEBUG("Client set owner"); handleSetOwner(r->set_owner); break; case meshtastic_AdminMessage_set_config_tag: - LOG_INFO("Client set config"); + LOG_DEBUG("Client set config"); handleSetConfig(r->set_config); break; case meshtastic_AdminMessage_set_module_config_tag: - LOG_INFO("Client set module config"); + LOG_DEBUG("Client set module config"); if (!handleSetModuleConfig(r->set_module_config)) { myReply = allocErrorResponse(meshtastic_Routing_Error_BAD_REQUEST, &mp); } break; case meshtastic_AdminMessage_set_channel_tag: - LOG_INFO("Client set channel %d", r->set_channel.index); + LOG_DEBUG("Client set channel %d", r->set_channel.index); if (r->set_channel.index < 0 || r->set_channel.index >= (int)MAX_NUM_CHANNELS) myReply = allocErrorResponse(meshtastic_Routing_Error_BAD_REQUEST, &mp); else handleSetChannel(r->set_channel); break; case meshtastic_AdminMessage_set_ham_mode_tag: - LOG_INFO("Client set ham mode"); + LOG_DEBUG("Client set ham mode"); handleSetHamMode(r->set_ham_mode); break; case meshtastic_AdminMessage_get_ui_config_request_tag: { - LOG_INFO("Client is getting device-ui config"); + LOG_DEBUG("Client is getting device-ui config"); handleGetDeviceUIConfig(mp); handled = true; break; @@ -391,7 +391,7 @@ bool AdminModule::handleReceivedProtobuf(const meshtastic_MeshPacket &mp, meshta LOG_DEBUG("Did not responded to a request that wanted a respond. req.variant=%d", r->which_payload_variant); } else if (handleResult != AdminMessageHandleResult::HANDLED) { // Probably a message sent by us or sent to our local node. FIXME, we should avoid scanning these messages - LOG_INFO("Ignore irrelevant admin %d", r->which_payload_variant); + LOG_DEBUG("Ignore irrelevant admin %d", r->which_payload_variant); } break; } @@ -1171,4 +1171,4 @@ void disableBluetooth() nrf52Bluetooth->shutdown(); #endif #endif -} \ No newline at end of file +} diff --git a/src/nimble/NimbleBluetooth.cpp b/src/nimble/NimbleBluetooth.cpp index 2662ef0bc..6315fdec9 100644 --- a/src/nimble/NimbleBluetooth.cpp +++ b/src/nimble/NimbleBluetooth.cpp @@ -26,7 +26,7 @@ class BluetoothPhoneAPI : public PhoneAPI { PhoneAPI::onNowHasData(fromRadioNum); - LOG_INFO("BLE notify fromNum"); + LOG_DEBUG("BLE notify fromNum"); uint8_t val[4]; put_le32(val, fromRadioNum); @@ -51,7 +51,7 @@ class NimbleBluetoothToRadioCallback : public NimBLECharacteristicCallbacks { virtual void onWrite(NimBLECharacteristic *pCharacteristic) { - LOG_INFO("To Radio onwrite"); + LOG_DEBUG("To Radio onwrite"); auto val = pCharacteristic->getValue(); if (memcmp(lastToRadio, val.data(), val.length()) != 0) { @@ -298,4 +298,4 @@ void clearNVS() ESP.restart(); #endif } -#endif \ No newline at end of file +#endif From 7061fd1f16c43e72b923cf951ab2cae41a047c6f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 11:12:18 +0100 Subject: [PATCH 21/34] Upgrade trunk (#6139) --- .trunk/trunk.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 12b8608f2..931dcc7c7 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -9,14 +9,14 @@ plugins: lint: enabled: - prettier@3.5.1 - - trufflehog@3.88.10 + - trufflehog@3.88.12 - yamllint@1.35.1 - bandit@1.8.3 - checkov@3.2.372 - terrascan@1.19.9 - trivy@0.59.1 - taplo@0.9.3 - - ruff@0.9.6 + - ruff@0.9.7 - isort@6.0.0 - markdownlint@0.44.0 - oxipng@9.1.4 @@ -28,7 +28,7 @@ lint: - shellcheck@0.10.0 - black@25.1.0 - git-diff-check - - gitleaks@8.23.3 + - gitleaks@8.24.0 - clang-format@16.0.3 ignore: - linters: [ALL] From 01c717a41d3f995568267f7552e9f0955f72b67a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 22:35:14 +0800 Subject: [PATCH 22/34] Bump actions/stale from 9.0.0 to 9.1.0 in /.github/workflows (#6143) Bumps [actions/stale](https://github.com/actions/stale) from 9.0.0 to 9.1.0. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v9.0.0...v9.1.0) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/stale_bot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale_bot.yml b/.github/workflows/stale_bot.yml index 0ce0579de..19b7cf7fd 100644 --- a/.github/workflows/stale_bot.yml +++ b/.github/workflows/stale_bot.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Stale PR+Issues - uses: actions/stale@v9.0.0 + uses: actions/stale@v9.1.0 with: exempt-issue-labels: pinned,3.0 exempt-pr-labels: pinned,3.0 From c93728eb75b47ddcdb258d78faccd2f908295e79 Mon Sep 17 00:00:00 2001 From: Austin Date: Mon, 24 Feb 2025 10:16:18 -0500 Subject: [PATCH 23/34] Debian: Ensure deps exist for changelog bump (#6145) --- .github/workflows/main_matrix.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/main_matrix.yml b/.github/workflows/main_matrix.yml index 7062ef525..ef0ab81a6 100644 --- a/.github/workflows/main_matrix.yml +++ b/.github/workflows/main_matrix.yml @@ -352,6 +352,12 @@ jobs: run: >- bin/bump_version.py + - name: Ensure debian deps are installed + shell: bash + run: | + sudo apt-get update -y --fix-missing + sudo apt-get install -y devscripts + - name: Update debian changelog run: >- debian/ci_changelog.sh From bf958ed01da26a57d0a6d655d003ecb255f0004e Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Mon, 24 Feb 2025 10:23:24 -0600 Subject: [PATCH 24/34] Update version.properties --- version.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.properties b/version.properties index 2e207e21e..55a220b4b 100644 --- a/version.properties +++ b/version.properties @@ -1,4 +1,4 @@ [VERSION] major = 2 minor = 5 -build = 22 +build = 23 From 4e575872da0cfaddd346acc7c24e0cf130aabc80 Mon Sep 17 00:00:00 2001 From: Austin Date: Tue, 25 Feb 2025 03:41:45 -0500 Subject: [PATCH 25/34] junk in the Trunk (#6149) --- .github/ISSUE_TEMPLATE/Bug Report.yml | 2 +- .github/ISSUE_TEMPLATE/New Board.yml | 2 +- .github/ISSUE_TEMPLATE/feature.yml | 2 +- .github/actionlint.yaml | 5 +++ .github/actions/build-variant/action.yml | 2 +- .github/actions/setup-base/action.yml | 8 ++-- .github/dependabot.yml | 9 +++-- .github/workflows/build_nrf52.yml | 2 + .github/workflows/build_rpi2040.yml | 2 + .github/workflows/build_stm32.yml | 2 + .github/workflows/tests.yml | 4 +- .trunk/configs/.markdownlint.yaml | 1 + Dockerfile | 19 +++++---- alpine.Dockerfile | 16 +++++--- src/modules/WaypointModule.cpp | 7 ++-- test/test_crypto/test_main.cpp | 1 + variants/xiao_ble/README.md | 51 +++++++++++++----------- 17 files changed, 81 insertions(+), 54 deletions(-) create mode 100644 .github/actionlint.yaml diff --git a/.github/ISSUE_TEMPLATE/Bug Report.yml b/.github/ISSUE_TEMPLATE/Bug Report.yml index f2d2f6507..f638b9018 100644 --- a/.github/ISSUE_TEMPLATE/Bug Report.yml +++ b/.github/ISSUE_TEMPLATE/Bug Report.yml @@ -1,7 +1,7 @@ name: Bug Report description: File a bug report title: "[Bug]: " -labels: ["bug", "triage"] +labels: [bug, triage] body: - type: markdown attributes: diff --git a/.github/ISSUE_TEMPLATE/New Board.yml b/.github/ISSUE_TEMPLATE/New Board.yml index c71ed4ba2..90b2a9bf9 100644 --- a/.github/ISSUE_TEMPLATE/New Board.yml +++ b/.github/ISSUE_TEMPLATE/New Board.yml @@ -1,7 +1,7 @@ name: New Board description: Request us to support new hardware title: "[Board]: " -labels: ["enhancement", "triage"] +labels: [enhancement, triage] body: - type: markdown attributes: diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml index b50ccac26..311f097c4 100644 --- a/.github/ISSUE_TEMPLATE/feature.yml +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -1,7 +1,7 @@ name: Feature Request description: Request a new feature title: "[Feature Request]: " -labels: ["enhancement"] +labels: [enhancement] body: - type: markdown attributes: diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml new file mode 100644 index 000000000..f7bf95f83 --- /dev/null +++ b/.github/actionlint.yaml @@ -0,0 +1,5 @@ +# Configuration related to self-hosted runner. +self-hosted-runner: + # Labels of self-hosted runner in array of strings. + labels: + - test-runner diff --git a/.github/actions/build-variant/action.yml b/.github/actions/build-variant/action.yml index b24a5fc12..2f0883fad 100644 --- a/.github/actions/build-variant/action.yml +++ b/.github/actions/build-variant/action.yml @@ -34,7 +34,7 @@ inputs: arch: description: Processor arch name required: true - default: "esp32" + default: esp32 runs: using: composite diff --git a/.github/actions/setup-base/action.yml b/.github/actions/setup-base/action.yml index 7364c4ddb..7cd0dfcac 100644 --- a/.github/actions/setup-base/action.yml +++ b/.github/actions/setup-base/action.yml @@ -1,13 +1,13 @@ -name: "Setup Build Base Composite Action" -description: "Base build actions for Meshtastic Platform IO steps" +name: Setup Build Base Composite Action +description: Base build actions for Meshtastic Platform IO steps runs: - using: "composite" + using: composite steps: - name: Checkout code uses: actions/checkout@v4 with: - submodules: "recursive" + submodules: recursive ref: ${{github.event.pull_request.head.ref}} repository: ${{github.event.pull_request.head.repo.full_name}} diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 616c16ce2..cf840b1ff 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,26 +1,27 @@ +#trunk-ignore-all(yamllint/quoted-strings): required by dependabot syntax check version: 2 updates: - package-ecosystem: docker directory: devcontainer schedule: interval: daily - time: "05:00" # trunk-ignore(yamllint/quoted-strings): required by dependabot syntax check + time: "05:00" timezone: US/Pacific - package-ecosystem: docker directory: / schedule: interval: daily - time: "05:00" # trunk-ignore(yamllint/quoted-strings): required by dependabot syntax check + time: "05:00" timezone: US/Pacific - package-ecosystem: gitsubmodule directory: / schedule: interval: daily - time: "05:00" # trunk-ignore(yamllint/quoted-strings): required by dependabot syntax check + time: "05:00" timezone: US/Pacific - package-ecosystem: github-actions directory: /.github/workflows schedule: interval: daily - time: "05:00" # trunk-ignore(yamllint/quoted-strings): required by dependabot syntax check + time: "05:00" timezone: US/Pacific diff --git a/.github/workflows/build_nrf52.yml b/.github/workflows/build_nrf52.yml index ce26838f2..786508f86 100644 --- a/.github/workflows/build_nrf52.yml +++ b/.github/workflows/build_nrf52.yml @@ -7,6 +7,8 @@ on: required: true type: string +permissions: read-all + jobs: build-nrf52: runs-on: ubuntu-latest diff --git a/.github/workflows/build_rpi2040.yml b/.github/workflows/build_rpi2040.yml index 492a1f010..53fee34d2 100644 --- a/.github/workflows/build_rpi2040.yml +++ b/.github/workflows/build_rpi2040.yml @@ -7,6 +7,8 @@ on: required: true type: string +permissions: read-all + jobs: build-rpi2040: runs-on: ubuntu-latest diff --git a/.github/workflows/build_stm32.yml b/.github/workflows/build_stm32.yml index b463bab71..dc469d994 100644 --- a/.github/workflows/build_stm32.yml +++ b/.github/workflows/build_stm32.yml @@ -7,6 +7,8 @@ on: required: true type: string +permissions: read-all + jobs: build-stm32: runs-on: ubuntu-latest diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c9489db1a..0f0ee0af4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -2,9 +2,11 @@ name: End to end tests on: schedule: - - cron: "0 0 * * *" # Run every day at midnight + - cron: 0 0 * * * # Run every day at midnight workflow_dispatch: {} +permissions: read-all + jobs: native-tests: uses: ./.github/workflows/test_native.yml diff --git a/.trunk/configs/.markdownlint.yaml b/.trunk/configs/.markdownlint.yaml index fb940393d..6486f050e 100644 --- a/.trunk/configs/.markdownlint.yaml +++ b/.trunk/configs/.markdownlint.yaml @@ -8,3 +8,4 @@ line_length: false spaces: false url: false whitespace: false +headings: false diff --git a/Dockerfile b/Dockerfile index f9a3b9962..4796df301 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,9 @@ # trunk-ignore-all(terrascan/AC_DOCKER_0002): Known terrascan issue -# trunk-ignore-all(hadolint/DL3008): Use latest version of apt packages for buildchain # trunk-ignore-all(trivy/DS002): We must run as root for this container # trunk-ignore-all(checkov/CKV_DOCKER_8): We must run as root for this container # trunk-ignore-all(hadolint/DL3002): We must run as root for this container +# trunk-ignore-all(hadolint/DL3008): Do not pin apt package versions +# trunk-ignore-all(hadolint/DL3013): Do not pin pip package versions FROM python:3.12-bookworm AS builder ENV DEBIAN_FRONTEND=noninteractive @@ -10,12 +11,13 @@ ENV TZ=Etc/UTC # Install Dependencies ENV PIP_ROOT_USER_ACTION=ignore -RUN apt-get update && apt-get install --no-install-recommends -y wget g++ zip git ca-certificates \ +RUN apt-get update && apt-get install --no-install-recommends -y \ + wget g++ zip git ca-certificates \ libgpiod-dev libyaml-cpp-dev libbluetooth-dev libi2c-dev \ - libusb-1.0-0-dev libulfius-dev liborcania-dev libssl-dev pkg-config && \ - apt-get clean && rm -rf /var/lib/apt/lists/* && \ - pip install --no-cache-dir -U platformio==6.1.16 && \ - mkdir /tmp/firmware + libusb-1.0-0-dev libulfius-dev liborcania-dev libssl-dev pkg-config \ + && apt-get clean && rm -rf /var/lib/apt/lists/* \ + && pip install --no-cache-dir -U platformio \ + && mkdir /tmp/firmware # Copy source code WORKDIR /tmp/firmware @@ -35,8 +37,9 @@ ENV TZ=Etc/UTC # nosemgrep: dockerfile.security.last-user-is-root.last-user-is-root USER root -RUN apt-get update && apt-get --no-install-recommends -y install libc-bin libc6 libgpiod2 libyaml-cpp0.7 libi2c0 libulfius2.7 libusb-1.0-0-dev liborcania2.3 libssl3 && \ - apt-get clean && rm -rf /var/lib/apt/lists/* \ +RUN apt-get update && apt-get --no-install-recommends -y install \ + libc-bin libc6 libgpiod2 libyaml-cpp0.7 libi2c0 libulfius2.7 libusb-1.0-0-dev liborcania2.3 libssl3 \ + && apt-get clean && rm -rf /var/lib/apt/lists/* \ && mkdir -p /var/lib/meshtasticd \ && mkdir -p /etc/meshtasticd/config.d \ && mkdir -p /etc/meshtasticd/ssl diff --git a/alpine.Dockerfile b/alpine.Dockerfile index 8b48eeca3..caa86187f 100644 --- a/alpine.Dockerfile +++ b/alpine.Dockerfile @@ -1,14 +1,18 @@ # trunk-ignore-all(trivy/DS002): We must run as root for this container # trunk-ignore-all(checkov/CKV_DOCKER_8): We must run as root for this container # trunk-ignore-all(hadolint/DL3002): We must run as root for this container +# trunk-ignore-all(hadolint/DL3018): Do not pin apk package versions +# trunk-ignore-all(hadolint/DL3013): Do not pin pip package versions FROM python:3.12-alpine3.21 AS builder ENV PIP_ROOT_USER_ACTION=ignore -RUN apk add bash g++ libstdc++-dev linux-headers zip git ca-certificates libgpiod-dev yaml-cpp-dev bluez-dev \ - libusb-dev i2c-tools-dev openssl-dev pkgconf argp-standalone && \ - pip install --no-cache-dir -U platformio==6.1.16 && \ - mkdir /tmp/firmware +RUN apk --no-cache add \ + bash g++ libstdc++-dev linux-headers zip git ca-certificates libgpiod-dev yaml-cpp-dev bluez-dev \ + libusb-dev i2c-tools-dev openssl-dev pkgconf argp-standalone \ + && rm -rf /var/cache/apk/* \ + && pip install --no-cache-dir -U platformio \ + && mkdir /tmp/firmware WORKDIR /tmp/firmware COPY . /tmp/firmware @@ -27,7 +31,9 @@ FROM alpine:3.21 # nosemgrep: dockerfile.security.last-user-is-root.last-user-is-root USER root -RUN apk add libstdc++ libgpiod yaml-cpp libusb i2c-tools \ +RUN apk --no-cache add \ + libstdc++ libgpiod yaml-cpp libusb i2c-tools \ + && rm -rf /var/cache/apk/* \ && mkdir -p /var/lib/meshtasticd \ && mkdir -p /etc/meshtasticd/config.d \ && mkdir -p /etc/meshtasticd/ssl diff --git a/src/modules/WaypointModule.cpp b/src/modules/WaypointModule.cpp index 08b48b682..479a973c2 100644 --- a/src/modules/WaypointModule.cpp +++ b/src/modules/WaypointModule.cpp @@ -144,9 +144,9 @@ void WaypointModule::drawFrame(OLEDDisplay *display, OLEDDisplayUiState *state, bearingToOther -= myHeading; screen->drawNodeHeading(display, compassX, compassY, compassDiam, bearingToOther); - float bearingToOtherDegrees = (bearingToOther < 0) ? bearingToOther + 2*PI : bearingToOther; - bearingToOtherDegrees = bearingToOtherDegrees * 180 / PI; - + float bearingToOtherDegrees = (bearingToOther < 0) ? bearingToOther + 2 * PI : bearingToOther; + bearingToOtherDegrees = bearingToOtherDegrees * 180 / PI; + // Distance to Waypoint float d = GeoCoord::latLongToMeter(DegD(wp.latitude_i), DegD(wp.longitude_i), DegD(op.latitude_i), DegD(op.longitude_i)); if (config.display.units == meshtastic_Config_DisplayConfig_DisplayUnits_IMPERIAL) { @@ -161,7 +161,6 @@ void WaypointModule::drawFrame(OLEDDisplay *display, OLEDDisplayUiState *state, snprintf(distStr, sizeof(distStr), "%.1fkm %.0f°", d / 1000, bearingToOtherDegrees); } - } // If our node doesn't have position diff --git a/test/test_crypto/test_main.cpp b/test/test_crypto/test_main.cpp index fd7706e6e..ac507116c 100644 --- a/test/test_crypto/test_main.cpp +++ b/test/test_crypto/test_main.cpp @@ -1,3 +1,4 @@ +// trunk-ignore-all(gitleaks): These are dummy values. Not real secrets. #include "CryptoEngine.h" #include "TestUtil.h" diff --git a/variants/xiao_ble/README.md b/variants/xiao_ble/README.md index 6fff9cd22..2a08138ba 100644 --- a/variants/xiao_ble/README.md +++ b/variants/xiao_ble/README.md @@ -116,24 +116,26 @@ The default pin mapping in `variant.h` uses 'automatic Tx/Rx switching' mode. If   MCU -> E22 connections -| Xiao BLE pin | variant.h definition | E22 pin | Notes | -| :------------ | :---------------------------- | :-----------------| :------------------------------------------------------------------------------------------------------------------- | -| D0 | SX126X_CS | 19 (NSS) | | -| D1 | SX126X_DIO1 | 13 (DIO1) | | -| D2 | SX126X_BUSY | 14 (BUSY) | | -| D3 | SX126X_RESET | 15 (NRST) | | -| D7 | SX126X_RXEN | 6 (RXEN) | These pins must still be connected, and `SX126X_RXEN` defined in `variant.h`, otherwise Rx sensitivity will be poor. | -| D8 | PIN_SPI_SCK | 18 (SCK) | | -| D9 | PIN_SPI_MISO | 16 (MISO) | | -| D10 | PIN_SPI_MOSI | 17 (MOSI) | | + +| Xiao BLE pin | variant.h definition | E22 pin | Notes | +| :----------- | :------------------- | :-------- | :------------------------------------------------------------------------------------------------------------------- | +| D0 | SX126X_CS | 19 (NSS) | | +| D1 | SX126X_DIO1 | 13 (DIO1) | | +| D2 | SX126X_BUSY | 14 (BUSY) | | +| D3 | SX126X_RESET | 15 (NRST) | | +| D7 | SX126X_RXEN | 6 (RXEN) | These pins must still be connected, and `SX126X_RXEN` defined in `variant.h`, otherwise Rx sensitivity will be poor. | +| D8 | PIN_SPI_SCK | 18 (SCK) | | +| D9 | PIN_SPI_MISO | 16 (MISO) | | +| D10 | PIN_SPI_MOSI | 17 (MOSI) | |     E22 -> E22 connections: -| E22 pin | E22 pin | Notes | -| :------------ | :---------------------------- | :------------------------------------------------------------------------ | -| TXEN | DIO2 | These must be physically connected for automatic Tx/Rx switching to work. | + +| E22 pin | E22 pin | Notes | +| :------ | :------ | :------------------------------------------------------------------------ | +| TXEN | DIO2 | These must be physically connected for automatic Tx/Rx switching to work. |

Note

@@ -148,17 +150,18 @@ The schematic (`xiao-ble-e22-schematic.png`) in the `eagle-project` directory us

Example wiring for "Manual Tx/Rx switching" mode:

MCU -> E22 connections -| Xiao BLE pin | variant.h definition | E22 pin | Notes | -| :------------ | :---------------------------- | :-----------------| :--------------------------- | -| D0 | SX126X_CS | 19 (NSS) | | -| D1 | SX126X_DIO1 | 13 (DIO1) | | -| D2 | SX126X_BUSY | 14 (BUSY) | | -| D3 | SX126X_RESET | 15 (NRST) | | -| D6 | SX126X_TXEN | 7 (TXEN) | | -| D7 | SX126X_RXEN | 6 (RXEN) | | -| D8 | PIN_SPI_SCK | 18 (SCK) | | -| D9 | PIN_SPI_MISO | 16 (MISO) | | -| D10 | PIN_SPI_MOSI | 17 (MOSI) | | + +| Xiao BLE pin | variant.h definition | E22 pin | Notes | +| :----------- | :------------------- | :-------- | :---- | +| D0 | SX126X_CS | 19 (NSS) | | +| D1 | SX126X_DIO1 | 13 (DIO1) | | +| D2 | SX126X_BUSY | 14 (BUSY) | | +| D3 | SX126X_RESET | 15 (NRST) | | +| D6 | SX126X_TXEN | 7 (TXEN) | | +| D7 | SX126X_RXEN | 6 (RXEN) | | +| D8 | PIN_SPI_SCK | 18 (SCK) | | +| D9 | PIN_SPI_MISO | 16 (MISO) | | +| D10 | PIN_SPI_MOSI | 17 (MOSI) | | E22 -> E22 connections: (none) From 3a0ad9bb580d234f3d2af2609a825eb33f41cded Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Feb 2025 20:53:33 +0800 Subject: [PATCH 26/34] Bump python from 3.12-alpine3.21 to 3.13-alpine3.21 (#6142) Bumps python from 3.12-alpine3.21 to 3.13-alpine3.21. --- updated-dependencies: - dependency-name: python dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- alpine.Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4796df301..fd1bb6164 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ # trunk-ignore-all(hadolint/DL3008): Do not pin apt package versions # trunk-ignore-all(hadolint/DL3013): Do not pin pip package versions -FROM python:3.12-bookworm AS builder +FROM python:3.13-bookworm AS builder ENV DEBIAN_FRONTEND=noninteractive ENV TZ=Etc/UTC diff --git a/alpine.Dockerfile b/alpine.Dockerfile index caa86187f..b6d91a75a 100644 --- a/alpine.Dockerfile +++ b/alpine.Dockerfile @@ -4,7 +4,7 @@ # trunk-ignore-all(hadolint/DL3018): Do not pin apk package versions # trunk-ignore-all(hadolint/DL3013): Do not pin pip package versions -FROM python:3.12-alpine3.21 AS builder +FROM python:3.13-alpine3.21 AS builder ENV PIP_ROOT_USER_ACTION=ignore RUN apk --no-cache add \ From f2e49aa4eef7490477874495f8a5074a3d5898bf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 25 Feb 2025 16:27:45 -0500 Subject: [PATCH 27/34] Upgrade trunk (#6151) Co-authored-by: sachaw <11172820+sachaw@users.noreply.github.com> --- .trunk/trunk.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 931dcc7c7..becd6f55f 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -8,11 +8,11 @@ plugins: uri: https://github.com/trunk-io/plugins lint: enabled: - - prettier@3.5.1 + - prettier@3.5.2 - trufflehog@3.88.12 - yamllint@1.35.1 - bandit@1.8.3 - - checkov@3.2.372 + - checkov@3.2.373 - terrascan@1.19.9 - trivy@0.59.1 - taplo@0.9.3 From 598cfcc08149835484f4a00af89fc73430129ffc Mon Sep 17 00:00:00 2001 From: Mictronics Date: Thu, 27 Feb 2025 01:21:03 +0100 Subject: [PATCH 28/34] Cast user pref strings. (#6123) --- src/main.cpp | 2 +- src/mesh/Channels.cpp | 6 +++--- src/mesh/NodeDB.cpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index be498421c..e31ece106 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -117,7 +117,7 @@ AudioThread *audioThread = nullptr; using namespace concurrency; -volatile static const char slipstreamTZString[] = USERPREFS_TZ_STRING; +volatile static const char slipstreamTZString[] = {USERPREFS_TZ_STRING}; // We always create a screen object, but we only init it if we find the hardware graphics::Screen *screen = nullptr; diff --git a/src/mesh/Channels.cpp b/src/mesh/Channels.cpp index 4bc91ce4e..19c0ff347 100644 --- a/src/mesh/Channels.cpp +++ b/src/mesh/Channels.cpp @@ -119,7 +119,7 @@ void Channels::initDefaultChannel(ChannelIndex chIndex) channelSettings.psk.size = sizeof(defaultpsk0); #endif #ifdef USERPREFS_CHANNEL_0_NAME - strcpy(channelSettings.name, USERPREFS_CHANNEL_0_NAME); + strcpy(channelSettings.name, (const char *)USERPREFS_CHANNEL_0_NAME); #endif #ifdef USERPREFS_CHANNEL_0_PRECISION channelSettings.module_settings.position_precision = USERPREFS_CHANNEL_0_PRECISION; @@ -138,7 +138,7 @@ void Channels::initDefaultChannel(ChannelIndex chIndex) channelSettings.psk.size = sizeof(defaultpsk1); #endif #ifdef USERPREFS_CHANNEL_1_NAME - strcpy(channelSettings.name, USERPREFS_CHANNEL_1_NAME); + strcpy(channelSettings.name, (const char *)USERPREFS_CHANNEL_1_NAME); #endif #ifdef USERPREFS_CHANNEL_1_PRECISION channelSettings.module_settings.position_precision = USERPREFS_CHANNEL_1_PRECISION; @@ -157,7 +157,7 @@ void Channels::initDefaultChannel(ChannelIndex chIndex) channelSettings.psk.size = sizeof(defaultpsk2); #endif #ifdef USERPREFS_CHANNEL_2_NAME - strcpy(channelSettings.name, USERPREFS_CHANNEL_2_NAME); + strcpy(channelSettings.name, (const char *)USERPREFS_CHANNEL_2_NAME); #endif #ifdef USERPREFS_CHANNEL_2_PRECISION channelSettings.module_settings.position_precision = USERPREFS_CHANNEL_2_PRECISION; diff --git a/src/mesh/NodeDB.cpp b/src/mesh/NodeDB.cpp index 9caa03928..f328718b0 100644 --- a/src/mesh/NodeDB.cpp +++ b/src/mesh/NodeDB.cpp @@ -859,12 +859,12 @@ void NodeDB::installDefaultDeviceState() // Set default owner name pickNewNodeNum(); // based on macaddr now #ifdef USERPREFS_CONFIG_OWNER_LONG_NAME - snprintf(owner.long_name, sizeof(owner.long_name), USERPREFS_CONFIG_OWNER_LONG_NAME); + snprintf(owner.long_name, sizeof(owner.long_name), (const char *)USERPREFS_CONFIG_OWNER_LONG_NAME); #else snprintf(owner.long_name, sizeof(owner.long_name), "Meshtastic %04x", getNodeNum() & 0x0ffff); #endif #ifdef USERPREFS_CONFIG_OWNER_SHORT_NAME - snprintf(owner.short_name, sizeof(owner.short_name), USERPREFS_CONFIG_OWNER_SHORT_NAME); + snprintf(owner.short_name, sizeof(owner.short_name), (const char *)USERPREFS_CONFIG_OWNER_SHORT_NAME); #else snprintf(owner.short_name, sizeof(owner.short_name), "%04x", getNodeNum() & 0x0ffff); #endif From ffe4e7b6be2b8b260bc0e28f4e9fa1c29300821c Mon Sep 17 00:00:00 2001 From: Karch Date: Wed, 26 Feb 2025 19:57:43 -0500 Subject: [PATCH 29/34] Add some minor additional options to userPrefs.jsonc (#6137) * added some additional userPrefs options * linted * some further changes * fixed some option ordering --- src/mesh/NodeDB.cpp | 12 ++++++++++++ userPrefs.jsonc | 7 +++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/mesh/NodeDB.cpp b/src/mesh/NodeDB.cpp index f328718b0..c06b5df83 100644 --- a/src/mesh/NodeDB.cpp +++ b/src/mesh/NodeDB.cpp @@ -555,7 +555,11 @@ void NodeDB::installDefaultConfig(bool preserveKey = false) #else config.position.gps_mode = meshtastic_Config_PositionConfig_GpsMode_ENABLED; #endif +#ifdef USERPREFS_CONFIG_SMART_POSITION_ENABLED + config.position.position_broadcast_smart_enabled = USERPREFS_CONFIG_SMART_POSITION_ENABLED; +#else config.position.position_broadcast_smart_enabled = true; +#endif config.position.broadcast_smart_minimum_distance = 100; config.position.broadcast_smart_minimum_interval_secs = 30; if (config.device.role != meshtastic_Config_DeviceConfig_Role_ROUTER) @@ -618,8 +622,16 @@ void NodeDB::installDefaultConfig(bool preserveKey = false) void NodeDB::initConfigIntervals() { +#ifdef USERPREFS_CONFIG_GPS_UPDATE_INTERVAL + config.position.gps_update_interval = USERPREFS_CONFIG_GPS_UPDATE_INTERVAL; +#else config.position.gps_update_interval = default_gps_update_interval; +#endif +#ifdef USERPREFS_CONFIG_POSITION_BROADCAST_INTERVAL + config.position.position_broadcast_secs = USERPREFS_CONFIG_POSITION_BROADCAST_INTERVAL; +#else config.position.position_broadcast_secs = default_broadcast_interval_secs; +#endif config.power.ls_secs = default_ls_secs; config.power.min_wake_secs = default_min_wake_secs; diff --git a/userPrefs.jsonc b/userPrefs.jsonc index de610464d..6a3fdbb55 100644 --- a/userPrefs.jsonc +++ b/userPrefs.jsonc @@ -27,9 +27,11 @@ // "USERPREFS_FIXED_GPS_ALT": "0", // "USERPREFS_FIXED_GPS_LAT": "48.85873920", // "USERPREFS_FIXED_GPS_LON": "2.294508368", + // "USERPREFS_CONFIG_SMART_POSITION_ENABLED": "false", + // "USERPREFS_CONFIG_GPS_UPDATE_INTERVAL": "600", + // "USERPREFS_CONFIG_POSITION_BROADCAST_INTERVAL": "1800", // "USERPREFS_LORACONFIG_CHANNEL_NUM": "31", // "USERPREFS_LORACONFIG_MODEM_PRESET": "meshtastic_Config_LoRaConfig_ModemPreset_SHORT_FAST", - "USERPREFS_TZ_STRING": "tzplaceholder " // "USERPREFS_USE_ADMIN_KEY_0": "{ 0xcd, 0xc0, 0xb4, 0x3c, 0x53, 0x24, 0xdf, 0x13, 0xca, 0x5a, 0xa6, 0x0c, 0x0d, 0xec, 0x85, 0x5a, 0x4c, 0xf6, 0x1a, 0x96, 0x04, 0x1a, 0x3e, 0xfc, 0xbb, 0x8e, 0x33, 0x71, 0xe5, 0xfc, 0xff, 0x3c }", // "USERPREFS_USE_ADMIN_KEY_1": "{}", // "USERPREFS_USE_ADMIN_KEY_2": "{}", @@ -37,5 +39,6 @@ // "USERPREFS_OEM_FONT_SIZE": "0", // "USERPREFS_OEM_IMAGE_WIDTH": "50", // "USERPREFS_OEM_IMAGE_HEIGHT": "28", - // "USERPREFS_OEM_IMAGE_DATA": "{ 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x18, 0xFF, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xC7, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xC7, 0x00, 0x00, 0x00, 0x18, 0xFF, 0xFF, 0x67, 0x00, 0x00, 0x00, 0x18, 0x1F, 0xF0, 0x67, 0x00, 0x00, 0x00, 0x30, 0x1F, 0xF8, 0x33, 0x00, 0x00, 0x00, 0x30, 0x00, 0xFC, 0x31, 0x00, 0x00, 0x00, 0x60, 0x00, 0xFE, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x7E, 0x18, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x3F, 0x0C, 0x00, 0x00, 0x00, 0xC0, 0x80, 0x1F, 0x0C, 0x00, 0x00, 0x00, 0x80, 0x81, 0x1F, 0x06, 0x00, 0x00, 0x00, 0x80, 0xC1, 0x0F, 0x06, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0xE6, 0x8F, 0x01, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xC7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00}" + // "USERPREFS_OEM_IMAGE_DATA": "{ 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x18, 0xFF, 0xFF, 0x61, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xC7, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xC7, 0x00, 0x00, 0x00, 0x18, 0xFF, 0xFF, 0x67, 0x00, 0x00, 0x00, 0x18, 0x1F, 0xF0, 0x67, 0x00, 0x00, 0x00, 0x30, 0x1F, 0xF8, 0x33, 0x00, 0x00, 0x00, 0x30, 0x00, 0xFC, 0x31, 0x00, 0x00, 0x00, 0x60, 0x00, 0xFE, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x7E, 0x18, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x3F, 0x0C, 0x00, 0x00, 0x00, 0xC0, 0x80, 0x1F, 0x0C, 0x00, 0x00, 0x00, 0x80, 0x81, 0x1F, 0x06, 0x00, 0x00, 0x00, 0x80, 0xC1, 0x0F, 0x06, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0xE6, 0x8F, 0x01, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xC7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00}", + "USERPREFS_TZ_STRING": "tzplaceholder " } From b437f0fb545c8aa62858bcec69a3f0e31c5ac2c9 Mon Sep 17 00:00:00 2001 From: Austin Date: Wed, 26 Feb 2025 20:43:01 -0500 Subject: [PATCH 30/34] More trunk junk / remove old workflows (#6153) --- .github/dependabot.yml | 2 +- .github/workflows/generate-userprefs.yml | 35 - .github/workflows/nightly.yml | 4 +- .github/workflows/sec_sast_flawfinder.yml | 41 - .github/workflows/sec_sast_semgrep_cron.yml | 6 +- .github/workflows/sec_sast_semgrep_pull.yml | 2 + .github/workflows/trunk_annotate_pr.yml | 2 +- .github/workflows/trunk_check.yml | 2 +- .github/workflows/trunk_format_pr.yml | 6 +- .github/workflows/update_protobufs.yml | 6 +- monitor/filter_c3_exception_decoder.py | 3 + src/graphics/fonts/OLEDDisplayFontsPL.cpp | 2605 ++++++++++--------- 12 files changed, 1326 insertions(+), 1388 deletions(-) delete mode 100644 .github/workflows/generate-userprefs.yml delete mode 100644 .github/workflows/sec_sast_flawfinder.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index cf840b1ff..a7b4a0f1b 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -2,7 +2,7 @@ version: 2 updates: - package-ecosystem: docker - directory: devcontainer + directory: /.devcontainer schedule: interval: daily time: "05:00" diff --git a/.github/workflows/generate-userprefs.yml b/.github/workflows/generate-userprefs.yml deleted file mode 100644 index 10dd1ff7d..000000000 --- a/.github/workflows/generate-userprefs.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Generate UsersPrefs JSON manifest - -on: - push: - paths: - - userPrefs.h - branches: - - master - -jobs: - generate-userprefs: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install Clang - run: sudo apt-get install -y clang - - - name: Install trunk - run: curl https://get.trunk.io -fsSL | bash - - - name: Generate userPrefs.jsom - run: python3 ./bin/build-userprefs-json.py - - - name: Trunk format json - run: trunk format userPrefs.json - - - name: Commit userPrefs.json - run: | - git config --global user.email "actions@github.com" - git config --global user.name "GitHub Actions" - git add userPrefs.json - git commit -m "Update userPrefs.json" - git push diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 28ba12fcc..36ec22f17 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -9,7 +9,7 @@ permissions: read-all jobs: trunk_check: name: Trunk Check and Upload - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout @@ -23,7 +23,7 @@ jobs: trunk_upgrade: # See: https://github.com/trunk-io/trunk-action/blob/v1/readme.md#automatic-upgrades name: Trunk Upgrade (PR) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: contents: write # For trunk to create PRs pull-requests: write # For trunk to create PRs diff --git a/.github/workflows/sec_sast_flawfinder.yml b/.github/workflows/sec_sast_flawfinder.yml deleted file mode 100644 index 99cc72190..000000000 --- a/.github/workflows/sec_sast_flawfinder.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- -name: Flawfinder Scan - -on: - push: - branches: [master, develop] - paths-ignore: - - "**.md" - - "version.properties" - -jobs: - flawfinder: - runs-on: ubuntu-latest - name: Flawfinder - - steps: - # step 1 - - name: clone application source code - uses: actions/checkout@v4 - - # step 2 - - name: flawfinder_scan - uses: david-a-wheeler/flawfinder@2.0.19 - with: - arguments: "--sarif ./" - output: "flawfinder_report.sarif" - - # step 3 - - name: save report as pipeline artifact - uses: actions/upload-artifact@v4 - with: - name: flawfinder_report.sarif - overwrite: true - path: flawfinder_report.sarif - - # step 4 - - name: publish code scanning alerts - uses: github/codeql-action/upload-sarif@v3 - with: - sarif_file: flawfinder_report.sarif - category: flawfinder diff --git a/.github/workflows/sec_sast_semgrep_cron.yml b/.github/workflows/sec_sast_semgrep_cron.yml index 54bbbe6d2..944103562 100644 --- a/.github/workflows/sec_sast_semgrep_cron.yml +++ b/.github/workflows/sec_sast_semgrep_cron.yml @@ -3,10 +3,10 @@ name: Semgrep Full Scan on: workflow_dispatch: - branches: - - master schedule: - - cron: "0 1 * * 6" + - cron: 0 1 * * 6 + +permissions: read-all jobs: semgrep-full: diff --git a/.github/workflows/sec_sast_semgrep_pull.yml b/.github/workflows/sec_sast_semgrep_pull.yml index 9013f1c74..527a5c076 100644 --- a/.github/workflows/sec_sast_semgrep_pull.yml +++ b/.github/workflows/sec_sast_semgrep_pull.yml @@ -2,6 +2,8 @@ name: Semgrep Differential Scan on: pull_request +permissions: read-all + jobs: semgrep-diff: runs-on: ubuntu-22.04 diff --git a/.github/workflows/trunk_annotate_pr.yml b/.github/workflows/trunk_annotate_pr.yml index ac5cdc0d5..62c1c01b7 100644 --- a/.github/workflows/trunk_annotate_pr.yml +++ b/.github/workflows/trunk_annotate_pr.yml @@ -11,7 +11,7 @@ permissions: read-all jobs: trunk_check: name: Trunk Code Quality Annotate - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: checks: write # For trunk to post annotations contents: read # For repo checkout diff --git a/.github/workflows/trunk_check.yml b/.github/workflows/trunk_check.yml index 2e74ab25f..55656bf48 100644 --- a/.github/workflows/trunk_check.yml +++ b/.github/workflows/trunk_check.yml @@ -9,7 +9,7 @@ permissions: read-all jobs: trunk_check: name: Trunk Check Runner - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: checks: write # For trunk to post annotations contents: read # For repo checkout diff --git a/.github/workflows/trunk_format_pr.yml b/.github/workflows/trunk_format_pr.yml index 0d6eb6041..33f4182eb 100644 --- a/.github/workflows/trunk_format_pr.yml +++ b/.github/workflows/trunk_format_pr.yml @@ -4,11 +4,15 @@ on: issue_comment: types: [created] +permissions: read-all + jobs: trunk-fmt: if: github.event.issue.pull_request != null && contains(github.event.comment.body, 'trunk fmt') runs-on: ubuntu-latest - + permissions: + contents: write + pull-requests: write steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/update_protobufs.yml b/.github/workflows/update_protobufs.yml index e7b3c1f40..5aa295b89 100644 --- a/.github/workflows/update_protobufs.yml +++ b/.github/workflows/update_protobufs.yml @@ -1,10 +1,14 @@ name: Update protobufs and regenerate classes on: workflow_dispatch +permissions: read-all + jobs: update-protobufs: runs-on: ubuntu-latest - + permissions: + contents: write + pull-requests: write steps: - name: Checkout code uses: actions/checkout@v4 diff --git a/monitor/filter_c3_exception_decoder.py b/monitor/filter_c3_exception_decoder.py index 6d7b5370c..5e74dc2b9 100644 --- a/monitor/filter_c3_exception_decoder.py +++ b/monitor/filter_c3_exception_decoder.py @@ -1,3 +1,6 @@ +# trunk-ignore-all(bandit/B404): subprocess is used to call addr2line +# trunk-ignore-all(bandit/B603): subprocess is used to call addr2line + # Copyright (c) 2014-present PlatformIO # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/graphics/fonts/OLEDDisplayFontsPL.cpp b/src/graphics/fonts/OLEDDisplayFontsPL.cpp index 1f43967aa..0767e24e7 100644 --- a/src/graphics/fonts/OLEDDisplayFontsPL.cpp +++ b/src/graphics/fonts/OLEDDisplayFontsPL.cpp @@ -1,1312 +1,1313 @@ +// trunk-ignore-all(clang-format): Preserve long lines #include "OLEDDisplayFontsPL.h" const uint8_t ArialMT_Plain_10_PL[] PROGMEM = { -0x0A, // Width: 10 -0x0D, // Height: 13 -0x20, // First char: 32 -0xE0, // Number of chars: 224 -// Jump Table: -0xFF, 0xFF, 0x00, 0x03, // 32 -0x00, 0x00, 0x04, 0x03, // 33 -0x00, 0x04, 0x05, 0x04, // 34 -0x00, 0x09, 0x09, 0x06, // 35 -0x00, 0x12, 0x0A, 0x06, // 36 -0x00, 0x1C, 0x10, 0x09, // 37 -0x00, 0x2C, 0x0E, 0x08, // 38 -0x00, 0x3A, 0x01, 0x02, // 39 -0x00, 0x3B, 0x06, 0x04, // 40 -0x00, 0x41, 0x06, 0x04, // 41 -0x00, 0x47, 0x05, 0x04, // 42 -0x00, 0x4C, 0x09, 0x06, // 43 -0x00, 0x55, 0x04, 0x03, // 44 -0x00, 0x59, 0x03, 0x03, // 45 -0x00, 0x5C, 0x04, 0x03, // 46 -0x00, 0x60, 0x05, 0x04, // 47 -0x00, 0x65, 0x0A, 0x06, // 48 -0x00, 0x6F, 0x08, 0x05, // 49 -0x00, 0x77, 0x0A, 0x06, // 50 -0x00, 0x81, 0x0A, 0x06, // 51 -0x00, 0x8B, 0x0B, 0x07, // 52 -0x00, 0x96, 0x0A, 0x06, // 53 -0x00, 0xA0, 0x0A, 0x06, // 54 -0x00, 0xAA, 0x09, 0x06, // 55 -0x00, 0xB3, 0x0A, 0x06, // 56 -0x00, 0xBD, 0x0A, 0x06, // 57 -0x00, 0xC7, 0x04, 0x03, // 58 -0x00, 0xCB, 0x04, 0x03, // 59 -0x00, 0xCF, 0x0A, 0x06, // 60 -0x00, 0xD9, 0x09, 0x06, // 61 -0x00, 0xE2, 0x09, 0x06, // 62 -0x00, 0xEB, 0x0B, 0x07, // 63 -0x00, 0xF6, 0x14, 0x0B, // 64 -0x01, 0x0A, 0x0E, 0x08, // 65 -0x01, 0x18, 0x0C, 0x07, // 66 -0x01, 0x24, 0x0C, 0x07, // 67 -0x01, 0x30, 0x0B, 0x07, // 68 -0x01, 0x3B, 0x0C, 0x07, // 69 -0x01, 0x47, 0x09, 0x06, // 70 -0x01, 0x50, 0x0D, 0x08, // 71 -0x01, 0x5D, 0x0C, 0x07, // 72 -0x01, 0x69, 0x04, 0x03, // 73 -0x01, 0x6D, 0x08, 0x05, // 74 -0x01, 0x75, 0x0E, 0x08, // 75 -0x01, 0x83, 0x0C, 0x07, // 76 -0x01, 0x8F, 0x10, 0x09, // 77 -0x01, 0x9F, 0x0C, 0x07, // 78 -0x01, 0xAB, 0x0E, 0x08, // 79 -0x01, 0xB9, 0x0B, 0x07, // 80 -0x01, 0xC4, 0x0E, 0x08, // 81 -0x01, 0xD2, 0x0C, 0x07, // 82 -0x01, 0xDE, 0x0C, 0x07, // 83 -0x01, 0xEA, 0x0B, 0x07, // 84 -0x01, 0xF5, 0x0C, 0x07, // 85 -0x02, 0x01, 0x0D, 0x08, // 86 -0x02, 0x0E, 0x11, 0x0A, // 87 -0x02, 0x1F, 0x0E, 0x08, // 88 -0x02, 0x2D, 0x0D, 0x08, // 89 -0x02, 0x3A, 0x0C, 0x07, // 90 -0x02, 0x46, 0x06, 0x04, // 91 -0x02, 0x4C, 0x06, 0x04, // 92 -0x02, 0x52, 0x04, 0x03, // 93 -0x02, 0x56, 0x09, 0x06, // 94 -0x02, 0x5F, 0x0C, 0x07, // 95 -0x02, 0x6B, 0x03, 0x03, // 96 -0x02, 0x6E, 0x0A, 0x06, // 97 -0x02, 0x78, 0x0A, 0x06, // 98 -0x02, 0x82, 0x0A, 0x06, // 99 -0x02, 0x8C, 0x0A, 0x06, // 100 -0x02, 0x96, 0x0A, 0x06, // 101 -0x02, 0xA0, 0x05, 0x04, // 102 -0x02, 0xA5, 0x0A, 0x06, // 103 -0x02, 0xAF, 0x0A, 0x06, // 104 -0x02, 0xB9, 0x04, 0x03, // 105 -0x02, 0xBD, 0x04, 0x03, // 106 -0x02, 0xC1, 0x08, 0x05, // 107 -0x02, 0xC9, 0x04, 0x03, // 108 -0x02, 0xCD, 0x10, 0x09, // 109 -0x02, 0xDD, 0x0A, 0x06, // 110 -0x02, 0xE7, 0x0A, 0x06, // 111 -0x02, 0xF1, 0x0A, 0x06, // 112 -0x02, 0xFB, 0x0A, 0x06, // 113 -0x03, 0x05, 0x05, 0x04, // 114 -0x03, 0x0A, 0x08, 0x05, // 115 -0x03, 0x12, 0x06, 0x04, // 116 -0x03, 0x18, 0x0A, 0x06, // 117 -0x03, 0x22, 0x09, 0x06, // 118 -0x03, 0x2B, 0x0E, 0x08, // 119 -0x03, 0x39, 0x0A, 0x06, // 120 -0x03, 0x43, 0x09, 0x06, // 121 -0x03, 0x4C, 0x0A, 0x06, // 122 -0x03, 0x56, 0x06, 0x04, // 123 -0x03, 0x5C, 0x04, 0x03, // 124 -0x03, 0x60, 0x05, 0x04, // 125 -0x03, 0x65, 0x09, 0x06, // 126 -0xFF, 0xFF, 0x00, 0x0A, // 127 -0xFF, 0xFF, 0x00, 0x0A, // 128 -0x03, 0x6E, 0x0C, 0x07, // 129 -0x03, 0x7A, 0x05, 0x04, // 130 -0x03, 0x7F, 0x0C, 0x07, // 131 -0x03, 0x8B, 0x0E, 0x08, // 132 -0x03, 0x99, 0x0A, 0x06, // 133 -0x03, 0xA3, 0x0C, 0x07, // 134 -0x03, 0xAF, 0x0A, 0x06, // 135 -0x03, 0xB9, 0x0A, 0x06, // 136 -0x03, 0xC3, 0x0A, 0x06, // 137 -0xFF, 0xFF, 0x00, 0x0A, // 138 -0xFF, 0xFF, 0x00, 0x0A, // 139 -0xFF, 0xFF, 0x00, 0x0A, // 140 -0xFF, 0xFF, 0x00, 0x0A, // 141 -0xFF, 0xFF, 0x00, 0x0A, // 142 -0xFF, 0xFF, 0x00, 0x0A, // 143 -0xFF, 0xFF, 0x00, 0x0A, // 144 -0xFF, 0xFF, 0x00, 0x0A, // 145 -0xFF, 0xFF, 0x00, 0x0A, // 146 -0x03, 0xCD, 0x0E, 0x08, // 147 -0x03, 0xDB, 0x0A, 0x06, // 148 -0xFF, 0xFF, 0x00, 0x0A, // 149 -0xFF, 0xFF, 0x00, 0x0A, // 150 -0xFF, 0xFF, 0x00, 0x0A, // 151 -0x03, 0xE5, 0x0C, 0x07, // 152 -0x03, 0xF1, 0x0A, 0x06, // 153 -0x03, 0xFB, 0x0C, 0x07, // 154 -0x04, 0x07, 0x08, 0x05, // 155 -0xFF, 0xFF, 0x00, 0x0A, // 156 -0xFF, 0xFF, 0x00, 0x0A, // 157 -0xFF, 0xFF, 0x00, 0x0A, // 158 -0xFF, 0xFF, 0x00, 0x0A, // 159 -0xFF, 0xFF, 0x00, 0x0A, // 160 -0x04, 0x0F, 0x04, 0x03, // 161 -0x04, 0x13, 0x0A, 0x06, // 162 -0x04, 0x1D, 0x0C, 0x07, // 163 -0x04, 0x29, 0x0A, 0x06, // 164 -0x04, 0x33, 0x0A, 0x06, // 165 -0x04, 0x3D, 0x04, 0x03, // 166 -0x04, 0x41, 0x0A, 0x06, // 167 -0x04, 0x4B, 0x05, 0x04, // 168 -0x04, 0x50, 0x0D, 0x08, // 169 -0x04, 0x5D, 0x07, 0x05, // 170 -0x04, 0x64, 0x0A, 0x06, // 171 -0x04, 0x6E, 0x09, 0x06, // 172 -0x04, 0x77, 0x03, 0x03, // 173 -0x04, 0x7A, 0x0D, 0x08, // 174 -0x04, 0x87, 0x0B, 0x07, // 175 -0x04, 0x92, 0x07, 0x05, // 176 -0x04, 0x99, 0x0A, 0x06, // 177 -0x04, 0xA3, 0x05, 0x04, // 178 -0x04, 0xA8, 0x05, 0x04, // 179 -0x04, 0xAD, 0x05, 0x04, // 180 -0x04, 0xB2, 0x0A, 0x06, // 181 -0x04, 0xBC, 0x09, 0x06, // 182 -0x04, 0xC5, 0x03, 0x03, // 183 -0x04, 0xC8, 0x06, 0x04, // 184 -0x04, 0xCE, 0x0C, 0x07, // 185 -0x04, 0xDA, 0x07, 0x05, // 186 -0x04, 0xE1, 0x0C, 0x07, // 187 -0x04, 0xED, 0x0A, 0x06, // 188 -0x04, 0xF7, 0x10, 0x09, // 189 -0x05, 0x07, 0x10, 0x09, // 190 -0x05, 0x17, 0x0A, 0x06, // 191 -0x05, 0x21, 0x0E, 0x08, // 192 -0x05, 0x2F, 0x0E, 0x08, // 193 -0x05, 0x3D, 0x0E, 0x08, // 194 -0x05, 0x4B, 0x0E, 0x08, // 195 -0x05, 0x59, 0x0E, 0x08, // 196 -0x05, 0x67, 0x0E, 0x08, // 197 -0x05, 0x75, 0x12, 0x0A, // 198 -0x05, 0x87, 0x0C, 0x07, // 199 -0x05, 0x93, 0x0C, 0x07, // 200 -0x05, 0x9F, 0x0C, 0x07, // 201 -0x05, 0xAB, 0x0C, 0x07, // 202 -0x05, 0xB7, 0x0C, 0x07, // 203 -0x05, 0xC3, 0x05, 0x04, // 204 -0x05, 0xC8, 0x04, 0x03, // 205 -0x05, 0xCC, 0x04, 0x03, // 206 -0x05, 0xD0, 0x05, 0x04, // 207 -0x05, 0xD5, 0x0B, 0x07, // 208 -0x05, 0xE0, 0x0C, 0x07, // 209 -0x05, 0xEC, 0x0E, 0x08, // 210 -0x05, 0xFA, 0x0E, 0x08, // 211 -0x06, 0x08, 0x0E, 0x08, // 212 -0x06, 0x16, 0x0E, 0x08, // 213 -0x06, 0x24, 0x0E, 0x08, // 214 -0x06, 0x32, 0x0A, 0x06, // 215 -0x06, 0x3C, 0x0D, 0x08, // 216 -0x06, 0x49, 0x0C, 0x07, // 217 -0x06, 0x55, 0x0C, 0x07, // 218 -0x06, 0x61, 0x0C, 0x07, // 219 -0x06, 0x6D, 0x0C, 0x07, // 220 -0x06, 0x79, 0x0D, 0x08, // 221 -0x06, 0x86, 0x0B, 0x07, // 222 -0x06, 0x91, 0x0C, 0x07, // 223 -0x06, 0x9D, 0x0A, 0x06, // 224 -0x06, 0xA7, 0x0A, 0x06, // 225 -0x06, 0xB1, 0x0A, 0x06, // 226 -0x06, 0xBB, 0x0A, 0x06, // 227 -0x06, 0xC5, 0x0A, 0x06, // 228 -0x06, 0xCF, 0x0A, 0x06, // 229 -0x06, 0xD9, 0x10, 0x09, // 230 -0x06, 0xE9, 0x0A, 0x06, // 231 -0x06, 0xF3, 0x0A, 0x06, // 232 -0x06, 0xFD, 0x0A, 0x06, // 233 -0x07, 0x07, 0x0A, 0x06, // 234 -0x07, 0x11, 0x0A, 0x06, // 235 -0x07, 0x1B, 0x05, 0x04, // 236 -0x07, 0x20, 0x04, 0x03, // 237 -0x07, 0x24, 0x05, 0x04, // 238 -0x07, 0x29, 0x05, 0x04, // 239 -0x07, 0x2E, 0x0A, 0x06, // 240 -0x07, 0x38, 0x0A, 0x06, // 241 -0x07, 0x42, 0x0A, 0x06, // 242 -0x07, 0x4C, 0x0A, 0x06, // 243 -0x07, 0x56, 0x0A, 0x06, // 244 -0x07, 0x60, 0x0A, 0x06, // 245 -0x07, 0x6A, 0x0A, 0x06, // 246 -0x07, 0x74, 0x09, 0x06, // 247 -0x07, 0x7D, 0x0A, 0x06, // 248 -0x07, 0x87, 0x0A, 0x06, // 249 -0x07, 0x91, 0x0A, 0x06, // 250 -0x07, 0x9B, 0x0A, 0x06, // 251 -0x07, 0xA5, 0x0A, 0x06, // 252 -0x07, 0xAF, 0x09, 0x06, // 253 -0x07, 0xB8, 0x0A, 0x06, // 254 -0x07, 0xC2, 0x09, 0x06, // 255 -// Font Data: -0x00, 0x00, 0xF8, 0x02, // 33 -0x38, 0x00, 0x00, 0x00, 0x38, // 34 -0xA0, 0x03, 0xE0, 0x00, 0xB8, 0x03, 0xE0, 0x00, 0xB8, // 35 -0x30, 0x01, 0x28, 0x02, 0xF8, 0x07, 0x48, 0x02, 0x90, 0x01, // 36 -0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x30, 0x03, 0xC0, 0x00, 0xB0, 0x01, 0x48, 0x02, 0x80, 0x01, // 37 -0x80, 0x01, 0x50, 0x02, 0x68, 0x02, 0xA8, 0x02, 0x18, 0x01, 0x80, 0x03, 0x80, 0x02, // 38 -0x38, // 39 -0xE0, 0x03, 0x10, 0x04, 0x08, 0x08, // 40 -0x08, 0x08, 0x10, 0x04, 0xE0, 0x03, // 41 -0x28, 0x00, 0x18, 0x00, 0x28, // 42 -0x40, 0x00, 0x40, 0x00, 0xF0, 0x01, 0x40, 0x00, 0x40, // 43 -0x00, 0x00, 0x00, 0x06, // 44 -0x80, 0x00, 0x80, // 45 -0x00, 0x00, 0x00, 0x02, // 46 -0x00, 0x03, 0xE0, 0x00, 0x18, // 47 -0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0xF0, 0x01, // 48 -0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0xF8, 0x03, // 49 -0x10, 0x02, 0x08, 0x03, 0x88, 0x02, 0x48, 0x02, 0x30, 0x02, // 50 -0x10, 0x01, 0x08, 0x02, 0x48, 0x02, 0x48, 0x02, 0xB0, 0x01, // 51 -0xC0, 0x00, 0xA0, 0x00, 0x90, 0x00, 0x88, 0x00, 0xF8, 0x03, 0x80, // 52 -0x60, 0x01, 0x38, 0x02, 0x28, 0x02, 0x28, 0x02, 0xC8, 0x01, // 53 -0xF0, 0x01, 0x28, 0x02, 0x28, 0x02, 0x28, 0x02, 0xD0, 0x01, // 54 -0x08, 0x00, 0x08, 0x03, 0xC8, 0x00, 0x38, 0x00, 0x08, // 55 -0xB0, 0x01, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0xB0, 0x01, // 56 -0x70, 0x01, 0x88, 0x02, 0x88, 0x02, 0x88, 0x02, 0xF0, 0x01, // 57 -0x00, 0x00, 0x20, 0x02, // 58 -0x00, 0x00, 0x20, 0x06, // 59 -0x00, 0x00, 0x40, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0x10, 0x01, // 60 -0xA0, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA0, // 61 -0x00, 0x00, 0x10, 0x01, 0xA0, 0x00, 0xA0, 0x00, 0x40, // 62 -0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0xC8, 0x02, 0x48, 0x00, 0x30, // 63 -0x00, 0x00, 0xC0, 0x03, 0x30, 0x04, 0xD0, 0x09, 0x28, 0x0A, 0x28, 0x0A, 0xC8, 0x0B, 0x68, 0x0A, 0x10, 0x05, 0xE0, 0x04, // 64 -0x00, 0x02, 0xC0, 0x01, 0xB0, 0x00, 0x88, 0x00, 0xB0, 0x00, 0xC0, 0x01, 0x00, 0x02, // 65 -0x00, 0x00, 0xF8, 0x03, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0xF0, 0x01, // 66 -0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x10, 0x01, // 67 -0x00, 0x00, 0xF8, 0x03, 0x08, 0x02, 0x08, 0x02, 0x10, 0x01, 0xE0, // 68 -0x00, 0x00, 0xF8, 0x03, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, // 69 -0x00, 0x00, 0xF8, 0x03, 0x48, 0x00, 0x48, 0x00, 0x08, // 70 -0x00, 0x00, 0xE0, 0x00, 0x10, 0x01, 0x08, 0x02, 0x48, 0x02, 0x50, 0x01, 0xC0, // 71 -0x00, 0x00, 0xF8, 0x03, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xF8, 0x03, // 72 -0x00, 0x00, 0xF8, 0x03, // 73 -0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0xF8, 0x01, // 74 -0x00, 0x00, 0xF8, 0x03, 0x80, 0x00, 0x60, 0x00, 0x90, 0x00, 0x08, 0x01, 0x00, 0x02, // 75 -0x00, 0x00, 0xF8, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, // 76 -0x00, 0x00, 0xF8, 0x03, 0x30, 0x00, 0xC0, 0x01, 0x00, 0x02, 0xC0, 0x01, 0x30, 0x00, 0xF8, 0x03, // 77 -0x00, 0x00, 0xF8, 0x03, 0x30, 0x00, 0x40, 0x00, 0x80, 0x01, 0xF8, 0x03, // 78 -0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0xF0, 0x01, // 79 -0x00, 0x00, 0xF8, 0x03, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30, // 80 -0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x03, 0x08, 0x03, 0xF0, 0x02, // 81 -0x00, 0x00, 0xF8, 0x03, 0x48, 0x00, 0x48, 0x00, 0xC8, 0x00, 0x30, 0x03, // 82 -0x00, 0x00, 0x30, 0x01, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0x90, 0x01, // 83 -0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF8, 0x03, 0x08, 0x00, 0x08, // 84 -0x00, 0x00, 0xF8, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0xF8, 0x01, // 85 -0x08, 0x00, 0x70, 0x00, 0x80, 0x01, 0x00, 0x02, 0x80, 0x01, 0x70, 0x00, 0x08, // 86 -0x18, 0x00, 0xE0, 0x01, 0x00, 0x02, 0xF0, 0x01, 0x08, 0x00, 0xF0, 0x01, 0x00, 0x02, 0xE0, 0x01, 0x18, // 87 -0x00, 0x02, 0x08, 0x01, 0x90, 0x00, 0x60, 0x00, 0x90, 0x00, 0x08, 0x01, 0x00, 0x02, // 88 -0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0xC0, 0x03, 0x20, 0x00, 0x10, 0x00, 0x08, // 89 -0x08, 0x03, 0x88, 0x02, 0xC8, 0x02, 0x68, 0x02, 0x38, 0x02, 0x18, 0x02, // 90 -0x00, 0x00, 0xF8, 0x0F, 0x08, 0x08, // 91 -0x18, 0x00, 0xE0, 0x00, 0x00, 0x03, // 92 -0x08, 0x08, 0xF8, 0x0F, // 93 -0x40, 0x00, 0x30, 0x00, 0x08, 0x00, 0x30, 0x00, 0x40, // 94 -0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, // 95 -0x08, 0x00, 0x10, // 96 -0x00, 0x00, 0x00, 0x03, 0xA0, 0x02, 0xA0, 0x02, 0xE0, 0x03, // 97 -0x00, 0x00, 0xF8, 0x03, 0x20, 0x02, 0x20, 0x02, 0xC0, 0x01, // 98 -0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x20, 0x02, 0x40, 0x01, // 99 -0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x20, 0x02, 0xF8, 0x03, // 100 -0x00, 0x00, 0xC0, 0x01, 0xA0, 0x02, 0xA0, 0x02, 0xC0, 0x02, // 101 -0x20, 0x00, 0xF0, 0x03, 0x28, // 102 -0x00, 0x00, 0xC0, 0x05, 0x20, 0x0A, 0x20, 0x0A, 0xE0, 0x07, // 103 -0x00, 0x00, 0xF8, 0x03, 0x20, 0x00, 0x20, 0x00, 0xC0, 0x03, // 104 -0x00, 0x00, 0xE8, 0x03, // 105 -0x00, 0x08, 0xE8, 0x07, // 106 -0xF8, 0x03, 0x80, 0x00, 0xC0, 0x01, 0x20, 0x02, // 107 -0x00, 0x00, 0xF8, 0x03, // 108 -0x00, 0x00, 0xE0, 0x03, 0x20, 0x00, 0x20, 0x00, 0xE0, 0x03, 0x20, 0x00, 0x20, 0x00, 0xC0, 0x03, // 109 -0x00, 0x00, 0xE0, 0x03, 0x20, 0x00, 0x20, 0x00, 0xC0, 0x03, // 110 -0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x20, 0x02, 0xC0, 0x01, // 111 -0x00, 0x00, 0xE0, 0x0F, 0x20, 0x02, 0x20, 0x02, 0xC0, 0x01, // 112 -0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x20, 0x02, 0xE0, 0x0F, // 113 -0x00, 0x00, 0xE0, 0x03, 0x20, // 114 -0x40, 0x02, 0xA0, 0x02, 0xA0, 0x02, 0x20, 0x01, // 115 -0x20, 0x00, 0xF8, 0x03, 0x20, 0x02, // 116 -0x00, 0x00, 0xE0, 0x01, 0x00, 0x02, 0x00, 0x02, 0xE0, 0x03, // 117 -0x20, 0x00, 0xC0, 0x01, 0x00, 0x02, 0xC0, 0x01, 0x20, // 118 -0xE0, 0x01, 0x00, 0x02, 0xC0, 0x01, 0x20, 0x00, 0xC0, 0x01, 0x00, 0x02, 0xE0, 0x01, // 119 -0x20, 0x02, 0x40, 0x01, 0x80, 0x00, 0x40, 0x01, 0x20, 0x02, // 120 -0x20, 0x00, 0xC0, 0x09, 0x00, 0x06, 0xC0, 0x01, 0x20, // 121 -0x20, 0x02, 0x20, 0x03, 0xA0, 0x02, 0x60, 0x02, 0x20, 0x02, // 122 -0x80, 0x00, 0x78, 0x0F, 0x08, 0x08, // 123 -0x00, 0x00, 0xF8, 0x0F, // 124 -0x08, 0x08, 0x78, 0x0F, 0x80, // 125 -0xC0, 0x00, 0x40, 0x00, 0xC0, 0x00, 0x80, 0x00, 0xC0, // 126 -0x00, 0x00, 0xF8, 0x03, 0x40, 0x02, 0x20, 0x02, 0x00, 0x02, 0x00, 0x02, // 129 -0x40, 0x00, 0xF8, 0x03, 0x20, // 130 -0x00, 0x00, 0xF8, 0x03, 0x30, 0x00, 0x44, 0x00, 0x82, 0x01, 0xF8, 0x03, // 131 -0x00, 0x02, 0xC0, 0x01, 0xB0, 0x00, 0x88, 0x00, 0xB0, 0x00, 0xC0, 0x0D, 0x00, 0x0A, // 132 -0x00, 0x00, 0x00, 0x03, 0xA0, 0x02, 0xA0, 0x0E, 0xE0, 0x0B, // 133 -0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x0A, 0x02, 0x09, 0x02, 0x10, 0x01, // 134 -0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x28, 0x02, 0x44, 0x01, // 135 -0x00, 0x00, 0xE0, 0x03, 0x20, 0x00, 0x28, 0x00, 0xC4, 0x03, // 136 -0x20, 0x02, 0x20, 0x03, 0xA8, 0x02, 0x64, 0x02, 0x20, 0x02, // 137 -0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x0A, 0x02, 0x09, 0x02, 0xF0, 0x01, // 147 -0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x28, 0x02, 0xC4, 0x01, // 148 -0x00, 0x00, 0xF8, 0x03, 0x48, 0x02, 0x48, 0x0E, 0x48, 0x0A, 0x48, 0x02, // 152 -0x00, 0x00, 0xC0, 0x01, 0xA0, 0x02, 0xA0, 0x0E, 0xC0, 0x0A, // 153 -0x00, 0x00, 0x30, 0x01, 0x48, 0x02, 0x4A, 0x02, 0x49, 0x02, 0x90, 0x01, // 154 -0x40, 0x02, 0xA0, 0x02, 0xA8, 0x02, 0x24, 0x01, // 155 -0x00, 0x00, 0xA0, 0x0F, // 161 -0x00, 0x00, 0xC0, 0x01, 0xA0, 0x0F, 0x78, 0x02, 0x40, 0x01, // 162 -0x40, 0x02, 0x70, 0x03, 0xC8, 0x02, 0x48, 0x02, 0x08, 0x02, 0x10, 0x02, // 163 -0x00, 0x00, 0xE0, 0x01, 0x20, 0x01, 0x20, 0x01, 0xE0, 0x01, // 164 -0x48, 0x01, 0x70, 0x01, 0xC0, 0x03, 0x70, 0x01, 0x48, 0x01, // 165 -0x00, 0x00, 0x38, 0x0F, // 166 -0xD0, 0x04, 0x28, 0x09, 0x48, 0x09, 0x48, 0x0A, 0x90, 0x05, // 167 -0x08, 0x00, 0x00, 0x00, 0x08, // 168 -0xE0, 0x00, 0x10, 0x01, 0x48, 0x02, 0xA8, 0x02, 0xA8, 0x02, 0x10, 0x01, 0xE0, // 169 -0x68, 0x00, 0x68, 0x00, 0x68, 0x00, 0x78, // 170 -0x00, 0x00, 0x80, 0x01, 0x40, 0x02, 0x80, 0x01, 0x40, 0x02, // 171 -0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xE0, // 172 -0x80, 0x00, 0x80, // 173 -0xE0, 0x00, 0x10, 0x01, 0xE8, 0x02, 0x68, 0x02, 0xC8, 0x02, 0x10, 0x01, 0xE0, // 174 -0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, // 175 -0x00, 0x00, 0x38, 0x00, 0x28, 0x00, 0x38, // 176 -0x40, 0x02, 0x40, 0x02, 0xF0, 0x03, 0x40, 0x02, 0x40, 0x02, // 177 -0x48, 0x00, 0x68, 0x00, 0x58, // 178 -0x48, 0x00, 0x58, 0x00, 0x68, // 179 -0x00, 0x00, 0x10, 0x00, 0x08, // 180 -0x00, 0x00, 0xE0, 0x0F, 0x00, 0x02, 0x00, 0x02, 0xE0, 0x03, // 181 -0x70, 0x00, 0xF8, 0x0F, 0x08, 0x00, 0xF8, 0x0F, 0x08, // 182 -0x00, 0x00, 0x40, // 183 -0x00, 0x00, 0x00, 0x14, 0x00, 0x18, // 184 -0x08, 0x03, 0x88, 0x02, 0xCA, 0x02, 0x69, 0x02, 0x38, 0x02, 0x18, 0x02, // 185 -0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30, // 186 -0x08, 0x03, 0x88, 0x02, 0xC8, 0x02, 0x6A, 0x02, 0x38, 0x02, 0x18, 0x02, // 187 -0x20, 0x02, 0x20, 0x03, 0xA8, 0x02, 0x60, 0x02, 0x20, 0x02, // 188 -0x00, 0x00, 0x10, 0x02, 0x78, 0x01, 0x80, 0x00, 0x60, 0x00, 0x50, 0x02, 0x48, 0x03, 0xC0, 0x02, // 189 -0x48, 0x00, 0x58, 0x00, 0x68, 0x03, 0x80, 0x00, 0x60, 0x01, 0x90, 0x01, 0xC8, 0x03, 0x00, 0x01, // 190 -0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0xA0, 0x09, 0x00, 0x04, // 191 -0x00, 0x02, 0xC0, 0x01, 0xB0, 0x00, 0x89, 0x00, 0xB2, 0x00, 0xC0, 0x01, 0x00, 0x02, // 192 -0x00, 0x02, 0xC0, 0x01, 0xB0, 0x00, 0x8A, 0x00, 0xB1, 0x00, 0xC0, 0x01, 0x00, 0x02, // 193 -0x00, 0x02, 0xC0, 0x01, 0xB2, 0x00, 0x89, 0x00, 0xB2, 0x00, 0xC0, 0x01, 0x00, 0x02, // 194 -0x00, 0x02, 0xC2, 0x01, 0xB1, 0x00, 0x8A, 0x00, 0xB1, 0x00, 0xC0, 0x01, 0x00, 0x02, // 195 -0x00, 0x02, 0xC0, 0x01, 0xB2, 0x00, 0x88, 0x00, 0xB2, 0x00, 0xC0, 0x01, 0x00, 0x02, // 196 -0x00, 0x02, 0xC0, 0x01, 0xBE, 0x00, 0x8A, 0x00, 0xBE, 0x00, 0xC0, 0x01, 0x00, 0x02, // 197 -0x00, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0x98, 0x00, 0x88, 0x00, 0xF8, 0x03, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, // 198 -0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x16, 0x08, 0x1A, 0x10, 0x01, // 199 -0x00, 0x00, 0xF8, 0x03, 0x49, 0x02, 0x4A, 0x02, 0x48, 0x02, 0x48, 0x02, // 200 -0x00, 0x00, 0xF8, 0x03, 0x48, 0x02, 0x4A, 0x02, 0x49, 0x02, 0x48, 0x02, // 201 -0x00, 0x00, 0xFA, 0x03, 0x49, 0x02, 0x4A, 0x02, 0x48, 0x02, 0x48, 0x02, // 202 -0x00, 0x00, 0xF8, 0x03, 0x4A, 0x02, 0x48, 0x02, 0x4A, 0x02, 0x48, 0x02, // 203 -0x00, 0x00, 0xF9, 0x03, 0x02, // 204 -0x02, 0x00, 0xF9, 0x03, // 205 -0x01, 0x00, 0xFA, 0x03, // 206 -0x02, 0x00, 0xF8, 0x03, 0x02, // 207 -0x40, 0x00, 0xF8, 0x03, 0x48, 0x02, 0x48, 0x02, 0x10, 0x01, 0xE0, // 208 -0x00, 0x00, 0xFA, 0x03, 0x31, 0x00, 0x42, 0x00, 0x81, 0x01, 0xF8, 0x03, // 209 -0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x09, 0x02, 0x0A, 0x02, 0x08, 0x02, 0xF0, 0x01, // 210 -0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x0A, 0x02, 0x09, 0x02, 0x08, 0x02, 0xF0, 0x01, // 211 -0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x0A, 0x02, 0x09, 0x02, 0x0A, 0x02, 0xF0, 0x01, // 212 -0x00, 0x00, 0xF0, 0x01, 0x0A, 0x02, 0x09, 0x02, 0x0A, 0x02, 0x09, 0x02, 0xF0, 0x01, // 213 -0x00, 0x00, 0xF0, 0x01, 0x0A, 0x02, 0x08, 0x02, 0x0A, 0x02, 0x08, 0x02, 0xF0, 0x01, // 214 -0x10, 0x01, 0xA0, 0x00, 0xE0, 0x00, 0xA0, 0x00, 0x10, 0x01, // 215 -0x00, 0x00, 0xF0, 0x02, 0x08, 0x03, 0xC8, 0x02, 0x28, 0x02, 0x18, 0x03, 0xE8, // 216 -0x00, 0x00, 0xF8, 0x01, 0x01, 0x02, 0x02, 0x02, 0x00, 0x02, 0xF8, 0x01, // 217 -0x00, 0x00, 0xF8, 0x01, 0x02, 0x02, 0x01, 0x02, 0x00, 0x02, 0xF8, 0x01, // 218 -0x00, 0x00, 0xF8, 0x01, 0x02, 0x02, 0x01, 0x02, 0x02, 0x02, 0xF8, 0x01, // 219 -0x00, 0x00, 0xF8, 0x01, 0x02, 0x02, 0x00, 0x02, 0x02, 0x02, 0xF8, 0x01, // 220 -0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0xC2, 0x03, 0x21, 0x00, 0x10, 0x00, 0x08, // 221 -0x00, 0x00, 0xF8, 0x03, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0xE0, // 222 -0x00, 0x00, 0xF0, 0x03, 0x08, 0x01, 0x48, 0x02, 0xB0, 0x02, 0x80, 0x01, // 223 -0x00, 0x00, 0x00, 0x03, 0xA4, 0x02, 0xA8, 0x02, 0xE0, 0x03, // 224 -0x00, 0x00, 0x00, 0x03, 0xA8, 0x02, 0xA4, 0x02, 0xE0, 0x03, // 225 -0x00, 0x00, 0x00, 0x03, 0xA8, 0x02, 0xA4, 0x02, 0xE8, 0x03, // 226 -0x00, 0x00, 0x08, 0x03, 0xA4, 0x02, 0xA8, 0x02, 0xE4, 0x03, // 227 -0x00, 0x00, 0x00, 0x03, 0xA8, 0x02, 0xA0, 0x02, 0xE8, 0x03, // 228 -0x00, 0x00, 0x00, 0x03, 0xAE, 0x02, 0xAA, 0x02, 0xEE, 0x03, // 229 -0x00, 0x00, 0x40, 0x03, 0xA0, 0x02, 0xA0, 0x02, 0xC0, 0x01, 0xA0, 0x02, 0xA0, 0x02, 0xC0, 0x02, // 230 -0x00, 0x00, 0xC0, 0x01, 0x20, 0x16, 0x20, 0x1A, 0x40, 0x01, // 231 -0x00, 0x00, 0xC0, 0x01, 0xA4, 0x02, 0xA8, 0x02, 0xC0, 0x02, // 232 -0x00, 0x00, 0xC0, 0x01, 0xA8, 0x02, 0xA4, 0x02, 0xC0, 0x02, // 233 -0x00, 0x00, 0xC0, 0x01, 0xA8, 0x02, 0xA4, 0x02, 0xC8, 0x02, // 234 -0x00, 0x00, 0xC0, 0x01, 0xA8, 0x02, 0xA0, 0x02, 0xC8, 0x02, // 235 -0x00, 0x00, 0xE4, 0x03, 0x08, // 236 -0x08, 0x00, 0xE4, 0x03, // 237 -0x08, 0x00, 0xE4, 0x03, 0x08, // 238 -0x08, 0x00, 0xE0, 0x03, 0x08, // 239 -0x00, 0x00, 0xC0, 0x01, 0x28, 0x02, 0x38, 0x02, 0xE0, 0x01, // 240 -0x00, 0x00, 0xE8, 0x03, 0x24, 0x00, 0x28, 0x00, 0xC4, 0x03, // 241 -0x00, 0x00, 0xC0, 0x01, 0x24, 0x02, 0x28, 0x02, 0xC0, 0x01, // 242 -0x00, 0x00, 0xC0, 0x01, 0x28, 0x02, 0x24, 0x02, 0xC0, 0x01, // 243 -0x00, 0x00, 0xC0, 0x01, 0x28, 0x02, 0x24, 0x02, 0xC8, 0x01, // 244 -0x00, 0x00, 0xC8, 0x01, 0x24, 0x02, 0x28, 0x02, 0xC4, 0x01, // 245 -0x00, 0x00, 0xC0, 0x01, 0x28, 0x02, 0x20, 0x02, 0xC8, 0x01, // 246 -0x40, 0x00, 0x40, 0x00, 0x50, 0x01, 0x40, 0x00, 0x40, // 247 -0x00, 0x00, 0xC0, 0x02, 0xA0, 0x03, 0x60, 0x02, 0xA0, 0x01, // 248 -0x00, 0x00, 0xE0, 0x01, 0x04, 0x02, 0x08, 0x02, 0xE0, 0x03, // 249 -0x00, 0x00, 0xE0, 0x01, 0x08, 0x02, 0x04, 0x02, 0xE0, 0x03, // 250 -0x00, 0x00, 0xE8, 0x01, 0x04, 0x02, 0x08, 0x02, 0xE0, 0x03, // 251 -0x00, 0x00, 0xE0, 0x01, 0x08, 0x02, 0x00, 0x02, 0xE8, 0x03, // 252 -0x20, 0x00, 0xC0, 0x09, 0x08, 0x06, 0xC4, 0x01, 0x20, // 253 -0x00, 0x00, 0xF8, 0x0F, 0x20, 0x02, 0x20, 0x02, 0xC0, 0x01, // 254 -0x20, 0x00, 0xC8, 0x09, 0x00, 0x06, 0xC8, 0x01, 0x20, // 255 + 0x0A, // Width: 10 + 0x0D, // Height: 13 + 0x20, // First char: 32 + 0xE0, // Number of chars: 224 + // Jump Table: + 0xFF, 0xFF, 0x00, 0x03, // 32 + 0x00, 0x00, 0x04, 0x03, // 33 + 0x00, 0x04, 0x05, 0x04, // 34 + 0x00, 0x09, 0x09, 0x06, // 35 + 0x00, 0x12, 0x0A, 0x06, // 36 + 0x00, 0x1C, 0x10, 0x09, // 37 + 0x00, 0x2C, 0x0E, 0x08, // 38 + 0x00, 0x3A, 0x01, 0x02, // 39 + 0x00, 0x3B, 0x06, 0x04, // 40 + 0x00, 0x41, 0x06, 0x04, // 41 + 0x00, 0x47, 0x05, 0x04, // 42 + 0x00, 0x4C, 0x09, 0x06, // 43 + 0x00, 0x55, 0x04, 0x03, // 44 + 0x00, 0x59, 0x03, 0x03, // 45 + 0x00, 0x5C, 0x04, 0x03, // 46 + 0x00, 0x60, 0x05, 0x04, // 47 + 0x00, 0x65, 0x0A, 0x06, // 48 + 0x00, 0x6F, 0x08, 0x05, // 49 + 0x00, 0x77, 0x0A, 0x06, // 50 + 0x00, 0x81, 0x0A, 0x06, // 51 + 0x00, 0x8B, 0x0B, 0x07, // 52 + 0x00, 0x96, 0x0A, 0x06, // 53 + 0x00, 0xA0, 0x0A, 0x06, // 54 + 0x00, 0xAA, 0x09, 0x06, // 55 + 0x00, 0xB3, 0x0A, 0x06, // 56 + 0x00, 0xBD, 0x0A, 0x06, // 57 + 0x00, 0xC7, 0x04, 0x03, // 58 + 0x00, 0xCB, 0x04, 0x03, // 59 + 0x00, 0xCF, 0x0A, 0x06, // 60 + 0x00, 0xD9, 0x09, 0x06, // 61 + 0x00, 0xE2, 0x09, 0x06, // 62 + 0x00, 0xEB, 0x0B, 0x07, // 63 + 0x00, 0xF6, 0x14, 0x0B, // 64 + 0x01, 0x0A, 0x0E, 0x08, // 65 + 0x01, 0x18, 0x0C, 0x07, // 66 + 0x01, 0x24, 0x0C, 0x07, // 67 + 0x01, 0x30, 0x0B, 0x07, // 68 + 0x01, 0x3B, 0x0C, 0x07, // 69 + 0x01, 0x47, 0x09, 0x06, // 70 + 0x01, 0x50, 0x0D, 0x08, // 71 + 0x01, 0x5D, 0x0C, 0x07, // 72 + 0x01, 0x69, 0x04, 0x03, // 73 + 0x01, 0x6D, 0x08, 0x05, // 74 + 0x01, 0x75, 0x0E, 0x08, // 75 + 0x01, 0x83, 0x0C, 0x07, // 76 + 0x01, 0x8F, 0x10, 0x09, // 77 + 0x01, 0x9F, 0x0C, 0x07, // 78 + 0x01, 0xAB, 0x0E, 0x08, // 79 + 0x01, 0xB9, 0x0B, 0x07, // 80 + 0x01, 0xC4, 0x0E, 0x08, // 81 + 0x01, 0xD2, 0x0C, 0x07, // 82 + 0x01, 0xDE, 0x0C, 0x07, // 83 + 0x01, 0xEA, 0x0B, 0x07, // 84 + 0x01, 0xF5, 0x0C, 0x07, // 85 + 0x02, 0x01, 0x0D, 0x08, // 86 + 0x02, 0x0E, 0x11, 0x0A, // 87 + 0x02, 0x1F, 0x0E, 0x08, // 88 + 0x02, 0x2D, 0x0D, 0x08, // 89 + 0x02, 0x3A, 0x0C, 0x07, // 90 + 0x02, 0x46, 0x06, 0x04, // 91 + 0x02, 0x4C, 0x06, 0x04, // 92 + 0x02, 0x52, 0x04, 0x03, // 93 + 0x02, 0x56, 0x09, 0x06, // 94 + 0x02, 0x5F, 0x0C, 0x07, // 95 + 0x02, 0x6B, 0x03, 0x03, // 96 + 0x02, 0x6E, 0x0A, 0x06, // 97 + 0x02, 0x78, 0x0A, 0x06, // 98 + 0x02, 0x82, 0x0A, 0x06, // 99 + 0x02, 0x8C, 0x0A, 0x06, // 100 + 0x02, 0x96, 0x0A, 0x06, // 101 + 0x02, 0xA0, 0x05, 0x04, // 102 + 0x02, 0xA5, 0x0A, 0x06, // 103 + 0x02, 0xAF, 0x0A, 0x06, // 104 + 0x02, 0xB9, 0x04, 0x03, // 105 + 0x02, 0xBD, 0x04, 0x03, // 106 + 0x02, 0xC1, 0x08, 0x05, // 107 + 0x02, 0xC9, 0x04, 0x03, // 108 + 0x02, 0xCD, 0x10, 0x09, // 109 + 0x02, 0xDD, 0x0A, 0x06, // 110 + 0x02, 0xE7, 0x0A, 0x06, // 111 + 0x02, 0xF1, 0x0A, 0x06, // 112 + 0x02, 0xFB, 0x0A, 0x06, // 113 + 0x03, 0x05, 0x05, 0x04, // 114 + 0x03, 0x0A, 0x08, 0x05, // 115 + 0x03, 0x12, 0x06, 0x04, // 116 + 0x03, 0x18, 0x0A, 0x06, // 117 + 0x03, 0x22, 0x09, 0x06, // 118 + 0x03, 0x2B, 0x0E, 0x08, // 119 + 0x03, 0x39, 0x0A, 0x06, // 120 + 0x03, 0x43, 0x09, 0x06, // 121 + 0x03, 0x4C, 0x0A, 0x06, // 122 + 0x03, 0x56, 0x06, 0x04, // 123 + 0x03, 0x5C, 0x04, 0x03, // 124 + 0x03, 0x60, 0x05, 0x04, // 125 + 0x03, 0x65, 0x09, 0x06, // 126 + 0xFF, 0xFF, 0x00, 0x0A, // 127 + 0xFF, 0xFF, 0x00, 0x0A, // 128 + 0x03, 0x6E, 0x0C, 0x07, // 129 + 0x03, 0x7A, 0x05, 0x04, // 130 + 0x03, 0x7F, 0x0C, 0x07, // 131 + 0x03, 0x8B, 0x0E, 0x08, // 132 + 0x03, 0x99, 0x0A, 0x06, // 133 + 0x03, 0xA3, 0x0C, 0x07, // 134 + 0x03, 0xAF, 0x0A, 0x06, // 135 + 0x03, 0xB9, 0x0A, 0x06, // 136 + 0x03, 0xC3, 0x0A, 0x06, // 137 + 0xFF, 0xFF, 0x00, 0x0A, // 138 + 0xFF, 0xFF, 0x00, 0x0A, // 139 + 0xFF, 0xFF, 0x00, 0x0A, // 140 + 0xFF, 0xFF, 0x00, 0x0A, // 141 + 0xFF, 0xFF, 0x00, 0x0A, // 142 + 0xFF, 0xFF, 0x00, 0x0A, // 143 + 0xFF, 0xFF, 0x00, 0x0A, // 144 + 0xFF, 0xFF, 0x00, 0x0A, // 145 + 0xFF, 0xFF, 0x00, 0x0A, // 146 + 0x03, 0xCD, 0x0E, 0x08, // 147 + 0x03, 0xDB, 0x0A, 0x06, // 148 + 0xFF, 0xFF, 0x00, 0x0A, // 149 + 0xFF, 0xFF, 0x00, 0x0A, // 150 + 0xFF, 0xFF, 0x00, 0x0A, // 151 + 0x03, 0xE5, 0x0C, 0x07, // 152 + 0x03, 0xF1, 0x0A, 0x06, // 153 + 0x03, 0xFB, 0x0C, 0x07, // 154 + 0x04, 0x07, 0x08, 0x05, // 155 + 0xFF, 0xFF, 0x00, 0x0A, // 156 + 0xFF, 0xFF, 0x00, 0x0A, // 157 + 0xFF, 0xFF, 0x00, 0x0A, // 158 + 0xFF, 0xFF, 0x00, 0x0A, // 159 + 0xFF, 0xFF, 0x00, 0x0A, // 160 + 0x04, 0x0F, 0x04, 0x03, // 161 + 0x04, 0x13, 0x0A, 0x06, // 162 + 0x04, 0x1D, 0x0C, 0x07, // 163 + 0x04, 0x29, 0x0A, 0x06, // 164 + 0x04, 0x33, 0x0A, 0x06, // 165 + 0x04, 0x3D, 0x04, 0x03, // 166 + 0x04, 0x41, 0x0A, 0x06, // 167 + 0x04, 0x4B, 0x05, 0x04, // 168 + 0x04, 0x50, 0x0D, 0x08, // 169 + 0x04, 0x5D, 0x07, 0x05, // 170 + 0x04, 0x64, 0x0A, 0x06, // 171 + 0x04, 0x6E, 0x09, 0x06, // 172 + 0x04, 0x77, 0x03, 0x03, // 173 + 0x04, 0x7A, 0x0D, 0x08, // 174 + 0x04, 0x87, 0x0B, 0x07, // 175 + 0x04, 0x92, 0x07, 0x05, // 176 + 0x04, 0x99, 0x0A, 0x06, // 177 + 0x04, 0xA3, 0x05, 0x04, // 178 + 0x04, 0xA8, 0x05, 0x04, // 179 + 0x04, 0xAD, 0x05, 0x04, // 180 + 0x04, 0xB2, 0x0A, 0x06, // 181 + 0x04, 0xBC, 0x09, 0x06, // 182 + 0x04, 0xC5, 0x03, 0x03, // 183 + 0x04, 0xC8, 0x06, 0x04, // 184 + 0x04, 0xCE, 0x0C, 0x07, // 185 + 0x04, 0xDA, 0x07, 0x05, // 186 + 0x04, 0xE1, 0x0C, 0x07, // 187 + 0x04, 0xED, 0x0A, 0x06, // 188 + 0x04, 0xF7, 0x10, 0x09, // 189 + 0x05, 0x07, 0x10, 0x09, // 190 + 0x05, 0x17, 0x0A, 0x06, // 191 + 0x05, 0x21, 0x0E, 0x08, // 192 + 0x05, 0x2F, 0x0E, 0x08, // 193 + 0x05, 0x3D, 0x0E, 0x08, // 194 + 0x05, 0x4B, 0x0E, 0x08, // 195 + 0x05, 0x59, 0x0E, 0x08, // 196 + 0x05, 0x67, 0x0E, 0x08, // 197 + 0x05, 0x75, 0x12, 0x0A, // 198 + 0x05, 0x87, 0x0C, 0x07, // 199 + 0x05, 0x93, 0x0C, 0x07, // 200 + 0x05, 0x9F, 0x0C, 0x07, // 201 + 0x05, 0xAB, 0x0C, 0x07, // 202 + 0x05, 0xB7, 0x0C, 0x07, // 203 + 0x05, 0xC3, 0x05, 0x04, // 204 + 0x05, 0xC8, 0x04, 0x03, // 205 + 0x05, 0xCC, 0x04, 0x03, // 206 + 0x05, 0xD0, 0x05, 0x04, // 207 + 0x05, 0xD5, 0x0B, 0x07, // 208 + 0x05, 0xE0, 0x0C, 0x07, // 209 + 0x05, 0xEC, 0x0E, 0x08, // 210 + 0x05, 0xFA, 0x0E, 0x08, // 211 + 0x06, 0x08, 0x0E, 0x08, // 212 + 0x06, 0x16, 0x0E, 0x08, // 213 + 0x06, 0x24, 0x0E, 0x08, // 214 + 0x06, 0x32, 0x0A, 0x06, // 215 + 0x06, 0x3C, 0x0D, 0x08, // 216 + 0x06, 0x49, 0x0C, 0x07, // 217 + 0x06, 0x55, 0x0C, 0x07, // 218 + 0x06, 0x61, 0x0C, 0x07, // 219 + 0x06, 0x6D, 0x0C, 0x07, // 220 + 0x06, 0x79, 0x0D, 0x08, // 221 + 0x06, 0x86, 0x0B, 0x07, // 222 + 0x06, 0x91, 0x0C, 0x07, // 223 + 0x06, 0x9D, 0x0A, 0x06, // 224 + 0x06, 0xA7, 0x0A, 0x06, // 225 + 0x06, 0xB1, 0x0A, 0x06, // 226 + 0x06, 0xBB, 0x0A, 0x06, // 227 + 0x06, 0xC5, 0x0A, 0x06, // 228 + 0x06, 0xCF, 0x0A, 0x06, // 229 + 0x06, 0xD9, 0x10, 0x09, // 230 + 0x06, 0xE9, 0x0A, 0x06, // 231 + 0x06, 0xF3, 0x0A, 0x06, // 232 + 0x06, 0xFD, 0x0A, 0x06, // 233 + 0x07, 0x07, 0x0A, 0x06, // 234 + 0x07, 0x11, 0x0A, 0x06, // 235 + 0x07, 0x1B, 0x05, 0x04, // 236 + 0x07, 0x20, 0x04, 0x03, // 237 + 0x07, 0x24, 0x05, 0x04, // 238 + 0x07, 0x29, 0x05, 0x04, // 239 + 0x07, 0x2E, 0x0A, 0x06, // 240 + 0x07, 0x38, 0x0A, 0x06, // 241 + 0x07, 0x42, 0x0A, 0x06, // 242 + 0x07, 0x4C, 0x0A, 0x06, // 243 + 0x07, 0x56, 0x0A, 0x06, // 244 + 0x07, 0x60, 0x0A, 0x06, // 245 + 0x07, 0x6A, 0x0A, 0x06, // 246 + 0x07, 0x74, 0x09, 0x06, // 247 + 0x07, 0x7D, 0x0A, 0x06, // 248 + 0x07, 0x87, 0x0A, 0x06, // 249 + 0x07, 0x91, 0x0A, 0x06, // 250 + 0x07, 0x9B, 0x0A, 0x06, // 251 + 0x07, 0xA5, 0x0A, 0x06, // 252 + 0x07, 0xAF, 0x09, 0x06, // 253 + 0x07, 0xB8, 0x0A, 0x06, // 254 + 0x07, 0xC2, 0x09, 0x06, // 255 + // Font Data: + 0x00, 0x00, 0xF8, 0x02, // 33 + 0x38, 0x00, 0x00, 0x00, 0x38, // 34 + 0xA0, 0x03, 0xE0, 0x00, 0xB8, 0x03, 0xE0, 0x00, 0xB8, // 35 + 0x30, 0x01, 0x28, 0x02, 0xF8, 0x07, 0x48, 0x02, 0x90, 0x01, // 36 + 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x30, 0x03, 0xC0, 0x00, 0xB0, 0x01, 0x48, 0x02, 0x80, 0x01, // 37 + 0x80, 0x01, 0x50, 0x02, 0x68, 0x02, 0xA8, 0x02, 0x18, 0x01, 0x80, 0x03, 0x80, 0x02, // 38 + 0x38, // 39 + 0xE0, 0x03, 0x10, 0x04, 0x08, 0x08, // 40 + 0x08, 0x08, 0x10, 0x04, 0xE0, 0x03, // 41 + 0x28, 0x00, 0x18, 0x00, 0x28, // 42 + 0x40, 0x00, 0x40, 0x00, 0xF0, 0x01, 0x40, 0x00, 0x40, // 43 + 0x00, 0x00, 0x00, 0x06, // 44 + 0x80, 0x00, 0x80, // 45 + 0x00, 0x00, 0x00, 0x02, // 46 + 0x00, 0x03, 0xE0, 0x00, 0x18, // 47 + 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0xF0, 0x01, // 48 + 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0xF8, 0x03, // 49 + 0x10, 0x02, 0x08, 0x03, 0x88, 0x02, 0x48, 0x02, 0x30, 0x02, // 50 + 0x10, 0x01, 0x08, 0x02, 0x48, 0x02, 0x48, 0x02, 0xB0, 0x01, // 51 + 0xC0, 0x00, 0xA0, 0x00, 0x90, 0x00, 0x88, 0x00, 0xF8, 0x03, 0x80, // 52 + 0x60, 0x01, 0x38, 0x02, 0x28, 0x02, 0x28, 0x02, 0xC8, 0x01, // 53 + 0xF0, 0x01, 0x28, 0x02, 0x28, 0x02, 0x28, 0x02, 0xD0, 0x01, // 54 + 0x08, 0x00, 0x08, 0x03, 0xC8, 0x00, 0x38, 0x00, 0x08, // 55 + 0xB0, 0x01, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0xB0, 0x01, // 56 + 0x70, 0x01, 0x88, 0x02, 0x88, 0x02, 0x88, 0x02, 0xF0, 0x01, // 57 + 0x00, 0x00, 0x20, 0x02, // 58 + 0x00, 0x00, 0x20, 0x06, // 59 + 0x00, 0x00, 0x40, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0x10, 0x01, // 60 + 0xA0, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA0, // 61 + 0x00, 0x00, 0x10, 0x01, 0xA0, 0x00, 0xA0, 0x00, 0x40, // 62 + 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0xC8, 0x02, 0x48, 0x00, 0x30, // 63 + 0x00, 0x00, 0xC0, 0x03, 0x30, 0x04, 0xD0, 0x09, 0x28, 0x0A, 0x28, 0x0A, 0xC8, 0x0B, 0x68, 0x0A, 0x10, 0x05, 0xE0, 0x04, // 64 + 0x00, 0x02, 0xC0, 0x01, 0xB0, 0x00, 0x88, 0x00, 0xB0, 0x00, 0xC0, 0x01, 0x00, 0x02, // 65 + 0x00, 0x00, 0xF8, 0x03, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0xF0, 0x01, // 66 + 0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x10, 0x01, // 67 + 0x00, 0x00, 0xF8, 0x03, 0x08, 0x02, 0x08, 0x02, 0x10, 0x01, 0xE0, // 68 + 0x00, 0x00, 0xF8, 0x03, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, // 69 + 0x00, 0x00, 0xF8, 0x03, 0x48, 0x00, 0x48, 0x00, 0x08, // 70 + 0x00, 0x00, 0xE0, 0x00, 0x10, 0x01, 0x08, 0x02, 0x48, 0x02, 0x50, 0x01, 0xC0, // 71 + 0x00, 0x00, 0xF8, 0x03, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xF8, 0x03, // 72 + 0x00, 0x00, 0xF8, 0x03, // 73 + 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0xF8, 0x01, // 74 + 0x00, 0x00, 0xF8, 0x03, 0x80, 0x00, 0x60, 0x00, 0x90, 0x00, 0x08, 0x01, 0x00, 0x02, // 75 + 0x00, 0x00, 0xF8, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, // 76 + 0x00, 0x00, 0xF8, 0x03, 0x30, 0x00, 0xC0, 0x01, 0x00, 0x02, 0xC0, 0x01, 0x30, 0x00, 0xF8, 0x03, // 77 + 0x00, 0x00, 0xF8, 0x03, 0x30, 0x00, 0x40, 0x00, 0x80, 0x01, 0xF8, 0x03, // 78 + 0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0xF0, 0x01, // 79 + 0x00, 0x00, 0xF8, 0x03, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30, // 80 + 0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x03, 0x08, 0x03, 0xF0, 0x02, // 81 + 0x00, 0x00, 0xF8, 0x03, 0x48, 0x00, 0x48, 0x00, 0xC8, 0x00, 0x30, 0x03, // 82 + 0x00, 0x00, 0x30, 0x01, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0x90, 0x01, // 83 + 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF8, 0x03, 0x08, 0x00, 0x08, // 84 + 0x00, 0x00, 0xF8, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0xF8, 0x01, // 85 + 0x08, 0x00, 0x70, 0x00, 0x80, 0x01, 0x00, 0x02, 0x80, 0x01, 0x70, 0x00, 0x08, // 86 + 0x18, 0x00, 0xE0, 0x01, 0x00, 0x02, 0xF0, 0x01, 0x08, 0x00, 0xF0, 0x01, 0x00, 0x02, 0xE0, 0x01, 0x18, // 87 + 0x00, 0x02, 0x08, 0x01, 0x90, 0x00, 0x60, 0x00, 0x90, 0x00, 0x08, 0x01, 0x00, 0x02, // 88 + 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0xC0, 0x03, 0x20, 0x00, 0x10, 0x00, 0x08, // 89 + 0x08, 0x03, 0x88, 0x02, 0xC8, 0x02, 0x68, 0x02, 0x38, 0x02, 0x18, 0x02, // 90 + 0x00, 0x00, 0xF8, 0x0F, 0x08, 0x08, // 91 + 0x18, 0x00, 0xE0, 0x00, 0x00, 0x03, // 92 + 0x08, 0x08, 0xF8, 0x0F, // 93 + 0x40, 0x00, 0x30, 0x00, 0x08, 0x00, 0x30, 0x00, 0x40, // 94 + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, // 95 + 0x08, 0x00, 0x10, // 96 + 0x00, 0x00, 0x00, 0x03, 0xA0, 0x02, 0xA0, 0x02, 0xE0, 0x03, // 97 + 0x00, 0x00, 0xF8, 0x03, 0x20, 0x02, 0x20, 0x02, 0xC0, 0x01, // 98 + 0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x20, 0x02, 0x40, 0x01, // 99 + 0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x20, 0x02, 0xF8, 0x03, // 100 + 0x00, 0x00, 0xC0, 0x01, 0xA0, 0x02, 0xA0, 0x02, 0xC0, 0x02, // 101 + 0x20, 0x00, 0xF0, 0x03, 0x28, // 102 + 0x00, 0x00, 0xC0, 0x05, 0x20, 0x0A, 0x20, 0x0A, 0xE0, 0x07, // 103 + 0x00, 0x00, 0xF8, 0x03, 0x20, 0x00, 0x20, 0x00, 0xC0, 0x03, // 104 + 0x00, 0x00, 0xE8, 0x03, // 105 + 0x00, 0x08, 0xE8, 0x07, // 106 + 0xF8, 0x03, 0x80, 0x00, 0xC0, 0x01, 0x20, 0x02, // 107 + 0x00, 0x00, 0xF8, 0x03, // 108 + 0x00, 0x00, 0xE0, 0x03, 0x20, 0x00, 0x20, 0x00, 0xE0, 0x03, 0x20, 0x00, 0x20, 0x00, 0xC0, 0x03, // 109 + 0x00, 0x00, 0xE0, 0x03, 0x20, 0x00, 0x20, 0x00, 0xC0, 0x03, // 110 + 0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x20, 0x02, 0xC0, 0x01, // 111 + 0x00, 0x00, 0xE0, 0x0F, 0x20, 0x02, 0x20, 0x02, 0xC0, 0x01, // 112 + 0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x20, 0x02, 0xE0, 0x0F, // 113 + 0x00, 0x00, 0xE0, 0x03, 0x20, // 114 + 0x40, 0x02, 0xA0, 0x02, 0xA0, 0x02, 0x20, 0x01, // 115 + 0x20, 0x00, 0xF8, 0x03, 0x20, 0x02, // 116 + 0x00, 0x00, 0xE0, 0x01, 0x00, 0x02, 0x00, 0x02, 0xE0, 0x03, // 117 + 0x20, 0x00, 0xC0, 0x01, 0x00, 0x02, 0xC0, 0x01, 0x20, // 118 + 0xE0, 0x01, 0x00, 0x02, 0xC0, 0x01, 0x20, 0x00, 0xC0, 0x01, 0x00, 0x02, 0xE0, 0x01, // 119 + 0x20, 0x02, 0x40, 0x01, 0x80, 0x00, 0x40, 0x01, 0x20, 0x02, // 120 + 0x20, 0x00, 0xC0, 0x09, 0x00, 0x06, 0xC0, 0x01, 0x20, // 121 + 0x20, 0x02, 0x20, 0x03, 0xA0, 0x02, 0x60, 0x02, 0x20, 0x02, // 122 + 0x80, 0x00, 0x78, 0x0F, 0x08, 0x08, // 123 + 0x00, 0x00, 0xF8, 0x0F, // 124 + 0x08, 0x08, 0x78, 0x0F, 0x80, // 125 + 0xC0, 0x00, 0x40, 0x00, 0xC0, 0x00, 0x80, 0x00, 0xC0, // 126 + 0x00, 0x00, 0xF8, 0x03, 0x40, 0x02, 0x20, 0x02, 0x00, 0x02, 0x00, 0x02, // 129 + 0x40, 0x00, 0xF8, 0x03, 0x20, // 130 + 0x00, 0x00, 0xF8, 0x03, 0x30, 0x00, 0x44, 0x00, 0x82, 0x01, 0xF8, 0x03, // 131 + 0x00, 0x02, 0xC0, 0x01, 0xB0, 0x00, 0x88, 0x00, 0xB0, 0x00, 0xC0, 0x0D, 0x00, 0x0A, // 132 + 0x00, 0x00, 0x00, 0x03, 0xA0, 0x02, 0xA0, 0x0E, 0xE0, 0x0B, // 133 + 0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x0A, 0x02, 0x09, 0x02, 0x10, 0x01, // 134 + 0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x28, 0x02, 0x44, 0x01, // 135 + 0x00, 0x00, 0xE0, 0x03, 0x20, 0x00, 0x28, 0x00, 0xC4, 0x03, // 136 + 0x20, 0x02, 0x20, 0x03, 0xA8, 0x02, 0x64, 0x02, 0x20, 0x02, // 137 + 0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x0A, 0x02, 0x09, 0x02, 0xF0, 0x01, // 147 + 0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x28, 0x02, 0xC4, 0x01, // 148 + 0x00, 0x00, 0xF8, 0x03, 0x48, 0x02, 0x48, 0x0E, 0x48, 0x0A, 0x48, 0x02, // 152 + 0x00, 0x00, 0xC0, 0x01, 0xA0, 0x02, 0xA0, 0x0E, 0xC0, 0x0A, // 153 + 0x00, 0x00, 0x30, 0x01, 0x48, 0x02, 0x4A, 0x02, 0x49, 0x02, 0x90, 0x01, // 154 + 0x40, 0x02, 0xA0, 0x02, 0xA8, 0x02, 0x24, 0x01, // 155 + 0x00, 0x00, 0xA0, 0x0F, // 161 + 0x00, 0x00, 0xC0, 0x01, 0xA0, 0x0F, 0x78, 0x02, 0x40, 0x01, // 162 + 0x40, 0x02, 0x70, 0x03, 0xC8, 0x02, 0x48, 0x02, 0x08, 0x02, 0x10, 0x02, // 163 + 0x00, 0x00, 0xE0, 0x01, 0x20, 0x01, 0x20, 0x01, 0xE0, 0x01, // 164 + 0x48, 0x01, 0x70, 0x01, 0xC0, 0x03, 0x70, 0x01, 0x48, 0x01, // 165 + 0x00, 0x00, 0x38, 0x0F, // 166 + 0xD0, 0x04, 0x28, 0x09, 0x48, 0x09, 0x48, 0x0A, 0x90, 0x05, // 167 + 0x08, 0x00, 0x00, 0x00, 0x08, // 168 + 0xE0, 0x00, 0x10, 0x01, 0x48, 0x02, 0xA8, 0x02, 0xA8, 0x02, 0x10, 0x01, 0xE0, // 169 + 0x68, 0x00, 0x68, 0x00, 0x68, 0x00, 0x78, // 170 + 0x00, 0x00, 0x80, 0x01, 0x40, 0x02, 0x80, 0x01, 0x40, 0x02, // 171 + 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xE0, // 172 + 0x80, 0x00, 0x80, // 173 + 0xE0, 0x00, 0x10, 0x01, 0xE8, 0x02, 0x68, 0x02, 0xC8, 0x02, 0x10, 0x01, 0xE0, // 174 + 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, // 175 + 0x00, 0x00, 0x38, 0x00, 0x28, 0x00, 0x38, // 176 + 0x40, 0x02, 0x40, 0x02, 0xF0, 0x03, 0x40, 0x02, 0x40, 0x02, // 177 + 0x48, 0x00, 0x68, 0x00, 0x58, // 178 + 0x48, 0x00, 0x58, 0x00, 0x68, // 179 + 0x00, 0x00, 0x10, 0x00, 0x08, // 180 + 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x02, 0x00, 0x02, 0xE0, 0x03, // 181 + 0x70, 0x00, 0xF8, 0x0F, 0x08, 0x00, 0xF8, 0x0F, 0x08, // 182 + 0x00, 0x00, 0x40, // 183 + 0x00, 0x00, 0x00, 0x14, 0x00, 0x18, // 184 + 0x08, 0x03, 0x88, 0x02, 0xCA, 0x02, 0x69, 0x02, 0x38, 0x02, 0x18, 0x02, // 185 + 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30, // 186 + 0x08, 0x03, 0x88, 0x02, 0xC8, 0x02, 0x6A, 0x02, 0x38, 0x02, 0x18, 0x02, // 187 + 0x20, 0x02, 0x20, 0x03, 0xA8, 0x02, 0x60, 0x02, 0x20, 0x02, // 188 + 0x00, 0x00, 0x10, 0x02, 0x78, 0x01, 0x80, 0x00, 0x60, 0x00, 0x50, 0x02, 0x48, 0x03, 0xC0, 0x02, // 189 + 0x48, 0x00, 0x58, 0x00, 0x68, 0x03, 0x80, 0x00, 0x60, 0x01, 0x90, 0x01, 0xC8, 0x03, 0x00, 0x01, // 190 + 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0xA0, 0x09, 0x00, 0x04, // 191 + 0x00, 0x02, 0xC0, 0x01, 0xB0, 0x00, 0x89, 0x00, 0xB2, 0x00, 0xC0, 0x01, 0x00, 0x02, // 192 + 0x00, 0x02, 0xC0, 0x01, 0xB0, 0x00, 0x8A, 0x00, 0xB1, 0x00, 0xC0, 0x01, 0x00, 0x02, // 193 + 0x00, 0x02, 0xC0, 0x01, 0xB2, 0x00, 0x89, 0x00, 0xB2, 0x00, 0xC0, 0x01, 0x00, 0x02, // 194 + 0x00, 0x02, 0xC2, 0x01, 0xB1, 0x00, 0x8A, 0x00, 0xB1, 0x00, 0xC0, 0x01, 0x00, 0x02, // 195 + 0x00, 0x02, 0xC0, 0x01, 0xB2, 0x00, 0x88, 0x00, 0xB2, 0x00, 0xC0, 0x01, 0x00, 0x02, // 196 + 0x00, 0x02, 0xC0, 0x01, 0xBE, 0x00, 0x8A, 0x00, 0xBE, 0x00, 0xC0, 0x01, 0x00, 0x02, // 197 + 0x00, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0x98, 0x00, 0x88, 0x00, 0xF8, 0x03, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, // 198 + 0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x16, 0x08, 0x1A, 0x10, 0x01, // 199 + 0x00, 0x00, 0xF8, 0x03, 0x49, 0x02, 0x4A, 0x02, 0x48, 0x02, 0x48, 0x02, // 200 + 0x00, 0x00, 0xF8, 0x03, 0x48, 0x02, 0x4A, 0x02, 0x49, 0x02, 0x48, 0x02, // 201 + 0x00, 0x00, 0xFA, 0x03, 0x49, 0x02, 0x4A, 0x02, 0x48, 0x02, 0x48, 0x02, // 202 + 0x00, 0x00, 0xF8, 0x03, 0x4A, 0x02, 0x48, 0x02, 0x4A, 0x02, 0x48, 0x02, // 203 + 0x00, 0x00, 0xF9, 0x03, 0x02, // 204 + 0x02, 0x00, 0xF9, 0x03, // 205 + 0x01, 0x00, 0xFA, 0x03, // 206 + 0x02, 0x00, 0xF8, 0x03, 0x02, // 207 + 0x40, 0x00, 0xF8, 0x03, 0x48, 0x02, 0x48, 0x02, 0x10, 0x01, 0xE0, // 208 + 0x00, 0x00, 0xFA, 0x03, 0x31, 0x00, 0x42, 0x00, 0x81, 0x01, 0xF8, 0x03, // 209 + 0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x09, 0x02, 0x0A, 0x02, 0x08, 0x02, 0xF0, 0x01, // 210 + 0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x0A, 0x02, 0x09, 0x02, 0x08, 0x02, 0xF0, 0x01, // 211 + 0x00, 0x00, 0xF0, 0x01, 0x08, 0x02, 0x0A, 0x02, 0x09, 0x02, 0x0A, 0x02, 0xF0, 0x01, // 212 + 0x00, 0x00, 0xF0, 0x01, 0x0A, 0x02, 0x09, 0x02, 0x0A, 0x02, 0x09, 0x02, 0xF0, 0x01, // 213 + 0x00, 0x00, 0xF0, 0x01, 0x0A, 0x02, 0x08, 0x02, 0x0A, 0x02, 0x08, 0x02, 0xF0, 0x01, // 214 + 0x10, 0x01, 0xA0, 0x00, 0xE0, 0x00, 0xA0, 0x00, 0x10, 0x01, // 215 + 0x00, 0x00, 0xF0, 0x02, 0x08, 0x03, 0xC8, 0x02, 0x28, 0x02, 0x18, 0x03, 0xE8, // 216 + 0x00, 0x00, 0xF8, 0x01, 0x01, 0x02, 0x02, 0x02, 0x00, 0x02, 0xF8, 0x01, // 217 + 0x00, 0x00, 0xF8, 0x01, 0x02, 0x02, 0x01, 0x02, 0x00, 0x02, 0xF8, 0x01, // 218 + 0x00, 0x00, 0xF8, 0x01, 0x02, 0x02, 0x01, 0x02, 0x02, 0x02, 0xF8, 0x01, // 219 + 0x00, 0x00, 0xF8, 0x01, 0x02, 0x02, 0x00, 0x02, 0x02, 0x02, 0xF8, 0x01, // 220 + 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0xC2, 0x03, 0x21, 0x00, 0x10, 0x00, 0x08, // 221 + 0x00, 0x00, 0xF8, 0x03, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0xE0, // 222 + 0x00, 0x00, 0xF0, 0x03, 0x08, 0x01, 0x48, 0x02, 0xB0, 0x02, 0x80, 0x01, // 223 + 0x00, 0x00, 0x00, 0x03, 0xA4, 0x02, 0xA8, 0x02, 0xE0, 0x03, // 224 + 0x00, 0x00, 0x00, 0x03, 0xA8, 0x02, 0xA4, 0x02, 0xE0, 0x03, // 225 + 0x00, 0x00, 0x00, 0x03, 0xA8, 0x02, 0xA4, 0x02, 0xE8, 0x03, // 226 + 0x00, 0x00, 0x08, 0x03, 0xA4, 0x02, 0xA8, 0x02, 0xE4, 0x03, // 227 + 0x00, 0x00, 0x00, 0x03, 0xA8, 0x02, 0xA0, 0x02, 0xE8, 0x03, // 228 + 0x00, 0x00, 0x00, 0x03, 0xAE, 0x02, 0xAA, 0x02, 0xEE, 0x03, // 229 + 0x00, 0x00, 0x40, 0x03, 0xA0, 0x02, 0xA0, 0x02, 0xC0, 0x01, 0xA0, 0x02, 0xA0, 0x02, 0xC0, 0x02, // 230 + 0x00, 0x00, 0xC0, 0x01, 0x20, 0x16, 0x20, 0x1A, 0x40, 0x01, // 231 + 0x00, 0x00, 0xC0, 0x01, 0xA4, 0x02, 0xA8, 0x02, 0xC0, 0x02, // 232 + 0x00, 0x00, 0xC0, 0x01, 0xA8, 0x02, 0xA4, 0x02, 0xC0, 0x02, // 233 + 0x00, 0x00, 0xC0, 0x01, 0xA8, 0x02, 0xA4, 0x02, 0xC8, 0x02, // 234 + 0x00, 0x00, 0xC0, 0x01, 0xA8, 0x02, 0xA0, 0x02, 0xC8, 0x02, // 235 + 0x00, 0x00, 0xE4, 0x03, 0x08, // 236 + 0x08, 0x00, 0xE4, 0x03, // 237 + 0x08, 0x00, 0xE4, 0x03, 0x08, // 238 + 0x08, 0x00, 0xE0, 0x03, 0x08, // 239 + 0x00, 0x00, 0xC0, 0x01, 0x28, 0x02, 0x38, 0x02, 0xE0, 0x01, // 240 + 0x00, 0x00, 0xE8, 0x03, 0x24, 0x00, 0x28, 0x00, 0xC4, 0x03, // 241 + 0x00, 0x00, 0xC0, 0x01, 0x24, 0x02, 0x28, 0x02, 0xC0, 0x01, // 242 + 0x00, 0x00, 0xC0, 0x01, 0x28, 0x02, 0x24, 0x02, 0xC0, 0x01, // 243 + 0x00, 0x00, 0xC0, 0x01, 0x28, 0x02, 0x24, 0x02, 0xC8, 0x01, // 244 + 0x00, 0x00, 0xC8, 0x01, 0x24, 0x02, 0x28, 0x02, 0xC4, 0x01, // 245 + 0x00, 0x00, 0xC0, 0x01, 0x28, 0x02, 0x20, 0x02, 0xC8, 0x01, // 246 + 0x40, 0x00, 0x40, 0x00, 0x50, 0x01, 0x40, 0x00, 0x40, // 247 + 0x00, 0x00, 0xC0, 0x02, 0xA0, 0x03, 0x60, 0x02, 0xA0, 0x01, // 248 + 0x00, 0x00, 0xE0, 0x01, 0x04, 0x02, 0x08, 0x02, 0xE0, 0x03, // 249 + 0x00, 0x00, 0xE0, 0x01, 0x08, 0x02, 0x04, 0x02, 0xE0, 0x03, // 250 + 0x00, 0x00, 0xE8, 0x01, 0x04, 0x02, 0x08, 0x02, 0xE0, 0x03, // 251 + 0x00, 0x00, 0xE0, 0x01, 0x08, 0x02, 0x00, 0x02, 0xE8, 0x03, // 252 + 0x20, 0x00, 0xC0, 0x09, 0x08, 0x06, 0xC4, 0x01, 0x20, // 253 + 0x00, 0x00, 0xF8, 0x0F, 0x20, 0x02, 0x20, 0x02, 0xC0, 0x01, // 254 + 0x20, 0x00, 0xC8, 0x09, 0x00, 0x06, 0xC8, 0x01, 0x20, // 255 }; const uint8_t ArialMT_Plain_16_PL[] PROGMEM = { -0x10, // Width: 16 -0x13, // Height: 19 -0x20, // First char: 32 -0xE0, // Number of chars: 224 -// Jump Table: -0xFF, 0xFF, 0x00, 0x04, // 32 -0x00, 0x00, 0x08, 0x04, // 33 -0x00, 0x08, 0x0D, 0x06, // 34 -0x00, 0x15, 0x1A, 0x0A, // 35 -0x00, 0x2F, 0x17, 0x09, // 36 -0x00, 0x46, 0x26, 0x0E, // 37 -0x00, 0x6C, 0x1D, 0x0B, // 38 -0x00, 0x89, 0x04, 0x03, // 39 -0x00, 0x8D, 0x0C, 0x05, // 40 -0x00, 0x99, 0x0B, 0x05, // 41 -0x00, 0xA4, 0x0D, 0x06, // 42 -0x00, 0xB1, 0x17, 0x09, // 43 -0x00, 0xC8, 0x09, 0x04, // 44 -0x00, 0xD1, 0x0B, 0x05, // 45 -0x00, 0xDC, 0x08, 0x04, // 46 -0x00, 0xE4, 0x0A, 0x05, // 47 -0x00, 0xEE, 0x17, 0x09, // 48 -0x01, 0x05, 0x11, 0x07, // 49 -0x01, 0x16, 0x17, 0x09, // 50 -0x01, 0x2D, 0x17, 0x09, // 51 -0x01, 0x44, 0x17, 0x09, // 52 -0x01, 0x5B, 0x17, 0x09, // 53 -0x01, 0x72, 0x17, 0x09, // 54 -0x01, 0x89, 0x16, 0x09, // 55 -0x01, 0x9F, 0x17, 0x09, // 56 -0x01, 0xB6, 0x17, 0x09, // 57 -0x01, 0xCD, 0x05, 0x03, // 58 -0x01, 0xD2, 0x06, 0x03, // 59 -0x01, 0xD8, 0x17, 0x09, // 60 -0x01, 0xEF, 0x17, 0x09, // 61 -0x02, 0x06, 0x17, 0x09, // 62 -0x02, 0x1D, 0x16, 0x09, // 63 -0x02, 0x33, 0x2F, 0x11, // 64 -0x02, 0x62, 0x1D, 0x0B, // 65 -0x02, 0x7F, 0x1D, 0x0B, // 66 -0x02, 0x9C, 0x20, 0x0C, // 67 -0x02, 0xBC, 0x20, 0x0C, // 68 -0x02, 0xDC, 0x1D, 0x0B, // 69 -0x02, 0xF9, 0x19, 0x0A, // 70 -0x03, 0x12, 0x20, 0x0C, // 71 -0x03, 0x32, 0x1D, 0x0B, // 72 -0x03, 0x4F, 0x05, 0x03, // 73 -0x03, 0x54, 0x14, 0x08, // 74 -0x03, 0x68, 0x1D, 0x0B, // 75 -0x03, 0x85, 0x17, 0x09, // 76 -0x03, 0x9C, 0x23, 0x0D, // 77 -0x03, 0xBF, 0x1D, 0x0B, // 78 -0x03, 0xDC, 0x20, 0x0C, // 79 -0x03, 0xFC, 0x1C, 0x0B, // 80 -0x04, 0x18, 0x20, 0x0C, // 81 -0x04, 0x38, 0x1D, 0x0B, // 82 -0x04, 0x55, 0x1D, 0x0B, // 83 -0x04, 0x72, 0x19, 0x0A, // 84 -0x04, 0x8B, 0x1D, 0x0B, // 85 -0x04, 0xA8, 0x1C, 0x0B, // 86 -0x04, 0xC4, 0x2B, 0x10, // 87 -0x04, 0xEF, 0x20, 0x0C, // 88 -0x05, 0x0F, 0x19, 0x0A, // 89 -0x05, 0x28, 0x1A, 0x0A, // 90 -0x05, 0x42, 0x0C, 0x05, // 91 -0x05, 0x4E, 0x0B, 0x05, // 92 -0x05, 0x59, 0x09, 0x04, // 93 -0x05, 0x62, 0x14, 0x08, // 94 -0x05, 0x76, 0x1B, 0x0A, // 95 -0x05, 0x91, 0x07, 0x04, // 96 -0x05, 0x98, 0x17, 0x09, // 97 -0x05, 0xAF, 0x17, 0x09, // 98 -0x05, 0xC6, 0x14, 0x08, // 99 -0x05, 0xDA, 0x17, 0x09, // 100 -0x05, 0xF1, 0x17, 0x09, // 101 -0x06, 0x08, 0x0A, 0x05, // 102 -0x06, 0x12, 0x17, 0x09, // 103 -0x06, 0x29, 0x14, 0x08, // 104 -0x06, 0x3D, 0x05, 0x03, // 105 -0x06, 0x42, 0x06, 0x03, // 106 -0x06, 0x48, 0x17, 0x09, // 107 -0x06, 0x5F, 0x05, 0x03, // 108 -0x06, 0x64, 0x23, 0x0D, // 109 -0x06, 0x87, 0x14, 0x08, // 110 -0x06, 0x9B, 0x17, 0x09, // 111 -0x06, 0xB2, 0x17, 0x09, // 112 -0x06, 0xC9, 0x18, 0x09, // 113 -0x06, 0xE1, 0x0D, 0x06, // 114 -0x06, 0xEE, 0x14, 0x08, // 115 -0x07, 0x02, 0x0B, 0x05, // 116 -0x07, 0x0D, 0x14, 0x08, // 117 -0x07, 0x21, 0x13, 0x08, // 118 -0x07, 0x34, 0x1F, 0x0C, // 119 -0x07, 0x53, 0x14, 0x08, // 120 -0x07, 0x67, 0x13, 0x08, // 121 -0x07, 0x7A, 0x14, 0x08, // 122 -0x07, 0x8E, 0x0F, 0x06, // 123 -0x07, 0x9D, 0x06, 0x03, // 124 -0x07, 0xA3, 0x0E, 0x06, // 125 -0x07, 0xB1, 0x17, 0x09, // 126 -0xFF, 0xFF, 0x00, 0x10, // 127 -0xFF, 0xFF, 0x00, 0x10, // 128 -0x07, 0xC8, 0x17, 0x09, // 129 -0x07, 0xDF, 0x07, 0x04, // 130 -0x07, 0xE6, 0x1D, 0x0B, // 131 -0x08, 0x03, 0x1E, 0x0B, // 132 -0x08, 0x21, 0x1B, 0x0A, // 133 -0x08, 0x3C, 0x20, 0x0C, // 134 -0x08, 0x5C, 0x14, 0x08, // 135 -0x08, 0x70, 0x14, 0x08, // 136 -0x08, 0x84, 0x14, 0x08, // 137 -0xFF, 0xFF, 0x00, 0x10, // 138 -0xFF, 0xFF, 0x00, 0x10, // 139 -0xFF, 0xFF, 0x00, 0x10, // 140 -0xFF, 0xFF, 0x00, 0x10, // 141 -0xFF, 0xFF, 0x00, 0x10, // 142 -0xFF, 0xFF, 0x00, 0x10, // 143 -0xFF, 0xFF, 0x00, 0x10, // 144 -0xFF, 0xFF, 0x00, 0x10, // 145 -0xFF, 0xFF, 0x00, 0x10, // 146 -0x08, 0x98, 0x20, 0x0C, // 147 -0x08, 0xB8, 0x17, 0x09, // 148 -0xFF, 0xFF, 0x00, 0x10, // 149 -0xFF, 0xFF, 0x00, 0x10, // 150 -0xFF, 0xFF, 0x00, 0x10, // 151 -0x08, 0xCF, 0x1D, 0x0B, // 152 -0x08, 0xEC, 0x17, 0x09, // 153 -0x09, 0x03, 0x1D, 0x0B, // 154 -0x09, 0x20, 0x14, 0x08, // 155 -0xFF, 0xFF, 0x00, 0x10, // 156 -0xFF, 0xFF, 0x00, 0x10, // 157 -0xFF, 0xFF, 0x00, 0x10, // 158 -0xFF, 0xFF, 0x00, 0x10, // 159 -0xFF, 0xFF, 0x00, 0x10, // 160 -0x09, 0x34, 0x09, 0x04, // 161 -0x09, 0x3D, 0x17, 0x09, // 162 -0x09, 0x54, 0x17, 0x09, // 163 -0x09, 0x6B, 0x14, 0x08, // 164 -0x09, 0x7F, 0x1A, 0x0A, // 165 -0x09, 0x99, 0x06, 0x03, // 166 -0x09, 0x9F, 0x17, 0x09, // 167 -0x09, 0xB6, 0x07, 0x04, // 168 -0x09, 0xBD, 0x23, 0x0D, // 169 -0x09, 0xE0, 0x0E, 0x06, // 170 -0x09, 0xEE, 0x14, 0x08, // 171 -0x0A, 0x02, 0x17, 0x09, // 172 -0x0A, 0x19, 0x0B, 0x05, // 173 -0x0A, 0x24, 0x23, 0x0D, // 174 -0x0A, 0x47, 0x19, 0x0A, // 175 -0x0A, 0x60, 0x0D, 0x06, // 176 -0x0A, 0x6D, 0x17, 0x09, // 177 -0x0A, 0x84, 0x0E, 0x06, // 178 -0x0A, 0x92, 0x0D, 0x06, // 179 -0x0A, 0x9F, 0x0A, 0x05, // 180 -0x0A, 0xA9, 0x17, 0x09, // 181 -0x0A, 0xC0, 0x19, 0x0A, // 182 -0x0A, 0xD9, 0x08, 0x04, // 183 -0x0A, 0xE1, 0x0C, 0x05, // 184 -0x0A, 0xED, 0x1A, 0x0A, // 185 -0x0B, 0x07, 0x0D, 0x06, // 186 -0x0B, 0x14, 0x1A, 0x0A, // 187 -0x0B, 0x2E, 0x14, 0x08, // 188 -0x0B, 0x42, 0x26, 0x0E, // 189 -0x0B, 0x68, 0x26, 0x0E, // 190 -0x0B, 0x8E, 0x1A, 0x0A, // 191 -0x0B, 0xA8, 0x1D, 0x0B, // 192 -0x0B, 0xC5, 0x1D, 0x0B, // 193 -0x0B, 0xE2, 0x1D, 0x0B, // 194 -0x0B, 0xFF, 0x1D, 0x0B, // 195 -0x0C, 0x1C, 0x1D, 0x0B, // 196 -0x0C, 0x39, 0x1D, 0x0B, // 197 -0x0C, 0x56, 0x2C, 0x10, // 198 -0x0C, 0x82, 0x20, 0x0C, // 199 -0x0C, 0xA2, 0x1D, 0x0B, // 200 -0x0C, 0xBF, 0x1D, 0x0B, // 201 -0x0C, 0xDC, 0x1D, 0x0B, // 202 -0x0C, 0xF9, 0x1D, 0x0B, // 203 -0x0D, 0x16, 0x05, 0x03, // 204 -0x0D, 0x1B, 0x07, 0x04, // 205 -0x0D, 0x22, 0x0A, 0x05, // 206 -0x0D, 0x2C, 0x07, 0x04, // 207 -0x0D, 0x33, 0x20, 0x0C, // 208 -0x0D, 0x53, 0x1D, 0x0B, // 209 -0x0D, 0x70, 0x20, 0x0C, // 210 -0x0D, 0x90, 0x20, 0x0C, // 211 -0x0D, 0xB0, 0x20, 0x0C, // 212 -0x0D, 0xD0, 0x20, 0x0C, // 213 -0x0D, 0xF0, 0x20, 0x0C, // 214 -0x0E, 0x10, 0x17, 0x09, // 215 -0x0E, 0x27, 0x20, 0x0C, // 216 -0x0E, 0x47, 0x1D, 0x0B, // 217 -0x0E, 0x64, 0x1D, 0x0B, // 218 -0x0E, 0x81, 0x1D, 0x0B, // 219 -0x0E, 0x9E, 0x1D, 0x0B, // 220 -0x0E, 0xBB, 0x19, 0x0A, // 221 -0x0E, 0xD4, 0x1D, 0x0B, // 222 -0x0E, 0xF1, 0x17, 0x09, // 223 -0x0F, 0x08, 0x17, 0x09, // 224 -0x0F, 0x1F, 0x17, 0x09, // 225 -0x0F, 0x36, 0x17, 0x09, // 226 -0x0F, 0x4D, 0x17, 0x09, // 227 -0x0F, 0x64, 0x17, 0x09, // 228 -0x0F, 0x7B, 0x17, 0x09, // 229 -0x0F, 0x92, 0x29, 0x0F, // 230 -0x0F, 0xBB, 0x14, 0x08, // 231 -0x0F, 0xCF, 0x17, 0x09, // 232 -0x0F, 0xE6, 0x17, 0x09, // 233 -0x0F, 0xFD, 0x17, 0x09, // 234 -0x10, 0x14, 0x17, 0x09, // 235 -0x10, 0x2B, 0x05, 0x03, // 236 -0x10, 0x30, 0x07, 0x04, // 237 -0x10, 0x37, 0x0A, 0x05, // 238 -0x10, 0x41, 0x07, 0x04, // 239 -0x10, 0x48, 0x17, 0x09, // 240 -0x10, 0x5F, 0x14, 0x08, // 241 -0x10, 0x73, 0x17, 0x09, // 242 -0x10, 0x8A, 0x17, 0x09, // 243 -0x10, 0xA1, 0x17, 0x09, // 244 -0x10, 0xB8, 0x17, 0x09, // 245 -0x10, 0xCF, 0x17, 0x09, // 246 -0x10, 0xE6, 0x17, 0x09, // 247 -0x10, 0xFD, 0x17, 0x09, // 248 -0x11, 0x14, 0x14, 0x08, // 249 -0x11, 0x28, 0x14, 0x08, // 250 -0x11, 0x3C, 0x14, 0x08, // 251 -0x11, 0x50, 0x14, 0x08, // 252 -0x11, 0x64, 0x13, 0x08, // 253 -0x11, 0x77, 0x17, 0x09, // 254 -0x11, 0x8E, 0x13, 0x08, // 255 -// Font Data: -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x5F, // 33 -0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, // 34 -0x80, 0x08, 0x00, 0x80, 0x78, 0x00, 0xC0, 0x0F, 0x00, 0xB8, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x78, 0x00, 0xC0, 0x0F, 0x00, 0xB8, 0x08, 0x00, 0x80, 0x08, // 35 -0x00, 0x00, 0x00, 0xE0, 0x10, 0x00, 0x10, 0x21, 0x00, 0x08, 0x41, 0x00, 0xFC, 0xFF, 0x00, 0x08, 0x42, 0x00, 0x10, 0x22, 0x00, 0x20, 0x1C, // 36 -0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x08, 0x01, 0x00, 0x08, 0x01, 0x00, 0x08, 0x61, 0x00, 0xF0, 0x18, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x01, 0x00, 0x30, 0x3C, 0x00, 0x08, 0x42, 0x00, 0x00, 0x42, 0x00, 0x00, 0x42, 0x00, 0x00, 0x3C, // 37 -0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x70, 0x22, 0x00, 0x88, 0x41, 0x00, 0x08, 0x43, 0x00, 0x88, 0x44, 0x00, 0x70, 0x28, 0x00, 0x00, 0x10, 0x00, 0x00, 0x28, 0x00, 0x00, 0x44, // 38 -0x00, 0x00, 0x00, 0x78, // 39 -0x00, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x70, 0xC0, 0x01, 0x08, 0x00, 0x02, // 40 -0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x70, 0xC0, 0x01, 0x80, 0x3F, // 41 -0x10, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x38, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x10, // 42 -0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, // 43 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, // 44 -0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, // 45 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // 46 -0x00, 0x60, 0x00, 0x00, 0x1E, 0x00, 0xE0, 0x01, 0x00, 0x18, // 47 -0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0xE0, 0x1F, // 48 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0xF8, 0x7F, // 49 -0x00, 0x00, 0x00, 0x20, 0x40, 0x00, 0x10, 0x60, 0x00, 0x08, 0x50, 0x00, 0x08, 0x48, 0x00, 0x08, 0x44, 0x00, 0x10, 0x43, 0x00, 0xE0, 0x40, // 50 -0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x88, 0x41, 0x00, 0xF0, 0x22, 0x00, 0x00, 0x1C, // 51 -0x00, 0x0C, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x09, 0x00, 0xC0, 0x08, 0x00, 0x20, 0x08, 0x00, 0x10, 0x08, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x08, // 52 -0x00, 0x00, 0x00, 0xC0, 0x11, 0x00, 0xB8, 0x20, 0x00, 0x88, 0x40, 0x00, 0x88, 0x40, 0x00, 0x88, 0x40, 0x00, 0x08, 0x21, 0x00, 0x08, 0x1E, // 53 -0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x10, 0x21, 0x00, 0x88, 0x40, 0x00, 0x88, 0x40, 0x00, 0x88, 0x40, 0x00, 0x10, 0x21, 0x00, 0x20, 0x1E, // 54 -0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x78, 0x00, 0x08, 0x07, 0x00, 0xC8, 0x00, 0x00, 0x28, 0x00, 0x00, 0x18, // 55 -0x00, 0x00, 0x00, 0x60, 0x1C, 0x00, 0x90, 0x22, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x90, 0x22, 0x00, 0x60, 0x1C, // 56 -0x00, 0x00, 0x00, 0xE0, 0x11, 0x00, 0x10, 0x22, 0x00, 0x08, 0x44, 0x00, 0x08, 0x44, 0x00, 0x08, 0x44, 0x00, 0x10, 0x22, 0x00, 0xE0, 0x1F, // 57 -0x00, 0x00, 0x00, 0x40, 0x40, // 58 -0x00, 0x00, 0x00, 0x40, 0xC0, 0x01, // 59 -0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x05, 0x00, 0x00, 0x05, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x40, 0x10, // 60 -0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, // 61 -0x00, 0x00, 0x00, 0x40, 0x10, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x00, 0x05, 0x00, 0x00, 0x05, 0x00, 0x00, 0x02, // 62 -0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x5C, 0x00, 0x08, 0x02, 0x00, 0x10, 0x01, 0x00, 0xE0, // 63 -0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0xC0, 0x40, 0x00, 0x20, 0x80, 0x00, 0x10, 0x1E, 0x01, 0x10, 0x21, 0x01, 0x88, 0x40, 0x02, 0x48, 0x40, 0x02, 0x48, 0x40, 0x02, 0x48, 0x20, 0x02, 0x88, 0x7C, 0x02, 0xC8, 0x43, 0x02, 0x10, 0x40, 0x02, 0x10, 0x20, 0x01, 0x60, 0x10, 0x01, 0x80, 0x8F, // 64 -0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x70, 0x04, 0x00, 0x08, 0x04, 0x00, 0x70, 0x04, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 65 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x90, 0x22, 0x00, 0x60, 0x1C, // 66 -0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, // 67 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 68 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x40, // 69 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, // 70 -0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x42, 0x00, 0x08, 0x42, 0x00, 0x10, 0x22, 0x00, 0x20, 0x12, 0x00, 0x00, 0x0E, // 71 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0xF8, 0x7F, // 72 -0x00, 0x00, 0x00, 0xF8, 0x7F, // 73 -0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0xF8, 0x3F, // 74 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x80, 0x03, 0x00, 0x40, 0x04, 0x00, 0x20, 0x18, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, // 75 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, // 76 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x03, 0x00, 0xC0, 0x00, 0x00, 0x30, 0x00, 0x00, 0xF8, 0x7F, // 77 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x10, 0x00, 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x04, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x7F, // 78 -0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 79 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x10, 0x01, 0x00, 0xE0, // 80 -0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x50, 0x00, 0x08, 0x50, 0x00, 0x10, 0x20, 0x00, 0x20, 0x70, 0x00, 0xC0, 0x4F, // 81 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x1A, 0x00, 0x10, 0x21, 0x00, 0xE0, 0x40, // 82 -0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x90, 0x20, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x42, 0x00, 0x08, 0x42, 0x00, 0x10, 0x22, 0x00, 0x20, 0x1C, // 83 -0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, // 84 -0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x1F, // 85 -0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0xE0, 0x00, 0x00, 0x18, // 86 -0x18, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x03, 0x00, 0x70, 0x00, 0x00, 0x08, 0x00, 0x00, 0x70, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1E, 0x00, 0xE0, 0x01, 0x00, 0x18, // 87 -0x00, 0x40, 0x00, 0x08, 0x20, 0x00, 0x10, 0x10, 0x00, 0x60, 0x0C, 0x00, 0x80, 0x02, 0x00, 0x00, 0x01, 0x00, 0x80, 0x02, 0x00, 0x60, 0x0C, 0x00, 0x10, 0x10, 0x00, 0x08, 0x20, 0x00, 0x00, 0x40, // 88 -0x08, 0x00, 0x00, 0x30, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x7E, 0x00, 0x80, 0x01, 0x00, 0x40, 0x00, 0x00, 0x30, 0x00, 0x00, 0x08, // 89 -0x00, 0x40, 0x00, 0x08, 0x60, 0x00, 0x08, 0x58, 0x00, 0x08, 0x44, 0x00, 0x08, 0x43, 0x00, 0x88, 0x40, 0x00, 0x68, 0x40, 0x00, 0x18, 0x40, 0x00, 0x08, 0x40, // 90 -0x00, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0x08, 0x00, 0x02, 0x08, 0x00, 0x02, // 91 -0x18, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x60, // 92 -0x08, 0x00, 0x02, 0x08, 0x00, 0x02, 0xF8, 0xFF, 0x03, // 93 -0x00, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x30, 0x00, 0x00, 0x08, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x01, // 94 -0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, // 95 -0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x10, // 96 -0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x7F, // 97 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 98 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, // 99 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0xF8, 0x7F, // 100 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x24, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x80, 0x24, 0x00, 0x00, 0x17, // 101 -0x40, 0x00, 0x00, 0xF0, 0x7F, 0x00, 0x48, 0x00, 0x00, 0x48, // 102 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x01, 0x80, 0x20, 0x02, 0x40, 0x40, 0x02, 0x40, 0x40, 0x02, 0x40, 0x40, 0x02, 0x80, 0x20, 0x01, 0xC0, 0xFF, // 103 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x7F, // 104 -0x00, 0x00, 0x00, 0xC8, 0x7F, // 105 -0x00, 0x00, 0x02, 0xC8, 0xFF, 0x01, // 106 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0x06, 0x00, 0x00, 0x19, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, // 107 -0x00, 0x00, 0x00, 0xF8, 0x7F, // 108 -0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x7F, // 109 -0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x7F, // 110 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 111 -0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 112 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0xC0, 0xFF, 0x03, // 113 -0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, // 114 -0x00, 0x00, 0x00, 0x80, 0x23, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x80, 0x38, // 115 -0x40, 0x00, 0x00, 0xF0, 0x7F, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, // 116 -0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xC0, 0x7F, // 117 -0xC0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x03, 0x00, 0xC0, // 118 -0xC0, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x03, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1F, 0x00, 0xC0, // 119 -0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1B, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, // 120 -0xC0, 0x01, 0x00, 0x00, 0x06, 0x02, 0x00, 0x38, 0x02, 0x00, 0xE0, 0x01, 0x00, 0x38, 0x00, 0x00, 0x07, 0x00, 0xC0, // 121 -0x40, 0x40, 0x00, 0x40, 0x60, 0x00, 0x40, 0x58, 0x00, 0x40, 0x44, 0x00, 0x40, 0x43, 0x00, 0xC0, 0x40, 0x00, 0x40, 0x40, // 122 -0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0xF0, 0xFB, 0x01, 0x08, 0x00, 0x02, 0x08, 0x00, 0x02, // 123 -0x00, 0x00, 0x00, 0xF8, 0xFF, 0x03, // 124 -0x08, 0x00, 0x02, 0x08, 0x00, 0x02, 0xF0, 0xFB, 0x01, 0x00, 0x04, 0x00, 0x00, 0x04, // 125 -0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, // 126 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x42, 0x00, 0x00, 0x41, 0x00, 0x80, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, // 129 -0x00, 0x01, 0x00, 0xF8, 0x7F, 0x00, 0x80, // 130 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x10, 0x00, 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x00, 0x08, 0x03, 0x00, 0x04, 0x04, 0x00, 0x02, 0x18, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x7F, // 131 -0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x70, 0x04, 0x00, 0x08, 0x04, 0x00, 0x70, 0x04, 0x00, 0x80, 0x07, 0x00, 0x00, 0x9C, 0x01, 0x00, 0x60, 0x02, // 132 -0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x7F, 0x03, 0x00, 0x80, 0x04, // 133 -0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x09, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, // 134 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x50, 0x40, 0x00, 0x48, 0x40, 0x00, 0x80, 0x20, // 135 -0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, 0x00, 0x00, 0x48, 0x00, 0x00, 0x80, 0x7F, // 136 -0x40, 0x40, 0x00, 0x40, 0x60, 0x00, 0x40, 0x58, 0x00, 0x50, 0x44, 0x00, 0x48, 0x43, 0x00, 0xC0, 0x40, 0x00, 0x40, 0x40, // 137 -0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x09, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 147 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x50, 0x40, 0x00, 0x48, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 148 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0xC1, 0x01, 0x08, 0x41, 0x02, 0x08, 0x41, 0x00, 0x08, 0x40, // 152 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x24, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x03, 0x40, 0xC4, 0x04, 0x80, 0x24, 0x00, 0x00, 0x17, // 153 -0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x90, 0x20, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x09, 0x42, 0x00, 0x08, 0x42, 0x00, 0x10, 0x22, 0x00, 0x20, 0x1C, // 154 -0x00, 0x00, 0x00, 0x80, 0x23, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x50, 0x44, 0x00, 0x48, 0x44, 0x00, 0x80, 0x38, // 155 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x03, // 161 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x03, 0x40, 0xF0, 0x00, 0x40, 0x4E, 0x00, 0xC0, 0x41, 0x00, 0xB8, 0x20, 0x00, 0x00, 0x11, // 162 -0x00, 0x41, 0x00, 0xE0, 0x31, 0x00, 0x10, 0x2F, 0x00, 0x08, 0x21, 0x00, 0x08, 0x21, 0x00, 0x08, 0x40, 0x00, 0x10, 0x40, 0x00, 0x20, 0x20, // 163 -0x00, 0x00, 0x00, 0x40, 0x0B, 0x00, 0x80, 0x04, 0x00, 0x40, 0x08, 0x00, 0x40, 0x08, 0x00, 0x80, 0x04, 0x00, 0x40, 0x0B, // 164 -0x08, 0x0A, 0x00, 0x10, 0x0A, 0x00, 0x60, 0x0A, 0x00, 0x80, 0x0B, 0x00, 0x00, 0x7E, 0x00, 0x80, 0x0B, 0x00, 0x60, 0x0A, 0x00, 0x10, 0x0A, 0x00, 0x08, 0x0A, // 165 -0x00, 0x00, 0x00, 0xF8, 0xF1, 0x03, // 166 -0x00, 0x86, 0x00, 0x70, 0x09, 0x01, 0xC8, 0x10, 0x02, 0x88, 0x10, 0x02, 0x08, 0x21, 0x02, 0x08, 0x61, 0x02, 0x30, 0xD2, 0x01, 0x00, 0x0C, // 167 -0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, // 168 -0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0xC8, 0x47, 0x00, 0x28, 0x48, 0x00, 0x28, 0x48, 0x00, 0x28, 0x48, 0x00, 0x28, 0x48, 0x00, 0x48, 0x44, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 169 -0xD0, 0x00, 0x00, 0x48, 0x01, 0x00, 0x28, 0x01, 0x00, 0x28, 0x01, 0x00, 0xF0, 0x01, // 170 -0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1B, 0x00, 0x80, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1B, 0x00, 0x80, 0x20, // 171 -0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x0F, // 172 -0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, // 173 -0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0xE8, 0x4F, 0x00, 0x28, 0x41, 0x00, 0x28, 0x41, 0x00, 0x28, 0x43, 0x00, 0x28, 0x45, 0x00, 0xC8, 0x48, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 174 -0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, // 175 -0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x48, 0x00, 0x00, 0x48, 0x00, 0x00, 0x30, // 176 -0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x41, 0x00, 0x00, 0x41, 0x00, 0xE0, 0x4F, 0x00, 0x00, 0x41, 0x00, 0x00, 0x41, 0x00, 0x00, 0x41, // 177 -0x10, 0x01, 0x00, 0x88, 0x01, 0x00, 0x48, 0x01, 0x00, 0x48, 0x01, 0x00, 0x30, 0x01, // 178 -0x90, 0x00, 0x00, 0x08, 0x01, 0x00, 0x08, 0x01, 0x00, 0x28, 0x01, 0x00, 0xD8, // 179 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x08, // 180 -0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xC0, 0x7F, // 181 -0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x01, 0x00, 0xF8, 0x01, 0x00, 0xF8, 0xFF, 0x03, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0x08, // 182 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // 183 -0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x80, 0x02, 0x00, 0x00, 0x03, // 184 -0x00, 0x40, 0x00, 0x08, 0x60, 0x00, 0x08, 0x58, 0x00, 0x08, 0x44, 0x00, 0x0A, 0x43, 0x00, 0x89, 0x40, 0x00, 0x68, 0x40, 0x00, 0x18, 0x40, 0x00, 0x08, 0x40, // 185 -0xF0, 0x00, 0x00, 0x08, 0x01, 0x00, 0x08, 0x01, 0x00, 0x08, 0x01, 0x00, 0xF0, // 186 -0x00, 0x40, 0x00, 0x08, 0x60, 0x00, 0x08, 0x58, 0x00, 0x08, 0x44, 0x00, 0x0A, 0x43, 0x00, 0x88, 0x40, 0x00, 0x68, 0x40, 0x00, 0x18, 0x40, 0x00, 0x08, 0x40, // 187 -0x40, 0x40, 0x00, 0x40, 0x60, 0x00, 0x40, 0x58, 0x00, 0x50, 0x44, 0x00, 0x40, 0x43, 0x00, 0xC0, 0x40, 0x00, 0x40, 0x40, // 188 -0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x08, 0x40, 0x00, 0xF8, 0x31, 0x00, 0x00, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x60, 0x44, 0x00, 0x10, 0x62, 0x00, 0x08, 0x52, 0x00, 0x00, 0x52, 0x00, 0x00, 0x4C, // 189 -0x90, 0x00, 0x00, 0x08, 0x01, 0x00, 0x08, 0x41, 0x00, 0x28, 0x21, 0x00, 0xD8, 0x18, 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x40, 0x30, 0x00, 0x30, 0x28, 0x00, 0x08, 0x24, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x20, // 190 -0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x10, 0x01, 0x00, 0x08, 0x02, 0x40, 0x07, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0xC0, // 191 -0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x71, 0x04, 0x00, 0x0A, 0x04, 0x00, 0x70, 0x04, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 192 -0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x70, 0x04, 0x00, 0x0A, 0x04, 0x00, 0x71, 0x04, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 193 -0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x72, 0x04, 0x00, 0x09, 0x04, 0x00, 0x71, 0x04, 0x00, 0x82, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 194 -0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x72, 0x04, 0x00, 0x09, 0x04, 0x00, 0x72, 0x04, 0x00, 0x81, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 195 -0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x72, 0x04, 0x00, 0x08, 0x04, 0x00, 0x72, 0x04, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 196 -0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x7E, 0x04, 0x00, 0x0A, 0x04, 0x00, 0x7E, 0x04, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 197 -0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x06, 0x00, 0x80, 0x05, 0x00, 0x60, 0x04, 0x00, 0x18, 0x04, 0x00, 0x08, 0x04, 0x00, 0x08, 0x04, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, // 198 -0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x02, 0x08, 0xC0, 0x02, 0x08, 0x40, 0x03, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, // 199 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x09, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x40, // 200 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x09, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x40, // 201 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x09, 0x41, 0x00, 0x09, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x40, // 202 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x08, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x40, // 203 -0x01, 0x00, 0x00, 0xFA, 0x7F, // 204 -0x00, 0x00, 0x00, 0xFA, 0x7F, 0x00, 0x01, // 205 -0x02, 0x00, 0x00, 0xF9, 0x7F, 0x00, 0x01, 0x00, 0x00, 0x02, // 206 -0x02, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x02, // 207 -0x00, 0x02, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x42, 0x00, 0x08, 0x42, 0x00, 0x08, 0x42, 0x00, 0x08, 0x42, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 208 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x10, 0x00, 0x00, 0x60, 0x00, 0x00, 0x82, 0x00, 0x00, 0x01, 0x03, 0x00, 0x02, 0x04, 0x00, 0x01, 0x18, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x7F, // 209 -0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x09, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 210 -0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x09, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 211 -0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x0A, 0x40, 0x00, 0x09, 0x40, 0x00, 0x09, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 212 -0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x0A, 0x40, 0x00, 0x09, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x09, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 213 -0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x08, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 214 -0x00, 0x00, 0x00, 0x40, 0x10, 0x00, 0x80, 0x08, 0x00, 0x00, 0x05, 0x00, 0x00, 0x07, 0x00, 0x00, 0x05, 0x00, 0x80, 0x08, 0x00, 0x40, 0x10, // 215 -0x00, 0x00, 0x00, 0xC0, 0x4F, 0x00, 0x20, 0x30, 0x00, 0x10, 0x30, 0x00, 0x08, 0x4C, 0x00, 0x08, 0x42, 0x00, 0x08, 0x41, 0x00, 0xC8, 0x40, 0x00, 0x30, 0x20, 0x00, 0x30, 0x10, 0x00, 0xC8, 0x0F, // 216 -0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x01, 0x40, 0x00, 0x02, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x1F, // 217 -0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x02, 0x40, 0x00, 0x01, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x1F, // 218 -0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x02, 0x40, 0x00, 0x01, 0x40, 0x00, 0x01, 0x40, 0x00, 0x02, 0x40, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x1F, // 219 -0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x02, 0x40, 0x00, 0x00, 0x40, 0x00, 0x02, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x1F, // 220 -0x08, 0x00, 0x00, 0x30, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x01, 0x00, 0x02, 0x7E, 0x00, 0x81, 0x01, 0x00, 0x40, 0x00, 0x00, 0x30, 0x00, 0x00, 0x08, // 221 -0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x40, 0x08, 0x00, 0x80, 0x07, // 222 -0x00, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x10, 0x00, 0x00, 0x08, 0x20, 0x00, 0x88, 0x43, 0x00, 0x70, 0x42, 0x00, 0x00, 0x44, 0x00, 0x00, 0x38, // 223 -0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x40, 0x44, 0x00, 0x48, 0x44, 0x00, 0x50, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x7F, // 224 -0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x40, 0x44, 0x00, 0x50, 0x44, 0x00, 0x48, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x7F, // 225 -0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x50, 0x44, 0x00, 0x48, 0x44, 0x00, 0x48, 0x42, 0x00, 0x50, 0x22, 0x00, 0x80, 0x7F, // 226 -0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x50, 0x44, 0x00, 0x48, 0x44, 0x00, 0x50, 0x42, 0x00, 0x48, 0x22, 0x00, 0x80, 0x7F, // 227 -0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x50, 0x44, 0x00, 0x40, 0x44, 0x00, 0x50, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x7F, // 228 -0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x5C, 0x44, 0x00, 0x54, 0x44, 0x00, 0x5C, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x7F, // 229 -0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x3F, 0x00, 0x80, 0x24, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x80, 0x24, 0x00, 0x00, 0x17, // 230 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x02, 0x40, 0xC0, 0x02, 0x40, 0x40, 0x03, 0x80, 0x20, // 231 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x24, 0x00, 0x48, 0x44, 0x00, 0x50, 0x44, 0x00, 0x40, 0x44, 0x00, 0x80, 0x24, 0x00, 0x00, 0x17, // 232 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x24, 0x00, 0x40, 0x44, 0x00, 0x50, 0x44, 0x00, 0x48, 0x44, 0x00, 0x80, 0x24, 0x00, 0x00, 0x17, // 233 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x24, 0x00, 0x50, 0x44, 0x00, 0x48, 0x44, 0x00, 0x48, 0x44, 0x00, 0x90, 0x24, 0x00, 0x00, 0x17, // 234 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x24, 0x00, 0x50, 0x44, 0x00, 0x40, 0x44, 0x00, 0x50, 0x44, 0x00, 0x80, 0x24, 0x00, 0x00, 0x17, // 235 -0x08, 0x00, 0x00, 0xD0, 0x7F, // 236 -0x00, 0x00, 0x00, 0xD0, 0x7F, 0x00, 0x08, // 237 -0x10, 0x00, 0x00, 0xC8, 0x7F, 0x00, 0x08, 0x00, 0x00, 0x10, // 238 -0x10, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x10, // 239 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0xA0, 0x20, 0x00, 0x68, 0x40, 0x00, 0x58, 0x40, 0x00, 0x70, 0x40, 0x00, 0xE8, 0x20, 0x00, 0x00, 0x1F, // 240 -0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x90, 0x00, 0x00, 0x48, 0x00, 0x00, 0x50, 0x00, 0x00, 0x48, 0x00, 0x00, 0x80, 0x7F, // 241 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x48, 0x40, 0x00, 0x50, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 242 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x50, 0x40, 0x00, 0x48, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 243 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x50, 0x40, 0x00, 0x48, 0x40, 0x00, 0x48, 0x40, 0x00, 0x90, 0x20, 0x00, 0x00, 0x1F, // 244 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x50, 0x40, 0x00, 0x48, 0x40, 0x00, 0x50, 0x40, 0x00, 0x88, 0x20, 0x00, 0x00, 0x1F, // 245 -0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x50, 0x40, 0x00, 0x40, 0x40, 0x00, 0x50, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 246 -0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x80, 0x0A, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, // 247 -0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x80, 0x30, 0x00, 0x40, 0x48, 0x00, 0x40, 0x44, 0x00, 0x40, 0x42, 0x00, 0x80, 0x21, 0x00, 0x40, 0x1F, // 248 -0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x40, 0x00, 0x00, 0x20, 0x00, 0xC0, 0x7F, // 249 -0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x10, 0x40, 0x00, 0x08, 0x20, 0x00, 0xC0, 0x7F, // 250 -0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x10, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0xC0, 0x7F, // 251 -0x00, 0x00, 0x00, 0xD0, 0x3F, 0x00, 0x00, 0x40, 0x00, 0x10, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xC0, 0x7F, // 252 -0xC0, 0x01, 0x00, 0x00, 0x06, 0x02, 0x00, 0x38, 0x02, 0x10, 0xE0, 0x01, 0x08, 0x38, 0x00, 0x00, 0x07, 0x00, 0xC0, // 253 -0x00, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 254 -0xC0, 0x01, 0x00, 0x00, 0x06, 0x02, 0x10, 0x38, 0x02, 0x00, 0xE0, 0x01, 0x10, 0x38, 0x00, 0x00, 0x07, 0x00, 0xC0, // 255 + 0x10, // Width: 16 + 0x13, // Height: 19 + 0x20, // First char: 32 + 0xE0, // Number of chars: 224 + // Jump Table: + 0xFF, 0xFF, 0x00, 0x04, // 32 + 0x00, 0x00, 0x08, 0x04, // 33 + 0x00, 0x08, 0x0D, 0x06, // 34 + 0x00, 0x15, 0x1A, 0x0A, // 35 + 0x00, 0x2F, 0x17, 0x09, // 36 + 0x00, 0x46, 0x26, 0x0E, // 37 + 0x00, 0x6C, 0x1D, 0x0B, // 38 + 0x00, 0x89, 0x04, 0x03, // 39 + 0x00, 0x8D, 0x0C, 0x05, // 40 + 0x00, 0x99, 0x0B, 0x05, // 41 + 0x00, 0xA4, 0x0D, 0x06, // 42 + 0x00, 0xB1, 0x17, 0x09, // 43 + 0x00, 0xC8, 0x09, 0x04, // 44 + 0x00, 0xD1, 0x0B, 0x05, // 45 + 0x00, 0xDC, 0x08, 0x04, // 46 + 0x00, 0xE4, 0x0A, 0x05, // 47 + 0x00, 0xEE, 0x17, 0x09, // 48 + 0x01, 0x05, 0x11, 0x07, // 49 + 0x01, 0x16, 0x17, 0x09, // 50 + 0x01, 0x2D, 0x17, 0x09, // 51 + 0x01, 0x44, 0x17, 0x09, // 52 + 0x01, 0x5B, 0x17, 0x09, // 53 + 0x01, 0x72, 0x17, 0x09, // 54 + 0x01, 0x89, 0x16, 0x09, // 55 + 0x01, 0x9F, 0x17, 0x09, // 56 + 0x01, 0xB6, 0x17, 0x09, // 57 + 0x01, 0xCD, 0x05, 0x03, // 58 + 0x01, 0xD2, 0x06, 0x03, // 59 + 0x01, 0xD8, 0x17, 0x09, // 60 + 0x01, 0xEF, 0x17, 0x09, // 61 + 0x02, 0x06, 0x17, 0x09, // 62 + 0x02, 0x1D, 0x16, 0x09, // 63 + 0x02, 0x33, 0x2F, 0x11, // 64 + 0x02, 0x62, 0x1D, 0x0B, // 65 + 0x02, 0x7F, 0x1D, 0x0B, // 66 + 0x02, 0x9C, 0x20, 0x0C, // 67 + 0x02, 0xBC, 0x20, 0x0C, // 68 + 0x02, 0xDC, 0x1D, 0x0B, // 69 + 0x02, 0xF9, 0x19, 0x0A, // 70 + 0x03, 0x12, 0x20, 0x0C, // 71 + 0x03, 0x32, 0x1D, 0x0B, // 72 + 0x03, 0x4F, 0x05, 0x03, // 73 + 0x03, 0x54, 0x14, 0x08, // 74 + 0x03, 0x68, 0x1D, 0x0B, // 75 + 0x03, 0x85, 0x17, 0x09, // 76 + 0x03, 0x9C, 0x23, 0x0D, // 77 + 0x03, 0xBF, 0x1D, 0x0B, // 78 + 0x03, 0xDC, 0x20, 0x0C, // 79 + 0x03, 0xFC, 0x1C, 0x0B, // 80 + 0x04, 0x18, 0x20, 0x0C, // 81 + 0x04, 0x38, 0x1D, 0x0B, // 82 + 0x04, 0x55, 0x1D, 0x0B, // 83 + 0x04, 0x72, 0x19, 0x0A, // 84 + 0x04, 0x8B, 0x1D, 0x0B, // 85 + 0x04, 0xA8, 0x1C, 0x0B, // 86 + 0x04, 0xC4, 0x2B, 0x10, // 87 + 0x04, 0xEF, 0x20, 0x0C, // 88 + 0x05, 0x0F, 0x19, 0x0A, // 89 + 0x05, 0x28, 0x1A, 0x0A, // 90 + 0x05, 0x42, 0x0C, 0x05, // 91 + 0x05, 0x4E, 0x0B, 0x05, // 92 + 0x05, 0x59, 0x09, 0x04, // 93 + 0x05, 0x62, 0x14, 0x08, // 94 + 0x05, 0x76, 0x1B, 0x0A, // 95 + 0x05, 0x91, 0x07, 0x04, // 96 + 0x05, 0x98, 0x17, 0x09, // 97 + 0x05, 0xAF, 0x17, 0x09, // 98 + 0x05, 0xC6, 0x14, 0x08, // 99 + 0x05, 0xDA, 0x17, 0x09, // 100 + 0x05, 0xF1, 0x17, 0x09, // 101 + 0x06, 0x08, 0x0A, 0x05, // 102 + 0x06, 0x12, 0x17, 0x09, // 103 + 0x06, 0x29, 0x14, 0x08, // 104 + 0x06, 0x3D, 0x05, 0x03, // 105 + 0x06, 0x42, 0x06, 0x03, // 106 + 0x06, 0x48, 0x17, 0x09, // 107 + 0x06, 0x5F, 0x05, 0x03, // 108 + 0x06, 0x64, 0x23, 0x0D, // 109 + 0x06, 0x87, 0x14, 0x08, // 110 + 0x06, 0x9B, 0x17, 0x09, // 111 + 0x06, 0xB2, 0x17, 0x09, // 112 + 0x06, 0xC9, 0x18, 0x09, // 113 + 0x06, 0xE1, 0x0D, 0x06, // 114 + 0x06, 0xEE, 0x14, 0x08, // 115 + 0x07, 0x02, 0x0B, 0x05, // 116 + 0x07, 0x0D, 0x14, 0x08, // 117 + 0x07, 0x21, 0x13, 0x08, // 118 + 0x07, 0x34, 0x1F, 0x0C, // 119 + 0x07, 0x53, 0x14, 0x08, // 120 + 0x07, 0x67, 0x13, 0x08, // 121 + 0x07, 0x7A, 0x14, 0x08, // 122 + 0x07, 0x8E, 0x0F, 0x06, // 123 + 0x07, 0x9D, 0x06, 0x03, // 124 + 0x07, 0xA3, 0x0E, 0x06, // 125 + 0x07, 0xB1, 0x17, 0x09, // 126 + 0xFF, 0xFF, 0x00, 0x10, // 127 + 0xFF, 0xFF, 0x00, 0x10, // 128 + 0x07, 0xC8, 0x17, 0x09, // 129 + 0x07, 0xDF, 0x07, 0x04, // 130 + 0x07, 0xE6, 0x1D, 0x0B, // 131 + 0x08, 0x03, 0x1E, 0x0B, // 132 + 0x08, 0x21, 0x1B, 0x0A, // 133 + 0x08, 0x3C, 0x20, 0x0C, // 134 + 0x08, 0x5C, 0x14, 0x08, // 135 + 0x08, 0x70, 0x14, 0x08, // 136 + 0x08, 0x84, 0x14, 0x08, // 137 + 0xFF, 0xFF, 0x00, 0x10, // 138 + 0xFF, 0xFF, 0x00, 0x10, // 139 + 0xFF, 0xFF, 0x00, 0x10, // 140 + 0xFF, 0xFF, 0x00, 0x10, // 141 + 0xFF, 0xFF, 0x00, 0x10, // 142 + 0xFF, 0xFF, 0x00, 0x10, // 143 + 0xFF, 0xFF, 0x00, 0x10, // 144 + 0xFF, 0xFF, 0x00, 0x10, // 145 + 0xFF, 0xFF, 0x00, 0x10, // 146 + 0x08, 0x98, 0x20, 0x0C, // 147 + 0x08, 0xB8, 0x17, 0x09, // 148 + 0xFF, 0xFF, 0x00, 0x10, // 149 + 0xFF, 0xFF, 0x00, 0x10, // 150 + 0xFF, 0xFF, 0x00, 0x10, // 151 + 0x08, 0xCF, 0x1D, 0x0B, // 152 + 0x08, 0xEC, 0x17, 0x09, // 153 + 0x09, 0x03, 0x1D, 0x0B, // 154 + 0x09, 0x20, 0x14, 0x08, // 155 + 0xFF, 0xFF, 0x00, 0x10, // 156 + 0xFF, 0xFF, 0x00, 0x10, // 157 + 0xFF, 0xFF, 0x00, 0x10, // 158 + 0xFF, 0xFF, 0x00, 0x10, // 159 + 0xFF, 0xFF, 0x00, 0x10, // 160 + 0x09, 0x34, 0x09, 0x04, // 161 + 0x09, 0x3D, 0x17, 0x09, // 162 + 0x09, 0x54, 0x17, 0x09, // 163 + 0x09, 0x6B, 0x14, 0x08, // 164 + 0x09, 0x7F, 0x1A, 0x0A, // 165 + 0x09, 0x99, 0x06, 0x03, // 166 + 0x09, 0x9F, 0x17, 0x09, // 167 + 0x09, 0xB6, 0x07, 0x04, // 168 + 0x09, 0xBD, 0x23, 0x0D, // 169 + 0x09, 0xE0, 0x0E, 0x06, // 170 + 0x09, 0xEE, 0x14, 0x08, // 171 + 0x0A, 0x02, 0x17, 0x09, // 172 + 0x0A, 0x19, 0x0B, 0x05, // 173 + 0x0A, 0x24, 0x23, 0x0D, // 174 + 0x0A, 0x47, 0x19, 0x0A, // 175 + 0x0A, 0x60, 0x0D, 0x06, // 176 + 0x0A, 0x6D, 0x17, 0x09, // 177 + 0x0A, 0x84, 0x0E, 0x06, // 178 + 0x0A, 0x92, 0x0D, 0x06, // 179 + 0x0A, 0x9F, 0x0A, 0x05, // 180 + 0x0A, 0xA9, 0x17, 0x09, // 181 + 0x0A, 0xC0, 0x19, 0x0A, // 182 + 0x0A, 0xD9, 0x08, 0x04, // 183 + 0x0A, 0xE1, 0x0C, 0x05, // 184 + 0x0A, 0xED, 0x1A, 0x0A, // 185 + 0x0B, 0x07, 0x0D, 0x06, // 186 + 0x0B, 0x14, 0x1A, 0x0A, // 187 + 0x0B, 0x2E, 0x14, 0x08, // 188 + 0x0B, 0x42, 0x26, 0x0E, // 189 + 0x0B, 0x68, 0x26, 0x0E, // 190 + 0x0B, 0x8E, 0x1A, 0x0A, // 191 + 0x0B, 0xA8, 0x1D, 0x0B, // 192 + 0x0B, 0xC5, 0x1D, 0x0B, // 193 + 0x0B, 0xE2, 0x1D, 0x0B, // 194 + 0x0B, 0xFF, 0x1D, 0x0B, // 195 + 0x0C, 0x1C, 0x1D, 0x0B, // 196 + 0x0C, 0x39, 0x1D, 0x0B, // 197 + 0x0C, 0x56, 0x2C, 0x10, // 198 + 0x0C, 0x82, 0x20, 0x0C, // 199 + 0x0C, 0xA2, 0x1D, 0x0B, // 200 + 0x0C, 0xBF, 0x1D, 0x0B, // 201 + 0x0C, 0xDC, 0x1D, 0x0B, // 202 + 0x0C, 0xF9, 0x1D, 0x0B, // 203 + 0x0D, 0x16, 0x05, 0x03, // 204 + 0x0D, 0x1B, 0x07, 0x04, // 205 + 0x0D, 0x22, 0x0A, 0x05, // 206 + 0x0D, 0x2C, 0x07, 0x04, // 207 + 0x0D, 0x33, 0x20, 0x0C, // 208 + 0x0D, 0x53, 0x1D, 0x0B, // 209 + 0x0D, 0x70, 0x20, 0x0C, // 210 + 0x0D, 0x90, 0x20, 0x0C, // 211 + 0x0D, 0xB0, 0x20, 0x0C, // 212 + 0x0D, 0xD0, 0x20, 0x0C, // 213 + 0x0D, 0xF0, 0x20, 0x0C, // 214 + 0x0E, 0x10, 0x17, 0x09, // 215 + 0x0E, 0x27, 0x20, 0x0C, // 216 + 0x0E, 0x47, 0x1D, 0x0B, // 217 + 0x0E, 0x64, 0x1D, 0x0B, // 218 + 0x0E, 0x81, 0x1D, 0x0B, // 219 + 0x0E, 0x9E, 0x1D, 0x0B, // 220 + 0x0E, 0xBB, 0x19, 0x0A, // 221 + 0x0E, 0xD4, 0x1D, 0x0B, // 222 + 0x0E, 0xF1, 0x17, 0x09, // 223 + 0x0F, 0x08, 0x17, 0x09, // 224 + 0x0F, 0x1F, 0x17, 0x09, // 225 + 0x0F, 0x36, 0x17, 0x09, // 226 + 0x0F, 0x4D, 0x17, 0x09, // 227 + 0x0F, 0x64, 0x17, 0x09, // 228 + 0x0F, 0x7B, 0x17, 0x09, // 229 + 0x0F, 0x92, 0x29, 0x0F, // 230 + 0x0F, 0xBB, 0x14, 0x08, // 231 + 0x0F, 0xCF, 0x17, 0x09, // 232 + 0x0F, 0xE6, 0x17, 0x09, // 233 + 0x0F, 0xFD, 0x17, 0x09, // 234 + 0x10, 0x14, 0x17, 0x09, // 235 + 0x10, 0x2B, 0x05, 0x03, // 236 + 0x10, 0x30, 0x07, 0x04, // 237 + 0x10, 0x37, 0x0A, 0x05, // 238 + 0x10, 0x41, 0x07, 0x04, // 239 + 0x10, 0x48, 0x17, 0x09, // 240 + 0x10, 0x5F, 0x14, 0x08, // 241 + 0x10, 0x73, 0x17, 0x09, // 242 + 0x10, 0x8A, 0x17, 0x09, // 243 + 0x10, 0xA1, 0x17, 0x09, // 244 + 0x10, 0xB8, 0x17, 0x09, // 245 + 0x10, 0xCF, 0x17, 0x09, // 246 + 0x10, 0xE6, 0x17, 0x09, // 247 + 0x10, 0xFD, 0x17, 0x09, // 248 + 0x11, 0x14, 0x14, 0x08, // 249 + 0x11, 0x28, 0x14, 0x08, // 250 + 0x11, 0x3C, 0x14, 0x08, // 251 + 0x11, 0x50, 0x14, 0x08, // 252 + 0x11, 0x64, 0x13, 0x08, // 253 + 0x11, 0x77, 0x17, 0x09, // 254 + 0x11, 0x8E, 0x13, 0x08, // 255 + // Font Data: + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x5F, // 33 + 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, // 34 + 0x80, 0x08, 0x00, 0x80, 0x78, 0x00, 0xC0, 0x0F, 0x00, 0xB8, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x78, 0x00, 0xC0, 0x0F, 0x00, 0xB8, 0x08, 0x00, 0x80, 0x08, // 35 + 0x00, 0x00, 0x00, 0xE0, 0x10, 0x00, 0x10, 0x21, 0x00, 0x08, 0x41, 0x00, 0xFC, 0xFF, 0x00, 0x08, 0x42, 0x00, 0x10, 0x22, 0x00, 0x20, 0x1C, // 36 + 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x08, 0x01, 0x00, 0x08, 0x01, 0x00, 0x08, 0x61, 0x00, 0xF0, 0x18, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x01, 0x00, 0x30, 0x3C, 0x00, 0x08, 0x42, 0x00, 0x00, 0x42, 0x00, 0x00, 0x42, 0x00, 0x00, 0x3C, // 37 + 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x70, 0x22, 0x00, 0x88, 0x41, 0x00, 0x08, 0x43, 0x00, 0x88, 0x44, 0x00, 0x70, 0x28, 0x00, 0x00, 0x10, 0x00, 0x00, 0x28, 0x00, 0x00, 0x44, // 38 + 0x00, 0x00, 0x00, 0x78, // 39 + 0x00, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x70, 0xC0, 0x01, 0x08, 0x00, 0x02, // 40 + 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x70, 0xC0, 0x01, 0x80, 0x3F, // 41 + 0x10, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x38, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x10, // 42 + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, // 43 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, // 44 + 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, // 45 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // 46 + 0x00, 0x60, 0x00, 0x00, 0x1E, 0x00, 0xE0, 0x01, 0x00, 0x18, // 47 + 0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0xE0, 0x1F, // 48 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0xF8, 0x7F, // 49 + 0x00, 0x00, 0x00, 0x20, 0x40, 0x00, 0x10, 0x60, 0x00, 0x08, 0x50, 0x00, 0x08, 0x48, 0x00, 0x08, 0x44, 0x00, 0x10, 0x43, 0x00, 0xE0, 0x40, // 50 + 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x88, 0x41, 0x00, 0xF0, 0x22, 0x00, 0x00, 0x1C, // 51 + 0x00, 0x0C, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x09, 0x00, 0xC0, 0x08, 0x00, 0x20, 0x08, 0x00, 0x10, 0x08, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x08, // 52 + 0x00, 0x00, 0x00, 0xC0, 0x11, 0x00, 0xB8, 0x20, 0x00, 0x88, 0x40, 0x00, 0x88, 0x40, 0x00, 0x88, 0x40, 0x00, 0x08, 0x21, 0x00, 0x08, 0x1E, // 53 + 0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x10, 0x21, 0x00, 0x88, 0x40, 0x00, 0x88, 0x40, 0x00, 0x88, 0x40, 0x00, 0x10, 0x21, 0x00, 0x20, 0x1E, // 54 + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x78, 0x00, 0x08, 0x07, 0x00, 0xC8, 0x00, 0x00, 0x28, 0x00, 0x00, 0x18, // 55 + 0x00, 0x00, 0x00, 0x60, 0x1C, 0x00, 0x90, 0x22, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x90, 0x22, 0x00, 0x60, 0x1C, // 56 + 0x00, 0x00, 0x00, 0xE0, 0x11, 0x00, 0x10, 0x22, 0x00, 0x08, 0x44, 0x00, 0x08, 0x44, 0x00, 0x08, 0x44, 0x00, 0x10, 0x22, 0x00, 0xE0, 0x1F, // 57 + 0x00, 0x00, 0x00, 0x40, 0x40, // 58 + 0x00, 0x00, 0x00, 0x40, 0xC0, 0x01, // 59 + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x05, 0x00, 0x00, 0x05, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x40, 0x10, // 60 + 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, // 61 + 0x00, 0x00, 0x00, 0x40, 0x10, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x00, 0x05, 0x00, 0x00, 0x05, 0x00, 0x00, 0x02, // 62 + 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x5C, 0x00, 0x08, 0x02, 0x00, 0x10, 0x01, 0x00, 0xE0, // 63 + 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0xC0, 0x40, 0x00, 0x20, 0x80, 0x00, 0x10, 0x1E, 0x01, 0x10, 0x21, 0x01, 0x88, 0x40, 0x02, 0x48, 0x40, 0x02, 0x48, 0x40, 0x02, 0x48, 0x20, 0x02, 0x88, 0x7C, 0x02, 0xC8, 0x43, 0x02, 0x10, 0x40, 0x02, 0x10, 0x20, 0x01, 0x60, 0x10, 0x01, 0x80, 0x8F, // 64 + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x70, 0x04, 0x00, 0x08, 0x04, 0x00, 0x70, 0x04, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 65 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x90, 0x22, 0x00, 0x60, 0x1C, // 66 + 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, // 67 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 68 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x40, // 69 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, // 70 + 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x42, 0x00, 0x08, 0x42, 0x00, 0x10, 0x22, 0x00, 0x20, 0x12, 0x00, 0x00, 0x0E, // 71 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0xF8, 0x7F, // 72 + 0x00, 0x00, 0x00, 0xF8, 0x7F, // 73 + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0xF8, 0x3F, // 74 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x80, 0x03, 0x00, 0x40, 0x04, 0x00, 0x20, 0x18, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, // 75 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, // 76 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x03, 0x00, 0xC0, 0x00, 0x00, 0x30, 0x00, 0x00, 0xF8, 0x7F, // 77 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x10, 0x00, 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x04, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x7F, // 78 + 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 79 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x10, 0x01, 0x00, 0xE0, // 80 + 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x50, 0x00, 0x08, 0x50, 0x00, 0x10, 0x20, 0x00, 0x20, 0x70, 0x00, 0xC0, 0x4F, // 81 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x1A, 0x00, 0x10, 0x21, 0x00, 0xE0, 0x40, // 82 + 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x90, 0x20, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x42, 0x00, 0x08, 0x42, 0x00, 0x10, 0x22, 0x00, 0x20, 0x1C, // 83 + 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, // 84 + 0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x1F, // 85 + 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0xE0, 0x00, 0x00, 0x18, // 86 + 0x18, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x03, 0x00, 0x70, 0x00, 0x00, 0x08, 0x00, 0x00, 0x70, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1E, 0x00, 0xE0, 0x01, 0x00, 0x18, // 87 + 0x00, 0x40, 0x00, 0x08, 0x20, 0x00, 0x10, 0x10, 0x00, 0x60, 0x0C, 0x00, 0x80, 0x02, 0x00, 0x00, 0x01, 0x00, 0x80, 0x02, 0x00, 0x60, 0x0C, 0x00, 0x10, 0x10, 0x00, 0x08, 0x20, 0x00, 0x00, 0x40, // 88 + 0x08, 0x00, 0x00, 0x30, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x7E, 0x00, 0x80, 0x01, 0x00, 0x40, 0x00, 0x00, 0x30, 0x00, 0x00, 0x08, // 89 + 0x00, 0x40, 0x00, 0x08, 0x60, 0x00, 0x08, 0x58, 0x00, 0x08, 0x44, 0x00, 0x08, 0x43, 0x00, 0x88, 0x40, 0x00, 0x68, 0x40, 0x00, 0x18, 0x40, 0x00, 0x08, 0x40, // 90 + 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0x08, 0x00, 0x02, 0x08, 0x00, 0x02, // 91 + 0x18, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x60, // 92 + 0x08, 0x00, 0x02, 0x08, 0x00, 0x02, 0xF8, 0xFF, 0x03, // 93 + 0x00, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x30, 0x00, 0x00, 0x08, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x01, // 94 + 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, // 95 + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x10, // 96 + 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x7F, // 97 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 98 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, // 99 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0xF8, 0x7F, // 100 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x24, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x80, 0x24, 0x00, 0x00, 0x17, // 101 + 0x40, 0x00, 0x00, 0xF0, 0x7F, 0x00, 0x48, 0x00, 0x00, 0x48, // 102 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x01, 0x80, 0x20, 0x02, 0x40, 0x40, 0x02, 0x40, 0x40, 0x02, 0x40, 0x40, 0x02, 0x80, 0x20, 0x01, 0xC0, 0xFF, // 103 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x7F, // 104 + 0x00, 0x00, 0x00, 0xC8, 0x7F, // 105 + 0x00, 0x00, 0x02, 0xC8, 0xFF, 0x01, // 106 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0x06, 0x00, 0x00, 0x19, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, // 107 + 0x00, 0x00, 0x00, 0xF8, 0x7F, // 108 + 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x7F, // 109 + 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x7F, // 110 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 111 + 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 112 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0xC0, 0xFF, 0x03, // 113 + 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, // 114 + 0x00, 0x00, 0x00, 0x80, 0x23, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x80, 0x38, // 115 + 0x40, 0x00, 0x00, 0xF0, 0x7F, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, // 116 + 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xC0, 0x7F, // 117 + 0xC0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x03, 0x00, 0xC0, // 118 + 0xC0, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x03, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1F, 0x00, 0xC0, // 119 + 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1B, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, // 120 + 0xC0, 0x01, 0x00, 0x00, 0x06, 0x02, 0x00, 0x38, 0x02, 0x00, 0xE0, 0x01, 0x00, 0x38, 0x00, 0x00, 0x07, 0x00, 0xC0, // 121 + 0x40, 0x40, 0x00, 0x40, 0x60, 0x00, 0x40, 0x58, 0x00, 0x40, 0x44, 0x00, 0x40, 0x43, 0x00, 0xC0, 0x40, 0x00, 0x40, 0x40, // 122 + 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0xF0, 0xFB, 0x01, 0x08, 0x00, 0x02, 0x08, 0x00, 0x02, // 123 + 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x03, // 124 + 0x08, 0x00, 0x02, 0x08, 0x00, 0x02, 0xF0, 0xFB, 0x01, 0x00, 0x04, 0x00, 0x00, 0x04, // 125 + 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, // 126 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x42, 0x00, 0x00, 0x41, 0x00, 0x80, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, // 129 + 0x00, 0x01, 0x00, 0xF8, 0x7F, 0x00, 0x80, // 130 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x10, 0x00, 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x00, 0x08, 0x03, 0x00, 0x04, 0x04, 0x00, 0x02, 0x18, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x7F, // 131 + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x70, 0x04, 0x00, 0x08, 0x04, 0x00, 0x70, 0x04, 0x00, 0x80, 0x07, 0x00, 0x00, 0x9C, 0x01, 0x00, 0x60, 0x02, // 132 + 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x7F, 0x03, 0x00, 0x80, 0x04, // 133 + 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x09, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, // 134 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x50, 0x40, 0x00, 0x48, 0x40, 0x00, 0x80, 0x20, // 135 + 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, 0x00, 0x00, 0x48, 0x00, 0x00, 0x80, 0x7F, // 136 + 0x40, 0x40, 0x00, 0x40, 0x60, 0x00, 0x40, 0x58, 0x00, 0x50, 0x44, 0x00, 0x48, 0x43, 0x00, 0xC0, 0x40, 0x00, 0x40, 0x40, // 137 + 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x09, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 147 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x50, 0x40, 0x00, 0x48, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 148 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0xC1, 0x01, 0x08, 0x41, 0x02, 0x08, 0x41, 0x00, 0x08, 0x40, // 152 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x24, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x03, 0x40, 0xC4, 0x04, 0x80, 0x24, 0x00, 0x00, 0x17, // 153 + 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x90, 0x20, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x09, 0x42, 0x00, 0x08, 0x42, 0x00, 0x10, 0x22, 0x00, 0x20, 0x1C, // 154 + 0x00, 0x00, 0x00, 0x80, 0x23, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x50, 0x44, 0x00, 0x48, 0x44, 0x00, 0x80, 0x38, // 155 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x03, // 161 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x03, 0x40, 0xF0, 0x00, 0x40, 0x4E, 0x00, 0xC0, 0x41, 0x00, 0xB8, 0x20, 0x00, 0x00, 0x11, // 162 + 0x00, 0x41, 0x00, 0xE0, 0x31, 0x00, 0x10, 0x2F, 0x00, 0x08, 0x21, 0x00, 0x08, 0x21, 0x00, 0x08, 0x40, 0x00, 0x10, 0x40, 0x00, 0x20, 0x20, // 163 + 0x00, 0x00, 0x00, 0x40, 0x0B, 0x00, 0x80, 0x04, 0x00, 0x40, 0x08, 0x00, 0x40, 0x08, 0x00, 0x80, 0x04, 0x00, 0x40, 0x0B, // 164 + 0x08, 0x0A, 0x00, 0x10, 0x0A, 0x00, 0x60, 0x0A, 0x00, 0x80, 0x0B, 0x00, 0x00, 0x7E, 0x00, 0x80, 0x0B, 0x00, 0x60, 0x0A, 0x00, 0x10, 0x0A, 0x00, 0x08, 0x0A, // 165 + 0x00, 0x00, 0x00, 0xF8, 0xF1, 0x03, // 166 + 0x00, 0x86, 0x00, 0x70, 0x09, 0x01, 0xC8, 0x10, 0x02, 0x88, 0x10, 0x02, 0x08, 0x21, 0x02, 0x08, 0x61, 0x02, 0x30, 0xD2, 0x01, 0x00, 0x0C, // 167 + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, // 168 + 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0xC8, 0x47, 0x00, 0x28, 0x48, 0x00, 0x28, 0x48, 0x00, 0x28, 0x48, 0x00, 0x28, 0x48, 0x00, 0x48, 0x44, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 169 + 0xD0, 0x00, 0x00, 0x48, 0x01, 0x00, 0x28, 0x01, 0x00, 0x28, 0x01, 0x00, 0xF0, 0x01, // 170 + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1B, 0x00, 0x80, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1B, 0x00, 0x80, 0x20, // 171 + 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x0F, // 172 + 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, // 173 + 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0xE8, 0x4F, 0x00, 0x28, 0x41, 0x00, 0x28, 0x41, 0x00, 0x28, 0x43, 0x00, 0x28, 0x45, 0x00, 0xC8, 0x48, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 174 + 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, // 175 + 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x48, 0x00, 0x00, 0x48, 0x00, 0x00, 0x30, // 176 + 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x41, 0x00, 0x00, 0x41, 0x00, 0xE0, 0x4F, 0x00, 0x00, 0x41, 0x00, 0x00, 0x41, 0x00, 0x00, 0x41, // 177 + 0x10, 0x01, 0x00, 0x88, 0x01, 0x00, 0x48, 0x01, 0x00, 0x48, 0x01, 0x00, 0x30, 0x01, // 178 + 0x90, 0x00, 0x00, 0x08, 0x01, 0x00, 0x08, 0x01, 0x00, 0x28, 0x01, 0x00, 0xD8, // 179 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x08, // 180 + 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xC0, 0x7F, // 181 + 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x01, 0x00, 0xF8, 0x01, 0x00, 0xF8, 0xFF, 0x03, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0x08, // 182 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // 183 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x80, 0x02, 0x00, 0x00, 0x03, // 184 + 0x00, 0x40, 0x00, 0x08, 0x60, 0x00, 0x08, 0x58, 0x00, 0x08, 0x44, 0x00, 0x0A, 0x43, 0x00, 0x89, 0x40, 0x00, 0x68, 0x40, 0x00, 0x18, 0x40, 0x00, 0x08, 0x40, // 185 + 0xF0, 0x00, 0x00, 0x08, 0x01, 0x00, 0x08, 0x01, 0x00, 0x08, 0x01, 0x00, 0xF0, // 186 + 0x00, 0x40, 0x00, 0x08, 0x60, 0x00, 0x08, 0x58, 0x00, 0x08, 0x44, 0x00, 0x0A, 0x43, 0x00, 0x88, 0x40, 0x00, 0x68, 0x40, 0x00, 0x18, 0x40, 0x00, 0x08, 0x40, // 187 + 0x40, 0x40, 0x00, 0x40, 0x60, 0x00, 0x40, 0x58, 0x00, 0x50, 0x44, 0x00, 0x40, 0x43, 0x00, 0xC0, 0x40, 0x00, 0x40, 0x40, // 188 + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x08, 0x40, 0x00, 0xF8, 0x31, 0x00, 0x00, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x60, 0x44, 0x00, 0x10, 0x62, 0x00, 0x08, 0x52, 0x00, 0x00, 0x52, 0x00, 0x00, 0x4C, // 189 + 0x90, 0x00, 0x00, 0x08, 0x01, 0x00, 0x08, 0x41, 0x00, 0x28, 0x21, 0x00, 0xD8, 0x18, 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x40, 0x30, 0x00, 0x30, 0x28, 0x00, 0x08, 0x24, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x20, // 190 + 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x10, 0x01, 0x00, 0x08, 0x02, 0x40, 0x07, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0xC0, // 191 + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x71, 0x04, 0x00, 0x0A, 0x04, 0x00, 0x70, 0x04, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 192 + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x70, 0x04, 0x00, 0x0A, 0x04, 0x00, 0x71, 0x04, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 193 + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x72, 0x04, 0x00, 0x09, 0x04, 0x00, 0x71, 0x04, 0x00, 0x82, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 194 + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x72, 0x04, 0x00, 0x09, 0x04, 0x00, 0x72, 0x04, 0x00, 0x81, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 195 + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x72, 0x04, 0x00, 0x08, 0x04, 0x00, 0x72, 0x04, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 196 + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x07, 0x00, 0x7E, 0x04, 0x00, 0x0A, 0x04, 0x00, 0x7E, 0x04, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, // 197 + 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x06, 0x00, 0x80, 0x05, 0x00, 0x60, 0x04, 0x00, 0x18, 0x04, 0x00, 0x08, 0x04, 0x00, 0x08, 0x04, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, // 198 + 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x02, 0x08, 0xC0, 0x02, 0x08, 0x40, 0x03, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, // 199 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x09, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x40, // 200 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x09, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x40, // 201 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x09, 0x41, 0x00, 0x09, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x40, // 202 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x08, 0x41, 0x00, 0x0A, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x41, 0x00, 0x08, 0x40, // 203 + 0x01, 0x00, 0x00, 0xFA, 0x7F, // 204 + 0x00, 0x00, 0x00, 0xFA, 0x7F, 0x00, 0x01, // 205 + 0x02, 0x00, 0x00, 0xF9, 0x7F, 0x00, 0x01, 0x00, 0x00, 0x02, // 206 + 0x02, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x02, // 207 + 0x00, 0x02, 0x00, 0xF8, 0x7F, 0x00, 0x08, 0x42, 0x00, 0x08, 0x42, 0x00, 0x08, 0x42, 0x00, 0x08, 0x42, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 208 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x10, 0x00, 0x00, 0x60, 0x00, 0x00, 0x82, 0x00, 0x00, 0x01, 0x03, 0x00, 0x02, 0x04, 0x00, 0x01, 0x18, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x7F, // 209 + 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x09, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 210 + 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x09, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 211 + 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x0A, 0x40, 0x00, 0x09, 0x40, 0x00, 0x09, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 212 + 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x0A, 0x40, 0x00, 0x09, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x09, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 213 + 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x20, 0x10, 0x00, 0x10, 0x20, 0x00, 0x08, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x08, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x10, 0x20, 0x00, 0x20, 0x10, 0x00, 0xC0, 0x0F, // 214 + 0x00, 0x00, 0x00, 0x40, 0x10, 0x00, 0x80, 0x08, 0x00, 0x00, 0x05, 0x00, 0x00, 0x07, 0x00, 0x00, 0x05, 0x00, 0x80, 0x08, 0x00, 0x40, 0x10, // 215 + 0x00, 0x00, 0x00, 0xC0, 0x4F, 0x00, 0x20, 0x30, 0x00, 0x10, 0x30, 0x00, 0x08, 0x4C, 0x00, 0x08, 0x42, 0x00, 0x08, 0x41, 0x00, 0xC8, 0x40, 0x00, 0x30, 0x20, 0x00, 0x30, 0x10, 0x00, 0xC8, 0x0F, // 216 + 0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x01, 0x40, 0x00, 0x02, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x1F, // 217 + 0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x02, 0x40, 0x00, 0x01, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x1F, // 218 + 0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x02, 0x40, 0x00, 0x01, 0x40, 0x00, 0x01, 0x40, 0x00, 0x02, 0x40, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x1F, // 219 + 0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x02, 0x40, 0x00, 0x00, 0x40, 0x00, 0x02, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xF8, 0x1F, // 220 + 0x08, 0x00, 0x00, 0x30, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x01, 0x00, 0x02, 0x7E, 0x00, 0x81, 0x01, 0x00, 0x40, 0x00, 0x00, 0x30, 0x00, 0x00, 0x08, // 221 + 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x40, 0x08, 0x00, 0x80, 0x07, // 222 + 0x00, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x10, 0x00, 0x00, 0x08, 0x20, 0x00, 0x88, 0x43, 0x00, 0x70, 0x42, 0x00, 0x00, 0x44, 0x00, 0x00, 0x38, // 223 + 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x40, 0x44, 0x00, 0x48, 0x44, 0x00, 0x50, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x7F, // 224 + 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x40, 0x44, 0x00, 0x50, 0x44, 0x00, 0x48, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x7F, // 225 + 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x50, 0x44, 0x00, 0x48, 0x44, 0x00, 0x48, 0x42, 0x00, 0x50, 0x22, 0x00, 0x80, 0x7F, // 226 + 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x50, 0x44, 0x00, 0x48, 0x44, 0x00, 0x50, 0x42, 0x00, 0x48, 0x22, 0x00, 0x80, 0x7F, // 227 + 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x50, 0x44, 0x00, 0x40, 0x44, 0x00, 0x50, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x7F, // 228 + 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x5C, 0x44, 0x00, 0x54, 0x44, 0x00, 0x5C, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x7F, // 229 + 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x80, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x3F, 0x00, 0x80, 0x24, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x40, 0x44, 0x00, 0x80, 0x24, 0x00, 0x00, 0x17, // 230 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x02, 0x40, 0xC0, 0x02, 0x40, 0x40, 0x03, 0x80, 0x20, // 231 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x24, 0x00, 0x48, 0x44, 0x00, 0x50, 0x44, 0x00, 0x40, 0x44, 0x00, 0x80, 0x24, 0x00, 0x00, 0x17, // 232 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x24, 0x00, 0x40, 0x44, 0x00, 0x50, 0x44, 0x00, 0x48, 0x44, 0x00, 0x80, 0x24, 0x00, 0x00, 0x17, // 233 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x24, 0x00, 0x50, 0x44, 0x00, 0x48, 0x44, 0x00, 0x48, 0x44, 0x00, 0x90, 0x24, 0x00, 0x00, 0x17, // 234 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x24, 0x00, 0x50, 0x44, 0x00, 0x40, 0x44, 0x00, 0x50, 0x44, 0x00, 0x80, 0x24, 0x00, 0x00, 0x17, // 235 + 0x08, 0x00, 0x00, 0xD0, 0x7F, // 236 + 0x00, 0x00, 0x00, 0xD0, 0x7F, 0x00, 0x08, // 237 + 0x10, 0x00, 0x00, 0xC8, 0x7F, 0x00, 0x08, 0x00, 0x00, 0x10, // 238 + 0x10, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x10, // 239 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0xA0, 0x20, 0x00, 0x68, 0x40, 0x00, 0x58, 0x40, 0x00, 0x70, 0x40, 0x00, 0xE8, 0x20, 0x00, 0x00, 0x1F, // 240 + 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x90, 0x00, 0x00, 0x48, 0x00, 0x00, 0x50, 0x00, 0x00, 0x48, 0x00, 0x00, 0x80, 0x7F, // 241 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x48, 0x40, 0x00, 0x50, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 242 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x50, 0x40, 0x00, 0x48, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 243 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x50, 0x40, 0x00, 0x48, 0x40, 0x00, 0x48, 0x40, 0x00, 0x90, 0x20, 0x00, 0x00, 0x1F, // 244 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x50, 0x40, 0x00, 0x48, 0x40, 0x00, 0x50, 0x40, 0x00, 0x88, 0x20, 0x00, 0x00, 0x1F, // 245 + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x80, 0x20, 0x00, 0x50, 0x40, 0x00, 0x40, 0x40, 0x00, 0x50, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 246 + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x80, 0x0A, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, // 247 + 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x80, 0x30, 0x00, 0x40, 0x48, 0x00, 0x40, 0x44, 0x00, 0x40, 0x42, 0x00, 0x80, 0x21, 0x00, 0x40, 0x1F, // 248 + 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x40, 0x00, 0x00, 0x20, 0x00, 0xC0, 0x7F, // 249 + 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x10, 0x40, 0x00, 0x08, 0x20, 0x00, 0xC0, 0x7F, // 250 + 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x10, 0x40, 0x00, 0x08, 0x40, 0x00, 0x08, 0x40, 0x00, 0x10, 0x20, 0x00, 0xC0, 0x7F, // 251 + 0x00, 0x00, 0x00, 0xD0, 0x3F, 0x00, 0x00, 0x40, 0x00, 0x10, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xC0, 0x7F, // 252 + 0xC0, 0x01, 0x00, 0x00, 0x06, 0x02, 0x00, 0x38, 0x02, 0x10, 0xE0, 0x01, 0x08, 0x38, 0x00, 0x00, 0x07, 0x00, 0xC0, // 253 + 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0x80, 0x20, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x80, 0x20, 0x00, 0x00, 0x1F, // 254 + 0xC0, 0x01, 0x00, 0x00, 0x06, 0x02, 0x10, 0x38, 0x02, 0x00, 0xE0, 0x01, 0x10, 0x38, 0x00, 0x00, 0x07, 0x00, 0xC0, // 255 }; const uint8_t ArialMT_Plain_24_PL[] PROGMEM = { -0x18, // Width: 24 -0x1C, // Height: 28 -0x20, // First char: 32 -0xE0, // Number of chars: 224 -// Jump Table: -0xFF, 0xFF, 0x00, 0x06, // 32 -0x00, 0x00, 0x13, 0x06, // 33 -0x00, 0x13, 0x1A, 0x08, // 34 -0x00, 0x2D, 0x33, 0x0E, // 35 -0x00, 0x60, 0x2F, 0x0D, // 36 -0x00, 0x8F, 0x4F, 0x15, // 37 -0x00, 0xDE, 0x3B, 0x10, // 38 -0x01, 0x19, 0x0A, 0x04, // 39 -0x01, 0x23, 0x1C, 0x08, // 40 -0x01, 0x3F, 0x1B, 0x08, // 41 -0x01, 0x5A, 0x21, 0x0A, // 42 -0x01, 0x7B, 0x32, 0x0E, // 43 -0x01, 0xAD, 0x10, 0x05, // 44 -0x01, 0xBD, 0x1B, 0x08, // 45 -0x01, 0xD8, 0x0F, 0x05, // 46 -0x01, 0xE7, 0x19, 0x08, // 47 -0x02, 0x00, 0x2F, 0x0D, // 48 -0x02, 0x2F, 0x23, 0x0A, // 49 -0x02, 0x52, 0x2F, 0x0D, // 50 -0x02, 0x81, 0x2F, 0x0D, // 51 -0x02, 0xB0, 0x2F, 0x0D, // 52 -0x02, 0xDF, 0x2F, 0x0D, // 53 -0x03, 0x0E, 0x2F, 0x0D, // 54 -0x03, 0x3D, 0x2D, 0x0D, // 55 -0x03, 0x6A, 0x2F, 0x0D, // 56 -0x03, 0x99, 0x2F, 0x0D, // 57 -0x03, 0xC8, 0x0F, 0x05, // 58 -0x03, 0xD7, 0x10, 0x05, // 59 -0x03, 0xE7, 0x2F, 0x0D, // 60 -0x04, 0x16, 0x2F, 0x0D, // 61 -0x04, 0x45, 0x2E, 0x0D, // 62 -0x04, 0x73, 0x2E, 0x0D, // 63 -0x04, 0xA1, 0x5B, 0x18, // 64 -0x04, 0xFC, 0x3B, 0x10, // 65 -0x05, 0x37, 0x3B, 0x10, // 66 -0x05, 0x72, 0x3F, 0x11, // 67 -0x05, 0xB1, 0x3F, 0x11, // 68 -0x05, 0xF0, 0x3B, 0x10, // 69 -0x06, 0x2B, 0x35, 0x0F, // 70 -0x06, 0x60, 0x43, 0x12, // 71 -0x06, 0xA3, 0x3B, 0x10, // 72 -0x06, 0xDE, 0x0F, 0x05, // 73 -0x06, 0xED, 0x27, 0x0B, // 74 -0x07, 0x14, 0x3F, 0x11, // 75 -0x07, 0x53, 0x2F, 0x0D, // 76 -0x07, 0x82, 0x43, 0x12, // 77 -0x07, 0xC5, 0x3B, 0x10, // 78 -0x08, 0x00, 0x47, 0x13, // 79 -0x08, 0x47, 0x3A, 0x10, // 80 -0x08, 0x81, 0x47, 0x13, // 81 -0x08, 0xC8, 0x3F, 0x11, // 82 -0x09, 0x07, 0x3B, 0x10, // 83 -0x09, 0x42, 0x35, 0x0F, // 84 -0x09, 0x77, 0x3B, 0x10, // 85 -0x09, 0xB2, 0x39, 0x10, // 86 -0x09, 0xEB, 0x59, 0x18, // 87 -0x0A, 0x44, 0x3B, 0x10, // 88 -0x0A, 0x7F, 0x3D, 0x11, // 89 -0x0A, 0xBC, 0x37, 0x0F, // 90 -0x0A, 0xF3, 0x14, 0x06, // 91 -0x0B, 0x07, 0x1B, 0x08, // 92 -0x0B, 0x22, 0x18, 0x07, // 93 -0x0B, 0x3A, 0x2A, 0x0C, // 94 -0x0B, 0x64, 0x34, 0x0E, // 95 -0x0B, 0x98, 0x11, 0x06, // 96 -0x0B, 0xA9, 0x2F, 0x0D, // 97 -0x0B, 0xD8, 0x33, 0x0E, // 98 -0x0C, 0x0B, 0x2B, 0x0C, // 99 -0x0C, 0x36, 0x2F, 0x0D, // 100 -0x0C, 0x65, 0x2F, 0x0D, // 101 -0x0C, 0x94, 0x1A, 0x08, // 102 -0x0C, 0xAE, 0x2F, 0x0D, // 103 -0x0C, 0xDD, 0x2F, 0x0D, // 104 -0x0D, 0x0C, 0x0F, 0x05, // 105 -0x0D, 0x1B, 0x10, 0x05, // 106 -0x0D, 0x2B, 0x2F, 0x0D, // 107 -0x0D, 0x5A, 0x0F, 0x05, // 108 -0x0D, 0x69, 0x47, 0x13, // 109 -0x0D, 0xB0, 0x2F, 0x0D, // 110 -0x0D, 0xDF, 0x2F, 0x0D, // 111 -0x0E, 0x0E, 0x33, 0x0E, // 112 -0x0E, 0x41, 0x30, 0x0D, // 113 -0x0E, 0x71, 0x1E, 0x09, // 114 -0x0E, 0x8F, 0x2B, 0x0C, // 115 -0x0E, 0xBA, 0x1B, 0x08, // 116 -0x0E, 0xD5, 0x2F, 0x0D, // 117 -0x0F, 0x04, 0x2A, 0x0C, // 118 -0x0F, 0x2E, 0x42, 0x12, // 119 -0x0F, 0x70, 0x2B, 0x0C, // 120 -0x0F, 0x9B, 0x2A, 0x0C, // 121 -0x0F, 0xC5, 0x2B, 0x0C, // 122 -0x0F, 0xF0, 0x1C, 0x08, // 123 -0x10, 0x0C, 0x10, 0x05, // 124 -0x10, 0x1C, 0x1B, 0x08, // 125 -0x10, 0x37, 0x32, 0x0E, // 126 -0xFF, 0xFF, 0x00, 0x18, // 127 -0xFF, 0xFF, 0x00, 0x18, // 128 -0x10, 0x69, 0x2F, 0x0D, // 129 -0x10, 0x98, 0x16, 0x07, // 130 -0x10, 0xAE, 0x3B, 0x10, // 131 -0x10, 0xE9, 0x40, 0x11, // 132 -0x11, 0x29, 0x34, 0x0E, // 133 -0x11, 0x5D, 0x3F, 0x11, // 134 -0x11, 0x9C, 0x2B, 0x0C, // 135 -0x11, 0xC7, 0x2F, 0x0D, // 136 -0x11, 0xF6, 0x2B, 0x0C, // 137 -0xFF, 0xFF, 0x00, 0x18, // 138 -0xFF, 0xFF, 0x00, 0x18, // 139 -0xFF, 0xFF, 0x00, 0x18, // 140 -0xFF, 0xFF, 0x00, 0x18, // 141 -0xFF, 0xFF, 0x00, 0x18, // 142 -0xFF, 0xFF, 0x00, 0x18, // 143 -0xFF, 0xFF, 0x00, 0x18, // 144 -0xFF, 0xFF, 0x00, 0x18, // 145 -0xFF, 0xFF, 0x00, 0x18, // 146 -0x12, 0x21, 0x47, 0x13, // 147 -0x12, 0x68, 0x2F, 0x0D, // 148 -0xFF, 0xFF, 0x00, 0x18, // 149 -0xFF, 0xFF, 0x00, 0x18, // 150 -0xFF, 0xFF, 0x00, 0x18, // 151 -0x12, 0x97, 0x3B, 0x10, // 152 -0x12, 0xD2, 0x2F, 0x0D, // 153 -0x13, 0x01, 0x3B, 0x10, // 154 -0x13, 0x3C, 0x2B, 0x0C, // 155 -0xFF, 0xFF, 0x00, 0x18, // 156 -0xFF, 0xFF, 0x00, 0x18, // 157 -0xFF, 0xFF, 0x00, 0x18, // 158 -0xFF, 0xFF, 0x00, 0x18, // 159 -0xFF, 0xFF, 0x00, 0x18, // 160 -0x13, 0x67, 0x14, 0x06, // 161 -0x13, 0x7B, 0x2B, 0x0C, // 162 -0x13, 0xA6, 0x2F, 0x0D, // 163 -0x13, 0xD5, 0x33, 0x0E, // 164 -0x14, 0x08, 0x31, 0x0E, // 165 -0x14, 0x39, 0x10, 0x05, // 166 -0x14, 0x49, 0x2F, 0x0D, // 167 -0x14, 0x78, 0x19, 0x08, // 168 -0x14, 0x91, 0x46, 0x13, // 169 -0x14, 0xD7, 0x1A, 0x08, // 170 -0x14, 0xF1, 0x27, 0x0B, // 171 -0x15, 0x18, 0x2F, 0x0D, // 172 -0x15, 0x47, 0x1B, 0x08, // 173 -0x15, 0x62, 0x46, 0x13, // 174 -0x15, 0xA8, 0x31, 0x0E, // 175 -0x15, 0xD9, 0x1E, 0x09, // 176 -0x15, 0xF7, 0x33, 0x0E, // 177 -0x16, 0x2A, 0x1A, 0x08, // 178 -0x16, 0x44, 0x1A, 0x08, // 179 -0x16, 0x5E, 0x19, 0x08, // 180 -0x16, 0x77, 0x2F, 0x0D, // 181 -0x16, 0xA6, 0x31, 0x0E, // 182 -0x16, 0xD7, 0x12, 0x06, // 183 -0x16, 0xE9, 0x18, 0x07, // 184 -0x17, 0x01, 0x37, 0x0F, // 185 -0x17, 0x38, 0x1E, 0x09, // 186 -0x17, 0x56, 0x37, 0x0F, // 187 -0x17, 0x8D, 0x2B, 0x0C, // 188 -0x17, 0xB8, 0x4B, 0x14, // 189 -0x18, 0x03, 0x4B, 0x14, // 190 -0x18, 0x4E, 0x33, 0x0E, // 191 -0x18, 0x81, 0x3B, 0x10, // 192 -0x18, 0xBC, 0x3B, 0x10, // 193 -0x18, 0xF7, 0x3B, 0x10, // 194 -0x19, 0x32, 0x3B, 0x10, // 195 -0x19, 0x6D, 0x3B, 0x10, // 196 -0x19, 0xA8, 0x3B, 0x10, // 197 -0x19, 0xE3, 0x5B, 0x18, // 198 -0x1A, 0x3E, 0x3F, 0x11, // 199 -0x1A, 0x7D, 0x3B, 0x10, // 200 -0x1A, 0xB8, 0x3B, 0x10, // 201 -0x1A, 0xF3, 0x3B, 0x10, // 202 -0x1B, 0x2E, 0x3B, 0x10, // 203 -0x1B, 0x69, 0x11, 0x06, // 204 -0x1B, 0x7A, 0x11, 0x06, // 205 -0x1B, 0x8B, 0x15, 0x07, // 206 -0x1B, 0xA0, 0x15, 0x07, // 207 -0x1B, 0xB5, 0x3F, 0x11, // 208 -0x1B, 0xF4, 0x3B, 0x10, // 209 -0x1C, 0x2F, 0x47, 0x13, // 210 -0x1C, 0x76, 0x47, 0x13, // 211 -0x1C, 0xBD, 0x47, 0x13, // 212 -0x1D, 0x04, 0x47, 0x13, // 213 -0x1D, 0x4B, 0x47, 0x13, // 214 -0x1D, 0x92, 0x2B, 0x0C, // 215 -0x1D, 0xBD, 0x47, 0x13, // 216 -0x1E, 0x04, 0x3B, 0x10, // 217 -0x1E, 0x3F, 0x3B, 0x10, // 218 -0x1E, 0x7A, 0x3B, 0x10, // 219 -0x1E, 0xB5, 0x3B, 0x10, // 220 -0x1E, 0xF0, 0x3D, 0x11, // 221 -0x1F, 0x2D, 0x3A, 0x10, // 222 -0x1F, 0x67, 0x37, 0x0F, // 223 -0x1F, 0x9E, 0x2F, 0x0D, // 224 -0x1F, 0xCD, 0x2F, 0x0D, // 225 -0x1F, 0xFC, 0x2F, 0x0D, // 226 -0x20, 0x2B, 0x2F, 0x0D, // 227 -0x20, 0x5A, 0x2F, 0x0D, // 228 -0x20, 0x89, 0x2F, 0x0D, // 229 -0x20, 0xB8, 0x53, 0x16, // 230 -0x21, 0x0B, 0x2B, 0x0C, // 231 -0x21, 0x36, 0x2F, 0x0D, // 232 -0x21, 0x65, 0x2F, 0x0D, // 233 -0x21, 0x94, 0x2F, 0x0D, // 234 -0x21, 0xC3, 0x2F, 0x0D, // 235 -0x21, 0xF2, 0x11, 0x06, // 236 -0x22, 0x03, 0x11, 0x06, // 237 -0x22, 0x14, 0x15, 0x07, // 238 -0x22, 0x29, 0x15, 0x07, // 239 -0x22, 0x3E, 0x2F, 0x0D, // 240 -0x22, 0x6D, 0x2F, 0x0D, // 241 -0x22, 0x9C, 0x2F, 0x0D, // 242 -0x22, 0xCB, 0x2F, 0x0D, // 243 -0x22, 0xFA, 0x2F, 0x0D, // 244 -0x23, 0x29, 0x2F, 0x0D, // 245 -0x23, 0x58, 0x2F, 0x0D, // 246 -0x23, 0x87, 0x32, 0x0E, // 247 -0x23, 0xB9, 0x33, 0x0E, // 248 -0x23, 0xEC, 0x2F, 0x0D, // 249 -0x24, 0x1B, 0x2F, 0x0D, // 250 -0x24, 0x4A, 0x2F, 0x0D, // 251 -0x24, 0x79, 0x2F, 0x0D, // 252 -0x24, 0xA8, 0x2A, 0x0C, // 253 -0x24, 0xD2, 0x2F, 0x0D, // 254 -0x25, 0x01, 0x2A, 0x0C, // 255 -// Font Data: -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x33, 0x00, 0xE0, 0xFF, 0x33, // 33 -0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xE0, 0x07, // 34 -0x00, 0x0C, 0x03, 0x00, 0x00, 0x0C, 0x33, 0x00, 0x00, 0x0C, 0x3F, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0x80, 0xFF, 0x03, 0x00, 0xE0, 0x0F, 0x03, 0x00, 0x60, 0x0C, 0x33, 0x00, 0x00, 0x0C, 0x3F, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0x80, 0xFF, 0x03, 0x00, 0xE0, 0x0F, 0x03, 0x00, 0x60, 0x0C, 0x03, 0x00, 0x00, 0x0C, 0x03, // 35 -0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x06, 0x00, 0xC0, 0x0F, 0x1E, 0x00, 0xC0, 0x18, 0x1C, 0x00, 0x60, 0x18, 0x38, 0x00, 0x60, 0x30, 0x30, 0x00, 0xF0, 0xFF, 0xFF, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x60, 0x38, 0x00, 0xC0, 0x60, 0x18, 0x00, 0xC0, 0xC1, 0x1F, 0x00, 0x00, 0x81, 0x07, // 36 -0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x20, 0x20, 0x20, 0x00, 0x60, 0x30, 0x38, 0x00, 0xC0, 0x1F, 0x1E, 0x00, 0x80, 0x8F, 0x0F, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x8F, 0x0F, 0x00, 0xC0, 0xC3, 0x1F, 0x00, 0xE0, 0x60, 0x30, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x80, 0x0F, // 37 -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x80, 0xE3, 0x1C, 0x00, 0xC0, 0x77, 0x38, 0x00, 0xE0, 0x3C, 0x30, 0x00, 0x60, 0x38, 0x30, 0x00, 0x60, 0x78, 0x30, 0x00, 0xE0, 0xEC, 0x38, 0x00, 0xC0, 0x8F, 0x1B, 0x00, 0x80, 0x03, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0xC0, 0x38, 0x00, 0x00, 0x00, 0x10, // 38 -0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xE0, 0x07, // 39 -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x80, 0x0F, 0xF0, 0x01, 0xC0, 0x01, 0x80, 0x03, 0x60, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x04, // 40 -0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, 0x60, 0x00, 0x00, 0x06, 0xC0, 0x01, 0x80, 0x03, 0x80, 0x0F, 0xF0, 0x01, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xF0, 0x0F, // 41 -0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x80, // 42 -0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, // 43 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0xF0, 0x01, // 44 -0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, // 45 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, // 46 -0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x80, 0x3F, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x60, // 47 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x38, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0x03, // 48 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 49 -0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x00, 0xC0, 0x03, 0x38, 0x00, 0xC0, 0x00, 0x3C, 0x00, 0x60, 0x00, 0x36, 0x00, 0x60, 0x00, 0x33, 0x00, 0x60, 0x80, 0x31, 0x00, 0x60, 0xC0, 0x30, 0x00, 0x60, 0x60, 0x30, 0x00, 0xC0, 0x30, 0x30, 0x00, 0xC0, 0x1F, 0x30, 0x00, 0x00, 0x0F, 0x30, // 50 -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0xC0, 0x01, 0x0E, 0x00, 0xC0, 0x00, 0x1C, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0xC0, 0x38, 0x30, 0x00, 0xC0, 0x6F, 0x18, 0x00, 0x80, 0xC7, 0x0F, 0x00, 0x00, 0x80, 0x07, // 51 -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x3C, 0x03, 0x00, 0x00, 0x0E, 0x03, 0x00, 0x80, 0x07, 0x03, 0x00, 0xC0, 0x01, 0x03, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, // 52 -0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x06, 0x00, 0x80, 0x3F, 0x0E, 0x00, 0xE0, 0x1F, 0x18, 0x00, 0x60, 0x08, 0x30, 0x00, 0x60, 0x0C, 0x30, 0x00, 0x60, 0x0C, 0x30, 0x00, 0x60, 0x0C, 0x30, 0x00, 0x60, 0x0C, 0x30, 0x00, 0x60, 0x18, 0x1C, 0x00, 0x60, 0xF0, 0x0F, 0x00, 0x00, 0xE0, 0x03, // 53 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0xC0, 0x63, 0x1C, 0x00, 0xC0, 0x30, 0x38, 0x00, 0x60, 0x18, 0x30, 0x00, 0x60, 0x18, 0x30, 0x00, 0x60, 0x18, 0x30, 0x00, 0x60, 0x18, 0x30, 0x00, 0xE0, 0x30, 0x18, 0x00, 0xC0, 0xF1, 0x0F, 0x00, 0x80, 0xC1, 0x07, // 54 -0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x3C, 0x00, 0x60, 0x80, 0x3F, 0x00, 0x60, 0xE0, 0x03, 0x00, 0x60, 0x78, 0x00, 0x00, 0x60, 0x0E, 0x00, 0x00, 0x60, 0x03, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x60, // 55 -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x80, 0xC7, 0x1F, 0x00, 0xC0, 0x6F, 0x18, 0x00, 0xE0, 0x38, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0xE0, 0x38, 0x30, 0x00, 0xC0, 0x6F, 0x18, 0x00, 0x80, 0xC7, 0x1F, 0x00, 0x00, 0x80, 0x07, // 56 -0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x0C, 0x00, 0x80, 0x7F, 0x1C, 0x00, 0xC0, 0x61, 0x38, 0x00, 0x60, 0xC0, 0x30, 0x00, 0x60, 0xC0, 0x30, 0x00, 0x60, 0xC0, 0x30, 0x00, 0x60, 0xC0, 0x30, 0x00, 0x60, 0x60, 0x18, 0x00, 0xC0, 0x31, 0x1E, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0x01, // 57 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, // 58 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x30, 0x03, 0x00, 0x06, 0xF0, 0x01, // 59 -0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x03, 0x06, // 60 -0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, // 61 -0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x20, // 62 -0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x60, 0x80, 0x33, 0x00, 0x60, 0xC0, 0x33, 0x00, 0x60, 0xE0, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0xC0, 0x38, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x07, // 63 -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x1E, 0xF0, 0x00, 0x00, 0x07, 0xC0, 0x01, 0x80, 0xC3, 0x87, 0x01, 0xC0, 0xF1, 0x9F, 0x03, 0xC0, 0x38, 0x18, 0x03, 0xC0, 0x0C, 0x30, 0x03, 0x60, 0x0E, 0x30, 0x06, 0x60, 0x06, 0x30, 0x06, 0x60, 0x06, 0x18, 0x06, 0x60, 0x06, 0x0C, 0x06, 0x60, 0x0C, 0x1E, 0x06, 0x60, 0xF8, 0x3F, 0x06, 0xE0, 0xFE, 0x31, 0x06, 0xC0, 0x0E, 0x30, 0x06, 0xC0, 0x01, 0x18, 0x03, 0x80, 0x03, 0x1C, 0x03, 0x00, 0x07, 0x8F, 0x01, 0x00, 0xFE, 0x87, 0x01, 0x00, 0xF8, 0xC1, 0x00, 0x00, 0x00, 0x40, // 64 -0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x80, 0x8F, 0x01, 0x00, 0xE0, 0x83, 0x01, 0x00, 0x60, 0x80, 0x01, 0x00, 0xE0, 0x83, 0x01, 0x00, 0x80, 0x8F, 0x01, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 65 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0xC0, 0x78, 0x30, 0x00, 0xC0, 0xFF, 0x18, 0x00, 0x80, 0xC7, 0x1F, 0x00, 0x00, 0x80, 0x07, // 66 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x03, 0x0F, 0x00, 0x00, 0x02, 0x03, // 67 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x03, 0x0E, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 68 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 69 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, // 70 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x18, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x60, 0x30, 0x00, 0x60, 0x60, 0x30, 0x00, 0xE0, 0x60, 0x38, 0x00, 0xC0, 0x60, 0x18, 0x00, 0xC0, 0x61, 0x18, 0x00, 0x80, 0xE3, 0x0F, 0x00, 0x00, 0xE2, 0x0F, // 71 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 72 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 73 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x38, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, // 74 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xE7, 0x01, 0x00, 0x80, 0x83, 0x07, 0x00, 0xC0, 0x01, 0x0F, 0x00, 0xE0, 0x00, 0x1E, 0x00, 0x60, 0x00, 0x38, 0x00, 0x20, 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, // 75 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, // 76 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 77 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 78 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 79 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0xC0, 0x30, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x0F, // 80 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x0C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x18, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x36, 0x00, 0x60, 0x00, 0x36, 0x00, 0xE0, 0x00, 0x3C, 0x00, 0xC0, 0x00, 0x1C, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x3F, 0x00, 0x00, 0xFF, 0x77, 0x00, 0x00, 0xFC, 0x61, // 81 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x70, 0x00, 0x00, 0x60, 0xF0, 0x00, 0x00, 0x60, 0xF0, 0x03, 0x00, 0x60, 0xB0, 0x07, 0x00, 0xE0, 0x18, 0x1F, 0x00, 0xC0, 0x1F, 0x3C, 0x00, 0x80, 0x0F, 0x30, 0x00, 0x00, 0x00, 0x20, // 82 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x0F, 0x00, 0xC0, 0x1F, 0x1C, 0x00, 0xC0, 0x18, 0x18, 0x00, 0x60, 0x38, 0x38, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x70, 0x30, 0x00, 0xC0, 0x60, 0x18, 0x00, 0xC0, 0xE1, 0x18, 0x00, 0x80, 0xC3, 0x0F, 0x00, 0x00, 0x83, 0x07, // 83 -0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, // 84 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x03, // 85 -0x20, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x20, // 86 -0x60, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x80, 0x1F, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x80, 0xFF, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x60, // 87 -0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, 0x60, 0x00, 0x3C, 0x00, 0xE0, 0x01, 0x1E, 0x00, 0xC0, 0x83, 0x07, 0x00, 0x00, 0xCF, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xCF, 0x03, 0x00, 0xC0, 0x03, 0x07, 0x00, 0xE0, 0x01, 0x1E, 0x00, 0x60, 0x00, 0x3C, 0x00, 0x20, 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, // 88 -0x20, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, // 89 -0x00, 0x00, 0x30, 0x00, 0x60, 0x00, 0x38, 0x00, 0x60, 0x00, 0x3C, 0x00, 0x60, 0x00, 0x37, 0x00, 0x60, 0x80, 0x33, 0x00, 0x60, 0xC0, 0x31, 0x00, 0x60, 0xE0, 0x30, 0x00, 0x60, 0x38, 0x30, 0x00, 0x60, 0x1C, 0x30, 0x00, 0x60, 0x0E, 0x30, 0x00, 0x60, 0x07, 0x30, 0x00, 0xE0, 0x01, 0x30, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, // 90 -0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0x07, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, // 91 -0x60, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 92 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0xE0, 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0x07, // 93 -0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x20, // 94 -0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, // 95 -0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x80, // 96 -0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x00, 0x8C, 0x39, 0x00, 0x00, 0x86, 0x31, 0x00, 0x00, 0x86, 0x31, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x18, 0x00, 0x00, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 97 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xE0, 0x03, // 98 -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x18, 0x0C, // 99 -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, 0x18, 0x0C, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 100 -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xDC, 0x1C, 0x00, 0x00, 0xCE, 0x38, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xCE, 0x38, 0x00, 0x00, 0xDC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xF0, 0x04, // 101 -0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xC0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x06, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x60, 0x06, // 102 -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x83, 0x01, 0x00, 0xF8, 0x8F, 0x03, 0x00, 0x1C, 0x1C, 0x07, 0x00, 0x0E, 0x38, 0x06, 0x00, 0x06, 0x30, 0x06, 0x00, 0x06, 0x30, 0x06, 0x00, 0x06, 0x30, 0x06, 0x00, 0x0C, 0x18, 0x07, 0x00, 0x18, 0x8C, 0x03, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0xFE, 0xFF, // 103 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0xF8, 0x3F, // 104 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFE, 0x3F, 0x00, 0x60, 0xFE, 0x3F, // 105 -0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x60, 0xFE, 0xFF, 0x07, 0x60, 0xFE, 0xFF, 0x03, // 106 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x98, 0x07, 0x00, 0x00, 0x0C, 0x0E, 0x00, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x02, 0x30, 0x00, 0x00, 0x00, 0x20, // 107 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 108 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0xF8, 0x3F, // 109 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0xF8, 0x3F, // 110 -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 111 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x18, 0x0C, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xE0, 0x03, // 112 -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0xFE, 0xFF, 0x07, // 113 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, // 114 -0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0C, 0x00, 0x00, 0x7C, 0x1C, 0x00, 0x00, 0xEE, 0x38, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x31, 0x00, 0x00, 0xC6, 0x31, 0x00, 0x00, 0x8E, 0x39, 0x00, 0x00, 0x9C, 0x1F, 0x00, 0x00, 0x18, 0x0F, // 115 -0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xC0, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, // 116 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, // 117 -0x00, 0x06, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x06, // 118 -0x00, 0x0E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x0E, // 119 -0x00, 0x02, 0x20, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x1E, 0x3C, 0x00, 0x00, 0x38, 0x0E, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x38, 0x0E, 0x00, 0x00, 0x1C, 0x3C, 0x00, 0x00, 0x0E, 0x30, 0x00, 0x00, 0x02, 0x20, // 120 -0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x06, 0x00, 0xF0, 0x01, 0x06, 0x00, 0x80, 0x0F, 0x07, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x06, // 121 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x06, 0x3E, 0x00, 0x00, 0x06, 0x37, 0x00, 0x00, 0xC6, 0x33, 0x00, 0x00, 0xE6, 0x30, 0x00, 0x00, 0x76, 0x30, 0x00, 0x00, 0x3E, 0x30, 0x00, 0x00, 0x1E, 0x30, 0x00, 0x00, 0x06, 0x30, // 122 -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x7F, 0xFE, 0x03, 0xE0, 0x3F, 0xFC, 0x07, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, // 123 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x0F, 0xE0, 0xFF, 0xFF, 0x0F, // 124 -0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0xE0, 0x3F, 0xFC, 0x07, 0xC0, 0x7F, 0xFF, 0x03, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x80, 0x01, // 125 -0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x60, // 126 -0x00, 0x60, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x0C, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, // 129 -0x00, 0x60, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x06, // 130 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x10, 0x3C, 0x00, 0x00, 0x1C, 0x70, 0x00, 0x00, 0x0C, 0xE0, 0x01, 0x00, 0x04, 0x80, 0x03, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 131 -0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x80, 0x8F, 0x01, 0x00, 0xE0, 0x83, 0x01, 0x00, 0x60, 0x80, 0x01, 0x00, 0xE0, 0x83, 0x01, 0x00, 0x80, 0x8F, 0x01, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xB0, 0x03, 0x00, 0x00, 0x00, 0x03, // 132 -0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x00, 0x8C, 0x39, 0x00, 0x00, 0x86, 0x31, 0x00, 0x00, 0x86, 0x31, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x18, 0x00, 0x00, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x00, 0x03, // 133 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x68, 0x00, 0x30, 0x00, 0x6E, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0x62, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x03, 0x0F, 0x00, 0x00, 0x02, 0x03, // 134 -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x80, 0x06, 0x30, 0x00, 0xE0, 0x06, 0x30, 0x00, 0x60, 0x06, 0x30, 0x00, 0x20, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x18, 0x0C, // 135 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x80, 0x06, 0x00, 0x00, 0xE0, 0x06, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x20, 0x0E, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0xF8, 0x3F, // 136 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x06, 0x3E, 0x00, 0x00, 0x06, 0x37, 0x00, 0x80, 0xC6, 0x33, 0x00, 0xE0, 0xE6, 0x30, 0x00, 0x60, 0x76, 0x30, 0x00, 0x20, 0x3E, 0x30, 0x00, 0x00, 0x1E, 0x30, 0x00, 0x00, 0x06, 0x30, // 137 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x68, 0x00, 0x30, 0x00, 0x6E, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0xE2, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 147 -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x06, 0x30, 0x00, 0x80, 0x06, 0x30, 0x00, 0xE0, 0x06, 0x30, 0x00, 0x60, 0x0E, 0x38, 0x00, 0x20, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 148 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0xF0, 0x01, 0x60, 0x30, 0xB0, 0x03, 0x60, 0x30, 0x30, 0x03, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 152 -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xDC, 0x1C, 0x00, 0x00, 0xCE, 0x38, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0xF0, 0x01, 0x00, 0xC6, 0xB0, 0x03, 0x00, 0xCE, 0x38, 0x03, 0x00, 0xDC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xF0, 0x04, // 153 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x0F, 0x00, 0xC0, 0x1F, 0x1C, 0x00, 0xC0, 0x18, 0x18, 0x00, 0x60, 0x38, 0x38, 0x00, 0x60, 0x30, 0x30, 0x00, 0x68, 0x30, 0x30, 0x00, 0x6E, 0x30, 0x30, 0x00, 0x66, 0x30, 0x30, 0x00, 0x62, 0x70, 0x30, 0x00, 0xC0, 0x60, 0x18, 0x00, 0xC0, 0xE1, 0x18, 0x00, 0x80, 0xC3, 0x0F, 0x00, 0x00, 0x83, 0x07, // 154 -0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0C, 0x00, 0x00, 0x7C, 0x1C, 0x00, 0x00, 0xEE, 0x38, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x80, 0xC6, 0x30, 0x00, 0xE0, 0xC6, 0x31, 0x00, 0x60, 0xC6, 0x31, 0x00, 0x20, 0x8E, 0x39, 0x00, 0x00, 0x9C, 0x1F, 0x00, 0x00, 0x18, 0x0F, // 155 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE6, 0xFF, 0x07, 0x00, 0xE6, 0xFF, 0x07, // 161 -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x9C, 0x07, 0x00, 0x0E, 0x78, 0x00, 0x00, 0x06, 0x3F, 0x00, 0x00, 0xF6, 0x30, 0x00, 0x00, 0x0E, 0x30, 0x00, 0xE0, 0x0D, 0x1C, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x10, 0x06, // 162 -0x00, 0x60, 0x10, 0x00, 0x00, 0x60, 0x38, 0x00, 0x00, 0x7F, 0x1C, 0x00, 0xC0, 0xFF, 0x1F, 0x00, 0xE0, 0xE0, 0x19, 0x00, 0x60, 0x60, 0x18, 0x00, 0x60, 0x60, 0x18, 0x00, 0x60, 0x60, 0x30, 0x00, 0xE0, 0x00, 0x30, 0x00, 0xC0, 0x01, 0x30, 0x00, 0x80, 0x01, 0x38, 0x00, 0x00, 0x00, 0x10, // 163 -0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0xF7, 0x0E, 0x00, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0xFE, 0x07, 0x00, 0x00, 0xF7, 0x0E, 0x00, 0x00, 0x02, 0x04, // 164 -0xE0, 0x60, 0x06, 0x00, 0xC0, 0x61, 0x06, 0x00, 0x80, 0x67, 0x06, 0x00, 0x00, 0x7E, 0x06, 0x00, 0x00, 0x7C, 0x06, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x7C, 0x06, 0x00, 0x00, 0x7E, 0x06, 0x00, 0x80, 0x67, 0x06, 0x00, 0xC0, 0x61, 0x06, 0x00, 0xE0, 0x60, 0x06, 0x00, 0x20, // 165 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x7F, 0xF8, 0x0F, 0xE0, 0x7F, 0xF8, 0x0F, // 166 -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x80, 0xF3, 0xC1, 0x00, 0xC0, 0x1F, 0xC3, 0x03, 0xE0, 0x0C, 0x07, 0x03, 0x60, 0x1C, 0x06, 0x06, 0x60, 0x18, 0x0C, 0x06, 0x60, 0x30, 0x1C, 0x06, 0xE0, 0x70, 0x38, 0x07, 0xC0, 0xE1, 0xF4, 0x03, 0x80, 0xC1, 0xE7, 0x01, 0x00, 0x80, 0x03, // 167 -0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, // 168 -0x00, 0xF8, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x07, 0x07, 0x00, 0x80, 0x01, 0x0C, 0x00, 0xC0, 0x79, 0x1C, 0x00, 0xC0, 0xFE, 0x19, 0x00, 0x60, 0x86, 0x31, 0x00, 0x60, 0x03, 0x33, 0x00, 0x60, 0x03, 0x33, 0x00, 0x60, 0x03, 0x33, 0x00, 0x60, 0x03, 0x33, 0x00, 0x60, 0x87, 0x33, 0x00, 0xC0, 0x86, 0x19, 0x00, 0xC0, 0x85, 0x1C, 0x00, 0x80, 0x01, 0x0C, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0xF8, // 169 -0x00, 0x00, 0x00, 0x00, 0xC0, 0x1C, 0x00, 0x00, 0xE0, 0x3E, 0x00, 0x00, 0x60, 0x32, 0x00, 0x00, 0x60, 0x32, 0x00, 0x00, 0xE0, 0x3F, 0x00, 0x00, 0xC0, 0x3F, // 170 -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x78, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x84, 0x10, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x78, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x04, 0x10, // 171 -0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFC, 0x01, // 172 -0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, // 173 -0x00, 0xF8, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x07, 0x07, 0x00, 0x80, 0x01, 0x0C, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0xFE, 0x1B, 0x00, 0x60, 0xFE, 0x33, 0x00, 0x60, 0x66, 0x30, 0x00, 0x60, 0x66, 0x30, 0x00, 0x60, 0xE6, 0x30, 0x00, 0x60, 0xFE, 0x31, 0x00, 0x60, 0x3C, 0x33, 0x00, 0xC0, 0x00, 0x1A, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x01, 0x0C, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0xF8, // 174 -0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, // 175 -0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x80, 0x03, // 176 -0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, // 177 -0x40, 0x20, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x20, 0x38, 0x00, 0x00, 0x20, 0x2C, 0x00, 0x00, 0x20, 0x26, 0x00, 0x00, 0xE0, 0x23, 0x00, 0x00, 0xC0, 0x21, // 178 -0x40, 0x10, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x20, 0x22, 0x00, 0x00, 0x20, 0x22, 0x00, 0x00, 0xE0, 0x3D, 0x00, 0x00, 0xC0, 0x1D, // 179 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, // 180 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, // 181 -0x00, 0x0F, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0x07, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0x07, 0x60, 0x00, 0x00, 0x00, 0x60, // 182 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, // 183 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xC0, 0x02, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x01, // 184 -0x00, 0x00, 0x30, 0x00, 0x60, 0x00, 0x38, 0x00, 0x60, 0x00, 0x3C, 0x00, 0x60, 0x00, 0x37, 0x00, 0x60, 0x80, 0x33, 0x00, 0x60, 0xC0, 0x31, 0x00, 0x68, 0xE0, 0x30, 0x00, 0x6E, 0x38, 0x30, 0x00, 0x66, 0x1C, 0x30, 0x00, 0x62, 0x0E, 0x30, 0x00, 0x60, 0x07, 0x30, 0x00, 0xE0, 0x01, 0x30, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, // 185 -0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0xE0, 0x38, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0xE0, 0x38, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x80, 0x0F, // 186 -0x00, 0x00, 0x30, 0x00, 0x60, 0x00, 0x38, 0x00, 0x60, 0x00, 0x3C, 0x00, 0x60, 0x00, 0x37, 0x00, 0x60, 0x80, 0x33, 0x00, 0x60, 0xC0, 0x31, 0x00, 0x6C, 0xE0, 0x30, 0x00, 0x6C, 0x38, 0x30, 0x00, 0x60, 0x1C, 0x30, 0x00, 0x60, 0x0E, 0x30, 0x00, 0x60, 0x07, 0x30, 0x00, 0xE0, 0x01, 0x30, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, // 187 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x06, 0x3E, 0x00, 0x00, 0x06, 0x37, 0x00, 0xC0, 0xC6, 0x33, 0x00, 0xC0, 0xE6, 0x30, 0x00, 0x00, 0x76, 0x30, 0x00, 0x00, 0x3E, 0x30, 0x00, 0x00, 0x1E, 0x30, 0x00, 0x00, 0x06, 0x30, // 188 -0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0xE0, 0x3F, 0x30, 0x00, 0xE0, 0x3F, 0x1C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x4E, 0x20, 0x00, 0x00, 0x67, 0x30, 0x00, 0xC0, 0x21, 0x38, 0x00, 0xE0, 0x20, 0x2C, 0x00, 0x60, 0x20, 0x26, 0x00, 0x00, 0xE0, 0x27, 0x00, 0x00, 0xC0, 0x21, // 189 -0x40, 0x10, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x20, 0x22, 0x20, 0x00, 0x20, 0x22, 0x30, 0x00, 0xE0, 0x3D, 0x38, 0x00, 0xC0, 0x1D, 0x0E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0E, 0x0C, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x80, 0x83, 0x0B, 0x00, 0xE0, 0xC0, 0x08, 0x00, 0x60, 0xE0, 0x3F, 0x00, 0x20, 0xE0, 0x3F, 0x00, 0x00, 0x00, 0x08, // 190 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x1E, 0x03, 0x00, 0x00, 0x07, 0x07, 0x00, 0xE6, 0x03, 0x06, 0x00, 0xE6, 0x01, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xC0, // 191 -0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x82, 0x8F, 0x01, 0x00, 0xE6, 0x83, 0x01, 0x00, 0x6E, 0x80, 0x01, 0x00, 0xE8, 0x83, 0x01, 0x00, 0x80, 0x8F, 0x01, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 192 -0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x80, 0x8F, 0x01, 0x00, 0xE8, 0x83, 0x01, 0x00, 0x6E, 0x80, 0x01, 0x00, 0xE6, 0x83, 0x01, 0x00, 0x82, 0x8F, 0x01, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 193 -0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x88, 0x8F, 0x01, 0x00, 0xEC, 0x83, 0x01, 0x00, 0x66, 0x80, 0x01, 0x00, 0xE6, 0x83, 0x01, 0x00, 0x8C, 0x8F, 0x01, 0x00, 0x08, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 194 -0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x0C, 0xFE, 0x01, 0x00, 0x8E, 0x8F, 0x01, 0x00, 0xE6, 0x83, 0x01, 0x00, 0x66, 0x80, 0x01, 0x00, 0xEC, 0x83, 0x01, 0x00, 0x8C, 0x8F, 0x01, 0x00, 0x0E, 0xFE, 0x01, 0x00, 0x06, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 195 -0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x8C, 0x8F, 0x01, 0x00, 0xEC, 0x83, 0x01, 0x00, 0x60, 0x80, 0x01, 0x00, 0xE0, 0x83, 0x01, 0x00, 0x8C, 0x8F, 0x01, 0x00, 0x0C, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 196 -0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x9C, 0x8F, 0x01, 0x00, 0xE2, 0x83, 0x01, 0x00, 0x62, 0x80, 0x01, 0x00, 0xE2, 0x83, 0x01, 0x00, 0x9C, 0x8F, 0x01, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 197 -0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0xBC, 0x01, 0x00, 0x00, 0x8F, 0x01, 0x00, 0xC0, 0x83, 0x01, 0x00, 0xE0, 0x80, 0x01, 0x00, 0x60, 0x80, 0x01, 0x00, 0x60, 0x80, 0x01, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 198 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x60, 0x00, 0x30, 0x02, 0x60, 0x00, 0x30, 0x02, 0x60, 0x00, 0xF0, 0x02, 0x60, 0x00, 0xB0, 0x03, 0x60, 0x00, 0x30, 0x01, 0x60, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x03, 0x0F, 0x00, 0x00, 0x02, 0x03, // 199 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x62, 0x30, 0x30, 0x00, 0x66, 0x30, 0x30, 0x00, 0x6E, 0x30, 0x30, 0x00, 0x68, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 200 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x68, 0x30, 0x30, 0x00, 0x6E, 0x30, 0x30, 0x00, 0x66, 0x30, 0x30, 0x00, 0x62, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 201 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x68, 0x30, 0x30, 0x00, 0x6C, 0x30, 0x30, 0x00, 0x66, 0x30, 0x30, 0x00, 0x66, 0x30, 0x30, 0x00, 0x6C, 0x30, 0x30, 0x00, 0x68, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 202 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x6C, 0x30, 0x30, 0x00, 0x6C, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x6C, 0x30, 0x30, 0x00, 0x6C, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 203 -0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xE6, 0xFF, 0x3F, 0x00, 0xEE, 0xFF, 0x3F, 0x00, 0x08, // 204 -0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xEE, 0xFF, 0x3F, 0x00, 0xE6, 0xFF, 0x3F, 0x00, 0x02, // 205 -0x08, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xE6, 0xFF, 0x3F, 0x00, 0xE6, 0xFF, 0x3F, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x08, // 206 -0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, // 207 -0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x03, 0x0E, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 208 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x8C, 0x03, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x06, 0x70, 0x00, 0x00, 0x0C, 0xE0, 0x01, 0x00, 0x0C, 0x80, 0x03, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 209 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x62, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0x6E, 0x00, 0x30, 0x00, 0x68, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 210 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x60, 0x00, 0x30, 0x00, 0x68, 0x00, 0x30, 0x00, 0x6E, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0x62, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 211 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x68, 0x00, 0x30, 0x00, 0x6C, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0x6C, 0x00, 0x30, 0x00, 0xE8, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 212 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xCC, 0x00, 0x18, 0x00, 0xEE, 0x00, 0x38, 0x00, 0x66, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0x6C, 0x00, 0x30, 0x00, 0x6C, 0x00, 0x30, 0x00, 0x6E, 0x00, 0x30, 0x00, 0xE6, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 213 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x6C, 0x00, 0x30, 0x00, 0x6C, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x6C, 0x00, 0x30, 0x00, 0xEC, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 214 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x8E, 0x03, 0x00, 0x00, 0xDC, 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xDC, 0x01, 0x00, 0x00, 0x8E, 0x03, 0x00, 0x00, 0x06, 0x03, // 215 -0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x21, 0x00, 0x00, 0xFF, 0x77, 0x00, 0x80, 0x07, 0x3F, 0x00, 0xC0, 0x01, 0x1E, 0x00, 0xC0, 0x00, 0x1F, 0x00, 0xE0, 0x80, 0x3B, 0x00, 0x60, 0xC0, 0x31, 0x00, 0x60, 0xE0, 0x30, 0x00, 0x60, 0x70, 0x30, 0x00, 0x60, 0x38, 0x30, 0x00, 0x60, 0x1C, 0x30, 0x00, 0xE0, 0x0E, 0x38, 0x00, 0xC0, 0x07, 0x18, 0x00, 0xC0, 0x03, 0x1C, 0x00, 0xE0, 0x07, 0x0F, 0x00, 0x70, 0xFF, 0x07, 0x00, 0x20, 0xFC, 0x01, // 216 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x02, 0x00, 0x30, 0x00, 0x06, 0x00, 0x30, 0x00, 0x0E, 0x00, 0x30, 0x00, 0x08, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x03, // 217 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08, 0x00, 0x30, 0x00, 0x0E, 0x00, 0x30, 0x00, 0x06, 0x00, 0x30, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x03, // 218 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x08, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x06, 0x00, 0x30, 0x00, 0x06, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x08, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x03, // 219 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x03, // 220 -0x20, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x08, 0xF0, 0x3F, 0x00, 0x0E, 0xF0, 0x3F, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x02, 0x1E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, // 221 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x86, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xF8, // 222 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x3F, 0x00, 0xC0, 0xFF, 0x3F, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x60, 0x00, 0x08, 0x00, 0x60, 0x00, 0x1C, 0x00, 0x60, 0x00, 0x38, 0x00, 0xE0, 0x78, 0x30, 0x00, 0xC0, 0x7F, 0x30, 0x00, 0x80, 0xC7, 0x30, 0x00, 0x00, 0x80, 0x39, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x0F, // 223 -0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x00, 0x8C, 0x39, 0x00, 0x20, 0x86, 0x31, 0x00, 0x60, 0x86, 0x31, 0x00, 0xE0, 0xC6, 0x30, 0x00, 0x80, 0xC6, 0x18, 0x00, 0x00, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 224 -0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x00, 0x8C, 0x39, 0x00, 0x00, 0x86, 0x31, 0x00, 0x80, 0x86, 0x31, 0x00, 0xE0, 0xC6, 0x30, 0x00, 0x60, 0xC6, 0x18, 0x00, 0x20, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 225 -0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x80, 0x8C, 0x39, 0x00, 0xC0, 0x86, 0x31, 0x00, 0x60, 0x86, 0x31, 0x00, 0x60, 0xC6, 0x30, 0x00, 0xC0, 0xC6, 0x18, 0x00, 0x80, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 226 -0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0xC0, 0x1C, 0x1F, 0x00, 0xE0, 0x8C, 0x39, 0x00, 0x60, 0x86, 0x31, 0x00, 0x60, 0x86, 0x31, 0x00, 0xC0, 0xC6, 0x30, 0x00, 0xC0, 0xC6, 0x18, 0x00, 0xE0, 0xCE, 0x0C, 0x00, 0x60, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 227 -0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0xC0, 0x8C, 0x39, 0x00, 0xC0, 0x86, 0x31, 0x00, 0x00, 0x86, 0x31, 0x00, 0x00, 0xC6, 0x30, 0x00, 0xC0, 0xC6, 0x18, 0x00, 0xC0, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 228 -0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x00, 0x8C, 0x39, 0x00, 0x70, 0x86, 0x31, 0x00, 0x88, 0x86, 0x31, 0x00, 0x88, 0xC6, 0x30, 0x00, 0x88, 0xC6, 0x18, 0x00, 0x70, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 229 -0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0F, 0x00, 0x00, 0x9C, 0x1F, 0x00, 0x00, 0xCC, 0x39, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0x66, 0x18, 0x00, 0x00, 0x6E, 0x1C, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xCC, 0x1C, 0x00, 0x00, 0xCE, 0x38, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xCC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xE0, 0x04, // 230 -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x02, 0x00, 0x06, 0x30, 0x02, 0x00, 0x06, 0xF0, 0x02, 0x00, 0x06, 0xB0, 0x03, 0x00, 0x0E, 0x38, 0x01, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x18, 0x0C, // 231 -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xDC, 0x1C, 0x00, 0x20, 0xCE, 0x38, 0x00, 0x60, 0xC6, 0x30, 0x00, 0xE0, 0xC6, 0x30, 0x00, 0x80, 0xC6, 0x30, 0x00, 0x00, 0xCE, 0x38, 0x00, 0x00, 0xDC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xF0, 0x04, // 232 -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xDC, 0x1C, 0x00, 0x00, 0xCE, 0x38, 0x00, 0x80, 0xC6, 0x30, 0x00, 0xE0, 0xC6, 0x30, 0x00, 0x60, 0xC6, 0x30, 0x00, 0x20, 0xCE, 0x38, 0x00, 0x00, 0xDC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xF0, 0x04, // 233 -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xDC, 0x1C, 0x00, 0x80, 0xCE, 0x38, 0x00, 0xC0, 0xC6, 0x30, 0x00, 0x60, 0xC6, 0x30, 0x00, 0x60, 0xC6, 0x30, 0x00, 0xC0, 0xCE, 0x38, 0x00, 0x80, 0xDC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xF0, 0x04, // 234 -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xDC, 0x1C, 0x00, 0xC0, 0xCE, 0x38, 0x00, 0xC0, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0xC0, 0xCE, 0x38, 0x00, 0xC0, 0xDC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xF0, 0x04, // 235 -0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x60, 0xFE, 0x3F, 0x00, 0xE0, 0xFE, 0x3F, 0x00, 0x80, // 236 -0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xE0, 0xFE, 0x3F, 0x00, 0x60, 0xFE, 0x3F, 0x00, 0x20, // 237 -0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x60, 0xFE, 0x3F, 0x00, 0x60, 0xFE, 0x3F, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x80, // 238 -0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, // 239 -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1D, 0x1C, 0x00, 0xA0, 0x0F, 0x38, 0x00, 0xA0, 0x06, 0x30, 0x00, 0xE0, 0x06, 0x30, 0x00, 0xC0, 0x06, 0x30, 0x00, 0xC0, 0x0F, 0x38, 0x00, 0x20, 0x1F, 0x1C, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0x00, 0xE0, 0x07, // 240 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0xC0, 0xFE, 0x3F, 0x00, 0xE0, 0x18, 0x00, 0x00, 0x60, 0x0C, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0xC0, 0x06, 0x00, 0x00, 0xC0, 0x06, 0x00, 0x00, 0xE0, 0x0E, 0x00, 0x00, 0x60, 0xFC, 0x3F, 0x00, 0x00, 0xF8, 0x3F, // 241 -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x20, 0x0E, 0x38, 0x00, 0x60, 0x06, 0x30, 0x00, 0xE0, 0x06, 0x30, 0x00, 0x80, 0x06, 0x30, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 242 -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x80, 0x06, 0x30, 0x00, 0xE0, 0x06, 0x30, 0x00, 0x60, 0x06, 0x30, 0x00, 0x20, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 243 -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x80, 0x0E, 0x38, 0x00, 0xC0, 0x06, 0x30, 0x00, 0x60, 0x06, 0x30, 0x00, 0x60, 0x06, 0x30, 0x00, 0xC0, 0x0E, 0x38, 0x00, 0x80, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 244 -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0xC0, 0x1C, 0x1C, 0x00, 0xE0, 0x0E, 0x38, 0x00, 0x60, 0x06, 0x30, 0x00, 0x60, 0x06, 0x30, 0x00, 0xC0, 0x06, 0x30, 0x00, 0xC0, 0x0E, 0x38, 0x00, 0xE0, 0x1C, 0x1C, 0x00, 0x60, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 245 -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0xC0, 0x0E, 0x38, 0x00, 0xC0, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0xC0, 0x0E, 0x38, 0x00, 0xC0, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 246 -0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xB6, 0x01, 0x00, 0x00, 0xB6, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, // 247 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x67, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x3F, 0x00, 0x00, 0x86, 0x33, 0x00, 0x00, 0xE6, 0x31, 0x00, 0x00, 0x76, 0x30, 0x00, 0x00, 0x3E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xF3, 0x07, // 248 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x20, 0x00, 0x38, 0x00, 0x60, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x80, 0x00, 0x30, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, // 249 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x80, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x60, 0x00, 0x18, 0x00, 0x20, 0x00, 0x0C, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, // 250 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x80, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x80, 0x00, 0x0C, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, // 251 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0xC0, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x00, 0x0C, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, // 252 -0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x06, 0x00, 0xF0, 0x01, 0x06, 0x00, 0x80, 0x0F, 0x07, 0x80, 0x00, 0xFE, 0x03, 0xE0, 0x00, 0xFC, 0x00, 0x60, 0xC0, 0x1F, 0x00, 0x20, 0xF8, 0x03, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x06, // 253 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x1C, 0x18, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x03, // 254 -0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x06, 0xC0, 0xF0, 0x01, 0x06, 0xC0, 0x80, 0x0F, 0x07, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0xFC, 0x00, 0xC0, 0xC0, 0x1F, 0x00, 0xC0, 0xF8, 0x03, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x06, // 255 + 0x18, // Width: 24 + 0x1C, // Height: 28 + 0x20, // First char: 32 + 0xE0, // Number of chars: 224 + // Jump Table: + 0xFF, 0xFF, 0x00, 0x06, // 32 + 0x00, 0x00, 0x13, 0x06, // 33 + 0x00, 0x13, 0x1A, 0x08, // 34 + 0x00, 0x2D, 0x33, 0x0E, // 35 + 0x00, 0x60, 0x2F, 0x0D, // 36 + 0x00, 0x8F, 0x4F, 0x15, // 37 + 0x00, 0xDE, 0x3B, 0x10, // 38 + 0x01, 0x19, 0x0A, 0x04, // 39 + 0x01, 0x23, 0x1C, 0x08, // 40 + 0x01, 0x3F, 0x1B, 0x08, // 41 + 0x01, 0x5A, 0x21, 0x0A, // 42 + 0x01, 0x7B, 0x32, 0x0E, // 43 + 0x01, 0xAD, 0x10, 0x05, // 44 + 0x01, 0xBD, 0x1B, 0x08, // 45 + 0x01, 0xD8, 0x0F, 0x05, // 46 + 0x01, 0xE7, 0x19, 0x08, // 47 + 0x02, 0x00, 0x2F, 0x0D, // 48 + 0x02, 0x2F, 0x23, 0x0A, // 49 + 0x02, 0x52, 0x2F, 0x0D, // 50 + 0x02, 0x81, 0x2F, 0x0D, // 51 + 0x02, 0xB0, 0x2F, 0x0D, // 52 + 0x02, 0xDF, 0x2F, 0x0D, // 53 + 0x03, 0x0E, 0x2F, 0x0D, // 54 + 0x03, 0x3D, 0x2D, 0x0D, // 55 + 0x03, 0x6A, 0x2F, 0x0D, // 56 + 0x03, 0x99, 0x2F, 0x0D, // 57 + 0x03, 0xC8, 0x0F, 0x05, // 58 + 0x03, 0xD7, 0x10, 0x05, // 59 + 0x03, 0xE7, 0x2F, 0x0D, // 60 + 0x04, 0x16, 0x2F, 0x0D, // 61 + 0x04, 0x45, 0x2E, 0x0D, // 62 + 0x04, 0x73, 0x2E, 0x0D, // 63 + 0x04, 0xA1, 0x5B, 0x18, // 64 + 0x04, 0xFC, 0x3B, 0x10, // 65 + 0x05, 0x37, 0x3B, 0x10, // 66 + 0x05, 0x72, 0x3F, 0x11, // 67 + 0x05, 0xB1, 0x3F, 0x11, // 68 + 0x05, 0xF0, 0x3B, 0x10, // 69 + 0x06, 0x2B, 0x35, 0x0F, // 70 + 0x06, 0x60, 0x43, 0x12, // 71 + 0x06, 0xA3, 0x3B, 0x10, // 72 + 0x06, 0xDE, 0x0F, 0x05, // 73 + 0x06, 0xED, 0x27, 0x0B, // 74 + 0x07, 0x14, 0x3F, 0x11, // 75 + 0x07, 0x53, 0x2F, 0x0D, // 76 + 0x07, 0x82, 0x43, 0x12, // 77 + 0x07, 0xC5, 0x3B, 0x10, // 78 + 0x08, 0x00, 0x47, 0x13, // 79 + 0x08, 0x47, 0x3A, 0x10, // 80 + 0x08, 0x81, 0x47, 0x13, // 81 + 0x08, 0xC8, 0x3F, 0x11, // 82 + 0x09, 0x07, 0x3B, 0x10, // 83 + 0x09, 0x42, 0x35, 0x0F, // 84 + 0x09, 0x77, 0x3B, 0x10, // 85 + 0x09, 0xB2, 0x39, 0x10, // 86 + 0x09, 0xEB, 0x59, 0x18, // 87 + 0x0A, 0x44, 0x3B, 0x10, // 88 + 0x0A, 0x7F, 0x3D, 0x11, // 89 + 0x0A, 0xBC, 0x37, 0x0F, // 90 + 0x0A, 0xF3, 0x14, 0x06, // 91 + 0x0B, 0x07, 0x1B, 0x08, // 92 + 0x0B, 0x22, 0x18, 0x07, // 93 + 0x0B, 0x3A, 0x2A, 0x0C, // 94 + 0x0B, 0x64, 0x34, 0x0E, // 95 + 0x0B, 0x98, 0x11, 0x06, // 96 + 0x0B, 0xA9, 0x2F, 0x0D, // 97 + 0x0B, 0xD8, 0x33, 0x0E, // 98 + 0x0C, 0x0B, 0x2B, 0x0C, // 99 + 0x0C, 0x36, 0x2F, 0x0D, // 100 + 0x0C, 0x65, 0x2F, 0x0D, // 101 + 0x0C, 0x94, 0x1A, 0x08, // 102 + 0x0C, 0xAE, 0x2F, 0x0D, // 103 + 0x0C, 0xDD, 0x2F, 0x0D, // 104 + 0x0D, 0x0C, 0x0F, 0x05, // 105 + 0x0D, 0x1B, 0x10, 0x05, // 106 + 0x0D, 0x2B, 0x2F, 0x0D, // 107 + 0x0D, 0x5A, 0x0F, 0x05, // 108 + 0x0D, 0x69, 0x47, 0x13, // 109 + 0x0D, 0xB0, 0x2F, 0x0D, // 110 + 0x0D, 0xDF, 0x2F, 0x0D, // 111 + 0x0E, 0x0E, 0x33, 0x0E, // 112 + 0x0E, 0x41, 0x30, 0x0D, // 113 + 0x0E, 0x71, 0x1E, 0x09, // 114 + 0x0E, 0x8F, 0x2B, 0x0C, // 115 + 0x0E, 0xBA, 0x1B, 0x08, // 116 + 0x0E, 0xD5, 0x2F, 0x0D, // 117 + 0x0F, 0x04, 0x2A, 0x0C, // 118 + 0x0F, 0x2E, 0x42, 0x12, // 119 + 0x0F, 0x70, 0x2B, 0x0C, // 120 + 0x0F, 0x9B, 0x2A, 0x0C, // 121 + 0x0F, 0xC5, 0x2B, 0x0C, // 122 + 0x0F, 0xF0, 0x1C, 0x08, // 123 + 0x10, 0x0C, 0x10, 0x05, // 124 + 0x10, 0x1C, 0x1B, 0x08, // 125 + 0x10, 0x37, 0x32, 0x0E, // 126 + 0xFF, 0xFF, 0x00, 0x18, // 127 + 0xFF, 0xFF, 0x00, 0x18, // 128 + 0x10, 0x69, 0x2F, 0x0D, // 129 + 0x10, 0x98, 0x16, 0x07, // 130 + 0x10, 0xAE, 0x3B, 0x10, // 131 + 0x10, 0xE9, 0x40, 0x11, // 132 + 0x11, 0x29, 0x34, 0x0E, // 133 + 0x11, 0x5D, 0x3F, 0x11, // 134 + 0x11, 0x9C, 0x2B, 0x0C, // 135 + 0x11, 0xC7, 0x2F, 0x0D, // 136 + 0x11, 0xF6, 0x2B, 0x0C, // 137 + 0xFF, 0xFF, 0x00, 0x18, // 138 + 0xFF, 0xFF, 0x00, 0x18, // 139 + 0xFF, 0xFF, 0x00, 0x18, // 140 + 0xFF, 0xFF, 0x00, 0x18, // 141 + 0xFF, 0xFF, 0x00, 0x18, // 142 + 0xFF, 0xFF, 0x00, 0x18, // 143 + 0xFF, 0xFF, 0x00, 0x18, // 144 + 0xFF, 0xFF, 0x00, 0x18, // 145 + 0xFF, 0xFF, 0x00, 0x18, // 146 + 0x12, 0x21, 0x47, 0x13, // 147 + 0x12, 0x68, 0x2F, 0x0D, // 148 + 0xFF, 0xFF, 0x00, 0x18, // 149 + 0xFF, 0xFF, 0x00, 0x18, // 150 + 0xFF, 0xFF, 0x00, 0x18, // 151 + 0x12, 0x97, 0x3B, 0x10, // 152 + 0x12, 0xD2, 0x2F, 0x0D, // 153 + 0x13, 0x01, 0x3B, 0x10, // 154 + 0x13, 0x3C, 0x2B, 0x0C, // 155 + 0xFF, 0xFF, 0x00, 0x18, // 156 + 0xFF, 0xFF, 0x00, 0x18, // 157 + 0xFF, 0xFF, 0x00, 0x18, // 158 + 0xFF, 0xFF, 0x00, 0x18, // 159 + 0xFF, 0xFF, 0x00, 0x18, // 160 + 0x13, 0x67, 0x14, 0x06, // 161 + 0x13, 0x7B, 0x2B, 0x0C, // 162 + 0x13, 0xA6, 0x2F, 0x0D, // 163 + 0x13, 0xD5, 0x33, 0x0E, // 164 + 0x14, 0x08, 0x31, 0x0E, // 165 + 0x14, 0x39, 0x10, 0x05, // 166 + 0x14, 0x49, 0x2F, 0x0D, // 167 + 0x14, 0x78, 0x19, 0x08, // 168 + 0x14, 0x91, 0x46, 0x13, // 169 + 0x14, 0xD7, 0x1A, 0x08, // 170 + 0x14, 0xF1, 0x27, 0x0B, // 171 + 0x15, 0x18, 0x2F, 0x0D, // 172 + 0x15, 0x47, 0x1B, 0x08, // 173 + 0x15, 0x62, 0x46, 0x13, // 174 + 0x15, 0xA8, 0x31, 0x0E, // 175 + 0x15, 0xD9, 0x1E, 0x09, // 176 + 0x15, 0xF7, 0x33, 0x0E, // 177 + 0x16, 0x2A, 0x1A, 0x08, // 178 + 0x16, 0x44, 0x1A, 0x08, // 179 + 0x16, 0x5E, 0x19, 0x08, // 180 + 0x16, 0x77, 0x2F, 0x0D, // 181 + 0x16, 0xA6, 0x31, 0x0E, // 182 + 0x16, 0xD7, 0x12, 0x06, // 183 + 0x16, 0xE9, 0x18, 0x07, // 184 + 0x17, 0x01, 0x37, 0x0F, // 185 + 0x17, 0x38, 0x1E, 0x09, // 186 + 0x17, 0x56, 0x37, 0x0F, // 187 + 0x17, 0x8D, 0x2B, 0x0C, // 188 + 0x17, 0xB8, 0x4B, 0x14, // 189 + 0x18, 0x03, 0x4B, 0x14, // 190 + 0x18, 0x4E, 0x33, 0x0E, // 191 + 0x18, 0x81, 0x3B, 0x10, // 192 + 0x18, 0xBC, 0x3B, 0x10, // 193 + 0x18, 0xF7, 0x3B, 0x10, // 194 + 0x19, 0x32, 0x3B, 0x10, // 195 + 0x19, 0x6D, 0x3B, 0x10, // 196 + 0x19, 0xA8, 0x3B, 0x10, // 197 + 0x19, 0xE3, 0x5B, 0x18, // 198 + 0x1A, 0x3E, 0x3F, 0x11, // 199 + 0x1A, 0x7D, 0x3B, 0x10, // 200 + 0x1A, 0xB8, 0x3B, 0x10, // 201 + 0x1A, 0xF3, 0x3B, 0x10, // 202 + 0x1B, 0x2E, 0x3B, 0x10, // 203 + 0x1B, 0x69, 0x11, 0x06, // 204 + 0x1B, 0x7A, 0x11, 0x06, // 205 + 0x1B, 0x8B, 0x15, 0x07, // 206 + 0x1B, 0xA0, 0x15, 0x07, // 207 + 0x1B, 0xB5, 0x3F, 0x11, // 208 + 0x1B, 0xF4, 0x3B, 0x10, // 209 + 0x1C, 0x2F, 0x47, 0x13, // 210 + 0x1C, 0x76, 0x47, 0x13, // 211 + 0x1C, 0xBD, 0x47, 0x13, // 212 + 0x1D, 0x04, 0x47, 0x13, // 213 + 0x1D, 0x4B, 0x47, 0x13, // 214 + 0x1D, 0x92, 0x2B, 0x0C, // 215 + 0x1D, 0xBD, 0x47, 0x13, // 216 + 0x1E, 0x04, 0x3B, 0x10, // 217 + 0x1E, 0x3F, 0x3B, 0x10, // 218 + 0x1E, 0x7A, 0x3B, 0x10, // 219 + 0x1E, 0xB5, 0x3B, 0x10, // 220 + 0x1E, 0xF0, 0x3D, 0x11, // 221 + 0x1F, 0x2D, 0x3A, 0x10, // 222 + 0x1F, 0x67, 0x37, 0x0F, // 223 + 0x1F, 0x9E, 0x2F, 0x0D, // 224 + 0x1F, 0xCD, 0x2F, 0x0D, // 225 + 0x1F, 0xFC, 0x2F, 0x0D, // 226 + 0x20, 0x2B, 0x2F, 0x0D, // 227 + 0x20, 0x5A, 0x2F, 0x0D, // 228 + 0x20, 0x89, 0x2F, 0x0D, // 229 + 0x20, 0xB8, 0x53, 0x16, // 230 + 0x21, 0x0B, 0x2B, 0x0C, // 231 + 0x21, 0x36, 0x2F, 0x0D, // 232 + 0x21, 0x65, 0x2F, 0x0D, // 233 + 0x21, 0x94, 0x2F, 0x0D, // 234 + 0x21, 0xC3, 0x2F, 0x0D, // 235 + 0x21, 0xF2, 0x11, 0x06, // 236 + 0x22, 0x03, 0x11, 0x06, // 237 + 0x22, 0x14, 0x15, 0x07, // 238 + 0x22, 0x29, 0x15, 0x07, // 239 + 0x22, 0x3E, 0x2F, 0x0D, // 240 + 0x22, 0x6D, 0x2F, 0x0D, // 241 + 0x22, 0x9C, 0x2F, 0x0D, // 242 + 0x22, 0xCB, 0x2F, 0x0D, // 243 + 0x22, 0xFA, 0x2F, 0x0D, // 244 + 0x23, 0x29, 0x2F, 0x0D, // 245 + 0x23, 0x58, 0x2F, 0x0D, // 246 + 0x23, 0x87, 0x32, 0x0E, // 247 + 0x23, 0xB9, 0x33, 0x0E, // 248 + 0x23, 0xEC, 0x2F, 0x0D, // 249 + 0x24, 0x1B, 0x2F, 0x0D, // 250 + 0x24, 0x4A, 0x2F, 0x0D, // 251 + 0x24, 0x79, 0x2F, 0x0D, // 252 + 0x24, 0xA8, 0x2A, 0x0C, // 253 + 0x24, 0xD2, 0x2F, 0x0D, // 254 + 0x25, 0x01, 0x2A, 0x0C, // 255 + // Font Data: + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x33, 0x00, 0xE0, 0xFF, 0x33, // 33 + 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xE0, 0x07, // 34 + 0x00, 0x0C, 0x03, 0x00, 0x00, 0x0C, 0x33, 0x00, 0x00, 0x0C, 0x3F, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0x80, 0xFF, 0x03, 0x00, 0xE0, 0x0F, 0x03, 0x00, 0x60, 0x0C, 0x33, 0x00, 0x00, 0x0C, 0x3F, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0x80, 0xFF, 0x03, 0x00, 0xE0, 0x0F, 0x03, 0x00, 0x60, 0x0C, 0x03, 0x00, 0x00, 0x0C, 0x03, // 35 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x06, 0x00, 0xC0, 0x0F, 0x1E, 0x00, 0xC0, 0x18, 0x1C, 0x00, 0x60, 0x18, 0x38, 0x00, 0x60, 0x30, 0x30, 0x00, 0xF0, 0xFF, 0xFF, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x60, 0x38, 0x00, 0xC0, 0x60, 0x18, 0x00, 0xC0, 0xC1, 0x1F, 0x00, 0x00, 0x81, 0x07, // 36 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x20, 0x20, 0x20, 0x00, 0x60, 0x30, 0x38, 0x00, 0xC0, 0x1F, 0x1E, 0x00, 0x80, 0x8F, 0x0F, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x8F, 0x0F, 0x00, 0xC0, 0xC3, 0x1F, 0x00, 0xE0, 0x60, 0x30, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x80, 0x0F, // 37 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x80, 0xE3, 0x1C, 0x00, 0xC0, 0x77, 0x38, 0x00, 0xE0, 0x3C, 0x30, 0x00, 0x60, 0x38, 0x30, 0x00, 0x60, 0x78, 0x30, 0x00, 0xE0, 0xEC, 0x38, 0x00, 0xC0, 0x8F, 0x1B, 0x00, 0x80, 0x03, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0xC0, 0x38, 0x00, 0x00, 0x00, 0x10, // 38 + 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xE0, 0x07, // 39 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x80, 0x0F, 0xF0, 0x01, 0xC0, 0x01, 0x80, 0x03, 0x60, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x04, // 40 + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, 0x60, 0x00, 0x00, 0x06, 0xC0, 0x01, 0x80, 0x03, 0x80, 0x0F, 0xF0, 0x01, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xF0, 0x0F, // 41 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x80, // 42 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, // 43 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0xF0, 0x01, // 44 + 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, // 45 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, // 46 + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x80, 0x3F, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x60, // 47 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x38, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0x03, // 48 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 49 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x00, 0xC0, 0x03, 0x38, 0x00, 0xC0, 0x00, 0x3C, 0x00, 0x60, 0x00, 0x36, 0x00, 0x60, 0x00, 0x33, 0x00, 0x60, 0x80, 0x31, 0x00, 0x60, 0xC0, 0x30, 0x00, 0x60, 0x60, 0x30, 0x00, 0xC0, 0x30, 0x30, 0x00, 0xC0, 0x1F, 0x30, 0x00, 0x00, 0x0F, 0x30, // 50 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0xC0, 0x01, 0x0E, 0x00, 0xC0, 0x00, 0x1C, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0xC0, 0x38, 0x30, 0x00, 0xC0, 0x6F, 0x18, 0x00, 0x80, 0xC7, 0x0F, 0x00, 0x00, 0x80, 0x07, // 51 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x3C, 0x03, 0x00, 0x00, 0x0E, 0x03, 0x00, 0x80, 0x07, 0x03, 0x00, 0xC0, 0x01, 0x03, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, // 52 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x06, 0x00, 0x80, 0x3F, 0x0E, 0x00, 0xE0, 0x1F, 0x18, 0x00, 0x60, 0x08, 0x30, 0x00, 0x60, 0x0C, 0x30, 0x00, 0x60, 0x0C, 0x30, 0x00, 0x60, 0x0C, 0x30, 0x00, 0x60, 0x0C, 0x30, 0x00, 0x60, 0x18, 0x1C, 0x00, 0x60, 0xF0, 0x0F, 0x00, 0x00, 0xE0, 0x03, // 53 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0xC0, 0x63, 0x1C, 0x00, 0xC0, 0x30, 0x38, 0x00, 0x60, 0x18, 0x30, 0x00, 0x60, 0x18, 0x30, 0x00, 0x60, 0x18, 0x30, 0x00, 0x60, 0x18, 0x30, 0x00, 0xE0, 0x30, 0x18, 0x00, 0xC0, 0xF1, 0x0F, 0x00, 0x80, 0xC1, 0x07, // 54 + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x3C, 0x00, 0x60, 0x80, 0x3F, 0x00, 0x60, 0xE0, 0x03, 0x00, 0x60, 0x78, 0x00, 0x00, 0x60, 0x0E, 0x00, 0x00, 0x60, 0x03, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x60, // 55 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x80, 0xC7, 0x1F, 0x00, 0xC0, 0x6F, 0x18, 0x00, 0xE0, 0x38, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0xE0, 0x38, 0x30, 0x00, 0xC0, 0x6F, 0x18, 0x00, 0x80, 0xC7, 0x1F, 0x00, 0x00, 0x80, 0x07, // 56 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x0C, 0x00, 0x80, 0x7F, 0x1C, 0x00, 0xC0, 0x61, 0x38, 0x00, 0x60, 0xC0, 0x30, 0x00, 0x60, 0xC0, 0x30, 0x00, 0x60, 0xC0, 0x30, 0x00, 0x60, 0xC0, 0x30, 0x00, 0x60, 0x60, 0x18, 0x00, 0xC0, 0x31, 0x1E, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0x01, // 57 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, // 58 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x30, 0x03, 0x00, 0x06, 0xF0, 0x01, // 59 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x03, 0x06, // 60 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, // 61 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x20, // 62 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x60, 0x80, 0x33, 0x00, 0x60, 0xC0, 0x33, 0x00, 0x60, 0xE0, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0xC0, 0x38, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x07, // 63 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x1E, 0xF0, 0x00, 0x00, 0x07, 0xC0, 0x01, 0x80, 0xC3, 0x87, 0x01, 0xC0, 0xF1, 0x9F, 0x03, 0xC0, 0x38, 0x18, 0x03, 0xC0, 0x0C, 0x30, 0x03, 0x60, 0x0E, 0x30, 0x06, 0x60, 0x06, 0x30, 0x06, 0x60, 0x06, 0x18, 0x06, 0x60, 0x06, 0x0C, 0x06, 0x60, 0x0C, 0x1E, 0x06, 0x60, 0xF8, 0x3F, 0x06, 0xE0, 0xFE, 0x31, 0x06, 0xC0, 0x0E, 0x30, 0x06, 0xC0, 0x01, 0x18, 0x03, 0x80, 0x03, 0x1C, 0x03, 0x00, 0x07, 0x8F, 0x01, 0x00, 0xFE, 0x87, 0x01, 0x00, 0xF8, 0xC1, 0x00, 0x00, 0x00, 0x40, // 64 + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x80, 0x8F, 0x01, 0x00, 0xE0, 0x83, 0x01, 0x00, 0x60, 0x80, 0x01, 0x00, 0xE0, 0x83, 0x01, 0x00, 0x80, 0x8F, 0x01, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 65 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0xC0, 0x78, 0x30, 0x00, 0xC0, 0xFF, 0x18, 0x00, 0x80, 0xC7, 0x1F, 0x00, 0x00, 0x80, 0x07, // 66 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x03, 0x0F, 0x00, 0x00, 0x02, 0x03, // 67 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x03, 0x0E, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 68 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 69 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, // 70 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x18, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x60, 0x30, 0x00, 0x60, 0x60, 0x30, 0x00, 0xE0, 0x60, 0x38, 0x00, 0xC0, 0x60, 0x18, 0x00, 0xC0, 0x61, 0x18, 0x00, 0x80, 0xE3, 0x0F, 0x00, 0x00, 0xE2, 0x0F, // 71 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 72 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 73 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x38, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, // 74 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xE7, 0x01, 0x00, 0x80, 0x83, 0x07, 0x00, 0xC0, 0x01, 0x0F, 0x00, 0xE0, 0x00, 0x1E, 0x00, 0x60, 0x00, 0x38, 0x00, 0x20, 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, // 75 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, // 76 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 77 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 78 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 79 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0xC0, 0x30, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x0F, // 80 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x0C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x18, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x36, 0x00, 0x60, 0x00, 0x36, 0x00, 0xE0, 0x00, 0x3C, 0x00, 0xC0, 0x00, 0x1C, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x3F, 0x00, 0x00, 0xFF, 0x77, 0x00, 0x00, 0xFC, 0x61, // 81 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x70, 0x00, 0x00, 0x60, 0xF0, 0x00, 0x00, 0x60, 0xF0, 0x03, 0x00, 0x60, 0xB0, 0x07, 0x00, 0xE0, 0x18, 0x1F, 0x00, 0xC0, 0x1F, 0x3C, 0x00, 0x80, 0x0F, 0x30, 0x00, 0x00, 0x00, 0x20, // 82 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x0F, 0x00, 0xC0, 0x1F, 0x1C, 0x00, 0xC0, 0x18, 0x18, 0x00, 0x60, 0x38, 0x38, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x70, 0x30, 0x00, 0xC0, 0x60, 0x18, 0x00, 0xC0, 0xE1, 0x18, 0x00, 0x80, 0xC3, 0x0F, 0x00, 0x00, 0x83, 0x07, // 83 + 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, // 84 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x03, // 85 + 0x20, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x20, // 86 + 0x60, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x80, 0x1F, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x80, 0xFF, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x60, // 87 + 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, 0x60, 0x00, 0x3C, 0x00, 0xE0, 0x01, 0x1E, 0x00, 0xC0, 0x83, 0x07, 0x00, 0x00, 0xCF, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xCF, 0x03, 0x00, 0xC0, 0x03, 0x07, 0x00, 0xE0, 0x01, 0x1E, 0x00, 0x60, 0x00, 0x3C, 0x00, 0x20, 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, // 88 + 0x20, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, // 89 + 0x00, 0x00, 0x30, 0x00, 0x60, 0x00, 0x38, 0x00, 0x60, 0x00, 0x3C, 0x00, 0x60, 0x00, 0x37, 0x00, 0x60, 0x80, 0x33, 0x00, 0x60, 0xC0, 0x31, 0x00, 0x60, 0xE0, 0x30, 0x00, 0x60, 0x38, 0x30, 0x00, 0x60, 0x1C, 0x30, 0x00, 0x60, 0x0E, 0x30, 0x00, 0x60, 0x07, 0x30, 0x00, 0xE0, 0x01, 0x30, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, // 90 + 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0x07, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, // 91 + 0x60, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 92 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0xE0, 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0x07, // 93 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x20, // 94 + 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, // 95 + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x80, // 96 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x00, 0x8C, 0x39, 0x00, 0x00, 0x86, 0x31, 0x00, 0x00, 0x86, 0x31, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x18, 0x00, 0x00, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 97 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xE0, 0x03, // 98 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x18, 0x0C, // 99 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, 0x18, 0x0C, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 100 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xDC, 0x1C, 0x00, 0x00, 0xCE, 0x38, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xCE, 0x38, 0x00, 0x00, 0xDC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xF0, 0x04, // 101 + 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xC0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x06, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x60, 0x06, // 102 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x83, 0x01, 0x00, 0xF8, 0x8F, 0x03, 0x00, 0x1C, 0x1C, 0x07, 0x00, 0x0E, 0x38, 0x06, 0x00, 0x06, 0x30, 0x06, 0x00, 0x06, 0x30, 0x06, 0x00, 0x06, 0x30, 0x06, 0x00, 0x0C, 0x18, 0x07, 0x00, 0x18, 0x8C, 0x03, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0xFE, 0xFF, // 103 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0xF8, 0x3F, // 104 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFE, 0x3F, 0x00, 0x60, 0xFE, 0x3F, // 105 + 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x60, 0xFE, 0xFF, 0x07, 0x60, 0xFE, 0xFF, 0x03, // 106 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x98, 0x07, 0x00, 0x00, 0x0C, 0x0E, 0x00, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x02, 0x30, 0x00, 0x00, 0x00, 0x20, // 107 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 108 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0xF8, 0x3F, // 109 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0xF8, 0x3F, // 110 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 111 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x18, 0x0C, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xE0, 0x03, // 112 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0xFE, 0xFF, 0x07, // 113 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, // 114 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0C, 0x00, 0x00, 0x7C, 0x1C, 0x00, 0x00, 0xEE, 0x38, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x31, 0x00, 0x00, 0xC6, 0x31, 0x00, 0x00, 0x8E, 0x39, 0x00, 0x00, 0x9C, 0x1F, 0x00, 0x00, 0x18, 0x0F, // 115 + 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xC0, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, // 116 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, // 117 + 0x00, 0x06, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x06, // 118 + 0x00, 0x0E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x0E, // 119 + 0x00, 0x02, 0x20, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x1E, 0x3C, 0x00, 0x00, 0x38, 0x0E, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x38, 0x0E, 0x00, 0x00, 0x1C, 0x3C, 0x00, 0x00, 0x0E, 0x30, 0x00, 0x00, 0x02, 0x20, // 120 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x06, 0x00, 0xF0, 0x01, 0x06, 0x00, 0x80, 0x0F, 0x07, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x06, // 121 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x06, 0x3E, 0x00, 0x00, 0x06, 0x37, 0x00, 0x00, 0xC6, 0x33, 0x00, 0x00, 0xE6, 0x30, 0x00, 0x00, 0x76, 0x30, 0x00, 0x00, 0x3E, 0x30, 0x00, 0x00, 0x1E, 0x30, 0x00, 0x00, 0x06, 0x30, // 122 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x7F, 0xFE, 0x03, 0xE0, 0x3F, 0xFC, 0x07, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, // 123 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x0F, 0xE0, 0xFF, 0xFF, 0x0F, // 124 + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0xE0, 0x3F, 0xFC, 0x07, 0xC0, 0x7F, 0xFF, 0x03, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x80, 0x01, // 125 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x60, // 126 + 0x00, 0x60, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x0C, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, // 129 + 0x00, 0x60, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x06, // 130 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x10, 0x3C, 0x00, 0x00, 0x1C, 0x70, 0x00, 0x00, 0x0C, 0xE0, 0x01, 0x00, 0x04, 0x80, 0x03, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 131 + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x80, 0x8F, 0x01, 0x00, 0xE0, 0x83, 0x01, 0x00, 0x60, 0x80, 0x01, 0x00, 0xE0, 0x83, 0x01, 0x00, 0x80, 0x8F, 0x01, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xB0, 0x03, 0x00, 0x00, 0x00, 0x03, // 132 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x00, 0x8C, 0x39, 0x00, 0x00, 0x86, 0x31, 0x00, 0x00, 0x86, 0x31, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x18, 0x00, 0x00, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x00, 0x03, // 133 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x68, 0x00, 0x30, 0x00, 0x6E, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0x62, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x03, 0x0F, 0x00, 0x00, 0x02, 0x03, // 134 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x80, 0x06, 0x30, 0x00, 0xE0, 0x06, 0x30, 0x00, 0x60, 0x06, 0x30, 0x00, 0x20, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x18, 0x0C, // 135 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x80, 0x06, 0x00, 0x00, 0xE0, 0x06, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x20, 0x0E, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0xF8, 0x3F, // 136 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x06, 0x3E, 0x00, 0x00, 0x06, 0x37, 0x00, 0x80, 0xC6, 0x33, 0x00, 0xE0, 0xE6, 0x30, 0x00, 0x60, 0x76, 0x30, 0x00, 0x20, 0x3E, 0x30, 0x00, 0x00, 0x1E, 0x30, 0x00, 0x00, 0x06, 0x30, // 137 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x68, 0x00, 0x30, 0x00, 0x6E, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0xE2, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 147 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x06, 0x30, 0x00, 0x80, 0x06, 0x30, 0x00, 0xE0, 0x06, 0x30, 0x00, 0x60, 0x0E, 0x38, 0x00, 0x20, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 148 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0xF0, 0x01, 0x60, 0x30, 0xB0, 0x03, 0x60, 0x30, 0x30, 0x03, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 152 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xDC, 0x1C, 0x00, 0x00, 0xCE, 0x38, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0xF0, 0x01, 0x00, 0xC6, 0xB0, 0x03, 0x00, 0xCE, 0x38, 0x03, 0x00, 0xDC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xF0, 0x04, // 153 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x0F, 0x00, 0xC0, 0x1F, 0x1C, 0x00, 0xC0, 0x18, 0x18, 0x00, 0x60, 0x38, 0x38, 0x00, 0x60, 0x30, 0x30, 0x00, 0x68, 0x30, 0x30, 0x00, 0x6E, 0x30, 0x30, 0x00, 0x66, 0x30, 0x30, 0x00, 0x62, 0x70, 0x30, 0x00, 0xC0, 0x60, 0x18, 0x00, 0xC0, 0xE1, 0x18, 0x00, 0x80, 0xC3, 0x0F, 0x00, 0x00, 0x83, 0x07, // 154 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0C, 0x00, 0x00, 0x7C, 0x1C, 0x00, 0x00, 0xEE, 0x38, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x80, 0xC6, 0x30, 0x00, 0xE0, 0xC6, 0x31, 0x00, 0x60, 0xC6, 0x31, 0x00, 0x20, 0x8E, 0x39, 0x00, 0x00, 0x9C, 0x1F, 0x00, 0x00, 0x18, 0x0F, // 155 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE6, 0xFF, 0x07, 0x00, 0xE6, 0xFF, 0x07, // 161 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x9C, 0x07, 0x00, 0x0E, 0x78, 0x00, 0x00, 0x06, 0x3F, 0x00, 0x00, 0xF6, 0x30, 0x00, 0x00, 0x0E, 0x30, 0x00, 0xE0, 0x0D, 0x1C, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x10, 0x06, // 162 + 0x00, 0x60, 0x10, 0x00, 0x00, 0x60, 0x38, 0x00, 0x00, 0x7F, 0x1C, 0x00, 0xC0, 0xFF, 0x1F, 0x00, 0xE0, 0xE0, 0x19, 0x00, 0x60, 0x60, 0x18, 0x00, 0x60, 0x60, 0x18, 0x00, 0x60, 0x60, 0x30, 0x00, 0xE0, 0x00, 0x30, 0x00, 0xC0, 0x01, 0x30, 0x00, 0x80, 0x01, 0x38, 0x00, 0x00, 0x00, 0x10, // 163 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0xF7, 0x0E, 0x00, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0xFE, 0x07, 0x00, 0x00, 0xF7, 0x0E, 0x00, 0x00, 0x02, 0x04, // 164 + 0xE0, 0x60, 0x06, 0x00, 0xC0, 0x61, 0x06, 0x00, 0x80, 0x67, 0x06, 0x00, 0x00, 0x7E, 0x06, 0x00, 0x00, 0x7C, 0x06, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x7C, 0x06, 0x00, 0x00, 0x7E, 0x06, 0x00, 0x80, 0x67, 0x06, 0x00, 0xC0, 0x61, 0x06, 0x00, 0xE0, 0x60, 0x06, 0x00, 0x20, // 165 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x7F, 0xF8, 0x0F, 0xE0, 0x7F, 0xF8, 0x0F, // 166 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x80, 0xF3, 0xC1, 0x00, 0xC0, 0x1F, 0xC3, 0x03, 0xE0, 0x0C, 0x07, 0x03, 0x60, 0x1C, 0x06, 0x06, 0x60, 0x18, 0x0C, 0x06, 0x60, 0x30, 0x1C, 0x06, 0xE0, 0x70, 0x38, 0x07, 0xC0, 0xE1, 0xF4, 0x03, 0x80, 0xC1, 0xE7, 0x01, 0x00, 0x80, 0x03, // 167 + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, // 168 + 0x00, 0xF8, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x07, 0x07, 0x00, 0x80, 0x01, 0x0C, 0x00, 0xC0, 0x79, 0x1C, 0x00, 0xC0, 0xFE, 0x19, 0x00, 0x60, 0x86, 0x31, 0x00, 0x60, 0x03, 0x33, 0x00, 0x60, 0x03, 0x33, 0x00, 0x60, 0x03, 0x33, 0x00, 0x60, 0x03, 0x33, 0x00, 0x60, 0x87, 0x33, 0x00, 0xC0, 0x86, 0x19, 0x00, 0xC0, 0x85, 0x1C, 0x00, 0x80, 0x01, 0x0C, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0xF8, // 169 + 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1C, 0x00, 0x00, 0xE0, 0x3E, 0x00, 0x00, 0x60, 0x32, 0x00, 0x00, 0x60, 0x32, 0x00, 0x00, 0xE0, 0x3F, 0x00, 0x00, 0xC0, 0x3F, // 170 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x78, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x84, 0x10, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x78, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x04, 0x10, // 171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFC, 0x01, // 172 + 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, // 173 + 0x00, 0xF8, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x07, 0x07, 0x00, 0x80, 0x01, 0x0C, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0xFE, 0x1B, 0x00, 0x60, 0xFE, 0x33, 0x00, 0x60, 0x66, 0x30, 0x00, 0x60, 0x66, 0x30, 0x00, 0x60, 0xE6, 0x30, 0x00, 0x60, 0xFE, 0x31, 0x00, 0x60, 0x3C, 0x33, 0x00, 0xC0, 0x00, 0x1A, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x01, 0x0C, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0xF8, // 174 + 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, // 175 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x80, 0x03, // 176 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x60, 0x30, // 177 + 0x40, 0x20, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x20, 0x38, 0x00, 0x00, 0x20, 0x2C, 0x00, 0x00, 0x20, 0x26, 0x00, 0x00, 0xE0, 0x23, 0x00, 0x00, 0xC0, 0x21, // 178 + 0x40, 0x10, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x20, 0x22, 0x00, 0x00, 0x20, 0x22, 0x00, 0x00, 0xE0, 0x3D, 0x00, 0x00, 0xC0, 0x1D, // 179 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, // 180 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, // 181 + 0x00, 0x0F, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0x07, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0x07, 0x60, 0x00, 0x00, 0x00, 0x60, // 182 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, // 183 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xC0, 0x02, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x01, // 184 + 0x00, 0x00, 0x30, 0x00, 0x60, 0x00, 0x38, 0x00, 0x60, 0x00, 0x3C, 0x00, 0x60, 0x00, 0x37, 0x00, 0x60, 0x80, 0x33, 0x00, 0x60, 0xC0, 0x31, 0x00, 0x68, 0xE0, 0x30, 0x00, 0x6E, 0x38, 0x30, 0x00, 0x66, 0x1C, 0x30, 0x00, 0x62, 0x0E, 0x30, 0x00, 0x60, 0x07, 0x30, 0x00, 0xE0, 0x01, 0x30, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, // 185 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0xE0, 0x38, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0xE0, 0x38, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x80, 0x0F, // 186 + 0x00, 0x00, 0x30, 0x00, 0x60, 0x00, 0x38, 0x00, 0x60, 0x00, 0x3C, 0x00, 0x60, 0x00, 0x37, 0x00, 0x60, 0x80, 0x33, 0x00, 0x60, 0xC0, 0x31, 0x00, 0x6C, 0xE0, 0x30, 0x00, 0x6C, 0x38, 0x30, 0x00, 0x60, 0x1C, 0x30, 0x00, 0x60, 0x0E, 0x30, 0x00, 0x60, 0x07, 0x30, 0x00, 0xE0, 0x01, 0x30, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, // 187 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x06, 0x3E, 0x00, 0x00, 0x06, 0x37, 0x00, 0xC0, 0xC6, 0x33, 0x00, 0xC0, 0xE6, 0x30, 0x00, 0x00, 0x76, 0x30, 0x00, 0x00, 0x3E, 0x30, 0x00, 0x00, 0x1E, 0x30, 0x00, 0x00, 0x06, 0x30, // 188 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x00, 0xE0, 0x3F, 0x30, 0x00, 0xE0, 0x3F, 0x1C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x4E, 0x20, 0x00, 0x00, 0x67, 0x30, 0x00, 0xC0, 0x21, 0x38, 0x00, 0xE0, 0x20, 0x2C, 0x00, 0x60, 0x20, 0x26, 0x00, 0x00, 0xE0, 0x27, 0x00, 0x00, 0xC0, 0x21, // 189 + 0x40, 0x10, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x20, 0x22, 0x20, 0x00, 0x20, 0x22, 0x30, 0x00, 0xE0, 0x3D, 0x38, 0x00, 0xC0, 0x1D, 0x0E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0E, 0x0C, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x80, 0x83, 0x0B, 0x00, 0xE0, 0xC0, 0x08, 0x00, 0x60, 0xE0, 0x3F, 0x00, 0x20, 0xE0, 0x3F, 0x00, 0x00, 0x00, 0x08, // 190 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x1E, 0x03, 0x00, 0x00, 0x07, 0x07, 0x00, 0xE6, 0x03, 0x06, 0x00, 0xE6, 0x01, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xC0, // 191 + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x82, 0x8F, 0x01, 0x00, 0xE6, 0x83, 0x01, 0x00, 0x6E, 0x80, 0x01, 0x00, 0xE8, 0x83, 0x01, 0x00, 0x80, 0x8F, 0x01, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 192 + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x80, 0x8F, 0x01, 0x00, 0xE8, 0x83, 0x01, 0x00, 0x6E, 0x80, 0x01, 0x00, 0xE6, 0x83, 0x01, 0x00, 0x82, 0x8F, 0x01, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 193 + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x88, 0x8F, 0x01, 0x00, 0xEC, 0x83, 0x01, 0x00, 0x66, 0x80, 0x01, 0x00, 0xE6, 0x83, 0x01, 0x00, 0x8C, 0x8F, 0x01, 0x00, 0x08, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 194 + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x0C, 0xFE, 0x01, 0x00, 0x8E, 0x8F, 0x01, 0x00, 0xE6, 0x83, 0x01, 0x00, 0x66, 0x80, 0x01, 0x00, 0xEC, 0x83, 0x01, 0x00, 0x8C, 0x8F, 0x01, 0x00, 0x0E, 0xFE, 0x01, 0x00, 0x06, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 195 + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x8C, 0x8F, 0x01, 0x00, 0xEC, 0x83, 0x01, 0x00, 0x60, 0x80, 0x01, 0x00, 0xE0, 0x83, 0x01, 0x00, 0x8C, 0x8F, 0x01, 0x00, 0x0C, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 196 + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x9C, 0x8F, 0x01, 0x00, 0xE2, 0x83, 0x01, 0x00, 0x62, 0x80, 0x01, 0x00, 0xE2, 0x83, 0x01, 0x00, 0x9C, 0x8F, 0x01, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x30, // 197 + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0xBC, 0x01, 0x00, 0x00, 0x8F, 0x01, 0x00, 0xC0, 0x83, 0x01, 0x00, 0xE0, 0x80, 0x01, 0x00, 0x60, 0x80, 0x01, 0x00, 0x60, 0x80, 0x01, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 198 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x60, 0x00, 0x30, 0x02, 0x60, 0x00, 0x30, 0x02, 0x60, 0x00, 0xF0, 0x02, 0x60, 0x00, 0xB0, 0x03, 0x60, 0x00, 0x30, 0x01, 0x60, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x03, 0x0F, 0x00, 0x00, 0x02, 0x03, // 199 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x62, 0x30, 0x30, 0x00, 0x66, 0x30, 0x30, 0x00, 0x6E, 0x30, 0x30, 0x00, 0x68, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x68, 0x30, 0x30, 0x00, 0x6E, 0x30, 0x30, 0x00, 0x66, 0x30, 0x30, 0x00, 0x62, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 201 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x68, 0x30, 0x30, 0x00, 0x6C, 0x30, 0x30, 0x00, 0x66, 0x30, 0x30, 0x00, 0x66, 0x30, 0x30, 0x00, 0x6C, 0x30, 0x30, 0x00, 0x68, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 202 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x6C, 0x30, 0x30, 0x00, 0x6C, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x6C, 0x30, 0x30, 0x00, 0x6C, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, // 203 + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xE6, 0xFF, 0x3F, 0x00, 0xEE, 0xFF, 0x3F, 0x00, 0x08, // 204 + 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xEE, 0xFF, 0x3F, 0x00, 0xE6, 0xFF, 0x3F, 0x00, 0x02, // 205 + 0x08, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xE6, 0xFF, 0x3F, 0x00, 0xE6, 0xFF, 0x3F, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x08, // 206 + 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, // 207 + 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x03, 0x0E, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 208 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x8C, 0x03, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x06, 0x70, 0x00, 0x00, 0x0C, 0xE0, 0x01, 0x00, 0x0C, 0x80, 0x03, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, // 209 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x62, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0x6E, 0x00, 0x30, 0x00, 0x68, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 210 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x60, 0x00, 0x30, 0x00, 0x68, 0x00, 0x30, 0x00, 0x6E, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0x62, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 211 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x68, 0x00, 0x30, 0x00, 0x6C, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0x6C, 0x00, 0x30, 0x00, 0xE8, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xCC, 0x00, 0x18, 0x00, 0xEE, 0x00, 0x38, 0x00, 0x66, 0x00, 0x30, 0x00, 0x66, 0x00, 0x30, 0x00, 0x6C, 0x00, 0x30, 0x00, 0x6C, 0x00, 0x30, 0x00, 0x6E, 0x00, 0x30, 0x00, 0xE6, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 213 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x80, 0x07, 0x0F, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x6C, 0x00, 0x30, 0x00, 0x6C, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x6C, 0x00, 0x30, 0x00, 0xEC, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x01, 0x1C, 0x00, 0x80, 0x07, 0x0F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFC, 0x01, // 214 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x8E, 0x03, 0x00, 0x00, 0xDC, 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xDC, 0x01, 0x00, 0x00, 0x8E, 0x03, 0x00, 0x00, 0x06, 0x03, // 215 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x21, 0x00, 0x00, 0xFF, 0x77, 0x00, 0x80, 0x07, 0x3F, 0x00, 0xC0, 0x01, 0x1E, 0x00, 0xC0, 0x00, 0x1F, 0x00, 0xE0, 0x80, 0x3B, 0x00, 0x60, 0xC0, 0x31, 0x00, 0x60, 0xE0, 0x30, 0x00, 0x60, 0x70, 0x30, 0x00, 0x60, 0x38, 0x30, 0x00, 0x60, 0x1C, 0x30, 0x00, 0xE0, 0x0E, 0x38, 0x00, 0xC0, 0x07, 0x18, 0x00, 0xC0, 0x03, 0x1C, 0x00, 0xE0, 0x07, 0x0F, 0x00, 0x70, 0xFF, 0x07, 0x00, 0x20, 0xFC, 0x01, // 216 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x02, 0x00, 0x30, 0x00, 0x06, 0x00, 0x30, 0x00, 0x0E, 0x00, 0x30, 0x00, 0x08, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x03, // 217 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08, 0x00, 0x30, 0x00, 0x0E, 0x00, 0x30, 0x00, 0x06, 0x00, 0x30, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x03, // 218 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x08, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x06, 0x00, 0x30, 0x00, 0x06, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x08, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x03, // 219 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1C, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x03, // 220 + 0x20, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x08, 0xF0, 0x3F, 0x00, 0x0E, 0xF0, 0x3F, 0x00, 0x06, 0x3C, 0x00, 0x00, 0x02, 0x1E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, // 221 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x86, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xF8, // 222 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x3F, 0x00, 0xC0, 0xFF, 0x3F, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x60, 0x00, 0x08, 0x00, 0x60, 0x00, 0x1C, 0x00, 0x60, 0x00, 0x38, 0x00, 0xE0, 0x78, 0x30, 0x00, 0xC0, 0x7F, 0x30, 0x00, 0x80, 0xC7, 0x30, 0x00, 0x00, 0x80, 0x39, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x0F, // 223 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x00, 0x8C, 0x39, 0x00, 0x20, 0x86, 0x31, 0x00, 0x60, 0x86, 0x31, 0x00, 0xE0, 0xC6, 0x30, 0x00, 0x80, 0xC6, 0x18, 0x00, 0x00, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 224 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x00, 0x8C, 0x39, 0x00, 0x00, 0x86, 0x31, 0x00, 0x80, 0x86, 0x31, 0x00, 0xE0, 0xC6, 0x30, 0x00, 0x60, 0xC6, 0x18, 0x00, 0x20, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 225 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x80, 0x8C, 0x39, 0x00, 0xC0, 0x86, 0x31, 0x00, 0x60, 0x86, 0x31, 0x00, 0x60, 0xC6, 0x30, 0x00, 0xC0, 0xC6, 0x18, 0x00, 0x80, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 226 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0xC0, 0x1C, 0x1F, 0x00, 0xE0, 0x8C, 0x39, 0x00, 0x60, 0x86, 0x31, 0x00, 0x60, 0x86, 0x31, 0x00, 0xC0, 0xC6, 0x30, 0x00, 0xC0, 0xC6, 0x18, 0x00, 0xE0, 0xCE, 0x0C, 0x00, 0x60, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 227 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0xC0, 0x8C, 0x39, 0x00, 0xC0, 0x86, 0x31, 0x00, 0x00, 0x86, 0x31, 0x00, 0x00, 0xC6, 0x30, 0x00, 0xC0, 0xC6, 0x18, 0x00, 0xC0, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 228 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x00, 0x8C, 0x39, 0x00, 0x70, 0x86, 0x31, 0x00, 0x88, 0x86, 0x31, 0x00, 0x88, 0xC6, 0x30, 0x00, 0x88, 0xC6, 0x18, 0x00, 0x70, 0xCE, 0x0C, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x20, // 229 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0F, 0x00, 0x00, 0x9C, 0x1F, 0x00, 0x00, 0xCC, 0x39, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0x66, 0x18, 0x00, 0x00, 0x6E, 0x1C, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0xCC, 0x1C, 0x00, 0x00, 0xCE, 0x38, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xCC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xE0, 0x04, // 230 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x02, 0x00, 0x06, 0x30, 0x02, 0x00, 0x06, 0xF0, 0x02, 0x00, 0x06, 0xB0, 0x03, 0x00, 0x0E, 0x38, 0x01, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x18, 0x0C, // 231 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xDC, 0x1C, 0x00, 0x20, 0xCE, 0x38, 0x00, 0x60, 0xC6, 0x30, 0x00, 0xE0, 0xC6, 0x30, 0x00, 0x80, 0xC6, 0x30, 0x00, 0x00, 0xCE, 0x38, 0x00, 0x00, 0xDC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xF0, 0x04, // 232 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xDC, 0x1C, 0x00, 0x00, 0xCE, 0x38, 0x00, 0x80, 0xC6, 0x30, 0x00, 0xE0, 0xC6, 0x30, 0x00, 0x60, 0xC6, 0x30, 0x00, 0x20, 0xCE, 0x38, 0x00, 0x00, 0xDC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xF0, 0x04, // 233 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xDC, 0x1C, 0x00, 0x80, 0xCE, 0x38, 0x00, 0xC0, 0xC6, 0x30, 0x00, 0x60, 0xC6, 0x30, 0x00, 0x60, 0xC6, 0x30, 0x00, 0xC0, 0xCE, 0x38, 0x00, 0x80, 0xDC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xF0, 0x04, // 234 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xDC, 0x1C, 0x00, 0xC0, 0xCE, 0x38, 0x00, 0xC0, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0x00, 0xC6, 0x30, 0x00, 0xC0, 0xCE, 0x38, 0x00, 0xC0, 0xDC, 0x18, 0x00, 0x00, 0xF8, 0x0C, 0x00, 0x00, 0xF0, 0x04, // 235 + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x60, 0xFE, 0x3F, 0x00, 0xE0, 0xFE, 0x3F, 0x00, 0x80, // 236 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xE0, 0xFE, 0x3F, 0x00, 0x60, 0xFE, 0x3F, 0x00, 0x20, // 237 + 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x60, 0xFE, 0x3F, 0x00, 0x60, 0xFE, 0x3F, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x80, // 238 + 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, // 239 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1D, 0x1C, 0x00, 0xA0, 0x0F, 0x38, 0x00, 0xA0, 0x06, 0x30, 0x00, 0xE0, 0x06, 0x30, 0x00, 0xC0, 0x06, 0x30, 0x00, 0xC0, 0x0F, 0x38, 0x00, 0x20, 0x1F, 0x1C, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0x00, 0xE0, 0x07, // 240 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0xC0, 0xFE, 0x3F, 0x00, 0xE0, 0x18, 0x00, 0x00, 0x60, 0x0C, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0xC0, 0x06, 0x00, 0x00, 0xC0, 0x06, 0x00, 0x00, 0xE0, 0x0E, 0x00, 0x00, 0x60, 0xFC, 0x3F, 0x00, 0x00, 0xF8, 0x3F, // 241 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x20, 0x0E, 0x38, 0x00, 0x60, 0x06, 0x30, 0x00, 0xE0, 0x06, 0x30, 0x00, 0x80, 0x06, 0x30, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 242 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x80, 0x06, 0x30, 0x00, 0xE0, 0x06, 0x30, 0x00, 0x60, 0x06, 0x30, 0x00, 0x20, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 243 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x80, 0x0E, 0x38, 0x00, 0xC0, 0x06, 0x30, 0x00, 0x60, 0x06, 0x30, 0x00, 0x60, 0x06, 0x30, 0x00, 0xC0, 0x0E, 0x38, 0x00, 0x80, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 244 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0xC0, 0x1C, 0x1C, 0x00, 0xE0, 0x0E, 0x38, 0x00, 0x60, 0x06, 0x30, 0x00, 0x60, 0x06, 0x30, 0x00, 0xC0, 0x06, 0x30, 0x00, 0xC0, 0x0E, 0x38, 0x00, 0xE0, 0x1C, 0x1C, 0x00, 0x60, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 245 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0xC0, 0x0E, 0x38, 0x00, 0xC0, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0xC0, 0x0E, 0x38, 0x00, 0xC0, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x07, // 246 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xB6, 0x01, 0x00, 0x00, 0xB6, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, // 247 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x67, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x0E, 0x3F, 0x00, 0x00, 0x86, 0x33, 0x00, 0x00, 0xE6, 0x31, 0x00, 0x00, 0x76, 0x30, 0x00, 0x00, 0x3E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xF3, 0x07, // 248 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x20, 0x00, 0x38, 0x00, 0x60, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x80, 0x00, 0x30, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, // 249 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x80, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x30, 0x00, 0x60, 0x00, 0x18, 0x00, 0x20, 0x00, 0x0C, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, // 250 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x80, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x80, 0x00, 0x0C, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, // 251 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0xC0, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x00, 0x0C, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0xFE, 0x3F, // 252 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x06, 0x00, 0xF0, 0x01, 0x06, 0x00, 0x80, 0x0F, 0x07, 0x80, 0x00, 0xFE, 0x03, 0xE0, 0x00, 0xFC, 0x00, 0x60, 0xC0, 0x1F, 0x00, 0x20, 0xF8, 0x03, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x06, // 253 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x1C, 0x18, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xF0, 0x03, // 254 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x06, 0xC0, 0xF0, 0x01, 0x06, 0xC0, 0x80, 0x0F, 0x07, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0xFC, 0x00, 0xC0, 0xC0, 0x1F, 0x00, 0xC0, 0xF8, 0x03, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x06, // 255 }; \ No newline at end of file From 1c827f5512538617aad4b2d1c7faacb867dbad89 Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Wed, 26 Feb 2025 21:01:34 -0800 Subject: [PATCH 31/34] DevContainers: Include meshtasticd dependencies (#5699) * Include meshtasticd dependencies * Remove device-ui checkin * Add trunk rules matching other Dockerfiles --------- Co-authored-by: vidplace7 --- .devcontainer/Dockerfile | 9 ++++++--- bin/build-native.sh | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 62f0b7ead..d599f447f 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,9 +1,10 @@ +# trunk-ignore-all(terrascan/AC_DOCKER_0002): Known terrascan issue +# trunk-ignore-all(hadolint/DL3008): Do not pin apt package versions +# trunk-ignore-all(hadolint/DL3013): Do not pin pip package versions FROM mcr.microsoft.com/devcontainers/cpp:1-debian-12 USER root -# trunk-ignore(terrascan/AC_DOCKER_0002): Known terrascan issue -# trunk-ignore(hadolint/DL3008): Use latest version of packages RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ && apt-get -y install --no-install-recommends \ ca-certificates \ @@ -27,9 +28,11 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ hwdata \ gpg \ gnupg2 \ + libusb-1.0-0-dev \ + libi2c-dev \ && apt-get clean && rm -rf /var/lib/apt/lists/* -RUN pipx install platformio==6.1.15 +RUN pipx install platformio COPY 99-platformio-udev.rules /etc/udev/rules.d/99-platformio-udev.rules diff --git a/bin/build-native.sh b/bin/build-native.sh index cda77b064..c6b1434dd 100755 --- a/bin/build-native.sh +++ b/bin/build-native.sh @@ -24,7 +24,7 @@ mkdir -p $OUTDIR/ rm -r $OUTDIR/* || true # Important to pull latest version of libs into all device flavors, otherwise some devices might be stale -platformio pkg update --environment native || platformioFailed +pio pkg update --environment native || platformioFailed pio run --environment native || platformioFailed cp .pio/build/native/program "$OUTDIR/meshtasticd_linux_$(uname -m)" cp bin/native-install.* $OUTDIR From b46bf1638552a28b3d9a0d8250330d7cf5bae584 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 27 Feb 2025 13:49:59 +0800 Subject: [PATCH 32/34] Upgrade trunk (#6160) Co-authored-by: vidplace7 <1779290+vidplace7@users.noreply.github.com> --- .trunk/trunk.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index becd6f55f..f35554a72 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -9,10 +9,10 @@ plugins: lint: enabled: - prettier@3.5.2 - - trufflehog@3.88.12 + - trufflehog@3.88.13 - yamllint@1.35.1 - bandit@1.8.3 - - checkov@3.2.373 + - checkov@3.2.377 - terrascan@1.19.9 - trivy@0.59.1 - taplo@0.9.3 From fc289198c966b161ccd81487f6cb9b3d2d152d14 Mon Sep 17 00:00:00 2001 From: gjelsoe <36234524+gjelsoe@users.noreply.github.com> Date: Sat, 15 Feb 2025 19:18:25 +0100 Subject: [PATCH 33/34] Update Power.cpp First stab at using I2C detected INA addr. --- src/Power.cpp | 38 +++++++++++++++----------------------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/src/Power.cpp b/src/Power.cpp index 8d5fe1c32..932dee736 100644 --- a/src/Power.cpp +++ b/src/Power.cpp @@ -421,7 +421,7 @@ class AnalogBatteryLevel : public HasBatteryLevel if (hasINA()) { // get current flow from INA sensor - negative value means power flowing into the battery // default assuming BATTERY+ <--> INA_VIN+ <--> SHUNT RESISTOR <--> INA_VIN- <--> LOAD - LOG_DEBUG("Using INA on I2C addr 0x%x for charging detection", config.power.device_battery_ina_address); +// LOG_DEBUG("Using INA on I2C addr 0x%x for charging detection", config.power.device_battery_ina_address); #if defined(INA_CHARGING_DETECTION_INVERT) return getINACurrent() > 0; #else @@ -464,16 +464,13 @@ class AnalogBatteryLevel : public HasBatteryLevel #if HAS_TELEMETRY && !MESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR && !defined(ARCH_PORTDUINO) && !defined(ARCH_STM32WL) uint16_t getINAVoltage() { - if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first == config.power.device_battery_ina_address) { + if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first > 0) { return ina219Sensor.getBusVoltageMv(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first == - config.power.device_battery_ina_address) { + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first > 0) { return ina226Sensor.getBusVoltageMv(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA260].first == - config.power.device_battery_ina_address) { + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA260].first > 0) { return ina260Sensor.getBusVoltageMv(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first == - config.power.device_battery_ina_address) { + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first > 0) { return ina3221Sensor.getBusVoltageMv(); } return 0; @@ -481,13 +478,11 @@ class AnalogBatteryLevel : public HasBatteryLevel int16_t getINACurrent() { - if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first == config.power.device_battery_ina_address) { + if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first > 0) { return ina219Sensor.getCurrentMa(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first == - config.power.device_battery_ina_address) { + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first > 0) { return ina226Sensor.getCurrentMa(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first == - config.power.device_battery_ina_address) { + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first > 0) { return ina3221Sensor.getCurrentMa(); } return 0; @@ -495,24 +490,21 @@ class AnalogBatteryLevel : public HasBatteryLevel bool hasINA() { - if (!config.power.device_battery_ina_address) { - return false; - } - if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first == config.power.device_battery_ina_address) { +// if (!config.power.device_battery_ina_address) { +// return false; +// } + if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first > 0) { if (!ina219Sensor.isInitialized()) return ina219Sensor.runOnce() > 0; return ina219Sensor.isRunning(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first == - config.power.device_battery_ina_address) { + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first > 0) { if (!ina226Sensor.isInitialized()) return ina226Sensor.runOnce() > 0; - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA260].first == - config.power.device_battery_ina_address) { + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA260].first > 0) { if (!ina260Sensor.isInitialized()) return ina260Sensor.runOnce() > 0; return ina260Sensor.isRunning(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first == - config.power.device_battery_ina_address) { + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first > 0) { if (!ina3221Sensor.isInitialized()) return ina3221Sensor.runOnce() > 0; return ina3221Sensor.isRunning(); From 81176de5a7695246ce781aea993531461feb42a5 Mon Sep 17 00:00:00 2001 From: gjelsoe <36234524+gjelsoe@users.noreply.github.com> Date: Sat, 15 Feb 2025 23:40:27 +0100 Subject: [PATCH 34/34] Update Power.cpp Take two --- src/Power.cpp | 124 ++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 90 insertions(+), 34 deletions(-) diff --git a/src/Power.cpp b/src/Power.cpp index 932dee736..e43e7bf40 100644 --- a/src/Power.cpp +++ b/src/Power.cpp @@ -72,6 +72,7 @@ static const uint8_t ext_chrg_detect_value = EXT_CHRG_DETECT_VALUE; #endif #if HAS_TELEMETRY && !MESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR && !defined(ARCH_PORTDUINO) +uint8_t INA_ADDR_LOCAL; INA219Sensor ina219Sensor; INA226Sensor ina226Sensor; INA260Sensor ina260Sensor; @@ -421,7 +422,8 @@ class AnalogBatteryLevel : public HasBatteryLevel if (hasINA()) { // get current flow from INA sensor - negative value means power flowing into the battery // default assuming BATTERY+ <--> INA_VIN+ <--> SHUNT RESISTOR <--> INA_VIN- <--> LOAD -// LOG_DEBUG("Using INA on I2C addr 0x%x for charging detection", config.power.device_battery_ina_address); + //LOG_DEBUG("Using INA on I2C addr 0x%x for charging detection", config.power.device_battery_ina_address); + LOG_DEBUG("Using INA on I2C addr 0x%x for charging detection", INA_ADDR_LOCAL); #if defined(INA_CHARGING_DETECTION_INVERT) return getINACurrent() > 0; #else @@ -462,53 +464,107 @@ class AnalogBatteryLevel : public HasBatteryLevel #endif #if HAS_TELEMETRY && !MESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR && !defined(ARCH_PORTDUINO) && !defined(ARCH_STM32WL) +/* + Read Voltage from INA using autodetect of addr first else use addr in config.power.device_battery_ina_address +*/ uint16_t getINAVoltage() { - if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first > 0) { - return ina219Sensor.getBusVoltageMv(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first > 0) { - return ina226Sensor.getBusVoltageMv(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA260].first > 0) { - return ina260Sensor.getBusVoltageMv(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first > 0) { - return ina3221Sensor.getBusVoltageMv(); + if (!config.power.device_battery_ina_address) { + if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first > 0) { + return ina219Sensor.getBusVoltageMv(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first > 0) { + return ina226Sensor.getBusVoltageMv(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA260].first > 0) { + return ina260Sensor.getBusVoltageMv(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first > 0) { + return ina3221Sensor.getBusVoltageMv(); + } + } else if (config.power.device_battery_ina_address) { + if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first == config.power.device_battery_ina_address) { + return ina219Sensor.getBusVoltageMv(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first == config.power.device_battery_ina_address) { + return ina226Sensor.getBusVoltageMv(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA260].first == config.power.device_battery_ina_address) { + return ina260Sensor.getBusVoltageMv(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first == config.power.device_battery_ina_address) { + return ina3221Sensor.getBusVoltageMv(); + } } return 0; } - int16_t getINACurrent() +/* + Read Current from INA using autodetect of addr first else use addr in config.power.device_battery_ina_address +*/ +int16_t getINACurrent() { - if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first > 0) { - return ina219Sensor.getCurrentMa(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first > 0) { - return ina226Sensor.getCurrentMa(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first > 0) { - return ina3221Sensor.getCurrentMa(); + if (!config.power.device_battery_ina_address) { + if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first > 0) { + return ina219Sensor.getCurrentMa(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first > 0) { + return ina226Sensor.getCurrentMa(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first > 0) { + return ina3221Sensor.getCurrentMa(); + } + } else if (config.power.device_battery_ina_address) { + if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first == config.power.device_battery_ina_address) { + return ina219Sensor.getCurrentMa(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first == config.power.device_battery_ina_address) { + return ina226Sensor.getCurrentMa(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first == config.power.device_battery_ina_address) { + return ina3221Sensor.getCurrentMa(); + } } return 0; } bool hasINA() +/* + Use autodetect of addr first else use addr in config.power.device_battery_ina_address + Store INA addr in local variable for later use. +*/ { -// if (!config.power.device_battery_ina_address) { -// return false; -// } - if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first > 0) { - if (!ina219Sensor.isInitialized()) - return ina219Sensor.runOnce() > 0; - return ina219Sensor.isRunning(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first > 0) { - if (!ina226Sensor.isInitialized()) - return ina226Sensor.runOnce() > 0; - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA260].first > 0) { - if (!ina260Sensor.isInitialized()) - return ina260Sensor.runOnce() > 0; - return ina260Sensor.isRunning(); - } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first > 0) { - if (!ina3221Sensor.isInitialized()) - return ina3221Sensor.runOnce() > 0; - return ina3221Sensor.isRunning(); + if (!config.power.device_battery_ina_address) { + if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first > 0) { + INA_ADDR_LOCAL = nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first; + if (!ina219Sensor.isInitialized()) + return ina219Sensor.runOnce() > 0; + return ina219Sensor.isRunning(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first > 0) { + INA_ADDR_LOCAL = nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first; + if (!ina226Sensor.isInitialized()) + return ina226Sensor.runOnce() > 0; + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA260].first > 0) { + INA_ADDR_LOCAL = nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA260].first; + if (!ina260Sensor.isInitialized()) + return ina260Sensor.runOnce() > 0; + return ina260Sensor.isRunning(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first > 0) { + INA_ADDR_LOCAL = nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first; + if (!ina3221Sensor.isInitialized()) + return ina3221Sensor.runOnce() > 0; + return ina3221Sensor.isRunning(); + } + } else if (config.power.device_battery_ina_address) { + INA_ADDR_LOCAL = config.power.device_battery_ina_address; + if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA219].first == config.power.device_battery_ina_address) { + if (!ina219Sensor.isInitialized()) + return ina219Sensor.runOnce() > 0; + return ina219Sensor.isRunning(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA226].first == config.power.device_battery_ina_address) { + if (!ina226Sensor.isInitialized()) + return ina226Sensor.runOnce() > 0; + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA260].first == config.power.device_battery_ina_address) { + if (!ina260Sensor.isInitialized()) + return ina260Sensor.runOnce() > 0; + return ina260Sensor.isRunning(); + } else if (nodeTelemetrySensorsMap[meshtastic_TelemetrySensorType_INA3221].first == config.power.device_battery_ina_address) { + if (!ina3221Sensor.isInitialized()) + return ina3221Sensor.runOnce() > 0; + return ina3221Sensor.isRunning(); + } } + INA_ADDR_LOCAL = 0; return false; } #endif