From 5ac98a773a5b0dc990467b86844cf829c0e5d717 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Tue, 12 Sep 2023 03:15:33 +0200 Subject: [PATCH 01/68] exclude .vs/ --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 38fac82..13cd289 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .pio .vscode +.vs NerdMinerLog.txt bin/0x10000_firmware.bin logs From ad1dcda5a99f4579823b605a9a431dd25e5925bd Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Tue, 12 Sep 2023 03:27:31 +0200 Subject: [PATCH 02/68] add board --- platformio.ini | 26 +++++++++++++++++++++++++- src/drivers/devices/esp32CAM.h | 9 +++++++++ src/drivers/drivers.h | 2 ++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 src/drivers/devices/esp32CAM.h diff --git a/platformio.ini b/platformio.ini index dbf36b3..3a00bb0 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,7 +10,7 @@ [platformio] globallib_dir = lib -default_envs = NerminerV2, ESP32-devKitv1 +default_envs = NerminerV2, ESP32-devKitv1 [env:NerminerV2] platform = espressif32 @@ -137,3 +137,27 @@ lib_deps = arduino-libraries/NTPClient https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 https://github.com/FastLED/FastLED + +[env:esp32cam] +platform = espressif32 +board = esp32cam +framework = arduino +monitor_filters = + esp32_exception_decoder + time + log2file +board_build.arduino.memory_type = qio_opi +monitor_speed = 115200 +upload_speed = 230400 +board_build.partitions = huge_app.csv +build_flags = + -D ESP32_CAM + -D MONITOR_SPEED=${this.monitor_speed} + ;-D DEBUG_MINING=1 +lib_deps = + bblanchon/ArduinoJson@^6.21.2 + https://github.com/tzapu/WiFiManager.git + mathertel/OneButton @ ^2.0.3 + arduino-libraries/NTPClient +;lib_ignore = + ;TFT_eSPI diff --git a/src/drivers/devices/esp32CAM.h b/src/drivers/devices/esp32CAM.h new file mode 100644 index 0000000..08e0377 --- /dev/null +++ b/src/drivers/devices/esp32CAM.h @@ -0,0 +1,9 @@ +#ifndef _ESP32CAM_H_ +#define _ESP32CAM_H_ + +#define PIN_BUTTON_1 0 +#define LED_PIN 2 + +#define NO_DISPLAY + +#endif // _ESP32_CAM_H_ \ No newline at end of file diff --git a/src/drivers/drivers.h b/src/drivers/drivers.h index 6afbcc9..b2c1e46 100644 --- a/src/drivers/drivers.h +++ b/src/drivers/drivers.h @@ -11,6 +11,8 @@ #include "devices/lilygoS3Amoled.h" #elif defined(NERMINER_S3_DONGLE) #include "devices/lilygoS3Dongle.h" +#elif defined(ESP32_CAM) +#include "devices/esp32CAM.h" #else #error "No device defined" #endif From fa6f97d7c85f5aa3fb9254a73339e177473c79b8 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Tue, 12 Sep 2023 04:00:18 +0200 Subject: [PATCH 03/68] update --- platformio.ini | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/platformio.ini b/platformio.ini index 3a00bb0..15f50de 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,7 +10,7 @@ [platformio] globallib_dir = lib -default_envs = NerminerV2, ESP32-devKitv1 +default_envs = esp32cam ;NerminerV2, ESP32-devKitv1 [env:NerminerV2] platform = espressif32 @@ -146,18 +146,16 @@ monitor_filters = esp32_exception_decoder time log2file -board_build.arduino.memory_type = qio_opi monitor_speed = 115200 upload_speed = 230400 board_build.partitions = huge_app.csv build_flags = - -D ESP32_CAM + -D ESP32_CAM=1 -D MONITOR_SPEED=${this.monitor_speed} - ;-D DEBUG_MINING=1 lib_deps = bblanchon/ArduinoJson@^6.21.2 https://github.com/tzapu/WiFiManager.git mathertel/OneButton @ ^2.0.3 - arduino-libraries/NTPClient -;lib_ignore = - ;TFT_eSPI + arduino-libraries/NTPClient +lib_ignore = + TFT_eSPI From 5365ebf8ec894c796a726414281411cfdf9f5ced Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Tue, 12 Sep 2023 04:06:01 +0200 Subject: [PATCH 04/68] baud rate set by build flag, if available --- src/NerdMinerV2.ino.cpp | 7 ++++++- src/wManager.cpp | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/NerdMinerV2.ino.cpp b/src/NerdMinerV2.ino.cpp index 94e802f..5c0e4a7 100644 --- a/src/NerdMinerV2.ino.cpp +++ b/src/NerdMinerV2.ino.cpp @@ -38,7 +38,12 @@ const char* ntpServer = "pool.ntp.org"; /********* INIT *****/ void setup() { - Serial.begin(115200); +#ifdef MONITOR_SPEED + Serial.begin(MONITOR_SPEED); +#else + Serial.begin(115200); +#endif //MONITOR_SPEED + Serial.setTimeout(0); delay(100); diff --git a/src/wManager.cpp b/src/wManager.cpp index 51b5d27..4248f05 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -135,7 +135,11 @@ void configModeCallback(WiFiManager *myWiFiManager) void init_WifiManager() { - Serial.begin(115200); +#ifdef MONITOR_SPEED + Serial.begin(MONITOR_SPEED); +#else + Serial.begin(115200); +#endif //MONITOR_SPEED //Serial.setTxTimeoutMs(10); //Init pin 15 to eneble 5V external power (LilyGo bug) From d5d0a1e63b44a01f8077e7725a3b9554ba6e826a Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Tue, 12 Sep 2023 05:30:55 +0200 Subject: [PATCH 05/68] add header guards --- src/wManager.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/wManager.h b/src/wManager.h index 870b435..7c8dc64 100644 --- a/src/wManager.h +++ b/src/wManager.h @@ -1,3 +1,8 @@ +#ifndef _WMANAGER_H +#define _WMANAGER_H + void init_WifiManager(); void wifiManagerProcess(); -void reset_configurations(); \ No newline at end of file +void reset_configurations(); + +#endif // _WMANAGER_H From 37ca603ed5958c7801fe384ffec26a42a46cfa80 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Tue, 12 Sep 2023 09:26:28 +0200 Subject: [PATCH 06/68] separate spiffs --- src/drivers/SPIStorage/SPIStorage.h | 129 ++++++++ src/drivers/storage.h | 16 + src/mining.cpp | 16 +- src/monitor.cpp | 6 +- src/wManager.cpp | 450 ++++++++++++---------------- 5 files changed, 342 insertions(+), 275 deletions(-) create mode 100644 src/drivers/SPIStorage/SPIStorage.h create mode 100644 src/drivers/storage.h diff --git a/src/drivers/SPIStorage/SPIStorage.h b/src/drivers/SPIStorage/SPIStorage.h new file mode 100644 index 0000000..3a3ad35 --- /dev/null +++ b/src/drivers/SPIStorage/SPIStorage.h @@ -0,0 +1,129 @@ +#ifndef _SPISTORAGE_H_ +#define _SPISTORAGE_H_ + +#define ESP_DRD_USE_SPIFFS true + +#include +#include +#include + +#include + +#include "..\drivers.h" +#include "..\storage.h" + +// JSON configuration file +#define JSON_CONFIG_FILE "/config.json" + +class SPIStorage +{ +private: + bool SPIFFSInitialized_; +public: + SPIStorage() + { + SPIFFSInitialized_ = init(); + } + + ~SPIStorage() + { + SPIFFS.end(); + }; + + void saveConfigFile(TSettings*Settings) + { + // Save Config in JSON format + Serial.println(F("Saving configuration...")); + + // Create a JSON document + StaticJsonDocument<512> json; + json["poolString"] = Settings->PoolAddress; + json["portNumber"] = Settings->PoolPort; + json["btcString"] = Settings->BtcWallet; + json["gmtZone"] = Settings->Timezone; + + // Open config file + File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); + if (!configFile) + { + // Error, file did not open + Serial.println("failed to open config file for writing"); + } + + // Serialize JSON data to write to file + serializeJsonPretty(json, Serial); + if (serializeJson(json, configFile) == 0) + { + // Error writing file + Serial.println(F("Failed to write to file")); + } + // Close file + configFile.close(); + } + + bool init() + { + if (SPIFFSInitialized_) + return SPIFFSInitialized_; + return SPIFFS.begin(false) || SPIFFS.begin(true); + }; + + TSettings loadConfigFile() + { + // Load existing configuration file + // Uncomment if we need to format filesystem + // SPIFFS.format(); + + // Read configuration from FS json + Serial.println("Mounting File System..."); + TSettings Settings; + // May need to make it begin(true) first time you are using SPIFFS + if ((SPIFFSInitialized_)||(init())) + { + Serial.println("mounted file system"); + if (SPIFFS.exists(JSON_CONFIG_FILE)) + { + // The file exists, reading and loading + Serial.println("reading config file"); + File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); + if (configFile) + { + Serial.println("Opened configuration file"); + StaticJsonDocument<512> json; + DeserializationError error = deserializeJson(json, configFile); + configFile.close(); + serializeJsonPretty(json, Serial); + if (!error) + { + Serial.println("Parsing JSON"); + + strcpy(Settings.PoolAddress, json["poolString"]); + strcpy(Settings.BtcWallet, json["btcString"]); + Settings.PoolPort = json["portNumber"].as(); + Settings.Timezone = json["gmtZone"].as(); + Settings.holdsData = true; + } + else + { + // Error loading JSON data + Serial.println("Failed to load json config"); + } + } + } + } + else + { + // Error mounting file system + Serial.println("Failed to mount FS"); + } + return Settings; + } + + void deleteConfigFile() + { + Serial.println("Erasing config file.."); + SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero + } +}; + +#endif // _SPISTORAGE_H_ diff --git a/src/drivers/storage.h b/src/drivers/storage.h new file mode 100644 index 0000000..5fbd4b7 --- /dev/null +++ b/src/drivers/storage.h @@ -0,0 +1,16 @@ +#ifndef _STORAGE_H_ +#define _STORAGE_H_ + +class TSettings +{ +public: + char WifiSSID[80]{ "sA51" }; + char WifiPW[80]{ "0000" }; + char PoolAddress[80]{ "public-pool.io" }; + char BtcWallet[80]{ "yourBtcAddress" }; + uint32_t PoolPort{ 21496 }; + uint32_t Timezone{ 2 }; + bool holdsData{ false }; +}; + +#endif // _STORAGE_H_ \ No newline at end of file diff --git a/src/mining.cpp b/src/mining.cpp index 3d9d74b..454b4cf 100644 --- a/src/mining.cpp +++ b/src/mining.cpp @@ -9,6 +9,7 @@ #include "utils.h" #include "monitor.h" #include "drivers/display.h" +#include "drivers/storage.h" unsigned long templates = 0; unsigned long hashes= 0; @@ -23,9 +24,8 @@ unsigned int valids; // increased if blockhash <= target double best_diff = 0.0; // Variables to hold data from custom textboxes -extern char poolString[80]; -extern int portNumber; -extern char btcString[80]; +extern TSettings Settings; + IPAddress serverIP(1, 1, 1, 1); //Temporally save poolIPaddres //Global work data @@ -49,14 +49,14 @@ bool checkPoolConnection(void) { //Resolve first time pool DNS and save IP if(serverIP == IPAddress(1,1,1,1)) { - WiFi.hostByName(poolString, serverIP); + WiFi.hostByName(Settings.PoolAddress, serverIP); Serial.printf("Resolved DNS and save ip (first time) got: %s\n", serverIP.toString()); } //Try connecting pool IP - if (!client.connect(serverIP, portNumber)) { - Serial.println("Imposible to connect to : " + String(poolString)); - WiFi.hostByName(poolString, serverIP); + if (!client.connect(serverIP, Settings.PoolPort)) { + Serial.println("Imposible to connect to : " + String(Settings.PoolAddress)); + WiFi.hostByName(Settings.PoolAddress, serverIP); Serial.printf("Resolved DNS got: %s\n", serverIP.toString()); vTaskDelay(1000 / portTICK_PERIOD_MS); return false; @@ -156,7 +156,7 @@ void runStratumWorker(void *name) { continue; } - strcpy(mWorker.wName, btcString); + strcpy(mWorker.wName, Settings.BtcWallet); strcpy(mWorker.wPass, "x"); // STEP 2: Pool authorize work (Block Info) tx_mining_auth(client, mWorker.wName, mWorker.wPass); //Don't verifies authoritzation, TODO diff --git a/src/monitor.cpp b/src/monitor.cpp index a5c652e..c5bd398 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -7,8 +7,8 @@ #include "mining.h" #include "utils.h" #include "monitor.h" +#include "drivers/storage.h" -extern char poolString[80]; extern unsigned long templates; extern unsigned long hashes; extern unsigned long Mhashes; @@ -22,7 +22,7 @@ extern double best_diff; // track best diff extern monitor_data mMonitor; -extern int GMTzone; //Gotten from saved config +extern TSettings Settings; //Gotten from saved config WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 3600, 60000); @@ -37,7 +37,7 @@ void setup_monitor(void){ // Adjust offset depending on your zone // GMT +2 in seconds (zona horaria de Europa Central) - timeClient.setTimeOffset(3600 * GMTzone); + timeClient.setTimeOffset(3600 * Settings.Timezone); Serial.println("TimeClient setup done"); } diff --git a/src/wManager.cpp b/src/wManager.cpp index 4248f05..3151e58 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -1,138 +1,68 @@ -#define ESP_DRD_USE_SPIFFS true // Include Libraries //#include ".h" #include -#include -#include #include -#include + #include "wManager.h" #include "monitor.h" #include "drivers/display.h" -// JSON configuration file -#define JSON_CONFIG_FILE "/config.json" +#include "drivers/SPIStorage/SPIStorage.h" +#include "drivers/storage.h" // Flag for saving data bool shouldSaveConfig = false; -// Variables to hold data from custom textboxes -char poolString[80] = "public-pool.io"; -int portNumber = 21496;//3333; -char btcString[80] = "yourBtcAddress"; -int GMTzone = 2; //Currently selected in spain - +DisplayDriver dongleDisplayDriver = {}; +TSettings Settings; +/* { + .BtcWallet = "", + .holdsData = false, + .PoolAddress = "", + .PoolPort = 0, + .Timezone = 0, + .WifiPW = "", + .WifiSSID = "" +} +*/ // Define WiFiManager Object WiFiManager wm; extern monitor_data mMonitor; -void saveConfigFile() -// Save Config in JSON format -{ - Serial.println(F("Saving configuration...")); - - // Create a JSON document - StaticJsonDocument<512> json; - json["poolString"] = poolString; - json["portNumber"] = portNumber; - json["btcString"] = btcString; - json["gmtZone"] = GMTzone; - - // Open config file - File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); - if (!configFile) - { - // Error, file did not open - Serial.println("failed to open config file for writing"); - } - - // Serialize JSON data to write to file - serializeJsonPretty(json, Serial); - if (serializeJson(json, configFile) == 0) - { - // Error writing file - Serial.println(F("Failed to write to file")); - } - // Close file - configFile.close(); -} - -bool loadConfigFile() -// Load existing configuration file -{ - // Uncomment if we need to format filesystem - // SPIFFS.format(); - - // Read configuration from FS json - Serial.println("Mounting File System..."); - - // May need to make it begin(true) first time you are using SPIFFS - if (SPIFFS.begin(false) || SPIFFS.begin(true)) - { - Serial.println("mounted file system"); - if (SPIFFS.exists(JSON_CONFIG_FILE)) - { - // The file exists, reading and loading - Serial.println("reading config file"); - File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); - if (configFile) - { - Serial.println("Opened configuration file"); - StaticJsonDocument<512> json; - DeserializationError error = deserializeJson(json, configFile); - configFile.close(); - serializeJsonPretty(json, Serial); - if (!error) - { - Serial.println("Parsing JSON"); - - strcpy(poolString, json["poolString"]); - strcpy(btcString, json["btcString"]); - portNumber = json["portNumber"].as(); - GMTzone = json["gmtZone"].as(); - return true; - } - else - { - // Error loading JSON data - Serial.println("Failed to load json config"); - } - } - } - } - else - { - // Error mounting file system - Serial.println("Failed to mount FS"); - } - - return false; -} - +SPIStorage SPIFS; void saveConfigCallback() // Callback notifying us of the need to save configuration { - Serial.println("Should save config"); - shouldSaveConfig = true; - //wm.setConfigPortalBlocking(false); + Serial.println("Should save config"); + shouldSaveConfig = true; + //wm.setConfigPortalBlocking(false); } -void configModeCallback(WiFiManager *myWiFiManager) +void configModeCallback(WiFiManager* myWiFiManager) // Called when config mode launched { - Serial.println("Entered Configuration Mode"); + Serial.println("Entered Configuration Mode"); - Serial.print("Config SSID: "); - Serial.println(myWiFiManager->getConfigPortalSSID()); + Serial.print("Config SSID: "); + Serial.println(myWiFiManager->getConfigPortalSSID()); - Serial.print("Config IP Address: "); - Serial.println(WiFi.softAPIP()); + Serial.print("Config IP Address: "); + Serial.println(WiFi.softAPIP()); } +void reset_configurations() +{ + Serial.println("Erasing Config, restarting"); + SPIFS.deleteConfigFile(); + wm.resetSettings(); + ESP.restart(); +} + + void init_WifiManager() { #ifdef MONITOR_SPEED @@ -140,186 +70,178 @@ void init_WifiManager() #else Serial.begin(115200); #endif //MONITOR_SPEED - //Serial.setTxTimeoutMs(10); + //Serial.setTxTimeoutMs(10); - //Init pin 15 to eneble 5V external power (LilyGo bug) - #ifdef PIN_ENABLE5V + //Init pin 15 to eneble 5V external power (LilyGo bug) +#ifdef PIN_ENABLE5V pinMode(PIN_ENABLE5V, OUTPUT); digitalWrite(PIN_ENABLE5V, HIGH); - #endif +#endif - // Change to true when testing to force configuration every time we run - bool forceConfig = false; + // Change to true when testing to force configuration every time we run + bool forceConfig = false; - #if defined(PIN_BUTTON_2) +#if defined(PIN_BUTTON_2) // Check if button2 is pressed to enter configMode with actual configuration - if(!digitalRead(PIN_BUTTON_2)){ - Serial.println(F("Button pressed to force start config mode")); - forceConfig = true; - wm.setBreakAfterConfig(true); //Set to detect config edition and save + if (!digitalRead(PIN_BUTTON_2)) { + Serial.println(F("Button pressed to force start config mode")); + resetConfig(); + forceConfig = true; + wm.setBreakAfterConfig(true); //Set to detect config edition and save } - #endif - - bool spiffsSetup = loadConfigFile(); - if (!spiffsSetup) - { - Serial.println(F("Forcing config mode as there is no saved config")); - forceConfig = true; - - } +#endif + // Explicitly set WiFi mode + WiFi.mode(WIFI_STA); - // Explicitly set WiFi mode - WiFi.mode(WIFI_STA); - - // Reset settings (only for development) - //wm.resetSettings(); - - //Set dark theme - //wm.setClass("invert"); // dark theme - - // Set config save notify callback - wm.setSaveConfigCallback(saveConfigCallback); - - // Set callback that gets called when connecting to previous WiFi fails, and enters Access Point mode - wm.setAPCallback(configModeCallback); - - //Advanced settings - wm.setConfigPortalBlocking(false); //Hacemos que el portal no bloquee el firmware - wm.setConnectTimeout(50); // how long to try to connect for before continuing - //wm.setConfigPortalTimeout(30); // auto close configportal after n seconds - // wm.setCaptivePortalEnable(false); // disable captive portal redirection - // wm.setAPClientCheck(true); // avoid timeout if client connected to softap - //wm.setTimeout(120); - //wm.setConfigPortalTimeout(120); //seconds - - // Custom elements - - // Text box (String) - 80 characters maximum - WiFiManagerParameter pool_text_box("Poolurl", "Pool url", poolString, 80); - - // Need to convert numerical input to string to display the default value. - char convertedValue[6]; - sprintf(convertedValue, "%d", portNumber); - - // Text box (Number) - 7 characters maximum - WiFiManagerParameter port_text_box_num("Poolport", "Pool port", convertedValue, 7); - - // Text box (String) - 80 characters maximum - WiFiManagerParameter addr_text_box("btcAddress", "Your BTC address", btcString, 80); - - // Text box (Number) - 2 characters maximum - char charZone[6]; - sprintf(charZone, "%d", GMTzone); - WiFiManagerParameter time_text_box_num("TimeZone", "TimeZone fromUTC (-12/+12)", charZone, 3); - - // Add all defined parameters - wm.addParameter(&pool_text_box); - wm.addParameter(&port_text_box_num); - wm.addParameter(&addr_text_box); - wm.addParameter(&time_text_box_num); - - Serial.println("AllDone: "); - if (forceConfig) - // Run if we need a configuration - { - //No configuramos timeout al modulo - wm.setConfigPortalBlocking(true); //Hacemos que el portal SI bloquee el firmware - drawSetupScreen(); - if (!wm.startConfigPortal("NerdMinerAP","MineYourCoins")) + Settings = SPIFS.loadConfigFile(); + if (!Settings.holdsData) { - Serial.println("failed to connect and hit timeout"); - //Could be break forced after edditing, so save new config - strncpy(poolString, pool_text_box.getValue(), sizeof(poolString)); - portNumber = atoi(port_text_box_num.getValue()); - strncpy(btcString, addr_text_box.getValue(), sizeof(btcString)); - GMTzone = atoi(time_text_box_num.getValue()); - saveConfigFile(); - delay(3000); - //reset and try again, or maybe put it to deep sleep - ESP.restart(); - delay(5000); + Serial.println(F("Forcing config mode as there is no saved config")); + forceConfig = true; + }; + + // Reset settings (only for development) + //wm.resetSettings(); + + //Set dark theme + //wm.setClass("invert"); // dark theme + + // Set config save notify callback + wm.setSaveConfigCallback(saveConfigCallback); + + // Set callback that gets called when connecting to previous WiFi fails, and enters Access Point mode + wm.setAPCallback(configModeCallback); + + //Advanced settings + wm.setConfigPortalBlocking(false); //Hacemos que el portal no bloquee el firmware + wm.setConnectTimeout(50); // how long to try to connect for before continuing + //wm.setConfigPortalTimeout(30); // auto close configportal after n seconds + // wm.setCaptivePortalEnable(false); // disable captive portal redirection + // wm.setAPClientCheck(true); // avoid timeout if client connected to softap + //wm.setTimeout(120); + //wm.setConfigPortalTimeout(120); //seconds + + // Custom elements + + // Text box (String) - 80 characters maximum + WiFiManagerParameter pool_text_box("Poolurl", "Pool url", Settings.PoolAddress, 80); + + // Need to convert numerical input to string to display the default value. + char convertedValue[6]; + sprintf(convertedValue, "%d", Settings.PoolPort); + + // Text box (Number) - 7 characters maximum + WiFiManagerParameter port_text_box_num("Poolport", "Pool port", convertedValue, 7); + + // Text box (String) - 80 characters maximum + WiFiManagerParameter addr_text_box("btcAddress", "Your BTC address", Settings.BtcWallet, 80); + + // Text box (Number) - 2 characters maximum + char charZone[6]; + sprintf(charZone, "%d", Settings.Timezone); + WiFiManagerParameter time_text_box_num("TimeZone", "TimeZone fromUTC (-12/+12)", charZone, 3); + + // Add all defined parameters + wm.addParameter(&pool_text_box); + wm.addParameter(&port_text_box_num); + wm.addParameter(&addr_text_box); + wm.addParameter(&time_text_box_num); + + Serial.println("AllDone: "); + if (forceConfig) + // Run if we need a configuration + { + //No configuramos timeout al modulo + wm.setConfigPortalBlocking(true); //Hacemos que el portal SI bloquee el firmware + drawSetupScreen(); + Settings = TSettings(); + if (!wm.startConfigPortal(Settings.WifiSSID, Settings.WifiPW)) + { + Serial.println("failed to connect and hit timeout"); + //Could be break forced after edditing, so save new config + strncpy(Settings.PoolAddress, pool_text_box.getValue(), sizeof(Settings.PoolAddress)); + Settings.PoolPort = atoi(port_text_box_num.getValue()); + strncpy(Settings.BtcWallet, addr_text_box.getValue(), sizeof(Settings.BtcWallet)); + Settings.Timezone = atoi(time_text_box_num.getValue()); + SPIFS.saveConfigFile(&Settings); + delay(3000); + //reset and try again, or maybe put it to deep sleep + ESP.restart(); + delay(5000); + } } - } - else - { - //Tratamos de conectar con la configuraciĆ³n inicial ya almacenada + else + { + //Tratamos de conectar con la configuraciĆ³n inicial ya almacenada + mMonitor.NerdStatus = NM_Connecting; + wm.setCaptivePortalEnable(false); // disable captive portal redirection + if (!wm.autoConnect(Settings.WifiSSID, Settings.WifiPW)) + { + Serial.println("Failed to connect and hit timeout"); + //delay(3000); + // if we still have not connected restart and try all over again + //ESP.restart(); + //delay(5000); + } + } + mMonitor.NerdStatus = NM_Connecting; - wm.setCaptivePortalEnable(false); // disable captive portal redirection - if (!wm.autoConnect("NerdMinerAP","MineYourCoins")) - { - Serial.println("Failed to connect and hit timeout"); - //delay(3000); - // if we still have not connected restart and try all over again - //ESP.restart(); - //delay(5000); + + //Conectado a la red Wifi + if (WiFi.status() == WL_CONNECTED) { + //tft.pushImage(0, 0, MinerWidth, MinerHeight, MinerScreen); + Serial.println(""); + Serial.println("WiFi connected"); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + + // Lets deal with the user config values + + // Copy the string value + strncpy(Settings.PoolAddress, pool_text_box.getValue(), sizeof(Settings.PoolAddress)); + Serial.print("PoolString: "); + Serial.println(Settings.PoolAddress); + + //Convert the number value + Settings.PoolPort = atoi(port_text_box_num.getValue()); + Serial.print("portNumber: "); + Serial.println(Settings.PoolPort); + + // Copy the string value + strncpy(Settings.BtcWallet, addr_text_box.getValue(), sizeof(Settings.BtcWallet)); + Serial.print("btcString: "); + Serial.println(Settings.BtcWallet); + + //Convert the number value + Settings.Timezone = atoi(time_text_box_num.getValue()); + Serial.print("TimeZone fromUTC: "); + Serial.println(Settings.Timezone); } - } - mMonitor.NerdStatus = NM_Connecting; - - //Conectado a la red Wifi - if(WiFi.status() == WL_CONNECTED){ - //tft.pushImage(0, 0, MinerWidth, MinerHeight, MinerScreen); - Serial.println(""); - Serial.println("WiFi connected"); - Serial.print("IP address: "); - Serial.println(WiFi.localIP()); - - // Lets deal with the user config values - - // Copy the string value - strncpy(poolString, pool_text_box.getValue(), sizeof(poolString)); - Serial.print("PoolString: "); - Serial.println(poolString); - - //Convert the number value - portNumber = atoi(port_text_box_num.getValue()); - Serial.print("portNumber: "); - Serial.println(portNumber); - - // Copy the string value - strncpy(btcString, addr_text_box.getValue(), sizeof(btcString)); - Serial.print("btcString: "); - Serial.println(btcString); - - //Convert the number value - GMTzone = atoi(time_text_box_num.getValue()); - Serial.print("TimeZone fromUTC: "); - Serial.println(GMTzone); - } - - // Save the custom parameters to FS - if (shouldSaveConfig) - { - saveConfigFile(); - } + // Save the custom parameters to FS + if (shouldSaveConfig) + { + SPIFS.saveConfigFile(&Settings); + } } -void reset_configurations() { - Serial.println("Erasing Config, restarting"); - wm.resetSettings(); - SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero - ESP.restart(); -} - - //----------------- MAIN PROCESS WIFI MANAGER -------------- int oldStatus = 0; void wifiManagerProcess() { - - wm.process(); // avoid delays() in loop when non-blocking and other long running code - - int newStatus = WiFi.status(); - if (newStatus != oldStatus) { - if (newStatus == WL_CONNECTED) { - Serial.println("CONNECTED - Current ip: " + WiFi.localIP().toString()); - } else { - Serial.print("[Error] - current status: "); - Serial.println(newStatus); + + wm.process(); // avoid delays() in loop when non-blocking and other long running code + + int newStatus = WiFi.status(); + if (newStatus != oldStatus) { + if (newStatus == WL_CONNECTED) { + Serial.println("CONNECTED - Current ip: " + WiFi.localIP().toString()); + } else { + Serial.print("[Error] - current status: "); + Serial.println(newStatus); + } + oldStatus = newStatus; } - oldStatus = newStatus; - } } From 43f5d8fd5b060409a87487b5b0c2501020300291 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Tue, 12 Sep 2023 09:29:50 +0200 Subject: [PATCH 07/68] Load settings from SD card. --- src/drivers/devices/esp32CAM.h | 9 ++- src/drivers/memoryCard/SDCard.h | 121 ++++++++++++++++++++++++++++++++ src/wManager.cpp | 11 ++- 3 files changed, 137 insertions(+), 4 deletions(-) create mode 100644 src/drivers/memoryCard/SDCard.h diff --git a/src/drivers/devices/esp32CAM.h b/src/drivers/devices/esp32CAM.h index 08e0377..0dbb5f6 100644 --- a/src/drivers/devices/esp32CAM.h +++ b/src/drivers/devices/esp32CAM.h @@ -2,8 +2,15 @@ #define _ESP32CAM_H_ #define PIN_BUTTON_1 0 -#define LED_PIN 2 +#define LED_PIN 33 #define NO_DISPLAY +#define SDMMC_CLK 14 +#define SDMMC_CMD 15 +#define SDMMC_D0 2 +#define SDMMC_D1 4 +#define SDMMC_D2 12 +#define SDMMC_D3 13 + #endif // _ESP32_CAM_H_ \ No newline at end of file diff --git a/src/drivers/memoryCard/SDCard.h b/src/drivers/memoryCard/SDCard.h new file mode 100644 index 0000000..893e737 --- /dev/null +++ b/src/drivers/memoryCard/SDCard.h @@ -0,0 +1,121 @@ +#ifndef _SDCARD_H_ +#define _SDCARD_H_ + +#include +#include +#include + +#include + +#include "..\drivers.h" +#include "..\storage.h" +#include "..\SPIStorage\SPIStorage.h" + +#define JSON_CONFIG_FILE "/config.json" + +class SDCard +{ +private: + bool cardInitialized_; +public: + SDCard() + { + cardInitialized_ = initSDcard(); + } + + ~SDCard() + { + if (cardInitialized_) + SD_MMC.end(); + } + + bool initSDcard() + { + if (cardInitialized_) + return cardInitialized_; + + bool oneBitMode = true; +#if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) + if (SD_MMC.cardType() == CARD_NONE) + SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); + oneBitMode = false; +#elif defined (SDMMC_D0) && !(defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3)) + if (SD_MMC.cardType() == CARD_NONE) + SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); +#else + Serial.println("SD card interface not available."); + return false; +#endif // dataPinsDefined + + if ((!SD_MMC.begin("/sdcard", oneBitMode)) || (SD_MMC.cardType() == CARD_NONE)) + { + Serial.println("No card available."); + return false; + } + return true; + } + + TSettings loadConfigFile() + { + // Load existing configuration file + // Read configuration from FS json + Serial.println("Mounting SD card..."); + TSettings Settings; + + if (initSDcard()) + { + Serial.println("mounted SD card."); + if (SD_MMC.exists(JSON_CONFIG_FILE)) + { + // The file exists, reading and loading + Serial.println("reading config file from sd."); + File configFile = SD_MMC.open(JSON_CONFIG_FILE, "r"); + if (configFile) + { + Serial.println("Opened configuration file"); + StaticJsonDocument<512> json; + DeserializationError error = deserializeJson(json, configFile); + configFile.close(); + serializeJsonPretty(json, Serial); + if (!error) + { + Serial.println("Parsing JSON"); + strcpy(Settings.WifiSSID, json["SSID"]); + strcpy(Settings.WifiPW, json["Password"]); + strcpy(Settings.PoolAddress, json["PoolURL"]); + strcpy(Settings.BtcWallet, json["WalletID"]); + Settings.PoolPort = json["Port"].as(); + Settings.Timezone = json["Timezone"].as(); + Settings.holdsData = true; + } + else + { + // Error loading JSON data + Serial.println("Failed to load json config"); + } + } + SD_MMC.end(); + } + } + else + { + // Error mounting file system + Serial.println("Failed to mount SD card."); + } + return Settings; + } + + void SD2SPIStorage(SPIStorage* spifs) + { + TSettings Settings = loadConfigFile(); + if (Settings.holdsData) + { + spifs->saveConfigFile(&Settings); + WiFi.begin(Settings.WifiSSID, Settings.WifiPW); + Serial.println("Settings copied from SD card. Rebooting now."); + ESP.restart(); + } + } +}; + +#endif // _SDCARD_H_ diff --git a/src/wManager.cpp b/src/wManager.cpp index 3151e58..ea90a76 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -8,7 +8,7 @@ #include "wManager.h" #include "monitor.h" #include "drivers/display.h" - +#include "drivers/memoryCard/SDCard.h" #include "drivers/SPIStorage/SPIStorage.h" #include "drivers/storage.h" @@ -96,8 +96,13 @@ void init_WifiManager() Settings = SPIFS.loadConfigFile(); if (!Settings.holdsData) { - Serial.println(F("Forcing config mode as there is no saved config")); - forceConfig = true; + SDCard sdc; + if (sdc.loadConfigFile().holdsData) + { + Serial.println(F("No config file on internal flash, force config mode.")); + sdc.SD2SPIStorage(&SPIFS); // reboot on success. + forceConfig = true; + }; }; // Reset settings (only for development) From 9b0d7c7de2995dfcc829d7aa8dfe4eb023188302 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Tue, 12 Sep 2023 09:32:46 +0200 Subject: [PATCH 08/68] update file --- src/wManager.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/wManager.cpp b/src/wManager.cpp index ea90a76..3bbc927 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -248,5 +248,3 @@ void wifiManagerProcess() { oldStatus = newStatus; } } - - From 27f7a1bc83f56da0b5795522d3962d969601489b Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Tue, 12 Sep 2023 09:37:08 +0200 Subject: [PATCH 09/68] update --- src/wManager.cpp | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/wManager.cpp b/src/wManager.cpp index 3bbc927..0b979b8 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -18,16 +18,7 @@ bool shouldSaveConfig = false; DisplayDriver dongleDisplayDriver = {}; TSettings Settings; -/* { - .BtcWallet = "", - .holdsData = false, - .PoolAddress = "", - .PoolPort = 0, - .Timezone = 0, - .WifiPW = "", - .WifiSSID = "" -} -*/ + // Define WiFiManager Object WiFiManager wm; extern monitor_data mMonitor; From f2e2f8928440bddc5838155653d461cc9c8cf2b0 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Wed, 13 Sep 2023 02:47:40 +0200 Subject: [PATCH 10/68] rename file --- src/drivers/{memoryCard => SDCard}/SDCard.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/drivers/{memoryCard => SDCard}/SDCard.h (100%) diff --git a/src/drivers/memoryCard/SDCard.h b/src/drivers/SDCard/SDCard.h similarity index 100% rename from src/drivers/memoryCard/SDCard.h rename to src/drivers/SDCard/SDCard.h From f65ed4b4a32805835b346cf399a97ad752193c8f Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Wed, 13 Sep 2023 02:50:49 +0200 Subject: [PATCH 11/68] add vs files and directories --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 13cd289..5c1f29b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ .pio .vscode .vs +*.sln +*.vcxproj* +x64 NerdMinerLog.txt bin/0x10000_firmware.bin logs From 3ea676ec7609132dec5a8892267a2d8eaf7185e7 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Wed, 13 Sep 2023 03:06:40 +0200 Subject: [PATCH 12/68] change path --- src/mining.cpp | 2 +- src/monitor.cpp | 2 +- src/wManager.cpp | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mining.cpp b/src/mining.cpp index 454b4cf..ce65d99 100644 --- a/src/mining.cpp +++ b/src/mining.cpp @@ -9,7 +9,7 @@ #include "utils.h" #include "monitor.h" #include "drivers/display.h" -#include "drivers/storage.h" +#include "drivers/storage/storage.h" unsigned long templates = 0; unsigned long hashes= 0; diff --git a/src/monitor.cpp b/src/monitor.cpp index c5bd398..5ee329c 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -7,7 +7,7 @@ #include "mining.h" #include "utils.h" #include "monitor.h" -#include "drivers/storage.h" +#include "drivers/storage/storage.h" extern unsigned long templates; extern unsigned long hashes; diff --git a/src/wManager.cpp b/src/wManager.cpp index 0b979b8..65abb86 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -8,9 +8,9 @@ #include "wManager.h" #include "monitor.h" #include "drivers/display.h" -#include "drivers/memoryCard/SDCard.h" -#include "drivers/SPIStorage/SPIStorage.h" -#include "drivers/storage.h" +#include "drivers/storage/SDCard.h" +#include "drivers/storage/SPIStorage.h" +#include "drivers/storage/storage.h" // Flag for saving data bool shouldSaveConfig = false; From 281f5ec702209616210418b6d84604025d704e50 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Wed, 13 Sep 2023 03:06:54 +0200 Subject: [PATCH 13/68] change path, correct UART output. --- src/drivers/SDCard/SDCard.h | 24 ++++++++++++------------ src/drivers/SPIStorage/SPIStorage.h | 24 ++++++++++++------------ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/drivers/SDCard/SDCard.h b/src/drivers/SDCard/SDCard.h index 893e737..dff399a 100644 --- a/src/drivers/SDCard/SDCard.h +++ b/src/drivers/SDCard/SDCard.h @@ -8,8 +8,8 @@ #include #include "..\drivers.h" -#include "..\storage.h" -#include "..\SPIStorage\SPIStorage.h" +#include "storage.h" +#include "SPIStorage.h" #define JSON_CONFIG_FILE "/config.json" @@ -43,13 +43,13 @@ public: if (SD_MMC.cardType() == CARD_NONE) SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); #else - Serial.println("SD card interface not available."); + Serial.println("SDCard: interface not available."); return false; #endif // dataPinsDefined if ((!SD_MMC.begin("/sdcard", oneBitMode)) || (SD_MMC.cardType() == CARD_NONE)) { - Serial.println("No card available."); + Serial.println("SDCard: No card found."); return false; } return true; @@ -59,27 +59,27 @@ public: { // Load existing configuration file // Read configuration from FS json - Serial.println("Mounting SD card..."); + Serial.println("SDCard: Mounting File System..."); TSettings Settings; if (initSDcard()) { - Serial.println("mounted SD card."); + Serial.println("SDCard: Mounted"); if (SD_MMC.exists(JSON_CONFIG_FILE)) { // The file exists, reading and loading - Serial.println("reading config file from sd."); + Serial.println("SDCard: Reading config file"); File configFile = SD_MMC.open(JSON_CONFIG_FILE, "r"); if (configFile) { - Serial.println("Opened configuration file"); + Serial.println("SDCard: Opened configuration file"); StaticJsonDocument<512> json; DeserializationError error = deserializeJson(json, configFile); configFile.close(); serializeJsonPretty(json, Serial); if (!error) { - Serial.println("Parsing JSON"); + Serial.println("SDCard: Parsing JSON"); strcpy(Settings.WifiSSID, json["SSID"]); strcpy(Settings.WifiPW, json["Password"]); strcpy(Settings.PoolAddress, json["PoolURL"]); @@ -91,7 +91,7 @@ public: else { // Error loading JSON data - Serial.println("Failed to load json config"); + Serial.println("SDCard: Failed to load json config"); } } SD_MMC.end(); @@ -100,7 +100,7 @@ public: else { // Error mounting file system - Serial.println("Failed to mount SD card."); + Serial.println("SDCard: Failed to mount."); } return Settings; } @@ -112,7 +112,7 @@ public: { spifs->saveConfigFile(&Settings); WiFi.begin(Settings.WifiSSID, Settings.WifiPW); - Serial.println("Settings copied from SD card. Rebooting now."); + Serial.println("SDCard: Settings transfered to internal memory. Restarting now."); ESP.restart(); } } diff --git a/src/drivers/SPIStorage/SPIStorage.h b/src/drivers/SPIStorage/SPIStorage.h index 3a3ad35..2661be6 100644 --- a/src/drivers/SPIStorage/SPIStorage.h +++ b/src/drivers/SPIStorage/SPIStorage.h @@ -10,7 +10,7 @@ #include #include "..\drivers.h" -#include "..\storage.h" +#include "storage.h" // JSON configuration file #define JSON_CONFIG_FILE "/config.json" @@ -33,7 +33,7 @@ public: void saveConfigFile(TSettings*Settings) { // Save Config in JSON format - Serial.println(F("Saving configuration...")); + Serial.println(F("SPIFS: Saving configuration...")); // Create a JSON document StaticJsonDocument<512> json; @@ -47,7 +47,7 @@ public: if (!configFile) { // Error, file did not open - Serial.println("failed to open config file for writing"); + Serial.println("SPIFS: failed to open config file for writing"); } // Serialize JSON data to write to file @@ -55,7 +55,7 @@ public: if (serializeJson(json, configFile) == 0) { // Error writing file - Serial.println(F("Failed to write to file")); + Serial.println(F("SPIFS: Failed to write to file")); } // Close file configFile.close(); @@ -75,27 +75,27 @@ public: // SPIFFS.format(); // Read configuration from FS json - Serial.println("Mounting File System..."); + Serial.println("SPIFS: Mounting File System..."); TSettings Settings; // May need to make it begin(true) first time you are using SPIFFS if ((SPIFFSInitialized_)||(init())) { - Serial.println("mounted file system"); + Serial.println("SPIFS: Mounted"); if (SPIFFS.exists(JSON_CONFIG_FILE)) { // The file exists, reading and loading - Serial.println("reading config file"); + Serial.println("SPIFS: Reading config file"); File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); if (configFile) { - Serial.println("Opened configuration file"); + Serial.println("SPIFS: Opened configuration file"); StaticJsonDocument<512> json; DeserializationError error = deserializeJson(json, configFile); configFile.close(); serializeJsonPretty(json, Serial); if (!error) { - Serial.println("Parsing JSON"); + Serial.println("SPIFS: Parsing JSON"); strcpy(Settings.PoolAddress, json["poolString"]); strcpy(Settings.BtcWallet, json["btcString"]); @@ -106,7 +106,7 @@ public: else { // Error loading JSON data - Serial.println("Failed to load json config"); + Serial.println("SPIFS: Failed to load json config"); } } } @@ -114,14 +114,14 @@ public: else { // Error mounting file system - Serial.println("Failed to mount FS"); + Serial.println("SPIFS: Failed to mount."); } return Settings; } void deleteConfigFile() { - Serial.println("Erasing config file.."); + Serial.println("SPIFS: Erasing config file.."); SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero } }; From 21147a1adc8e3f413de4992579e0c6e2b7f6a60b Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Wed, 13 Sep 2023 03:40:55 +0200 Subject: [PATCH 14/68] move file --- src/drivers/{SDCard => storage}/SDCard.h | 0 src/drivers/{SPIStorage => storage}/SPIStorage.h | 0 src/drivers/{ => storage}/storage.h | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename src/drivers/{SDCard => storage}/SDCard.h (100%) rename src/drivers/{SPIStorage => storage}/SPIStorage.h (100%) rename src/drivers/{ => storage}/storage.h (100%) diff --git a/src/drivers/SDCard/SDCard.h b/src/drivers/storage/SDCard.h similarity index 100% rename from src/drivers/SDCard/SDCard.h rename to src/drivers/storage/SDCard.h diff --git a/src/drivers/SPIStorage/SPIStorage.h b/src/drivers/storage/SPIStorage.h similarity index 100% rename from src/drivers/SPIStorage/SPIStorage.h rename to src/drivers/storage/SPIStorage.h diff --git a/src/drivers/storage.h b/src/drivers/storage/storage.h similarity index 100% rename from src/drivers/storage.h rename to src/drivers/storage/storage.h From 4af1602b0a928bd15882e9f73587bc275299bf06 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Wed, 13 Sep 2023 23:47:19 +0200 Subject: [PATCH 15/68] add uart ui --- src/drivers/storage/UARTCfgUI.h | 100 ++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 src/drivers/storage/UARTCfgUI.h diff --git a/src/drivers/storage/UARTCfgUI.h b/src/drivers/storage/UARTCfgUI.h new file mode 100644 index 0000000..82be232 --- /dev/null +++ b/src/drivers/storage/UARTCfgUI.h @@ -0,0 +1,100 @@ + +#ifndef _UARTCFGUI_H_ +#define _UARTCFGUI_H_ + +#include + +#include "storage.h" +#include "SPIStorage.h" + +class SerialCfgUI +{ +public: + SerialCfgUI() + { + #ifdef MONITOR_SPEED + Serial.begin(MONITOR_SPEED); + #else + Serial.begin(115200); + #endif //MONITOR_SPEED + } + + void UARTUI2SPIStorage(SPIStorage* spifs) + { + TSettings Settings; + + if ((spifs->loadConfigFile(&Settings)) && StartUI(&Settings)) + { + spifs->saveConfigFile(&Settings); + WiFi.begin(Settings.WifiSSID, Settings.WifiPW); + Serial.println("SerialUI: Settings transfered to internal memory. Restarting now."); + ESP.restart(); + } + Serial.println("SerialUI: not started."); + } + +private: + + bool StartUI(TSettings* Settings) + { + Serial.println("Welcome to Nerdminer v2 serial config Interface."); + Serial.println("Fill out the form to set up your Nerdminer."); + Serial.println("Press 'Enter' to save your input or the default value."); + + strcpy(Settings->WifiSSID, readEntry("Enter Wifi SSID:", Settings->WifiSSID)); + strcpy(Settings->WifiPW, readEntry("Enter Wifi Password:", Settings->WifiPW)); + strcpy(Settings->PoolAddress, readEntry("Enter Pool Address:", Settings->PoolAddress)); + Settings->PoolPort = readEntry("Enter Pool Port:", Settings->PoolPort); + strcpy(Settings->BtcWallet, readEntry("Enter your BTC Wallet ID:", Settings->BtcWallet)); + Settings->Timezone = readEntry("Enter your Timezone (UTC+-12):", Settings->Timezone); + + Serial.println("Setup complete."); + + return true; + } + + template + T readEntry(const char* message = "newEntry:", T defaultvalue = "", const char delimieter = '\n') + requires( + (std::is_same_v) + || (std::is_same_v) + || (std::is_same_v) + || (std::is_same_v) + || (std::is_same_v) + || (std::is_same_v)) + { + Serial.println(message); + + if(!String(defaultvalue).isEmpty()) + { + Serial.print("Default Value: >"); + Serial.print(defaultvalue); + Serial.println("<"); + }; + String value = Serial.readStringUntil(delimieter); + value.trim(); + while((value.length() > 0) && value.endsWith(String('\r'))) + value.remove(value.length()-1); + value.trim(); + if (value.length() > 0) + { + if constexpr (std::is_same_v) + return value; + else if constexpr ((std::is_same_v)|| (std::is_same_v)) + return value.c_str(); + else if constexpr (std::is_same_v) + return value.toInt(); + else if constexpr (std::is_same_v) + return value.toDouble(); + else if constexpr (std::is_same_v) + return value.toFloat(); + } + else + { + return defaultvalue; + } + } +}; + + +#endif // _UARTCFGUI_H_ \ No newline at end of file From 787d92820cf40e21e62705a482dd9448aaaa190e Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Thu, 14 Sep 2023 22:29:57 +0200 Subject: [PATCH 16/68] forma, adjust upload speed --- platformio.ini | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/platformio.ini b/platformio.ini index 15f50de..7251771 100644 --- a/platformio.ini +++ b/platformio.ini @@ -23,13 +23,11 @@ monitor_filters = board_build.arduino.memory_type = qio_opi monitor_speed = 115200 upload_speed = 115200 - # 2 x 4.5MB app, 6.875MB SPIFFS ;board_build.partitions = large_spiffs_16MB.csv ;board_build.partitions = default_8MB.csv board_build.partitions = huge_app.csv ;board_build.partitions = default.csv - build_flags = -D LV_LVGL_H_INCLUDE_SIMPLE -D BOARD_HAS_PSRAM @@ -45,7 +43,6 @@ lib_deps = arduino-libraries/NTPClient ;https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 - [env:ESP32-devKitv1] platform = espressif32 board = esp32dev @@ -57,10 +54,8 @@ monitor_filters = ;board_build.arduino.memory_type = qio_opi monitor_speed = 115200 upload_speed = 115200 - # 2 x 4.5MB app, 6.875MB SPIFFS board_build.partitions = huge_app.csv - build_flags = -D DEVKITV1=1 ;-D DEBUG_MINING=1 @@ -71,7 +66,6 @@ lib_deps = mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient - [env:TTGO-T-Display] platform = espressif32 board = esp32dev ;esp-wrover-kit @@ -83,11 +77,8 @@ monitor_filters = board_build.arduino.memory_type = qio_opi monitor_speed = 115200 upload_speed = 115200 - - # 2 x 4.5MB app, 6.875MB SPIFFS board_build.partitions = huge_app.csv - build_flags = ;-D DEBUG_MINING=1 -D TDISPLAY=1 @@ -103,9 +94,7 @@ lib_deps = platform = espressif32 board = lilygo-t-display-s3 framework = arduino - board_build.partitions = huge_app.csv - build_flags = -DNERMINER_S3_AMOLED -DBOARD_HAS_PSRAM @@ -116,15 +105,13 @@ lib_deps = https://github.com/tzapu/WiFiManager.git mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient - https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 + ;https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 [env:NerminerV2-S3-DONGLE] platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino - board_build.partitions = huge_app.csv - build_flags = -DNERMINER_S3_DONGLE -DBOARD_HAS_PSRAM @@ -135,11 +122,11 @@ lib_deps = https://github.com/tzapu/WiFiManager.git mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient - https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 https://github.com/FastLED/FastLED + ;https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 [env:esp32cam] -platform = espressif32 +platform = espressif32 ;(ESP32-D0WD-V3) board = esp32cam framework = arduino monitor_filters = @@ -147,10 +134,10 @@ monitor_filters = time log2file monitor_speed = 115200 -upload_speed = 230400 +upload_speed = 921600 board_build.partitions = huge_app.csv build_flags = - -D ESP32_CAM=1 + -D ESP32_CAM -D MONITOR_SPEED=${this.monitor_speed} lib_deps = bblanchon/ArduinoJson@^6.21.2 From ab48dbf5e309df2fa011d8a255b90e90fc90b39b Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Thu, 14 Sep 2023 22:32:25 +0200 Subject: [PATCH 17/68] cleanup, fix --- src/drivers/storage/SDCard.h | 114 +++++++++++++++++------------- src/drivers/storage/SPIStorage.h | 117 ++++++++++++++++--------------- src/drivers/storage/UARTCfgUI.h | 100 -------------------------- src/drivers/storage/storage.h | 51 ++++++++++++-- src/mining.cpp | 4 +- src/wManager.cpp | 35 +++++---- 6 files changed, 192 insertions(+), 229 deletions(-) delete mode 100644 src/drivers/storage/UARTCfgUI.h diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index dff399a..75c812a 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -11,8 +11,6 @@ #include "storage.h" #include "SPIStorage.h" -#define JSON_CONFIG_FILE "/config.json" - class SDCard { private: @@ -20,7 +18,7 @@ private: public: SDCard() { - cardInitialized_ = initSDcard(); + cardInitialized_ = false; } ~SDCard() @@ -29,42 +27,26 @@ public: SD_MMC.end(); } - bool initSDcard() + void SD2SPIStorage(SPIStorage* spifs) { - if (cardInitialized_) - return cardInitialized_; - - bool oneBitMode = true; -#if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) - if (SD_MMC.cardType() == CARD_NONE) - SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); - oneBitMode = false; -#elif defined (SDMMC_D0) && !(defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3)) - if (SD_MMC.cardType() == CARD_NONE) - SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); -#else - Serial.println("SDCard: interface not available."); - return false; -#endif // dataPinsDefined - - if ((!SD_MMC.begin("/sdcard", oneBitMode)) || (SD_MMC.cardType() == CARD_NONE)) + TSettings Settings; + if (loadConfigFile(&Settings)) { - Serial.println("SDCard: No card found."); - return false; + spifs->saveConfigFile(&Settings); + WiFi.begin(Settings.WifiSSID, Settings.WifiPW); + Serial.println("SDCard: Settings transfered to internal memory. Restarting now."); + ESP.restart(); } - return true; } - TSettings loadConfigFile() + bool loadConfigFile(TSettings* Settings) { // Load existing configuration file // Read configuration from FS json Serial.println("SDCard: Mounting File System..."); - TSettings Settings; if (initSDcard()) { - Serial.println("SDCard: Mounted"); if (SD_MMC.exists(JSON_CONFIG_FILE)) { // The file exists, reading and loading @@ -77,16 +59,20 @@ public: DeserializationError error = deserializeJson(json, configFile); configFile.close(); serializeJsonPretty(json, Serial); + Serial.print('\n'); if (!error) { Serial.println("SDCard: Parsing JSON"); - strcpy(Settings.WifiSSID, json["SSID"]); - strcpy(Settings.WifiPW, json["Password"]); - strcpy(Settings.PoolAddress, json["PoolURL"]); - strcpy(Settings.BtcWallet, json["WalletID"]); - Settings.PoolPort = json["Port"].as(); - Settings.Timezone = json["Timezone"].as(); - Settings.holdsData = true; + strcpy(Settings->WifiSSID, json[JSON_KEY_SSID] | Settings->WifiSSID); + strcpy(Settings->WifiPW, json[JSON_KEY_PASW] | Settings->WifiPW); + strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); + strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); + if (json.containsKey(JSON_KEY_POOLPORT)) + Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); + if (json.containsKey(JSON_KEY_TIMEZONE)) + Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); + SD_MMC.end(); + return true; } else { @@ -94,26 +80,54 @@ public: Serial.println("SDCard: Failed to load json config"); } } - SD_MMC.end(); } + else + { + Serial.println("SDCard: No config file available!"); + } + SD_MMC.end(); + } + return false; + } + +private: + + bool initSDcard() + { + if((cardInitialized_)&&(SD_MMC.cardType() != CARD_NONE)) + { + Serial.println("SDCard: Already mounted."); + return cardInitialized_; + } + + bool oneBitMode = true; +#if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) + if (SD_MMC.cardType() == CARD_NONE) + { + SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); + oneBitMode = false; + Serial.println("SDCard: 4-Bit Mode."); + } +#elif defined (SDMMC_D0) && !(defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3)) + if (SD_MMC.cardType() == CARD_NONE) + { + SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); + Serial.println("SDCard: 1-Bit Mode."); + } +#else + Serial.println("SDCard: interface not available."); + return false; +#endif // dataPinsDefined + cardInitialized_ = SD_MMC.begin("/sdcard", oneBitMode); + if ((cardInitialized_) && (SD_MMC.cardType() != CARD_NONE)) + { + Serial.println("SDCard: Card mounted."); + return true; } else { - // Error mounting file system - Serial.println("SDCard: Failed to mount."); - } - return Settings; - } - - void SD2SPIStorage(SPIStorage* spifs) - { - TSettings Settings = loadConfigFile(); - if (Settings.holdsData) - { - spifs->saveConfigFile(&Settings); - WiFi.begin(Settings.WifiSSID, Settings.WifiPW); - Serial.println("SDCard: Settings transfered to internal memory. Restarting now."); - ESP.restart(); + Serial.println("SDCard: No card found."); + return false; } } }; diff --git a/src/drivers/storage/SPIStorage.h b/src/drivers/storage/SPIStorage.h index 2661be6..c17d15f 100644 --- a/src/drivers/storage/SPIStorage.h +++ b/src/drivers/storage/SPIStorage.h @@ -12,9 +12,6 @@ #include "..\drivers.h" #include "storage.h" -// JSON configuration file -#define JSON_CONFIG_FILE "/config.json" - class SPIStorage { private: @@ -22,65 +19,60 @@ private: public: SPIStorage() { - SPIFFSInitialized_ = init(); + SPIFFSInitialized_ = false; } ~SPIStorage() { - SPIFFS.end(); + if (SPIFFSInitialized_) + SPIFFS.end(); }; void saveConfigFile(TSettings*Settings) { - // Save Config in JSON format - Serial.println(F("SPIFS: Saving configuration...")); - - // Create a JSON document - StaticJsonDocument<512> json; - json["poolString"] = Settings->PoolAddress; - json["portNumber"] = Settings->PoolPort; - json["btcString"] = Settings->BtcWallet; - json["gmtZone"] = Settings->Timezone; - - // Open config file - File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); - if (!configFile) + if (init()) { - // Error, file did not open - Serial.println("SPIFS: failed to open config file for writing"); - } + // Save Config in JSON format + Serial.println(F("SPIFS: Saving configuration...")); - // Serialize JSON data to write to file - serializeJsonPretty(json, Serial); - if (serializeJson(json, configFile) == 0) - { - // Error writing file - Serial.println(F("SPIFS: Failed to write to file")); - } - // Close file - configFile.close(); + // Create a JSON document + StaticJsonDocument<512> json; + json[JSON_KEY_POOLURL] = Settings->PoolAddress; + json[JSON_KEY_POOLPORT] = Settings->PoolPort; + json[JSON_KEY_WALLETID] = Settings->BtcWallet; + json[JSON_KEY_TIMEZONE] = Settings->Timezone; + + // Open config file + File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); + if (!configFile) + { + // Error, file did not open + Serial.println("SPIFS: failed to open config file for writing"); + } + + // Serialize JSON data to write to file + serializeJsonPretty(json, Serial); + Serial.print('\n'); + if (serializeJson(json, configFile) == 0) + { + // Error writing file + Serial.println(F("SPIFS: Failed to write to file")); + } + // Close file + configFile.close(); + }; } - bool init() + bool loadConfigFile(TSettings* Settings) { - if (SPIFFSInitialized_) - return SPIFFSInitialized_; - return SPIFFS.begin(false) || SPIFFS.begin(true); - }; - - TSettings loadConfigFile() - { - // Load existing configuration file // Uncomment if we need to format filesystem // SPIFFS.format(); + // Load existing configuration file // Read configuration from FS json - Serial.println("SPIFS: Mounting File System..."); - TSettings Settings; - // May need to make it begin(true) first time you are using SPIFFS - if ((SPIFFSInitialized_)||(init())) + + if (init()) { - Serial.println("SPIFS: Mounted"); if (SPIFFS.exists(JSON_CONFIG_FILE)) { // The file exists, reading and loading @@ -93,15 +85,17 @@ public: DeserializationError error = deserializeJson(json, configFile); configFile.close(); serializeJsonPretty(json, Serial); + Serial.print('\n'); if (!error) { Serial.println("SPIFS: Parsing JSON"); - - strcpy(Settings.PoolAddress, json["poolString"]); - strcpy(Settings.BtcWallet, json["btcString"]); - Settings.PoolPort = json["portNumber"].as(); - Settings.Timezone = json["gmtZone"].as(); - Settings.holdsData = true; + strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); + strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); + if(json.containsKey(JSON_KEY_POOLPORT)) + Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); + if (json.containsKey(JSON_KEY_TIMEZONE)) + Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); + return true; } else { @@ -111,12 +105,7 @@ public: } } } - else - { - // Error mounting file system - Serial.println("SPIFS: Failed to mount."); - } - return Settings; + return false; } void deleteConfigFile() @@ -124,6 +113,22 @@ public: Serial.println("SPIFS: Erasing config file.."); SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero } +private: + bool init() + { + if (!SPIFFSInitialized_) + { + Serial.println("SPIFS: Mounting File System..."); + // May need to make it begin(true) first time you are using SPIFFS + SPIFFSInitialized_ = SPIFFS.begin(false) || SPIFFS.begin(true); + SPIFFSInitialized_ ? Serial.println("SPIFS: Mounted") : Serial.println("SPIFS: Mounting failed."); + } + else + { + Serial.println("SPIFS: Already Mounted"); + } + return SPIFFSInitialized_; + }; }; #endif // _SPISTORAGE_H_ diff --git a/src/drivers/storage/UARTCfgUI.h b/src/drivers/storage/UARTCfgUI.h deleted file mode 100644 index 82be232..0000000 --- a/src/drivers/storage/UARTCfgUI.h +++ /dev/null @@ -1,100 +0,0 @@ - -#ifndef _UARTCFGUI_H_ -#define _UARTCFGUI_H_ - -#include - -#include "storage.h" -#include "SPIStorage.h" - -class SerialCfgUI -{ -public: - SerialCfgUI() - { - #ifdef MONITOR_SPEED - Serial.begin(MONITOR_SPEED); - #else - Serial.begin(115200); - #endif //MONITOR_SPEED - } - - void UARTUI2SPIStorage(SPIStorage* spifs) - { - TSettings Settings; - - if ((spifs->loadConfigFile(&Settings)) && StartUI(&Settings)) - { - spifs->saveConfigFile(&Settings); - WiFi.begin(Settings.WifiSSID, Settings.WifiPW); - Serial.println("SerialUI: Settings transfered to internal memory. Restarting now."); - ESP.restart(); - } - Serial.println("SerialUI: not started."); - } - -private: - - bool StartUI(TSettings* Settings) - { - Serial.println("Welcome to Nerdminer v2 serial config Interface."); - Serial.println("Fill out the form to set up your Nerdminer."); - Serial.println("Press 'Enter' to save your input or the default value."); - - strcpy(Settings->WifiSSID, readEntry("Enter Wifi SSID:", Settings->WifiSSID)); - strcpy(Settings->WifiPW, readEntry("Enter Wifi Password:", Settings->WifiPW)); - strcpy(Settings->PoolAddress, readEntry("Enter Pool Address:", Settings->PoolAddress)); - Settings->PoolPort = readEntry("Enter Pool Port:", Settings->PoolPort); - strcpy(Settings->BtcWallet, readEntry("Enter your BTC Wallet ID:", Settings->BtcWallet)); - Settings->Timezone = readEntry("Enter your Timezone (UTC+-12):", Settings->Timezone); - - Serial.println("Setup complete."); - - return true; - } - - template - T readEntry(const char* message = "newEntry:", T defaultvalue = "", const char delimieter = '\n') - requires( - (std::is_same_v) - || (std::is_same_v) - || (std::is_same_v) - || (std::is_same_v) - || (std::is_same_v) - || (std::is_same_v)) - { - Serial.println(message); - - if(!String(defaultvalue).isEmpty()) - { - Serial.print("Default Value: >"); - Serial.print(defaultvalue); - Serial.println("<"); - }; - String value = Serial.readStringUntil(delimieter); - value.trim(); - while((value.length() > 0) && value.endsWith(String('\r'))) - value.remove(value.length()-1); - value.trim(); - if (value.length() > 0) - { - if constexpr (std::is_same_v) - return value; - else if constexpr ((std::is_same_v)|| (std::is_same_v)) - return value.c_str(); - else if constexpr (std::is_same_v) - return value.toInt(); - else if constexpr (std::is_same_v) - return value.toDouble(); - else if constexpr (std::is_same_v) - return value.toFloat(); - } - else - { - return defaultvalue; - } - } -}; - - -#endif // _UARTCFGUI_H_ \ No newline at end of file diff --git a/src/drivers/storage/storage.h b/src/drivers/storage/storage.h index 5fbd4b7..bddb103 100644 --- a/src/drivers/storage/storage.h +++ b/src/drivers/storage/storage.h @@ -1,16 +1,53 @@ #ifndef _STORAGE_H_ #define _STORAGE_H_ +#define DEFAULT_SSID "NMAP" +#define DEFAULT_WIFIPW "1234567890" +#define DEFAULT_POOLURL "public-pool.io" +#define DEFAULT_WALLETID "yourBtcAddress" +#define DEFAULT_POOLPORT 21496 +#define DEFAULT_TIMEZONE 2 + +// JSON config file +#define JSON_CONFIG_FILE "/config.json" +#define JSON_KEY_SSID "SSID" +#define JSON_KEY_PASW "PW" +#define JSON_KEY_POOLURL "PoolUrl" +#define JSON_KEY_WALLETID "BtcWallet" +#define JSON_KEY_POOLPORT "PoolPort" +#define JSON_KEY_TIMEZONE "Timezone" + class TSettings { public: - char WifiSSID[80]{ "sA51" }; - char WifiPW[80]{ "0000" }; - char PoolAddress[80]{ "public-pool.io" }; - char BtcWallet[80]{ "yourBtcAddress" }; - uint32_t PoolPort{ 21496 }; - uint32_t Timezone{ 2 }; - bool holdsData{ false }; + char WifiSSID[80]{ DEFAULT_SSID }; + char WifiPW[80]{ DEFAULT_WIFIPW }; + char PoolAddress[80]{ DEFAULT_POOLURL }; + char BtcWallet[80]{ DEFAULT_WALLETID }; + uint32_t PoolPort{ DEFAULT_POOLPORT }; + uint32_t Timezone{ DEFAULT_TIMEZONE }; + + void print() + { + Serial.print("WifiSSID:>"); + Serial.print(WifiSSID); + Serial.print("<, "); + Serial.print("WifiPW:>"); + Serial.print(WifiPW); + Serial.print("<, "); + Serial.print("PoolAddress:>"); + Serial.print(PoolAddress); + Serial.print("<, "); + Serial.print("BtcWallet:>"); + Serial.print(BtcWallet); + Serial.print("<, "); + Serial.print("PoolPort:>"); + Serial.print(PoolPort); + Serial.print("<, "); + Serial.print("Timezone:>"); + Serial.print(Timezone); + Serial.println("<"); + } }; #endif // _STORAGE_H_ \ No newline at end of file diff --git a/src/mining.cpp b/src/mining.cpp index ce65d99..0395b57 100644 --- a/src/mining.cpp +++ b/src/mining.cpp @@ -402,8 +402,8 @@ void runMonitor(void *name) if (elapsedKHs == 0) { Serial.printf(">>> [i] Miner: newJob>%s / inRun>%s) - Client: connected>%s / subscribed>%s / wificonnected>%s\n", - mMiner.newJob ? "true" : "false", mMiner.inRun ? "true" : "false", - client.connected() ? "true" : "false", isMinerSuscribed ? "true" : "false", WiFi.status() == WL_CONNECTED ? "true" : "false"); + mMiner.newJob ? "true" : "false", mMiner.inRun ? "true" : "false", + client.connected() ? "true" : "false", isMinerSuscribed ? "true" : "false", WiFi.status() == WL_CONNECTED ? "true" : "false"); } #ifdef DEBUG_MEMORY diff --git a/src/wManager.cpp b/src/wManager.cpp index 65abb86..e49164b 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -12,6 +12,7 @@ #include "drivers/storage/SPIStorage.h" #include "drivers/storage/storage.h" + // Flag for saving data bool shouldSaveConfig = false; @@ -45,7 +46,7 @@ void configModeCallback(WiFiManager* myWiFiManager) Serial.println(WiFi.softAPIP()); } -void reset_configurations() +void reset_configurations() { Serial.println("Erasing Config, restarting"); SPIFS.deleteConfigFile(); @@ -53,7 +54,6 @@ void reset_configurations() ESP.restart(); } - void init_WifiManager() { #ifdef MONITOR_SPEED @@ -76,7 +76,7 @@ void init_WifiManager() // Check if button2 is pressed to enter configMode with actual configuration if (!digitalRead(PIN_BUTTON_2)) { Serial.println(F("Button pressed to force start config mode")); - resetConfig(); + reset_configurations(); forceConfig = true; wm.setBreakAfterConfig(true); //Set to detect config edition and save } @@ -84,16 +84,20 @@ void init_WifiManager() // Explicitly set WiFi mode WiFi.mode(WIFI_STA); - Settings = SPIFS.loadConfigFile(); - if (!Settings.holdsData) + if (!SPIFS.loadConfigFile(&Settings)) { + Serial.println(F("No config file on internal flash.")); SDCard sdc; - if (sdc.loadConfigFile().holdsData) + if (!sdc.loadConfigFile(&Settings)) { - Serial.println(F("No config file on internal flash, force config mode.")); - sdc.SD2SPIStorage(&SPIFS); // reboot on success. + Serial.println(F("No config file on SD card.")); forceConfig = true; - }; + } + else + { + Serial.println(F("Config file on SD card. Copy and restart.")); + sdc.SD2SPIStorage(&SPIFS); // reboot on success. + } }; // Reset settings (only for development) @@ -136,7 +140,7 @@ void init_WifiManager() char charZone[6]; sprintf(charZone, "%d", Settings.Timezone); WiFiManagerParameter time_text_box_num("TimeZone", "TimeZone fromUTC (-12/+12)", charZone, 3); - + // Add all defined parameters wm.addParameter(&pool_text_box); wm.addParameter(&port_text_box_num); @@ -144,21 +148,23 @@ void init_WifiManager() wm.addParameter(&time_text_box_num); Serial.println("AllDone: "); - if (forceConfig) - // Run if we need a configuration + if (forceConfig) { + // Run if we need a configuration //No configuramos timeout al modulo wm.setConfigPortalBlocking(true); //Hacemos que el portal SI bloquee el firmware drawSetupScreen(); - Settings = TSettings(); - if (!wm.startConfigPortal(Settings.WifiSSID, Settings.WifiPW)) + + if (!wm.startConfigPortal(DEFAULT_SSID, DEFAULT_WIFIPW)) { Serial.println("failed to connect and hit timeout"); //Could be break forced after edditing, so save new config + strncpy(Settings.PoolAddress, pool_text_box.getValue(), sizeof(Settings.PoolAddress)); Settings.PoolPort = atoi(port_text_box_num.getValue()); strncpy(Settings.BtcWallet, addr_text_box.getValue(), sizeof(Settings.BtcWallet)); Settings.Timezone = atoi(time_text_box_num.getValue()); + SPIFS.saveConfigFile(&Settings); delay(3000); //reset and try again, or maybe put it to deep sleep @@ -212,6 +218,7 @@ void init_WifiManager() Settings.Timezone = atoi(time_text_box_num.getValue()); Serial.print("TimeZone fromUTC: "); Serial.println(Settings.Timezone); + } // Save the custom parameters to FS From 80618d3cdc666cc1bcd2631370fd76703c468912 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Thu, 14 Sep 2023 23:16:56 +0200 Subject: [PATCH 18/68] SD card enable flag --- src/drivers/devices/esp32CAM.h | 2 + src/drivers/storage/SDCard.h | 238 ++++++++++++++++++--------------- 2 files changed, 130 insertions(+), 110 deletions(-) diff --git a/src/drivers/devices/esp32CAM.h b/src/drivers/devices/esp32CAM.h index 0dbb5f6..7911db7 100644 --- a/src/drivers/devices/esp32CAM.h +++ b/src/drivers/devices/esp32CAM.h @@ -6,6 +6,8 @@ #define NO_DISPLAY +#define BUILD_SDMMC + #define SDMMC_CLK 14 #define SDMMC_CMD 15 #define SDMMC_D0 2 diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index 75c812a..2a1cfcc 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -1,135 +1,153 @@ #ifndef _SDCARD_H_ #define _SDCARD_H_ -#include -#include -#include - -#include - #include "..\drivers.h" #include "storage.h" #include "SPIStorage.h" class SDCard { -private: - bool cardInitialized_; public: - SDCard() - { - cardInitialized_ = false; - } + SDCard(); + ~SDCard(); + void SD2SPIStorage(SPIStorage* spifs); + bool loadConfigFile(TSettings* Settings); +private: + bool initSDcard(); - ~SDCard() - { - if (cardInitialized_) - SD_MMC.end(); - } + bool cardInitialized_; +}; - void SD2SPIStorage(SPIStorage* spifs) + +#ifdef BUILD_SDMMC + +#include +#include + +#include + +SDCard::SDCard() +{ + cardInitialized_ = false; +} + +SDCard::~SDCard() +{ + if (cardInitialized_) + SD_MMC.end(); +} + +void SDCard::SD2SPIStorage(SPIStorage* spifs) +{ + TSettings Settings; + if (loadConfigFile(&Settings)) { - TSettings Settings; - if (loadConfigFile(&Settings)) + spifs->saveConfigFile(&Settings); + WiFi.begin(Settings.WifiSSID, Settings.WifiPW); + Serial.println("SDCard: Settings transfered to internal memory. Restarting now."); + ESP.restart(); + } +} + +bool SDCard::loadConfigFile(TSettings* Settings) +{ + // Load existing configuration file + // Read configuration from FS json + Serial.println("SDCard: Mounting File System..."); + + if (initSDcard()) + { + if (SD_MMC.exists(JSON_CONFIG_FILE)) { - spifs->saveConfigFile(&Settings); - WiFi.begin(Settings.WifiSSID, Settings.WifiPW); - Serial.println("SDCard: Settings transfered to internal memory. Restarting now."); - ESP.restart(); - } - } - - bool loadConfigFile(TSettings* Settings) - { - // Load existing configuration file - // Read configuration from FS json - Serial.println("SDCard: Mounting File System..."); - - if (initSDcard()) - { - if (SD_MMC.exists(JSON_CONFIG_FILE)) + // The file exists, reading and loading + Serial.println("SDCard: Reading config file"); + File configFile = SD_MMC.open(JSON_CONFIG_FILE, "r"); + if (configFile) { - // The file exists, reading and loading - Serial.println("SDCard: Reading config file"); - File configFile = SD_MMC.open(JSON_CONFIG_FILE, "r"); - if (configFile) + Serial.println("SDCard: Opened configuration file"); + StaticJsonDocument<512> json; + DeserializationError error = deserializeJson(json, configFile); + configFile.close(); + serializeJsonPretty(json, Serial); + Serial.print('\n'); + if (!error) { - Serial.println("SDCard: Opened configuration file"); - StaticJsonDocument<512> json; - DeserializationError error = deserializeJson(json, configFile); - configFile.close(); - serializeJsonPretty(json, Serial); - Serial.print('\n'); - if (!error) - { - Serial.println("SDCard: Parsing JSON"); - strcpy(Settings->WifiSSID, json[JSON_KEY_SSID] | Settings->WifiSSID); - strcpy(Settings->WifiPW, json[JSON_KEY_PASW] | Settings->WifiPW); - strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); - strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); - if (json.containsKey(JSON_KEY_POOLPORT)) - Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); - if (json.containsKey(JSON_KEY_TIMEZONE)) - Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); - SD_MMC.end(); - return true; - } - else - { - // Error loading JSON data - Serial.println("SDCard: Failed to load json config"); - } + Serial.println("SDCard: Parsing JSON"); + strcpy(Settings->WifiSSID, json[JSON_KEY_SSID] | Settings->WifiSSID); + strcpy(Settings->WifiPW, json[JSON_KEY_PASW] | Settings->WifiPW); + strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); + strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); + if (json.containsKey(JSON_KEY_POOLPORT)) + Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); + if (json.containsKey(JSON_KEY_TIMEZONE)) + Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); + SD_MMC.end(); + return true; + } + else + { + // Error loading JSON data + Serial.println("SDCard: Failed to load json config"); } } - else - { - Serial.println("SDCard: No config file available!"); - } - SD_MMC.end(); - } - return false; - } - -private: - - bool initSDcard() - { - if((cardInitialized_)&&(SD_MMC.cardType() != CARD_NONE)) - { - Serial.println("SDCard: Already mounted."); - return cardInitialized_; - } - - bool oneBitMode = true; -#if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) - if (SD_MMC.cardType() == CARD_NONE) - { - SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); - oneBitMode = false; - Serial.println("SDCard: 4-Bit Mode."); - } -#elif defined (SDMMC_D0) && !(defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3)) - if (SD_MMC.cardType() == CARD_NONE) - { - SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); - Serial.println("SDCard: 1-Bit Mode."); - } -#else - Serial.println("SDCard: interface not available."); - return false; -#endif // dataPinsDefined - cardInitialized_ = SD_MMC.begin("/sdcard", oneBitMode); - if ((cardInitialized_) && (SD_MMC.cardType() != CARD_NONE)) - { - Serial.println("SDCard: Card mounted."); - return true; } else { - Serial.println("SDCard: No card found."); - return false; + Serial.println("SDCard: No config file available!"); } + SD_MMC.end(); } -}; + return false; +} + +bool SDCard::initSDcard() +{ + if((cardInitialized_)&&(SD_MMC.cardType() != CARD_NONE)) + { + Serial.println("SDCard: Already mounted."); + return cardInitialized_; + } + + bool oneBitMode = true; +#if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) + if (SD_MMC.cardType() == CARD_NONE) + { + SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); + oneBitMode = false; + Serial.println("SDCard: 4-Bit Mode."); + } +#elif defined (SDMMC_D0) && !(defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3)) + if (SD_MMC.cardType() == CARD_NONE) + { + SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); + Serial.println("SDCard: 1-Bit Mode."); + } +#else + Serial.println("SDCard: interface not available."); + return false; +#endif // dataPinsDefined + cardInitialized_ = SD_MMC.begin("/sdcard", oneBitMode); + if ((cardInitialized_) && (SD_MMC.cardType() != CARD_NONE)) + { + Serial.println("SDCard: Card mounted."); + return true; + } + else + { + Serial.println("SDCard: No card found."); + return false; + } +} + +#else + +SDCard::SDCard() {} +SDCard::~SDCard() {} +void SDCard::SD2SPIStorage(SPIStorage* spifs) {}; +bool SDCard::loadConfigFile(TSettings* Settings) { return false; } +bool SDCard::initSDcard() { return false; } + +#endif //BUILD_SDMMC + #endif // _SDCARD_H_ From 2e5be19a60c47c41c3ea74fa393c7c968938314a Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Thu, 14 Sep 2023 23:18:08 +0200 Subject: [PATCH 19/68] prepare for builds without SD support --- src/wManager.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/wManager.cpp b/src/wManager.cpp index e49164b..a1c526f 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -86,17 +86,18 @@ void init_WifiManager() if (!SPIFS.loadConfigFile(&Settings)) { - Serial.println(F("No config file on internal flash.")); + //No config file on internal flash. SDCard sdc; if (!sdc.loadConfigFile(&Settings)) { - Serial.println(F("No config file on SD card.")); - forceConfig = true; + //No config file on SD card. + sdc.SD2SPIStorage(&SPIFS); // reboot on success. + } else { - Serial.println(F("Config file on SD card. Copy and restart.")); - sdc.SD2SPIStorage(&SPIFS); // reboot on success. + //Config file on SD card. Copy and restart. + forceConfig = true; } }; From 91ae5ef60cf80a6644c47bf2810b43aacd19e345 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:27:19 +0200 Subject: [PATCH 20/68] better identifiers --- src/drivers/storage/SDCard.h | 10 +- src/drivers/storage/SPIStorage.h | 134 ------------------------- src/drivers/storage/nvMemory.h | 167 +++++++++++++++++++++++++++++++ src/wManager.cpp | 18 ++-- 4 files changed, 181 insertions(+), 148 deletions(-) delete mode 100644 src/drivers/storage/SPIStorage.h create mode 100644 src/drivers/storage/nvMemory.h diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index 2a1cfcc..8734178 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -3,14 +3,14 @@ #include "..\drivers.h" #include "storage.h" -#include "SPIStorage.h" +#include "nvMemory.h" class SDCard { public: SDCard(); ~SDCard(); - void SD2SPIStorage(SPIStorage* spifs); + void SD2nvMemory(nvMemory* nvMem); bool loadConfigFile(TSettings* Settings); private: bool initSDcard(); @@ -37,12 +37,12 @@ SDCard::~SDCard() SD_MMC.end(); } -void SDCard::SD2SPIStorage(SPIStorage* spifs) +void SDCard::SD2nvMemory(NVMem* nvMem) { TSettings Settings; if (loadConfigFile(&Settings)) { - spifs->saveConfigFile(&Settings); + nvMem->saveConfig(&Settings); WiFi.begin(Settings.WifiSSID, Settings.WifiPW); Serial.println("SDCard: Settings transfered to internal memory. Restarting now."); ESP.restart(); @@ -143,7 +143,7 @@ bool SDCard::initSDcard() SDCard::SDCard() {} SDCard::~SDCard() {} -void SDCard::SD2SPIStorage(SPIStorage* spifs) {}; +void SDCard::SD2nvMemory(nvMemory* nvMem) {}; bool SDCard::loadConfigFile(TSettings* Settings) { return false; } bool SDCard::initSDcard() { return false; } diff --git a/src/drivers/storage/SPIStorage.h b/src/drivers/storage/SPIStorage.h deleted file mode 100644 index c17d15f..0000000 --- a/src/drivers/storage/SPIStorage.h +++ /dev/null @@ -1,134 +0,0 @@ -#ifndef _SPISTORAGE_H_ -#define _SPISTORAGE_H_ - -#define ESP_DRD_USE_SPIFFS true - -#include -#include -#include - -#include - -#include "..\drivers.h" -#include "storage.h" - -class SPIStorage -{ -private: - bool SPIFFSInitialized_; -public: - SPIStorage() - { - SPIFFSInitialized_ = false; - } - - ~SPIStorage() - { - if (SPIFFSInitialized_) - SPIFFS.end(); - }; - - void saveConfigFile(TSettings*Settings) - { - if (init()) - { - // Save Config in JSON format - Serial.println(F("SPIFS: Saving configuration...")); - - // Create a JSON document - StaticJsonDocument<512> json; - json[JSON_KEY_POOLURL] = Settings->PoolAddress; - json[JSON_KEY_POOLPORT] = Settings->PoolPort; - json[JSON_KEY_WALLETID] = Settings->BtcWallet; - json[JSON_KEY_TIMEZONE] = Settings->Timezone; - - // Open config file - File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); - if (!configFile) - { - // Error, file did not open - Serial.println("SPIFS: failed to open config file for writing"); - } - - // Serialize JSON data to write to file - serializeJsonPretty(json, Serial); - Serial.print('\n'); - if (serializeJson(json, configFile) == 0) - { - // Error writing file - Serial.println(F("SPIFS: Failed to write to file")); - } - // Close file - configFile.close(); - }; - } - - bool loadConfigFile(TSettings* Settings) - { - // Uncomment if we need to format filesystem - // SPIFFS.format(); - - // Load existing configuration file - // Read configuration from FS json - - if (init()) - { - if (SPIFFS.exists(JSON_CONFIG_FILE)) - { - // The file exists, reading and loading - Serial.println("SPIFS: Reading config file"); - File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); - if (configFile) - { - Serial.println("SPIFS: Opened configuration file"); - StaticJsonDocument<512> json; - DeserializationError error = deserializeJson(json, configFile); - configFile.close(); - serializeJsonPretty(json, Serial); - Serial.print('\n'); - if (!error) - { - Serial.println("SPIFS: Parsing JSON"); - strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); - strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); - if(json.containsKey(JSON_KEY_POOLPORT)) - Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); - if (json.containsKey(JSON_KEY_TIMEZONE)) - Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); - return true; - } - else - { - // Error loading JSON data - Serial.println("SPIFS: Failed to load json config"); - } - } - } - } - return false; - } - - void deleteConfigFile() - { - Serial.println("SPIFS: Erasing config file.."); - SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero - } -private: - bool init() - { - if (!SPIFFSInitialized_) - { - Serial.println("SPIFS: Mounting File System..."); - // May need to make it begin(true) first time you are using SPIFFS - SPIFFSInitialized_ = SPIFFS.begin(false) || SPIFFS.begin(true); - SPIFFSInitialized_ ? Serial.println("SPIFS: Mounted") : Serial.println("SPIFS: Mounting failed."); - } - else - { - Serial.println("SPIFS: Already Mounted"); - } - return SPIFFSInitialized_; - }; -}; - -#endif // _SPISTORAGE_H_ diff --git a/src/drivers/storage/nvMemory.h b/src/drivers/storage/nvMemory.h new file mode 100644 index 0000000..448e1fb --- /dev/null +++ b/src/drivers/storage/nvMemory.h @@ -0,0 +1,167 @@ +#ifndef _NVMEMORY_H_ +#define _NVMEMORY_H_ + +#define BUILD_SPIFFS + +#include "..\drivers.h" +#include "storage.h" + +class nvMemory +{ +public: + nvMemory(); + ~nvMemory(); + bool saveConfig(TSettings* Settings); + bool loadConfig(TSettings* Settings); + bool deleteConfig(); +private: + bool init(); + bool Initialized_; +}; + +#ifdef BUILD_SPIFFS + +#define ESP_DRD_USE_SPIFFS true + +#include +#include +#include +#include + +nvMemory::nvMemory() +{ + Initialized_ = false; +} + +nvMemory::~nvMemory() +{ + if (Initialized_) + SPIFFS.end(); +}; + +bool nvMemory::saveConfig(TSettings* Settings) +{ + if (init()) + { + // Save Config in JSON format + Serial.println(F("SPIFS: Saving configuration...")); + + // Create a JSON document + StaticJsonDocument<512> json; + json[JSON_KEY_POOLURL] = Settings->PoolAddress; + json[JSON_KEY_POOLPORT] = Settings->PoolPort; + json[JSON_KEY_WALLETID] = Settings->BtcWallet; + json[JSON_KEY_TIMEZONE] = Settings->Timezone; + + // Open config file + File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); + if (!configFile) + { + // Error, file did not open + Serial.println("SPIFS: failed to open config file for writing"); + return false; + } + + // Serialize JSON data to write to file + serializeJsonPretty(json, Serial); + Serial.print('\n'); + if (serializeJson(json, configFile) == 0) + { + // Error writing file + Serial.println(F("SPIFS: Failed to write to file")); + return false; + } + // Close file + configFile.close(); + return true; + }; + return false; +} + +bool nvMemory::loadConfig(TSettings* Settings) +{ + // Uncomment if we need to format filesystem + // SPIFFS.format(); + + // Load existing configuration file + // Read configuration from FS json + + if (init()) + { + if (SPIFFS.exists(JSON_CONFIG_FILE)) + { + // The file exists, reading and loading + Serial.println("SPIFS: Reading config file"); + File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); + if (configFile) + { + Serial.println("SPIFS: Opened configuration file"); + StaticJsonDocument<512> json; + DeserializationError error = deserializeJson(json, configFile); + configFile.close(); + serializeJsonPretty(json, Serial); + Serial.print('\n'); + if (!error) + { + Serial.println("SPIFS: Parsing JSON"); + strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); + strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); + if (json.containsKey(JSON_KEY_POOLPORT)) + Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); + if (json.containsKey(JSON_KEY_TIMEZONE)) + Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); + return true; + } + else + { + // Error loading JSON data + Serial.println("SPIFS: Failed to load json config"); + } + } + } + } + return false; +} + +bool nvMemory::deleteConfig() +{ + Serial.println("SPIFS: Erasing config file.."); + return SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero +} + +bool nvMemory::init() +{ + if (!Initialized_) + { + Serial.println("SPIFS: Mounting File System..."); + // May need to make it begin(true) first time you are using SPIFFS + Initialized_ = SPIFFS.begin(false) || SPIFFS.begin(true); + Initialized_ ? Serial.println("SPIFS: Mounted") : Serial.println("SPIFS: Mounting failed."); + } + else + { + Serial.println("SPIFS: Already Mounted"); + } + return Initialized_; +}; + + +#else +#error We need some kind of permanent storage here! + +nvMemory::nvMemory() {} + +nvMemory::~nvMemory() {} + +bool nvMemory::saveConfig(TSettings* Settings) { return false; } + +bool nvMemory::loadConfig(TSettings* Settings) { return false; } + +bool nvMemory::deleteConfig() { return false; } + +bool nvMemory::init() { return false; } + + +#endif //BUILD_SPIFFS + +#endif // _NVMEMORY_H_ diff --git a/src/wManager.cpp b/src/wManager.cpp index a1c526f..bb8ccde 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -9,7 +9,7 @@ #include "monitor.h" #include "drivers/display.h" #include "drivers/storage/SDCard.h" -#include "drivers/storage/SPIStorage.h" +#include "drivers/storage/nvMemory.h" #include "drivers/storage/storage.h" @@ -24,7 +24,7 @@ TSettings Settings; WiFiManager wm; extern monitor_data mMonitor; -SPIStorage SPIFS; +nvMemory nvMem; void saveConfigCallback() // Callback notifying us of the need to save configuration @@ -49,7 +49,7 @@ void configModeCallback(WiFiManager* myWiFiManager) void reset_configurations() { Serial.println("Erasing Config, restarting"); - SPIFS.deleteConfigFile(); + nvMem.deleteConfig(); wm.resetSettings(); ESP.restart(); } @@ -84,14 +84,14 @@ void init_WifiManager() // Explicitly set WiFi mode WiFi.mode(WIFI_STA); - if (!SPIFS.loadConfigFile(&Settings)) + if (!nvMem.loadConfig(&Settings)) { //No config file on internal flash. - SDCard sdc; - if (!sdc.loadConfigFile(&Settings)) + SDCard SDCrd; + if (!SDCrd.loadConfigFile(&Settings)) { //No config file on SD card. - sdc.SD2SPIStorage(&SPIFS); // reboot on success. + SDCrd.SD2nvMemory(&nvMem); // reboot on success. } else @@ -166,7 +166,7 @@ void init_WifiManager() strncpy(Settings.BtcWallet, addr_text_box.getValue(), sizeof(Settings.BtcWallet)); Settings.Timezone = atoi(time_text_box_num.getValue()); - SPIFS.saveConfigFile(&Settings); + nvMem.saveConfig(&Settings); delay(3000); //reset and try again, or maybe put it to deep sleep ESP.restart(); @@ -225,7 +225,7 @@ void init_WifiManager() // Save the custom parameters to FS if (shouldSaveConfig) { - SPIFS.saveConfigFile(&Settings); + nvMem.saveConfig(&Settings); } } From 83938f72101ed56c5c4feeb32017e8b84ccbfe18 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:32:25 +0200 Subject: [PATCH 21/68] fix --- src/drivers/storage/SDCard.h | 4 ++-- src/wManager.cpp | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index 8734178..bf7f2b7 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -37,7 +37,7 @@ SDCard::~SDCard() SD_MMC.end(); } -void SDCard::SD2nvMemory(NVMem* nvMem) +void SDCard::SD2nvMemory(nvMemory* nvMem) { TSettings Settings; if (loadConfigFile(&Settings)) @@ -143,7 +143,7 @@ bool SDCard::initSDcard() SDCard::SDCard() {} SDCard::~SDCard() {} -void SDCard::SD2nvMemory(nvMemory* nvMem) {}; +void SDCard::SD2NVMemory(NVMemory* nvMem) {}; bool SDCard::loadConfigFile(TSettings* Settings) { return false; } bool SDCard::initSDcard() { return false; } diff --git a/src/wManager.cpp b/src/wManager.cpp index bb8ccde..dab719e 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -91,8 +91,7 @@ void init_WifiManager() if (!SDCrd.loadConfigFile(&Settings)) { //No config file on SD card. - SDCrd.SD2nvMemory(&nvMem); // reboot on success. - + SDCrd.SD2nvMemory(&nvMem); // reboot on success. } else { From 309f20940e131053e707855e2a4a5d945872cac0 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:01:32 +0200 Subject: [PATCH 22/68] fix --- platformio.ini | 1 + src/drivers/storage/SDCard.h | 3 ++- src/drivers/storage/nvMemory.h | 16 ++++++---------- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/platformio.ini b/platformio.ini index 7251771..07a6db8 100644 --- a/platformio.ini +++ b/platformio.ini @@ -140,6 +140,7 @@ build_flags = -D ESP32_CAM -D MONITOR_SPEED=${this.monitor_speed} lib_deps = + ;https://github.com/takkaO/OpenFontRender bblanchon/ArduinoJson@^6.21.2 https://github.com/tzapu/WiFiManager.git mathertel/OneButton @ ^2.0.3 diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index bf7f2b7..e5cf7e9 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -5,6 +5,7 @@ #include "storage.h" #include "nvMemory.h" +// Handles the transfer of settings from sd card to nv memory (wifi credentials are handled by wifimanager) class SDCard { public: @@ -143,7 +144,7 @@ bool SDCard::initSDcard() SDCard::SDCard() {} SDCard::~SDCard() {} -void SDCard::SD2NVMemory(NVMemory* nvMem) {}; +void SDCard::SD2nvMemory(nvMemory* nvMem) {}; bool SDCard::loadConfigFile(TSettings* Settings) { return false; } bool SDCard::initSDcard() { return false; } diff --git a/src/drivers/storage/nvMemory.h b/src/drivers/storage/nvMemory.h index 448e1fb..777e46a 100644 --- a/src/drivers/storage/nvMemory.h +++ b/src/drivers/storage/nvMemory.h @@ -1,11 +1,13 @@ #ifndef _NVMEMORY_H_ #define _NVMEMORY_H_ -#define BUILD_SPIFFS +// we only have one implementation right now and nothing to choose from. +#define NVMEM_SPIFFS #include "..\drivers.h" #include "storage.h" +// Handles load and store of user settings, except wifi credentials. Those are managed by the wifimanager. class nvMemory { public: @@ -19,14 +21,13 @@ private: bool Initialized_; }; -#ifdef BUILD_SPIFFS +#ifdef NVMEM_SPIFFS #define ESP_DRD_USE_SPIFFS true #include #include #include -#include nvMemory::nvMemory() { @@ -147,21 +148,16 @@ bool nvMemory::init() #else -#error We need some kind of permanent storage here! +#error We need some kind of permanent storage implemented here! nvMemory::nvMemory() {} - nvMemory::~nvMemory() {} - bool nvMemory::saveConfig(TSettings* Settings) { return false; } - bool nvMemory::loadConfig(TSettings* Settings) { return false; } - bool nvMemory::deleteConfig() { return false; } - bool nvMemory::init() { return false; } -#endif //BUILD_SPIFFS +#endif //NVMEM_TYPE #endif // _NVMEMORY_H_ From bc43d83b5e124fab69981235cff4fe1cb9603f21 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:41:15 +0200 Subject: [PATCH 23/68] update Readme: SD card, ESP32CAM --- README.md | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 232fe0c..f17d9f6 100644 --- a/README.md +++ b/README.md @@ -37,9 +37,11 @@ Every time an stratum job notification is received miner update its current work - 3D BOX [here](3d_files/) #### Current Supported Boards -- TTGO T-Display S3 ([Aliexpress link](https://s.click.aliexpress.com/e/_Ddy7739)) -- ESP32-WROOM-32, ESP32-Devkit1.. ([Aliexpress link](https://s.click.aliexpress.com/e/_DCzlUiX)) +- TTGO T-Display S3 ([Aliexpress link](https://s.click.aliexpress.com/e/_Ddy7739)*) +- ESP32-WROOM-32, ESP32-Devkit1.. ([Aliexpress link](https://s.click.aliexpress.com/e/_DCzlUiX)*) +- ESP32-cam (https://lastminuteengineers.com/getting-started-with-esp32-cam/) +*affiliate links ### Flash firmware #### microMiners Flashtool [Recommended] Easyiest way to flash firmware. Build your own miner using the folowing firwmare flash tool: @@ -76,6 +78,24 @@ After programming, you will only need to setup your Wifi and BTC address. 1. Setup your Wifi Network 1. Add your BTCaddress +OR + +1. Your board and firmware are SD card enabled. +1. Format a SD card using Fat32. +1. Create a file named "config.json" in your card's root with the following structure. Adjust the settings to your needs: +{ + "SSID": "myWifiSSID", + "PW": "myWifiPassword", + "PoolUrl": "public-pool.io", + "PoolPort": 21496, + "BtcWallet": "walletID", + "Timezone": 2 +} +1. Insert the SD card. +1. Hold down the "reset configurations" button as described below or power up without settings in your nvmemory. +1. Power down to remove the SD card. It is not needed for mining. + + Recommended low difficulty share pools: | Pool URL | Port | Web URL | Status | From d93d11d27f5ce279b1e65dda8ef9c6fd4d7fa06b Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:47:36 +0200 Subject: [PATCH 24/68] update reame affiliate links --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f17d9f6..d02d7e5 100644 --- a/README.md +++ b/README.md @@ -37,11 +37,10 @@ Every time an stratum job notification is received miner update its current work - 3D BOX [here](3d_files/) #### Current Supported Boards -- TTGO T-Display S3 ([Aliexpress link](https://s.click.aliexpress.com/e/_Ddy7739)*) -- ESP32-WROOM-32, ESP32-Devkit1.. ([Aliexpress link](https://s.click.aliexpress.com/e/_DCzlUiX)*) -- ESP32-cam (https://lastminuteengineers.com/getting-started-with-esp32-cam/) +- TTGO T-Display S3 ([Aliexpress link*](https://s.click.aliexpress.com/e/_Ddy7739)) +- ESP32-WROOM-32, ESP32-Devkit1.. ([Aliexpress link*](https://s.click.aliexpress.com/e/_DCzlUiX)) +- ESP32-cam [Board Info](https://lastminuteengineers.com/getting-started-with-esp32-cam/) -*affiliate links ### Flash firmware #### microMiners Flashtool [Recommended] Easyiest way to flash firmware. Build your own miner using the folowing firwmare flash tool: @@ -162,5 +161,6 @@ With the USB-C port to the right: ### Donations/Project contributions If you would like to contribute and help dev team with this project you can send a donation to the following LN address āš”teamnerdminer@getalby.comāš” +Or order by using the affiliate links(*) above. Enjoy From dd9c9b340181fe752d5d34eeff075cbe66affd78 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:49:01 +0200 Subject: [PATCH 25/68] update readme --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d02d7e5..6666b60 100644 --- a/README.md +++ b/README.md @@ -161,6 +161,7 @@ With the USB-C port to the right: ### Donations/Project contributions If you would like to contribute and help dev team with this project you can send a donation to the following LN address āš”teamnerdminer@getalby.comāš” -Or order by using the affiliate links(*) above. + +Or by using the affiliate links(*) above. Enjoy From cd69d0354a05e5709b568e3bd633333086644822 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:50:43 +0200 Subject: [PATCH 26/68] upate --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 6666b60..0b91f7d 100644 --- a/README.md +++ b/README.md @@ -160,8 +160,6 @@ With the USB-C port to the right: - [ ] Add support to control BM1397 ### Donations/Project contributions -If you would like to contribute and help dev team with this project you can send a donation to the following LN address āš”teamnerdminer@getalby.comāš” - -Or by using the affiliate links(*) above. +If you would like to contribute and help dev team with this project you can send a donation to the following LN address āš”teamnerdminer@getalby.comāš” or use the affiliate links(*) above. Enjoy From 457cef392861633c634997afcb5efa85cb2919a0 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:55:27 +0200 Subject: [PATCH 27/68] update readme --- README.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 0b91f7d..7473876 100644 --- a/README.md +++ b/README.md @@ -71,29 +71,31 @@ Update NerdMiner firmware following same flashing steps but only adding 0x10000_ ### NerdMiner configuration After programming, you will only need to setup your Wifi and BTC address. +#### Wifi Accesspoint + 1. Connect to NerdMinerAP - AP: NerdMinerAP - PASS: MineYourCoins 1. Setup your Wifi Network 1. Add your BTCaddress -OR +#### SD card (if available) -1. Your board and firmware are SD card enabled. 1. Format a SD card using Fat32. 1. Create a file named "config.json" in your card's root with the following structure. Adjust the settings to your needs: -{ - "SSID": "myWifiSSID", - "PW": "myWifiPassword", - "PoolUrl": "public-pool.io", - "PoolPort": 21496, - "BtcWallet": "walletID", - "Timezone": 2 +{ + "SSID": "myWifiSSID", + "PW": "myWifiPassword", + "PoolUrl": "public-pool.io", + "PoolPort": 21496, + "BtcWallet": "walletID", + "Timezone": 2 } 1. Insert the SD card. 1. Hold down the "reset configurations" button as described below or power up without settings in your nvmemory. 1. Power down to remove the SD card. It is not needed for mining. +#### Pool selection Recommended low difficulty share pools: From a856b8512d3218bc956f6bdc62695596662bde55 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:58:29 +0200 Subject: [PATCH 28/68] update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7473876..e8a2769 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ After programming, you will only need to setup your Wifi and BTC address. #### SD card (if available) 1. Format a SD card using Fat32. -1. Create a file named "config.json" in your card's root with the following structure. Adjust the settings to your needs: +1. Create a file named "config.json" in your card's root containing the the following structure. Adjust the settings to your needs: { "SSID": "myWifiSSID", "PW": "myWifiPassword", From 9d7aa2eef2a9942526a600500fdb66d15ea91df1 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 07:29:58 +0200 Subject: [PATCH 29/68] fix compiler warnings. --- lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h b/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h index 197ebc5..f8f4dbd 100644 --- a/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h +++ b/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h @@ -366,7 +366,7 @@ SPI3_HOST = 2 #define PARALLEL_INIT_TFT_DATA_BUS \ for (int32_t c = 0; c<256; c++) \ { \ - xset_mask[c] = 0; \ + xset_mask[c] = 0; \ if ( c & 0x01 ) xset_mask[c] |= (1 << (TFT_D0-MASK_OFFSET)); \ if ( c & 0x02 ) xset_mask[c] |= (1 << (TFT_D1-MASK_OFFSET)); \ if ( c & 0x04 ) xset_mask[c] |= (1 << (TFT_D2-MASK_OFFSET)); \ @@ -374,7 +374,7 @@ SPI3_HOST = 2 if ( c & 0x10 ) xset_mask[c] |= (1 << (TFT_D4-MASK_OFFSET)); \ if ( c & 0x20 ) xset_mask[c] |= (1 << (TFT_D5-MASK_OFFSET)); \ if ( c & 0x40 ) xset_mask[c] |= (1 << (TFT_D6-MASK_OFFSET)); \ - if ( c & 0x80 ) xset_mask[c] |= (1 << (TFT_D7-MASK_OFFSET)); \ + if ( c & 0x80 ) xset_mask[c] |= (1 << (TFT_D7-MASK_OFFSET)); \ } \ // Mask for the 8 data bits to set pin directions From bcd8b2f60dc700d4f22d829057af349922dd3262 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 07:36:46 +0200 Subject: [PATCH 30/68] seperate display drivers --- platformio.ini | 1 + src/NerdMinerV2.ino.cpp | 6 ++--- src/drivers/devices/device.h | 20 +++++++++++++++ src/drivers/displays/amoledDisplayDriver.cpp | 2 +- src/drivers/{ => displays}/display.cpp | 0 src/drivers/{ => displays}/display.h | 2 +- .../{drivers.h => displays/displayDriver.h} | 22 +++------------- src/drivers/displays/dongleDisplayDriver.cpp | 8 +++--- src/drivers/displays/noDisplayDriver.cpp | 2 +- src/drivers/displays/tDisplayDriver.cpp | 2 +- src/drivers/storage/SDCard.h | 2 +- src/drivers/storage/nvMemory.h | 2 +- src/drivers/storage/storage.h | 25 +------------------ src/mining.cpp | 2 +- src/wManager.cpp | 6 ++--- src/wManager.h | 2 +- 16 files changed, 44 insertions(+), 60 deletions(-) create mode 100644 src/drivers/devices/device.h rename src/drivers/{ => displays}/display.cpp (100%) rename src/drivers/{ => displays}/display.h (94%) rename src/drivers/{drivers.h => displays/displayDriver.h} (76%) diff --git a/platformio.ini b/platformio.ini index 07a6db8..f5b5984 100644 --- a/platformio.ini +++ b/platformio.ini @@ -145,5 +145,6 @@ lib_deps = https://github.com/tzapu/WiFiManager.git mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient + ;https://github.com/jbtronics/ESP32Console.git#v1.2.1 lib_ignore = TFT_eSPI diff --git a/src/NerdMinerV2.ino.cpp b/src/NerdMinerV2.ino.cpp index 5c0e4a7..9ee202e 100644 --- a/src/NerdMinerV2.ino.cpp +++ b/src/NerdMinerV2.ino.cpp @@ -10,7 +10,7 @@ #include "wManager.h" #include "mining.h" #include "monitor.h" -#include "drivers/display.h" +#include "drivers/displays/display.h" //3 seconds WDT #define WDT_TIMEOUT 3 @@ -57,7 +57,7 @@ void setup() button1.setPressTicks(5000); button1.attachClick(switchToNextScreen); button1.attachDoubleClick(alternateScreenRotation); - button1.attachLongPressStart(reset_configurations); + button1.attachLongPressStart(reset_configuration); #endif #if defined(PIN_BUTTON_1) && defined(PIN_BUTTON_2) //Button 1 of two button device @@ -69,7 +69,7 @@ void setup() #if defined(PIN_BUTTON_2) //Button 2 of two button device button2.setPressTicks(5000); button2.attachClick(switchToNextScreen); - button2.attachLongPressStart(reset_configurations); + button2.attachLongPressStart(reset_configuration); #endif /******** INIT NERDMINER ************/ diff --git a/src/drivers/devices/device.h b/src/drivers/devices/device.h new file mode 100644 index 0000000..1e46037 --- /dev/null +++ b/src/drivers/devices/device.h @@ -0,0 +1,20 @@ +#ifndef __DEVICE_H__ +#define __DEVICE_H__ + +#if defined(NERDMINERV2) +#include "nerdMinerV2.h" +#elif defined(DEVKITV1) +#include "esp32DevKit.h" +#elif defined(TDISPLAY) +#include "lilygoS3TDisplay.h" +#elif defined(NERMINER_S3_AMOLED) +#include "lilygoS3Amoled.h" +#elif defined(NERMINER_S3_DONGLE) +#include "lilygoS3Dongle.h" +#elif defined(ESP32_CAM) +#include "esp32CAM.h" +#else +#error "No device defined" +#endif + +#endif // __DEVICE_H__ \ No newline at end of file diff --git a/src/drivers/displays/amoledDisplayDriver.cpp b/src/drivers/displays/amoledDisplayDriver.cpp index c0eae8b..4abc576 100644 --- a/src/drivers/displays/amoledDisplayDriver.cpp +++ b/src/drivers/displays/amoledDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef AMOLED_DISPLAY diff --git a/src/drivers/display.cpp b/src/drivers/displays/display.cpp similarity index 100% rename from src/drivers/display.cpp rename to src/drivers/displays/display.cpp diff --git a/src/drivers/display.h b/src/drivers/displays/display.h similarity index 94% rename from src/drivers/display.h rename to src/drivers/displays/display.h index 331ea95..2a4a469 100644 --- a/src/drivers/display.h +++ b/src/drivers/displays/display.h @@ -1,7 +1,7 @@ #ifndef DISPLAY_H #define DISPLAY_H -#include "drivers.h" +#include "DisplayDriver.h" extern DisplayDriver *currentDisplayDriver; diff --git a/src/drivers/drivers.h b/src/drivers/displays/displayDriver.h similarity index 76% rename from src/drivers/drivers.h rename to src/drivers/displays/displayDriver.h index b2c1e46..98ef3f1 100644 --- a/src/drivers/drivers.h +++ b/src/drivers/displays/displayDriver.h @@ -1,21 +1,7 @@ -#ifndef DRIVERS_H -#define DRIVERS_H +#ifndef DISPLAYDRIVER_H_ +#define DISPLAYDRIVER_H_ -#if defined(NERDMINERV2) -#include "devices/nerdMinerV2.h" -#elif defined(DEVKITV1) -#include "devices/esp32DevKit.h" -#elif defined(TDISPLAY) -#include "devices/lilygoS3TDisplay.h" -#elif defined(NERMINER_S3_AMOLED) -#include "devices/lilygoS3Amoled.h" -#elif defined(NERMINER_S3_DONGLE) -#include "devices/lilygoS3Dongle.h" -#elif defined(ESP32_CAM) -#include "devices/esp32CAM.h" -#else -#error "No device defined" -#endif +#include "..\devices\device.h" typedef void (*AlternateFunction)(void); typedef void (*DriverInitFunction)(void); @@ -49,4 +35,4 @@ extern DisplayDriver dongleDisplayDriver; #define SCREENS_ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) -#endif // DRIVERS_H +#endif // DISPLAYDRIVER_H_ diff --git a/src/drivers/displays/dongleDisplayDriver.cpp b/src/drivers/displays/dongleDisplayDriver.cpp index 2ba6356..f6b4fe0 100644 --- a/src/drivers/displays/dongleDisplayDriver.cpp +++ b/src/drivers/displays/dongleDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef DONGLE_DISPLAY @@ -45,15 +45,15 @@ extern monitor_data mMonitor; int32_t x = 8, y = 8; \ background.setTextSize(1); \ background.setTextFont(FONT2); \ - \ + \ background.setTextColor(KEY_COLOR); \ - \ + \ render.setFontSize(18); #define CLEAR_SCREEN() \ RESET_SCREEN(); \ background.fillRect(0, 0, BUFFER_WIDTH, BUFFER_HEIGHT, BACK_COLOR); \ - \ + \ #define PRINT_STR(str) \ diff --git a/src/drivers/displays/noDisplayDriver.cpp b/src/drivers/displays/noDisplayDriver.cpp index 23a74bd..636cf81 100644 --- a/src/drivers/displays/noDisplayDriver.cpp +++ b/src/drivers/displays/noDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef NO_DISPLAY diff --git a/src/drivers/displays/tDisplayDriver.cpp b/src/drivers/displays/tDisplayDriver.cpp index 6eb454b..76eede4 100644 --- a/src/drivers/displays/tDisplayDriver.cpp +++ b/src/drivers/displays/tDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef T_DISPLAY diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index e5cf7e9..36214c0 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -1,7 +1,7 @@ #ifndef _SDCARD_H_ #define _SDCARD_H_ -#include "..\drivers.h" +#include "..\devices\device.h" #include "storage.h" #include "nvMemory.h" diff --git a/src/drivers/storage/nvMemory.h b/src/drivers/storage/nvMemory.h index 777e46a..5cd03ea 100644 --- a/src/drivers/storage/nvMemory.h +++ b/src/drivers/storage/nvMemory.h @@ -4,7 +4,7 @@ // we only have one implementation right now and nothing to choose from. #define NVMEM_SPIFFS -#include "..\drivers.h" +#include "..\devices\device.h" #include "storage.h" // Handles load and store of user settings, except wifi credentials. Those are managed by the wifimanager. diff --git a/src/drivers/storage/storage.h b/src/drivers/storage/storage.h index bddb103..6425b5f 100644 --- a/src/drivers/storage/storage.h +++ b/src/drivers/storage/storage.h @@ -17,37 +17,14 @@ #define JSON_KEY_POOLPORT "PoolPort" #define JSON_KEY_TIMEZONE "Timezone" -class TSettings +struct TSettings { -public: char WifiSSID[80]{ DEFAULT_SSID }; char WifiPW[80]{ DEFAULT_WIFIPW }; char PoolAddress[80]{ DEFAULT_POOLURL }; char BtcWallet[80]{ DEFAULT_WALLETID }; uint32_t PoolPort{ DEFAULT_POOLPORT }; uint32_t Timezone{ DEFAULT_TIMEZONE }; - - void print() - { - Serial.print("WifiSSID:>"); - Serial.print(WifiSSID); - Serial.print("<, "); - Serial.print("WifiPW:>"); - Serial.print(WifiPW); - Serial.print("<, "); - Serial.print("PoolAddress:>"); - Serial.print(PoolAddress); - Serial.print("<, "); - Serial.print("BtcWallet:>"); - Serial.print(BtcWallet); - Serial.print("<, "); - Serial.print("PoolPort:>"); - Serial.print(PoolPort); - Serial.print("<, "); - Serial.print("Timezone:>"); - Serial.print(Timezone); - Serial.println("<"); - } }; #endif // _STORAGE_H_ \ No newline at end of file diff --git a/src/mining.cpp b/src/mining.cpp index 0395b57..8c67adc 100644 --- a/src/mining.cpp +++ b/src/mining.cpp @@ -8,7 +8,7 @@ #include "mining.h" #include "utils.h" #include "monitor.h" -#include "drivers/display.h" +#include "drivers/displays/display.h" #include "drivers/storage/storage.h" unsigned long templates = 0; diff --git a/src/wManager.cpp b/src/wManager.cpp index dab719e..1a3ef66 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -7,7 +7,7 @@ #include "wManager.h" #include "monitor.h" -#include "drivers/display.h" +#include "drivers/displays/display.h" #include "drivers/storage/SDCard.h" #include "drivers/storage/nvMemory.h" #include "drivers/storage/storage.h" @@ -46,7 +46,7 @@ void configModeCallback(WiFiManager* myWiFiManager) Serial.println(WiFi.softAPIP()); } -void reset_configurations() +void reset_configuration() { Serial.println("Erasing Config, restarting"); nvMem.deleteConfig(); @@ -76,7 +76,7 @@ void init_WifiManager() // Check if button2 is pressed to enter configMode with actual configuration if (!digitalRead(PIN_BUTTON_2)) { Serial.println(F("Button pressed to force start config mode")); - reset_configurations(); + reset_configuration(); forceConfig = true; wm.setBreakAfterConfig(true); //Set to detect config edition and save } diff --git a/src/wManager.h b/src/wManager.h index 7c8dc64..ef2bd37 100644 --- a/src/wManager.h +++ b/src/wManager.h @@ -3,6 +3,6 @@ void init_WifiManager(); void wifiManagerProcess(); -void reset_configurations(); +void reset_configuration(); #endif // _WMANAGER_H From 7ba6c9dc746aa49affee28939cae1d7252d8c9bb Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 09:40:43 +0200 Subject: [PATCH 31/68] update readme add tripple click option --- README.md | 15 +++++++++++++-- src/NerdMinerV2.ino.cpp | 1 + src/wManager.cpp | 1 - 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e8a2769..47928d6 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,8 @@ Every time an stratum job notification is received miner update its current work - ESP32-WROOM-32, ESP32-Devkit1.. ([Aliexpress link*](https://s.click.aliexpress.com/e/_DCzlUiX)) - ESP32-cam [Board Info](https://lastminuteengineers.com/getting-started-with-esp32-cam/) +* affiliate link + ### Flash firmware #### microMiners Flashtool [Recommended] Easyiest way to flash firmware. Build your own miner using the folowing firwmare flash tool: @@ -92,7 +94,7 @@ After programming, you will only need to setup your Wifi and BTC address. "Timezone": 2 } 1. Insert the SD card. -1. Hold down the "reset configurations" button as described below or power up without settings in your nvmemory. +1. Hold down the "reset configurations" button as described below to reset the configurations and/or boot without settings in your nvmemory. 1. Power down to remove the SD card. It is not needed for mining. #### Pool selection @@ -115,6 +117,15 @@ Other standard pools not compatible with low difficulty share: | eu.stratum.slushpool.com | 3333 | https://braiins.com/pool | ### Buttons + +#### One button devices: + +- One click > change screen. +- Double click > change screen orientation. +- Tripple click > turn the screen off and on again. +- Hold 5 seconds > **reset the configurations and reboot** your NerdMiner. + +#### Two button devices: With the USB-C port to the right: **TOP BUTTON** @@ -162,6 +173,6 @@ With the USB-C port to the right: - [ ] Add support to control BM1397 ### Donations/Project contributions -If you would like to contribute and help dev team with this project you can send a donation to the following LN address āš”teamnerdminer@getalby.comāš” or use the affiliate links(*) above. +If you would like to contribute and help dev team with this project you can send a donation to the following LN address āš”teamnerdminer@getalby.comāš” Enjoy diff --git a/src/NerdMinerV2.ino.cpp b/src/NerdMinerV2.ino.cpp index 9ee202e..8144dcf 100644 --- a/src/NerdMinerV2.ino.cpp +++ b/src/NerdMinerV2.ino.cpp @@ -58,6 +58,7 @@ void setup() button1.attachClick(switchToNextScreen); button1.attachDoubleClick(alternateScreenRotation); button1.attachLongPressStart(reset_configuration); + if(button1.getNumberClicks() == 3) alternateScreenState(); #endif #if defined(PIN_BUTTON_1) && defined(PIN_BUTTON_2) //Button 1 of two button device diff --git a/src/wManager.cpp b/src/wManager.cpp index 1a3ef66..f9b6a1d 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -76,7 +76,6 @@ void init_WifiManager() // Check if button2 is pressed to enter configMode with actual configuration if (!digitalRead(PIN_BUTTON_2)) { Serial.println(F("Button pressed to force start config mode")); - reset_configuration(); forceConfig = true; wm.setBreakAfterConfig(true); //Set to detect config edition and save } From 1beeea2a25ceba13bd404cadea82a11ab3afc4e4 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 09:47:45 +0200 Subject: [PATCH 32/68] update --- src/drivers/storage/nvMemory.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/drivers/storage/nvMemory.h b/src/drivers/storage/nvMemory.h index 5cd03ea..71c5d80 100644 --- a/src/drivers/storage/nvMemory.h +++ b/src/drivers/storage/nvMemory.h @@ -148,7 +148,7 @@ bool nvMemory::init() #else -#error We need some kind of permanent storage implemented here! +#error We need some kind of permanent storage implementation! nvMemory::nvMemory() {} nvMemory::~nvMemory() {} From 59fbade3471f39ad9868a23ab4e6ee2b0f0f9165 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 12:42:41 +0200 Subject: [PATCH 33/68] update debug messages, prepare implementation of SPI mode --- src/drivers/storage/SDCard.h | 115 ++++++++++++++++++++++------------- 1 file changed, 74 insertions(+), 41 deletions(-) diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index 36214c0..7e02ba2 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -1,6 +1,19 @@ #ifndef _SDCARD_H_ #define _SDCARD_H_ +#if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) +#define BUILD_SDMMC_4 +#include +#elif defined (SDMMC_D0) && !(defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3)) +#define BUILD_SDMMC_1 +#include +#else +#warning SD card support disabled! +#endif + +#include +#include + #include "..\devices\device.h" #include "storage.h" #include "nvMemory.h" @@ -15,27 +28,31 @@ public: bool loadConfigFile(TSettings* Settings); private: bool initSDcard(); + void unmount(); - bool cardInitialized_; +#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) + fs::SDMMCFS* iSD_; +#elif defined (BUILD_SDSPI) + fs::SDFS* iSD_; +#error You chose to run the sd card in SPI mode. This is not implemented yet. +#endif }; -#ifdef BUILD_SDMMC - -#include -#include - -#include +#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) || defined (BUILD_SDSPI) SDCard::SDCard() { - cardInitialized_ = false; +#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) + iSD_ = &SD_MMC; +#elif defined (BUILD_SDSPI) +#error You chose to run the sd card in SPI mode. This is not implemented yet. +#endif } SDCard::~SDCard() { - if (cardInitialized_) - SD_MMC.end(); + unmount(); } void SDCard::SD2nvMemory(nvMemory* nvMem) @@ -54,26 +71,24 @@ bool SDCard::loadConfigFile(TSettings* Settings) { // Load existing configuration file // Read configuration from FS json - Serial.println("SDCard: Mounting File System..."); if (initSDcard()) { - if (SD_MMC.exists(JSON_CONFIG_FILE)) + if (iSD_->exists(JSON_CONFIG_FILE)) { // The file exists, reading and loading - Serial.println("SDCard: Reading config file"); - File configFile = SD_MMC.open(JSON_CONFIG_FILE, "r"); + File configFile = iSD_->open(JSON_CONFIG_FILE, "r"); if (configFile) { - Serial.println("SDCard: Opened configuration file"); StaticJsonDocument<512> json; DeserializationError error = deserializeJson(json, configFile); configFile.close(); + Serial.println("SDCard: Loading config file"); serializeJsonPretty(json, Serial); Serial.print('\n'); + unmount(); if (!error) { - Serial.println("SDCard: Parsing JSON"); strcpy(Settings->WifiSSID, json[JSON_KEY_SSID] | Settings->WifiSSID); strcpy(Settings->WifiPW, json[JSON_KEY_PASW] | Settings->WifiPW); strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); @@ -82,62 +97,79 @@ bool SDCard::loadConfigFile(TSettings* Settings) Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); if (json.containsKey(JSON_KEY_TIMEZONE)) Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); - SD_MMC.end(); return true; } else { // Error loading JSON data - Serial.println("SDCard: Failed to load json config"); + Serial.println("SDCard: Error parsing config file!"); } } + else + { + Serial.println("SDCard: Error opening config file!"); + } } else { - Serial.println("SDCard: No config file available!"); + Serial.println("SDCard: No config file available!"); } - SD_MMC.end(); + unmount(); } return false; } +void SDCard::unmount() +{ + iSD_->end(); + Serial.println("SDCard: Unmounted"); +} + bool SDCard::initSDcard() { - if((cardInitialized_)&&(SD_MMC.cardType() != CARD_NONE)) + if(iSD_->cardType() != CARD_NONE) { - Serial.println("SDCard: Already mounted."); - return cardInitialized_; + Serial.println("SDCard: Already mounted."); + return true; } - - bool oneBitMode = true; -#if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) - if (SD_MMC.cardType() == CARD_NONE) + Serial.println("SDCard: Mounting card."); + + bool cardInitialized = false; +#if defined (BUILD_SDMMC_4) + if (iSD_->cardType() == CARD_NONE) { - SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); - oneBitMode = false; + iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); Serial.println("SDCard: 4-Bit Mode."); + cardInitialized = iSD_->begin("/sd", false); } -#elif defined (SDMMC_D0) && !(defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3)) - if (SD_MMC.cardType() == CARD_NONE) +#elif defined (BUILD_SDMMC_1) +#warning SDMMC: 1-bit mode is not always working. If you experience issues, try other modes. + if (iSD_->cardType() == CARD_NONE) { - SD_MMC.setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); + iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); Serial.println("SDCard: 1-Bit Mode."); + cardInitialized = iSD_->begin("/sd", true); } +#elif defined (BUILD_SDSPI) +#error You chose to run the sd card in SPI mode. This is not implemented yet. #else Serial.println("SDCard: interface not available."); return false; #endif // dataPinsDefined - cardInitialized_ = SD_MMC.begin("/sdcard", oneBitMode); - if ((cardInitialized_) && (SD_MMC.cardType() != CARD_NONE)) + if (cardInitialized) { - Serial.println("SDCard: Card mounted."); - return true; - } - else - { - Serial.println("SDCard: No card found."); - return false; + if(iSD_->cardType() != CARD_NONE) + { + Serial.println("SDCard: Mounted."); + return true; + } + else + { + Serial.println("SDCard: Mounting failed."); + iSD_->end(); + } } + return false; } #else @@ -147,6 +179,7 @@ SDCard::~SDCard() {} void SDCard::SD2nvMemory(nvMemory* nvMem) {}; bool SDCard::loadConfigFile(TSettings* Settings) { return false; } bool SDCard::initSDcard() { return false; } +void unmount() {} #endif //BUILD_SDMMC From a694427b7c3ab2421de232de1e0aec9662ba7d35 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 12:43:13 +0200 Subject: [PATCH 34/68] update debug messages, comments --- src/drivers/devices/esp32CAM.h | 6 +++--- src/drivers/storage/nvMemory.h | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/drivers/devices/esp32CAM.h b/src/drivers/devices/esp32CAM.h index 7911db7..54d7460 100644 --- a/src/drivers/devices/esp32CAM.h +++ b/src/drivers/devices/esp32CAM.h @@ -6,13 +6,13 @@ #define NO_DISPLAY -#define BUILD_SDMMC - +// SDMMC interface: 1-bit mode (might cause issues): #define SDMMC_CLK 14 #define SDMMC_CMD 15 #define SDMMC_D0 2 +// additional defines to enable 4-bit mode #define SDMMC_D1 4 #define SDMMC_D2 12 #define SDMMC_D3 13 -#endif // _ESP32_CAM_H_ \ No newline at end of file +#endif // _ESP32_CAM_H_ diff --git a/src/drivers/storage/nvMemory.h b/src/drivers/storage/nvMemory.h index 71c5d80..d53713c 100644 --- a/src/drivers/storage/nvMemory.h +++ b/src/drivers/storage/nvMemory.h @@ -45,7 +45,7 @@ bool nvMemory::saveConfig(TSettings* Settings) if (init()) { // Save Config in JSON format - Serial.println(F("SPIFS: Saving configuration...")); + Serial.println(F("SPIFS: Saving configuration.")); // Create a JSON document StaticJsonDocument<512> json; @@ -59,7 +59,7 @@ bool nvMemory::saveConfig(TSettings* Settings) if (!configFile) { // Error, file did not open - Serial.println("SPIFS: failed to open config file for writing"); + Serial.println("SPIFS: Failed to open config file for writing"); return false; } @@ -92,11 +92,10 @@ bool nvMemory::loadConfig(TSettings* Settings) if (SPIFFS.exists(JSON_CONFIG_FILE)) { // The file exists, reading and loading - Serial.println("SPIFS: Reading config file"); File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); if (configFile) { - Serial.println("SPIFS: Opened configuration file"); + Serial.println("SPIFS: Loading config file"); StaticJsonDocument<512> json; DeserializationError error = deserializeJson(json, configFile); configFile.close(); @@ -104,7 +103,6 @@ bool nvMemory::loadConfig(TSettings* Settings) Serial.print('\n'); if (!error) { - Serial.println("SPIFS: Parsing JSON"); strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); if (json.containsKey(JSON_KEY_POOLPORT)) @@ -116,9 +114,17 @@ bool nvMemory::loadConfig(TSettings* Settings) else { // Error loading JSON data - Serial.println("SPIFS: Failed to load json config"); + Serial.println("SPIFS: Error parsing config file!"); } } + else + { + Serial.println("SPIFS: Error opening config file!"); + } + } + else + { + Serial.println("SPIFS: No config file available!"); } } return false; From cc1832641b26fb423502cb4d6583bac80bacf25a Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 15 Sep 2023 12:43:16 +0200 Subject: [PATCH 35/68] fix --- src/wManager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/wManager.cpp b/src/wManager.cpp index f9b6a1d..081b79c 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -87,14 +87,14 @@ void init_WifiManager() { //No config file on internal flash. SDCard SDCrd; - if (!SDCrd.loadConfigFile(&Settings)) + if (SDCrd.loadConfigFile(&Settings)) { - //No config file on SD card. + //Config file on SD card. SDCrd.SD2nvMemory(&nvMem); // reboot on success. } else { - //Config file on SD card. Copy and restart. + //No config file on SD card. Starting wifi config server. forceConfig = true; } }; From 6690f3cccbf6bb4133c6e10037e4f7b5ffa720ec Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Sat, 16 Sep 2023 01:42:40 +0200 Subject: [PATCH 36/68] update --- src/drivers/storage/SDCard.h | 2 +- src/drivers/storage/nvMemory.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index 7e02ba2..1bcdf65 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -33,8 +33,8 @@ private: #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) fs::SDMMCFS* iSD_; #elif defined (BUILD_SDSPI) +#error You chose to run the SD card in SPI mode. This is not implemented yet. fs::SDFS* iSD_; -#error You chose to run the sd card in SPI mode. This is not implemented yet. #endif }; diff --git a/src/drivers/storage/nvMemory.h b/src/drivers/storage/nvMemory.h index d53713c..8d1e117 100644 --- a/src/drivers/storage/nvMemory.h +++ b/src/drivers/storage/nvMemory.h @@ -152,7 +152,6 @@ bool nvMemory::init() return Initialized_; }; - #else #error We need some kind of permanent storage implementation! From 711cf00c43671f9804fd0fa8944b49d49fd12719 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Sun, 17 Sep 2023 14:41:16 +0200 Subject: [PATCH 37/68] fix file locations --- .gitignore | 1 - platformio.ini | 2 +- src/drivers/devices/device.h | 16 ++++++++-------- src/drivers/displays/esp23_2432s028r.cpp | 2 +- src/drivers/displays/tDisplayV1Driver.cpp | 2 +- src/drivers/displays/t_qtDisplayDriver.cpp | 2 +- 6 files changed, 12 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 1c9a165..f7eadc5 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ .vs *.sln *.vcxproj* -x64 NerdMinerLog.txt bin/0x10000_firmware.bin logs diff --git a/platformio.ini b/platformio.ini index 0d72395..8ca1833 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,7 +10,7 @@ [platformio] globallib_dir = lib -default_envs = esp32cam ;ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R +default_envs = esp32cam, ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R [env:NerminerV2] platform = espressif32 diff --git a/src/drivers/devices/device.h b/src/drivers/devices/device.h index a1c74a8..7d8ba51 100644 --- a/src/drivers/devices/device.h +++ b/src/drivers/devices/device.h @@ -2,21 +2,21 @@ #define __DEVICE_H__ #if defined(NERDMINERV2) -#include "devices/nerdMinerV2.h" +#include "nerdMinerV2.h" #elif defined(DEVKITV1) -#include "devices/esp32DevKit.h" +#include "esp32DevKit.h" #elif defined(TDISPLAY) -#include "devices/lilygoS3TDisplay.h" +#include "lilygoS3TDisplay.h" #elif defined(NERMINER_S3_AMOLED) -#include "devices/lilygoS3Amoled.h" +#include "lilygoS3Amoled.h" #elif defined(NERMINER_S3_DONGLE) -#include "devices/lilygoS3Dongle.h" +#include "lilygoS3Dongle.h" #elif defined(ESP32_2432S028R) -#include "devices/esp322432s028r.h" +#include "esp322432s028r.h" #elif defined(NERMINER_T_QT) -#include "devices/lilygoT_QT.h" +#include "lilygoT_QT.h" #elif defined(NERDMINER_T_DISPLAY_V1) -#include "devices/lilygoV1TDisplay.h" +#include "lilygoV1TDisplay.h" #elif defined(ESP32_CAM) #include "esp32CAM.h" diff --git a/src/drivers/displays/esp23_2432s028r.cpp b/src/drivers/displays/esp23_2432s028r.cpp index 1221b72..71cc72f 100644 --- a/src/drivers/displays/esp23_2432s028r.cpp +++ b/src/drivers/displays/esp23_2432s028r.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef ESP32_2432S028R diff --git a/src/drivers/displays/tDisplayV1Driver.cpp b/src/drivers/displays/tDisplayV1Driver.cpp index ac05290..93b8f76 100644 --- a/src/drivers/displays/tDisplayV1Driver.cpp +++ b/src/drivers/displays/tDisplayV1Driver.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef V1_DISPLAY diff --git a/src/drivers/displays/t_qtDisplayDriver.cpp b/src/drivers/displays/t_qtDisplayDriver.cpp index c5ddadc..f632cae 100644 --- a/src/drivers/displays/t_qtDisplayDriver.cpp +++ b/src/drivers/displays/t_qtDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef T_QT_DISPLAY From 2e366e931b6901c145a78e3d42f3d8cd9eca8514 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Sun, 17 Sep 2023 14:52:48 +0200 Subject: [PATCH 38/68] split declaration+implementation --- SDCard.cpp | 145 ++++++++++++++++++++++++++++++++ nvMemory.cpp | 145 ++++++++++++++++++++++++++++++++ src/drivers/storage/SDCard.h | 149 +-------------------------------- src/drivers/storage/nvMemory.h | 141 ------------------------------- 4 files changed, 292 insertions(+), 288 deletions(-) create mode 100644 SDCard.cpp create mode 100644 nvMemory.cpp diff --git a/SDCard.cpp b/SDCard.cpp new file mode 100644 index 0000000..21faf58 --- /dev/null +++ b/SDCard.cpp @@ -0,0 +1,145 @@ +#include"src/drivers/storage/SDCard.h" + +#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) || defined (BUILD_SDSPI) + +SDCard::SDCard() +{ +#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) + iSD_ = &SD_MMC; +#elif defined (BUILD_SDSPI) +#error You chose to run the sd card in SPI mode. This is not implemented yet. +#endif +} + +SDCard::~SDCard() +{ + unmount(); +} + +void SDCard::SD2nvMemory(nvMemory* nvMem) +{ + TSettings Settings; + if (loadConfigFile(&Settings)) + { + nvMem->saveConfig(&Settings); + WiFi.begin(Settings.WifiSSID, Settings.WifiPW); + Serial.println("SDCard: Settings transfered to internal memory. Restarting now."); + ESP.restart(); + } +} + +bool SDCard::loadConfigFile(TSettings* Settings) +{ + // Load existing configuration file + // Read configuration from FS json + + if (initSDcard()) + { + if (iSD_->exists(JSON_CONFIG_FILE)) + { + // The file exists, reading and loading + File configFile = iSD_->open(JSON_CONFIG_FILE, "r"); + if (configFile) + { + StaticJsonDocument<512> json; + DeserializationError error = deserializeJson(json, configFile); + configFile.close(); + Serial.println("SDCard: Loading config file"); + serializeJsonPretty(json, Serial); + Serial.print('\n'); + unmount(); + if (!error) + { + strcpy(Settings->WifiSSID, json[JSON_KEY_SSID] | Settings->WifiSSID); + strcpy(Settings->WifiPW, json[JSON_KEY_PASW] | Settings->WifiPW); + strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); + strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); + if (json.containsKey(JSON_KEY_POOLPORT)) + Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); + if (json.containsKey(JSON_KEY_TIMEZONE)) + Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); + return true; + } + else + { + // Error loading JSON data + Serial.println("SDCard: Error parsing config file!"); + } + } + else + { + Serial.println("SDCard: Error opening config file!"); + } + } + else + { + Serial.println("SDCard: No config file available!"); + } + unmount(); + } + return false; +} + +void SDCard::unmount() +{ + iSD_->end(); + Serial.println("SDCard: Unmounted"); +} + +bool SDCard::initSDcard() +{ + if (iSD_->cardType() != CARD_NONE) + { + Serial.println("SDCard: Already mounted."); + return true; + } + Serial.println("SDCard: Mounting card."); + + bool cardInitialized = false; +#if defined (BUILD_SDMMC_4) + if (iSD_->cardType() == CARD_NONE) + { + iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); + Serial.println("SDCard: 4-Bit Mode."); + cardInitialized = iSD_->begin("/sd", false); + } +#elif defined (BUILD_SDMMC_1) + #warning SDMMC : 1 - bit mode is not always working.If you experience issues, try other modes. + if (iSD_->cardType() == CARD_NONE) + { + iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); + Serial.println("SDCard: 1-Bit Mode."); + cardInitialized = iSD_->begin("/sd", true); + } +#elif defined (BUILD_SDSPI) +#error You chose to run the sd card in SPI mode. This is not implemented yet. +#else + Serial.println("SDCard: interface not available."); + return false; +#endif // dataPinsDefined + if (cardInitialized) + { + if (iSD_->cardType() != CARD_NONE) + { + Serial.println("SDCard: Mounted."); + return true; + } + else + { + Serial.println("SDCard: Mounting failed."); + iSD_->end(); + } + } + return false; +} + +#else + +SDCard::SDCard() {} +SDCard::~SDCard() {} +void SDCard::SD2nvMemory(nvMemory* nvMem) {}; +bool SDCard::loadConfigFile(TSettings* Settings) { return false; } +bool SDCard::initSDcard() { return false; } +void unmount() {} + +#endif //BUILD_SDMMC \ No newline at end of file diff --git a/nvMemory.cpp b/nvMemory.cpp new file mode 100644 index 0000000..d4f6901 --- /dev/null +++ b/nvMemory.cpp @@ -0,0 +1,145 @@ +#include "src/drivers/storage/nvMemory.h" + +#ifdef NVMEM_SPIFFS + +#include +#include +#include + +nvMemory::nvMemory() +{ + Initialized_ = false; +} + +nvMemory::~nvMemory() +{ + if (Initialized_) + SPIFFS.end(); +}; + +bool nvMemory::saveConfig(TSettings* Settings) +{ + if (init()) + { + // Save Config in JSON format + Serial.println(F("SPIFS: Saving configuration.")); + + // Create a JSON document + StaticJsonDocument<512> json; + json[JSON_KEY_POOLURL] = Settings->PoolAddress; + json[JSON_KEY_POOLPORT] = Settings->PoolPort; + json[JSON_KEY_WALLETID] = Settings->BtcWallet; + json[JSON_KEY_TIMEZONE] = Settings->Timezone; + json[JSON_KEY_TIMEZONE] = Settings->saveStats; + + // Open config file + File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); + if (!configFile) + { + // Error, file did not open + Serial.println("SPIFS: Failed to open config file for writing"); + return false; + } + + // Serialize JSON data to write to file + serializeJsonPretty(json, Serial); + Serial.print('\n'); + if (serializeJson(json, configFile) == 0) + { + // Error writing file + Serial.println(F("SPIFS: Failed to write to file")); + return false; + } + // Close file + configFile.close(); + return true; + }; + return false; +} + +bool nvMemory::loadConfig(TSettings* Settings) +{ + // Uncomment if we need to format filesystem + // SPIFFS.format(); + + // Load existing configuration file + // Read configuration from FS json + + if (init()) + { + if (SPIFFS.exists(JSON_CONFIG_FILE)) + { + // The file exists, reading and loading + File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); + if (configFile) + { + Serial.println("SPIFS: Loading config file"); + StaticJsonDocument<512> json; + DeserializationError error = deserializeJson(json, configFile); + configFile.close(); + serializeJsonPretty(json, Serial); + Serial.print('\n'); + if (!error) + { + strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); + strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); + if (json.containsKey(JSON_KEY_POOLPORT)) + Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); + if (json.containsKey(JSON_KEY_TIMEZONE)) + Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); + if (json.containsKey(JSON_KEY_STATS2NV)) + Settings->saveStats = json[JSON_KEY_STATS2NV].as(); + return true; + } + else + { + // Error loading JSON data + Serial.println("SPIFS: Error parsing config file!"); + } + } + else + { + Serial.println("SPIFS: Error opening config file!"); + } + } + else + { + Serial.println("SPIFS: No config file available!"); + } + } + return false; +} + +bool nvMemory::deleteConfig() +{ + Serial.println("SPIFS: Erasing config file.."); + return SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero +} + +bool nvMemory::init() +{ + if (!Initialized_) + { + Serial.println("SPIFS: Mounting File System..."); + // May need to make it begin(true) first time you are using SPIFFS + Initialized_ = SPIFFS.begin(false) || SPIFFS.begin(true); + Initialized_ ? Serial.println("SPIFS: Mounted") : Serial.println("SPIFS: Mounting failed."); + } + else + { + Serial.println("SPIFS: Already Mounted"); + } + return Initialized_; +}; + +#else + +nvMemory::nvMemory() {} +nvMemory::~nvMemory() {} +bool nvMemory::saveConfig(TSettings* Settings) { return false; } +bool nvMemory::loadConfig(TSettings* Settings) { return false; } +bool nvMemory::deleteConfig() { return false; } +bool nvMemory::init() { return false; } + + +#endif //NVMEM_TYPE \ No newline at end of file diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index 1bcdf65..baba932 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -1,6 +1,8 @@ #ifndef _SDCARD_H_ #define _SDCARD_H_ +#include "..\devices\device.h" + #if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) #define BUILD_SDMMC_4 #include @@ -14,7 +16,6 @@ #include #include -#include "..\devices\device.h" #include "storage.h" #include "nvMemory.h" @@ -38,150 +39,4 @@ private: #endif }; - -#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) || defined (BUILD_SDSPI) - -SDCard::SDCard() -{ -#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) - iSD_ = &SD_MMC; -#elif defined (BUILD_SDSPI) -#error You chose to run the sd card in SPI mode. This is not implemented yet. -#endif -} - -SDCard::~SDCard() -{ - unmount(); -} - -void SDCard::SD2nvMemory(nvMemory* nvMem) -{ - TSettings Settings; - if (loadConfigFile(&Settings)) - { - nvMem->saveConfig(&Settings); - WiFi.begin(Settings.WifiSSID, Settings.WifiPW); - Serial.println("SDCard: Settings transfered to internal memory. Restarting now."); - ESP.restart(); - } -} - -bool SDCard::loadConfigFile(TSettings* Settings) -{ - // Load existing configuration file - // Read configuration from FS json - - if (initSDcard()) - { - if (iSD_->exists(JSON_CONFIG_FILE)) - { - // The file exists, reading and loading - File configFile = iSD_->open(JSON_CONFIG_FILE, "r"); - if (configFile) - { - StaticJsonDocument<512> json; - DeserializationError error = deserializeJson(json, configFile); - configFile.close(); - Serial.println("SDCard: Loading config file"); - serializeJsonPretty(json, Serial); - Serial.print('\n'); - unmount(); - if (!error) - { - strcpy(Settings->WifiSSID, json[JSON_KEY_SSID] | Settings->WifiSSID); - strcpy(Settings->WifiPW, json[JSON_KEY_PASW] | Settings->WifiPW); - strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); - strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); - if (json.containsKey(JSON_KEY_POOLPORT)) - Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); - if (json.containsKey(JSON_KEY_TIMEZONE)) - Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); - return true; - } - else - { - // Error loading JSON data - Serial.println("SDCard: Error parsing config file!"); - } - } - else - { - Serial.println("SDCard: Error opening config file!"); - } - } - else - { - Serial.println("SDCard: No config file available!"); - } - unmount(); - } - return false; -} - -void SDCard::unmount() -{ - iSD_->end(); - Serial.println("SDCard: Unmounted"); -} - -bool SDCard::initSDcard() -{ - if(iSD_->cardType() != CARD_NONE) - { - Serial.println("SDCard: Already mounted."); - return true; - } - Serial.println("SDCard: Mounting card."); - - bool cardInitialized = false; -#if defined (BUILD_SDMMC_4) - if (iSD_->cardType() == CARD_NONE) - { - iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); - Serial.println("SDCard: 4-Bit Mode."); - cardInitialized = iSD_->begin("/sd", false); - } -#elif defined (BUILD_SDMMC_1) -#warning SDMMC: 1-bit mode is not always working. If you experience issues, try other modes. - if (iSD_->cardType() == CARD_NONE) - { - iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); - Serial.println("SDCard: 1-Bit Mode."); - cardInitialized = iSD_->begin("/sd", true); - } -#elif defined (BUILD_SDSPI) -#error You chose to run the sd card in SPI mode. This is not implemented yet. -#else - Serial.println("SDCard: interface not available."); - return false; -#endif // dataPinsDefined - if (cardInitialized) - { - if(iSD_->cardType() != CARD_NONE) - { - Serial.println("SDCard: Mounted."); - return true; - } - else - { - Serial.println("SDCard: Mounting failed."); - iSD_->end(); - } - } - return false; -} - -#else - -SDCard::SDCard() {} -SDCard::~SDCard() {} -void SDCard::SD2nvMemory(nvMemory* nvMem) {}; -bool SDCard::loadConfigFile(TSettings* Settings) { return false; } -bool SDCard::initSDcard() { return false; } -void unmount() {} - -#endif //BUILD_SDMMC - - #endif // _SDCARD_H_ diff --git a/src/drivers/storage/nvMemory.h b/src/drivers/storage/nvMemory.h index e2ea2c4..163431c 100644 --- a/src/drivers/storage/nvMemory.h +++ b/src/drivers/storage/nvMemory.h @@ -22,150 +22,9 @@ private: }; #ifdef NVMEM_SPIFFS - #define ESP_DRD_USE_SPIFFS true - -#include -#include -#include - -nvMemory::nvMemory() -{ - Initialized_ = false; -} - -nvMemory::~nvMemory() -{ - if (Initialized_) - SPIFFS.end(); -}; - -bool nvMemory::saveConfig(TSettings* Settings) -{ - if (init()) - { - // Save Config in JSON format - Serial.println(F("SPIFS: Saving configuration.")); - - // Create a JSON document - StaticJsonDocument<512> json; - json[JSON_KEY_POOLURL] = Settings->PoolAddress; - json[JSON_KEY_POOLPORT] = Settings->PoolPort; - json[JSON_KEY_WALLETID] = Settings->BtcWallet; - json[JSON_KEY_TIMEZONE] = Settings->Timezone; - json[JSON_KEY_TIMEZONE] = Settings->saveStats; - - // Open config file - File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); - if (!configFile) - { - // Error, file did not open - Serial.println("SPIFS: Failed to open config file for writing"); - return false; - } - - // Serialize JSON data to write to file - serializeJsonPretty(json, Serial); - Serial.print('\n'); - if (serializeJson(json, configFile) == 0) - { - // Error writing file - Serial.println(F("SPIFS: Failed to write to file")); - return false; - } - // Close file - configFile.close(); - return true; - }; - return false; -} - -bool nvMemory::loadConfig(TSettings* Settings) -{ - // Uncomment if we need to format filesystem - // SPIFFS.format(); - - // Load existing configuration file - // Read configuration from FS json - - if (init()) - { - if (SPIFFS.exists(JSON_CONFIG_FILE)) - { - // The file exists, reading and loading - File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); - if (configFile) - { - Serial.println("SPIFS: Loading config file"); - StaticJsonDocument<512> json; - DeserializationError error = deserializeJson(json, configFile); - configFile.close(); - serializeJsonPretty(json, Serial); - Serial.print('\n'); - if (!error) - { - strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); - strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); - if (json.containsKey(JSON_KEY_POOLPORT)) - Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); - if (json.containsKey(JSON_KEY_TIMEZONE)) - Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); - if (json.containsKey(JSON_KEY_STATS2NV)) - Settings->saveStats = json[JSON_KEY_STATS2NV].as(); - return true; - } - else - { - // Error loading JSON data - Serial.println("SPIFS: Error parsing config file!"); - } - } - else - { - Serial.println("SPIFS: Error opening config file!"); - } - } - else - { - Serial.println("SPIFS: No config file available!"); - } - } - return false; -} - -bool nvMemory::deleteConfig() -{ - Serial.println("SPIFS: Erasing config file.."); - return SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero -} - -bool nvMemory::init() -{ - if (!Initialized_) - { - Serial.println("SPIFS: Mounting File System..."); - // May need to make it begin(true) first time you are using SPIFFS - Initialized_ = SPIFFS.begin(false) || SPIFFS.begin(true); - Initialized_ ? Serial.println("SPIFS: Mounted") : Serial.println("SPIFS: Mounting failed."); - } - else - { - Serial.println("SPIFS: Already Mounted"); - } - return Initialized_; -}; - #else #error We need some kind of permanent storage implementation! - -nvMemory::nvMemory() {} -nvMemory::~nvMemory() {} -bool nvMemory::saveConfig(TSettings* Settings) { return false; } -bool nvMemory::loadConfig(TSettings* Settings) { return false; } -bool nvMemory::deleteConfig() { return false; } -bool nvMemory::init() { return false; } - - #endif //NVMEM_TYPE #endif // _NVMEMORY_H_ From e1d9cbb6c2b6bccf616459dfe04257ecdb34b49e Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Sun, 17 Sep 2023 14:55:28 +0200 Subject: [PATCH 39/68] fix path --- SDCard.cpp => src/drivers/storage/SDCard.cpp | 2 +- nvMemory.cpp => src/drivers/storage/nvMemory.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename SDCard.cpp => src/drivers/storage/SDCard.cpp (98%) rename nvMemory.cpp => src/drivers/storage/nvMemory.cpp (98%) diff --git a/SDCard.cpp b/src/drivers/storage/SDCard.cpp similarity index 98% rename from SDCard.cpp rename to src/drivers/storage/SDCard.cpp index 21faf58..ceee954 100644 --- a/SDCard.cpp +++ b/src/drivers/storage/SDCard.cpp @@ -1,4 +1,4 @@ -#include"src/drivers/storage/SDCard.h" +#include"SDCard.h" #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) || defined (BUILD_SDSPI) diff --git a/nvMemory.cpp b/src/drivers/storage/nvMemory.cpp similarity index 98% rename from nvMemory.cpp rename to src/drivers/storage/nvMemory.cpp index d4f6901..c8dac20 100644 --- a/nvMemory.cpp +++ b/src/drivers/storage/nvMemory.cpp @@ -1,4 +1,4 @@ -#include "src/drivers/storage/nvMemory.h" +#include "nvMemory.h" #ifdef NVMEM_SPIFFS From 6e891f1a5f509c7817567633545b627c4dbc837e Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Sun, 17 Sep 2023 16:44:01 +0200 Subject: [PATCH 40/68] update files --- README.md | 7 +++---- platformio.ini | 2 +- src/drivers/storage/SDCard.cpp | 16 ++++++++++++++-- src/drivers/storage/SDCard.h | 8 ++------ src/drivers/storage/nvMemory.cpp | 5 ++++- src/drivers/storage/storage.h | 4 +++- src/wManager.cpp | 8 ++++---- 7 files changed, 31 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 49158f9..ca0102b 100644 --- a/README.md +++ b/README.md @@ -46,8 +46,6 @@ Every time an stratum job notification is received miner update its current work - ESP32-2432S028R 2,8" ([Aliexpress link](https://s.click.aliexpress.com/e/_DdXkvLv)) - ESP32-cam [Board Info](https://lastminuteengineers.com/getting-started-with-esp32-cam/) -* affiliate link - ### Flash firmware #### microMiners Flashtool [Recommended] Easyiest way to flash firmware. Build your own miner using the folowing firwmare flash tool: @@ -89,14 +87,15 @@ After programming, you will only need to setup your Wifi and BTC address. #### SD card (if available) 1. Format a SD card using Fat32. -1. Create a file named "config.json" in your card's root containing the the following structure. Adjust the settings to your needs: +1. Create a file named "config.json" in your card's root, containing the the following structure. Adjust the settings to your needs: { "SSID": "myWifiSSID", "PW": "myWifiPassword", "PoolUrl": "public-pool.io", "PoolPort": 21496, "BtcWallet": "walletID", - "Timezone": 2 + "Timezone": 2, + "saveStats": false } 1. Insert the SD card. 1. Hold down the "reset configurations" button as described below to reset the configurations and/or boot without settings in your nvmemory. diff --git a/platformio.ini b/platformio.ini index 8ca1833..a66d3a5 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,7 +10,7 @@ [platformio] globallib_dir = lib -default_envs = esp32cam, ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R +default_envs = esp32cam, ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R [env:NerminerV2] platform = espressif32 diff --git a/src/drivers/storage/SDCard.cpp b/src/drivers/storage/SDCard.cpp index ceee954..fe06bde 100644 --- a/src/drivers/storage/SDCard.cpp +++ b/src/drivers/storage/SDCard.cpp @@ -1,6 +1,16 @@ -#include"SDCard.h" -#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) || defined (BUILD_SDSPI) +#include +#include +#include + +#include "storage.h" +#include "nvMemory.h" +#include "..\devices\device.h" +#include "SDCard.h" + +#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) + +#include SDCard::SDCard() { @@ -58,6 +68,8 @@ bool SDCard::loadConfigFile(TSettings* Settings) Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); if (json.containsKey(JSON_KEY_TIMEZONE)) Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); + if (json.containsKey(JSON_KEY_STATS2NV)) + Settings->saveStats = json[JSON_KEY_STATS2NV].as(); return true; } else diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index baba932..b2e91f5 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -1,6 +1,8 @@ #ifndef _SDCARD_H_ #define _SDCARD_H_ +#include "storage.h" +#include "nvMemory.h" #include "..\devices\device.h" #if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) @@ -13,12 +15,6 @@ #warning SD card support disabled! #endif -#include -#include - -#include "storage.h" -#include "nvMemory.h" - // Handles the transfer of settings from sd card to nv memory (wifi credentials are handled by wifimanager) class SDCard { diff --git a/src/drivers/storage/nvMemory.cpp b/src/drivers/storage/nvMemory.cpp index c8dac20..a686589 100644 --- a/src/drivers/storage/nvMemory.cpp +++ b/src/drivers/storage/nvMemory.cpp @@ -6,6 +6,9 @@ #include #include +#include "..\devices\device.h" +#include "storage.h" + nvMemory::nvMemory() { Initialized_ = false; @@ -30,7 +33,7 @@ bool nvMemory::saveConfig(TSettings* Settings) json[JSON_KEY_POOLPORT] = Settings->PoolPort; json[JSON_KEY_WALLETID] = Settings->BtcWallet; json[JSON_KEY_TIMEZONE] = Settings->Timezone; - json[JSON_KEY_TIMEZONE] = Settings->saveStats; + json[JSON_KEY_STATS2NV] = Settings->saveStats; // Open config file File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); diff --git a/src/drivers/storage/storage.h b/src/drivers/storage/storage.h index 348b1b7..65a2b29 100644 --- a/src/drivers/storage/storage.h +++ b/src/drivers/storage/storage.h @@ -1,6 +1,8 @@ #ifndef _STORAGE_H_ #define _STORAGE_H_ +#include + #define DEFAULT_SSID "NMAP" #define DEFAULT_WIFIPW "1234567890" #define DEFAULT_POOLURL "public-pool.io" @@ -17,7 +19,7 @@ #define JSON_KEY_WALLETID "BtcWallet" #define JSON_KEY_POOLPORT "PoolPort" #define JSON_KEY_TIMEZONE "Timezone" -#define JSON_KEY_STATS2NV "saveStatsToNVS" +#define JSON_KEY_STATS2NV "saveStats" struct TSettings { diff --git a/src/wManager.cpp b/src/wManager.cpp index 4906ae9..93afff4 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -164,15 +164,15 @@ void init_WifiManager() wm.setConfigPortalBlocking(true); //Hacemos que el portal SI bloquee el firmware drawSetupScreen(); - if (!wm.startConfigPortal(DEFAULT_SSID, DEFAULT_WIFIPW)) + if (wm.startConfigPortal(DEFAULT_SSID, DEFAULT_WIFIPW)) { - Serial.println("failed to connect and hit timeout"); //Could be break forced after edditing, so save new config - + Serial.println("failed to connect and hit timeout"); strncpy(Settings.PoolAddress, pool_text_box.getValue(), sizeof(Settings.PoolAddress)); Settings.PoolPort = atoi(port_text_box_num.getValue()); strncpy(Settings.BtcWallet, addr_text_box.getValue(), sizeof(Settings.BtcWallet)); Settings.Timezone = atoi(time_text_box_num.getValue()); + Serial.println(save_stats_to_nvs.getValue()); Settings.saveStats = (strncmp(save_stats_to_nvs.getValue(), "T", 1) == 0); nvMem.saveConfig(&Settings); @@ -180,7 +180,7 @@ void init_WifiManager() //reset and try again, or maybe put it to deep sleep ESP.restart(); delay(5000); - } + }; } else { From 282db32cc93b327afacb7d7ba9f156f854f9fa73 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Sun, 17 Sep 2023 16:55:10 +0200 Subject: [PATCH 41/68] Consistence with readme --- src/drivers/storage/storage.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/drivers/storage/storage.h b/src/drivers/storage/storage.h index 65a2b29..8aa0668 100644 --- a/src/drivers/storage/storage.h +++ b/src/drivers/storage/storage.h @@ -3,8 +3,8 @@ #include -#define DEFAULT_SSID "NMAP" -#define DEFAULT_WIFIPW "1234567890" +#define DEFAULT_SSID "NerdMinerAP" +#define DEFAULT_WIFIPW "MineYourCoins" #define DEFAULT_POOLURL "public-pool.io" #define DEFAULT_WALLETID "yourBtcAddress" #define DEFAULT_POOLPORT 21496 From 40cb44509b4330a25705e2a59856be2be0d6a64d Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Sun, 17 Sep 2023 16:56:45 +0200 Subject: [PATCH 42/68] update readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ca0102b..dd37a9c 100644 --- a/README.md +++ b/README.md @@ -94,8 +94,8 @@ After programming, you will only need to setup your Wifi and BTC address. "PoolUrl": "public-pool.io", "PoolPort": 21496, "BtcWallet": "walletID", - "Timezone": 2, - "saveStats": false + "Timezone": 2, + "saveStats": false } 1. Insert the SD card. 1. Hold down the "reset configurations" button as described below to reset the configurations and/or boot without settings in your nvmemory. From 971613ebcee9669aae3abb6d70bef32fb51cbdc1 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Mon, 18 Sep 2023 02:32:34 +0200 Subject: [PATCH 43/68] fix --- src/mining.cpp | 4 +--- src/monitor.cpp | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/mining.cpp b/src/mining.cpp index 63c1004..d6f5694 100644 --- a/src/mining.cpp +++ b/src/mining.cpp @@ -29,13 +29,11 @@ uint32_t valids; // increased if blockhash <= target double best_diff = 0.0; // Variables to hold data from custom textboxes +//Track mining stats in non volatile memory extern TSettings Settings; IPAddress serverIP(1, 1, 1, 1); //Temporally save poolIPaddres -//Track mining stats in non volatile memory -extern TSettings Settings; - //Global work data static WiFiClient client; static miner_data mMiner; //Global miner data (Create a miner class TODO) diff --git a/src/monitor.cpp b/src/monitor.cpp index 4b33a00..04c6eb8 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -23,7 +23,8 @@ extern double best_diff; // track best diff extern monitor_data mMonitor; -extern TSettings Settings; //Gotten from saved config +//from saved config +extern TSettings Settings; WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 3600, 60000); From 2057ba80823ced3737fdb1ba52db53002c64a741 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Mon, 18 Sep 2023 13:11:04 +0200 Subject: [PATCH 44/68] bugfix --- src/NerdMinerV2.ino.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NerdMinerV2.ino.cpp b/src/NerdMinerV2.ino.cpp index 8144dcf..9904d15 100644 --- a/src/NerdMinerV2.ino.cpp +++ b/src/NerdMinerV2.ino.cpp @@ -58,7 +58,7 @@ void setup() button1.attachClick(switchToNextScreen); button1.attachDoubleClick(alternateScreenRotation); button1.attachLongPressStart(reset_configuration); - if(button1.getNumberClicks() == 3) alternateScreenState(); + button1.attachMultiClick(alternateScreenState); #endif #if defined(PIN_BUTTON_1) && defined(PIN_BUTTON_2) //Button 1 of two button device From 43cbaf75cb992260a620a6d67c6a5885eaf85c5c Mon Sep 17 00:00:00 2001 From: George Alexandre Silva Date: Mon, 18 Sep 2023 22:43:54 -0300 Subject: [PATCH 45/68] Touch, Sprites fix to small heap, Suffix adj. --- platformio.ini | 11 +- src/drivers/displays/esp23_2432s028r.cpp | 337 +++++++++++++++-------- src/monitor.cpp | 21 +- src/monitor.h | 2 +- 4 files changed, 241 insertions(+), 130 deletions(-) diff --git a/platformio.ini b/platformio.ini index aad639e..b039650 100644 --- a/platformio.ini +++ b/platformio.ini @@ -170,8 +170,8 @@ upload_speed = 921600 ;build_type = debug board_build.partitions = huge_app.csv build_flags = - -D ESP32_2432S028R=1 - -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG + ;-DDEBUG_MEMORY=1 + -D ESP32_2432S028R=1 -DUSER_SETUP_LOADED=1 -DILI9341_2_DRIVER=1 -DTFT_WIDTH=240 @@ -183,7 +183,11 @@ build_flags = -DTFT_DC=2 -DTFT_RST=12 -DTFT_BL=21 - -DTOUCH_CS=33 + -DETOUCH_CS=33 + -DTOUCH_CLK=25 + -DTOUCH_MISO=39 + -DTOUCH_MOSI=32 + -DTOUCH_IRQ=36 -DLOAD_GLCD=1 -DLOAD_FONT2=1 -DLOAD_GFXFF=1 @@ -198,6 +202,7 @@ lib_deps = mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient bodmer/TFT_eSPI @ ^2.5.31 + https://github.com/achillhasler/TFT_eTouch [env:NerdminerV2-T-Display_V1] platform = espressif32 diff --git a/src/drivers/displays/esp23_2432s028r.cpp b/src/drivers/displays/esp23_2432s028r.cpp index 1221b72..e87a279 100644 --- a/src/drivers/displays/esp23_2432s028r.cpp +++ b/src/drivers/displays/esp23_2432s028r.cpp @@ -3,6 +3,7 @@ #ifdef ESP32_2432S028R #include +#include #include "media/images_320_170.h" #include "media/images_bottom_320_70.h" #include "media/myFonts.h" @@ -10,39 +11,52 @@ #include "version.h" #include "monitor.h" #include "OpenFontRender.h" +#include -#define WIDTH 340 -#define HEIGHT 240 +#define WIDTH 130 //320 +#define HEIGHT 170 OpenFontRender render; -TFT_eSPI tft = TFT_eSPI(); // Invoke library, pins defined in User_Setup.h +TFT_eSPI tft = TFT_eSPI(); // Invoke library, pins defined in platformio.ini TFT_eSprite background = TFT_eSprite(&tft); // Invoke library sprite +SPIClass hSPI(HSPI); +TFT_eTouch touch(tft, ETOUCH_CS, 0xFF, hSPI); extern monitor_data mMonitor; extern pool_data pData; +extern DisplayDriver *currentDisplayDriver; + +bool hasChangedScreen = true; void esp32_2432S028R_Init(void) -{ +{ tft.init(); tft.setRotation(1); - tft.setSwapBytes(true); // Swap the colour byte order when rendering + tft.setSwapBytes(true); // Swap the colour byte order when rendering + hSPI.begin(TOUCH_CLK, TOUCH_MISO, TOUCH_MOSI, ETOUCH_CS); + touch.init(); + + TFT_eTouchBase::Calibation calibation = { 233, 3785, 3731, 120, 2 }; + touch.setCalibration(calibation); + //background.createSprite(WIDTH, HEIGHT); // Background Sprite background.setSwapBytes(true); render.setDrawer(background); // Link drawing object to background instance (so font will be rendered on background) render.setLineSpaceRatio(0.9); // Espaciado entre texto // Load the font and check it can be read OK - // if (render.loadFont(NotoSans_Bold, sizeof(NotoSans_Bold))) { + // if (render.loadFont(NotoSans_Bold, sizeof(NotoSans_Bold))) if (render.loadFont(DigitalNumbers, sizeof(DigitalNumbers))) { Serial.println("Initialise error"); return; } + pinMode(LED_PIN, OUTPUT); pData.bestDifficulty = "0"; pData.workersHash = "0"; pData.workersCount = 0; - + //Serial.println("=========== Fim Display ==============") ; } void esp32_2432S028R_AlternateScreenState(void) @@ -55,15 +69,21 @@ void esp32_2432S028R_AlternateScreenState(void) void esp32_2432S028R_AlternateRotation(void) { tft.getRotation() == 1 ? tft.setRotation(3) : tft.setRotation(1); + hasChangedScreen = true; } +bool bottomScreenBlue = true; + void printPoolData(){ - pData = updatePoolData(); + pData = getPoolData(); background.createSprite(320,70); //Background Sprite background.setSwapBytes(true); - background.pushImage(0, 0, 320, 70, bottonPoolScreen); - + if (bottomScreenBlue) { + background.pushImage(0, 0, 320, 70, bottonPoolScreen); + } else { + background.pushImage(0, 0, 320, 70, bottonPoolScreen_g); + } //background.setTextDatum(MC_DATUM); render.setDrawer(background); // Link drawing object to background instance (so font will be rendered on background) render.setLineSpaceRatio(1); @@ -80,118 +100,150 @@ void printPoolData(){ background.deleteSprite(); } -void esp32_2432S028R_MinerScreen(unsigned long mElapsed) -{ - mining_data data = getMiningData(mElapsed); - - // Create background sprite to print data at once - background.createSprite(initWidth,initHeight); //Background Sprite +void printheap(){ + //Serial.print("============ Free Heap:"); + //Serial.println(ESP.getFreeHeap()); +} + +void createBackgroundSprite(int16_t wdt, int16_t hgt){ // Set the background and link the render, used multiple times to fit in heap + background.createSprite(wdt, hgt) ; //Background Sprite + printheap(); background.setColorDepth(16); background.setSwapBytes(true); render.setDrawer(background); // Link drawing object to background instance (so font will be rendered on background) render.setLineSpaceRatio(0.9); - +} + +void esp32_2432S028R_MinerScreen(unsigned long mElapsed) +{ + if (hasChangedScreen) tft.pushImage(0, 0, initWidth, initHeight, MinerScreen); + hasChangedScreen = false; + + mining_data data = getMiningData(mElapsed); + + //Serial.println("Proximo sprite..."); + int wdtOffset = 190; + // Recreate sprite to the right side of the screen + createBackgroundSprite(WIDTH-5, HEIGHT-7); //Print background screen - background.pushImage(0, 0, MinerWidth, MinerHeight, MinerScreen); + background.pushImage(-190, 0, MinerWidth, MinerHeight, MinerScreen); + + // Total hashes + render.setFontSize(18); + render.rdrawString(data.totalMHashes.c_str(), 268-wdtOffset, 138, TFT_BLACK); + // Block templates + render.setFontSize(18); + render.drawString(data.templates.c_str(), 189-wdtOffset, 20, 0xDEDB); + // Best diff + render.drawString(data.bestDiff.c_str(), 189-wdtOffset, 48, 0xDEDB); + // 32Bit shares + render.setFontSize(18); + render.drawString(data.completedShares.c_str(), 189-wdtOffset, 76, 0xDEDB); + // Hores + render.setFontSize(14); + render.rdrawString(data.timeMining.c_str(), 315-wdtOffset, 104, 0xDEDB); + + // Valid Blocks + render.setFontSize(24); + render.drawString(data.valids.c_str(), 285-wdtOffset, 56, 0xDEDB); + + // Print Temp + render.setFontSize(10); + render.rdrawString(data.temp.c_str(), 239-wdtOffset, 1, TFT_BLACK); + + render.setFontSize(4); + render.rdrawString(String(0).c_str(), 244-wdtOffset, 3, TFT_BLACK); + + // Print Hour + render.setFontSize(10); + render.rdrawString(data.currentTime.c_str(), 286-wdtOffset, 1, TFT_BLACK); + + // Push prepared background to screen + background.pushSprite(190, 0); + + // Delete sprite to free the memory heap + background.deleteSprite(); + printheap(); + + //Serial.println("=========== Mining Display ==============") ; + // Create background sprite to print data at once + createBackgroundSprite(WIDTH-7, HEIGHT-100); // initHeight); //Background Sprite + //Print background screen + background.pushImage(0, -90, MinerWidth, MinerHeight, MinerScreen); Serial.printf(">>> Completed %s share(s), %s Khashes, avg. hashrate %s KH/s\n", data.completedShares.c_str(), data.totalKHashes.c_str(), data.currentHashRate.c_str()); - // Hashrate + // Hashrate render.setFontSize(35); render.setCursor(19, 118); render.setFontColor(TFT_BLACK); - - render.rdrawString(data.currentHashRate.c_str(), 118, 114, TFT_BLACK); - // Total hashes - render.setFontSize(18); - render.rdrawString(data.totalMHashes.c_str(), 268, 138, TFT_BLACK); - // Block templates - render.setFontSize(18); - render.drawString(data.templates.c_str(), 186, 20, 0xDEDB); - // Best diff - render.drawString(data.bestDiff.c_str(), 186, 48, 0xDEDB); - // 32Bit shares - render.setFontSize(18); - render.drawString(data.completedShares.c_str(), 186, 76, 0xDEDB); - // Hores - render.setFontSize(14); - render.rdrawString(data.timeMining.c_str(), 315, 104, 0xDEDB); - - // Valid Blocks - render.setFontSize(24); - render.drawString(data.valids.c_str(), 285, 56, 0xDEDB); - - // Print Temp - render.setFontSize(10); - render.rdrawString(data.temp.c_str(), 239, 1, TFT_BLACK); - - render.setFontSize(4); - render.rdrawString(String(0).c_str(), 244, 3, TFT_BLACK); - - // Print Hour - render.setFontSize(10); - render.rdrawString(data.currentTime.c_str(), 286, 1, TFT_BLACK); - + render.rdrawString(data.currentHashRate.c_str(), 118, 114-90, TFT_BLACK); + // Push prepared background to screen - background.pushSprite(0, 0); - + background.pushSprite(0, 90); + // Delete sprite to free the memory heap - background.deleteSprite(); - - #ifdef ESP32_2432S028R - printPoolData(); - #endif + background.deleteSprite(); + //delay(50); + + printPoolData(); #ifdef DEBUG_MEMORY - // Print heap - printheap(); + // Print heap + printheap(); #endif } void esp32_2432S028R_ClockScreen(unsigned long mElapsed) { + + if (hasChangedScreen) tft.pushImage(0, 0, minerClockWidth, minerClockHeight, minerClockScreen); + hasChangedScreen = false; + clock_data data = getClockData(mElapsed); - // Create background sprite to print data at once - background.createSprite(initWidth,initHeight); //Background Sprite - background.setColorDepth(16); - background.setSwapBytes(true); - render.setDrawer(background); // Link drawing object to background instance (so font will be rendered on background) - render.setLineSpaceRatio(0.9); - - // Print background screen - background.pushImage(0, 0, minerClockWidth, minerClockHeight, minerClockScreen); - Serial.printf(">>> Completed %s share(s), %s Khashes, avg. hashrate %s KH/s\n", data.completedShares.c_str(), data.totalKHashes.c_str(), data.currentHashRate.c_str()); + // Create background sprite to print data at once + createBackgroundSprite(270,36); + + // Print background screen + background.pushImage(0, -130, minerClockWidth, minerClockHeight, minerClockScreen); // Hashrate render.setFontSize(25); - render.setCursor(19, 122); render.setFontColor(TFT_BLACK); - render.rdrawString(data.currentHashRate.c_str(), 94, 129, TFT_BLACK); + render.rdrawString(data.currentHashRate.c_str(), 95, 0, TFT_BLACK); + // Print BlockHeight + render.setFontSize(18); + render.rdrawString(data.blockHeight.c_str(), 254, 9, TFT_BLACK); + + // Push prepared background to screen + background.pushSprite(0, 130); + // Delete sprite to free the memory heap + background.deleteSprite(); + + createBackgroundSprite(169,105); + // Print background screen + background.pushImage(-130, -3, minerClockWidth, minerClockHeight, minerClockScreen); + // Print BTC Price background.setFreeFont(FSSB9); background.setTextSize(1); background.setTextDatum(TL_DATUM); background.setTextColor(TFT_BLACK); - background.drawString(data.btcPrice.c_str(), 202, 3, GFXFF); - - // Print BlockHeight - render.setFontSize(18); - render.rdrawString(data.blockHeight.c_str(), 254, 140, TFT_BLACK); - + background.drawString(data.btcPrice.c_str(), 202-130, 0, GFXFF); + // Print Hour background.setFreeFont(FF23); background.setTextSize(2); background.setTextColor(0xDEDB, TFT_BLACK); - - background.drawString(data.currentTime.c_str(), 130, 50, GFXFF); - + background.drawString(data.currentTime.c_str(), 0, 50, GFXFF); + // Push prepared background to screen - background.pushSprite(0, 0); + background.pushSprite(130, 3); // Delete sprite to free the memory heap background.deleteSprite(); @@ -208,17 +260,15 @@ void esp32_2432S028R_ClockScreen(unsigned long mElapsed) void esp32_2432S028R_GlobalHashScreen(unsigned long mElapsed) { + if (hasChangedScreen) tft.pushImage(0, 0, globalHashWidth, globalHashHeight, globalHashScreen); + hasChangedScreen = false; coin_data data = getCoinData(mElapsed); // Create background sprite to print data at once - background.createSprite(initWidth,initHeight); //Background Sprite - background.setColorDepth(16); - background.setSwapBytes(true); - render.setDrawer(background); // Link drawing object to background instance (so font will be rendered on background) - render.setLineSpaceRatio(0.9); - + createBackgroundSprite(169,105); // Print background screen - background.pushImage(0, 0, globalHashWidth, globalHashHeight, globalHashScreen); + background.pushImage(-160, -3, minerClockWidth, minerClockHeight, globalHashScreen); + //background.fillScreen(TFT_BLUE); Serial.printf(">>> Completed %s share(s), %s Khashes, avg. hashrate %s KH/s\n", data.completedShares.c_str(), data.totalKHashes.c_str(), data.currentHashRate.c_str()); @@ -228,52 +278,68 @@ void esp32_2432S028R_GlobalHashScreen(unsigned long mElapsed) background.setTextSize(1); background.setTextDatum(TL_DATUM); background.setTextColor(TFT_BLACK); - background.drawString(data.btcPrice.c_str(), 198, 3, GFXFF); - + background.drawString(data.btcPrice.c_str(), 198-160, 0, GFXFF); // Print Hour background.setFreeFont(FSSB9); background.setTextSize(1); background.setTextDatum(TL_DATUM); background.setTextColor(TFT_BLACK); - background.drawString(data.currentTime.c_str(), 268, 3, GFXFF); + background.drawString(data.currentTime.c_str(), 268-160, 0, GFXFF); // Print Last Pool Block background.setFreeFont(FSS9); background.setTextDatum(TR_DATUM); background.setTextColor(0x9C92); - background.drawString(data.halfHourFee.c_str(), 302, 52, GFXFF); + background.drawString(data.halfHourFee.c_str(), 302-160, 49, GFXFF); // Print Difficulty background.setFreeFont(FSS9); background.setTextDatum(TR_DATUM); background.setTextColor(0x9C92); - background.drawString(data.netwrokDifficulty.c_str(), 302, 88, GFXFF); - - // Print Global Hashrate - render.setFontSize(17); - render.rdrawString(data.globalHashRate.c_str(), 274, 145, TFT_BLACK); - - // Print BlockHeight - render.setFontSize(28); - render.rdrawString(data.blockHeight.c_str(), 140, 104, 0xDEDB); - - // Draw percentage rectangle - int x2 = 2 + (138 * data.progressPercent / 100); - background.fillRect(2, 149, x2, 168, 0xDEDB); - - // Print Remaining BLocks - background.setTextFont(FONT2); - background.setTextSize(1); - background.setTextDatum(MC_DATUM); - background.setTextColor(TFT_BLACK); - background.drawString(data.remainingBlocks.c_str(), 72, 159, FONT2); - + background.drawString(data.netwrokDifficulty.c_str(), 302-160, 85, GFXFF); // Push prepared background to screen - background.pushSprite(0, 0); - + background.pushSprite(160, 3); // Delete sprite to free the memory heap background.deleteSprite(); + // Create background sprite to print data at once + createBackgroundSprite(280,30); + // Print background screen + background.pushImage(0, -139, minerClockWidth, minerClockHeight, globalHashScreen); + //background.fillSprite(TFT_CYAN); + // Print Global Hashrate + render.setFontSize(17); + render.rdrawString(data.globalHashRate.c_str(), 274, 145-139, TFT_BLACK); + + // Draw percentage rectangle + int x2 = 2 + (138 * data.progressPercent / 100); + background.fillRect(2, 149-139, x2, 168, 0xDEDB); + + // Print Remaining BLocks + background.setTextFont(FONT2); + background.setTextSize(1); + background.setTextDatum(MC_DATUM); + background.setTextColor(TFT_BLACK); + background.drawString(data.remainingBlocks.c_str(), 72, 159-139, FONT2); + + // Push prepared background to screen + background.pushSprite(0, 139); + // Delete sprite to free the memory heap + background.deleteSprite(); + + // Create background sprite to print data at once + createBackgroundSprite(140,40); + // Print background screen + background.pushImage(-5, -100, minerClockWidth, minerClockHeight, globalHashScreen); + //background.fillSprite(TFT_CYAN); + // Print BlockHeight + render.setFontSize(28); + render.rdrawString(data.blockHeight.c_str(), 140-5, 104-100, 0xDEDB); + + // Push prepared background to screen + background.pushSprite(5, 100); + // Delete sprite to free the memory heap + background.deleteSprite(); #ifdef ESP32_2432S028R printPoolData(); #endif @@ -292,6 +358,7 @@ void esp32_2432S028R_LoadingScreen(void) tft.drawString(CURRENT_VERSION, 24, 147, FONT2); delay(2000); tft.fillScreen(TFT_BLACK); + tft.pushImage(0, 0, initWidth, initHeight, MinerScreen); } void esp32_2432S028R_SetupScreen(void) @@ -305,10 +372,44 @@ void esp32_2432S028R_AnimateCurrentScreen(unsigned long frame) // Variables para controlar el parpadeo con millis() unsigned long previousMillis = 0; +unsigned long previousTouchMillis = 0; +char currentScreen = 0; void esp32_2432S028R_DoLedStuff(unsigned long frame) { - unsigned long currentMillis = millis(); + unsigned long currentMillis = millis(); + + // / Check the touch coordinates 110x185 210x240 + if (currentMillis - previousTouchMillis >= 500) + { + int16_t t_x , t_y; // To store the touch coordinates + bool pressed = touch.getXY(t_x, t_y); + if (pressed) { + if (((t_x > 109)&&(t_x < 211)) && ((t_y > 185)&&(t_y < 241))) bottomScreenBlue ^= true; + else + if (t_x > 160) { + // next screen + Serial.print(t_x); + Serial.print(":x PrĆ³xima Tela y:"); + Serial.println(t_y); + currentDisplayDriver->current_cyclic_screen = (currentDisplayDriver->current_cyclic_screen + 1) % currentDisplayDriver->num_cyclic_screens; + } else if (t_x < 160) + { + // Previus screen + Serial.print(t_x); + Serial.print(":x Tela anterior y:"); + Serial.println(t_y); + /* Serial.println(currentDisplayDriver->current_cyclic_screen); */ + currentDisplayDriver->current_cyclic_screen = currentDisplayDriver->current_cyclic_screen - 1; + if (currentDisplayDriver->current_cyclic_screen<0) currentDisplayDriver->current_cyclic_screen = currentDisplayDriver->num_cyclic_screens - 1; + Serial.println(currentDisplayDriver->current_cyclic_screen); + } + } + previousTouchMillis = currentMillis; + } + + if (currentScreen != currentDisplayDriver->current_cyclic_screen) hasChangedScreen ^= true; + currentScreen = currentDisplayDriver->current_cyclic_screen; switch (mMonitor.NerdStatus) { @@ -332,6 +433,8 @@ void esp32_2432S028R_DoLedStuff(unsigned long frame) } break; } + + } CyclicScreenFunction esp32_2432S028RCyclicScreens[] = {esp32_2432S028R_MinerScreen, esp32_2432S028R_ClockScreen, esp32_2432S028R_GlobalHashScreen}; diff --git a/src/monitor.cpp b/src/monitor.cpp index 34e6976..27753cd 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -287,7 +287,7 @@ coin_data getCoinData(unsigned long mElapsed) return data; } -pool_data updatePoolData(void){ +pool_data getPoolData(void){ //pool_data pData; if((mPoolUpdate == 0) || (millis() - mPoolUpdate > UPDATE_POOL_min * 60 * 1000)){ if (WiFi.status() != WL_CONNECTED) return pData; @@ -296,10 +296,12 @@ pool_data updatePoolData(void){ HTTPClient http; http.setReuse(true); try { - http.begin(String(getPublicPool)+btcString); + String btcWallet = btcString; + Serial.println(btcWallet); + if (btcWallet.indexOf(".")>0) btcWallet = btcWallet.substring(0,btcWallet.indexOf(".")); + http.begin(String(getPublicPool)+btcWallet); int httpCode = http.GET(); - - if (httpCode > 0) { + if (httpCode == HTTP_CODE_OK) { String payload = http.getString(); // Serial.println(payload); DynamicJsonDocument doc(1024); @@ -311,12 +313,13 @@ pool_data updatePoolData(void){ for (const JsonObject& worker : workers) { totalhashs += worker["hashRate"].as(); } - pData.workersHash = String(totalhashs/1000); - - String temp = ""; + pData.workersHash = String(totalhashs/1000); + double temp; if (doc.containsKey("bestDifficulty")) { - temp = doc["bestDifficulty"].as(); - pData.bestDifficulty = String(temp); + temp = doc["bestDifficulty"].as(); + char best_diff_string[16] = {0}; + suffix_string(temp, best_diff_string, 16, 0); + pData.bestDifficulty = String(best_diff_string); } doc.clear(); mPoolUpdate = millis(); diff --git a/src/monitor.h b/src/monitor.h index c8bd6e1..7331b3d 100644 --- a/src/monitor.h +++ b/src/monitor.h @@ -111,7 +111,7 @@ void setup_monitor(void); mining_data getMiningData(unsigned long mElapsed); clock_data getClockData(unsigned long mElapsed); coin_data getCoinData(unsigned long mElapsed); -pool_data updatePoolData(void); +pool_data getPoolData(void); clock_data_t getClockData_t(unsigned long mElapsed); From 56fc227c7c8b4afe47abff60b570de466c59c727 Mon Sep 17 00:00:00 2001 From: George Alexandre Silva Date: Tue, 19 Sep 2023 20:38:15 -0300 Subject: [PATCH 46/68] Revert "Merge branch 'dev' of https://github.com/BitMaker-hub/NerdMiner_v2 into dev" This reverts commit 16ffd47a671ebe0267bcf8960567832bfeda5b02, reversing changes made to 43cbaf75cb992260a620a6d67c6a5885eaf85c5c. --- .gitignore | 3 - README.md | 31 -- lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h | 2 +- platformio.ini | 40 +- src/NerdMinerV2.ino.cpp | 14 +- src/drivers/devices/device.h | 27 -- src/drivers/devices/esp32CAM.h | 18 - src/drivers/{displays => }/display.cpp | 0 src/drivers/{displays => }/display.h | 2 +- src/drivers/displays/amoledDisplayDriver.cpp | 2 +- src/drivers/displays/dongleDisplayDriver.cpp | 8 +- src/drivers/displays/esp23_2432s028r.cpp | 2 +- src/drivers/displays/noDisplayDriver.cpp | 2 +- src/drivers/displays/tDisplayDriver.cpp | 2 +- src/drivers/displays/tDisplayV1Driver.cpp | 2 +- src/drivers/displays/t_qtDisplayDriver.cpp | 2 +- .../{displays/displayDriver.h => drivers.h} | 27 +- src/drivers/storage/SDCard.cpp | 157 ------- src/drivers/storage/SDCard.h | 38 -- src/drivers/storage/nvMemory.cpp | 148 ------ src/drivers/storage/nvMemory.h | 30 -- src/drivers/storage/storage.h | 35 -- src/mining.cpp | 28 +- src/monitor.cpp | 10 +- src/wManager.cpp | 431 +++++++++++------- src/wManager.h | 7 +- 26 files changed, 329 insertions(+), 739 deletions(-) delete mode 100644 src/drivers/devices/device.h delete mode 100644 src/drivers/devices/esp32CAM.h rename src/drivers/{displays => }/display.cpp (100%) rename src/drivers/{displays => }/display.h (94%) rename src/drivers/{displays/displayDriver.h => drivers.h} (73%) delete mode 100644 src/drivers/storage/SDCard.cpp delete mode 100644 src/drivers/storage/SDCard.h delete mode 100644 src/drivers/storage/nvMemory.cpp delete mode 100644 src/drivers/storage/nvMemory.h delete mode 100644 src/drivers/storage/storage.h diff --git a/.gitignore b/.gitignore index f7eadc5..bebd06e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,5 @@ .pio .vscode -.vs -*.sln -*.vcxproj* NerdMinerLog.txt bin/0x10000_firmware.bin logs diff --git a/README.md b/README.md index dd37a9c..e38bde5 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,6 @@ Every time an stratum job notification is received miner update its current work - LILYGO T-Display S3 AMOLED ([Aliexpress link](https://s.click.aliexpress.com/e/_DmOIK6j)) - LILYGO T-Dongle S3 ([Aliexpress link](https://s.click.aliexpress.com/e/_DmQCPyj)) - ESP32-2432S028R 2,8" ([Aliexpress link](https://s.click.aliexpress.com/e/_DdXkvLv)) -- ESP32-cam [Board Info](https://lastminuteengineers.com/getting-started-with-esp32-cam/) ### Flash firmware #### microMiners Flashtool [Recommended] @@ -76,33 +75,12 @@ Update NerdMiner firmware following same flashing steps but only adding 0x10000_ ### NerdMiner configuration After programming, you will only need to setup your Wifi and BTC address. -#### Wifi Accesspoint - 1. Connect to NerdMinerAP - AP: NerdMinerAP - PASS: MineYourCoins 1. Setup your Wifi Network 1. Add your BTCaddress -#### SD card (if available) - -1. Format a SD card using Fat32. -1. Create a file named "config.json" in your card's root, containing the the following structure. Adjust the settings to your needs: -{ - "SSID": "myWifiSSID", - "PW": "myWifiPassword", - "PoolUrl": "public-pool.io", - "PoolPort": 21496, - "BtcWallet": "walletID", - "Timezone": 2, - "saveStats": false -} -1. Insert the SD card. -1. Hold down the "reset configurations" button as described below to reset the configurations and/or boot without settings in your nvmemory. -1. Power down to remove the SD card. It is not needed for mining. - -#### Pool selection - Recommended low difficulty share pools: | Pool URL | Port | Web URL | Status | @@ -121,15 +99,6 @@ Other standard pools not compatible with low difficulty share: | eu.stratum.slushpool.com | 3333 | https://braiins.com/pool | ### Buttons - -#### One button devices: - -- One click > change screen. -- Double click > change screen orientation. -- Tripple click > turn the screen off and on again. -- Hold 5 seconds > **reset the configurations and reboot** your NerdMiner. - -#### Two button devices: With the USB-C port to the right: **TOP BUTTON** diff --git a/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h b/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h index f090f24..4438fe9 100644 --- a/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h +++ b/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h @@ -375,7 +375,7 @@ SPI3_HOST = 2 if ( c & 0x20 ) xset_mask[c] |= (1 << (TFT_D5-MASK_OFFSET)); \ if ( c & 0x40 ) xset_mask[c] |= (1 << (TFT_D6-MASK_OFFSET)); \ if ( c & 0x80 ) xset_mask[c] |= (1 << (TFT_D7-MASK_OFFSET)); \ - } \ + } \ // Mask for the 8 data bits to set pin directions #define GPIO_DIR_MASK ((1 << (TFT_D0-MASK_OFFSET)) | (1 << (TFT_D1-MASK_OFFSET)) | (1 << (TFT_D2-MASK_OFFSET)) | (1 << (TFT_D3-MASK_OFFSET)) | (1 << (TFT_D4-MASK_OFFSET)) | (1 << (TFT_D5-MASK_OFFSET)) | (1 << (TFT_D6-MASK_OFFSET)) | (1 << (TFT_D7-MASK_OFFSET))) diff --git a/platformio.ini b/platformio.ini index ef7a08f..b039650 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,7 +10,7 @@ [platformio] globallib_dir = lib -default_envs = esp32cam, ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R +default_envs = ESP32-2432S028R ;NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R [env:NerminerV2] platform = espressif32 @@ -23,11 +23,13 @@ monitor_filters = board_build.arduino.memory_type = qio_opi monitor_speed = 115200 upload_speed = 115200 + # 2 x 4.5MB app, 6.875MB SPIFFS ;board_build.partitions = large_spiffs_16MB.csv ;board_build.partitions = default_8MB.csv board_build.partitions = huge_app.csv ;board_build.partitions = default.csv + build_flags = -D LV_LVGL_H_INCLUDE_SIMPLE -D BOARD_HAS_PSRAM @@ -43,6 +45,7 @@ lib_deps = arduino-libraries/NTPClient ;https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 + [env:ESP32-devKitv1] platform = espressif32 board = esp32dev @@ -54,8 +57,10 @@ monitor_filters = ;board_build.arduino.memory_type = qio_opi monitor_speed = 115200 upload_speed = 115200 + # 2 x 4.5MB app, 6.875MB SPIFFS board_build.partitions = huge_app.csv + build_flags = -D DEVKITV1=1 ;-D DEBUG_MINING=1 @@ -66,6 +71,7 @@ lib_deps = mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient + [env:TTGO-T-Display] platform = espressif32 board = esp32dev ;esp-wrover-kit @@ -77,8 +83,11 @@ monitor_filters = board_build.arduino.memory_type = qio_opi monitor_speed = 115200 upload_speed = 115200 + + # 2 x 4.5MB app, 6.875MB SPIFFS board_build.partitions = huge_app.csv + build_flags = ;-D DEBUG_MINING=1 -D TDISPLAY=1 @@ -94,7 +103,9 @@ lib_deps = platform = espressif32 board = lilygo-t-amoled framework = arduino + board_build.partitions = huge_app.csv + build_flags = -DNERMINER_S3_AMOLED -DBOARD_HAS_PSRAM @@ -111,7 +122,9 @@ lib_deps = platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino + board_build.partitions = huge_app.csv + build_flags = -DNERMINER_S3_DONGLE -DBOARD_HAS_PSRAM @@ -122,31 +135,8 @@ lib_deps = https://github.com/tzapu/WiFiManager.git mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient + https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 https://github.com/FastLED/FastLED - ;https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 - -[env:esp32cam] -platform = espressif32 ;(ESP32-D0WD-V3) -board = esp32cam -framework = arduino -monitor_filters = - esp32_exception_decoder - time - log2file -monitor_speed = 115200 -upload_speed = 921600 -board_build.partitions = huge_app.csv -build_flags = - -D ESP32_CAM - -D MONITOR_SPEED=${this.monitor_speed} -lib_deps = - ;https://github.com/takkaO/OpenFontRender - bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git - mathertel/OneButton @ ^2.0.3 - arduino-libraries/NTPClient -lib_ignore = - TFT_eSPI [env:NerminerV2-T-QT] platform = espressif32 diff --git a/src/NerdMinerV2.ino.cpp b/src/NerdMinerV2.ino.cpp index 9904d15..94e802f 100644 --- a/src/NerdMinerV2.ino.cpp +++ b/src/NerdMinerV2.ino.cpp @@ -10,7 +10,7 @@ #include "wManager.h" #include "mining.h" #include "monitor.h" -#include "drivers/displays/display.h" +#include "drivers/display.h" //3 seconds WDT #define WDT_TIMEOUT 3 @@ -38,12 +38,7 @@ const char* ntpServer = "pool.ntp.org"; /********* INIT *****/ void setup() { -#ifdef MONITOR_SPEED - Serial.begin(MONITOR_SPEED); -#else - Serial.begin(115200); -#endif //MONITOR_SPEED - + Serial.begin(115200); Serial.setTimeout(0); delay(100); @@ -57,8 +52,7 @@ void setup() button1.setPressTicks(5000); button1.attachClick(switchToNextScreen); button1.attachDoubleClick(alternateScreenRotation); - button1.attachLongPressStart(reset_configuration); - button1.attachMultiClick(alternateScreenState); + button1.attachLongPressStart(reset_configurations); #endif #if defined(PIN_BUTTON_1) && defined(PIN_BUTTON_2) //Button 1 of two button device @@ -70,7 +64,7 @@ void setup() #if defined(PIN_BUTTON_2) //Button 2 of two button device button2.setPressTicks(5000); button2.attachClick(switchToNextScreen); - button2.attachLongPressStart(reset_configuration); + button2.attachLongPressStart(reset_configurations); #endif /******** INIT NERDMINER ************/ diff --git a/src/drivers/devices/device.h b/src/drivers/devices/device.h deleted file mode 100644 index 7d8ba51..0000000 --- a/src/drivers/devices/device.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __DEVICE_H__ -#define __DEVICE_H__ - -#if defined(NERDMINERV2) -#include "nerdMinerV2.h" -#elif defined(DEVKITV1) -#include "esp32DevKit.h" -#elif defined(TDISPLAY) -#include "lilygoS3TDisplay.h" -#elif defined(NERMINER_S3_AMOLED) -#include "lilygoS3Amoled.h" -#elif defined(NERMINER_S3_DONGLE) -#include "lilygoS3Dongle.h" -#elif defined(ESP32_2432S028R) -#include "esp322432s028r.h" -#elif defined(NERMINER_T_QT) -#include "lilygoT_QT.h" -#elif defined(NERDMINER_T_DISPLAY_V1) -#include "lilygoV1TDisplay.h" -#elif defined(ESP32_CAM) -#include "esp32CAM.h" - -#else -#error "No device defined" -#endif - -#endif // __DEVICE_H__ \ No newline at end of file diff --git a/src/drivers/devices/esp32CAM.h b/src/drivers/devices/esp32CAM.h deleted file mode 100644 index 54d7460..0000000 --- a/src/drivers/devices/esp32CAM.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _ESP32CAM_H_ -#define _ESP32CAM_H_ - -#define PIN_BUTTON_1 0 -#define LED_PIN 33 - -#define NO_DISPLAY - -// SDMMC interface: 1-bit mode (might cause issues): -#define SDMMC_CLK 14 -#define SDMMC_CMD 15 -#define SDMMC_D0 2 -// additional defines to enable 4-bit mode -#define SDMMC_D1 4 -#define SDMMC_D2 12 -#define SDMMC_D3 13 - -#endif // _ESP32_CAM_H_ diff --git a/src/drivers/displays/display.cpp b/src/drivers/display.cpp similarity index 100% rename from src/drivers/displays/display.cpp rename to src/drivers/display.cpp diff --git a/src/drivers/displays/display.h b/src/drivers/display.h similarity index 94% rename from src/drivers/displays/display.h rename to src/drivers/display.h index 2a4a469..331ea95 100644 --- a/src/drivers/displays/display.h +++ b/src/drivers/display.h @@ -1,7 +1,7 @@ #ifndef DISPLAY_H #define DISPLAY_H -#include "DisplayDriver.h" +#include "drivers.h" extern DisplayDriver *currentDisplayDriver; diff --git a/src/drivers/displays/amoledDisplayDriver.cpp b/src/drivers/displays/amoledDisplayDriver.cpp index 4abc576..c0eae8b 100644 --- a/src/drivers/displays/amoledDisplayDriver.cpp +++ b/src/drivers/displays/amoledDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "DisplayDriver.h" +#include "../drivers.h" #ifdef AMOLED_DISPLAY diff --git a/src/drivers/displays/dongleDisplayDriver.cpp b/src/drivers/displays/dongleDisplayDriver.cpp index f6b4fe0..2ba6356 100644 --- a/src/drivers/displays/dongleDisplayDriver.cpp +++ b/src/drivers/displays/dongleDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "DisplayDriver.h" +#include "../drivers.h" #ifdef DONGLE_DISPLAY @@ -45,15 +45,15 @@ extern monitor_data mMonitor; int32_t x = 8, y = 8; \ background.setTextSize(1); \ background.setTextFont(FONT2); \ - \ + \ background.setTextColor(KEY_COLOR); \ - \ + \ render.setFontSize(18); #define CLEAR_SCREEN() \ RESET_SCREEN(); \ background.fillRect(0, 0, BUFFER_WIDTH, BUFFER_HEIGHT, BACK_COLOR); \ - \ + \ #define PRINT_STR(str) \ diff --git a/src/drivers/displays/esp23_2432s028r.cpp b/src/drivers/displays/esp23_2432s028r.cpp index 7c96258..e87a279 100644 --- a/src/drivers/displays/esp23_2432s028r.cpp +++ b/src/drivers/displays/esp23_2432s028r.cpp @@ -1,4 +1,4 @@ -#include "DisplayDriver.h" +#include "../drivers.h" #ifdef ESP32_2432S028R diff --git a/src/drivers/displays/noDisplayDriver.cpp b/src/drivers/displays/noDisplayDriver.cpp index 636cf81..23a74bd 100644 --- a/src/drivers/displays/noDisplayDriver.cpp +++ b/src/drivers/displays/noDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "DisplayDriver.h" +#include "../drivers.h" #ifdef NO_DISPLAY diff --git a/src/drivers/displays/tDisplayDriver.cpp b/src/drivers/displays/tDisplayDriver.cpp index 76eede4..6eb454b 100644 --- a/src/drivers/displays/tDisplayDriver.cpp +++ b/src/drivers/displays/tDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "DisplayDriver.h" +#include "../drivers.h" #ifdef T_DISPLAY diff --git a/src/drivers/displays/tDisplayV1Driver.cpp b/src/drivers/displays/tDisplayV1Driver.cpp index 93b8f76..ac05290 100644 --- a/src/drivers/displays/tDisplayV1Driver.cpp +++ b/src/drivers/displays/tDisplayV1Driver.cpp @@ -1,4 +1,4 @@ -#include "DisplayDriver.h" +#include "../drivers.h" #ifdef V1_DISPLAY diff --git a/src/drivers/displays/t_qtDisplayDriver.cpp b/src/drivers/displays/t_qtDisplayDriver.cpp index f632cae..c5ddadc 100644 --- a/src/drivers/displays/t_qtDisplayDriver.cpp +++ b/src/drivers/displays/t_qtDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "DisplayDriver.h" +#include "../drivers.h" #ifdef T_QT_DISPLAY diff --git a/src/drivers/displays/displayDriver.h b/src/drivers/drivers.h similarity index 73% rename from src/drivers/displays/displayDriver.h rename to src/drivers/drivers.h index 939b00c..9897db0 100644 --- a/src/drivers/displays/displayDriver.h +++ b/src/drivers/drivers.h @@ -1,7 +1,26 @@ -#ifndef DISPLAYDRIVER_H_ -#define DISPLAYDRIVER_H_ +#ifndef DRIVERS_H +#define DRIVERS_H -#include "..\devices\device.h" +#if defined(NERDMINERV2) +#include "devices/nerdMinerV2.h" +#elif defined(DEVKITV1) +#include "devices/esp32DevKit.h" +#elif defined(TDISPLAY) +#include "devices/lilygoS3TDisplay.h" +#elif defined(NERMINER_S3_AMOLED) +#include "devices/lilygoS3Amoled.h" +#elif defined(NERMINER_S3_DONGLE) +#include "devices/lilygoS3Dongle.h" +#elif defined(ESP32_2432S028R) +#include "devices/esp322432s028r.h" +#elif defined(NERMINER_T_QT) +#include "devices/lilygoT_QT.h" +#elif defined(NERDMINER_T_DISPLAY_V1) +#include "devices/lilygoV1TDisplay.h" + +#else +#error "No device defined" +#endif typedef void (*AlternateFunction)(void); typedef void (*DriverInitFunction)(void); @@ -38,4 +57,4 @@ extern DisplayDriver tDisplayV1Driver; #define SCREENS_ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) -#endif // DISPLAYDRIVER_H_ +#endif // DRIVERS_H diff --git a/src/drivers/storage/SDCard.cpp b/src/drivers/storage/SDCard.cpp deleted file mode 100644 index fe06bde..0000000 --- a/src/drivers/storage/SDCard.cpp +++ /dev/null @@ -1,157 +0,0 @@ - -#include -#include -#include - -#include "storage.h" -#include "nvMemory.h" -#include "..\devices\device.h" -#include "SDCard.h" - -#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) - -#include - -SDCard::SDCard() -{ -#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) - iSD_ = &SD_MMC; -#elif defined (BUILD_SDSPI) -#error You chose to run the sd card in SPI mode. This is not implemented yet. -#endif -} - -SDCard::~SDCard() -{ - unmount(); -} - -void SDCard::SD2nvMemory(nvMemory* nvMem) -{ - TSettings Settings; - if (loadConfigFile(&Settings)) - { - nvMem->saveConfig(&Settings); - WiFi.begin(Settings.WifiSSID, Settings.WifiPW); - Serial.println("SDCard: Settings transfered to internal memory. Restarting now."); - ESP.restart(); - } -} - -bool SDCard::loadConfigFile(TSettings* Settings) -{ - // Load existing configuration file - // Read configuration from FS json - - if (initSDcard()) - { - if (iSD_->exists(JSON_CONFIG_FILE)) - { - // The file exists, reading and loading - File configFile = iSD_->open(JSON_CONFIG_FILE, "r"); - if (configFile) - { - StaticJsonDocument<512> json; - DeserializationError error = deserializeJson(json, configFile); - configFile.close(); - Serial.println("SDCard: Loading config file"); - serializeJsonPretty(json, Serial); - Serial.print('\n'); - unmount(); - if (!error) - { - strcpy(Settings->WifiSSID, json[JSON_KEY_SSID] | Settings->WifiSSID); - strcpy(Settings->WifiPW, json[JSON_KEY_PASW] | Settings->WifiPW); - strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); - strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); - if (json.containsKey(JSON_KEY_POOLPORT)) - Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); - if (json.containsKey(JSON_KEY_TIMEZONE)) - Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); - if (json.containsKey(JSON_KEY_STATS2NV)) - Settings->saveStats = json[JSON_KEY_STATS2NV].as(); - return true; - } - else - { - // Error loading JSON data - Serial.println("SDCard: Error parsing config file!"); - } - } - else - { - Serial.println("SDCard: Error opening config file!"); - } - } - else - { - Serial.println("SDCard: No config file available!"); - } - unmount(); - } - return false; -} - -void SDCard::unmount() -{ - iSD_->end(); - Serial.println("SDCard: Unmounted"); -} - -bool SDCard::initSDcard() -{ - if (iSD_->cardType() != CARD_NONE) - { - Serial.println("SDCard: Already mounted."); - return true; - } - Serial.println("SDCard: Mounting card."); - - bool cardInitialized = false; -#if defined (BUILD_SDMMC_4) - if (iSD_->cardType() == CARD_NONE) - { - iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); - Serial.println("SDCard: 4-Bit Mode."); - cardInitialized = iSD_->begin("/sd", false); - } -#elif defined (BUILD_SDMMC_1) - #warning SDMMC : 1 - bit mode is not always working.If you experience issues, try other modes. - if (iSD_->cardType() == CARD_NONE) - { - iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); - Serial.println("SDCard: 1-Bit Mode."); - cardInitialized = iSD_->begin("/sd", true); - } -#elif defined (BUILD_SDSPI) -#error You chose to run the sd card in SPI mode. This is not implemented yet. -#else - Serial.println("SDCard: interface not available."); - return false; -#endif // dataPinsDefined - if (cardInitialized) - { - if (iSD_->cardType() != CARD_NONE) - { - Serial.println("SDCard: Mounted."); - return true; - } - else - { - Serial.println("SDCard: Mounting failed."); - iSD_->end(); - } - } - return false; -} - -#else - -SDCard::SDCard() {} -SDCard::~SDCard() {} -void SDCard::SD2nvMemory(nvMemory* nvMem) {}; -bool SDCard::loadConfigFile(TSettings* Settings) { return false; } -bool SDCard::initSDcard() { return false; } -void unmount() {} - -#endif //BUILD_SDMMC \ No newline at end of file diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h deleted file mode 100644 index b2e91f5..0000000 --- a/src/drivers/storage/SDCard.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef _SDCARD_H_ -#define _SDCARD_H_ - -#include "storage.h" -#include "nvMemory.h" -#include "..\devices\device.h" - -#if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) -#define BUILD_SDMMC_4 -#include -#elif defined (SDMMC_D0) && !(defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3)) -#define BUILD_SDMMC_1 -#include -#else -#warning SD card support disabled! -#endif - -// Handles the transfer of settings from sd card to nv memory (wifi credentials are handled by wifimanager) -class SDCard -{ -public: - SDCard(); - ~SDCard(); - void SD2nvMemory(nvMemory* nvMem); - bool loadConfigFile(TSettings* Settings); -private: - bool initSDcard(); - void unmount(); - -#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) - fs::SDMMCFS* iSD_; -#elif defined (BUILD_SDSPI) -#error You chose to run the SD card in SPI mode. This is not implemented yet. - fs::SDFS* iSD_; -#endif -}; - -#endif // _SDCARD_H_ diff --git a/src/drivers/storage/nvMemory.cpp b/src/drivers/storage/nvMemory.cpp deleted file mode 100644 index a686589..0000000 --- a/src/drivers/storage/nvMemory.cpp +++ /dev/null @@ -1,148 +0,0 @@ -#include "nvMemory.h" - -#ifdef NVMEM_SPIFFS - -#include -#include -#include - -#include "..\devices\device.h" -#include "storage.h" - -nvMemory::nvMemory() -{ - Initialized_ = false; -} - -nvMemory::~nvMemory() -{ - if (Initialized_) - SPIFFS.end(); -}; - -bool nvMemory::saveConfig(TSettings* Settings) -{ - if (init()) - { - // Save Config in JSON format - Serial.println(F("SPIFS: Saving configuration.")); - - // Create a JSON document - StaticJsonDocument<512> json; - json[JSON_KEY_POOLURL] = Settings->PoolAddress; - json[JSON_KEY_POOLPORT] = Settings->PoolPort; - json[JSON_KEY_WALLETID] = Settings->BtcWallet; - json[JSON_KEY_TIMEZONE] = Settings->Timezone; - json[JSON_KEY_STATS2NV] = Settings->saveStats; - - // Open config file - File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); - if (!configFile) - { - // Error, file did not open - Serial.println("SPIFS: Failed to open config file for writing"); - return false; - } - - // Serialize JSON data to write to file - serializeJsonPretty(json, Serial); - Serial.print('\n'); - if (serializeJson(json, configFile) == 0) - { - // Error writing file - Serial.println(F("SPIFS: Failed to write to file")); - return false; - } - // Close file - configFile.close(); - return true; - }; - return false; -} - -bool nvMemory::loadConfig(TSettings* Settings) -{ - // Uncomment if we need to format filesystem - // SPIFFS.format(); - - // Load existing configuration file - // Read configuration from FS json - - if (init()) - { - if (SPIFFS.exists(JSON_CONFIG_FILE)) - { - // The file exists, reading and loading - File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); - if (configFile) - { - Serial.println("SPIFS: Loading config file"); - StaticJsonDocument<512> json; - DeserializationError error = deserializeJson(json, configFile); - configFile.close(); - serializeJsonPretty(json, Serial); - Serial.print('\n'); - if (!error) - { - strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); - strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); - if (json.containsKey(JSON_KEY_POOLPORT)) - Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); - if (json.containsKey(JSON_KEY_TIMEZONE)) - Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); - if (json.containsKey(JSON_KEY_STATS2NV)) - Settings->saveStats = json[JSON_KEY_STATS2NV].as(); - return true; - } - else - { - // Error loading JSON data - Serial.println("SPIFS: Error parsing config file!"); - } - } - else - { - Serial.println("SPIFS: Error opening config file!"); - } - } - else - { - Serial.println("SPIFS: No config file available!"); - } - } - return false; -} - -bool nvMemory::deleteConfig() -{ - Serial.println("SPIFS: Erasing config file.."); - return SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero -} - -bool nvMemory::init() -{ - if (!Initialized_) - { - Serial.println("SPIFS: Mounting File System..."); - // May need to make it begin(true) first time you are using SPIFFS - Initialized_ = SPIFFS.begin(false) || SPIFFS.begin(true); - Initialized_ ? Serial.println("SPIFS: Mounted") : Serial.println("SPIFS: Mounting failed."); - } - else - { - Serial.println("SPIFS: Already Mounted"); - } - return Initialized_; -}; - -#else - -nvMemory::nvMemory() {} -nvMemory::~nvMemory() {} -bool nvMemory::saveConfig(TSettings* Settings) { return false; } -bool nvMemory::loadConfig(TSettings* Settings) { return false; } -bool nvMemory::deleteConfig() { return false; } -bool nvMemory::init() { return false; } - - -#endif //NVMEM_TYPE \ No newline at end of file diff --git a/src/drivers/storage/nvMemory.h b/src/drivers/storage/nvMemory.h deleted file mode 100644 index 163431c..0000000 --- a/src/drivers/storage/nvMemory.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef _NVMEMORY_H_ -#define _NVMEMORY_H_ - -// we only have one implementation right now and nothing to choose from. -#define NVMEM_SPIFFS - -#include "..\devices\device.h" -#include "storage.h" - -// Handles load and store of user settings, except wifi credentials. Those are managed by the wifimanager. -class nvMemory -{ -public: - nvMemory(); - ~nvMemory(); - bool saveConfig(TSettings* Settings); - bool loadConfig(TSettings* Settings); - bool deleteConfig(); -private: - bool init(); - bool Initialized_; -}; - -#ifdef NVMEM_SPIFFS -#define ESP_DRD_USE_SPIFFS true -#else -#error We need some kind of permanent storage implementation! -#endif //NVMEM_TYPE - -#endif // _NVMEMORY_H_ diff --git a/src/drivers/storage/storage.h b/src/drivers/storage/storage.h deleted file mode 100644 index 8aa0668..0000000 --- a/src/drivers/storage/storage.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef _STORAGE_H_ -#define _STORAGE_H_ - -#include - -#define DEFAULT_SSID "NerdMinerAP" -#define DEFAULT_WIFIPW "MineYourCoins" -#define DEFAULT_POOLURL "public-pool.io" -#define DEFAULT_WALLETID "yourBtcAddress" -#define DEFAULT_POOLPORT 21496 -#define DEFAULT_TIMEZONE 2 -#define DEFAULT_SAVESTATS false - -// JSON config file -#define JSON_CONFIG_FILE "/config.json" -#define JSON_KEY_SSID "SSID" -#define JSON_KEY_PASW "PW" -#define JSON_KEY_POOLURL "PoolUrl" -#define JSON_KEY_WALLETID "BtcWallet" -#define JSON_KEY_POOLPORT "PoolPort" -#define JSON_KEY_TIMEZONE "Timezone" -#define JSON_KEY_STATS2NV "saveStats" - -struct TSettings -{ - char WifiSSID[80]{ DEFAULT_SSID }; - char WifiPW[80]{ DEFAULT_WIFIPW }; - char PoolAddress[80]{ DEFAULT_POOLURL }; - char BtcWallet[80]{ DEFAULT_WALLETID }; - uint32_t PoolPort{ DEFAULT_POOLPORT }; - uint32_t Timezone{ DEFAULT_TIMEZONE }; - bool saveStats{ DEFAULT_SAVESTATS }; -}; - -#endif // _STORAGE_H_ \ No newline at end of file diff --git a/src/mining.cpp b/src/mining.cpp index d6f5694..9bf3fce 100644 --- a/src/mining.cpp +++ b/src/mining.cpp @@ -10,8 +10,7 @@ #include "mining.h" #include "utils.h" #include "monitor.h" -#include "drivers/displays/display.h" -#include "drivers/storage/storage.h" +#include "drivers/display.h" nvs_handle_t stat_handle; @@ -29,10 +28,11 @@ uint32_t valids; // increased if blockhash <= target double best_diff = 0.0; // Variables to hold data from custom textboxes -//Track mining stats in non volatile memory -extern TSettings Settings; - +extern char poolString[80]; +extern int portNumber; +extern char btcString[80]; IPAddress serverIP(1, 1, 1, 1); //Temporally save poolIPaddres +extern bool saveStatsToNVS; //Track mining stats in non volatile memory //Global work data static WiFiClient client; @@ -59,14 +59,14 @@ bool checkPoolConnection(void) { //Resolve first time pool DNS and save IP if(serverIP == IPAddress(1,1,1,1)) { - WiFi.hostByName(Settings.PoolAddress, serverIP); + WiFi.hostByName(poolString, serverIP); Serial.printf("Resolved DNS and save ip (first time) got: %s\n", serverIP.toString()); } //Try connecting pool IP - if (!client.connect(serverIP, Settings.PoolPort)) { - Serial.println("Imposible to connect to : " + String(Settings.PoolAddress)); - WiFi.hostByName(Settings.PoolAddress, serverIP); + if (!client.connect(serverIP, portNumber)) { + Serial.println("Imposible to connect to : " + String(poolString)); + WiFi.hostByName(poolString, serverIP); Serial.printf("Resolved DNS got: %s\n", serverIP.toString()); vTaskDelay(1000 / portTICK_PERIOD_MS); return false; @@ -166,7 +166,7 @@ void runStratumWorker(void *name) { continue; } - strcpy(mWorker.wName, Settings.BtcWallet); + strcpy(mWorker.wName, btcString); strcpy(mWorker.wPass, "x"); // STEP 2: Pool authorize work (Block Info) tx_mining_auth(client, mWorker.wName, mWorker.wPass); //Don't verifies authoritzation, TODO @@ -386,7 +386,7 @@ void runMiner(void * task_id) { #define REDRAW_EVERY 10 void restoreStat() { - if(!Settings.saveStats) return; + if(!saveStatsToNVS) return; esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { Serial.printf("[MONITOR] NVS partition is full or has invalid version, erasing...\n"); @@ -405,7 +405,7 @@ void restoreStat() { } void saveStat() { - if(!Settings.saveStats) return; + if(!saveStatsToNVS) return; Serial.printf("[MONITOR] Saving stats\n"); nvs_set_blob(stat_handle, "best_diff", &best_diff, sizeof(double)); nvs_set_u32(stat_handle, "Mhashes", Mhashes); @@ -447,8 +447,8 @@ void runMonitor(void *name) if (elapsedKHs == 0) { Serial.printf(">>> [i] Miner: newJob>%s / inRun>%s) - Client: connected>%s / subscribed>%s / wificonnected>%s\n", - mMiner.newJob ? "true" : "false", mMiner.inRun ? "true" : "false", - client.connected() ? "true" : "false", isMinerSuscribed ? "true" : "false", WiFi.status() == WL_CONNECTED ? "true" : "false"); + mMiner.newJob ? "true" : "false", mMiner.inRun ? "true" : "false", + client.connected() ? "true" : "false", isMinerSuscribed ? "true" : "false", WiFi.status() == WL_CONNECTED ? "true" : "false"); } #ifdef DEBUG_MEMORY diff --git a/src/monitor.cpp b/src/monitor.cpp index 56f1368..27753cd 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -7,8 +7,8 @@ #include "mining.h" #include "utils.h" #include "monitor.h" -#include "drivers/storage/storage.h" +extern char poolString[80]; extern uint32_t templates; extern uint32_t hashes; extern uint32_t Mhashes; @@ -23,8 +23,7 @@ extern double best_diff; // track best diff extern monitor_data mMonitor; -//from saved config -extern TSettings Settings; +extern int GMTzone; //Gotten from saved config WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 3600, 60000); @@ -40,7 +39,7 @@ void setup_monitor(void){ // Adjust offset depending on your zone // GMT +2 in seconds (zona horaria de Europa Central) - timeClient.setTimeOffset(3600 * Settings.Timezone); + timeClient.setTimeOffset(3600 * GMTzone); Serial.println("TimeClient setup done"); } @@ -172,6 +171,7 @@ unsigned long mTriggerUpdate = 0; unsigned long initialMillis = millis(); unsigned long initialTime = 0; unsigned long mPoolUpdate = 0; +extern char btcString[80]; void getTime(unsigned long* currentHours, unsigned long* currentMinutes, unsigned long* currentSeconds){ @@ -296,7 +296,7 @@ pool_data getPoolData(void){ HTTPClient http; http.setReuse(true); try { - String btcWallet = Settings.BtcWallet; + String btcWallet = btcString; Serial.println(btcWallet); if (btcWallet.indexOf(".")>0) btcWallet = btcWallet.substring(0,btcWallet.indexOf(".")); http.begin(String(getPublicPool)+btcWallet); diff --git a/src/wManager.cpp b/src/wManager.cpp index 93afff4..1e94ae4 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -1,148 +1,221 @@ +#define ESP_DRD_USE_SPIFFS true // Include Libraries //#include ".h" #include +#include +#include #include - +#include #include "wManager.h" #include "monitor.h" -#include "drivers/displays/display.h" -#include "drivers/storage/SDCard.h" -#include "drivers/storage/nvMemory.h" -#include "drivers/storage/storage.h" +#include "drivers/display.h" +// JSON configuration file +#define JSON_CONFIG_FILE "/config.json" // Flag for saving data bool shouldSaveConfig = false; // Variables to hold data from custom textboxes -TSettings Settings; +char poolString[80] = "public-pool.io"; +int portNumber = 21496;//3333; +char btcString[80] = "yourBtcAddress"; +int GMTzone = 2; //Currently selected in spain +bool saveStatsToNVS = false; //Track mining stats in non volatile memory + // Define WiFiManager Object WiFiManager wm; extern monitor_data mMonitor; -nvMemory nvMem; +void saveConfigFile() +// Save Config in JSON format +{ + Serial.println(F("Saving configuration...")); + + // Create a JSON document + StaticJsonDocument<512> json; + json["poolString"] = poolString; + json["portNumber"] = portNumber; + json["btcString"] = btcString; + json["gmtZone"] = GMTzone; + json["saveStatsToNVS"] = String(saveStatsToNVS); + + // Open config file + File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); + if (!configFile) + { + // Error, file did not open + Serial.println("failed to open config file for writing"); + } + + // Serialize JSON data to write to file + serializeJsonPretty(json, Serial); + if (serializeJson(json, configFile) == 0) + { + // Error writing file + Serial.println(F("Failed to write to file")); + } + // Close file + configFile.close(); +} + +bool loadConfigFile() +// Load existing configuration file +{ + // Uncomment if we need to format filesystem + // SPIFFS.format(); + + // Read configuration from FS json + Serial.println("Mounting File System..."); + + // May need to make it begin(true) first time you are using SPIFFS + if (SPIFFS.begin(false) || SPIFFS.begin(true)) + { + Serial.println("mounted file system"); + if (SPIFFS.exists(JSON_CONFIG_FILE)) + { + // The file exists, reading and loading + Serial.println("reading config file"); + File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); + if (configFile) + { + Serial.println("Opened configuration file"); + StaticJsonDocument<512> json; + DeserializationError error = deserializeJson(json, configFile); + configFile.close(); + serializeJsonPretty(json, Serial); + if (!error) + { + Serial.println("Parsing JSON"); + + strcpy(poolString, json["poolString"]); + strcpy(btcString, json["btcString"]); + portNumber = json["portNumber"].as(); + GMTzone = json["gmtZone"].as(); + if(json.containsKey("saveStatsToNVS")) + saveStatsToNVS = json["saveStatsToNVS"].as(); + return true; + } + else + { + // Error loading JSON data + Serial.println("Failed to load json config"); + } + } + } + } + else + { + // Error mounting file system + Serial.println("Failed to mount FS"); + } + + return false; +} + void saveConfigCallback() // Callback notifying us of the need to save configuration { - Serial.println("Should save config"); - shouldSaveConfig = true; - //wm.setConfigPortalBlocking(false); + Serial.println("Should save config"); + shouldSaveConfig = true; + //wm.setConfigPortalBlocking(false); } -void configModeCallback(WiFiManager* myWiFiManager) +void configModeCallback(WiFiManager *myWiFiManager) // Called when config mode launched { - Serial.println("Entered Configuration Mode"); + Serial.println("Entered Configuration Mode"); - Serial.print("Config SSID: "); - Serial.println(myWiFiManager->getConfigPortalSSID()); + Serial.print("Config SSID: "); + Serial.println(myWiFiManager->getConfigPortalSSID()); - Serial.print("Config IP Address: "); - Serial.println(WiFi.softAPIP()); -} - -void reset_configuration() -{ - Serial.println("Erasing Config, restarting"); - nvMem.deleteConfig(); - wm.resetSettings(); - ESP.restart(); + Serial.print("Config IP Address: "); + Serial.println(WiFi.softAPIP()); } void init_WifiManager() { -#ifdef MONITOR_SPEED - Serial.begin(MONITOR_SPEED); -#else - Serial.begin(115200); -#endif //MONITOR_SPEED - //Serial.setTxTimeoutMs(10); + Serial.begin(115200); + //Serial.setTxTimeoutMs(10); - //Init pin 15 to eneble 5V external power (LilyGo bug) -#ifdef PIN_ENABLE5V + //Init pin 15 to eneble 5V external power (LilyGo bug) + #ifdef PIN_ENABLE5V pinMode(PIN_ENABLE5V, OUTPUT); digitalWrite(PIN_ENABLE5V, HIGH); -#endif + #endif - // Change to true when testing to force configuration every time we run - bool forceConfig = false; + // Change to true when testing to force configuration every time we run + bool forceConfig = false; -#if defined(PIN_BUTTON_2) + #if defined(PIN_BUTTON_2) // Check if button2 is pressed to enter configMode with actual configuration - if (!digitalRead(PIN_BUTTON_2)) { - Serial.println(F("Button pressed to force start config mode")); - forceConfig = true; - wm.setBreakAfterConfig(true); //Set to detect config edition and save + if(!digitalRead(PIN_BUTTON_2)){ + Serial.println(F("Button pressed to force start config mode")); + forceConfig = true; + wm.setBreakAfterConfig(true); //Set to detect config edition and save } -#endif - // Explicitly set WiFi mode - WiFi.mode(WIFI_STA); + #endif + + bool spiffsSetup = loadConfigFile(); + if (!spiffsSetup) + { + Serial.println(F("Forcing config mode as there is no saved config")); + forceConfig = true; + + } - if (!nvMem.loadConfig(&Settings)) - { - //No config file on internal flash. - SDCard SDCrd; - if (SDCrd.loadConfigFile(&Settings)) - { - //Config file on SD card. - SDCrd.SD2nvMemory(&nvMem); // reboot on success. - } - else - { - //No config file on SD card. Starting wifi config server. - forceConfig = true; - } - }; + // Explicitly set WiFi mode + WiFi.mode(WIFI_STA); - // Reset settings (only for development) - //wm.resetSettings(); + // Reset settings (only for development) + //wm.resetSettings(); - //Set dark theme - //wm.setClass("invert"); // dark theme + //Set dark theme + //wm.setClass("invert"); // dark theme + + // Set config save notify callback + wm.setSaveConfigCallback(saveConfigCallback); - // Set config save notify callback - wm.setSaveConfigCallback(saveConfigCallback); + // Set callback that gets called when connecting to previous WiFi fails, and enters Access Point mode + wm.setAPCallback(configModeCallback); - // Set callback that gets called when connecting to previous WiFi fails, and enters Access Point mode - wm.setAPCallback(configModeCallback); + //Advanced settings + wm.setConfigPortalBlocking(false); //Hacemos que el portal no bloquee el firmware + wm.setConnectTimeout(50); // how long to try to connect for before continuing + //wm.setConfigPortalTimeout(30); // auto close configportal after n seconds + // wm.setCaptivePortalEnable(false); // disable captive portal redirection + // wm.setAPClientCheck(true); // avoid timeout if client connected to softap + //wm.setTimeout(120); + //wm.setConfigPortalTimeout(120); //seconds + + // Custom elements - //Advanced settings - wm.setConfigPortalBlocking(false); //Hacemos que el portal no bloquee el firmware - wm.setConnectTimeout(50); // how long to try to connect for before continuing - //wm.setConfigPortalTimeout(30); // auto close configportal after n seconds - // wm.setCaptivePortalEnable(false); // disable captive portal redirection - // wm.setAPClientCheck(true); // avoid timeout if client connected to softap - //wm.setTimeout(120); - //wm.setConfigPortalTimeout(120); //seconds + // Text box (String) - 80 characters maximum + WiFiManagerParameter pool_text_box("Poolurl", "Pool url", poolString, 80); - // Custom elements + // Need to convert numerical input to string to display the default value. + char convertedValue[6]; + sprintf(convertedValue, "%d", portNumber); + + // Text box (Number) - 7 characters maximum + WiFiManagerParameter port_text_box_num("Poolport", "Pool port", convertedValue, 7); - // Text box (String) - 80 characters maximum - WiFiManagerParameter pool_text_box("Poolurl", "Pool url", Settings.PoolAddress, 80); - - // Need to convert numerical input to string to display the default value. - char convertedValue[6]; - sprintf(convertedValue, "%d", Settings.PoolPort); - - // Text box (Number) - 7 characters maximum - WiFiManagerParameter port_text_box_num("Poolport", "Pool port", convertedValue, 7); - - // Text box (String) - 80 characters maximum - WiFiManagerParameter addr_text_box("btcAddress", "Your BTC address", Settings.BtcWallet, 80); + // Text box (String) - 80 characters maximum + WiFiManagerParameter addr_text_box("btcAddress", "Your BTC address", btcString, 80); // Text box (Number) - 2 characters maximum char charZone[6]; - sprintf(charZone, "%d", Settings.Timezone); + sprintf(charZone, "%d", GMTzone); WiFiManagerParameter time_text_box_num("TimeZone", "TimeZone fromUTC (-12/+12)", charZone, 3); WiFiManagerParameter features_html("

"); char checkboxParams[24] = "type=\"checkbox\""; - if (Settings.saveStats) + if (saveStatsToNVS) { strcat(checkboxParams, " checked"); } @@ -156,103 +229,109 @@ void init_WifiManager() wm.addParameter(&features_html); wm.addParameter(&save_stats_to_nvs); - Serial.println("AllDone: "); - if (forceConfig) + Serial.println("AllDone: "); + if (forceConfig) + // Run if we need a configuration + { + //No configuramos timeout al modulo + wm.setConfigPortalBlocking(true); //Hacemos que el portal SI bloquee el firmware + drawSetupScreen(); + if (!wm.startConfigPortal("NerdMinerAP","MineYourCoins")) { - // Run if we need a configuration - //No configuramos timeout al modulo - wm.setConfigPortalBlocking(true); //Hacemos que el portal SI bloquee el firmware - drawSetupScreen(); - - if (wm.startConfigPortal(DEFAULT_SSID, DEFAULT_WIFIPW)) - { - //Could be break forced after edditing, so save new config - Serial.println("failed to connect and hit timeout"); - strncpy(Settings.PoolAddress, pool_text_box.getValue(), sizeof(Settings.PoolAddress)); - Settings.PoolPort = atoi(port_text_box_num.getValue()); - strncpy(Settings.BtcWallet, addr_text_box.getValue(), sizeof(Settings.BtcWallet)); - Settings.Timezone = atoi(time_text_box_num.getValue()); - Serial.println(save_stats_to_nvs.getValue()); - Settings.saveStats = (strncmp(save_stats_to_nvs.getValue(), "T", 1) == 0); - - nvMem.saveConfig(&Settings); - delay(3000); - //reset and try again, or maybe put it to deep sleep - ESP.restart(); - delay(5000); - }; + Serial.println("failed to connect and hit timeout"); + //Could be break forced after edditing, so save new config + strncpy(poolString, pool_text_box.getValue(), sizeof(poolString)); + portNumber = atoi(port_text_box_num.getValue()); + strncpy(btcString, addr_text_box.getValue(), sizeof(btcString)); + GMTzone = atoi(time_text_box_num.getValue()); + saveStatsToNVS = (strncmp(save_stats_to_nvs.getValue(), "T", 1) == 0); + saveConfigFile(); + delay(3000); + //reset and try again, or maybe put it to deep sleep + ESP.restart(); + delay(5000); } - else - { - //Tratamos de conectar con la configuraciĆ³n inicial ya almacenada - mMonitor.NerdStatus = NM_Connecting; - wm.setCaptivePortalEnable(false); // disable captive portal redirection - if (!wm.autoConnect(Settings.WifiSSID, Settings.WifiPW)) - { - Serial.println("Failed to connect and hit timeout"); - //delay(3000); - // if we still have not connected restart and try all over again - //ESP.restart(); - //delay(5000); - } - } - + } + else + { + //Tratamos de conectar con la configuraciĆ³n inicial ya almacenada mMonitor.NerdStatus = NM_Connecting; - - //Conectado a la red Wifi - if (WiFi.status() == WL_CONNECTED) { - //tft.pushImage(0, 0, MinerWidth, MinerHeight, MinerScreen); - Serial.println(""); - Serial.println("WiFi connected"); - Serial.print("IP address: "); - Serial.println(WiFi.localIP()); - - // Lets deal with the user config values - - // Copy the string value - strncpy(Settings.PoolAddress, pool_text_box.getValue(), sizeof(Settings.PoolAddress)); - Serial.print("PoolString: "); - Serial.println(Settings.PoolAddress); - - //Convert the number value - Settings.PoolPort = atoi(port_text_box_num.getValue()); - Serial.print("portNumber: "); - Serial.println(Settings.PoolPort); - - // Copy the string value - strncpy(Settings.BtcWallet, addr_text_box.getValue(), sizeof(Settings.BtcWallet)); - Serial.print("btcString: "); - Serial.println(Settings.BtcWallet); - - //Convert the number value - Settings.Timezone = atoi(time_text_box_num.getValue()); - Serial.print("TimeZone fromUTC: "); - Serial.println(Settings.Timezone); - - } - - // Save the custom parameters to FS - if (shouldSaveConfig) + wm.setCaptivePortalEnable(false); // disable captive portal redirection + if (!wm.autoConnect("NerdMinerAP","MineYourCoins")) { - nvMem.saveConfig(&Settings); + Serial.println("Failed to connect and hit timeout"); + //delay(3000); + // if we still have not connected restart and try all over again + //ESP.restart(); + //delay(5000); } + } + + mMonitor.NerdStatus = NM_Connecting; + + //Conectado a la red Wifi + if(WiFi.status() == WL_CONNECTED){ + //tft.pushImage(0, 0, MinerWidth, MinerHeight, MinerScreen); + Serial.println(""); + Serial.println("WiFi connected"); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + + // Lets deal with the user config values + + // Copy the string value + strncpy(poolString, pool_text_box.getValue(), sizeof(poolString)); + Serial.print("PoolString: "); + Serial.println(poolString); + + //Convert the number value + portNumber = atoi(port_text_box_num.getValue()); + Serial.print("portNumber: "); + Serial.println(portNumber); + + // Copy the string value + strncpy(btcString, addr_text_box.getValue(), sizeof(btcString)); + Serial.print("btcString: "); + Serial.println(btcString); + + //Convert the number value + GMTzone = atoi(time_text_box_num.getValue()); + Serial.print("TimeZone fromUTC: "); + Serial.println(GMTzone); + } + + // Save the custom parameters to FS + if (shouldSaveConfig) + { + saveConfigFile(); + } } +void reset_configurations() { + Serial.println("Erasing Config, restarting"); + wm.resetSettings(); + SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero + ESP.restart(); +} + + //----------------- MAIN PROCESS WIFI MANAGER -------------- int oldStatus = 0; void wifiManagerProcess() { - - wm.process(); // avoid delays() in loop when non-blocking and other long running code - - int newStatus = WiFi.status(); - if (newStatus != oldStatus) { - if (newStatus == WL_CONNECTED) { - Serial.println("CONNECTED - Current ip: " + WiFi.localIP().toString()); - } else { - Serial.print("[Error] - current status: "); - Serial.println(newStatus); - } - oldStatus = newStatus; + + wm.process(); // avoid delays() in loop when non-blocking and other long running code + + int newStatus = WiFi.status(); + if (newStatus != oldStatus) { + if (newStatus == WL_CONNECTED) { + Serial.println("CONNECTED - Current ip: " + WiFi.localIP().toString()); + } else { + Serial.print("[Error] - current status: "); + Serial.println(newStatus); } + oldStatus = newStatus; + } } + + diff --git a/src/wManager.h b/src/wManager.h index ef2bd37..870b435 100644 --- a/src/wManager.h +++ b/src/wManager.h @@ -1,8 +1,3 @@ -#ifndef _WMANAGER_H -#define _WMANAGER_H - void init_WifiManager(); void wifiManagerProcess(); -void reset_configuration(); - -#endif // _WMANAGER_H +void reset_configurations(); \ No newline at end of file From c803c3b78ca19bb7c805cad94a8336031d340736 Mon Sep 17 00:00:00 2001 From: George Alexandre Silva Date: Tue, 19 Sep 2023 21:38:11 -0300 Subject: [PATCH 47/68] minor adjusts. --- src/drivers/displays/esp23_2432s028r.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/drivers/displays/esp23_2432s028r.cpp b/src/drivers/displays/esp23_2432s028r.cpp index e87a279..7788014 100644 --- a/src/drivers/displays/esp23_2432s028r.cpp +++ b/src/drivers/displays/esp23_2432s028r.cpp @@ -377,8 +377,7 @@ char currentScreen = 0; void esp32_2432S028R_DoLedStuff(unsigned long frame) { - unsigned long currentMillis = millis(); - + unsigned long currentMillis = millis(); // / Check the touch coordinates 110x185 210x240 if (currentMillis - previousTouchMillis >= 500) { From 6105c57b9b514bfdaa88f86523b3c4b6ffa9e710 Mon Sep 17 00:00:00 2001 From: George Alexandre Silva Date: Tue, 19 Sep 2023 22:18:28 -0300 Subject: [PATCH 48/68] Revert "Revert "Merge branch 'dev' of https://github.com/BitMaker-hub/NerdMiner_v2 into dev"" This reverts commit 56fc227c7c8b4afe47abff60b570de466c59c727. --- .gitignore | 3 + README.md | 31 ++ lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h | 2 +- platformio.ini | 40 +- src/NerdMinerV2.ino.cpp | 14 +- src/drivers/devices/device.h | 27 ++ src/drivers/devices/esp32CAM.h | 18 + src/drivers/displays/amoledDisplayDriver.cpp | 2 +- src/drivers/{ => displays}/display.cpp | 0 src/drivers/{ => displays}/display.h | 2 +- .../{drivers.h => displays/displayDriver.h} | 27 +- src/drivers/displays/dongleDisplayDriver.cpp | 8 +- src/drivers/displays/esp23_2432s028r.cpp | 2 +- src/drivers/displays/noDisplayDriver.cpp | 2 +- src/drivers/displays/tDisplayDriver.cpp | 2 +- src/drivers/displays/tDisplayV1Driver.cpp | 2 +- src/drivers/displays/t_qtDisplayDriver.cpp | 2 +- src/drivers/storage/SDCard.cpp | 157 +++++++ src/drivers/storage/SDCard.h | 38 ++ src/drivers/storage/nvMemory.cpp | 148 ++++++ src/drivers/storage/nvMemory.h | 30 ++ src/drivers/storage/storage.h | 35 ++ src/mining.cpp | 28 +- src/monitor.cpp | 10 +- src/wManager.cpp | 431 +++++++----------- src/wManager.h | 7 +- 26 files changed, 739 insertions(+), 329 deletions(-) create mode 100644 src/drivers/devices/device.h create mode 100644 src/drivers/devices/esp32CAM.h rename src/drivers/{ => displays}/display.cpp (100%) rename src/drivers/{ => displays}/display.h (94%) rename src/drivers/{drivers.h => displays/displayDriver.h} (73%) create mode 100644 src/drivers/storage/SDCard.cpp create mode 100644 src/drivers/storage/SDCard.h create mode 100644 src/drivers/storage/nvMemory.cpp create mode 100644 src/drivers/storage/nvMemory.h create mode 100644 src/drivers/storage/storage.h diff --git a/.gitignore b/.gitignore index bebd06e..f7eadc5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ .pio .vscode +.vs +*.sln +*.vcxproj* NerdMinerLog.txt bin/0x10000_firmware.bin logs diff --git a/README.md b/README.md index e38bde5..dd37a9c 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ Every time an stratum job notification is received miner update its current work - LILYGO T-Display S3 AMOLED ([Aliexpress link](https://s.click.aliexpress.com/e/_DmOIK6j)) - LILYGO T-Dongle S3 ([Aliexpress link](https://s.click.aliexpress.com/e/_DmQCPyj)) - ESP32-2432S028R 2,8" ([Aliexpress link](https://s.click.aliexpress.com/e/_DdXkvLv)) +- ESP32-cam [Board Info](https://lastminuteengineers.com/getting-started-with-esp32-cam/) ### Flash firmware #### microMiners Flashtool [Recommended] @@ -75,12 +76,33 @@ Update NerdMiner firmware following same flashing steps but only adding 0x10000_ ### NerdMiner configuration After programming, you will only need to setup your Wifi and BTC address. +#### Wifi Accesspoint + 1. Connect to NerdMinerAP - AP: NerdMinerAP - PASS: MineYourCoins 1. Setup your Wifi Network 1. Add your BTCaddress +#### SD card (if available) + +1. Format a SD card using Fat32. +1. Create a file named "config.json" in your card's root, containing the the following structure. Adjust the settings to your needs: +{ + "SSID": "myWifiSSID", + "PW": "myWifiPassword", + "PoolUrl": "public-pool.io", + "PoolPort": 21496, + "BtcWallet": "walletID", + "Timezone": 2, + "saveStats": false +} +1. Insert the SD card. +1. Hold down the "reset configurations" button as described below to reset the configurations and/or boot without settings in your nvmemory. +1. Power down to remove the SD card. It is not needed for mining. + +#### Pool selection + Recommended low difficulty share pools: | Pool URL | Port | Web URL | Status | @@ -99,6 +121,15 @@ Other standard pools not compatible with low difficulty share: | eu.stratum.slushpool.com | 3333 | https://braiins.com/pool | ### Buttons + +#### One button devices: + +- One click > change screen. +- Double click > change screen orientation. +- Tripple click > turn the screen off and on again. +- Hold 5 seconds > **reset the configurations and reboot** your NerdMiner. + +#### Two button devices: With the USB-C port to the right: **TOP BUTTON** diff --git a/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h b/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h index 4438fe9..f090f24 100644 --- a/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h +++ b/lib/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h @@ -375,7 +375,7 @@ SPI3_HOST = 2 if ( c & 0x20 ) xset_mask[c] |= (1 << (TFT_D5-MASK_OFFSET)); \ if ( c & 0x40 ) xset_mask[c] |= (1 << (TFT_D6-MASK_OFFSET)); \ if ( c & 0x80 ) xset_mask[c] |= (1 << (TFT_D7-MASK_OFFSET)); \ - } \ + } \ // Mask for the 8 data bits to set pin directions #define GPIO_DIR_MASK ((1 << (TFT_D0-MASK_OFFSET)) | (1 << (TFT_D1-MASK_OFFSET)) | (1 << (TFT_D2-MASK_OFFSET)) | (1 << (TFT_D3-MASK_OFFSET)) | (1 << (TFT_D4-MASK_OFFSET)) | (1 << (TFT_D5-MASK_OFFSET)) | (1 << (TFT_D6-MASK_OFFSET)) | (1 << (TFT_D7-MASK_OFFSET))) diff --git a/platformio.ini b/platformio.ini index b039650..ef7a08f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,7 +10,7 @@ [platformio] globallib_dir = lib -default_envs = ESP32-2432S028R ;NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R +default_envs = esp32cam, ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R [env:NerminerV2] platform = espressif32 @@ -23,13 +23,11 @@ monitor_filters = board_build.arduino.memory_type = qio_opi monitor_speed = 115200 upload_speed = 115200 - # 2 x 4.5MB app, 6.875MB SPIFFS ;board_build.partitions = large_spiffs_16MB.csv ;board_build.partitions = default_8MB.csv board_build.partitions = huge_app.csv ;board_build.partitions = default.csv - build_flags = -D LV_LVGL_H_INCLUDE_SIMPLE -D BOARD_HAS_PSRAM @@ -45,7 +43,6 @@ lib_deps = arduino-libraries/NTPClient ;https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 - [env:ESP32-devKitv1] platform = espressif32 board = esp32dev @@ -57,10 +54,8 @@ monitor_filters = ;board_build.arduino.memory_type = qio_opi monitor_speed = 115200 upload_speed = 115200 - # 2 x 4.5MB app, 6.875MB SPIFFS board_build.partitions = huge_app.csv - build_flags = -D DEVKITV1=1 ;-D DEBUG_MINING=1 @@ -71,7 +66,6 @@ lib_deps = mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient - [env:TTGO-T-Display] platform = espressif32 board = esp32dev ;esp-wrover-kit @@ -83,11 +77,8 @@ monitor_filters = board_build.arduino.memory_type = qio_opi monitor_speed = 115200 upload_speed = 115200 - - # 2 x 4.5MB app, 6.875MB SPIFFS board_build.partitions = huge_app.csv - build_flags = ;-D DEBUG_MINING=1 -D TDISPLAY=1 @@ -103,9 +94,7 @@ lib_deps = platform = espressif32 board = lilygo-t-amoled framework = arduino - board_build.partitions = huge_app.csv - build_flags = -DNERMINER_S3_AMOLED -DBOARD_HAS_PSRAM @@ -122,9 +111,7 @@ lib_deps = platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino - board_build.partitions = huge_app.csv - build_flags = -DNERMINER_S3_DONGLE -DBOARD_HAS_PSRAM @@ -135,8 +122,31 @@ lib_deps = https://github.com/tzapu/WiFiManager.git mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient - https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 https://github.com/FastLED/FastLED + ;https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 + +[env:esp32cam] +platform = espressif32 ;(ESP32-D0WD-V3) +board = esp32cam +framework = arduino +monitor_filters = + esp32_exception_decoder + time + log2file +monitor_speed = 115200 +upload_speed = 921600 +board_build.partitions = huge_app.csv +build_flags = + -D ESP32_CAM + -D MONITOR_SPEED=${this.monitor_speed} +lib_deps = + ;https://github.com/takkaO/OpenFontRender + bblanchon/ArduinoJson@^6.21.2 + https://github.com/tzapu/WiFiManager.git + mathertel/OneButton @ ^2.0.3 + arduino-libraries/NTPClient +lib_ignore = + TFT_eSPI [env:NerminerV2-T-QT] platform = espressif32 diff --git a/src/NerdMinerV2.ino.cpp b/src/NerdMinerV2.ino.cpp index 94e802f..9904d15 100644 --- a/src/NerdMinerV2.ino.cpp +++ b/src/NerdMinerV2.ino.cpp @@ -10,7 +10,7 @@ #include "wManager.h" #include "mining.h" #include "monitor.h" -#include "drivers/display.h" +#include "drivers/displays/display.h" //3 seconds WDT #define WDT_TIMEOUT 3 @@ -38,7 +38,12 @@ const char* ntpServer = "pool.ntp.org"; /********* INIT *****/ void setup() { - Serial.begin(115200); +#ifdef MONITOR_SPEED + Serial.begin(MONITOR_SPEED); +#else + Serial.begin(115200); +#endif //MONITOR_SPEED + Serial.setTimeout(0); delay(100); @@ -52,7 +57,8 @@ void setup() button1.setPressTicks(5000); button1.attachClick(switchToNextScreen); button1.attachDoubleClick(alternateScreenRotation); - button1.attachLongPressStart(reset_configurations); + button1.attachLongPressStart(reset_configuration); + button1.attachMultiClick(alternateScreenState); #endif #if defined(PIN_BUTTON_1) && defined(PIN_BUTTON_2) //Button 1 of two button device @@ -64,7 +70,7 @@ void setup() #if defined(PIN_BUTTON_2) //Button 2 of two button device button2.setPressTicks(5000); button2.attachClick(switchToNextScreen); - button2.attachLongPressStart(reset_configurations); + button2.attachLongPressStart(reset_configuration); #endif /******** INIT NERDMINER ************/ diff --git a/src/drivers/devices/device.h b/src/drivers/devices/device.h new file mode 100644 index 0000000..7d8ba51 --- /dev/null +++ b/src/drivers/devices/device.h @@ -0,0 +1,27 @@ +#ifndef __DEVICE_H__ +#define __DEVICE_H__ + +#if defined(NERDMINERV2) +#include "nerdMinerV2.h" +#elif defined(DEVKITV1) +#include "esp32DevKit.h" +#elif defined(TDISPLAY) +#include "lilygoS3TDisplay.h" +#elif defined(NERMINER_S3_AMOLED) +#include "lilygoS3Amoled.h" +#elif defined(NERMINER_S3_DONGLE) +#include "lilygoS3Dongle.h" +#elif defined(ESP32_2432S028R) +#include "esp322432s028r.h" +#elif defined(NERMINER_T_QT) +#include "lilygoT_QT.h" +#elif defined(NERDMINER_T_DISPLAY_V1) +#include "lilygoV1TDisplay.h" +#elif defined(ESP32_CAM) +#include "esp32CAM.h" + +#else +#error "No device defined" +#endif + +#endif // __DEVICE_H__ \ No newline at end of file diff --git a/src/drivers/devices/esp32CAM.h b/src/drivers/devices/esp32CAM.h new file mode 100644 index 0000000..54d7460 --- /dev/null +++ b/src/drivers/devices/esp32CAM.h @@ -0,0 +1,18 @@ +#ifndef _ESP32CAM_H_ +#define _ESP32CAM_H_ + +#define PIN_BUTTON_1 0 +#define LED_PIN 33 + +#define NO_DISPLAY + +// SDMMC interface: 1-bit mode (might cause issues): +#define SDMMC_CLK 14 +#define SDMMC_CMD 15 +#define SDMMC_D0 2 +// additional defines to enable 4-bit mode +#define SDMMC_D1 4 +#define SDMMC_D2 12 +#define SDMMC_D3 13 + +#endif // _ESP32_CAM_H_ diff --git a/src/drivers/displays/amoledDisplayDriver.cpp b/src/drivers/displays/amoledDisplayDriver.cpp index c0eae8b..4abc576 100644 --- a/src/drivers/displays/amoledDisplayDriver.cpp +++ b/src/drivers/displays/amoledDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef AMOLED_DISPLAY diff --git a/src/drivers/display.cpp b/src/drivers/displays/display.cpp similarity index 100% rename from src/drivers/display.cpp rename to src/drivers/displays/display.cpp diff --git a/src/drivers/display.h b/src/drivers/displays/display.h similarity index 94% rename from src/drivers/display.h rename to src/drivers/displays/display.h index 331ea95..2a4a469 100644 --- a/src/drivers/display.h +++ b/src/drivers/displays/display.h @@ -1,7 +1,7 @@ #ifndef DISPLAY_H #define DISPLAY_H -#include "drivers.h" +#include "DisplayDriver.h" extern DisplayDriver *currentDisplayDriver; diff --git a/src/drivers/drivers.h b/src/drivers/displays/displayDriver.h similarity index 73% rename from src/drivers/drivers.h rename to src/drivers/displays/displayDriver.h index 9897db0..939b00c 100644 --- a/src/drivers/drivers.h +++ b/src/drivers/displays/displayDriver.h @@ -1,26 +1,7 @@ -#ifndef DRIVERS_H -#define DRIVERS_H +#ifndef DISPLAYDRIVER_H_ +#define DISPLAYDRIVER_H_ -#if defined(NERDMINERV2) -#include "devices/nerdMinerV2.h" -#elif defined(DEVKITV1) -#include "devices/esp32DevKit.h" -#elif defined(TDISPLAY) -#include "devices/lilygoS3TDisplay.h" -#elif defined(NERMINER_S3_AMOLED) -#include "devices/lilygoS3Amoled.h" -#elif defined(NERMINER_S3_DONGLE) -#include "devices/lilygoS3Dongle.h" -#elif defined(ESP32_2432S028R) -#include "devices/esp322432s028r.h" -#elif defined(NERMINER_T_QT) -#include "devices/lilygoT_QT.h" -#elif defined(NERDMINER_T_DISPLAY_V1) -#include "devices/lilygoV1TDisplay.h" - -#else -#error "No device defined" -#endif +#include "..\devices\device.h" typedef void (*AlternateFunction)(void); typedef void (*DriverInitFunction)(void); @@ -57,4 +38,4 @@ extern DisplayDriver tDisplayV1Driver; #define SCREENS_ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) -#endif // DRIVERS_H +#endif // DISPLAYDRIVER_H_ diff --git a/src/drivers/displays/dongleDisplayDriver.cpp b/src/drivers/displays/dongleDisplayDriver.cpp index 2ba6356..f6b4fe0 100644 --- a/src/drivers/displays/dongleDisplayDriver.cpp +++ b/src/drivers/displays/dongleDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef DONGLE_DISPLAY @@ -45,15 +45,15 @@ extern monitor_data mMonitor; int32_t x = 8, y = 8; \ background.setTextSize(1); \ background.setTextFont(FONT2); \ - \ + \ background.setTextColor(KEY_COLOR); \ - \ + \ render.setFontSize(18); #define CLEAR_SCREEN() \ RESET_SCREEN(); \ background.fillRect(0, 0, BUFFER_WIDTH, BUFFER_HEIGHT, BACK_COLOR); \ - \ + \ #define PRINT_STR(str) \ diff --git a/src/drivers/displays/esp23_2432s028r.cpp b/src/drivers/displays/esp23_2432s028r.cpp index 7788014..daef827 100644 --- a/src/drivers/displays/esp23_2432s028r.cpp +++ b/src/drivers/displays/esp23_2432s028r.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef ESP32_2432S028R diff --git a/src/drivers/displays/noDisplayDriver.cpp b/src/drivers/displays/noDisplayDriver.cpp index 23a74bd..636cf81 100644 --- a/src/drivers/displays/noDisplayDriver.cpp +++ b/src/drivers/displays/noDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef NO_DISPLAY diff --git a/src/drivers/displays/tDisplayDriver.cpp b/src/drivers/displays/tDisplayDriver.cpp index 6eb454b..76eede4 100644 --- a/src/drivers/displays/tDisplayDriver.cpp +++ b/src/drivers/displays/tDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef T_DISPLAY diff --git a/src/drivers/displays/tDisplayV1Driver.cpp b/src/drivers/displays/tDisplayV1Driver.cpp index ac05290..93b8f76 100644 --- a/src/drivers/displays/tDisplayV1Driver.cpp +++ b/src/drivers/displays/tDisplayV1Driver.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef V1_DISPLAY diff --git a/src/drivers/displays/t_qtDisplayDriver.cpp b/src/drivers/displays/t_qtDisplayDriver.cpp index c5ddadc..f632cae 100644 --- a/src/drivers/displays/t_qtDisplayDriver.cpp +++ b/src/drivers/displays/t_qtDisplayDriver.cpp @@ -1,4 +1,4 @@ -#include "../drivers.h" +#include "DisplayDriver.h" #ifdef T_QT_DISPLAY diff --git a/src/drivers/storage/SDCard.cpp b/src/drivers/storage/SDCard.cpp new file mode 100644 index 0000000..fe06bde --- /dev/null +++ b/src/drivers/storage/SDCard.cpp @@ -0,0 +1,157 @@ + +#include +#include +#include + +#include "storage.h" +#include "nvMemory.h" +#include "..\devices\device.h" +#include "SDCard.h" + +#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) + +#include + +SDCard::SDCard() +{ +#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) + iSD_ = &SD_MMC; +#elif defined (BUILD_SDSPI) +#error You chose to run the sd card in SPI mode. This is not implemented yet. +#endif +} + +SDCard::~SDCard() +{ + unmount(); +} + +void SDCard::SD2nvMemory(nvMemory* nvMem) +{ + TSettings Settings; + if (loadConfigFile(&Settings)) + { + nvMem->saveConfig(&Settings); + WiFi.begin(Settings.WifiSSID, Settings.WifiPW); + Serial.println("SDCard: Settings transfered to internal memory. Restarting now."); + ESP.restart(); + } +} + +bool SDCard::loadConfigFile(TSettings* Settings) +{ + // Load existing configuration file + // Read configuration from FS json + + if (initSDcard()) + { + if (iSD_->exists(JSON_CONFIG_FILE)) + { + // The file exists, reading and loading + File configFile = iSD_->open(JSON_CONFIG_FILE, "r"); + if (configFile) + { + StaticJsonDocument<512> json; + DeserializationError error = deserializeJson(json, configFile); + configFile.close(); + Serial.println("SDCard: Loading config file"); + serializeJsonPretty(json, Serial); + Serial.print('\n'); + unmount(); + if (!error) + { + strcpy(Settings->WifiSSID, json[JSON_KEY_SSID] | Settings->WifiSSID); + strcpy(Settings->WifiPW, json[JSON_KEY_PASW] | Settings->WifiPW); + strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); + strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); + if (json.containsKey(JSON_KEY_POOLPORT)) + Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); + if (json.containsKey(JSON_KEY_TIMEZONE)) + Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); + if (json.containsKey(JSON_KEY_STATS2NV)) + Settings->saveStats = json[JSON_KEY_STATS2NV].as(); + return true; + } + else + { + // Error loading JSON data + Serial.println("SDCard: Error parsing config file!"); + } + } + else + { + Serial.println("SDCard: Error opening config file!"); + } + } + else + { + Serial.println("SDCard: No config file available!"); + } + unmount(); + } + return false; +} + +void SDCard::unmount() +{ + iSD_->end(); + Serial.println("SDCard: Unmounted"); +} + +bool SDCard::initSDcard() +{ + if (iSD_->cardType() != CARD_NONE) + { + Serial.println("SDCard: Already mounted."); + return true; + } + Serial.println("SDCard: Mounting card."); + + bool cardInitialized = false; +#if defined (BUILD_SDMMC_4) + if (iSD_->cardType() == CARD_NONE) + { + iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); + Serial.println("SDCard: 4-Bit Mode."); + cardInitialized = iSD_->begin("/sd", false); + } +#elif defined (BUILD_SDMMC_1) + #warning SDMMC : 1 - bit mode is not always working.If you experience issues, try other modes. + if (iSD_->cardType() == CARD_NONE) + { + iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); + Serial.println("SDCard: 1-Bit Mode."); + cardInitialized = iSD_->begin("/sd", true); + } +#elif defined (BUILD_SDSPI) +#error You chose to run the sd card in SPI mode. This is not implemented yet. +#else + Serial.println("SDCard: interface not available."); + return false; +#endif // dataPinsDefined + if (cardInitialized) + { + if (iSD_->cardType() != CARD_NONE) + { + Serial.println("SDCard: Mounted."); + return true; + } + else + { + Serial.println("SDCard: Mounting failed."); + iSD_->end(); + } + } + return false; +} + +#else + +SDCard::SDCard() {} +SDCard::~SDCard() {} +void SDCard::SD2nvMemory(nvMemory* nvMem) {}; +bool SDCard::loadConfigFile(TSettings* Settings) { return false; } +bool SDCard::initSDcard() { return false; } +void unmount() {} + +#endif //BUILD_SDMMC \ No newline at end of file diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h new file mode 100644 index 0000000..b2e91f5 --- /dev/null +++ b/src/drivers/storage/SDCard.h @@ -0,0 +1,38 @@ +#ifndef _SDCARD_H_ +#define _SDCARD_H_ + +#include "storage.h" +#include "nvMemory.h" +#include "..\devices\device.h" + +#if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) +#define BUILD_SDMMC_4 +#include +#elif defined (SDMMC_D0) && !(defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3)) +#define BUILD_SDMMC_1 +#include +#else +#warning SD card support disabled! +#endif + +// Handles the transfer of settings from sd card to nv memory (wifi credentials are handled by wifimanager) +class SDCard +{ +public: + SDCard(); + ~SDCard(); + void SD2nvMemory(nvMemory* nvMem); + bool loadConfigFile(TSettings* Settings); +private: + bool initSDcard(); + void unmount(); + +#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) + fs::SDMMCFS* iSD_; +#elif defined (BUILD_SDSPI) +#error You chose to run the SD card in SPI mode. This is not implemented yet. + fs::SDFS* iSD_; +#endif +}; + +#endif // _SDCARD_H_ diff --git a/src/drivers/storage/nvMemory.cpp b/src/drivers/storage/nvMemory.cpp new file mode 100644 index 0000000..a686589 --- /dev/null +++ b/src/drivers/storage/nvMemory.cpp @@ -0,0 +1,148 @@ +#include "nvMemory.h" + +#ifdef NVMEM_SPIFFS + +#include +#include +#include + +#include "..\devices\device.h" +#include "storage.h" + +nvMemory::nvMemory() +{ + Initialized_ = false; +} + +nvMemory::~nvMemory() +{ + if (Initialized_) + SPIFFS.end(); +}; + +bool nvMemory::saveConfig(TSettings* Settings) +{ + if (init()) + { + // Save Config in JSON format + Serial.println(F("SPIFS: Saving configuration.")); + + // Create a JSON document + StaticJsonDocument<512> json; + json[JSON_KEY_POOLURL] = Settings->PoolAddress; + json[JSON_KEY_POOLPORT] = Settings->PoolPort; + json[JSON_KEY_WALLETID] = Settings->BtcWallet; + json[JSON_KEY_TIMEZONE] = Settings->Timezone; + json[JSON_KEY_STATS2NV] = Settings->saveStats; + + // Open config file + File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); + if (!configFile) + { + // Error, file did not open + Serial.println("SPIFS: Failed to open config file for writing"); + return false; + } + + // Serialize JSON data to write to file + serializeJsonPretty(json, Serial); + Serial.print('\n'); + if (serializeJson(json, configFile) == 0) + { + // Error writing file + Serial.println(F("SPIFS: Failed to write to file")); + return false; + } + // Close file + configFile.close(); + return true; + }; + return false; +} + +bool nvMemory::loadConfig(TSettings* Settings) +{ + // Uncomment if we need to format filesystem + // SPIFFS.format(); + + // Load existing configuration file + // Read configuration from FS json + + if (init()) + { + if (SPIFFS.exists(JSON_CONFIG_FILE)) + { + // The file exists, reading and loading + File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); + if (configFile) + { + Serial.println("SPIFS: Loading config file"); + StaticJsonDocument<512> json; + DeserializationError error = deserializeJson(json, configFile); + configFile.close(); + serializeJsonPretty(json, Serial); + Serial.print('\n'); + if (!error) + { + strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); + strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); + if (json.containsKey(JSON_KEY_POOLPORT)) + Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); + if (json.containsKey(JSON_KEY_TIMEZONE)) + Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); + if (json.containsKey(JSON_KEY_STATS2NV)) + Settings->saveStats = json[JSON_KEY_STATS2NV].as(); + return true; + } + else + { + // Error loading JSON data + Serial.println("SPIFS: Error parsing config file!"); + } + } + else + { + Serial.println("SPIFS: Error opening config file!"); + } + } + else + { + Serial.println("SPIFS: No config file available!"); + } + } + return false; +} + +bool nvMemory::deleteConfig() +{ + Serial.println("SPIFS: Erasing config file.."); + return SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero +} + +bool nvMemory::init() +{ + if (!Initialized_) + { + Serial.println("SPIFS: Mounting File System..."); + // May need to make it begin(true) first time you are using SPIFFS + Initialized_ = SPIFFS.begin(false) || SPIFFS.begin(true); + Initialized_ ? Serial.println("SPIFS: Mounted") : Serial.println("SPIFS: Mounting failed."); + } + else + { + Serial.println("SPIFS: Already Mounted"); + } + return Initialized_; +}; + +#else + +nvMemory::nvMemory() {} +nvMemory::~nvMemory() {} +bool nvMemory::saveConfig(TSettings* Settings) { return false; } +bool nvMemory::loadConfig(TSettings* Settings) { return false; } +bool nvMemory::deleteConfig() { return false; } +bool nvMemory::init() { return false; } + + +#endif //NVMEM_TYPE \ No newline at end of file diff --git a/src/drivers/storage/nvMemory.h b/src/drivers/storage/nvMemory.h new file mode 100644 index 0000000..163431c --- /dev/null +++ b/src/drivers/storage/nvMemory.h @@ -0,0 +1,30 @@ +#ifndef _NVMEMORY_H_ +#define _NVMEMORY_H_ + +// we only have one implementation right now and nothing to choose from. +#define NVMEM_SPIFFS + +#include "..\devices\device.h" +#include "storage.h" + +// Handles load and store of user settings, except wifi credentials. Those are managed by the wifimanager. +class nvMemory +{ +public: + nvMemory(); + ~nvMemory(); + bool saveConfig(TSettings* Settings); + bool loadConfig(TSettings* Settings); + bool deleteConfig(); +private: + bool init(); + bool Initialized_; +}; + +#ifdef NVMEM_SPIFFS +#define ESP_DRD_USE_SPIFFS true +#else +#error We need some kind of permanent storage implementation! +#endif //NVMEM_TYPE + +#endif // _NVMEMORY_H_ diff --git a/src/drivers/storage/storage.h b/src/drivers/storage/storage.h new file mode 100644 index 0000000..8aa0668 --- /dev/null +++ b/src/drivers/storage/storage.h @@ -0,0 +1,35 @@ +#ifndef _STORAGE_H_ +#define _STORAGE_H_ + +#include + +#define DEFAULT_SSID "NerdMinerAP" +#define DEFAULT_WIFIPW "MineYourCoins" +#define DEFAULT_POOLURL "public-pool.io" +#define DEFAULT_WALLETID "yourBtcAddress" +#define DEFAULT_POOLPORT 21496 +#define DEFAULT_TIMEZONE 2 +#define DEFAULT_SAVESTATS false + +// JSON config file +#define JSON_CONFIG_FILE "/config.json" +#define JSON_KEY_SSID "SSID" +#define JSON_KEY_PASW "PW" +#define JSON_KEY_POOLURL "PoolUrl" +#define JSON_KEY_WALLETID "BtcWallet" +#define JSON_KEY_POOLPORT "PoolPort" +#define JSON_KEY_TIMEZONE "Timezone" +#define JSON_KEY_STATS2NV "saveStats" + +struct TSettings +{ + char WifiSSID[80]{ DEFAULT_SSID }; + char WifiPW[80]{ DEFAULT_WIFIPW }; + char PoolAddress[80]{ DEFAULT_POOLURL }; + char BtcWallet[80]{ DEFAULT_WALLETID }; + uint32_t PoolPort{ DEFAULT_POOLPORT }; + uint32_t Timezone{ DEFAULT_TIMEZONE }; + bool saveStats{ DEFAULT_SAVESTATS }; +}; + +#endif // _STORAGE_H_ \ No newline at end of file diff --git a/src/mining.cpp b/src/mining.cpp index 9bf3fce..d6f5694 100644 --- a/src/mining.cpp +++ b/src/mining.cpp @@ -10,7 +10,8 @@ #include "mining.h" #include "utils.h" #include "monitor.h" -#include "drivers/display.h" +#include "drivers/displays/display.h" +#include "drivers/storage/storage.h" nvs_handle_t stat_handle; @@ -28,11 +29,10 @@ uint32_t valids; // increased if blockhash <= target double best_diff = 0.0; // Variables to hold data from custom textboxes -extern char poolString[80]; -extern int portNumber; -extern char btcString[80]; +//Track mining stats in non volatile memory +extern TSettings Settings; + IPAddress serverIP(1, 1, 1, 1); //Temporally save poolIPaddres -extern bool saveStatsToNVS; //Track mining stats in non volatile memory //Global work data static WiFiClient client; @@ -59,14 +59,14 @@ bool checkPoolConnection(void) { //Resolve first time pool DNS and save IP if(serverIP == IPAddress(1,1,1,1)) { - WiFi.hostByName(poolString, serverIP); + WiFi.hostByName(Settings.PoolAddress, serverIP); Serial.printf("Resolved DNS and save ip (first time) got: %s\n", serverIP.toString()); } //Try connecting pool IP - if (!client.connect(serverIP, portNumber)) { - Serial.println("Imposible to connect to : " + String(poolString)); - WiFi.hostByName(poolString, serverIP); + if (!client.connect(serverIP, Settings.PoolPort)) { + Serial.println("Imposible to connect to : " + String(Settings.PoolAddress)); + WiFi.hostByName(Settings.PoolAddress, serverIP); Serial.printf("Resolved DNS got: %s\n", serverIP.toString()); vTaskDelay(1000 / portTICK_PERIOD_MS); return false; @@ -166,7 +166,7 @@ void runStratumWorker(void *name) { continue; } - strcpy(mWorker.wName, btcString); + strcpy(mWorker.wName, Settings.BtcWallet); strcpy(mWorker.wPass, "x"); // STEP 2: Pool authorize work (Block Info) tx_mining_auth(client, mWorker.wName, mWorker.wPass); //Don't verifies authoritzation, TODO @@ -386,7 +386,7 @@ void runMiner(void * task_id) { #define REDRAW_EVERY 10 void restoreStat() { - if(!saveStatsToNVS) return; + if(!Settings.saveStats) return; esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { Serial.printf("[MONITOR] NVS partition is full or has invalid version, erasing...\n"); @@ -405,7 +405,7 @@ void restoreStat() { } void saveStat() { - if(!saveStatsToNVS) return; + if(!Settings.saveStats) return; Serial.printf("[MONITOR] Saving stats\n"); nvs_set_blob(stat_handle, "best_diff", &best_diff, sizeof(double)); nvs_set_u32(stat_handle, "Mhashes", Mhashes); @@ -447,8 +447,8 @@ void runMonitor(void *name) if (elapsedKHs == 0) { Serial.printf(">>> [i] Miner: newJob>%s / inRun>%s) - Client: connected>%s / subscribed>%s / wificonnected>%s\n", - mMiner.newJob ? "true" : "false", mMiner.inRun ? "true" : "false", - client.connected() ? "true" : "false", isMinerSuscribed ? "true" : "false", WiFi.status() == WL_CONNECTED ? "true" : "false"); + mMiner.newJob ? "true" : "false", mMiner.inRun ? "true" : "false", + client.connected() ? "true" : "false", isMinerSuscribed ? "true" : "false", WiFi.status() == WL_CONNECTED ? "true" : "false"); } #ifdef DEBUG_MEMORY diff --git a/src/monitor.cpp b/src/monitor.cpp index 27753cd..56f1368 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -7,8 +7,8 @@ #include "mining.h" #include "utils.h" #include "monitor.h" +#include "drivers/storage/storage.h" -extern char poolString[80]; extern uint32_t templates; extern uint32_t hashes; extern uint32_t Mhashes; @@ -23,7 +23,8 @@ extern double best_diff; // track best diff extern monitor_data mMonitor; -extern int GMTzone; //Gotten from saved config +//from saved config +extern TSettings Settings; WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 3600, 60000); @@ -39,7 +40,7 @@ void setup_monitor(void){ // Adjust offset depending on your zone // GMT +2 in seconds (zona horaria de Europa Central) - timeClient.setTimeOffset(3600 * GMTzone); + timeClient.setTimeOffset(3600 * Settings.Timezone); Serial.println("TimeClient setup done"); } @@ -171,7 +172,6 @@ unsigned long mTriggerUpdate = 0; unsigned long initialMillis = millis(); unsigned long initialTime = 0; unsigned long mPoolUpdate = 0; -extern char btcString[80]; void getTime(unsigned long* currentHours, unsigned long* currentMinutes, unsigned long* currentSeconds){ @@ -296,7 +296,7 @@ pool_data getPoolData(void){ HTTPClient http; http.setReuse(true); try { - String btcWallet = btcString; + String btcWallet = Settings.BtcWallet; Serial.println(btcWallet); if (btcWallet.indexOf(".")>0) btcWallet = btcWallet.substring(0,btcWallet.indexOf(".")); http.begin(String(getPublicPool)+btcWallet); diff --git a/src/wManager.cpp b/src/wManager.cpp index 1e94ae4..93afff4 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -1,221 +1,148 @@ -#define ESP_DRD_USE_SPIFFS true // Include Libraries //#include ".h" #include -#include -#include #include -#include + #include "wManager.h" #include "monitor.h" -#include "drivers/display.h" +#include "drivers/displays/display.h" +#include "drivers/storage/SDCard.h" +#include "drivers/storage/nvMemory.h" +#include "drivers/storage/storage.h" -// JSON configuration file -#define JSON_CONFIG_FILE "/config.json" // Flag for saving data bool shouldSaveConfig = false; // Variables to hold data from custom textboxes -char poolString[80] = "public-pool.io"; -int portNumber = 21496;//3333; -char btcString[80] = "yourBtcAddress"; -int GMTzone = 2; //Currently selected in spain -bool saveStatsToNVS = false; //Track mining stats in non volatile memory - +TSettings Settings; // Define WiFiManager Object WiFiManager wm; extern monitor_data mMonitor; -void saveConfigFile() -// Save Config in JSON format -{ - Serial.println(F("Saving configuration...")); - - // Create a JSON document - StaticJsonDocument<512> json; - json["poolString"] = poolString; - json["portNumber"] = portNumber; - json["btcString"] = btcString; - json["gmtZone"] = GMTzone; - json["saveStatsToNVS"] = String(saveStatsToNVS); - - // Open config file - File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); - if (!configFile) - { - // Error, file did not open - Serial.println("failed to open config file for writing"); - } - - // Serialize JSON data to write to file - serializeJsonPretty(json, Serial); - if (serializeJson(json, configFile) == 0) - { - // Error writing file - Serial.println(F("Failed to write to file")); - } - // Close file - configFile.close(); -} - -bool loadConfigFile() -// Load existing configuration file -{ - // Uncomment if we need to format filesystem - // SPIFFS.format(); - - // Read configuration from FS json - Serial.println("Mounting File System..."); - - // May need to make it begin(true) first time you are using SPIFFS - if (SPIFFS.begin(false) || SPIFFS.begin(true)) - { - Serial.println("mounted file system"); - if (SPIFFS.exists(JSON_CONFIG_FILE)) - { - // The file exists, reading and loading - Serial.println("reading config file"); - File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); - if (configFile) - { - Serial.println("Opened configuration file"); - StaticJsonDocument<512> json; - DeserializationError error = deserializeJson(json, configFile); - configFile.close(); - serializeJsonPretty(json, Serial); - if (!error) - { - Serial.println("Parsing JSON"); - - strcpy(poolString, json["poolString"]); - strcpy(btcString, json["btcString"]); - portNumber = json["portNumber"].as(); - GMTzone = json["gmtZone"].as(); - if(json.containsKey("saveStatsToNVS")) - saveStatsToNVS = json["saveStatsToNVS"].as(); - return true; - } - else - { - // Error loading JSON data - Serial.println("Failed to load json config"); - } - } - } - } - else - { - // Error mounting file system - Serial.println("Failed to mount FS"); - } - - return false; -} - +nvMemory nvMem; void saveConfigCallback() // Callback notifying us of the need to save configuration { - Serial.println("Should save config"); - shouldSaveConfig = true; - //wm.setConfigPortalBlocking(false); + Serial.println("Should save config"); + shouldSaveConfig = true; + //wm.setConfigPortalBlocking(false); } -void configModeCallback(WiFiManager *myWiFiManager) +void configModeCallback(WiFiManager* myWiFiManager) // Called when config mode launched { - Serial.println("Entered Configuration Mode"); + Serial.println("Entered Configuration Mode"); - Serial.print("Config SSID: "); - Serial.println(myWiFiManager->getConfigPortalSSID()); + Serial.print("Config SSID: "); + Serial.println(myWiFiManager->getConfigPortalSSID()); - Serial.print("Config IP Address: "); - Serial.println(WiFi.softAPIP()); + Serial.print("Config IP Address: "); + Serial.println(WiFi.softAPIP()); +} + +void reset_configuration() +{ + Serial.println("Erasing Config, restarting"); + nvMem.deleteConfig(); + wm.resetSettings(); + ESP.restart(); } void init_WifiManager() { - Serial.begin(115200); - //Serial.setTxTimeoutMs(10); +#ifdef MONITOR_SPEED + Serial.begin(MONITOR_SPEED); +#else + Serial.begin(115200); +#endif //MONITOR_SPEED + //Serial.setTxTimeoutMs(10); - //Init pin 15 to eneble 5V external power (LilyGo bug) - #ifdef PIN_ENABLE5V + //Init pin 15 to eneble 5V external power (LilyGo bug) +#ifdef PIN_ENABLE5V pinMode(PIN_ENABLE5V, OUTPUT); digitalWrite(PIN_ENABLE5V, HIGH); - #endif +#endif - // Change to true when testing to force configuration every time we run - bool forceConfig = false; + // Change to true when testing to force configuration every time we run + bool forceConfig = false; - #if defined(PIN_BUTTON_2) +#if defined(PIN_BUTTON_2) // Check if button2 is pressed to enter configMode with actual configuration - if(!digitalRead(PIN_BUTTON_2)){ - Serial.println(F("Button pressed to force start config mode")); - forceConfig = true; - wm.setBreakAfterConfig(true); //Set to detect config edition and save + if (!digitalRead(PIN_BUTTON_2)) { + Serial.println(F("Button pressed to force start config mode")); + forceConfig = true; + wm.setBreakAfterConfig(true); //Set to detect config edition and save } - #endif - - bool spiffsSetup = loadConfigFile(); - if (!spiffsSetup) - { - Serial.println(F("Forcing config mode as there is no saved config")); - forceConfig = true; - - } +#endif + // Explicitly set WiFi mode + WiFi.mode(WIFI_STA); - // Explicitly set WiFi mode - WiFi.mode(WIFI_STA); + if (!nvMem.loadConfig(&Settings)) + { + //No config file on internal flash. + SDCard SDCrd; + if (SDCrd.loadConfigFile(&Settings)) + { + //Config file on SD card. + SDCrd.SD2nvMemory(&nvMem); // reboot on success. + } + else + { + //No config file on SD card. Starting wifi config server. + forceConfig = true; + } + }; - // Reset settings (only for development) - //wm.resetSettings(); + // Reset settings (only for development) + //wm.resetSettings(); - //Set dark theme - //wm.setClass("invert"); // dark theme - - // Set config save notify callback - wm.setSaveConfigCallback(saveConfigCallback); + //Set dark theme + //wm.setClass("invert"); // dark theme - // Set callback that gets called when connecting to previous WiFi fails, and enters Access Point mode - wm.setAPCallback(configModeCallback); + // Set config save notify callback + wm.setSaveConfigCallback(saveConfigCallback); - //Advanced settings - wm.setConfigPortalBlocking(false); //Hacemos que el portal no bloquee el firmware - wm.setConnectTimeout(50); // how long to try to connect for before continuing - //wm.setConfigPortalTimeout(30); // auto close configportal after n seconds - // wm.setCaptivePortalEnable(false); // disable captive portal redirection - // wm.setAPClientCheck(true); // avoid timeout if client connected to softap - //wm.setTimeout(120); - //wm.setConfigPortalTimeout(120); //seconds - - // Custom elements + // Set callback that gets called when connecting to previous WiFi fails, and enters Access Point mode + wm.setAPCallback(configModeCallback); - // Text box (String) - 80 characters maximum - WiFiManagerParameter pool_text_box("Poolurl", "Pool url", poolString, 80); + //Advanced settings + wm.setConfigPortalBlocking(false); //Hacemos que el portal no bloquee el firmware + wm.setConnectTimeout(50); // how long to try to connect for before continuing + //wm.setConfigPortalTimeout(30); // auto close configportal after n seconds + // wm.setCaptivePortalEnable(false); // disable captive portal redirection + // wm.setAPClientCheck(true); // avoid timeout if client connected to softap + //wm.setTimeout(120); + //wm.setConfigPortalTimeout(120); //seconds - // Need to convert numerical input to string to display the default value. - char convertedValue[6]; - sprintf(convertedValue, "%d", portNumber); - - // Text box (Number) - 7 characters maximum - WiFiManagerParameter port_text_box_num("Poolport", "Pool port", convertedValue, 7); + // Custom elements - // Text box (String) - 80 characters maximum - WiFiManagerParameter addr_text_box("btcAddress", "Your BTC address", btcString, 80); + // Text box (String) - 80 characters maximum + WiFiManagerParameter pool_text_box("Poolurl", "Pool url", Settings.PoolAddress, 80); + + // Need to convert numerical input to string to display the default value. + char convertedValue[6]; + sprintf(convertedValue, "%d", Settings.PoolPort); + + // Text box (Number) - 7 characters maximum + WiFiManagerParameter port_text_box_num("Poolport", "Pool port", convertedValue, 7); + + // Text box (String) - 80 characters maximum + WiFiManagerParameter addr_text_box("btcAddress", "Your BTC address", Settings.BtcWallet, 80); // Text box (Number) - 2 characters maximum char charZone[6]; - sprintf(charZone, "%d", GMTzone); + sprintf(charZone, "%d", Settings.Timezone); WiFiManagerParameter time_text_box_num("TimeZone", "TimeZone fromUTC (-12/+12)", charZone, 3); WiFiManagerParameter features_html("

"); char checkboxParams[24] = "type=\"checkbox\""; - if (saveStatsToNVS) + if (Settings.saveStats) { strcat(checkboxParams, " checked"); } @@ -229,109 +156,103 @@ void init_WifiManager() wm.addParameter(&features_html); wm.addParameter(&save_stats_to_nvs); - Serial.println("AllDone: "); - if (forceConfig) - // Run if we need a configuration - { - //No configuramos timeout al modulo - wm.setConfigPortalBlocking(true); //Hacemos que el portal SI bloquee el firmware - drawSetupScreen(); - if (!wm.startConfigPortal("NerdMinerAP","MineYourCoins")) + Serial.println("AllDone: "); + if (forceConfig) { - Serial.println("failed to connect and hit timeout"); - //Could be break forced after edditing, so save new config - strncpy(poolString, pool_text_box.getValue(), sizeof(poolString)); - portNumber = atoi(port_text_box_num.getValue()); - strncpy(btcString, addr_text_box.getValue(), sizeof(btcString)); - GMTzone = atoi(time_text_box_num.getValue()); - saveStatsToNVS = (strncmp(save_stats_to_nvs.getValue(), "T", 1) == 0); - saveConfigFile(); - delay(3000); - //reset and try again, or maybe put it to deep sleep - ESP.restart(); - delay(5000); + // Run if we need a configuration + //No configuramos timeout al modulo + wm.setConfigPortalBlocking(true); //Hacemos que el portal SI bloquee el firmware + drawSetupScreen(); + + if (wm.startConfigPortal(DEFAULT_SSID, DEFAULT_WIFIPW)) + { + //Could be break forced after edditing, so save new config + Serial.println("failed to connect and hit timeout"); + strncpy(Settings.PoolAddress, pool_text_box.getValue(), sizeof(Settings.PoolAddress)); + Settings.PoolPort = atoi(port_text_box_num.getValue()); + strncpy(Settings.BtcWallet, addr_text_box.getValue(), sizeof(Settings.BtcWallet)); + Settings.Timezone = atoi(time_text_box_num.getValue()); + Serial.println(save_stats_to_nvs.getValue()); + Settings.saveStats = (strncmp(save_stats_to_nvs.getValue(), "T", 1) == 0); + + nvMem.saveConfig(&Settings); + delay(3000); + //reset and try again, or maybe put it to deep sleep + ESP.restart(); + delay(5000); + }; } - } - else - { - //Tratamos de conectar con la configuraciĆ³n inicial ya almacenada + else + { + //Tratamos de conectar con la configuraciĆ³n inicial ya almacenada + mMonitor.NerdStatus = NM_Connecting; + wm.setCaptivePortalEnable(false); // disable captive portal redirection + if (!wm.autoConnect(Settings.WifiSSID, Settings.WifiPW)) + { + Serial.println("Failed to connect and hit timeout"); + //delay(3000); + // if we still have not connected restart and try all over again + //ESP.restart(); + //delay(5000); + } + } + mMonitor.NerdStatus = NM_Connecting; - wm.setCaptivePortalEnable(false); // disable captive portal redirection - if (!wm.autoConnect("NerdMinerAP","MineYourCoins")) - { - Serial.println("Failed to connect and hit timeout"); - //delay(3000); - // if we still have not connected restart and try all over again - //ESP.restart(); - //delay(5000); + + //Conectado a la red Wifi + if (WiFi.status() == WL_CONNECTED) { + //tft.pushImage(0, 0, MinerWidth, MinerHeight, MinerScreen); + Serial.println(""); + Serial.println("WiFi connected"); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + + // Lets deal with the user config values + + // Copy the string value + strncpy(Settings.PoolAddress, pool_text_box.getValue(), sizeof(Settings.PoolAddress)); + Serial.print("PoolString: "); + Serial.println(Settings.PoolAddress); + + //Convert the number value + Settings.PoolPort = atoi(port_text_box_num.getValue()); + Serial.print("portNumber: "); + Serial.println(Settings.PoolPort); + + // Copy the string value + strncpy(Settings.BtcWallet, addr_text_box.getValue(), sizeof(Settings.BtcWallet)); + Serial.print("btcString: "); + Serial.println(Settings.BtcWallet); + + //Convert the number value + Settings.Timezone = atoi(time_text_box_num.getValue()); + Serial.print("TimeZone fromUTC: "); + Serial.println(Settings.Timezone); + } - } - mMonitor.NerdStatus = NM_Connecting; - - //Conectado a la red Wifi - if(WiFi.status() == WL_CONNECTED){ - //tft.pushImage(0, 0, MinerWidth, MinerHeight, MinerScreen); - Serial.println(""); - Serial.println("WiFi connected"); - Serial.print("IP address: "); - Serial.println(WiFi.localIP()); - - // Lets deal with the user config values - - // Copy the string value - strncpy(poolString, pool_text_box.getValue(), sizeof(poolString)); - Serial.print("PoolString: "); - Serial.println(poolString); - - //Convert the number value - portNumber = atoi(port_text_box_num.getValue()); - Serial.print("portNumber: "); - Serial.println(portNumber); - - // Copy the string value - strncpy(btcString, addr_text_box.getValue(), sizeof(btcString)); - Serial.print("btcString: "); - Serial.println(btcString); - - //Convert the number value - GMTzone = atoi(time_text_box_num.getValue()); - Serial.print("TimeZone fromUTC: "); - Serial.println(GMTzone); - } - - // Save the custom parameters to FS - if (shouldSaveConfig) - { - saveConfigFile(); - } + // Save the custom parameters to FS + if (shouldSaveConfig) + { + nvMem.saveConfig(&Settings); + } } -void reset_configurations() { - Serial.println("Erasing Config, restarting"); - wm.resetSettings(); - SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero - ESP.restart(); -} - - //----------------- MAIN PROCESS WIFI MANAGER -------------- int oldStatus = 0; void wifiManagerProcess() { - - wm.process(); // avoid delays() in loop when non-blocking and other long running code - - int newStatus = WiFi.status(); - if (newStatus != oldStatus) { - if (newStatus == WL_CONNECTED) { - Serial.println("CONNECTED - Current ip: " + WiFi.localIP().toString()); - } else { - Serial.print("[Error] - current status: "); - Serial.println(newStatus); + + wm.process(); // avoid delays() in loop when non-blocking and other long running code + + int newStatus = WiFi.status(); + if (newStatus != oldStatus) { + if (newStatus == WL_CONNECTED) { + Serial.println("CONNECTED - Current ip: " + WiFi.localIP().toString()); + } else { + Serial.print("[Error] - current status: "); + Serial.println(newStatus); + } + oldStatus = newStatus; } - oldStatus = newStatus; - } } - - diff --git a/src/wManager.h b/src/wManager.h index 870b435..ef2bd37 100644 --- a/src/wManager.h +++ b/src/wManager.h @@ -1,3 +1,8 @@ +#ifndef _WMANAGER_H +#define _WMANAGER_H + void init_WifiManager(); void wifiManagerProcess(); -void reset_configurations(); \ No newline at end of file +void reset_configuration(); + +#endif // _WMANAGER_H From 89287f43c9c5f4f1a67646633784f6018ceaaf5d Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Thu, 21 Sep 2023 17:41:21 +0200 Subject: [PATCH 49/68] bugfix, optimization --- src/drivers/storage/SDCard.cpp | 17 ++++++++--------- src/drivers/storage/SDCard.h | 2 +- src/drivers/storage/nvMemory.cpp | 2 +- src/drivers/storage/nvMemory.h | 4 +--- src/drivers/storage/storage.h | 12 ++++++------ src/mining.cpp | 6 +++--- src/wManager.cpp | 13 ++++++++----- 7 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/drivers/storage/SDCard.cpp b/src/drivers/storage/SDCard.cpp index fe06bde..d4bd273 100644 --- a/src/drivers/storage/SDCard.cpp +++ b/src/drivers/storage/SDCard.cpp @@ -26,13 +26,12 @@ SDCard::~SDCard() unmount(); } -void SDCard::SD2nvMemory(nvMemory* nvMem) +void SDCard::SD2nvMemory(nvMemory* nvMem, TSettings* Settings) { - TSettings Settings; - if (loadConfigFile(&Settings)) + if (loadConfigFile(Settings)) { - nvMem->saveConfig(&Settings); - WiFi.begin(Settings.WifiSSID, Settings.WifiPW); + nvMem->saveConfig(Settings); + WiFi.begin(Settings->WifiSSID, Settings->WifiPW); Serial.println("SDCard: Settings transfered to internal memory. Restarting now."); ESP.restart(); } @@ -60,9 +59,9 @@ bool SDCard::loadConfigFile(TSettings* Settings) unmount(); if (!error) { - strcpy(Settings->WifiSSID, json[JSON_KEY_SSID] | Settings->WifiSSID); - strcpy(Settings->WifiPW, json[JSON_KEY_PASW] | Settings->WifiPW); - strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); + Settings->WifiSSID = json[JSON_KEY_SSID] | Settings->WifiSSID; + Settings->WifiPW = json[JSON_KEY_PASW] | Settings->WifiPW; + Settings->PoolAddress = json[JSON_KEY_POOLURL] | Settings->PoolAddress; strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); if (json.containsKey(JSON_KEY_POOLPORT)) Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); @@ -149,7 +148,7 @@ bool SDCard::initSDcard() SDCard::SDCard() {} SDCard::~SDCard() {} -void SDCard::SD2nvMemory(nvMemory* nvMem) {}; +void SDCard::SD2nvMemory(nvMemory* nvMem, TSettings* Settings) {}; bool SDCard::loadConfigFile(TSettings* Settings) { return false; } bool SDCard::initSDcard() { return false; } void unmount() {} diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index b2e91f5..d1da16f 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -21,7 +21,7 @@ class SDCard public: SDCard(); ~SDCard(); - void SD2nvMemory(nvMemory* nvMem); + void SD2nvMemory(nvMemory* nvMem, TSettings* Settings); bool loadConfigFile(TSettings* Settings); private: bool initSDcard(); diff --git a/src/drivers/storage/nvMemory.cpp b/src/drivers/storage/nvMemory.cpp index a686589..0f737aa 100644 --- a/src/drivers/storage/nvMemory.cpp +++ b/src/drivers/storage/nvMemory.cpp @@ -84,7 +84,7 @@ bool nvMemory::loadConfig(TSettings* Settings) Serial.print('\n'); if (!error) { - strcpy(Settings->PoolAddress, json[JSON_KEY_POOLURL] | Settings->PoolAddress); + Settings->PoolAddress = json[JSON_KEY_POOLURL] | Settings->PoolAddress; strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); if (json.containsKey(JSON_KEY_POOLPORT)) Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); diff --git a/src/drivers/storage/nvMemory.h b/src/drivers/storage/nvMemory.h index 163431c..3b22c7e 100644 --- a/src/drivers/storage/nvMemory.h +++ b/src/drivers/storage/nvMemory.h @@ -21,9 +21,7 @@ private: bool Initialized_; }; -#ifdef NVMEM_SPIFFS -#define ESP_DRD_USE_SPIFFS true -#else +#ifndef NVMEM_SPIFFS #error We need some kind of permanent storage implementation! #endif //NVMEM_TYPE diff --git a/src/drivers/storage/storage.h b/src/drivers/storage/storage.h index 8aa0668..5da92e3 100644 --- a/src/drivers/storage/storage.h +++ b/src/drivers/storage/storage.h @@ -1,7 +1,7 @@ #ifndef _STORAGE_H_ #define _STORAGE_H_ -#include +#include #define DEFAULT_SSID "NerdMinerAP" #define DEFAULT_WIFIPW "MineYourCoins" @@ -23,12 +23,12 @@ struct TSettings { - char WifiSSID[80]{ DEFAULT_SSID }; - char WifiPW[80]{ DEFAULT_WIFIPW }; - char PoolAddress[80]{ DEFAULT_POOLURL }; + String WifiSSID{ DEFAULT_SSID }; + String WifiPW{ DEFAULT_WIFIPW }; + String PoolAddress{ DEFAULT_POOLURL }; char BtcWallet[80]{ DEFAULT_WALLETID }; - uint32_t PoolPort{ DEFAULT_POOLPORT }; - uint32_t Timezone{ DEFAULT_TIMEZONE }; + int PoolPort{ DEFAULT_POOLPORT }; + int Timezone{ DEFAULT_TIMEZONE }; bool saveStats{ DEFAULT_SAVESTATS }; }; diff --git a/src/mining.cpp b/src/mining.cpp index d6f5694..0b7dccb 100644 --- a/src/mining.cpp +++ b/src/mining.cpp @@ -59,14 +59,14 @@ bool checkPoolConnection(void) { //Resolve first time pool DNS and save IP if(serverIP == IPAddress(1,1,1,1)) { - WiFi.hostByName(Settings.PoolAddress, serverIP); + WiFi.hostByName(Settings.PoolAddress.c_str(), serverIP); Serial.printf("Resolved DNS and save ip (first time) got: %s\n", serverIP.toString()); } //Try connecting pool IP if (!client.connect(serverIP, Settings.PoolPort)) { - Serial.println("Imposible to connect to : " + String(Settings.PoolAddress)); - WiFi.hostByName(Settings.PoolAddress, serverIP); + Serial.println("Imposible to connect to : " + Settings.PoolAddress); + WiFi.hostByName(Settings.PoolAddress.c_str(), serverIP); Serial.printf("Resolved DNS got: %s\n", serverIP.toString()); vTaskDelay(1000 / portTICK_PERIOD_MS); return false; diff --git a/src/wManager.cpp b/src/wManager.cpp index 93afff4..bd89146 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -1,6 +1,8 @@ +#define ESP_DRD_USE_SPIFFS true // Include Libraries //#include ".h" + #include #include @@ -89,7 +91,7 @@ void init_WifiManager() if (SDCrd.loadConfigFile(&Settings)) { //Config file on SD card. - SDCrd.SD2nvMemory(&nvMem); // reboot on success. + SDCrd.SD2nvMemory(&nvMem, &Settings); // reboot on success. } else { @@ -122,7 +124,7 @@ void init_WifiManager() // Custom elements // Text box (String) - 80 characters maximum - WiFiManagerParameter pool_text_box("Poolurl", "Pool url", Settings.PoolAddress, 80); + WiFiManagerParameter pool_text_box("Poolurl", "Pool url", Settings.PoolAddress.c_str(), 80); // Need to convert numerical input to string to display the default value. char convertedValue[6]; @@ -168,7 +170,7 @@ void init_WifiManager() { //Could be break forced after edditing, so save new config Serial.println("failed to connect and hit timeout"); - strncpy(Settings.PoolAddress, pool_text_box.getValue(), sizeof(Settings.PoolAddress)); + Settings.PoolAddress = pool_text_box.getValue(); Settings.PoolPort = atoi(port_text_box_num.getValue()); strncpy(Settings.BtcWallet, addr_text_box.getValue(), sizeof(Settings.BtcWallet)); Settings.Timezone = atoi(time_text_box_num.getValue()); @@ -187,7 +189,7 @@ void init_WifiManager() //Tratamos de conectar con la configuraciĆ³n inicial ya almacenada mMonitor.NerdStatus = NM_Connecting; wm.setCaptivePortalEnable(false); // disable captive portal redirection - if (!wm.autoConnect(Settings.WifiSSID, Settings.WifiPW)) + if (!wm.autoConnect(Settings.WifiSSID.c_str(), Settings.WifiPW.c_str())) { Serial.println("Failed to connect and hit timeout"); //delay(3000); @@ -210,7 +212,8 @@ void init_WifiManager() // Lets deal with the user config values // Copy the string value - strncpy(Settings.PoolAddress, pool_text_box.getValue(), sizeof(Settings.PoolAddress)); + Settings.PoolAddress = pool_text_box.getValue(); + //strncpy(Settings.PoolAddress, pool_text_box.getValue(), sizeof(Settings.PoolAddress)); Serial.print("PoolString: "); Serial.println(Settings.PoolAddress); From 0f65433875a4164064da88f832f12b84e4c4a17c Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Wed, 20 Sep 2023 19:42:07 +0200 Subject: [PATCH 50/68] restore old keys in SPIFFS --- README.md | 4 ++-- src/drivers/storage/nvMemory.cpp | 26 +++++++++++++------------- src/drivers/storage/storage.h | 23 ++++++++++++++++++----- 3 files changed, 33 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index dd37a9c..53ad837 100644 --- a/README.md +++ b/README.md @@ -90,12 +90,12 @@ After programming, you will only need to setup your Wifi and BTC address. 1. Create a file named "config.json" in your card's root, containing the the following structure. Adjust the settings to your needs: { "SSID": "myWifiSSID", - "PW": "myWifiPassword", + "WifiPW": "myWifiPassword", "PoolUrl": "public-pool.io", "PoolPort": 21496, "BtcWallet": "walletID", "Timezone": 2, - "saveStats": false + "SaveStats": false } 1. Insert the SD card. 1. Hold down the "reset configurations" button as described below to reset the configurations and/or boot without settings in your nvmemory. diff --git a/src/drivers/storage/nvMemory.cpp b/src/drivers/storage/nvMemory.cpp index 0f737aa..cc5f997 100644 --- a/src/drivers/storage/nvMemory.cpp +++ b/src/drivers/storage/nvMemory.cpp @@ -29,11 +29,11 @@ bool nvMemory::saveConfig(TSettings* Settings) // Create a JSON document StaticJsonDocument<512> json; - json[JSON_KEY_POOLURL] = Settings->PoolAddress; - json[JSON_KEY_POOLPORT] = Settings->PoolPort; - json[JSON_KEY_WALLETID] = Settings->BtcWallet; - json[JSON_KEY_TIMEZONE] = Settings->Timezone; - json[JSON_KEY_STATS2NV] = Settings->saveStats; + json[JSON_SPIFFS_KEY_POOLURL] = Settings->PoolAddress; + json[JSON_SPIFFS_KEY_POOLPORT] = Settings->PoolPort; + json[JSON_SPIFFS_KEY_WALLETID] = Settings->BtcWallet; + json[JSON_SPIFFS_KEY_TIMEZONE] = Settings->Timezone; + json[JSON_SPIFFS_KEY_STATS2NV] = Settings->saveStats; // Open config file File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); @@ -84,14 +84,14 @@ bool nvMemory::loadConfig(TSettings* Settings) Serial.print('\n'); if (!error) { - Settings->PoolAddress = json[JSON_KEY_POOLURL] | Settings->PoolAddress; - strcpy(Settings->BtcWallet, json[JSON_KEY_WALLETID] | Settings->BtcWallet); - if (json.containsKey(JSON_KEY_POOLPORT)) - Settings->PoolPort = json[JSON_KEY_POOLPORT].as(); - if (json.containsKey(JSON_KEY_TIMEZONE)) - Settings->Timezone = json[JSON_KEY_TIMEZONE].as(); - if (json.containsKey(JSON_KEY_STATS2NV)) - Settings->saveStats = json[JSON_KEY_STATS2NV].as(); + Settings->PoolAddress = json[JSON_SPIFFS_KEY_POOLURL] | Settings->PoolAddress; + strcpy(Settings->BtcWallet, json[JSON_SPIFFS_KEY_WALLETID] | Settings->BtcWallet); + if (json.containsKey(JSON_SPIFFS_KEY_POOLPORT)) + Settings->PoolPort = json[JSON_SPIFFS_KEY_POOLPORT].as(); + if (json.containsKey(JSON_SPIFFS_KEY_TIMEZONE)) + Settings->Timezone = json[JSON_SPIFFS_KEY_TIMEZONE].as(); + if (json.containsKey(JSON_SPIFFS_KEY_STATS2NV)) + Settings->saveStats = json[JSON_SPIFFS_KEY_STATS2NV].as(); return true; } else diff --git a/src/drivers/storage/storage.h b/src/drivers/storage/storage.h index 5da92e3..76e80cd 100644 --- a/src/drivers/storage/storage.h +++ b/src/drivers/storage/storage.h @@ -3,6 +3,9 @@ #include +// config files + +// default settings #define DEFAULT_SSID "NerdMinerAP" #define DEFAULT_WIFIPW "MineYourCoins" #define DEFAULT_POOLURL "public-pool.io" @@ -11,16 +14,26 @@ #define DEFAULT_TIMEZONE 2 #define DEFAULT_SAVESTATS false -// JSON config file -#define JSON_CONFIG_FILE "/config.json" -#define JSON_KEY_SSID "SSID" -#define JSON_KEY_PASW "PW" +// JSON config files +#define JSON_CONFIG_FILE "/config.json" + +// JSON config file SD card (for user interaction, readme.md) +#define JSON_KEY_SSID "SSID" +#define JSON_KEY_PASW "WifiPW" #define JSON_KEY_POOLURL "PoolUrl" #define JSON_KEY_WALLETID "BtcWallet" #define JSON_KEY_POOLPORT "PoolPort" #define JSON_KEY_TIMEZONE "Timezone" -#define JSON_KEY_STATS2NV "saveStats" +#define JSON_KEY_STATS2NV "SaveStats" +// JSON config file SPIFFS (different for backward compatibility with existing devices) +#define JSON_SPIFFS_KEY_POOLURL "poolString" +#define JSON_SPIFFS_KEY_POOLPORT "portNumber" +#define JSON_SPIFFS_KEY_WALLETID "btcString" +#define JSON_SPIFFS_KEY_TIMEZONE "gmtZone" +#define JSON_SPIFFS_KEY_STATS2NV "saveStatsToNVS" + +// settings struct TSettings { String WifiSSID{ DEFAULT_SSID }; From 9e819923c8a9380a075b61976e05e4cc67e559d7 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Thu, 21 Sep 2023 17:02:15 +0200 Subject: [PATCH 51/68] add version (fix build error), improve readability --- platformio.ini | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/platformio.ini b/platformio.ini index a66d3a5..cf41920 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,6 +12,8 @@ globallib_dir = lib default_envs = esp32cam, ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R +;-------------------------------------------------------------------- + [env:NerminerV2] platform = espressif32 board = esp32-s3-devkitc-1 @@ -38,11 +40,13 @@ build_flags = lib_deps = https://github.com/takkaO/OpenFontRender bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient ;https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 +;-------------------------------------------------------------------- + [env:ESP32-devKitv1] platform = espressif32 board = esp32dev @@ -62,10 +66,12 @@ build_flags = lib_deps = https://github.com/takkaO/OpenFontRender bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient +;-------------------------------------------------------------------- + [env:TTGO-T-Display] platform = espressif32 board = esp32dev ;esp-wrover-kit @@ -85,11 +91,13 @@ build_flags = lib_deps = https://github.com/takkaO/OpenFontRender bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient ;https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 +;-------------------------------------------------------------------- + [env:NerminerV2-S3-AMOLED] platform = espressif32 board = lilygo-t-amoled @@ -102,11 +110,13 @@ build_flags = lib_deps = https://github.com/takkaO/OpenFontRender bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 +;-------------------------------------------------------------------- + [env:NerminerV2-S3-DONGLE] platform = espressif32 board = esp32-s3-devkitc-1 @@ -119,12 +129,14 @@ build_flags = lib_deps = https://github.com/takkaO/OpenFontRender bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient https://github.com/FastLED/FastLED ;https://github.com/golden-guy/Arduino_wolfssl.git#v5.5.4 +;-------------------------------------------------------------------- + [env:esp32cam] platform = espressif32 ;(ESP32-D0WD-V3) board = esp32cam @@ -136,18 +148,23 @@ monitor_filters = monitor_speed = 115200 upload_speed = 921600 board_build.partitions = huge_app.csv +board_build.arduino.memory_type = dio_qspi build_flags = -D ESP32_CAM + -D BOARD_HAS_PSRAM -D MONITOR_SPEED=${this.monitor_speed} + ;-D DEBUG_MINING + ;-D DEBUG_MEMORY lib_deps = - ;https://github.com/takkaO/OpenFontRender bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient lib_ignore = TFT_eSPI +;-------------------------------------------------------------------- + [env:NerminerV2-T-QT] platform = espressif32 board = esp32-s3-t-qt-pro @@ -167,10 +184,12 @@ build_flags = lib_deps = https://github.com/takkaO/OpenFontRender bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient - + +;-------------------------------------------------------------------- + [env:ESP32-2432S028R] platform = espressif32 board = esp32dev @@ -204,11 +223,13 @@ build_flags = lib_deps = https://github.com/takkaO/OpenFontRender bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient bodmer/TFT_eSPI @ ^2.5.31 +;-------------------------------------------------------------------- + [env:NerdminerV2-T-Display_V1] platform = espressif32 board = ttgo-lora32-v1 @@ -226,7 +247,6 @@ build_flags = lib_deps = https://github.com/takkaO/OpenFontRender bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 mathertel/OneButton @ ^2.0.3 https://github.com/arduino-libraries/NTPClient - From 71d539bc5c366feaa648a2356a50cb8b3e0bebcc Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Wed, 20 Sep 2023 20:12:05 +0200 Subject: [PATCH 52/68] debug_mem: print min free heap --- src/mining.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mining.cpp b/src/mining.cpp index 0b7dccb..f8ca70e 100644 --- a/src/mining.cpp +++ b/src/mining.cpp @@ -116,7 +116,7 @@ void runStratumWorker(void *name) { Serial.printf("\n[WORKER] Started. Running %s on core %d\n", (char *)name, xPortGetCoreID()); #ifdef DEBUG_MEMORY - Serial.printf("### [Total Heap / Free heap]: %d / %d \n", ESP.getHeapSize(), ESP.getFreeHeap()); + Serial.printf("### [Total Heap / Free heap / Min free heap]: %d / %d / %d \n", ESP.getHeapSize(), ESP.getFreeHeap(), ESP.getMinFreeHeap()); #endif // connect to pool @@ -452,7 +452,7 @@ void runMonitor(void *name) } #ifdef DEBUG_MEMORY - Serial.printf("### [Total Heap / Free heap]: %d / %d \n", ESP.getHeapSize(), ESP.getFreeHeap()); + Serial.printf("### [Total Heap / Free heap / Min free heap]: %d / %d / %d \n", ESP.getHeapSize(), ESP.getFreeHeap(), ESP.getMinFreeHeap()); Serial.printf("### Max stack usage: %d\n", uxTaskGetStackHighWaterMark(NULL)); #endif From 7c5ec51abbd32c1d3ee56f1ddcf2342f8fedc03e Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Thu, 21 Sep 2023 17:19:53 +0200 Subject: [PATCH 53/68] add spi access to sd card --- src/drivers/devices/esp32CAM.h | 20 ++++++++++++++++- src/drivers/storage/SDCard.cpp | 41 ++++++++++++++++++++++++---------- src/drivers/storage/SDCard.h | 23 ++++++++++++++++--- 3 files changed, 68 insertions(+), 16 deletions(-) diff --git a/src/drivers/devices/esp32CAM.h b/src/drivers/devices/esp32CAM.h index 54d7460..f58bd6d 100644 --- a/src/drivers/devices/esp32CAM.h +++ b/src/drivers/devices/esp32CAM.h @@ -6,7 +6,14 @@ #define NO_DISPLAY -// SDMMC interface: 1-bit mode (might cause issues): +// example how to configure SD card. +// if you would define everything, +// to select 1 bit mode, make sure SDMMC_D1-3 are undefined +// to use spi mode, make sure all SDMMC_x pins are undefined + +/* +// use SDMMC interface: +// 1-bit mode (might cause issues): #define SDMMC_CLK 14 #define SDMMC_CMD 15 #define SDMMC_D0 2 @@ -14,5 +21,16 @@ #define SDMMC_D1 4 #define SDMMC_D2 12 #define SDMMC_D3 13 +*/ + +// use SPI interface +// (default SPI unit provided by ) +// setup SPI pins. +#define SDSPI_CS 13 +// The following pins will be ignored, if a tft display is set up. (!defined NO_DISPLAY) +// check display settings to find the appropriate lines. +#define SDSPI_CLK 14 +#define SDSPI_MOSI 15 +#define SDSPI_MISO 2 #endif // _ESP32_CAM_H_ diff --git a/src/drivers/storage/SDCard.cpp b/src/drivers/storage/SDCard.cpp index d4bd273..e852bf0 100644 --- a/src/drivers/storage/SDCard.cpp +++ b/src/drivers/storage/SDCard.cpp @@ -9,16 +9,22 @@ #include "SDCard.h" #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) - #include +#elif defined (BUILD_SDSPI) +#include +#include +#endif // interface type + +#if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) || defined (BUILD_SDSPI) SDCard::SDCard() { #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) iSD_ = &SD_MMC; #elif defined (BUILD_SDSPI) -#error You chose to run the sd card in SPI mode. This is not implemented yet. -#endif + ispi_ = &SPI; + iSD_ = &SD; +#endif // interface type } SDCard::~SDCard() @@ -94,6 +100,9 @@ bool SDCard::loadConfigFile(TSettings* Settings) void SDCard::unmount() { iSD_->end(); +#ifdef BUILD_SDSPI_SETUP + ispi_->end(); +#endif // BUILD_SDSPI_SETUP Serial.println("SDCard: Unmounted"); } @@ -111,19 +120,27 @@ bool SDCard::initSDcard() if (iSD_->cardType() == CARD_NONE) { iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); - Serial.println("SDCard: 4-Bit Mode."); cardInitialized = iSD_->begin("/sd", false); + Serial.println("SDCard: 4-Bit Mode."); } #elif defined (BUILD_SDMMC_1) - #warning SDMMC : 1 - bit mode is not always working.If you experience issues, try other modes. - if (iSD_->cardType() == CARD_NONE) - { - iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); - Serial.println("SDCard: 1-Bit Mode."); - cardInitialized = iSD_->begin("/sd", true); - } + #warning SDMMC : 1 - bit mode is not always working. If you experience issues, try other modes. + if (iSD_->cardType() == CARD_NONE) + { + iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); + cardInitialized = iSD_->begin("/sd", true); + Serial.println("SDCard: 1-Bit Mode."); + } #elif defined (BUILD_SDSPI) -#error You chose to run the sd card in SPI mode. This is not implemented yet. + if (iSD_->cardType() == CARD_NONE) + { + #ifdef BUILD_SDSPI_SETUP + ispi_->end(); + ispi_->begin(SDSPI_CLK, SDSPI_MISO, SDSPI_MOSI, SDSPI_CS); + #endif //BUILD_SDSPI_SETUP + cardInitialized = iSD_->begin(SDSPI_CS, *ispi_); + Serial.println("SDCard: SPI mode."); + } #else Serial.println("SDCard: interface not available."); return false; diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index d1da16f..37d0bd4 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -5,14 +5,31 @@ #include "nvMemory.h" #include "..\devices\device.h" +// configuration example and description in /devices/esp32cam.h + +// select interface and options according to provided pins #if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) #define BUILD_SDMMC_4 +#undef BUILD_SDMMC_1 +#undef BUILD_SDSPI #include +#warning SD card support in 4-Bit mode enabled! #elif defined (SDMMC_D0) && !(defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3)) #define BUILD_SDMMC_1 +#undef BUILD_SDMMC_4 +#undef BUILD_SDSPI #include -#else -#warning SD card support disabled! +#warning SD card support in 1-Bit mode enabled! +#elif defined (SDSPI_CS) +#undef BUILD_SDMMC_1 +#undef BUILD_SDMMC_4 +#define BUILD_SDSPI +#if defined (SDSPI_CLK) && defined (SDSPI_MOSI) && defined (SDSPI_MISO) && defined (NO_DISPLAY) +#define BUILD_SDSPI_SETUP +#endif // SPIPINS +#include +#include +#warning SD card support in SPI mode enabled! #endif // Handles the transfer of settings from sd card to nv memory (wifi credentials are handled by wifimanager) @@ -30,7 +47,7 @@ private: #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) fs::SDMMCFS* iSD_; #elif defined (BUILD_SDSPI) -#error You chose to run the SD card in SPI mode. This is not implemented yet. + SPIClass* ispi_; fs::SDFS* iSD_; #endif }; From 45dacd4f7843f65a9e4af64eefcd007668fcb16c Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Thu, 21 Sep 2023 17:22:57 +0200 Subject: [PATCH 54/68] add documentation --- src/drivers/storage/SDCard.cpp | 6 ++++++ src/drivers/storage/nvMemory.cpp | 15 +++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/drivers/storage/SDCard.cpp b/src/drivers/storage/SDCard.cpp index e852bf0..48a5c73 100644 --- a/src/drivers/storage/SDCard.cpp +++ b/src/drivers/storage/SDCard.cpp @@ -32,6 +32,9 @@ SDCard::~SDCard() unmount(); } +/// @brief Transfer settings from config file on a SD card to the device. +/// @param nvMemory* where to save +/// @param TSettings* passing a struct is required, to save memory void SDCard::SD2nvMemory(nvMemory* nvMem, TSettings* Settings) { if (loadConfigFile(Settings)) @@ -43,6 +46,9 @@ void SDCard::SD2nvMemory(nvMemory* nvMem, TSettings* Settings) } } +/// @brief Retreives settings from a config file on a SD card. +/// @param TSettings* Struct to update with new Settings +/// @return true on success bool SDCard::loadConfigFile(TSettings* Settings) { // Load existing configuration file diff --git a/src/drivers/storage/nvMemory.cpp b/src/drivers/storage/nvMemory.cpp index cc5f997..9467a72 100644 --- a/src/drivers/storage/nvMemory.cpp +++ b/src/drivers/storage/nvMemory.cpp @@ -9,10 +9,7 @@ #include "..\devices\device.h" #include "storage.h" -nvMemory::nvMemory() -{ - Initialized_ = false; -} +nvMemory::nvMemory() : Initialized_(false){}; nvMemory::~nvMemory() { @@ -20,6 +17,9 @@ nvMemory::~nvMemory() SPIFFS.end(); }; +/// @brief Save settings to config file on SPIFFS +/// @param TSettings* Settings to be saved. +/// @return true on success bool nvMemory::saveConfig(TSettings* Settings) { if (init()) @@ -60,6 +60,9 @@ bool nvMemory::saveConfig(TSettings* Settings) return false; } +/// @brief Load settings from config file located in SPIFFS. +/// @param TSettings* Struct to update with new settings. +/// @return true on success bool nvMemory::loadConfig(TSettings* Settings) { // Uncomment if we need to format filesystem @@ -113,12 +116,16 @@ bool nvMemory::loadConfig(TSettings* Settings) return false; } +/// @brief Delete config file from SPIFFS +/// @return true on successs bool nvMemory::deleteConfig() { Serial.println("SPIFS: Erasing config file.."); return SPIFFS.remove(JSON_CONFIG_FILE); //Borramos fichero } +/// @brief Prepare and mount SPIFFS +/// @return true on success bool nvMemory::init() { if (!Initialized_) From bfb01da2c8fb2e7ce38ac0ab94367b209efc7a3a Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Thu, 21 Sep 2023 18:03:22 +0200 Subject: [PATCH 55/68] add display to esp32cam --- lib/TFT_eSPI/User_Setup_Select.h | 3 ++ .../Setup212_ESP32Cam_DongleDisplay.h | 52 +++++++++++++++++++ platformio.ini | 3 +- src/drivers/devices/esp32CAM.h | 2 +- src/drivers/displays/dongleDisplayDriver.cpp | 7 +++ 5 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 lib/TFT_eSPI/User_Setups/Setup212_ESP32Cam_DongleDisplay.h diff --git a/lib/TFT_eSPI/User_Setup_Select.h b/lib/TFT_eSPI/User_Setup_Select.h index 185f994..2ebed60 100644 --- a/lib/TFT_eSPI/User_Setup_Select.h +++ b/lib/TFT_eSPI/User_Setup_Select.h @@ -149,6 +149,9 @@ #ifdef NERMINER_S3_DONGLE #include // For the LilyGo T-Dongle S3 based ESP32 with ST7735 80 x 160 TFT #endif +#ifdef ESP32_CAM +#include // For the LilyGo T-Dongle S3 based ESP32 with ST7735 80 x 160 TFT +#endif //#include // Setup file for Bw16-based boards with ST7735 160 x 80 TFT //#include // Template file for a setup diff --git a/lib/TFT_eSPI/User_Setups/Setup212_ESP32Cam_DongleDisplay.h b/lib/TFT_eSPI/User_Setups/Setup212_ESP32Cam_DongleDisplay.h new file mode 100644 index 0000000..1137fe2 --- /dev/null +++ b/lib/TFT_eSPI/User_Setups/Setup212_ESP32Cam_DongleDisplay.h @@ -0,0 +1,52 @@ +// Config for esp32cam, using dongledriver w ESP32 and ST7735 80 x 160 display +#define USER_SETUP_ID 212 + +#define ST7735_DRIVER // Configure all registers + +#define TFT_WIDTH 80 +#define TFT_HEIGHT 160 + +// #define ST7735_INITB +// #define ST7735_GREENTAB +// #define ST7735_GREENTAB2 +// #define ST7735_GREENTAB3 +// #define ST7735_GREENTAB128 // For 128 x 128 display +#define ST7735_GREENTAB160x80 // For 160 x 80 display (BGR, inverted, 26 offset) +// #define ST7735_REDTAB +//#define ST7735_BLACKTAB +// #define ST7735_REDTAB160x80 // For 160 x 80 display with 24 pixel offset + +//#define TFT_RGB_ORDER TFT_RGB // Colour order Red-Green-Blue +#define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red + +//#define TFT_INVERSION_ON +//#define TFT_INVERSION_OFF + +// Generic ESP32 setup +#define TFT_MISO 2 +#define TFT_MOSI 15 +#define TFT_SCLK 14 +#define TFT_CS 12 +#define TFT_DC 16 +#define TFT_RST 4 // Connect reset to ensure display initialises + +#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH +#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters +#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters +#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm +#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. +#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. +//#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT +#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts + +#define SMOOTH_FONT + + +#define SPI_FREQUENCY 27000000 +//#define SPI_FREQUENCY 40000000 + +#define SPI_READ_FREQUENCY 20000000 + +//#define SPI_TOUCH_FREQUENCY 2500000 + +// #define SUPPORT_TRANSACTIONS \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index cf41920..aa07a60 100644 --- a/platformio.ini +++ b/platformio.ini @@ -160,8 +160,9 @@ lib_deps = https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient + https://github.com/takkaO/OpenFontRender lib_ignore = - TFT_eSPI + ;TFT_eSPI ;-------------------------------------------------------------------- diff --git a/src/drivers/devices/esp32CAM.h b/src/drivers/devices/esp32CAM.h index f58bd6d..39d4391 100644 --- a/src/drivers/devices/esp32CAM.h +++ b/src/drivers/devices/esp32CAM.h @@ -4,7 +4,7 @@ #define PIN_BUTTON_1 0 #define LED_PIN 33 -#define NO_DISPLAY +#define DONGLE_DISPLAY // NO_DISPLAY // example how to configure SD card. // if you would define everything, diff --git a/src/drivers/displays/dongleDisplayDriver.cpp b/src/drivers/displays/dongleDisplayDriver.cpp index f6b4fe0..9e27d0f 100644 --- a/src/drivers/displays/dongleDisplayDriver.cpp +++ b/src/drivers/displays/dongleDisplayDriver.cpp @@ -9,7 +9,10 @@ #include "version.h" #include "monitor.h" #include "OpenFontRender.h" + +#ifdef USE_LED #include +#endif #define WIDTH 160 #define HEIGHT 80 @@ -26,6 +29,7 @@ OpenFontRender render; TFT_eSPI tft = TFT_eSPI(); TFT_eSprite background = TFT_eSprite(&tft); +#ifdef USE_LED #define MAX_BRIGHTNESS 16 #define SLOW_FADE 1; #define FAST_FADE 4; @@ -34,6 +38,7 @@ CRGB leds(0, 0, 0); int brightness = 0; int fadeDirection = 1; int fadeAmount = 0; +#endif // USE_LED extern monitor_data mMonitor; @@ -74,8 +79,10 @@ extern monitor_data mMonitor; void dongleDisplay_Init(void) { + #ifdef USE_LED FastLED.addLeds(&leds, 1); FastLED.show(); + #endif // USE_LED tft.init(); tft.setRotation(3); From 4e4c24f4049382b4213f6b42900e03b76d50ec86 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 22 Sep 2023 01:34:28 +0200 Subject: [PATCH 56/68] update SD spi access --- src/NerdMinerV2.ino.cpp | 4 +- src/drivers/devices/esp32CAM.h | 4 +- src/drivers/storage/SDCard.cpp | 138 ++++++++++++++++++--------------- src/drivers/storage/SDCard.h | 62 +++++++++------ src/wManager.cpp | 3 +- 5 files changed, 122 insertions(+), 89 deletions(-) diff --git a/src/NerdMinerV2.ino.cpp b/src/NerdMinerV2.ino.cpp index 9904d15..95a4359 100644 --- a/src/NerdMinerV2.ino.cpp +++ b/src/NerdMinerV2.ino.cpp @@ -11,6 +11,7 @@ #include "mining.h" #include "monitor.h" #include "drivers/displays/display.h" +#include "drivers/storage/SDCard.h" //3 seconds WDT #define WDT_TIMEOUT 3 @@ -25,9 +26,10 @@ OneButton button2(PIN_BUTTON_2); #endif - extern monitor_data mMonitor; +SDCard SDCrd = SDCard(); + /**********************āš” GLOBAL Vars *******************************/ unsigned long start = millis(); diff --git a/src/drivers/devices/esp32CAM.h b/src/drivers/devices/esp32CAM.h index 39d4391..2949491 100644 --- a/src/drivers/devices/esp32CAM.h +++ b/src/drivers/devices/esp32CAM.h @@ -27,8 +27,8 @@ // (default SPI unit provided by ) // setup SPI pins. #define SDSPI_CS 13 -// The following pins will be ignored, if a tft display is set up. (!defined NO_DISPLAY) -// check display settings to find the appropriate lines. +// The following pins can be retreived from the TFT_eSPI lib, +// if a display that is using it is activated. #define SDSPI_CLK 14 #define SDSPI_MOSI 15 #define SDSPI_MISO 2 diff --git a/src/drivers/storage/SDCard.cpp b/src/drivers/storage/SDCard.cpp index 48a5c73..89eb984 100644 --- a/src/drivers/storage/SDCard.cpp +++ b/src/drivers/storage/SDCard.cpp @@ -1,4 +1,3 @@ - #include #include #include @@ -7,6 +6,7 @@ #include "nvMemory.h" #include "..\devices\device.h" #include "SDCard.h" +//#include "..\lib\TFT_eSPI\User_Setup_Select.h" #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) #include @@ -17,19 +17,43 @@ #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) || defined (BUILD_SDSPI) -SDCard::SDCard() +/// @param int ID only relevant in SPI mode, if you want to use a non standard SPI Unit. +SDCard::SDCard(int ID):cardInitialized_(false),cardBusy_(false) { #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) iSD_ = &SD_MMC; #elif defined (BUILD_SDSPI) - ispi_ = &SPI; + if(ID>=0) + { + ispi_ = new SPIClass(ID); + newInstance_ = true; + } + else + { + ispi_ = &SPI; + newInstance_ = false; + } iSD_ = &SD; #endif // interface type +initSDcard(); } SDCard::~SDCard() { - unmount(); + iSD_->end(); + if(newInstance_) + { + ispi_->end(); + delete ispi_; + } + Serial.println("SDCard: Unmounted"); +} + +/// @brief Check if the card is accessed right now. +/// @return true if active +bool SDCard::cardBusy() +{ + return !cardBusy_; } /// @brief Transfer settings from config file on a SD card to the device. @@ -54,7 +78,7 @@ bool SDCard::loadConfigFile(TSettings* Settings) // Load existing configuration file // Read configuration from FS json - if (initSDcard()) + if (cardAvailable()) { if (iSD_->exists(JSON_CONFIG_FILE)) { @@ -62,15 +86,16 @@ bool SDCard::loadConfigFile(TSettings* Settings) File configFile = iSD_->open(JSON_CONFIG_FILE, "r"); if (configFile) { + cardBusy_ = true; StaticJsonDocument<512> json; DeserializationError error = deserializeJson(json, configFile); configFile.close(); + cardBusy_ = false; Serial.println("SDCard: Loading config file"); - serializeJsonPretty(json, Serial); - Serial.print('\n'); - unmount(); if (!error) { + serializeJsonPretty(json, Serial); + Serial.print('\n'); Settings->WifiSSID = json[JSON_KEY_SSID] | Settings->WifiSSID; Settings->WifiPW = json[JSON_KEY_PASW] | Settings->WifiPW; Settings->PoolAddress = json[JSON_KEY_POOLURL] | Settings->PoolAddress; @@ -98,82 +123,71 @@ bool SDCard::loadConfigFile(TSettings* Settings) { Serial.println("SDCard: No config file available!"); } - unmount(); } return false; } -void SDCard::unmount() +/// @brief Check if a SD card is inserted. +/// @return true if inserted. +bool SDCard::cardAvailable() { - iSD_->end(); -#ifdef BUILD_SDSPI_SETUP - ispi_->end(); -#endif // BUILD_SDSPI_SETUP - Serial.println("SDCard: Unmounted"); -} - -bool SDCard::initSDcard() -{ - if (iSD_->cardType() != CARD_NONE) - { - Serial.println("SDCard: Already mounted."); - return true; - } - Serial.println("SDCard: Mounting card."); - - bool cardInitialized = false; -#if defined (BUILD_SDMMC_4) - if (iSD_->cardType() == CARD_NONE) - { - iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); - cardInitialized = iSD_->begin("/sd", false); - Serial.println("SDCard: 4-Bit Mode."); - } -#elif defined (BUILD_SDMMC_1) - #warning SDMMC : 1 - bit mode is not always working. If you experience issues, try other modes. - if (iSD_->cardType() == CARD_NONE) - { - iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); - cardInitialized = iSD_->begin("/sd", true); - Serial.println("SDCard: 1-Bit Mode."); - } -#elif defined (BUILD_SDSPI) - if (iSD_->cardType() == CARD_NONE) - { - #ifdef BUILD_SDSPI_SETUP - ispi_->end(); - ispi_->begin(SDSPI_CLK, SDSPI_MISO, SDSPI_MOSI, SDSPI_CS); - #endif //BUILD_SDSPI_SETUP - cardInitialized = iSD_->begin(SDSPI_CS, *ispi_); - Serial.println("SDCard: SPI mode."); - } -#else - Serial.println("SDCard: interface not available."); - return false; -#endif // dataPinsDefined - if (cardInitialized) + if (cardInitialized_) { if (iSD_->cardType() != CARD_NONE) { - Serial.println("SDCard: Mounted."); + Serial.println("SDCard: Inserted."); return true; } else { - Serial.println("SDCard: Mounting failed."); - iSD_->end(); + Serial.println("SDCard: Not inserted."); } } + else + { + Serial.println("SDCard: Interface not initialized."); + } return false; } +/// @brief Init SD card interface. Normaly not required, as this is called by the constructor. +/// @return true on success +bool SDCard::initSDcard() +{ + if (!cardAvailable()) + { + Serial.println("SDCard: init SD card interface."); +#if defined (BUILD_SDMMC_4) + iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0, SDMMC_D1, SDMMC_D2, SDMMC_D3); + cardInitialized_ = iSD_->begin("/sd", false); + Serial.println("SDCard: 4-Bit Mode."); + } +#elif defined (BUILD_SDMMC_1) +#warning SDMMC : 1 - bit mode is not always working. If you experience issues, try other modes. + iSD_->setPins(SDMMC_CLK, SDMMC_CMD, SDMMC_D0); + cardInitialized_ = iSD_->begin("/sd", true); + Serial.println("SDCard: 1-Bit Mode."); + } +#elif defined (BUILD_SDSPI) + ispi_->begin(SDSPI_CLK, SDSPI_MISO, SDSPI_MOSI, SDSPI_CS); + cardInitialized_ = iSD_->begin(SDSPI_CS, *ispi_); + Serial.println("SDCard: SPI mode."); + } +#else + Serial.println("SDCard: interface not defined."); + return false; +#endif // dataPinsDefined + cardAvailable(); + return cardInitialized_; +} + #else -SDCard::SDCard() {} +SDCard::SDCard(int ID) {} SDCard::~SDCard() {} void SDCard::SD2nvMemory(nvMemory* nvMem, TSettings* Settings) {}; bool SDCard::loadConfigFile(TSettings* Settings) { return false; } bool SDCard::initSDcard() { return false; } -void unmount() {} +bool SDCard::cardAvailable() { return false; } #endif //BUILD_SDMMC \ No newline at end of file diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index 37d0bd4..775adbb 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -9,46 +9,62 @@ // select interface and options according to provided pins #if defined (SDMMC_D0) && defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3) -#define BUILD_SDMMC_4 -#undef BUILD_SDMMC_1 -#undef BUILD_SDSPI -#include -#warning SD card support in 4-Bit mode enabled! + #define BUILD_SDMMC_4 + #undef BUILD_SDMMC_1 + #undef BUILD_SDSPI + #include + #warning SD card support in 4-Bit mode enabled! #elif defined (SDMMC_D0) && !(defined (SDMMC_D1) && defined (SDMMC_D2) && defined (SDMMC_D3)) -#define BUILD_SDMMC_1 -#undef BUILD_SDMMC_4 -#undef BUILD_SDSPI -#include -#warning SD card support in 1-Bit mode enabled! + #define BUILD_SDMMC_1 + #undef BUILD_SDMMC_4 + #undef BUILD_SDSPI + #include + #warning SD card support in 1-Bit mode enabled! #elif defined (SDSPI_CS) -#undef BUILD_SDMMC_1 -#undef BUILD_SDMMC_4 -#define BUILD_SDSPI -#if defined (SDSPI_CLK) && defined (SDSPI_MOSI) && defined (SDSPI_MISO) && defined (NO_DISPLAY) -#define BUILD_SDSPI_SETUP -#endif // SPIPINS -#include -#include -#warning SD card support in SPI mode enabled! + #undef BUILD_SDMMC_1 + #undef BUILD_SDMMC_4 + #define BUILD_SDSPI + + #include + #include + #include "..\lib\TFT_eSPI\User_Setup_Select.h" + + #ifndef NO_DISPLAY + #if !defined(SDSPI_CLK) && defined(TFT_CLK) + #define SDSPI_CLK TFT_CLK + #endif // SDSPI_CLK + #if !defined(SDSPI_MOSI) && defined(TFT_MOSI) + #define SDSPI_MOSI TFT_MOSI + #endif // SDSPI_MOSI + #if !defined(SDSPI_MISO) && defined(TFT_MISO) + #define SDSPI_MISO TFT_MISO + #endif // SDSPI_MISO + #elif !defined(SDSPI_CLK) || !defined(SDSPI_MOSI) || !defined(SDSPI_MISO) + #error: Please define SDSPI pins! + #endif // NO_DISPLAY + + #warning SD card support in SPI mode enabled! #endif -// Handles the transfer of settings from sd card to nv memory (wifi credentials are handled by wifimanager) class SDCard { public: - SDCard(); + SDCard(int ID=-1); ~SDCard(); void SD2nvMemory(nvMemory* nvMem, TSettings* Settings); bool loadConfigFile(TSettings* Settings); + bool cardAvailable(); + bool cardBusy(); private: bool initSDcard(); - void unmount(); - + bool cardInitialized_; + bool cardBusy_; #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) fs::SDMMCFS* iSD_; #elif defined (BUILD_SDSPI) SPIClass* ispi_; fs::SDFS* iSD_; + bool newInstance_; #endif }; diff --git a/src/wManager.cpp b/src/wManager.cpp index bd89146..41ebff3 100644 --- a/src/wManager.cpp +++ b/src/wManager.cpp @@ -27,6 +27,8 @@ extern monitor_data mMonitor; nvMemory nvMem; +extern SDCard SDCrd; + void saveConfigCallback() // Callback notifying us of the need to save configuration { @@ -87,7 +89,6 @@ void init_WifiManager() if (!nvMem.loadConfig(&Settings)) { //No config file on internal flash. - SDCard SDCrd; if (SDCrd.loadConfigFile(&Settings)) { //Config file on SD card. From 02202e1361e28a48ddb4589a8cc7729c08ec83c2 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Fri, 22 Sep 2023 01:36:10 +0200 Subject: [PATCH 57/68] update cam display --- .../User_Setups/Setup212_ESP32Cam_DongleDisplay.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/TFT_eSPI/User_Setups/Setup212_ESP32Cam_DongleDisplay.h b/lib/TFT_eSPI/User_Setups/Setup212_ESP32Cam_DongleDisplay.h index 1137fe2..f248b13 100644 --- a/lib/TFT_eSPI/User_Setups/Setup212_ESP32Cam_DongleDisplay.h +++ b/lib/TFT_eSPI/User_Setups/Setup212_ESP32Cam_DongleDisplay.h @@ -26,9 +26,13 @@ #define TFT_MISO 2 #define TFT_MOSI 15 #define TFT_SCLK 14 -#define TFT_CS 12 -#define TFT_DC 16 -#define TFT_RST 4 // Connect reset to ensure display initialises +#define TFT_CS 12 +#define TFT_DC 0 +#define TFT_RST 22 // Connect reset to ensure display initialises (not really required). + +#if (TFT_MISO == 16) || (TFT_MOSI == 16)|| (TFT_SCLK == 16)|| (TFT_CS == 16)|| (TFT_DC == 16)|| (TFT_RST == 16) +#warning: Using GPIO16 for display might crash on initializing the display! +#endif #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters From b6e8119fc63a1966268598eadb6eb8c494587d56 Mon Sep 17 00:00:00 2001 From: George Alexandre Silva Date: Tue, 26 Sep 2023 01:14:41 -0300 Subject: [PATCH 58/68] Fixed wrong pool total hashrate, with jsonfilter --- src/monitor.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/monitor.cpp b/src/monitor.cpp index 56f1368..1fb58f3 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -304,14 +304,22 @@ pool_data getPoolData(void){ if (httpCode == HTTP_CODE_OK) { String payload = http.getString(); // Serial.println(payload); - DynamicJsonDocument doc(1024); - deserializeJson(doc, payload); - + StaticJsonDocument<300> filter; + filter["bestDifficulty"] = true; + filter["workersCount"] = true; + filter["workers"][0]["sessionId"] = true; + filter["workers"][0]["hashRate"] = true; + DynamicJsonDocument doc(2048); + deserializeJson(doc, payload, DeserializationOption::Filter(filter)); + //Serial.println(serializeJsonPretty(doc, Serial)); if (doc.containsKey("workersCount")) pData.workersCount = doc["workersCount"].as(); const JsonArray& workers = doc["workers"].as(); float totalhashs = 0; for (const JsonObject& worker : workers) { - totalhashs += worker["hashRate"].as(); + totalhashs += worker["hashRate"].as(); + /* Serial.print(worker["sessionId"].as()+": "); + Serial.print(" - "+worker["hashRate"].as()+": "); + Serial.println(totalhashs); */ } pData.workersHash = String(totalhashs/1000); double temp; From fce8135b9c04812add0806ac77f712089d28724b Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Wed, 27 Sep 2023 17:45:37 +0200 Subject: [PATCH 59/68] fix --- src/drivers/storage/SDCard.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/drivers/storage/SDCard.cpp b/src/drivers/storage/SDCard.cpp index 89eb984..9fbab53 100644 --- a/src/drivers/storage/SDCard.cpp +++ b/src/drivers/storage/SDCard.cpp @@ -6,7 +6,6 @@ #include "nvMemory.h" #include "..\devices\device.h" #include "SDCard.h" -//#include "..\lib\TFT_eSPI\User_Setup_Select.h" #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) #include @@ -17,7 +16,7 @@ #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) || defined (BUILD_SDSPI) -/// @param int ID only relevant in SPI mode, if you want to use a non standard SPI Unit. +/// @param int ID only relevant in SPI mode, if you want to set up a custom SPI unit. Ignored in SD bus mode. SDCard::SDCard(int ID):cardInitialized_(false),cardBusy_(false) { #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) @@ -35,7 +34,7 @@ SDCard::SDCard(int ID):cardInitialized_(false),cardBusy_(false) } iSD_ = &SD; #endif // interface type -initSDcard(); + initSDcard(); } SDCard::~SDCard() @@ -53,7 +52,7 @@ SDCard::~SDCard() /// @return true if active bool SDCard::cardBusy() { - return !cardBusy_; + return cardBusy_; } /// @brief Transfer settings from config file on a SD card to the device. @@ -189,5 +188,6 @@ void SDCard::SD2nvMemory(nvMemory* nvMem, TSettings* Settings) {}; bool SDCard::loadConfigFile(TSettings* Settings) { return false; } bool SDCard::initSDcard() { return false; } bool SDCard::cardAvailable() { return false; } +bool SDCard::cardBusy() { return false; } -#endif //BUILD_SDMMC \ No newline at end of file +#endif //BUILD_SDMMC From a587c131abf6f124d47df9fb30c5444c8b993cb9 Mon Sep 17 00:00:00 2001 From: elmo128 <60213508+elmo128@users.noreply.github.com> Date: Thu, 28 Sep 2023 06:05:45 +0200 Subject: [PATCH 60/68] Update SDCard.cpp fix --- src/drivers/storage/SDCard.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/drivers/storage/SDCard.cpp b/src/drivers/storage/SDCard.cpp index 9fbab53..2364106 100644 --- a/src/drivers/storage/SDCard.cpp +++ b/src/drivers/storage/SDCard.cpp @@ -40,11 +40,13 @@ SDCard::SDCard(int ID):cardInitialized_(false),cardBusy_(false) SDCard::~SDCard() { iSD_->end(); +#ifdef BUILD_SDSPI if(newInstance_) { ispi_->end(); delete ispi_; } +#endif // BUILD_SDSPI Serial.println("SDCard: Unmounted"); } From 5911e0d8730f45e39e8378b938859fccc60aad60 Mon Sep 17 00:00:00 2001 From: George Alexandre Silva Date: Thu, 28 Sep 2023 15:18:17 -0300 Subject: [PATCH 61/68] Just for internal tests --- .gitignore | 1 + src/drivers/storage/storage.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f7eadc5..12af968 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ NerdMinerLog.txt bin/0x10000_firmware.bin logs boards/ESP32_wroom_guide.md +src/drivers/storage/storage.h diff --git a/src/drivers/storage/storage.h b/src/drivers/storage/storage.h index 8aa0668..a1cc8f5 100644 --- a/src/drivers/storage/storage.h +++ b/src/drivers/storage/storage.h @@ -28,7 +28,7 @@ struct TSettings char PoolAddress[80]{ DEFAULT_POOLURL }; char BtcWallet[80]{ DEFAULT_WALLETID }; uint32_t PoolPort{ DEFAULT_POOLPORT }; - uint32_t Timezone{ DEFAULT_TIMEZONE }; + int Timezone{ DEFAULT_TIMEZONE }; bool saveStats{ DEFAULT_SAVESTATS }; }; From c3b45e92097b14f76d49155d4ad8984665f1fcce Mon Sep 17 00:00:00 2001 From: BitMaker Date: Sun, 1 Oct 2023 10:28:39 +0200 Subject: [PATCH 62/68] readme update --- README.md | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 53ad837..c69a47c 100644 --- a/README.md +++ b/README.md @@ -37,14 +37,16 @@ Every time an stratum job notification is received miner update its current work - 3D BOX [here](3d_files/) #### Current Supported Boards -- LILYGO T-Display S3 ([Aliexpress link](https://s.click.aliexpress.com/e/_Ddy7739)) -- ESP32-WROOM-32, ESP32-Devkit1.. ([Aliexpress link](https://s.click.aliexpress.com/e/_DCzlUiX)) -- LILYGO T-QT pro ([Aliexpress link](https://s.click.aliexpress.com/e/_DBQIr43)) -- LILYGO T-Display 1.14 ([Aliexpress link](https://s.click.aliexpress.com/e/_DEqGvSJ)) -- LILYGO T-Display S3 AMOLED ([Aliexpress link](https://s.click.aliexpress.com/e/_DmOIK6j)) -- LILYGO T-Dongle S3 ([Aliexpress link](https://s.click.aliexpress.com/e/_DmQCPyj)) -- ESP32-2432S028R 2,8" ([Aliexpress link](https://s.click.aliexpress.com/e/_DdXkvLv)) -- ESP32-cam [Board Info](https://lastminuteengineers.com/getting-started-with-esp32-cam/) +- LILYGO T-Display S3 ([Aliexpress link*](https://s.click.aliexpress.com/e/_Ddy7739)) +- ESP32-WROOM-32, ESP32-Devkit1.. ([Aliexpress link*](https://s.click.aliexpress.com/e/_DCzlUiX)) +- LILYGO T-QT pro ([Aliexpress link*](https://s.click.aliexpress.com/e/_DBQIr43)) +- LILYGO T-Display 1.14 ([Aliexpress link*](https://s.click.aliexpress.com/e/_DEqGvSJ)) +- LILYGO T-Display S3 AMOLED ([Aliexpress link*](https://s.click.aliexpress.com/e/_DmOIK6j)) +- LILYGO T-Dongle S3 ([Aliexpress link*](https://s.click.aliexpress.com/e/_DmQCPyj)) +- ESP32-2432S028R 2,8" ([Aliexpress link*](https://s.click.aliexpress.com/e/_DdXkvLv)) +- ESP32-cam [[Board Info]](https://lastminuteengineers.com/getting-started-with-esp32-cam/) + +*Affiliate links ### Flash firmware #### microMiners Flashtool [Recommended] @@ -54,17 +56,17 @@ Easyiest way to flash firmware. Build your own miner using the folowing firwmare 1. Go to NM2 flasher online: https://bitmaker-hub.github.io/diyflasher/ #### Standard tool -Create your own miner using the online firwmare flash tool **ESPtool** and the **binary files** that you will find in the src/bin folder. +Create your own miner using the online firwmare flash tool **ESPtool** and one of the **binary files** that you will find in the ``bin`` folder. If you want you can compile the entire project using Arduino, PlatformIO or Expressif IDF. 1. Get a TTGO T-display S3 or any supported board 1. Download this repository 1. Go to ESPtool online: https://espressif.github.io/esptool-js/ -1. Load the firmware with the binaries from the src/bin folder. -1. Plug your board and select each file from src/bin with its address +1. Load the firmware with the binary from one of the sub-folders of ``bin`` corresponding to your board. +1. Plug your board and select each file from the sub-folder (``.bin`` files). ### Update firmware -Update NerdMiner firmware following same flashing steps but only adding 0x10000_firmware file. +Update NerdMiner firmware following same flashing steps but only using the file 0x10000_firmware.bin. #### Build troubleshooting 1. Online ESPtool works with chrome, chromium, brave @@ -168,16 +170,15 @@ With the USB-C port to the right: - [x] Add best difficulty on miner screen - [x] Add suport to standard ESP32 dev-kit / ESP32-WROOM - [x] Code changes to support adding multiple boards -- [x] Create a daisy chain protocol via UART or I2C to support ESP32 hashboards - [x] Add support to TTGO T-display 1.14 - [x] Add support to Amoled ### On process - +- [ ] Create a daisy chain protocol via UART or I2C to support ESP32 hashboards - [ ] Create new screen like clockMiner but with BTC price - [ ] Add support to control BM1397 ### Donations/Project contributions -If you would like to contribute and help dev team with this project you can send a donation to the following LN address āš”teamnerdminer@getalby.comāš” +If you would like to contribute and help dev team with this project you can send a donation to the following LN address āš”teamnerdminer@getalby.comāš” or using one of the affiliate links above. Enjoy From c22c250842189ff1169b751db01a463681fd6ff2 Mon Sep 17 00:00:00 2001 From: BitMaker Date: Sun, 1 Oct 2023 10:38:03 +0200 Subject: [PATCH 63/68] Readme changes --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c69a47c..fbfbb06 100644 --- a/README.md +++ b/README.md @@ -43,8 +43,8 @@ Every time an stratum job notification is received miner update its current work - LILYGO T-Display 1.14 ([Aliexpress link*](https://s.click.aliexpress.com/e/_DEqGvSJ)) - LILYGO T-Display S3 AMOLED ([Aliexpress link*](https://s.click.aliexpress.com/e/_DmOIK6j)) - LILYGO T-Dongle S3 ([Aliexpress link*](https://s.click.aliexpress.com/e/_DmQCPyj)) -- ESP32-2432S028R 2,8" ([Aliexpress link*](https://s.click.aliexpress.com/e/_DdXkvLv)) -- ESP32-cam [[Board Info]](https://lastminuteengineers.com/getting-started-with-esp32-cam/) +- ESP32-2432S028R 2,8" ([Aliexpress link*](https://s.click.aliexpress.com/e/_DdXkvLv) / Dev support: @nitroxgas āš”jadeddonald78@walletofsatoshi.com) +- ESP32-cam ([Board Info](https://lastminuteengineers.com/getting-started-with-esp32-cam/) / Dev support: @elmo128) *Affiliate links From f6054ee66ce0e8b16660cf71ff7a55a05f08fdc6 Mon Sep 17 00:00:00 2001 From: BitMaker Date: Sun, 1 Oct 2023 10:38:45 +0200 Subject: [PATCH 64/68] readme changes --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fbfbb06..a2ac637 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Every time an stratum job notification is received miner update its current work - LILYGO T-Display 1.14 ([Aliexpress link*](https://s.click.aliexpress.com/e/_DEqGvSJ)) - LILYGO T-Display S3 AMOLED ([Aliexpress link*](https://s.click.aliexpress.com/e/_DmOIK6j)) - LILYGO T-Dongle S3 ([Aliexpress link*](https://s.click.aliexpress.com/e/_DmQCPyj)) -- ESP32-2432S028R 2,8" ([Aliexpress link*](https://s.click.aliexpress.com/e/_DdXkvLv) / Dev support: @nitroxgas āš”jadeddonald78@walletofsatoshi.com) +- ESP32-2432S028R 2,8" ([Aliexpress link*](https://s.click.aliexpress.com/e/_DdXkvLv) / Dev support: @nitroxgas / āš”jadeddonald78@walletofsatoshi.com) - ESP32-cam ([Board Info](https://lastminuteengineers.com/getting-started-with-esp32-cam/) / Dev support: @elmo128) *Affiliate links From c93e884b51d15a8ef983ea45be4ab4361716105b Mon Sep 17 00:00:00 2001 From: BitMaker Date: Sun, 1 Oct 2023 10:54:30 +0200 Subject: [PATCH 65/68] readme update --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a2ac637..e60d13f 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ Update NerdMiner firmware following same flashing steps but only using the file 1. In extreme case you can "Erase all flash" on ESPtool to clean all current configuration before uploading firmware. There has been cases that experimented Wifi failures until this was made. 1. In case of ESP32-WROOM Boards, could be necessary to put your board on boot mode. Hold boot button, press reset button and then program. -### NerdMiner configuration +## NerdMiner configuration After programming, you will only need to setup your Wifi and BTC address. #### Wifi Accesspoint @@ -181,4 +181,6 @@ With the USB-C port to the right: ### Donations/Project contributions If you would like to contribute and help dev team with this project you can send a donation to the following LN address āš”teamnerdminer@getalby.comāš” or using one of the affiliate links above. +If you want to order a fully assembled Nerdminer you can contribute to my job at [bitronics.store](https://bitronics.store). + Enjoy From 096b9dbdd43758fc47db0a311f1534473602fca2 Mon Sep 17 00:00:00 2001 From: Roman Mashta Date: Mon, 2 Oct 2023 17:02:12 +0300 Subject: [PATCH 66/68] Fix build for MacOS and Linux. --- src/drivers/displays/displayDriver.h | 2 +- src/drivers/storage/SDCard.cpp | 2 +- src/drivers/storage/SDCard.h | 2 +- src/drivers/storage/nvMemory.cpp | 2 +- src/drivers/storage/nvMemory.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/drivers/displays/displayDriver.h b/src/drivers/displays/displayDriver.h index 939b00c..efa58f4 100644 --- a/src/drivers/displays/displayDriver.h +++ b/src/drivers/displays/displayDriver.h @@ -1,7 +1,7 @@ #ifndef DISPLAYDRIVER_H_ #define DISPLAYDRIVER_H_ -#include "..\devices\device.h" +#include "../devices/device.h" typedef void (*AlternateFunction)(void); typedef void (*DriverInitFunction)(void); diff --git a/src/drivers/storage/SDCard.cpp b/src/drivers/storage/SDCard.cpp index 2364106..4e35e5b 100644 --- a/src/drivers/storage/SDCard.cpp +++ b/src/drivers/storage/SDCard.cpp @@ -4,7 +4,7 @@ #include "storage.h" #include "nvMemory.h" -#include "..\devices\device.h" +#include "../devices/device.h" #include "SDCard.h" #if defined (BUILD_SDMMC_1) || defined(BUILD_SDMMC_4) diff --git a/src/drivers/storage/SDCard.h b/src/drivers/storage/SDCard.h index 775adbb..768fc07 100644 --- a/src/drivers/storage/SDCard.h +++ b/src/drivers/storage/SDCard.h @@ -3,7 +3,7 @@ #include "storage.h" #include "nvMemory.h" -#include "..\devices\device.h" +#include "../devices/device.h" // configuration example and description in /devices/esp32cam.h diff --git a/src/drivers/storage/nvMemory.cpp b/src/drivers/storage/nvMemory.cpp index 9467a72..e7aca6b 100644 --- a/src/drivers/storage/nvMemory.cpp +++ b/src/drivers/storage/nvMemory.cpp @@ -6,7 +6,7 @@ #include #include -#include "..\devices\device.h" +#include "../devices/device.h" #include "storage.h" nvMemory::nvMemory() : Initialized_(false){}; diff --git a/src/drivers/storage/nvMemory.h b/src/drivers/storage/nvMemory.h index 3b22c7e..c072fec 100644 --- a/src/drivers/storage/nvMemory.h +++ b/src/drivers/storage/nvMemory.h @@ -4,7 +4,7 @@ // we only have one implementation right now and nothing to choose from. #define NVMEM_SPIFFS -#include "..\devices\device.h" +#include "../devices/device.h" #include "storage.h" // Handles load and store of user settings, except wifi credentials. Those are managed by the wifimanager. From 5b67cb4430bff482d4b02dffe82a062c82e8af5f Mon Sep 17 00:00:00 2001 From: George Alexandre Silva Date: Wed, 4 Oct 2023 09:04:07 -0300 Subject: [PATCH 67/68] Fixed suffixes to large pool hash rates. --- src/drivers/displays/esp23_2432s028r.cpp | 19 +- src/media/images_bottom_320_70.h | 3224 +++++++++++----------- src/monitor.cpp | 7 +- 3 files changed, 1630 insertions(+), 1620 deletions(-) diff --git a/src/drivers/displays/esp23_2432s028r.cpp b/src/drivers/displays/esp23_2432s028r.cpp index daef827..3e783f2 100644 --- a/src/drivers/displays/esp23_2432s028r.cpp +++ b/src/drivers/displays/esp23_2432s028r.cpp @@ -81,6 +81,8 @@ void printPoolData(){ background.setSwapBytes(true); if (bottomScreenBlue) { background.pushImage(0, 0, 320, 70, bottonPoolScreen); + //background.fillRect(295,43,25,10,TFT_CYAN); + } else { background.pushImage(0, 0, 320, 70, bottonPoolScreen_g); } @@ -89,12 +91,12 @@ void printPoolData(){ render.setLineSpaceRatio(1); render.setFontSize(24); - render.cdrawString(String(pData.workersCount).c_str(), 160, 35, TFT_BLACK); + render.cdrawString(String(pData.workersCount).c_str(), 155, 35, TFT_BLACK); render.setFontSize(18); render.setAlignment(Align::BottomRight); - render.drawString(pData.workersHash.c_str(), 293, 51, TFT_BLACK); - render.setAlignment(Align::TopLeft); - render.cdrawString(pData.bestDifficulty.c_str(), 50, 34, TFT_BLACK); + render.cdrawString(pData.workersHash.c_str(), 265, 34, TFT_BLACK); + render.setAlignment(Align::BottomLeft); + render.cdrawString(pData.bestDifficulty.c_str(), 54, 34, TFT_BLACK); background.pushSprite(0,170); background.deleteSprite(); @@ -128,11 +130,15 @@ void esp32_2432S028R_MinerScreen(unsigned long mElapsed) //Print background screen background.pushImage(-190, 0, MinerWidth, MinerHeight, MinerScreen); + // Total hashes render.setFontSize(18); render.rdrawString(data.totalMHashes.c_str(), 268-wdtOffset, 138, TFT_BLACK); + + // Block templates render.setFontSize(18); + render.setAlignment(Align::TopLeft); render.drawString(data.templates.c_str(), 189-wdtOffset, 20, 0xDEDB); // Best diff render.drawString(data.bestDiff.c_str(), 189-wdtOffset, 48, 0xDEDB); @@ -145,7 +151,8 @@ void esp32_2432S028R_MinerScreen(unsigned long mElapsed) // Valid Blocks render.setFontSize(24); - render.drawString(data.valids.c_str(), 285-wdtOffset, 56, 0xDEDB); + render.setAlignment(Align::TopCenter); + render.drawString(data.valids.c_str(), 290-wdtOffset, 56, 0xDEDB); // Print Temp render.setFontSize(10); @@ -383,7 +390,7 @@ void esp32_2432S028R_DoLedStuff(unsigned long frame) { int16_t t_x , t_y; // To store the touch coordinates bool pressed = touch.getXY(t_x, t_y); - if (pressed) { + if (pressed) { if (((t_x > 109)&&(t_x < 211)) && ((t_y > 185)&&(t_y < 241))) bottomScreenBlue ^= true; else if (t_x > 160) { diff --git a/src/media/images_bottom_320_70.h b/src/media/images_bottom_320_70.h index 7ab1841..f9646ce 100644 --- a/src/media/images_bottom_320_70.h +++ b/src/media/images_bottom_320_70.h @@ -23,8 +23,8 @@ const unsigned short bottonPoolScreen[22400] PROGMEM={ 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, // 0x0110 (272) pixels 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, // 0x0120 (288) pixels 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, // 0x0130 (304) pixels -0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x7CB3, // 0x0140 (320) pixels -0x5C11, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, // 0x0150 (336) pixels +0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x4ACD, 0x7C93, // 0x0140 (320) pixels +0x5BF1, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, // 0x0150 (336) pixels 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, // 0x0160 (352) pixels 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, // 0x0170 (368) pixels 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, // 0x0180 (384) pixels @@ -70,33 +70,33 @@ const unsigned short bottonPoolScreen[22400] PROGMEM={ 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0400 (1024) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0410 (1040) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0420 (1056) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0430 (1072) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0440 (1088) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0450 (1104) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0460 (1120) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0470 (1136) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0480 (1152) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0490 (1168) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x428C, 0x7C52, 0x8472, 0x8472, 0x8472, 0x7C11, // 0x0430 (1072) pixels +0x5B2E, 0x21A8, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x636F, 0xE73D, // 0x0440 (1088) pixels +0xE75D, 0x530D, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xE73D, 0xDEFB, 0x3A4B, 0x1968, 0xC639, 0xE75D, 0xC639, // 0x0450 (1104) pixels +0x322A, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0460 (1120) pixels +0x1967, 0x73D0, 0x8472, 0x8472, 0x8472, 0x8452, 0x6BD0, 0x3A4B, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0470 (1136) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8C93, 0xE73D, // 0x0480 (1152) pixels +0xDEFC, 0x3A4B, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0xB5D7, 0xE73D, 0xCE9A, 0x3A2A, 0x1968, 0x1967, 0x1967, 0x1967, // 0x0490 (1168) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x04A0 (1184) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x04B0 (1200) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x04C0 (1216) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x04D0 (1232) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x04E0 (1248) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x04F0 (1264) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x5B8F, // 0x0500 (1280) pixels -0x5BB0, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0510 (1296) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x5B6F, // 0x0500 (1280) pixels +0x5B90, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0510 (1296) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0520 (1312) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0530 (1328) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0540 (1344) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0550 (1360) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0560 (1376) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0570 (1392) pixels -0x1967, 0x1967, 0x1967, 0x1968, 0x1968, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0580 (1408) pixels -0x1967, 0x1967, 0x1967, 0x6BB0, 0x8452, 0x428C, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x7C11, 0x8472, 0x3A2A, 0x2168, // 0x0590 (1424) pixels -0x3A4B, 0x73D0, 0x320A, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05A0 (1440) pixels -0x1967, 0x1967, 0x1968, 0x1968, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05B0 (1456) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x530D, 0x8452, 0x5B2E, 0x21A8, 0x1967, 0x1967, // 0x05C0 (1472) pixels -0x1967, 0x1967, 0x21A8, 0x6BD0, 0x4ACC, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05D0 (1488) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8473, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0570 (1392) pixels +0xFFFF, 0xE71C, 0x530D, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x73F1, 0xFFFF, // 0x0580 (1408) pixels +0xFFFF, 0x94D3, 0x320A, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0xA556, 0xFFFF, 0xF7DF, 0x7C11, 0x29A9, 0xDF1C, 0xFFFF, 0xEF5D, // 0x0590 (1424) pixels +0x73D0, 0x21A8, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05A0 (1440) pixels +0x1967, 0xE75D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xAD76, 0x320A, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05B0 (1456) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0xA555, 0xFFFF, // 0x05C0 (1472) pixels +0xF7DF, 0x7C11, 0x29A8, 0x1968, 0x1967, 0x1967, 0x1967, 0x1968, 0xD69A, 0xFFFF, 0xF79E, 0x73F0, 0x29A8, 0x1968, 0x1967, 0x1967, // 0x05D0 (1488) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05E0 (1504) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05F0 (1520) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0600 (1536) pixels @@ -104,1309 +104,1309 @@ const unsigned short bottonPoolScreen[22400] PROGMEM={ 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0620 (1568) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0630 (1584) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x5B6F, // 0x0640 (1600) pixels -0x5BAF, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0650 (1616) pixels +0x5B90, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0650 (1616) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0660 (1632) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0670 (1648) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0680 (1664) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0690 (1680) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x06A0 (1696) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x06B0 (1712) pixels -0x1967, 0x94F4, 0xDEDB, 0xDEFB, 0xD6BB, 0xBE19, 0x94D4, 0x320A, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x06C0 (1728) pixels -0x1967, 0x1967, 0x1967, 0xDEFC, 0xFFFF, 0x94D3, 0x320A, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0xFFDF, 0xFFFF, 0x7C11, 0x29C9, // 0x06D0 (1744) pixels -0xCE7A, 0xFFFF, 0xAD76, 0x320A, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x06E0 (1760) pixels -0x8472, 0xD6DB, 0xDEFB, 0xD6DB, 0xC639, 0x9D15, 0x3A4B, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x06F0 (1776) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0xAD96, 0xFFFF, 0xB5D8, 0x428B, 0x2168, 0x1967, // 0x0700 (1792) pixels -0x1967, 0x1967, 0x7411, 0xFFFF, 0xE71C, 0x4AAC, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0710 (1808) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0720 (1824) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0xD69A, 0xCE59, 0xE73C, // 0x06B0 (1712) pixels +0xFFFF, 0xFFFF, 0xDEFB, 0x4AAC, 0x2188, 0x1967, 0x1968, 0x1968, 0x1967, 0x1967, 0x1967, 0x1968, 0x1968, 0x1967, 0x73F1, 0xFFFF, // 0x06C0 (1728) pixels +0xFFFF, 0x7BF0, 0x52CC, 0x3A4B, 0x2188, 0x1968, 0x1967, 0x1967, 0xA576, 0xFFFF, 0xF79E, 0x6B4D, 0x428B, 0x428B, 0x6B8E, 0x6B6D, // 0x06D0 (1744) pixels +0x5B0D, 0x3A4B, 0x2188, 0x1967, 0x1968, 0x29C9, 0x29E9, 0x2168, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x06E0 (1760) pixels +0x1968, 0xEF5D, 0xFFFF, 0xF79E, 0xC638, 0xCE7A, 0xF7BE, 0xFFFF, 0xFFFF, 0x94D4, 0x29E9, 0x1968, 0x1967, 0x1968, 0x320A, 0x3A4B, // 0x06F0 (1776) pixels +0x2188, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2188, 0x3A4B, 0x31EA, 0x2168, 0x1967, 0x1967, 0x1967, 0xA556, 0xFFFF, // 0x0700 (1792) pixels +0xF7BE, 0x6B6D, 0x428B, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x3A4B, 0x6B8F, 0x6B6E, 0x5B0C, 0x426B, 0x2188, 0x1967, 0x1968, // 0x0710 (1808) pixels +0x3A2A, 0x3A2A, 0x2188, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0720 (1824) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0730 (1840) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0740 (1856) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0750 (1872) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0760 (1888) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0770 (1904) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x5B6F, // 0x0780 (1920) pixels -0x5BAF, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0790 (1936) pixels +0x5B90, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0790 (1936) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x07A0 (1952) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x07B0 (1968) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x07C0 (1984) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x07D0 (2000) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x07E0 (2016) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x07F0 (2032) pixels -0x1967, 0xBDF8, 0xFFFF, 0xFFDF, 0xFFDF, 0xFFFF, 0xFFFF, 0xCE9A, 0x3A4B, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0800 (2048) pixels -0x1967, 0x1967, 0x1968, 0xDF1C, 0xFFFF, 0xA534, 0x52CC, 0x29A8, 0x1968, 0x1967, 0x1967, 0x1968, 0xFFDF, 0xFFFF, 0x8C72, 0x428B, // 0x0810 (2064) pixels -0x7C11, 0xCE59, 0x9492, 0x52ED, 0x21A8, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0820 (2080) pixels -0xA556, 0xFFFF, 0xFFDF, 0xFFDF, 0xFFFF, 0xFFFF, 0xDEFB, 0x426B, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0830 (2096) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0xB5B7, 0xFFFF, 0xC638, 0x634E, 0x29C9, 0x2168, // 0x0840 (2112) pixels -0x1967, 0x1967, 0x428B, 0xBE18, 0xAD96, 0x6B8F, 0x29C9, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0850 (2128) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0860 (2144) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0x8451, 0x632D, 0x634D, // 0x07F0 (2032) pixels +0xEF5D, 0xFFFF, 0xF7BE, 0x73F0, 0x7C11, 0xF79E, 0xF7BE, 0x530D, 0x2188, 0x3A2A, 0xF79E, 0xF7BE, 0x8452, 0x29C9, 0x73F1, 0xFFFF, // 0x0800 (2048) pixels +0xFFFF, 0xAD75, 0xF79E, 0xFFFF, 0xF7BE, 0x9CF4, 0x31E9, 0x2168, 0xA576, 0xFFFF, 0xF7BE, 0x6B4D, 0x5B2E, 0xC659, 0xF7BE, 0xCE59, // 0x0810 (2064) pixels +0x634E, 0x4ACD, 0x320A, 0xA556, 0xF79E, 0xFFFF, 0xFFFF, 0xEF7E, 0x8CB3, 0x29E9, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0820 (2080) pixels +0x1968, 0xEF5D, 0xFFFF, 0xDEDB, 0x6B4D, 0x632D, 0x9CD3, 0xFFFF, 0xFFFF, 0xBDD7, 0x5B0D, 0x29C9, 0xA555, 0xF79E, 0xFFFF, 0xFFFF, // 0x0830 (2096) pixels +0xEF9E, 0x94D4, 0x31E9, 0x1968, 0x1967, 0x4AAC, 0xCE9A, 0xFFFF, 0xFFFF, 0xFFFF, 0xD6DB, 0x634E, 0x21A8, 0x1968, 0xA556, 0xFFFF, // 0x0840 (2112) pixels +0xF7BE, 0x6B4D, 0x5B2E, 0x29C9, 0x1967, 0x1967, 0x1967, 0x1967, 0xB5D7, 0xF79E, 0xD6BA, 0x634E, 0x52ED, 0x3A2A, 0xB5D8, 0xF7DF, // 0x0850 (2128) pixels +0xFFFF, 0xFFFF, 0xE75D, 0x7C32, 0x29C9, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0860 (2144) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0870 (2160) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0880 (2176) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0890 (2192) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x08A0 (2208) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x08B0 (2224) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x5B6F, // 0x08C0 (2240) pixels -0x5BAF, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x08D0 (2256) pixels +0x5B90, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x08D0 (2256) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x08E0 (2272) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x08F0 (2288) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0900 (2304) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0910 (2320) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0920 (2336) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0930 (2352) pixels -0x1967, 0xBE18, 0xFFFF, 0xBDF7, 0x73AE, 0x9CD3, 0xFFFF, 0xFFFF, 0x8452, 0x320A, 0x7C32, 0x8472, 0x31E9, 0x1968, 0x21A8, 0x7C31, // 0x0940 (2368) pixels -0x8472, 0x29E9, 0x1968, 0xDF1C, 0xFFFF, 0x9492, 0xA535, 0xA556, 0x73D0, 0x29C9, 0x1967, 0x1968, 0xFFDF, 0xFFFF, 0x7BCF, 0x5B2D, // 0x0950 (2384) pixels -0x73F0, 0x94F4, 0x73CF, 0x52CC, 0x320A, 0x29C9, 0x73D0, 0x9D15, 0x9D15, 0x73D0, 0x31E9, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0960 (2400) pixels -0xAD76, 0xFFFF, 0xC659, 0x73AF, 0x8C92, 0xFFDF, 0xFFFF, 0x94D4, 0x31E9, 0x2168, 0x428C, 0x8472, 0xA535, 0x8452, 0x322A, 0x2168, // 0x0970 (2416) pixels -0x1967, 0x1967, 0x2168, 0x636F, 0x94D4, 0x9D15, 0x6B8F, 0x29C9, 0x1968, 0x1967, 0xB5B7, 0xFFFF, 0xB5B7, 0x636E, 0x3A4B, 0x2188, // 0x0980 (2432) pixels -0x1967, 0x1967, 0x426B, 0x8CB3, 0x8C92, 0x52EC, 0x426B, 0x21A8, 0x52ED, 0x8CB3, 0x9D35, 0x7C11, 0x31E9, 0x2168, 0x1967, 0x1967, // 0x0990 (2448) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x09A0 (2464) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0x8431, 0x6B8F, 0x5B2D, // 0x0930 (2352) pixels +0xEF7D, 0xFFFF, 0xEF5D, 0x6B8E, 0x94F4, 0xFFFF, 0xFFFF, 0x94D3, 0x320A, 0x426B, 0xFFFF, 0xFFFF, 0xB5D7, 0x4ACC, 0x7C11, 0xFFFF, // 0x0940 (2368) pixels +0xFFFF, 0xF7BE, 0xEF5D, 0xFFDF, 0xFFFF, 0xFFFF, 0x8452, 0x29C9, 0xA576, 0xFFFF, 0xF7BE, 0x6B4D, 0x636E, 0xD6BB, 0xFFFF, 0xE71C, // 0x0950 (2384) pixels +0x7C11, 0x426B, 0xD69A, 0xFFFF, 0xFFFF, 0xEF5D, 0xE73C, 0xFFDF, 0xD6DB, 0x5B2E, 0x2188, 0x1968, 0x1968, 0x1968, 0x1968, 0x1967, // 0x0960 (2400) pixels +0x1968, 0xEF5D, 0xFFFF, 0xDEDB, 0x6B6E, 0x634E, 0x94D4, 0xFFFF, 0xFFFF, 0xA534, 0x6B8F, 0xBDF8, 0xFFFF, 0xFFFF, 0xE71C, 0xE73C, // 0x0970 (2416) pixels +0xFFFF, 0xFFFF, 0xA556, 0x320A, 0x3A2A, 0xF79E, 0xFFFF, 0xF7BE, 0xDEFB, 0xF7BE, 0xFFFF, 0xF7BE, 0x636F, 0x21A8, 0xA556, 0xFFFF, // 0x0980 (2432) pixels +0xF7BE, 0x6B4D, 0x636E, 0x29C9, 0x1967, 0x1967, 0x1967, 0x1968, 0xC659, 0xFFFF, 0xEF5D, 0x8431, 0x426B, 0xD6BB, 0xFFFF, 0xFFDF, // 0x0990 (2448) pixels +0xDEFC, 0xEF5D, 0xFFFF, 0xFFFF, 0x8C93, 0x29C9, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x09A0 (2464) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x09B0 (2480) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x09C0 (2496) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x09D0 (2512) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x09E0 (2528) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x09F0 (2544) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x5B6F, // 0x0A00 (2560) pixels -0x5BAF, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0A10 (2576) pixels +0x5B90, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0A10 (2576) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0A20 (2592) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0A30 (2608) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0A40 (2624) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0A50 (2640) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0A60 (2656) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0A70 (2672) pixels -0x1967, 0xBE18, 0xFFFF, 0xB596, 0x632D, 0x5B0D, 0xF7BE, 0xFFFF, 0x9492, 0x5B2E, 0xFFFF, 0xFFFF, 0x6B8F, 0x21A8, 0x3A2A, 0xFFFF, // 0x0A80 (2688) pixels -0xFFFF, 0x636F, 0x21A8, 0xDF1C, 0xFFFF, 0xE71C, 0xFFFF, 0xFFFF, 0xFFFF, 0xAD96, 0x320A, 0x2168, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x0A90 (2704) pixels -0xC659, 0xFFFF, 0xAD76, 0x636E, 0x428B, 0xDEFB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x6B8F, 0x29A8, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0AA0 (2720) pixels -0xAD76, 0xFFFF, 0xC618, 0x632D, 0x5B0D, 0xE73D, 0xFFFF, 0x9CF4, 0x5B0D, 0x8452, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEF5D, 0x530D, // 0x0AB0 (2736) pixels -0x2188, 0x2188, 0xBE39, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC639, 0x3A2A, 0x2168, 0xB5B7, 0xFFFF, 0xB5B7, 0x6B8F, 0x4AAC, 0x2188, // 0x0AC0 (2752) pixels -0x1967, 0x1967, 0x73D0, 0xFFFF, 0xDEFB, 0x6BAF, 0x4A8C, 0x9D15, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xDEFC, 0x428C, 0x2188, 0x1967, // 0x0AD0 (2768) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0AE0 (2784) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0xBDF7, 0xBE18, 0xDEFB, // 0x0A70 (2672) pixels +0xFFFF, 0xFFFF, 0xBDD7, 0x634D, 0xA555, 0xFFFF, 0xFFFF, 0x7BCF, 0x52CC, 0x4AAC, 0xFFFF, 0xFFFF, 0x9CF4, 0x5B2D, 0x8452, 0xFFFF, // 0x0A80 (2688) pixels +0xFFFF, 0x8430, 0x7BF0, 0x8431, 0xFFFF, 0xFFFF, 0xBE18, 0x52ED, 0xAD76, 0xFFFF, 0xF7BE, 0x6B4D, 0x636E, 0xD6DB, 0xFFFF, 0xD6BA, // 0x0A90 (2704) pixels +0x634E, 0x7C31, 0xFFFF, 0xFFFF, 0xBE18, 0x6B6E, 0x632C, 0x73AF, 0x9CF3, 0x7BF0, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0x428B, // 0x0AA0 (2720) pixels +0x2188, 0xEF5D, 0xFFFF, 0xEF5D, 0xB5B7, 0xC639, 0xF7BE, 0xFFFF, 0xFFDF, 0x7BCF, 0x7C10, 0xFFFF, 0xFFFF, 0xCE59, 0x6B6D, 0x632D, // 0x0AB0 (2736) pixels +0xD6DB, 0xFFFF, 0xEF9E, 0x6B8F, 0x9CF4, 0xFFFF, 0xFFFF, 0x9492, 0x632D, 0x7BCF, 0xFFFF, 0xFFFF, 0xBE18, 0x428C, 0xA556, 0xFFFF, // 0x0AC0 (2752) pixels +0xF7BE, 0x6B4D, 0x636E, 0x29C9, 0x1967, 0x1967, 0x1967, 0x1968, 0xC659, 0xFFFF, 0xE71C, 0x6B6E, 0x73F1, 0xFFFF, 0xFFFF, 0xB5B6, // 0x0AD0 (2768) pixels +0x6B4D, 0x632D, 0xEF7D, 0xFFFF, 0xDEFB, 0x5B2D, 0x21A8, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0AE0 (2784) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0AF0 (2800) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B00 (2816) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B10 (2832) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B20 (2848) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B30 (2864) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x5B6F, // 0x0B40 (2880) pixels -0x5BB0, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B50 (2896) pixels +0x5B90, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B50 (2896) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B60 (2912) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B70 (2928) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B80 (2944) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B90 (2960) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0BA0 (2976) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0BB0 (2992) pixels -0x1967, 0xBE18, 0xFFFF, 0xBDD7, 0x8431, 0xAD97, 0xFFFF, 0xFFFF, 0x73AE, 0x73D0, 0xFFFF, 0xFFFF, 0x7C10, 0x3A2A, 0x3A4B, 0xFFFF, // 0x0BC0 (3008) pixels -0xFFFF, 0x7BF0, 0x3A2A, 0xE71C, 0xFFFF, 0xDEFB, 0xA514, 0xBE18, 0xFFFF, 0xFFDF, 0x73D0, 0x29C9, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x0BD0 (3024) pixels -0xCE7A, 0xFFFF, 0xB5D7, 0x634E, 0xA555, 0xFFFF, 0xEF7D, 0xAD55, 0x9CF4, 0xAD75, 0x73AF, 0x3A2A, 0x2188, 0x1967, 0x1967, 0x1968, // 0x0BE0 (3040) pixels -0xAD76, 0xFFFF, 0xC638, 0x8431, 0xA555, 0xFFFF, 0xFFFF, 0x8410, 0x73F0, 0xFFDF, 0xFFFF, 0xCE59, 0x9CF3, 0xDEDB, 0xFFFF, 0xD69A, // 0x0BF0 (3056) pixels -0x428B, 0x7C11, 0xFFFF, 0xF7BE, 0xB596, 0xA534, 0xF7BE, 0xFFFF, 0x9D14, 0x31E9, 0xB5B7, 0xFFFF, 0xB5B7, 0x6BAF, 0x4AAC, 0x2188, // 0x0C00 (3072) pixels -0x1967, 0x1967, 0x73F1, 0xFFFF, 0xE73C, 0x73D0, 0x636F, 0xFFFF, 0xFFFF, 0xBDF8, 0x9CF4, 0xE73C, 0xFFFF, 0xBE18, 0x3A4B, 0x2168, // 0x0C10 (3088) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0C20 (3104) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0BB0 (2992) pixels +0xFFFF, 0xD6BA, 0x6B6D, 0x634D, 0xA556, 0xFFFF, 0xFFFF, 0x73CF, 0x6B8F, 0x52ED, 0xFFFF, 0xFFFF, 0x9CF3, 0x6BAF, 0x8C93, 0xFFFF, // 0x0BC0 (3008) pixels +0xFFFF, 0x7BCF, 0x5B2D, 0x52EC, 0xF79E, 0xFFFF, 0xCE59, 0x73CF, 0xAD97, 0xFFFF, 0xF7BE, 0x6B4D, 0x636E, 0xD6DB, 0xFFFF, 0xD6BA, // 0x0BD0 (3024) pixels +0x6B8E, 0xB5B7, 0xFFFF, 0xFFFF, 0x73AF, 0x5B0C, 0x5B0D, 0x5B0D, 0x5B0D, 0x7BF0, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8452, // 0x0BE0 (3040) pixels +0x29E9, 0xEF5D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0x9CF3, 0x632C, 0x94D4, 0xFFFF, 0xFFFF, 0x94D3, 0x5B0C, 0x5B2D, // 0x0BF0 (3056) pixels +0xB5D7, 0xFFFF, 0xFFFF, 0x7C10, 0xCE7A, 0xFFFF, 0xF79E, 0x632D, 0x5B0D, 0x632E, 0xF79E, 0xFFFF, 0xCE7A, 0x6BAF, 0xAD76, 0xFFFF, // 0x0C00 (3072) pixels +0xF7BE, 0x6B4D, 0x636E, 0x29C9, 0x1967, 0x1967, 0x1967, 0x1968, 0xC659, 0xFFFF, 0xDEFB, 0x6B8E, 0xAD76, 0xFFFF, 0xFFFF, 0x7C10, // 0x0C10 (3088) pixels +0x5B0C, 0x5B2D, 0xCE7A, 0xFFFF, 0xF79E, 0x73CF, 0x320A, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0C20 (3104) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0C30 (3120) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0C40 (3136) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0C50 (3152) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0C60 (3168) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0C70 (3184) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x5B6F, // 0x0C80 (3200) pixels -0x74B3, 0x63B0, 0x63AF, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0C90 (3216) pixels +0x7493, 0x63B0, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0C90 (3216) pixels 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0CA0 (3232) pixels 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0CB0 (3248) pixels 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0CC0 (3264) pixels 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0CD0 (3280) pixels 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0CE0 (3296) pixels -0x638F, 0x638F, 0x638F, 0x638F, 0x428C, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0CF0 (3312) pixels -0x1967, 0xBE18, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xBDF7, 0x632C, 0x73D0, 0xFFFF, 0xFFFF, 0x6B4D, 0x52ED, 0x428B, 0xFFFF, // 0x0D00 (3328) pixels -0xFFFF, 0x632D, 0x52ED, 0xE71C, 0xFFFF, 0xA514, 0x6B4D, 0x5AEC, 0xF7BE, 0xFFFF, 0x94B3, 0x428C, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x0D10 (3344) pixels -0xCE7A, 0xFFFF, 0xA555, 0x636E, 0xDEFC, 0xFFFF, 0xAD76, 0x5B0C, 0x52CC, 0x52EC, 0x52CC, 0x8CB3, 0x8C93, 0x8472, 0x73D0, 0x29C9, // 0x0D20 (3360) pixels -0xAD76, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCE79, 0x632D, 0x94B3, 0xFFFF, 0xEF7D, 0x6B6D, 0x52CC, 0x8431, 0xFFFF, 0xF79E, // 0x0D30 (3376) pixels -0x73F0, 0xB5D7, 0xFFFF, 0xC638, 0x632D, 0x52CC, 0xBDF7, 0xFFFF, 0xC639, 0x634E, 0xB5D7, 0xFFFF, 0xB5B7, 0x6BAF, 0x4AAC, 0x2188, // 0x0D40 (3392) pixels -0x1967, 0x1967, 0x73F1, 0xFFFF, 0xDEFB, 0x6B6E, 0x9D15, 0xFFFF, 0xDEFC, 0x634D, 0x52CC, 0x9CF4, 0xFFFF, 0xE71C, 0x6BAF, 0x29C9, // 0x0D50 (3408) pixels -0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x3A2A, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0D60 (3424) pixels +0x638F, 0x638F, 0x638F, 0x638F, 0x428C, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0xC618, 0xBDF7, 0xB5B6, // 0x0CF0 (3312) pixels +0x9492, 0x632D, 0x5B0C, 0x636E, 0x9D15, 0xFFFF, 0xFFFF, 0x7BEF, 0x6B8F, 0x52ED, 0xFFFF, 0xFFFF, 0x9CF3, 0x73AF, 0x8CB3, 0xFFFF, // 0x0D00 (3328) pixels +0xFFFF, 0x7BEF, 0x73D0, 0x52ED, 0xF7BE, 0xFFFF, 0xC618, 0x73AF, 0xB5D8, 0xFFFF, 0xF7BE, 0x6B4D, 0x636E, 0xD6DB, 0xFFFF, 0xD6BA, // 0x0D10 (3344) pixels +0x6B8E, 0xB5D7, 0xFFFF, 0xFFFF, 0x73AE, 0x6B8F, 0x5B0E, 0x426B, 0x3A4B, 0x4AAC, 0x8C73, 0x94B3, 0x9492, 0x9492, 0x9492, 0x634D, // 0x0D20 (3360) pixels +0x428B, 0xEF7D, 0xFFFF, 0xEF5D, 0xB5B6, 0xBDF7, 0xAD75, 0x73CF, 0x630C, 0x632D, 0x94F4, 0xFFFF, 0xFFFF, 0x94B2, 0x6B8F, 0x5B2E, // 0x0D30 (3376) pixels +0xADB7, 0xFFFF, 0xFFFF, 0x738E, 0xD6BA, 0xFFFF, 0xF79E, 0x634D, 0x6B8F, 0x4ACC, 0xF79E, 0xFFFF, 0xCE79, 0x73AF, 0xB5B7, 0xFFFF, // 0x0D40 (3392) pixels +0xF7BE, 0x6B4D, 0x636E, 0x29C9, 0x1968, 0x1968, 0x1967, 0x1968, 0xC659, 0xFFFF, 0xDEFB, 0x6B8E, 0xAD96, 0xFFFF, 0xFFFF, 0x7BEF, // 0x0D50 (3408) pixels +0x6B8F, 0x530D, 0xCE7A, 0xFFFF, 0xF79E, 0x6B8E, 0x4ACC, 0x21A8, 0x1967, 0x1967, 0x1967, 0x3A2A, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0D60 (3424) pixels 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0D70 (3440) pixels 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0D80 (3456) pixels 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0D90 (3472) pixels 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0DA0 (3488) pixels 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, // 0x0DB0 (3504) pixels -0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x63AF, 0x63B0, 0x84D4, // 0x0DC0 (3520) pixels -0x038F, 0x028B, 0x0229, 0x0229, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, // 0x0DD0 (3536) pixels -0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, // 0x0DE0 (3552) pixels -0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, // 0x0DF0 (3568) pixels -0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, // 0x0E00 (3584) pixels -0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, // 0x0E10 (3600) pixels -0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, // 0x0E20 (3616) pixels -0x0209, 0x0209, 0x0209, 0x01E8, 0x434D, 0x428C, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0E30 (3632) pixels -0x1967, 0xBE18, 0xFFFF, 0xE73C, 0xD6BA, 0xD69A, 0xA535, 0x632D, 0x5B0C, 0x73D0, 0xFFFF, 0xFFFF, 0x6B6D, 0x636F, 0x4ACD, 0xFFFF, // 0x0E40 (3648) pixels -0xFFFF, 0x634D, 0x636F, 0xE73C, 0xFFFF, 0x94B2, 0x634E, 0x5B4E, 0xE75D, 0xFFFF, 0x94B2, 0x636E, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x0E50 (3664) pixels -0xCE7A, 0xFFFF, 0xA555, 0x6BAF, 0xEF7D, 0xFFFF, 0x94B2, 0x632D, 0x634E, 0x52CC, 0x4AAC, 0xEF9E, 0xFFFF, 0xFFFF, 0xDF1C, 0x5B0D, // 0x0E60 (3680) pixels -0xAD76, 0xFFFF, 0xEF5D, 0xD6BA, 0xD69A, 0xAD76, 0x634D, 0x5B0C, 0xA555, 0xFFFF, 0xE71C, 0x632D, 0x634E, 0x73F0, 0xFFFF, 0xFFFF, // 0x0E70 (3696) pixels -0x738E, 0xD69A, 0xFFFF, 0xAD75, 0x632D, 0x636E, 0xAD97, 0xFFFF, 0xCE79, 0x73AF, 0xBDF8, 0xFFFF, 0xB5B7, 0x6BAF, 0x4AAC, 0x2188, // 0x0E80 (3712) pixels -0x1967, 0x1967, 0x73F1, 0xFFFF, 0xDEFB, 0x6B8E, 0xB5D7, 0xFFFF, 0xCE79, 0x632D, 0x636E, 0x8C93, 0xFFFF, 0xEF5D, 0x73AF, 0x426B, // 0x0E90 (3728) pixels -0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x31EA, 0x53AF, 0x01E8, 0x0209, 0x0209, 0x0209, // 0x0EA0 (3744) pixels -0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, // 0x0EB0 (3760) pixels -0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, // 0x0EC0 (3776) pixels -0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, // 0x0ED0 (3792) pixels -0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, // 0x0EE0 (3808) pixels -0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, // 0x0EF0 (3824) pixels -0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0229, 0x0229, 0x026A, 0x034E, // 0x0F00 (3840) pixels -0x0452, 0x038F, 0x032E, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, // 0x0F10 (3856) pixels -0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, // 0x0F20 (3872) pixels -0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, // 0x0F30 (3888) pixels -0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, // 0x0F40 (3904) pixels -0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, // 0x0F50 (3920) pixels -0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, // 0x0F60 (3936) pixels -0x032D, 0x032D, 0x030D, 0x02CC, 0x026A, 0x4B8E, 0x3A6B, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0F70 (3952) pixels -0x1967, 0xBE18, 0xFFFF, 0xB5B6, 0x6B4D, 0x632D, 0x5AEC, 0x52CC, 0x634E, 0x5B4E, 0xFFFF, 0xFFFF, 0x73AE, 0x6B8F, 0x6BD0, 0xFFFF, // 0x0F80 (3968) pixels -0xFFFF, 0x634D, 0x636F, 0xE73C, 0xFFFF, 0xA555, 0x73AF, 0x530D, 0xFFDF, 0xFFFF, 0x8430, 0x6B8F, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x0F90 (3984) pixels -0xCE7A, 0xFFFF, 0xAD55, 0x73AF, 0xDEFB, 0xFFFF, 0xAD55, 0x73AF, 0x4ACC, 0x29E9, 0x29C9, 0x8472, 0xAD96, 0xAD96, 0xA514, 0x6B6E, // 0x0FA0 (4000) pixels -0xB5B7, 0xFFFF, 0xC618, 0x6B4D, 0x632D, 0x5AEC, 0x52CC, 0x5B2D, 0x8CB3, 0xFFFF, 0xEF7D, 0x6B8E, 0x636F, 0x73F1, 0xFFFF, 0xEF7D, // 0x0FB0 (4016) pixels -0x634D, 0xC659, 0xFFFF, 0xC618, 0x73AF, 0x530D, 0xBDF8, 0xFFFF, 0xBDF7, 0x6B8F, 0xC639, 0xFFFF, 0xB5B7, 0x6BAF, 0x4AAC, 0x21A8, // 0x0FC0 (4032) pixels -0x1968, 0x1968, 0x73F1, 0xFFFF, 0xDEFB, 0x6B8E, 0xA576, 0xFFFF, 0xDEFB, 0x6B8E, 0x634E, 0x94D4, 0xFFFF, 0xDEDB, 0x6B6E, 0x52ED, // 0x0FD0 (4048) pixels -0x29A8, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x29C9, 0x5BCF, 0x026A, 0x02CC, 0x030D, 0x032D, 0x032D, // 0x0FE0 (4064) pixels -0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, // 0x0FF0 (4080) pixels -0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, // 0x1000 (4096) pixels -0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, // 0x1010 (4112) pixels -0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, // 0x1020 (4128) pixels -0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, // 0x1030 (4144) pixels -0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032D, 0x032E, 0x036F, 0x0432, // 0x1040 (4160) pixels -0x0557, 0x04D5, 0x0494, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, // 0x1050 (4176) pixels -0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, // 0x1060 (4192) pixels -0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, // 0x1070 (4208) pixels -0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, // 0x1080 (4224) pixels -0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, // 0x1090 (4240) pixels -0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, // 0x10A0 (4256) pixels -0x0493, 0x0493, 0x0473, 0x0411, 0x036F, 0x02AB, 0x53CF, 0x3A2A, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x10B0 (4272) pixels -0x1967, 0xBE18, 0xFFFF, 0xB596, 0x6B6E, 0x5B2D, 0x52ED, 0x530D, 0x4AAC, 0x320A, 0xF79E, 0xFFFF, 0xC659, 0xAD76, 0xE71C, 0xFFFF, // 0x10C0 (4288) pixels -0xFFFF, 0x634D, 0x636F, 0xE73C, 0xFFFF, 0xEF7D, 0xB596, 0xC659, 0xFFFF, 0xF79E, 0x6B6D, 0x6B8F, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x10D0 (4304) pixels -0xCE7A, 0xFFFF, 0xAD55, 0x73AF, 0xB5D8, 0xFFFF, 0xF79E, 0xB5B7, 0x9D15, 0xCE7A, 0x3A4B, 0x29C9, 0x424A, 0x52CB, 0x52EC, 0x52CC, // 0x10E0 (4320) pixels -0xBDF8, 0xFFFF, 0xC618, 0x6B6E, 0x5B2D, 0x530D, 0x530D, 0x4ACC, 0x426B, 0xEF7D, 0xFFFF, 0xCE59, 0xA556, 0xE71C, 0xFFFF, 0xC638, // 0x10F0 (4336) pixels -0x632D, 0x9CF4, 0xFFFF, 0xFFDF, 0xB5B7, 0xA576, 0xFFDF, 0xFFFF, 0x9492, 0x6B6E, 0xC639, 0xFFFF, 0xB5B7, 0x6BAF, 0x8C73, 0xE71C, // 0x1100 (4352) pixels -0x94F4, 0x31E9, 0x7411, 0xFFFF, 0xDEFB, 0x6B8E, 0x73F0, 0xFFDF, 0xFFFF, 0xC618, 0xA555, 0xEF7E, 0xFFFF, 0xAD76, 0x634D, 0x5B2E, // 0x1110 (4368) pixels -0x29A9, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x21A8, 0x63F0, 0x028B, 0x034E, 0x0411, 0x0453, 0x0493, 0x0493, // 0x1120 (4384) pixels -0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, // 0x1130 (4400) pixels -0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, // 0x1140 (4416) pixels -0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, // 0x1150 (4432) pixels -0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, // 0x1160 (4448) pixels -0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, // 0x1170 (4464) pixels -0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0494, 0x04D4, 0x0557, // 0x1180 (4480) pixels -0x061A, 0x05D9, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, // 0x1190 (4496) pixels -0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, // 0x11A0 (4512) pixels -0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, // 0x11B0 (4528) pixels -0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, // 0x11C0 (4544) pixels -0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, // 0x11D0 (4560) pixels -0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, // 0x11E0 (4576) pixels -0x05B8, 0x0598, 0x0598, 0x0536, 0x0494, 0x038F, 0x02AB, 0x63F0, 0x31EA, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x11F0 (4592) pixels -0x1967, 0xBE18, 0xFFFF, 0xB596, 0x73AF, 0x530D, 0x3A4B, 0x320A, 0x29A8, 0x2168, 0x94D4, 0xFFFF, 0xFFFF, 0xFFFF, 0xE71C, 0xEF7D, // 0x1200 (4608) pixels -0xFFFF, 0x634D, 0x636F, 0xE73C, 0xFFFF, 0xCE79, 0xFFFF, 0xFFFF, 0xFFDF, 0xA514, 0x630C, 0x636F, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x1210 (4624) pixels -0xCE7A, 0xFFFF, 0xA555, 0x6BAF, 0x636F, 0xDEDB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0x7C11, 0x29A9, 0x29A8, 0x428B, 0x4ACC, 0x4ACC, // 0x1220 (4640) pixels -0xB5D8, 0xFFFF, 0xC618, 0x73AF, 0x5B2E, 0x3A4B, 0x320A, 0x29C9, 0x2188, 0x6B8F, 0xEF7D, 0xFFFF, 0xFFFF, 0xFFFF, 0xE71C, 0x73AE, // 0x1230 (4656) pixels -0x632D, 0x638F, 0xA555, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xBDF8, 0x632D, 0x636E, 0xC639, 0xFFFF, 0xB5B7, 0x6BAF, 0xB5D8, 0xFFFF, // 0x1240 (4672) pixels -0xE71C, 0x634E, 0x7C31, 0xFFFF, 0xDEFB, 0x6B8E, 0x5B2E, 0x8472, 0xF7BE, 0xFFFF, 0xFFFF, 0xFFFF, 0xD6BA, 0x6B6D, 0x634D, 0x530D, // 0x1250 (4688) pixels -0x29A8, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2188, 0x63F0, 0x028B, 0x036F, 0x0473, 0x0536, 0x0578, 0x0598, 0x05B8, // 0x1260 (4704) pixels -0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, // 0x1270 (4720) pixels -0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, // 0x1280 (4736) pixels -0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, // 0x1290 (4752) pixels -0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, // 0x12A0 (4768) pixels -0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, // 0x12B0 (4784) pixels -0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05D9, 0x05FA, // 0x12C0 (4800) pixels -0x067C, 0x065B, 0x065B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, // 0x12D0 (4816) pixels -0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, // 0x12E0 (4832) pixels -0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, // 0x12F0 (4848) pixels -0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, // 0x1300 (4864) pixels -0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, // 0x1310 (4880) pixels -0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, // 0x1320 (4896) pixels -0x063B, 0x063B, 0x063A, 0x05F9, 0x0598, 0x04B4, 0x038F, 0x028B, 0x5BF0, 0x29C9, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1330 (4912) pixels -0x1967, 0x52ED, 0x8C72, 0x73AE, 0x6B6E, 0x4AAC, 0x21A8, 0x1968, 0x1967, 0x1967, 0x29E9, 0x6B8F, 0x9CD3, 0x94B2, 0x7C10, 0x7BF0, // 0x1340 (4928) pixels -0x8451, 0x630C, 0x636F, 0x6BB0, 0x8451, 0x632D, 0x8C92, 0xAD55, 0x8451, 0x630C, 0x5B2D, 0x634E, 0x73F1, 0x8C72, 0x632D, 0x6B8F, // 0x1350 (4944) pixels -0x6B8F, 0x8C72, 0x6B8E, 0x6B6E, 0x428C, 0x426B, 0x8410, 0x9CF3, 0xA535, 0x8C51, 0x632D, 0x426B, 0x21A8, 0x29C9, 0x29C9, 0x29C9, // 0x1360 (4960) pixels -0x52ED, 0x8452, 0x73CF, 0x6B6E, 0x4ACC, 0x21A8, 0x1968, 0x1967, 0x1967, 0x29A9, 0x52CC, 0x9492, 0xA534, 0x9CD3, 0x6B6E, 0x5AEC, // 0x1370 (4976) pixels -0x634E, 0x52ED, 0x3A2A, 0x6B8E, 0x9CD3, 0xA534, 0x8C71, 0x632D, 0x5AEC, 0x634E, 0x6B8F, 0x8C72, 0x73AF, 0x6B6E, 0x638F, 0x9D35, // 0x1380 (4992) pixels -0x7BF0, 0x632D, 0x52ED, 0x8451, 0x7C10, 0x634D, 0x5B0D, 0x322A, 0x5B0D, 0x94B2, 0xA534, 0x94B2, 0x6B4D, 0x5AEC, 0x634E, 0x4AAC, // 0x1390 (5008) pixels -0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2168, 0x63F0, 0x028B, 0x036E, 0x0493, 0x0577, 0x05F9, 0x063A, 0x063B, 0x063B, // 0x13A0 (5024) pixels -0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, // 0x13B0 (5040) pixels -0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, // 0x13C0 (5056) pixels -0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, // 0x13D0 (5072) pixels -0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, // 0x13E0 (5088) pixels -0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, // 0x13F0 (5104) pixels -0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x063B, 0x065B, 0x065B, 0x067C, // 0x1400 (5120) pixels -0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, // 0x1410 (5136) pixels -0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, // 0x1420 (5152) pixels -0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, // 0x1430 (5168) pixels -0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, // 0x1440 (5184) pixels -0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, // 0x1450 (5200) pixels -0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, // 0x1460 (5216) pixels -0x069C, 0x069C, 0x067C, 0x067B, 0x061A, 0x0598, 0x04B4, 0x038F, 0x028B, 0x63F0, 0x21A8, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1470 (5232) pixels -0x1967, 0x2188, 0x3209, 0x4A8B, 0x5B0D, 0x426B, 0x2188, 0x1967, 0x1967, 0x1967, 0x1968, 0x29C8, 0x4A8B, 0x52EC, 0x4AAB, 0x4AAB, // 0x1480 (5248) pixels -0x52CC, 0x52CC, 0x5B0D, 0x31E9, 0x3A09, 0x4A8B, 0x5B0D, 0x52CC, 0x52AB, 0x4AAB, 0x5B2E, 0x428C, 0x29C9, 0x3A09, 0x52AB, 0x5B2D, // 0x1490 (5264) pixels -0x322A, 0x3209, 0x4A8B, 0x5B0D, 0x3A4B, 0x29A9, 0x3A09, 0x52CC, 0x52EC, 0x4AAB, 0x4A8B, 0x4ACC, 0x29A8, 0x1967, 0x1967, 0x1967, // 0x14A0 (5280) pixels -0x2188, 0x31E9, 0x426A, 0x52ED, 0x428C, 0x2188, 0x1967, 0x1967, 0x1967, 0x1968, 0x29A8, 0x426A, 0x52EC, 0x52CB, 0x4A8B, 0x52CC, // 0x14B0 (5296) pixels -0x530D, 0x322A, 0x2188, 0x31E9, 0x4A8B, 0x52EC, 0x4AAB, 0x4A8B, 0x5B0D, 0x4ACD, 0x31E9, 0x3209, 0x4A8B, 0x530D, 0x428B, 0x3209, // 0x14C0 (5312) pixels -0x4A6A, 0x52CC, 0x428C, 0x320A, 0x424A, 0x52EC, 0x4ACC, 0x29A8, 0x29C9, 0x4A8B, 0x5AEC, 0x52AB, 0x4A8B, 0x52ED, 0x52ED, 0x320A, // 0x14D0 (5328) pixels -0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x63F0, 0x0AAB, 0x034E, 0x0493, 0x0577, 0x061A, 0x065B, 0x067C, 0x069C, 0x069C, // 0x14E0 (5344) pixels -0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, // 0x14F0 (5360) pixels -0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x063B, 0x05B8, 0x065B, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, // 0x1500 (5376) pixels -0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, // 0x1510 (5392) pixels -0x069C, 0x05B8, 0x05FA, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, // 0x1520 (5408) pixels -0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, // 0x1530 (5424) pixels -0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, 0x069C, // 0x1540 (5440) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x04F5, // 0x1550 (5456) pixels -0x0473, 0x0473, 0x04D5, 0x061A, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1560 (5472) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x065B, 0x0473, 0x0473, 0x0493, 0x0557, 0x06BD, 0x06BD, // 0x1570 (5488) pixels -0x06BD, 0x0598, 0x0186, 0x04F5, 0x06BD, 0x0577, 0x01A7, 0x00E3, 0x028B, 0x05F9, 0x0208, 0x00E4, 0x01A7, 0x036E, 0x01E8, 0x069C, // 0x1580 (5504) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x024A, 0x0186, 0x069C, // 0x1590 (5520) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x15A0 (5536) pixels -0x06BD, 0x06BD, 0x069C, 0x069C, 0x067C, 0x063A, 0x0598, 0x0494, 0x036F, 0x028B, 0x63F0, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, // 0x15B0 (5552) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x15C0 (5568) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x15D0 (5584) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x15E0 (5600) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x15F0 (5616) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1600 (5632) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1610 (5648) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x6BF0, 0x12AB, 0x034E, 0x0473, 0x0577, 0x061A, 0x067C, 0x069C, 0x069C, 0x04D4, 0x0229, // 0x1620 (5664) pixels -0x0229, 0x0229, 0x0229, 0x0229, 0x0453, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x065B, 0x069C, 0x06BD, 0x06BD, // 0x1630 (5680) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x0452, 0x0000, 0x04B4, 0x069C, 0x06BD, 0x06BD, 0x065B, 0x0229, 0x0411, 0x06BD, // 0x1640 (5696) pixels -0x06BD, 0x0557, 0x0229, 0x0516, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1650 (5712) pixels -0x06BD, 0x0000, 0x024A, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x02CC, 0x0229, 0x026A, 0x030D, 0x0557, // 0x1660 (5728) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x067C, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1670 (5744) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1680 (5760) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x0186, // 0x1690 (5776) pixels -0x0000, 0x0000, 0x0000, 0x0000, 0x03F1, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x16A0 (5792) pixels -0x06BD, 0x06BD, 0x0598, 0x01E8, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x0598, 0x0000, 0x0000, 0x0000, 0x0000, 0x0125, 0x0598, // 0x16B0 (5808) pixels -0x06BD, 0x05B8, 0x0208, 0x04D5, 0x067C, 0x0229, 0x0000, 0x032D, 0x0452, 0x030D, 0x0000, 0x02AB, 0x03D0, 0x036F, 0x024A, 0x065B, // 0x16C0 (5824) pixels -0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x01A7, 0x00A3, 0x063B, // 0x16D0 (5840) pixels -0x069C, 0x026A, 0x0516, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x16E0 (5856) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x067C, 0x061A, 0x0577, 0x0493, 0x036E, 0x028B, 0x63F0, 0x2168, 0x1967, 0x1967, 0x1967, // 0x16F0 (5872) pixels +0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x638F, 0x63B0, 0x84D4, // 0x0DC0 (3520) pixels +0x0330, 0x024B, 0x020A, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, // 0x0DD0 (3536) pixels +0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, // 0x0DE0 (3552) pixels +0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, // 0x0DF0 (3568) pixels +0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, // 0x0E00 (3584) pixels +0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, // 0x0E10 (3600) pixels +0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, // 0x0E20 (3616) pixels +0x01E9, 0x01E9, 0x01E9, 0x01C9, 0x432E, 0x428C, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0x8C51, 0x634D, 0x5B2D, // 0x0E30 (3632) pixels +0x5AEC, 0x5AEC, 0x5B2D, 0x5B2E, 0x8452, 0xFFFF, 0xFFFF, 0xAD55, 0x7BF0, 0x8472, 0xFFFF, 0xFFFF, 0x9CF3, 0x73AF, 0x8CB3, 0xFFFF, // 0x0E40 (3648) pixels +0xFFFF, 0x7BEF, 0x6B8F, 0x8472, 0xFFFF, 0xFFFF, 0xA534, 0x6B8E, 0xBDF8, 0xFFFF, 0xF7BE, 0x6B4D, 0x636E, 0xD6DB, 0xFFFF, 0xD6BA, // 0x0E50 (3664) pixels +0x6B8E, 0x94D4, 0xFFFF, 0xFFFF, 0xB5D7, 0x73F0, 0x3A4B, 0x4AAC, 0x8473, 0x320A, 0x320A, 0x3A2A, 0x52CC, 0x5AEC, 0x5AEC, 0x52EC, // 0x0E60 (3680) pixels +0x5B0D, 0xEF7D, 0xFFFF, 0xDEDB, 0x6B4D, 0x632D, 0x5B0D, 0x5AEC, 0x5B0D, 0x634E, 0x636F, 0xFFFF, 0xFFFF, 0xC618, 0x73F0, 0x4AAC, // 0x0E70 (3696) pixels +0xD6DB, 0xFFFF, 0xE75D, 0x632D, 0xBDD8, 0xFFFF, 0xFFFF, 0x8C51, 0x6B8F, 0x5B4E, 0xFFFF, 0xFFFF, 0xAD75, 0x6B6E, 0xBDF8, 0xFFFF, // 0x0E80 (3712) pixels +0xF7BE, 0x6B4D, 0x636E, 0xB5B7, 0xF79E, 0xE73C, 0x3A4B, 0x2168, 0xC659, 0xFFFF, 0xDEFB, 0x6B8E, 0x8C93, 0xFFFF, 0xFFFF, 0xAD55, // 0x0E90 (3728) pixels +0x73D0, 0x4AAC, 0xEF7E, 0xFFFF, 0xD69A, 0x634D, 0x5B2E, 0x29C9, 0x1967, 0x1967, 0x31EA, 0x538F, 0x01C8, 0x01E9, 0x01E9, 0x01E9, // 0x0EA0 (3744) pixels +0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, // 0x0EB0 (3760) pixels +0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, // 0x0EC0 (3776) pixels +0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, // 0x0ED0 (3792) pixels +0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, // 0x0EE0 (3808) pixels +0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, // 0x0EF0 (3824) pixels +0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x020A, 0x022B, 0x030F, // 0x0F00 (3840) pixels +0x0BF3, 0x0350, 0x02EE, 0x02EE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, // 0x0F10 (3856) pixels +0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, // 0x0F20 (3872) pixels +0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, // 0x0F30 (3888) pixels +0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, // 0x0F40 (3904) pixels +0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, // 0x0F50 (3920) pixels +0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, // 0x0F60 (3936) pixels +0x02CE, 0x02CE, 0x02CE, 0x02AD, 0x022B, 0x4B6F, 0x3A6B, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0x8431, 0x6B8F, 0x5B0D, // 0x0F70 (3952) pixels +0x52ED, 0x52ED, 0x4AAC, 0x322A, 0x4AAC, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9CF3, 0x73AF, 0x8CB3, 0xFFFF, // 0x0F80 (3968) pixels +0xFFFF, 0xF79E, 0xF79E, 0xFFFF, 0xFFFF, 0xEF5D, 0x6B6E, 0x6B6E, 0xBDF8, 0xFFFF, 0xF7BE, 0x6B4D, 0x636E, 0xD6DB, 0xFFFF, 0xD6BA, // 0x0F90 (3984) pixels +0x6B8E, 0x634E, 0xD69A, 0xFFFF, 0xFFFF, 0xF79E, 0xE73C, 0xFFFF, 0xCE59, 0x5B2E, 0x21A8, 0x29C9, 0x428B, 0x4AAC, 0x4AAC, 0x4AAC, // 0x0FA0 (4000) pixels +0x428B, 0xEF7D, 0xFFFF, 0xDEDB, 0x6B6E, 0x634E, 0x52ED, 0x52ED, 0x52CD, 0x426B, 0x31E9, 0xAD97, 0xFFFF, 0xFFFF, 0xE73C, 0xEF5D, // 0x0FB0 (4016) pixels +0xFFFF, 0xFFFF, 0x9CF3, 0x632D, 0x7C31, 0xEF7D, 0xFFFF, 0xF7BE, 0xE71C, 0xF7BE, 0xFFFF, 0xEF7D, 0x738E, 0x6B6E, 0xBDF8, 0xFFFF, // 0x0FC0 (4032) pixels +0xF7BE, 0x6B4D, 0x636E, 0xC639, 0xFFFF, 0xF7BE, 0x7C11, 0x29C9, 0xC659, 0xFFFF, 0xDEFB, 0x6B8E, 0x634E, 0xCE9A, 0xFFFF, 0xFFFF, // 0x0FD0 (4048) pixels +0xE71C, 0xEF7E, 0xFFFF, 0xFFDF, 0x8C51, 0x632D, 0x5B4E, 0x29C9, 0x1967, 0x29C9, 0x5BB0, 0x022A, 0x028C, 0x02CD, 0x02CE, 0x02CE, // 0x0FE0 (4064) pixels +0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, // 0x0FF0 (4080) pixels +0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, // 0x1000 (4096) pixels +0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, // 0x1010 (4112) pixels +0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, // 0x1020 (4128) pixels +0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, // 0x1030 (4144) pixels +0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02CE, 0x02EE, 0x032F, 0x0BD3, // 0x1040 (4160) pixels +0x0CD8, 0x0C76, 0x0C35, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, // 0x1050 (4176) pixels +0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, // 0x1060 (4192) pixels +0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, // 0x1070 (4208) pixels +0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, // 0x1080 (4224) pixels +0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, // 0x1090 (4240) pixels +0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, // 0x10A0 (4256) pixels +0x0C34, 0x0C14, 0x0C14, 0x03D2, 0x032F, 0x026C, 0x53AF, 0x3A2A, 0x1967, 0x1967, 0x7C11, 0xE73C, 0xE73C, 0x7BF0, 0x6BAF, 0x428C, // 0x10B0 (4272) pixels +0x320A, 0x29C9, 0x21A8, 0x2168, 0x2188, 0x8C93, 0xEF5D, 0xF7BE, 0xE71C, 0xBDD7, 0xEF5D, 0xE71C, 0x9492, 0x6BAF, 0x8452, 0xE71C, // 0x10C0 (4288) pixels +0xE73C, 0xC618, 0xEF7D, 0xF7BE, 0xD6BA, 0x7BCF, 0x5B0C, 0x636E, 0xA556, 0xE73C, 0xDEDB, 0x634D, 0x636E, 0xBDF8, 0xE73C, 0xBE18, // 0x10D0 (4304) pixels +0x6B8E, 0x530D, 0x428B, 0xAD55, 0xDEFB, 0xF79E, 0xF7BE, 0xEF5D, 0xB5B7, 0x632D, 0x3209, 0x2188, 0x21A8, 0x21A8, 0x21A8, 0x21A8, // 0x10E0 (4320) pixels +0x21A8, 0xCE7A, 0xE73C, 0xC638, 0x6B8E, 0x5B4E, 0x3A2A, 0x31E9, 0x29C9, 0x2188, 0x2168, 0x320A, 0xA535, 0xE73C, 0xFFFF, 0xFFDF, // 0x10F0 (4336) pixels +0xEF5D, 0xA534, 0x632C, 0x632D, 0x634E, 0x5B2E, 0xC659, 0xF79E, 0xFFFF, 0xF7BE, 0xDEDB, 0x7BF0, 0x5B0C, 0x636E, 0xA556, 0xE73C, // 0x1100 (4352) pixels +0xDEFB, 0x634D, 0x636E, 0xAD96, 0xE73C, 0xDEDB, 0x634D, 0x428B, 0xAD97, 0xE73C, 0xCE59, 0x6B6E, 0x5B2E, 0x4AAC, 0xB5B6, 0xEF5D, // 0x1110 (4368) pixels +0xFFFF, 0xFFDF, 0xE73C, 0x94B2, 0x630C, 0x634E, 0x530D, 0x29A8, 0x21A8, 0x63D0, 0x024B, 0x030F, 0x03B2, 0x0C13, 0x0C14, 0x0C34, // 0x1120 (4384) pixels +0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, // 0x1130 (4400) pixels +0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, // 0x1140 (4416) pixels +0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, // 0x1150 (4432) pixels +0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, // 0x1160 (4448) pixels +0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, // 0x1170 (4464) pixels +0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C34, 0x0C55, 0x0CD8, // 0x1180 (4480) pixels +0x0D9B, 0x0D5A, 0x0D3A, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, // 0x1190 (4496) pixels +0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, // 0x11A0 (4512) pixels +0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, // 0x11B0 (4528) pixels +0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, // 0x11C0 (4544) pixels +0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, // 0x11D0 (4560) pixels +0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, // 0x11E0 (4576) pixels +0x0D39, 0x0D39, 0x0D19, 0x0CD7, 0x0C34, 0x0350, 0x026C, 0x63F0, 0x31EA, 0x1967, 0x29C9, 0x52ED, 0x632D, 0x5B0C, 0x636E, 0x3A2A, // 0x11F0 (4592) pixels +0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x29C9, 0x52CC, 0x634D, 0x632D, 0x5B0C, 0x5B0D, 0x632D, 0x630C, 0x6B6E, 0x4AAC, 0x52ED, // 0x1200 (4608) pixels +0x632D, 0x632D, 0x6B6E, 0x6B6E, 0x632C, 0x5AEC, 0x5B2D, 0x5B4E, 0x428C, 0x5B0D, 0x632D, 0x632D, 0x634E, 0x426B, 0x5B2D, 0x632D, // 0x1210 (4624) pixels +0x634E, 0x530D, 0x29C9, 0x3A2A, 0x632D, 0x634D, 0x6B6D, 0x6B6D, 0x5B0C, 0x52EC, 0x428B, 0x21A8, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1220 (4640) pixels +0x1967, 0x3A2A, 0x632D, 0x632C, 0x634D, 0x530D, 0x29A9, 0x1968, 0x1967, 0x1967, 0x1967, 0x2168, 0x3209, 0x5B2D, 0x634D, 0x6B8E, // 0x1230 (4656) pixels +0x6B6D, 0x5B0C, 0x5AEC, 0x636E, 0x4AAC, 0x29E9, 0x426B, 0x634D, 0x6B6D, 0x738E, 0x632D, 0x5AEC, 0x5B0D, 0x634E, 0x428C, 0x5B0D, // 0x1240 (4672) pixels +0x632D, 0x630D, 0x634E, 0x3A6B, 0x5B0D, 0x632D, 0x5B0D, 0x5B2E, 0x3A6B, 0x5B2D, 0x632D, 0x634D, 0x530D, 0x29C9, 0x3A2A, 0x632D, // 0x1250 (4688) pixels +0x6B4D, 0x738E, 0x634D, 0x5AEC, 0x5B0C, 0x636E, 0x426B, 0x29A9, 0x63F0, 0x024B, 0x032F, 0x0C14, 0x0CB7, 0x0D19, 0x0D39, 0x0D39, // 0x1260 (4704) pixels +0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, // 0x1270 (4720) pixels +0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, // 0x1280 (4736) pixels +0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, // 0x1290 (4752) pixels +0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, // 0x12A0 (4768) pixels +0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, // 0x12B0 (4784) pixels +0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D39, 0x0D5A, 0x0D7B, // 0x12C0 (4800) pixels +0x0DFD, 0x0DDC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, // 0x12D0 (4816) pixels +0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, // 0x12E0 (4832) pixels +0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, // 0x12F0 (4848) pixels +0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, // 0x1300 (4864) pixels +0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, // 0x1310 (4880) pixels +0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, // 0x1320 (4896) pixels +0x0DBC, 0x0DBC, 0x0DBC, 0x0D7B, 0x0D19, 0x0C55, 0x0350, 0x026B, 0x63D0, 0x29C9, 0x1967, 0x2188, 0x3A2A, 0x52CC, 0x5B0D, 0x320A, // 0x1330 (4912) pixels +0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x2168, 0x29C8, 0x426B, 0x52CC, 0x5B0D, 0x5B2E, 0x4AAB, 0x52EC, 0x5B0D, 0x3A2A, 0x29A8, // 0x1340 (4928) pixels +0x3A09, 0x52CC, 0x5B0D, 0x52CC, 0x52CC, 0x5B0D, 0x5B2E, 0x426B, 0x21A8, 0x2188, 0x3A4A, 0x52EC, 0x52ED, 0x29A9, 0x29A8, 0x426B, // 0x1350 (4944) pixels +0x52ED, 0x4AAC, 0x21A8, 0x21A8, 0x3A2A, 0x4A8B, 0x52CC, 0x52EC, 0x52ED, 0x5B0D, 0x426B, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1360 (4960) pixels +0x1967, 0x1968, 0x29A8, 0x4A8B, 0x52ED, 0x4ACC, 0x21A8, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2188, 0x320A, 0x4A8B, 0x52CC, // 0x1370 (4976) pixels +0x52CC, 0x5B0D, 0x5B2E, 0x4ACC, 0x29E9, 0x2168, 0x29A9, 0x424A, 0x4AAB, 0x52CC, 0x52EC, 0x5B0D, 0x5B2E, 0x426B, 0x21A8, 0x21A8, // 0x1380 (4992) pixels +0x3A4A, 0x52CC, 0x52ED, 0x29A9, 0x29A8, 0x426A, 0x52EC, 0x52ED, 0x29A9, 0x29A8, 0x426A, 0x52ED, 0x4ACC, 0x21A8, 0x21A8, 0x3A2A, // 0x1390 (5008) pixels +0x4AAB, 0x52CC, 0x52CC, 0x5B0D, 0x5B2E, 0x4AAC, 0x29C9, 0x6BF0, 0x0A6B, 0x032F, 0x0C14, 0x0CF8, 0x0D7B, 0x0DBC, 0x0DBC, 0x0DBC, // 0x13A0 (5024) pixels +0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, // 0x13B0 (5040) pixels +0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, // 0x13C0 (5056) pixels +0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, // 0x13D0 (5072) pixels +0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, // 0x13E0 (5088) pixels +0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, // 0x13F0 (5104) pixels +0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DBC, 0x0DDC, 0x0DFD, // 0x1400 (5120) pixels +0x0E1E, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, // 0x1410 (5136) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, // 0x1420 (5152) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, // 0x1430 (5168) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, // 0x1440 (5184) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, // 0x1450 (5200) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, // 0x1460 (5216) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DDD, 0x0D9B, 0x0D19, 0x0C35, 0x0330, 0x024B, 0x63F0, 0x21A8, 0x2168, 0x29E9, 0x3A4B, 0x3A2A, 0x21A8, // 0x1470 (5232) pixels +0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2188, 0x31E9, 0x3A4B, 0x426B, 0x3A2A, 0x31E9, 0x3A4B, 0x3A2A, 0x29A9, 0x2188, // 0x1480 (5248) pixels +0x29C9, 0x3A4B, 0x3A4B, 0x3A2A, 0x3A4B, 0x3A4B, 0x320A, 0x2188, 0x1967, 0x2188, 0x31E9, 0x3A4B, 0x320A, 0x2188, 0x2188, 0x320A, // 0x1490 (5264) pixels +0x3A4B, 0x31E9, 0x2168, 0x1967, 0x2188, 0x31E9, 0x3A4B, 0x426B, 0x426B, 0x3A2A, 0x29C9, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, // 0x14A0 (5280) pixels +0x1967, 0x1967, 0x2188, 0x322A, 0x3A4B, 0x31EA, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2188, 0x31E9, 0x3A6B, // 0x14B0 (5296) pixels +0x428C, 0x426B, 0x3A2A, 0x29C9, 0x2168, 0x1967, 0x1968, 0x21A8, 0x322A, 0x426B, 0x428C, 0x426B, 0x320A, 0x2188, 0x1967, 0x2188, // 0x14C0 (5312) pixels +0x31E9, 0x3A4B, 0x320A, 0x2188, 0x2188, 0x320A, 0x3A4B, 0x320A, 0x2188, 0x2188, 0x320A, 0x3A4B, 0x31EA, 0x2168, 0x1967, 0x21A8, // 0x14D0 (5328) pixels +0x320A, 0x426B, 0x428C, 0x426B, 0x3A2A, 0x29A8, 0x6BF0, 0x0A6B, 0x030F, 0x0C14, 0x0CF8, 0x0D9B, 0x0DDD, 0x0DFD, 0x0DFD, 0x0DFD, // 0x14E0 (5344) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, // 0x14F0 (5360) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0D39, 0x0D3A, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, // 0x1500 (5376) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, // 0x1510 (5392) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0D7A, 0x0D39, 0x0DDD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, // 0x1520 (5408) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, // 0x1530 (5424) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0E1E, // 0x1540 (5440) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0BF3, 0x0330, 0x0330, // 0x1550 (5456) pixels +0x0330, 0x0391, 0x0D19, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x1560 (5472) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x0CB7, 0x0C76, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0DBC, 0x0330, 0x0330, 0x0330, 0x0391, // 0x1570 (5488) pixels +0x0C76, 0x0DFD, 0x0E1E, 0x0E1E, 0x0CB7, 0x00C4, 0x020A, 0x0E1E, 0x0E1E, 0x030F, 0x0105, 0x00C4, 0x0C55, 0x0D19, 0x01A8, 0x00C4, // 0x1580 (5504) pixels +0x0167, 0x0350, 0x00C4, 0x0350, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x1590 (5520) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x026B, 0x00C4, 0x0CD8, 0x0E1E, 0x0C96, 0x0C76, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x15A0 (5536) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0DFD, 0x0D9C, 0x0D19, 0x0C34, 0x032F, 0x024B, 0x6BF0, 0x2188, 0x1967, 0x1968, 0x1968, 0x1967, // 0x15B0 (5552) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x2168, 0x1968, 0x1967, 0x1968, 0x1968, 0x1967, 0x1967, // 0x15C0 (5568) pixels +0x1967, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x1968, 0x1967, 0x1967, 0x1967, // 0x15D0 (5584) pixels +0x1968, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x1968, 0x2168, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x15E0 (5600) pixels +0x1967, 0x1967, 0x1967, 0x1968, 0x1968, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, // 0x15F0 (5616) pixels +0x2168, 0x2168, 0x1968, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1968, 0x2168, 0x2168, 0x1968, 0x1967, 0x1967, 0x1967, // 0x1600 (5632) pixels +0x1967, 0x1968, 0x1968, 0x1967, 0x1967, 0x1967, 0x1968, 0x1968, 0x1967, 0x1967, 0x1967, 0x1968, 0x1968, 0x1967, 0x1967, 0x1967, // 0x1610 (5648) pixels +0x1967, 0x1968, 0x2168, 0x2168, 0x1968, 0x6BD0, 0x128C, 0x030F, 0x0C14, 0x0CF8, 0x0D9B, 0x028C, 0x0126, 0x0125, 0x0126, 0x0126, // 0x1620 (5664) pixels +0x0126, 0x0126, 0x0C55, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0DFD, 0x02CE, 0x032F, 0x0E1E, 0x0E1E, 0x0E1E, // 0x1630 (5680) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0000, 0x0062, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0BF3, 0x0126, // 0x1640 (5696) pixels +0x030F, 0x0E1E, 0x0E1E, 0x0C76, 0x0126, 0x028C, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x1650 (5712) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0166, 0x0000, 0x0D19, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x1660 (5728) pixels +0x0D5A, 0x0126, 0x0126, 0x0126, 0x0146, 0x01E9, 0x0C55, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x1670 (5744) pixels +0x0CD8, 0x02CE, 0x0C55, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x1680 (5760) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0187, 0x0000, 0x0000, // 0x1690 (5776) pixels +0x0000, 0x0000, 0x0000, 0x0C76, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x16A0 (5792) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0105, 0x0000, 0x0D5A, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0D3A, 0x0000, 0x0000, 0x0000, 0x0000, // 0x16B0 (5808) pixels +0x0000, 0x00C4, 0x0CF8, 0x0E1E, 0x0D19, 0x024B, 0x030F, 0x0DBC, 0x0C76, 0x0000, 0x00E4, 0x02CD, 0x0C76, 0x01A8, 0x0000, 0x020A, // 0x16C0 (5824) pixels +0x02EE, 0x03D3, 0x022B, 0x0BD3, 0x0DDD, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x16D0 (5840) pixels +0x0E3E, 0x0E3E, 0x0E1E, 0x01C8, 0x0000, 0x0C55, 0x0DFD, 0x0062, 0x0000, 0x0DFD, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x16E0 (5856) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0DFD, 0x0D9B, 0x0D19, 0x0C34, 0x030F, 0x0A6B, 0x63D0, 0x2168, 0x1967, 0x1967, 0x1967, // 0x16F0 (5872) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1700 (5888) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1710 (5904) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1720 (5920) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1730 (5936) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1740 (5952) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1750 (5968) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x63D0, 0x12CC, 0x032E, 0x0453, 0x0557, 0x05FA, 0x067B, 0x069C, 0x06BD, 0x06BD, 0x0494, 0x01A7, // 0x1760 (5984) pixels -0x0125, 0x0000, 0x0104, 0x0187, 0x03D0, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x065B, 0x0041, 0x0515, 0x06BD, 0x06BD, // 0x1770 (6000) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x0432, 0x0000, 0x0432, 0x065B, 0x06BD, 0x06BD, 0x061A, 0x0000, 0x02AB, 0x067C, // 0x1780 (6016) pixels -0x069C, 0x0493, 0x0000, 0x0411, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1790 (6032) pixels -0x06BD, 0x0000, 0x0209, 0x061A, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x00E4, 0x0041, 0x0186, 0x0061, 0x0000, // 0x17A0 (6048) pixels -0x04F5, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x01C7, 0x030D, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x17B0 (6064) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x17C0 (6080) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x0166, // 0x17D0 (6096) pixels -0x00A2, 0x0536, 0x0452, 0x0041, 0x0125, 0x065B, 0x069C, 0x04F5, 0x02EC, 0x036E, 0x05D9, 0x06BD, 0x06BD, 0x0453, 0x02EC, 0x032E, // 0x17E0 (6112) pixels -0x04F5, 0x067B, 0x0229, 0x0000, 0x034E, 0x0493, 0x06BD, 0x06BD, 0x06BD, 0x0577, 0x0000, 0x02AB, 0x04F5, 0x03B0, 0x0041, 0x00E4, // 0x17F0 (6128) pixels -0x065B, 0x05B8, 0x032D, 0x0493, 0x0536, 0x00E4, 0x0041, 0x028B, 0x03D0, 0x0166, 0x0000, 0x026A, 0x03B0, 0x036F, 0x02EC, 0x05B8, // 0x1800 (6144) pixels -0x067B, 0x0578, 0x034E, 0x02EC, 0x0452, 0x06BD, 0x03D0, 0x0473, 0x06BD, 0x06BD, 0x038F, 0x04B4, 0x069C, 0x0186, 0x0082, 0x0577, // 0x1810 (6160) pixels -0x0411, 0x0000, 0x0249, 0x036F, 0x04D5, 0x038F, 0x061A, 0x06BD, 0x05F9, 0x038F, 0x0536, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1820 (6176) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x067C, 0x061A, 0x0577, 0x0473, 0x034E, 0x0AAB, 0x63D0, 0x1967, 0x1967, 0x1967, // 0x1830 (6192) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x6BD0, 0x1AAC, 0x02EE, 0x0C13, 0x0CF8, 0x0D7B, 0x0DDD, 0x02CE, 0x0187, 0x0125, 0x0000, 0x0021, // 0x1760 (5984) pixels +0x0167, 0x0167, 0x0C34, 0x0DFD, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0DDD, 0x0000, 0x00A3, 0x0DDD, 0x0E1E, 0x0E3E, // 0x1770 (6000) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0000, 0x0061, 0x0D7B, 0x0DFD, 0x0E3E, 0x0E3E, 0x0E3E, 0x0350, 0x0000, // 0x1780 (6016) pixels +0x022A, 0x0DDD, 0x0E1E, 0x0BF3, 0x0000, 0x0187, 0x0DDC, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x1790 (6032) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0146, 0x0000, 0x0C96, 0x0DDD, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x17A0 (6048) pixels +0x0D39, 0x0000, 0x0021, 0x01C9, 0x0146, 0x0000, 0x0000, 0x0C76, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x17B0 (6064) pixels +0x03B2, 0x0000, 0x02AD, 0x0DFD, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x17C0 (6080) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0167, 0x0000, 0x032F, // 0x17D0 (6096) pixels +0x0C76, 0x0167, 0x0000, 0x028C, 0x0DDD, 0x0E1E, 0x0CF8, 0x02AD, 0x020A, 0x02EE, 0x0D9B, 0x0E3E, 0x0E3E, 0x0C75, 0x028C, 0x022A, // 0x17E0 (6112) pixels +0x02CD, 0x0CD8, 0x0C14, 0x0062, 0x0000, 0x022A, 0x02EE, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0D19, 0x0000, 0x0061, 0x0C76, 0x0C14, // 0x17F0 (6128) pixels +0x01C9, 0x0000, 0x00A3, 0x0DBC, 0x0D39, 0x026C, 0x02EE, 0x0C76, 0x0187, 0x0000, 0x0105, 0x022A, 0x02EE, 0x0061, 0x0000, 0x01E9, // 0x1800 (6144) pixels +0x0330, 0x0371, 0x022B, 0x0392, 0x0D5A, 0x0DFD, 0x0C76, 0x028C, 0x022A, 0x030F, 0x0D7B, 0x0C96, 0x02CE, 0x0C96, 0x0E1E, 0x0CF8, // 0x1810 (6160) pixels +0x02CE, 0x0C35, 0x0DFD, 0x01A8, 0x0000, 0x0391, 0x0350, 0x0021, 0x0000, 0x026C, 0x0350, 0x0391, 0x02CE, 0x0D5A, 0x0E3E, 0x0DDC, // 0x1820 (6176) pixels +0x02CE, 0x0350, 0x0E1E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0DFD, 0x0D9B, 0x0CF8, 0x0C14, 0x030F, 0x0A6B, 0x63D0, 0x1967, 0x1967, 0x1967, // 0x1830 (6192) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1840 (6208) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1850 (6224) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1860 (6240) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1870 (6256) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1880 (6272) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1890 (6288) pixels -0x1967, 0x1967, 0x1967, 0x5B6F, 0x1AEC, 0x032D, 0x0452, 0x0557, 0x05FA, 0x067B, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x065B, 0x05B8, // 0x18A0 (6304) pixels -0x03AF, 0x0000, 0x02EC, 0x04D5, 0x0557, 0x03F1, 0x0166, 0x00C3, 0x026A, 0x061A, 0x065B, 0x0208, 0x0000, 0x00E4, 0x01A7, 0x069C, // 0x18B0 (6320) pixels -0x0473, 0x0186, 0x00A3, 0x0166, 0x04F5, 0x069C, 0x0411, 0x0000, 0x038F, 0x05D9, 0x069C, 0x06BD, 0x05FA, 0x0000, 0x0249, 0x05D9, // 0x18C0 (6336) pixels -0x067C, 0x0453, 0x0000, 0x038F, 0x05FA, 0x0452, 0x0166, 0x00A3, 0x0166, 0x04F5, 0x06BD, 0x05B8, 0x01E8, 0x00C3, 0x0125, 0x0411, // 0x18D0 (6352) pixels -0x067C, 0x0000, 0x0186, 0x01A7, 0x00C3, 0x026A, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x00E3, 0x00E4, 0x04D4, 0x03F1, 0x0000, // 0x18E0 (6368) pixels -0x02CC, 0x065B, 0x04B4, 0x0187, 0x00A3, 0x0145, 0x0494, 0x06BD, 0x038F, 0x0000, 0x0082, 0x0125, 0x0577, 0x067B, 0x02CC, 0x00E3, // 0x18F0 (6384) pixels -0x0145, 0x0411, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1900 (6400) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x0145, // 0x1910 (6416) pixels -0x0061, 0x036E, 0x02EC, 0x0020, 0x01A7, 0x0598, 0x03F1, 0x0000, 0x01E8, 0x0145, 0x0041, 0x05B9, 0x03F1, 0x0000, 0x01C8, 0x0186, // 0x1920 (6432) pixels -0x0249, 0x0452, 0x0082, 0x0000, 0x0166, 0x032D, 0x067C, 0x06BD, 0x06BD, 0x0557, 0x0000, 0x0229, 0x0453, 0x0493, 0x0209, 0x0000, // 0x1930 (6448) pixels -0x0473, 0x04B4, 0x0000, 0x034E, 0x030D, 0x0061, 0x0000, 0x0124, 0x01E8, 0x0082, 0x0000, 0x0104, 0x030D, 0x01A7, 0x0020, 0x0578, // 0x1940 (6464) pixels -0x04D5, 0x0020, 0x00A2, 0x0166, 0x0186, 0x067B, 0x0082, 0x01A7, 0x067C, 0x069C, 0x0000, 0x024A, 0x065B, 0x0166, 0x0082, 0x0493, // 0x1950 (6480) pixels -0x0104, 0x0000, 0x00E4, 0x0186, 0x0473, 0x0000, 0x038F, 0x069C, 0x034E, 0x0000, 0x0515, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1960 (6496) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x067C, 0x061A, 0x0557, 0x0473, 0x034E, 0x0AAB, 0x63AF, 0x1967, 0x1967, // 0x1970 (6512) pixels +0x1967, 0x1967, 0x1967, 0x5B6F, 0x22CD, 0x02EE, 0x0BF3, 0x0CD8, 0x0D7B, 0x0DDD, 0x0DFD, 0x0D9B, 0x0CF8, 0x0371, 0x0000, 0x0082, // 0x18A0 (6304) pixels +0x0C14, 0x0C55, 0x0CD7, 0x0D3A, 0x028C, 0x00A3, 0x0021, 0x0146, 0x0C76, 0x0E1E, 0x01E9, 0x0000, 0x0020, 0x0105, 0x028C, 0x0D5A, // 0x18B0 (6320) pixels +0x0125, 0x0061, 0x0021, 0x00C4, 0x0350, 0x0E1E, 0x0DFD, 0x0000, 0x0041, 0x0C97, 0x0DBC, 0x0E1E, 0x0E3E, 0x0E1E, 0x030F, 0x0000, // 0x18C0 (6336) pixels +0x01C9, 0x0D39, 0x0DDD, 0x03D2, 0x0000, 0x0146, 0x0D19, 0x0C35, 0x00E4, 0x0041, 0x0041, 0x0105, 0x0C34, 0x0E1E, 0x0E1E, 0x030F, // 0x18D0 (6352) pixels +0x00C3, 0x0021, 0x00C3, 0x02EE, 0x0DFD, 0x0126, 0x0000, 0x022A, 0x00C4, 0x0061, 0x02CE, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, // 0x18E0 (6368) pixels +0x0D19, 0x0000, 0x0062, 0x0C34, 0x0C55, 0x0105, 0x0000, 0x02EE, 0x0DDC, 0x02EE, 0x00A3, 0x0020, 0x0062, 0x01A8, 0x0D3A, 0x0D39, // 0x18F0 (6384) pixels +0x00A3, 0x0000, 0x0062, 0x0105, 0x0C55, 0x0DFD, 0x02EE, 0x00C3, 0x0020, 0x0105, 0x0C55, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x1900 (6400) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0DFD, 0x0166, 0x0000, 0x01A8, // 0x1910 (6416) pixels +0x028C, 0x0083, 0x0041, 0x0371, 0x0D5A, 0x0C14, 0x0000, 0x0167, 0x026C, 0x0041, 0x00C3, 0x0DBC, 0x0371, 0x0000, 0x0105, 0x01E9, // 0x1920 (6432) pixels +0x00C4, 0x024B, 0x02CE, 0x0020, 0x0000, 0x00C3, 0x0167, 0x0DDC, 0x0E1E, 0x0E3E, 0x0E1E, 0x0D19, 0x0000, 0x0041, 0x03B2, 0x0C14, // 0x1930 (6448) pixels +0x0C14, 0x0062, 0x0000, 0x03D2, 0x0C75, 0x0000, 0x0146, 0x0C13, 0x00A3, 0x0000, 0x0061, 0x00E4, 0x01E9, 0x0020, 0x0000, 0x00A3, // 0x1940 (6464) pixels +0x028C, 0x026C, 0x0000, 0x028C, 0x0D5A, 0x028C, 0x0000, 0x0082, 0x0167, 0x0041, 0x0391, 0x030F, 0x0000, 0x030F, 0x0DFD, 0x03D3, // 0x1950 (6480) pixels +0x0000, 0x026C, 0x0DDC, 0x0187, 0x0000, 0x032F, 0x022A, 0x0000, 0x0000, 0x00E4, 0x01C9, 0x02EE, 0x0000, 0x02CD, 0x0DFD, 0x03B2, // 0x1960 (6496) pixels +0x0000, 0x02AD, 0x0DDD, 0x0E1E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0DFD, 0x0D9B, 0x0CF8, 0x0C14, 0x030F, 0x128C, 0x638F, 0x1967, 0x1967, // 0x1970 (6512) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1980 (6528) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1990 (6544) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x19A0 (6560) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x19B0 (6576) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x19C0 (6592) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x19D0 (6608) pixels -0x1967, 0x1967, 0x5B4E, 0x230D, 0x030D, 0x0432, 0x0557, 0x05F9, 0x065B, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x065B, 0x05B9, // 0x19E0 (6624) pixels -0x038F, 0x0000, 0x028B, 0x0493, 0x03F1, 0x0000, 0x01A7, 0x030D, 0x0041, 0x0186, 0x05F9, 0x0208, 0x0000, 0x0208, 0x030D, 0x063A, // 0x19F0 (6640) pixels -0x04B4, 0x032D, 0x03F1, 0x00E4, 0x0082, 0x065B, 0x03F1, 0x0000, 0x034E, 0x05B8, 0x069C, 0x06BD, 0x05D9, 0x0000, 0x00E4, 0x026A, // 0x1A00 (6656) pixels -0x02EC, 0x01E8, 0x0000, 0x030D, 0x05B8, 0x04B4, 0x032D, 0x03F1, 0x00E4, 0x0082, 0x067B, 0x0249, 0x0020, 0x03D0, 0x030D, 0x0432, // 0x1A10 (6672) pixels -0x063B, 0x0000, 0x0000, 0x024A, 0x01E8, 0x0000, 0x03B0, 0x069C, 0x06BD, 0x06BD, 0x069C, 0x00C3, 0x00A3, 0x038F, 0x0209, 0x0000, // 0x1A20 (6688) pixels -0x030D, 0x05D9, 0x0515, 0x030D, 0x03F1, 0x0125, 0x0020, 0x063A, 0x034E, 0x0000, 0x0125, 0x02CC, 0x0557, 0x02AB, 0x0020, 0x03D0, // 0x1A30 (6704) pixels -0x02CC, 0x0000, 0x04D4, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1A40 (6720) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x0145, // 0x1A50 (6736) pixels -0x0000, 0x0000, 0x0000, 0x0041, 0x034E, 0x0516, 0x0104, 0x00E4, 0x04B4, 0x0432, 0x0000, 0x032D, 0x032E, 0x0000, 0x026A, 0x04D4, // 0x1A60 (6752) pixels -0x0557, 0x05B9, 0x01C8, 0x0020, 0x0473, 0x0536, 0x05FA, 0x069C, 0x06BD, 0x0557, 0x0000, 0x0229, 0x04D5, 0x0577, 0x02ED, 0x0000, // 0x1A70 (6768) pixels -0x034E, 0x0453, 0x0000, 0x032E, 0x0598, 0x0166, 0x0061, 0x0411, 0x04D4, 0x0209, 0x0000, 0x03D0, 0x04D4, 0x01A7, 0x0020, 0x0577, // 0x1A80 (6784) pixels -0x0229, 0x0000, 0x04F5, 0x0536, 0x0536, 0x05B8, 0x0082, 0x0186, 0x05D9, 0x065B, 0x0000, 0x0208, 0x05B8, 0x0166, 0x0082, 0x04D4, // 0x1A90 (6800) pixels -0x03D0, 0x0000, 0x02EC, 0x04D4, 0x0557, 0x00A3, 0x0125, 0x061A, 0x0104, 0x00E4, 0x0598, 0x063A, 0x069C, 0x06BD, 0x06BD, 0x06BD, // 0x1AA0 (6816) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x067B, 0x05FA, 0x0557, 0x0452, 0x032E, 0x1AEC, 0x538F, 0x4B4E, // 0x1AB0 (6832) pixels -0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, // 0x1AC0 (6848) pixels -0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, // 0x1AD0 (6864) pixels -0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, // 0x1AE0 (6880) pixels -0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, // 0x1AF0 (6896) pixels -0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, // 0x1B00 (6912) pixels -0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, 0x4B4E, // 0x1B10 (6928) pixels -0x4B4E, 0x4B6E, 0x2B2D, 0x030D, 0x0432, 0x0536, 0x05F9, 0x065B, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x065B, // 0x1B20 (6944) pixels -0x0432, 0x0000, 0x02AB, 0x0536, 0x02AB, 0x0000, 0x0494, 0x04D5, 0x01E8, 0x0000, 0x0536, 0x036E, 0x0000, 0x030D, 0x04B4, 0x0578, // 0x1B30 (6960) pixels -0x0598, 0x038F, 0x028A, 0x00E4, 0x0000, 0x0557, 0x03D0, 0x0000, 0x034E, 0x05B8, 0x069C, 0x06BD, 0x05D9, 0x0000, 0x0061, 0x00E4, // 0x1B40 (6976) pixels -0x0125, 0x00C3, 0x0000, 0x02EC, 0x0578, 0x05B8, 0x038F, 0x028A, 0x00E4, 0x0000, 0x0557, 0x02EC, 0x0000, 0x0125, 0x038F, 0x0536, // 0x1B50 (6992) pixels -0x05B8, 0x0000, 0x0104, 0x0452, 0x0432, 0x0000, 0x026A, 0x061A, 0x069C, 0x06BD, 0x067C, 0x00C3, 0x0000, 0x0000, 0x0000, 0x0209, // 0x1B60 (7008) pixels -0x0473, 0x0577, 0x05B9, 0x03B0, 0x028B, 0x0124, 0x0000, 0x04D4, 0x0536, 0x0000, 0x01E8, 0x0473, 0x0536, 0x00A2, 0x00A3, 0x02AB, // 0x1B70 (7024) pixels -0x028B, 0x0000, 0x02AB, 0x065B, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1B80 (7040) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x0145, // 0x1B90 (7056) pixels -0x0062, 0x03F1, 0x03F1, 0x0082, 0x0082, 0x0536, 0x0041, 0x0000, 0x0041, 0x0041, 0x0041, 0x024A, 0x0516, 0x0187, 0x0000, 0x0020, // 0x1BA0 (7072) pixels -0x030D, 0x0577, 0x01A7, 0x0020, 0x0432, 0x0516, 0x05F9, 0x069C, 0x06BD, 0x0557, 0x0000, 0x0229, 0x0557, 0x061A, 0x02AB, 0x0000, // 0x1BB0 (7088) pixels -0x036F, 0x0411, 0x0000, 0x02EC, 0x0536, 0x0145, 0x0061, 0x0432, 0x04D5, 0x0209, 0x0000, 0x03D0, 0x04F5, 0x01A7, 0x0020, 0x04F5, // 0x1BC0 (7104) pixels -0x0145, 0x0082, 0x0493, 0x04B4, 0x0516, 0x0578, 0x0082, 0x0145, 0x0536, 0x05FA, 0x0000, 0x01A7, 0x0536, 0x0166, 0x0082, 0x04B4, // 0x1BD0 (7120) pixels -0x038F, 0x0000, 0x02AB, 0x0494, 0x0536, 0x02AB, 0x0000, 0x03D0, 0x0000, 0x02AB, 0x04F5, 0x05FA, 0x069C, 0x06BD, 0x06BD, 0x06BD, // 0x1BE0 (7136) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x067B, 0x05FA, 0x0557, 0x0452, 0x034E, 0x02AB, 0x026A, // 0x1BF0 (7152) pixels -0x026A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, // 0x1C00 (7168) pixels -0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, // 0x1C10 (7184) pixels -0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, // 0x1C20 (7200) pixels -0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, // 0x1C30 (7216) pixels -0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, // 0x1C40 (7232) pixels -0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x024A, 0x026A, // 0x1C50 (7248) pixels -0x026A, 0x02AB, 0x032E, 0x0411, 0x0536, 0x05F9, 0x065B, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, // 0x1C60 (7264) pixels -0x0473, 0x0000, 0x02CC, 0x0577, 0x024A, 0x0000, 0x0452, 0x04B4, 0x0229, 0x0000, 0x0452, 0x032E, 0x0000, 0x032D, 0x04F5, 0x0557, // 0x1C70 (7280) pixels -0x0082, 0x00A3, 0x028B, 0x0124, 0x0000, 0x0493, 0x038F, 0x0000, 0x034E, 0x05B8, 0x069C, 0x06BD, 0x05D9, 0x0000, 0x01C7, 0x0452, // 0x1C80 (7296) pixels -0x04D5, 0x034E, 0x0000, 0x02CC, 0x0515, 0x0082, 0x00C3, 0x028B, 0x0124, 0x0000, 0x0493, 0x0557, 0x02AB, 0x0062, 0x0000, 0x02AB, // 0x1C90 (7312) pixels -0x05D9, 0x0000, 0x0166, 0x0432, 0x0453, 0x0000, 0x0209, 0x0598, 0x067C, 0x06BD, 0x067C, 0x00C3, 0x00A2, 0x032D, 0x0020, 0x01E8, // 0x1CA0 (7328) pixels -0x04B4, 0x0577, 0x00A3, 0x0082, 0x028B, 0x0145, 0x0000, 0x0411, 0x04F5, 0x0000, 0x01E8, 0x0493, 0x0577, 0x0041, 0x0082, 0x01C7, // 0x1CB0 (7344) pixels -0x01C8, 0x01C8, 0x032D, 0x05D9, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1CC0 (7360) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x0145, // 0x1CD0 (7376) pixels -0x0082, 0x0411, 0x0452, 0x00C3, 0x0020, 0x0516, 0x00C3, 0x00C3, 0x0432, 0x04B4, 0x0494, 0x0473, 0x04F5, 0x04D5, 0x038F, 0x00A2, // 0x1CE0 (7392) pixels -0x0082, 0x05D9, 0x01C8, 0x0000, 0x0473, 0x05D9, 0x067C, 0x06BD, 0x06BD, 0x0557, 0x0000, 0x0249, 0x0557, 0x0516, 0x0062, 0x0062, // 0x1CF0 (7408) pixels -0x0473, 0x03F1, 0x0000, 0x02CC, 0x0536, 0x0166, 0x0061, 0x0494, 0x0598, 0x026A, 0x0000, 0x0432, 0x0598, 0x01C7, 0x0020, 0x04B4, // 0x1D00 (7424) pixels -0x01C7, 0x0000, 0x0432, 0x0598, 0x05D9, 0x063A, 0x00A2, 0x00E3, 0x0515, 0x04D5, 0x0000, 0x01A7, 0x04F5, 0x0166, 0x0082, 0x04B4, // 0x1D10 (7440) pixels -0x03D0, 0x0000, 0x02CC, 0x0536, 0x05F9, 0x04F5, 0x0000, 0x00C3, 0x0000, 0x0411, 0x04F5, 0x063B, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1D20 (7456) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x067B, 0x05FA, 0x0557, 0x0493, 0x03F1, 0x03AF, // 0x1D30 (7472) pixels -0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, // 0x1D40 (7488) pixels -0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, // 0x1D50 (7504) pixels -0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, // 0x1D60 (7520) pixels -0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, // 0x1D70 (7536) pixels -0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, // 0x1D80 (7552) pixels -0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, 0x038F, // 0x1D90 (7568) pixels -0x038F, 0x03D0, 0x0473, 0x0536, 0x05D9, 0x065B, 0x069C, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, // 0x1DA0 (7584) pixels -0x0473, 0x0000, 0x02CC, 0x0557, 0x036E, 0x0000, 0x02CC, 0x0516, 0x0104, 0x0061, 0x0494, 0x034E, 0x0000, 0x02CC, 0x0536, 0x04B4, // 0x1DB0 (7600) pixels -0x0000, 0x02CC, 0x04F5, 0x0124, 0x0000, 0x0452, 0x036F, 0x0000, 0x034E, 0x05B8, 0x069C, 0x06BD, 0x05D9, 0x0000, 0x01C7, 0x0432, // 0x1DC0 (7616) pixels -0x04B4, 0x032E, 0x0000, 0x02CC, 0x0411, 0x0000, 0x02EC, 0x04D5, 0x0104, 0x0000, 0x0452, 0x0473, 0x04F5, 0x0432, 0x0061, 0x0125, // 0x1DD0 (7632) pixels -0x05D9, 0x0000, 0x0186, 0x04B4, 0x0516, 0x0000, 0x0208, 0x0557, 0x065B, 0x06BD, 0x067C, 0x00C3, 0x00C3, 0x03F1, 0x0209, 0x0000, // 0x1DE0 (7648) pixels -0x03B0, 0x04F5, 0x0000, 0x028A, 0x04F5, 0x0166, 0x0000, 0x03F1, 0x0515, 0x0000, 0x0186, 0x04F5, 0x05B8, 0x0166, 0x0061, 0x03B0, // 0x1DF0 (7664) pixels -0x04B4, 0x0411, 0x0452, 0x0598, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1E00 (7680) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x0145, // 0x1E10 (7696) pixels -0x0000, 0x0082, 0x0061, 0x0000, 0x01C7, 0x04D4, 0x030D, 0x0000, 0x00E4, 0x01A7, 0x00E4, 0x03D0, 0x026A, 0x0166, 0x01E8, 0x0041, // 0x1E20 (7712) pixels -0x0104, 0x0557, 0x028B, 0x0000, 0x0104, 0x02AB, 0x069C, 0x06BD, 0x06BD, 0x0557, 0x0000, 0x0041, 0x0082, 0x0000, 0x0062, 0x038F, // 0x1E30 (7728) pixels -0x0494, 0x03F1, 0x0000, 0x02CC, 0x0557, 0x0166, 0x0061, 0x04D5, 0x05FA, 0x028A, 0x0000, 0x0473, 0x05D9, 0x01C7, 0x0020, 0x04B4, // 0x1E40 (7744) pixels -0x03B0, 0x0000, 0x0082, 0x0166, 0x0145, 0x067B, 0x01C8, 0x0000, 0x0125, 0x0082, 0x0041, 0x01A7, 0x04F5, 0x0166, 0x0082, 0x04D4, // 0x1E50 (7760) pixels -0x0494, 0x0000, 0x0082, 0x0166, 0x05F9, 0x05FA, 0x0186, 0x0000, 0x0145, 0x0493, 0x0577, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1E60 (7776) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1E70 (7792) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1E80 (7808) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1E90 (7824) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1EA0 (7840) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1EB0 (7856) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1EC0 (7872) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1ED0 (7888) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, // 0x1EE0 (7904) pixels -0x0473, 0x0000, 0x02CC, 0x0557, 0x0598, 0x0145, 0x0000, 0x0000, 0x0041, 0x032D, 0x04B4, 0x0494, 0x0041, 0x0000, 0x0000, 0x05B8, // 0x1EF0 (7920) pixels -0x0082, 0x0000, 0x0041, 0x0166, 0x0000, 0x0432, 0x036F, 0x0000, 0x034E, 0x05B8, 0x069C, 0x06BD, 0x05D9, 0x0000, 0x01E8, 0x04F5, // 0x1F00 (7936) pixels -0x05B9, 0x03F1, 0x0000, 0x02EC, 0x04F5, 0x0062, 0x0000, 0x0041, 0x0166, 0x0000, 0x0452, 0x01A7, 0x0000, 0x0041, 0x0000, 0x028B, // 0x1F10 (7952) pixels -0x0536, 0x0000, 0x0186, 0x0515, 0x0577, 0x0000, 0x0209, 0x0557, 0x065B, 0x06BD, 0x067C, 0x00C3, 0x00C3, 0x0452, 0x0493, 0x00A3, // 0x1F20 (7968) pixels -0x0082, 0x0557, 0x00A3, 0x0000, 0x0041, 0x0166, 0x0000, 0x03F1, 0x0598, 0x00E4, 0x0000, 0x0000, 0x0452, 0x0473, 0x0061, 0x0000, // 0x1F30 (7984) pixels -0x0041, 0x0000, 0x0432, 0x05D9, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1F40 (8000) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x034E, // 0x1F50 (8016) pixels -0x0209, 0x0209, 0x02AB, 0x038F, 0x0452, 0x04B4, 0x0536, 0x036E, 0x01E8, 0x0209, 0x030D, 0x0557, 0x04B4, 0x02AB, 0x0229, 0x028A, // 0x1F60 (8032) pixels -0x03F1, 0x04F5, 0x0536, 0x026A, 0x01C8, 0x03B0, 0x065B, 0x069C, 0x06BD, 0x05D9, 0x026A, 0x0208, 0x028B, 0x03B0, 0x04B4, 0x0473, // 0x1F70 (8048) pixels -0x04F5, 0x04F5, 0x026A, 0x03B0, 0x0557, 0x034E, 0x026A, 0x04F5, 0x061A, 0x0411, 0x0229, 0x0494, 0x05D9, 0x03AF, 0x024A, 0x04B4, // 0x1F80 (8064) pixels -0x0557, 0x038F, 0x0209, 0x024A, 0x0432, 0x05FA, 0x0536, 0x024A, 0x0208, 0x03F1, 0x030D, 0x02CC, 0x04F5, 0x032E, 0x026A, 0x04D5, // 0x1F90 (8080) pixels -0x05B8, 0x036E, 0x01E8, 0x028A, 0x05D9, 0x063B, 0x034E, 0x0000, 0x02AB, 0x04B4, 0x05F9, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1FA0 (8096) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1FB0 (8112) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1FC0 (8128) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1FD0 (8144) pixels -0x06BD, 0x06BD, 0x06BD, 0x067C, 0x061A, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1FE0 (8160) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x1FF0 (8176) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x063A, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2000 (8192) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2010 (8208) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, // 0x2020 (8224) pixels -0x05D9, 0x0432, 0x0452, 0x0577, 0x05F9, 0x0536, 0x03AF, 0x03AF, 0x0494, 0x0493, 0x04F5, 0x05B8, 0x0494, 0x032D, 0x0432, 0x0598, // 0x2030 (8240) pixels -0x04D5, 0x032D, 0x03F1, 0x04B4, 0x036F, 0x0493, 0x0516, 0x0411, 0x0473, 0x05B8, 0x069C, 0x06BD, 0x065B, 0x0453, 0x0411, 0x0536, // 0x2040 (8256) pixels -0x063B, 0x05B9, 0x0432, 0x0452, 0x0536, 0x04D4, 0x032D, 0x03F1, 0x04B4, 0x036F, 0x0493, 0x0557, 0x0452, 0x03D0, 0x0432, 0x0473, // 0x2050 (8272) pixels -0x04F5, 0x0432, 0x03F1, 0x0516, 0x05D9, 0x0452, 0x0411, 0x0557, 0x065B, 0x06BD, 0x069C, 0x04B4, 0x03D0, 0x04D4, 0x0577, 0x0473, // 0x2060 (8288) pixels -0x03D0, 0x04F5, 0x04F5, 0x032E, 0x03D0, 0x04B4, 0x038F, 0x0473, 0x05B8, 0x0536, 0x034E, 0x03AF, 0x0577, 0x0598, 0x0493, 0x034E, // 0x2070 (8304) pixels -0x038F, 0x04B4, 0x0598, 0x063B, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2080 (8320) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x05D9, // 0x2090 (8336) pixels -0x04B4, 0x0452, 0x0493, 0x0493, 0x04B4, 0x0557, 0x05D9, 0x0536, 0x04B4, 0x04D5, 0x0516, 0x0577, 0x05B9, 0x0577, 0x0515, 0x04B4, // 0x20A0 (8352) pixels -0x0494, 0x0536, 0x05B8, 0x0516, 0x0493, 0x04F5, 0x05D9, 0x067C, 0x06BD, 0x067B, 0x0577, 0x0473, 0x0453, 0x0494, 0x04B4, 0x04F5, // 0x20B0 (8368) pixels -0x05B9, 0x061A, 0x0577, 0x04F5, 0x0598, 0x05B8, 0x04F5, 0x0536, 0x063A, 0x05FA, 0x0516, 0x0515, 0x05FA, 0x05D9, 0x04F5, 0x0515, // 0x20C0 (8384) pixels -0x05B9, 0x0557, 0x0494, 0x04B4, 0x04F5, 0x0578, 0x05B8, 0x04F5, 0x0473, 0x04B4, 0x0494, 0x0494, 0x0536, 0x0598, 0x04F5, 0x0536, // 0x20D0 (8400) pixels -0x05F9, 0x0577, 0x0494, 0x04B4, 0x0536, 0x04D5, 0x00E4, 0x0062, 0x0411, 0x0516, 0x065B, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x20E0 (8416) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x20F0 (8432) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2100 (8448) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x0411, 0x0000, 0x0536, 0x06BD, 0x05D9, 0x0000, 0x01E8, 0x06BD, 0x06BD, 0x026A, 0x0041, // 0x2110 (8464) pixels -0x069C, 0x05B8, 0x01A7, 0x0000, 0x0000, 0x0061, 0x034E, 0x069C, 0x06BD, 0x03AF, 0x0000, 0x0000, 0x0062, 0x01C7, 0x0598, 0x06BD, // 0x2120 (8480) pixels -0x04B4, 0x0000, 0x0432, 0x06BD, 0x04F5, 0x0000, 0x02AB, 0x061A, 0x0000, 0x0000, 0x0000, 0x0000, 0x03D0, 0x067C, 0x0000, 0x0000, // 0x2130 (8496) pixels -0x0020, 0x00E4, 0x03F1, 0x06BD, 0x06BD, 0x038F, 0x0020, 0x0000, 0x0041, 0x03D0, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2140 (8512) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2150 (8528) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2160 (8544) pixels -0x065B, 0x0598, 0x0516, 0x05D9, 0x065B, 0x05D9, 0x04F5, 0x04B4, 0x04B4, 0x04F5, 0x05B8, 0x063A, 0x0598, 0x04B4, 0x04B4, 0x0536, // 0x2170 (8560) pixels -0x0577, 0x04D4, 0x04B4, 0x04D4, 0x04D4, 0x0516, 0x05B9, 0x0577, 0x0536, 0x05F9, 0x069C, 0x06BD, 0x067C, 0x05D9, 0x0515, 0x0598, // 0x2180 (8576) pixels -0x065B, 0x065B, 0x0578, 0x0516, 0x0598, 0x0598, 0x04D4, 0x0494, 0x04D4, 0x04D4, 0x0515, 0x05B8, 0x0557, 0x04D5, 0x04B4, 0x04D5, // 0x2190 (8592) pixels -0x0578, 0x0598, 0x04F5, 0x0577, 0x063A, 0x05B8, 0x0516, 0x0598, 0x067C, 0x06BD, 0x069C, 0x05F9, 0x0516, 0x0557, 0x061A, 0x05B8, // 0x21A0 (8608) pixels -0x0515, 0x0536, 0x0557, 0x04D4, 0x0494, 0x04D5, 0x04D4, 0x0516, 0x05F9, 0x05D9, 0x04D5, 0x04B4, 0x0536, 0x05B8, 0x0557, 0x04D4, // 0x21B0 (8624) pixels -0x04B4, 0x04D5, 0x0557, 0x063A, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x21C0 (8640) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x063B, // 0x21D0 (8656) pixels -0x0598, 0x0536, 0x0536, 0x0557, 0x05D9, 0x065B, 0x067C, 0x063A, 0x0598, 0x0557, 0x0577, 0x05B9, 0x061A, 0x05D9, 0x0577, 0x0557, // 0x21E0 (8672) pixels -0x0598, 0x061A, 0x065B, 0x05F9, 0x0577, 0x0577, 0x05FA, 0x069C, 0x06BD, 0x069C, 0x05FA, 0x0557, 0x0536, 0x0557, 0x05B8, 0x061A, // 0x21F0 (8688) pixels -0x067C, 0x067C, 0x05FA, 0x05B8, 0x061A, 0x063A, 0x05B8, 0x05D9, 0x067B, 0x065B, 0x05D9, 0x05D9, 0x065B, 0x063B, 0x05B8, 0x05D9, // 0x2200 (8704) pixels -0x065B, 0x063A, 0x0598, 0x0557, 0x0577, 0x05F9, 0x063B, 0x05D9, 0x0557, 0x0557, 0x0577, 0x0598, 0x05F9, 0x061A, 0x05B8, 0x05D9, // 0x2210 (8720) pixels -0x065B, 0x063A, 0x0598, 0x0557, 0x03F1, 0x0000, 0x0082, 0x038F, 0x0493, 0x0598, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2220 (8736) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2230 (8752) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2240 (8768) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x0598, 0x0000, 0x034E, 0x067C, 0x03F1, 0x0000, 0x0041, 0x061A, 0x069C, 0x00C3, 0x01A7, // 0x2250 (8784) pixels -0x05FA, 0x00E3, 0x0020, 0x032E, 0x03F1, 0x01A7, 0x0000, 0x03AF, 0x069C, 0x038F, 0x0000, 0x030D, 0x030D, 0x0020, 0x0166, 0x067C, // 0x2260 (8800) pixels -0x0494, 0x0000, 0x03D0, 0x0598, 0x0062, 0x0166, 0x05F9, 0x05B8, 0x0000, 0x01A7, 0x03D0, 0x03D0, 0x0536, 0x061A, 0x0000, 0x0166, // 0x2270 (8816) pixels -0x038F, 0x0145, 0x0000, 0x0515, 0x05B8, 0x0000, 0x01A7, 0x03F1, 0x02CC, 0x0493, 0x065B, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2280 (8832) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2290 (8848) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x22A0 (8864) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x22B0 (8880) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x22C0 (8896) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x22D0 (8912) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x22E0 (8928) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x22F0 (8944) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2300 (8960) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, // 0x2310 (8976) pixels -0x067C, 0x065B, 0x065B, 0x067B, 0x069C, 0x06BD, 0x06BD, 0x069C, 0x067C, 0x065B, 0x065B, 0x067C, 0x069C, 0x067C, 0x065B, 0x065B, // 0x2320 (8992) pixels -0x067C, 0x069C, 0x06BD, 0x069C, 0x067B, 0x065B, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x065B, 0x065B, 0x067B, 0x069C, 0x069C, // 0x2330 (9008) pixels -0x06BD, 0x06BD, 0x069C, 0x067C, 0x069C, 0x069C, 0x067C, 0x067C, 0x069C, 0x069C, 0x067C, 0x067C, 0x069C, 0x069C, 0x067C, 0x067C, // 0x2340 (9024) pixels -0x069C, 0x069C, 0x067C, 0x065B, 0x065B, 0x069C, 0x069C, 0x069C, 0x065B, 0x065B, 0x067C, 0x067C, 0x069C, 0x069C, 0x067C, 0x067C, // 0x2350 (9040) pixels -0x069C, 0x069C, 0x067C, 0x065B, 0x061A, 0x0536, 0x0515, 0x0494, 0x0515, 0x061A, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2360 (9056) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2370 (9072) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2380 (9088) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x065B, 0x0082, 0x0186, 0x05D9, 0x0229, 0x0104, 0x0000, 0x0411, 0x0577, 0x0000, 0x02AB, // 0x2390 (9104) pixels -0x03B0, 0x0000, 0x026A, 0x04B4, 0x0494, 0x0453, 0x0041, 0x00E4, 0x061A, 0x034E, 0x0000, 0x038F, 0x0493, 0x0104, 0x0062, 0x05D9, // 0x23A0 (9120) pixels -0x0452, 0x0000, 0x030D, 0x0104, 0x0082, 0x04B4, 0x0516, 0x0515, 0x0000, 0x01E8, 0x0473, 0x04B4, 0x0536, 0x0598, 0x0000, 0x01A7, // 0x23B0 (9136) pixels -0x0453, 0x02ED, 0x0000, 0x03AF, 0x04F5, 0x0000, 0x0208, 0x0473, 0x04B4, 0x0516, 0x05F9, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x23C0 (9152) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x23D0 (9168) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x23E0 (9184) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x23F0 (9200) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2400 (9216) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2410 (9232) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2420 (9248) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2430 (9264) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2440 (9280) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2450 (9296) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2460 (9312) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2470 (9328) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2480 (9344) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2490 (9360) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x067B, 0x05B8, 0x04F5, 0x0516, 0x05D9, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x24A0 (9376) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x24B0 (9392) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x24C0 (9408) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x065B, 0x01E8, 0x0061, 0x0536, 0x0082, 0x028B, 0x0061, 0x026A, 0x03B0, 0x0000, 0x03AF, // 0x24D0 (9424) pixels -0x02CC, 0x0000, 0x030D, 0x0493, 0x0516, 0x0516, 0x0104, 0x0020, 0x0557, 0x030D, 0x0000, 0x0186, 0x01A7, 0x0000, 0x01E8, 0x0516, // 0x24E0 (9440) pixels -0x0411, 0x0000, 0x0082, 0x0000, 0x02CC, 0x04B4, 0x0536, 0x0536, 0x0000, 0x0000, 0x0041, 0x0041, 0x0473, 0x05B9, 0x0000, 0x00A3, // 0x24F0 (9456) pixels -0x01E8, 0x0082, 0x0061, 0x0452, 0x0578, 0x0186, 0x0000, 0x00A2, 0x038F, 0x0598, 0x063A, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2500 (9472) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2510 (9488) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2520 (9504) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2530 (9520) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2540 (9536) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2550 (9552) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2560 (9568) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2570 (9584) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2580 (9600) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2590 (9616) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x25A0 (9632) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x25B0 (9648) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x25C0 (9664) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x25D0 (9680) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x25E0 (9696) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x25F0 (9712) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2600 (9728) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x067C, 0x038F, 0x0000, 0x034E, 0x0000, 0x038F, 0x0166, 0x0125, 0x0229, 0x0041, 0x0473, // 0x2610 (9744) pixels -0x02CC, 0x0000, 0x02EC, 0x0536, 0x061A, 0x063A, 0x0104, 0x0020, 0x04D5, 0x02ED, 0x0000, 0x0062, 0x0000, 0x0125, 0x0452, 0x04F5, // 0x2620 (9760) pixels -0x0411, 0x0000, 0x0082, 0x0061, 0x0082, 0x04B4, 0x05D9, 0x0598, 0x0000, 0x00E4, 0x026A, 0x02CC, 0x0536, 0x05D9, 0x0000, 0x0020, // 0x2630 (9776) pixels -0x0061, 0x0000, 0x03B0, 0x0494, 0x0577, 0x0536, 0x028B, 0x0082, 0x0000, 0x03D0, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2640 (9792) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2650 (9808) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2660 (9824) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2670 (9840) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2680 (9856) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2690 (9872) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x26A0 (9888) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x26B0 (9904) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x26C0 (9920) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x26D0 (9936) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x26E0 (9952) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x26F0 (9968) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2700 (9984) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2710 (10000) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2720 (10016) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2730 (10032) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2740 (10048) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x0536, 0x0000, 0x0145, 0x0041, 0x0473, 0x02AB, 0x0041, 0x0104, 0x0166, 0x0494, // 0x2750 (10064) pixels -0x03F1, 0x0000, 0x01A7, 0x0578, 0x067C, 0x05F9, 0x0020, 0x0104, 0x04B4, 0x02EC, 0x0000, 0x034E, 0x0229, 0x0000, 0x034E, 0x0557, // 0x2760 (10080) pixels -0x0411, 0x0000, 0x028B, 0x028B, 0x0000, 0x024A, 0x063A, 0x05B8, 0x0000, 0x01C7, 0x0411, 0x04B4, 0x0557, 0x05B8, 0x0000, 0x0186, // 0x2770 (10096) pixels -0x03AF, 0x0020, 0x0186, 0x04F5, 0x05D9, 0x05D9, 0x04D5, 0x0432, 0x0020, 0x01A7, 0x063B, 0x069C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2780 (10112) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2790 (10128) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x27A0 (10144) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x27B0 (10160) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x27C0 (10176) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x27D0 (10192) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x27E0 (10208) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x27F0 (10224) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2800 (10240) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2810 (10256) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2820 (10272) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2830 (10288) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2840 (10304) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2850 (10320) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2860 (10336) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2870 (10352) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2880 (10368) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x069C, 0x063A, 0x00A2, 0x0000, 0x0145, 0x0493, 0x0452, 0x0000, 0x0000, 0x026A, 0x04D4, // 0x2890 (10384) pixels -0x0577, 0x0125, 0x0000, 0x01E8, 0x032D, 0x0104, 0x0000, 0x030D, 0x04B4, 0x02EC, 0x0000, 0x032E, 0x0411, 0x00A2, 0x00A2, 0x0578, // 0x28A0 (10400) pixels -0x0432, 0x0000, 0x028B, 0x0411, 0x0125, 0x0000, 0x04D4, 0x05B8, 0x0000, 0x00E3, 0x0208, 0x026A, 0x0452, 0x05D9, 0x0000, 0x0186, // 0x28B0 (10416) pixels -0x03F1, 0x024A, 0x0000, 0x038F, 0x0411, 0x01A7, 0x02EC, 0x026A, 0x0000, 0x0209, 0x0598, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x28C0 (10432) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x28D0 (10448) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x28E0 (10464) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x28F0 (10480) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2900 (10496) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2910 (10512) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2920 (10528) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2930 (10544) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2940 (10560) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2950 (10576) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2960 (10592) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2970 (10608) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2980 (10624) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2990 (10640) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x29A0 (10656) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x29B0 (10672) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x29C0 (10688) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x065B, 0x026A, 0x0082, 0x026A, 0x04B4, 0x0577, 0x0104, 0x0082, 0x036F, 0x0516, // 0x29D0 (10704) pixels -0x05D9, 0x04F5, 0x01C8, 0x0082, 0x0062, 0x0145, 0x036F, 0x0473, 0x04F5, 0x034E, 0x00A2, 0x03AF, 0x04F5, 0x038F, 0x00A2, 0x02EC, // 0x29E0 (10720) pixels -0x0452, 0x00A3, 0x030D, 0x04D4, 0x0432, 0x00A3, 0x01C7, 0x0577, 0x00A3, 0x0082, 0x00A2, 0x00A3, 0x03D0, 0x05F9, 0x00A3, 0x0208, // 0x29F0 (10736) pixels -0x0494, 0x04D5, 0x0125, 0x0104, 0x0493, 0x0166, 0x0082, 0x00A3, 0x01E8, 0x0432, 0x0557, 0x065B, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2A00 (10752) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2A10 (10768) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2A20 (10784) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2A30 (10800) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2A40 (10816) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2A50 (10832) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2A60 (10848) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2A70 (10864) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2A80 (10880) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2A90 (10896) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2AA0 (10912) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2AB0 (10928) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2AC0 (10944) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2AD0 (10960) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2AE0 (10976) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2AF0 (10992) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2B00 (11008) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x067C, 0x05B8, 0x0473, 0x0432, 0x0516, 0x05F9, 0x0557, 0x0432, 0x0453, 0x0578, // 0x2B10 (11024) pixels -0x063B, 0x05D9, 0x04D5, 0x0473, 0x04D4, 0x04D4, 0x0493, 0x04B4, 0x0598, 0x05D9, 0x0515, 0x04D4, 0x0598, 0x0578, 0x04D4, 0x04F5, // 0x2B20 (11040) pixels -0x0598, 0x0536, 0x04B4, 0x0557, 0x0598, 0x04D5, 0x04D4, 0x0578, 0x0557, 0x0452, 0x0473, 0x04F5, 0x0557, 0x05D9, 0x0577, 0x0494, // 0x2B30 (11056) pixels -0x0516, 0x05B8, 0x0516, 0x04B4, 0x0557, 0x0577, 0x0516, 0x04F5, 0x04B4, 0x0494, 0x0598, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2B40 (11072) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2B50 (11088) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2B60 (11104) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2B70 (11120) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2B80 (11136) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2B90 (11152) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2BA0 (11168) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2BB0 (11184) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2BC0 (11200) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2BD0 (11216) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2BE0 (11232) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2BF0 (11248) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2C00 (11264) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2C10 (11280) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2C20 (11296) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2C30 (11312) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2C40 (11328) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2C50 (11344) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2C60 (11360) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2C70 (11376) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2C80 (11392) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2C90 (11408) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2CA0 (11424) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2CB0 (11440) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2CC0 (11456) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2CD0 (11472) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2CE0 (11488) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2CF0 (11504) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2D00 (11520) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2D10 (11536) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2D20 (11552) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2D30 (11568) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2D40 (11584) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2D50 (11600) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2D60 (11616) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2D70 (11632) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2D80 (11648) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2D90 (11664) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2DA0 (11680) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2DB0 (11696) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2DC0 (11712) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2DD0 (11728) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2DE0 (11744) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2DF0 (11760) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2E00 (11776) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2E10 (11792) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2E20 (11808) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2E30 (11824) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2E40 (11840) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2E50 (11856) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2E60 (11872) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2E70 (11888) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2E80 (11904) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2E90 (11920) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2EA0 (11936) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2EB0 (11952) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2EC0 (11968) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2ED0 (11984) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2EE0 (12000) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2EF0 (12016) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2F00 (12032) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2F10 (12048) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2F20 (12064) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2F30 (12080) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2F40 (12096) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2F50 (12112) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2F60 (12128) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2F70 (12144) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2F80 (12160) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2F90 (12176) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2FA0 (12192) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2FB0 (12208) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2FC0 (12224) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2FD0 (12240) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2FE0 (12256) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x2FF0 (12272) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3000 (12288) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3010 (12304) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3020 (12320) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3030 (12336) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3040 (12352) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3050 (12368) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3060 (12384) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3070 (12400) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3080 (12416) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3090 (12432) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x30A0 (12448) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x30B0 (12464) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x30C0 (12480) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x30D0 (12496) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x30E0 (12512) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x30F0 (12528) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3100 (12544) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3110 (12560) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3120 (12576) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3130 (12592) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3140 (12608) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3150 (12624) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3160 (12640) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3170 (12656) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3180 (12672) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3190 (12688) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x31A0 (12704) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x31B0 (12720) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x31C0 (12736) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x31D0 (12752) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x31E0 (12768) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x31F0 (12784) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3200 (12800) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3210 (12816) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3220 (12832) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3230 (12848) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3240 (12864) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3250 (12880) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3260 (12896) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3270 (12912) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3280 (12928) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3290 (12944) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x32A0 (12960) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x32B0 (12976) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x32C0 (12992) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x32D0 (13008) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x32E0 (13024) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x32F0 (13040) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3300 (13056) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3310 (13072) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3320 (13088) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3330 (13104) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3340 (13120) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3350 (13136) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3360 (13152) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3370 (13168) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3380 (13184) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3390 (13200) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x33A0 (13216) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x33B0 (13232) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x33C0 (13248) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x33D0 (13264) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x33E0 (13280) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x33F0 (13296) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3400 (13312) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3410 (13328) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3420 (13344) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3430 (13360) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3440 (13376) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3450 (13392) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3460 (13408) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3470 (13424) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3480 (13440) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3490 (13456) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x34A0 (13472) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x34B0 (13488) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x34C0 (13504) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x34D0 (13520) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x34E0 (13536) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x34F0 (13552) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3500 (13568) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3510 (13584) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3520 (13600) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3530 (13616) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3540 (13632) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3550 (13648) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3560 (13664) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3570 (13680) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3580 (13696) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3590 (13712) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x35A0 (13728) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x35B0 (13744) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x35C0 (13760) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x35D0 (13776) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x35E0 (13792) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x35F0 (13808) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3600 (13824) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3610 (13840) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3620 (13856) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3630 (13872) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3640 (13888) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3650 (13904) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3660 (13920) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3670 (13936) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3680 (13952) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3690 (13968) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x36A0 (13984) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x36B0 (14000) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x36C0 (14016) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x36D0 (14032) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x36E0 (14048) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x36F0 (14064) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3700 (14080) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3710 (14096) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3720 (14112) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3730 (14128) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3740 (14144) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3750 (14160) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3760 (14176) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3770 (14192) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3780 (14208) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3790 (14224) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x37A0 (14240) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x37B0 (14256) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x37C0 (14272) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x37D0 (14288) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x37E0 (14304) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x37F0 (14320) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3800 (14336) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3810 (14352) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3820 (14368) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x0104, 0x0453, 0x0578, 0x0082, 0x0577, 0x0125, 0x0452, // 0x3830 (14384) pixels -0x06BD, 0x0229, 0x034E, 0x06BD, 0x06BD, 0x036F, 0x02AB, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3840 (14400) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3850 (14416) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3860 (14432) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3870 (14448) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3880 (14464) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3890 (14480) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x38A0 (14496) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x38B0 (14512) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x38C0 (14528) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x38D0 (14544) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x38E0 (14560) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x38F0 (14576) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3900 (14592) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3910 (14608) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3920 (14624) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3930 (14640) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3940 (14656) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3950 (14672) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3960 (14688) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x00A3, 0x0432, 0x0186, 0x02AB, 0x06BD, 0x00C3, 0x0411, // 0x3970 (14704) pixels -0x06BD, 0x01C7, 0x030D, 0x06BD, 0x06BD, 0x00E4, 0x0536, 0x05D9, 0x036E, 0x03F1, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3980 (14720) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3990 (14736) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x39A0 (14752) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x39B0 (14768) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x39C0 (14784) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x39D0 (14800) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x39E0 (14816) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x39F0 (14832) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3A00 (14848) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3A10 (14864) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3A20 (14880) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3A30 (14896) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3A40 (14912) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3A50 (14928) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3A60 (14944) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3A70 (14960) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3A80 (14976) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3A90 (14992) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3AA0 (15008) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x00A3, 0x01A7, 0x0082, 0x065B, 0x06BD, 0x00C3, 0x026A, // 0x3AB0 (15024) pixels -0x0411, 0x0104, 0x030D, 0x06BD, 0x0536, 0x00E4, 0x06BD, 0x0186, 0x0229, 0x02CC, 0x067C, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3AC0 (15040) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3AD0 (15056) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3AE0 (15072) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3AF0 (15088) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3B00 (15104) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3B10 (15120) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3B20 (15136) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3B30 (15152) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3B40 (15168) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3B50 (15184) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3B60 (15200) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3B70 (15216) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3B80 (15232) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3B90 (15248) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3BA0 (15264) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3BB0 (15280) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3BC0 (15296) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3BD0 (15312) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3BE0 (15328) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x00A3, 0x0020, 0x0041, 0x063B, 0x06BD, 0x00C3, 0x0166, // 0x3BF0 (15344) pixels -0x0229, 0x0082, 0x030D, 0x06BD, 0x02AB, 0x036F, 0x06BD, 0x0229, 0x00E4, 0x0516, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3C00 (15360) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3C10 (15376) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3C20 (15392) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3C30 (15408) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3C40 (15424) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3C50 (15440) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3C60 (15456) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3C70 (15472) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3C80 (15488) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3C90 (15504) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3CA0 (15520) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3CB0 (15536) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3CC0 (15552) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3CD0 (15568) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3CE0 (15584) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3CF0 (15600) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3D00 (15616) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3D10 (15632) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3D20 (15648) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x00A3, 0x03F1, 0x0104, 0x032D, 0x06BD, 0x00C3, 0x0411, // 0x3D30 (15664) pixels -0x06BD, 0x01C7, 0x030D, 0x067C, 0x0061, 0x05F9, 0x06BD, 0x069C, 0x032D, 0x0000, 0x05B8, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3D40 (15680) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3D50 (15696) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3D60 (15712) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3D70 (15728) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3D80 (15744) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3D90 (15760) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3DA0 (15776) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3DB0 (15792) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3DC0 (15808) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3DD0 (15824) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3DE0 (15840) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3DF0 (15856) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3E00 (15872) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3E10 (15888) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3E20 (15904) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3E30 (15920) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3E40 (15936) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3E50 (15952) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3E60 (15968) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x00A3, 0x0432, 0x0432, 0x0041, 0x063B, 0x00C3, 0x0411, // 0x3E70 (15984) pixels -0x06BD, 0x01C7, 0x030D, 0x0452, 0x01C7, 0x06BD, 0x06BD, 0x030D, 0x034E, 0x0000, 0x0598, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3E80 (16000) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3E90 (16016) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3EA0 (16032) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3EB0 (16048) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3EC0 (16064) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3ED0 (16080) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3EE0 (16096) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3EF0 (16112) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3F00 (16128) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3F10 (16144) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3F20 (16160) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3F30 (16176) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3F40 (16192) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3F50 (16208) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3F60 (16224) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3F70 (16240) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3F80 (16256) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3F90 (16272) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3FA0 (16288) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x03F1, 0x0598, 0x069C, 0x03AF, 0x0577, 0x03F1, 0x0578, // 0x3FB0 (16304) pixels -0x06BD, 0x0473, 0x0515, 0x0473, 0x0516, 0x06BD, 0x06BD, 0x0452, 0x032D, 0x0494, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3FC0 (16320) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3FD0 (16336) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3FE0 (16352) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x3FF0 (16368) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4000 (16384) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4010 (16400) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4020 (16416) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4030 (16432) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4040 (16448) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4050 (16464) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4060 (16480) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4070 (16496) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4080 (16512) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4090 (16528) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x40A0 (16544) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x40B0 (16560) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x40C0 (16576) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x40D0 (16592) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x40E0 (16608) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x40F0 (16624) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4100 (16640) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4110 (16656) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4120 (16672) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4130 (16688) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4140 (16704) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4150 (16720) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4160 (16736) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4170 (16752) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4180 (16768) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4190 (16784) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x41A0 (16800) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x41B0 (16816) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x41C0 (16832) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x41D0 (16848) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x41E0 (16864) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x41F0 (16880) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4200 (16896) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4210 (16912) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4220 (16928) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4230 (16944) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4240 (16960) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4250 (16976) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4260 (16992) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4270 (17008) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4280 (17024) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4290 (17040) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x42A0 (17056) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x42B0 (17072) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x42C0 (17088) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x42D0 (17104) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x42E0 (17120) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x42F0 (17136) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4300 (17152) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4310 (17168) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4320 (17184) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4330 (17200) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4340 (17216) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4350 (17232) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4360 (17248) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4370 (17264) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4380 (17280) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4390 (17296) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x43A0 (17312) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x43B0 (17328) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x43C0 (17344) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x43D0 (17360) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x43E0 (17376) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x43F0 (17392) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4400 (17408) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4410 (17424) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4420 (17440) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4430 (17456) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4440 (17472) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4450 (17488) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4460 (17504) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4470 (17520) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4480 (17536) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4490 (17552) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x44A0 (17568) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x44B0 (17584) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x44C0 (17600) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x44D0 (17616) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x44E0 (17632) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x44F0 (17648) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4500 (17664) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4510 (17680) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4520 (17696) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4530 (17712) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4540 (17728) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4550 (17744) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4560 (17760) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4570 (17776) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4580 (17792) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4590 (17808) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x45A0 (17824) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x45B0 (17840) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x45C0 (17856) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x45D0 (17872) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x45E0 (17888) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x45F0 (17904) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4600 (17920) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4610 (17936) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4620 (17952) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4630 (17968) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4640 (17984) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4650 (18000) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4660 (18016) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4670 (18032) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4680 (18048) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4690 (18064) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x46A0 (18080) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x46B0 (18096) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x46C0 (18112) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x46D0 (18128) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x46E0 (18144) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x46F0 (18160) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4700 (18176) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4710 (18192) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4720 (18208) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4730 (18224) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4740 (18240) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4750 (18256) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4760 (18272) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4770 (18288) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4780 (18304) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4790 (18320) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x47A0 (18336) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x47B0 (18352) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x47C0 (18368) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x47D0 (18384) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x47E0 (18400) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x47F0 (18416) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4800 (18432) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4810 (18448) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4820 (18464) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4830 (18480) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4840 (18496) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4850 (18512) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4860 (18528) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4870 (18544) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4880 (18560) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4890 (18576) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x48A0 (18592) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x48B0 (18608) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x48C0 (18624) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x48D0 (18640) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x48E0 (18656) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x48F0 (18672) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4900 (18688) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4910 (18704) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4920 (18720) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4930 (18736) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4940 (18752) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4950 (18768) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4960 (18784) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4970 (18800) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4980 (18816) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4990 (18832) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x49A0 (18848) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x49B0 (18864) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x49C0 (18880) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x49D0 (18896) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x49E0 (18912) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x49F0 (18928) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4A00 (18944) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4A10 (18960) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4A20 (18976) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4A30 (18992) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4A40 (19008) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4A50 (19024) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4A60 (19040) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4A70 (19056) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4A80 (19072) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4A90 (19088) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4AA0 (19104) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4AB0 (19120) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4AC0 (19136) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4AD0 (19152) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4AE0 (19168) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4AF0 (19184) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4B00 (19200) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4B10 (19216) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4B20 (19232) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4B30 (19248) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4B40 (19264) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4B50 (19280) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4B60 (19296) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4B70 (19312) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4B80 (19328) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4B90 (19344) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4BA0 (19360) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4BB0 (19376) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4BC0 (19392) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4BD0 (19408) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4BE0 (19424) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4BF0 (19440) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4C00 (19456) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4C10 (19472) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4C20 (19488) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4C30 (19504) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4C40 (19520) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4C50 (19536) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4C60 (19552) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4C70 (19568) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4C80 (19584) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4C90 (19600) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4CA0 (19616) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4CB0 (19632) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4CC0 (19648) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4CD0 (19664) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4CE0 (19680) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4CF0 (19696) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4D00 (19712) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4D10 (19728) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4D20 (19744) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4D30 (19760) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4D40 (19776) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4D50 (19792) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4D60 (19808) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4D70 (19824) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4D80 (19840) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4D90 (19856) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4DA0 (19872) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4DB0 (19888) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4DC0 (19904) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4DD0 (19920) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4DE0 (19936) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4DF0 (19952) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4E00 (19968) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4E10 (19984) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4E20 (20000) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4E30 (20016) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4E40 (20032) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4E50 (20048) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4E60 (20064) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4E70 (20080) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4E80 (20096) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4E90 (20112) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4EA0 (20128) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4EB0 (20144) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4EC0 (20160) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4ED0 (20176) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4EE0 (20192) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4EF0 (20208) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4F00 (20224) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4F10 (20240) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4F20 (20256) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4F30 (20272) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4F40 (20288) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4F50 (20304) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4F60 (20320) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4F70 (20336) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4F80 (20352) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4F90 (20368) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4FA0 (20384) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4FB0 (20400) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4FC0 (20416) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4FD0 (20432) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4FE0 (20448) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x4FF0 (20464) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5000 (20480) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5010 (20496) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5020 (20512) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5030 (20528) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5040 (20544) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5050 (20560) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5060 (20576) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5070 (20592) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5080 (20608) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5090 (20624) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x50A0 (20640) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x50B0 (20656) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x50C0 (20672) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x50D0 (20688) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x50E0 (20704) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x50F0 (20720) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5100 (20736) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5110 (20752) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5120 (20768) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5130 (20784) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5140 (20800) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5150 (20816) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5160 (20832) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5170 (20848) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5180 (20864) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5190 (20880) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x51A0 (20896) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x51B0 (20912) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x51C0 (20928) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x51D0 (20944) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x51E0 (20960) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x51F0 (20976) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5200 (20992) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5210 (21008) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5220 (21024) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5230 (21040) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5240 (21056) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5250 (21072) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5260 (21088) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5270 (21104) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5280 (21120) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5290 (21136) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x52A0 (21152) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x52B0 (21168) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x52C0 (21184) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x52D0 (21200) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x52E0 (21216) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x52F0 (21232) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5300 (21248) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5310 (21264) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5320 (21280) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5330 (21296) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5340 (21312) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5350 (21328) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5360 (21344) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5370 (21360) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5380 (21376) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5390 (21392) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x53A0 (21408) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x53B0 (21424) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x53C0 (21440) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x53D0 (21456) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x53E0 (21472) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x53F0 (21488) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5400 (21504) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5410 (21520) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5420 (21536) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5430 (21552) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5440 (21568) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5450 (21584) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5460 (21600) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5470 (21616) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5480 (21632) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5490 (21648) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x54A0 (21664) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x54B0 (21680) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x54C0 (21696) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x54D0 (21712) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x54E0 (21728) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x54F0 (21744) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5500 (21760) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5510 (21776) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5520 (21792) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5530 (21808) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5540 (21824) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5550 (21840) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5560 (21856) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5570 (21872) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5580 (21888) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5590 (21904) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x55A0 (21920) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x55B0 (21936) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x55C0 (21952) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x55D0 (21968) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x55E0 (21984) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x55F0 (22000) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5600 (22016) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5610 (22032) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5620 (22048) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5630 (22064) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5640 (22080) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5650 (22096) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5660 (22112) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5670 (22128) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5680 (22144) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5690 (22160) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x56A0 (22176) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x56B0 (22192) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x56C0 (22208) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x56D0 (22224) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x56E0 (22240) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x56F0 (22256) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5700 (22272) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5710 (22288) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5720 (22304) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5730 (22320) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5740 (22336) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5750 (22352) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5760 (22368) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5770 (22384) pixels -0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, 0x06BD, // 0x5780 (22400) pixels +0x1967, 0x1967, 0x5B4E, 0x2AED, 0x02CE, 0x0BD3, 0x0CD8, 0x0D7B, 0x0DDD, 0x0E1E, 0x0E1E, 0x0DBC, 0x0D19, 0x0391, 0x0000, 0x0062, // 0x19E0 (6624) pixels +0x03B2, 0x0C55, 0x0CF8, 0x022A, 0x0000, 0x01E9, 0x0330, 0x0062, 0x0021, 0x0D19, 0x0350, 0x0000, 0x0041, 0x024B, 0x0391, 0x0CF8, // 0x19F0 (6640) pixels +0x024B, 0x0370, 0x02EE, 0x0083, 0x0000, 0x0CB7, 0x0DDD, 0x0000, 0x0041, 0x0C55, 0x0D9C, 0x0E1E, 0x0E3E, 0x0E1E, 0x030F, 0x0000, // 0x1A00 (6656) pixels +0x0021, 0x00A3, 0x00C3, 0x0062, 0x0000, 0x0105, 0x0CB7, 0x0C14, 0x02AD, 0x0371, 0x02CD, 0x0021, 0x0020, 0x0DBC, 0x0371, 0x0000, // 0x1A10 (6672) pixels +0x01A8, 0x0391, 0x02CD, 0x01E9, 0x0D9C, 0x0125, 0x0000, 0x00E4, 0x01C9, 0x0020, 0x0000, 0x0CD8, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E1E, // 0x1A20 (6688) pixels +0x0CF8, 0x0000, 0x0041, 0x032F, 0x02EE, 0x0041, 0x0000, 0x0350, 0x0D5A, 0x030F, 0x030F, 0x0370, 0x01E9, 0x0000, 0x01A8, 0x0D5A, // 0x1A30 (6704) pixels +0x01A8, 0x0000, 0x0104, 0x026C, 0x0C96, 0x02AD, 0x0000, 0x030F, 0x0C14, 0x00A3, 0x0041, 0x0D5A, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x1A40 (6720) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0DFD, 0x0146, 0x0000, 0x0000, // 0x1A50 (6736) pixels +0x0000, 0x0000, 0x0082, 0x02CD, 0x0D19, 0x0104, 0x0000, 0x0371, 0x0371, 0x0146, 0x0000, 0x0BF3, 0x01A8, 0x0000, 0x01C9, 0x0370, // 0x1A60 (6752) pixels +0x0C55, 0x0C55, 0x0D19, 0x00C3, 0x0000, 0x0350, 0x0C76, 0x0D3A, 0x0DFD, 0x0E3E, 0x0E1E, 0x0CF8, 0x0000, 0x0041, 0x0C13, 0x0CF8, // 0x1A70 (6768) pixels +0x0CF8, 0x0105, 0x0000, 0x02AD, 0x0C14, 0x0000, 0x0146, 0x0CD7, 0x02CE, 0x0000, 0x01A8, 0x03D3, 0x0C55, 0x0082, 0x0000, 0x0350, // 0x1A80 (6784) pixels +0x0C55, 0x028C, 0x0000, 0x026C, 0x0CB7, 0x0000, 0x0041, 0x0C76, 0x0C96, 0x0C35, 0x0C14, 0x02AD, 0x0000, 0x02AD, 0x0D7B, 0x03B2, // 0x1A90 (6800) pixels +0x0000, 0x020A, 0x0D3A, 0x0187, 0x0000, 0x030F, 0x0CB7, 0x0041, 0x0000, 0x03B2, 0x0C76, 0x0C55, 0x0000, 0x0082, 0x0D7B, 0x0187, // 0x1AA0 (6816) pixels +0x0000, 0x0C34, 0x0D5A, 0x0DFD, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0DDD, 0x0D7B, 0x0CD8, 0x0BF3, 0x02EE, 0x1AAD, 0x538F, 0x4B4E, // 0x1AB0 (6832) pixels +0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, // 0x1AC0 (6848) pixels +0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, // 0x1AD0 (6864) pixels +0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, // 0x1AE0 (6880) pixels +0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, // 0x1AF0 (6896) pixels +0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, // 0x1B00 (6912) pixels +0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, 0x4B2E, // 0x1B10 (6928) pixels +0x4B4E, 0x534E, 0x2AED, 0x02CD, 0x03D2, 0x0CB7, 0x0D7B, 0x0DDD, 0x0DFD, 0x0E1E, 0x0E3E, 0x0E1E, 0x0DDC, 0x0C55, 0x0000, 0x0082, // 0x1B20 (6944) pixels +0x0C34, 0x0D5A, 0x0DBC, 0x0061, 0x0000, 0x0C55, 0x0C55, 0x01E9, 0x0000, 0x02CE, 0x0CF8, 0x0000, 0x0061, 0x03B2, 0x0C96, 0x0D19, // 0x1B30 (6960) pixels +0x0BF3, 0x022A, 0x0167, 0x0062, 0x0000, 0x0350, 0x0D9B, 0x0000, 0x0041, 0x0C35, 0x0D9C, 0x0E1E, 0x0E3E, 0x0E1E, 0x02EE, 0x0000, // 0x1B40 (6976) pixels +0x0062, 0x0167, 0x01A8, 0x0105, 0x0000, 0x0105, 0x0C96, 0x0D7A, 0x0391, 0x01E9, 0x0146, 0x0021, 0x0000, 0x0C76, 0x02EE, 0x0000, // 0x1B50 (6992) pixels +0x0062, 0x01A8, 0x02AD, 0x0C55, 0x0D19, 0x0125, 0x0000, 0x030F, 0x0C34, 0x0125, 0x0000, 0x0391, 0x0DBC, 0x0E1E, 0x0E3E, 0x0E1E, // 0x1B60 (7008) pixels +0x0CF8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x026C, 0x0C13, 0x0D19, 0x0D39, 0x02EE, 0x01A8, 0x0105, 0x0000, 0x00C4, 0x0D39, // 0x1B70 (7024) pixels +0x02EE, 0x0000, 0x0188, 0x0BF3, 0x0CB7, 0x0062, 0x0000, 0x01C9, 0x01A8, 0x00A3, 0x0000, 0x03B2, 0x0DDD, 0x0E1E, 0x0E3E, 0x0E3E, // 0x1B80 (7040) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0DFD, 0x0146, 0x0000, 0x024B, // 0x1B90 (7056) pixels +0x03D2, 0x02AD, 0x0000, 0x0020, 0x0CF8, 0x0020, 0x0000, 0x0082, 0x0082, 0x0082, 0x0082, 0x030F, 0x0392, 0x0041, 0x0000, 0x0000, // 0x1BA0 (7072) pixels +0x0020, 0x02CD, 0x0CD7, 0x00C3, 0x0000, 0x032F, 0x0C55, 0x0D39, 0x0DFD, 0x0E3E, 0x0E1E, 0x0CF8, 0x0000, 0x0041, 0x0C35, 0x0D9B, // 0x1BB0 (7088) pixels +0x0DBC, 0x0083, 0x0000, 0x02EE, 0x03D3, 0x0000, 0x0125, 0x0C76, 0x02CD, 0x0000, 0x01A8, 0x0BF3, 0x0C76, 0x0082, 0x0000, 0x0370, // 0x1BC0 (7104) pixels +0x0C76, 0x028C, 0x0000, 0x022B, 0x03D3, 0x0000, 0x00E4, 0x0BF3, 0x0C35, 0x0C76, 0x0CB7, 0x026C, 0x0000, 0x022B, 0x0CF8, 0x0371, // 0x1BD0 (7120) pixels +0x0000, 0x01C8, 0x0CB7, 0x0187, 0x0000, 0x030F, 0x0CB7, 0x0041, 0x0000, 0x0391, 0x0C55, 0x0CB7, 0x0146, 0x0000, 0x02EE, 0x0000, // 0x1BE0 (7136) pixels +0x0126, 0x0C55, 0x0D19, 0x0DFD, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0DDD, 0x0D7B, 0x0CD8, 0x0BF3, 0x030F, 0x026C, 0x022A, // 0x1BF0 (7152) pixels +0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, // 0x1C00 (7168) pixels +0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, // 0x1C10 (7184) pixels +0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, // 0x1C20 (7200) pixels +0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, // 0x1C30 (7216) pixels +0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, // 0x1C40 (7232) pixels +0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, 0x022A, // 0x1C50 (7248) pixels +0x022A, 0x026C, 0x02EE, 0x03D2, 0x0CB7, 0x0D7A, 0x0DDC, 0x0DFD, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0C96, 0x0000, 0x0082, // 0x1C60 (7264) pixels +0x0C55, 0x0D9C, 0x0DFD, 0x0000, 0x0000, 0x0BF3, 0x0C55, 0x022B, 0x0000, 0x022A, 0x0C97, 0x0000, 0x0062, 0x03D3, 0x0CD7, 0x0350, // 0x1C70 (7280) pixels +0x0000, 0x00C4, 0x022A, 0x00E4, 0x0000, 0x02CE, 0x0D39, 0x0000, 0x0041, 0x0C35, 0x0D9C, 0x0E1E, 0x0E3E, 0x0E1E, 0x02EE, 0x0000, // 0x1C80 (7296) pixels +0x0166, 0x03B2, 0x0C14, 0x02AD, 0x0000, 0x0105, 0x0C76, 0x022B, 0x0000, 0x0126, 0x024B, 0x0062, 0x0000, 0x03D2, 0x0CD8, 0x01C9, // 0x1C90 (7312) pixels +0x0041, 0x0000, 0x0000, 0x00E4, 0x0CF8, 0x0125, 0x0000, 0x030F, 0x0C34, 0x0167, 0x0000, 0x02EE, 0x0D7A, 0x0E1E, 0x0E3E, 0x0E1E, // 0x1CA0 (7328) pixels +0x0CF8, 0x0000, 0x0041, 0x02AD, 0x0062, 0x0000, 0x020A, 0x0C55, 0x0D39, 0x00C4, 0x0000, 0x01C9, 0x022A, 0x0000, 0x00A3, 0x0C96, // 0x1CB0 (7344) pixels +0x02EE, 0x0000, 0x01A8, 0x0C34, 0x0CD8, 0x0020, 0x0000, 0x01C9, 0x01E9, 0x01E9, 0x01C9, 0x0391, 0x0D7B, 0x0E1E, 0x0E3E, 0x0E3E, // 0x1CC0 (7360) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0DFD, 0x0146, 0x0000, 0x026C, // 0x1CD0 (7376) pixels +0x03D3, 0x02EE, 0x0000, 0x0000, 0x0CB7, 0x00C4, 0x0000, 0x030F, 0x0C35, 0x0C35, 0x0370, 0x03B2, 0x03D2, 0x0C14, 0x02AD, 0x01A8, // 0x1CE0 (7392) pixels +0x0000, 0x00C4, 0x0D19, 0x00E4, 0x0000, 0x0371, 0x0D19, 0x0DDC, 0x0E1E, 0x0E3E, 0x0E1E, 0x0CF8, 0x0000, 0x0041, 0x0C55, 0x0D39, // 0x1CF0 (7408) pixels +0x028C, 0x0000, 0x0082, 0x03D3, 0x03B2, 0x0000, 0x0105, 0x0C76, 0x02EE, 0x0000, 0x01C9, 0x0C96, 0x0D5A, 0x00A3, 0x0000, 0x03B2, // 0x1D00 (7424) pixels +0x0D19, 0x02CD, 0x0000, 0x022A, 0x0C55, 0x0000, 0x0041, 0x03D3, 0x0D19, 0x0D39, 0x0C96, 0x02CD, 0x0000, 0x01A8, 0x0CD8, 0x030F, // 0x1D10 (7440) pixels +0x0000, 0x01A8, 0x0CB7, 0x0187, 0x0000, 0x030F, 0x0CF8, 0x0061, 0x0000, 0x03D3, 0x0D39, 0x0D7B, 0x0370, 0x0000, 0x0021, 0x0000, // 0x1D20 (7456) pixels +0x02CD, 0x0C55, 0x0D5A, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0DDD, 0x0D7B, 0x0CD8, 0x0C34, 0x0391, 0x0350, // 0x1D30 (7472) pixels +0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, // 0x1D40 (7488) pixels +0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, // 0x1D50 (7504) pixels +0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, // 0x1D60 (7520) pixels +0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, // 0x1D70 (7536) pixels +0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, // 0x1D80 (7552) pixels +0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, // 0x1D90 (7568) pixels +0x0350, 0x0371, 0x0C13, 0x0CB7, 0x0D5A, 0x0DDC, 0x0DFD, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0C96, 0x0000, 0x0082, // 0x1DA0 (7584) pixels +0x0C55, 0x0DBC, 0x0DFD, 0x0105, 0x0000, 0x02CE, 0x0CF8, 0x0126, 0x0000, 0x02CE, 0x0C96, 0x0000, 0x0020, 0x03D3, 0x0CF8, 0x01E9, // 0x1DB0 (7600) pixels +0x0000, 0x02EE, 0x0C35, 0x0126, 0x0000, 0x02AD, 0x0CF8, 0x0000, 0x0041, 0x0C35, 0x0D9C, 0x0E1E, 0x0E3E, 0x0E1E, 0x02EE, 0x0000, // 0x1DC0 (7616) pixels +0x0167, 0x03D3, 0x0C55, 0x02CD, 0x0000, 0x0105, 0x0C96, 0x00C3, 0x0000, 0x03D3, 0x0C14, 0x0082, 0x0000, 0x0391, 0x032F, 0x0391, // 0x1DD0 (7632) pixels +0x03D2, 0x02EE, 0x0000, 0x0020, 0x0D19, 0x0125, 0x0000, 0x0350, 0x0CD8, 0x01A8, 0x0000, 0x02EE, 0x0D3A, 0x0DFD, 0x0E3E, 0x0E1E, // 0x1DE0 (7648) pixels +0x0CF8, 0x0000, 0x0061, 0x0371, 0x02CE, 0x0000, 0x0000, 0x0392, 0x0CB7, 0x0000, 0x00C3, 0x0C55, 0x0350, 0x0000, 0x00A3, 0x0C55, // 0x1DF0 (7664) pixels +0x0330, 0x0000, 0x0146, 0x0C76, 0x0D19, 0x0125, 0x0000, 0x020A, 0x0BF3, 0x03D3, 0x024B, 0x03B2, 0x0D5A, 0x0DFD, 0x0E3E, 0x0E3E, // 0x1E00 (7680) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0DFD, 0x0146, 0x0000, 0x0020, // 0x1E10 (7696) pixels +0x0021, 0x0000, 0x0000, 0x01C8, 0x0C35, 0x02EE, 0x0000, 0x0020, 0x0125, 0x00E4, 0x0020, 0x0350, 0x0125, 0x00C3, 0x0187, 0x00E4, // 0x1E20 (7712) pixels +0x0000, 0x01C9, 0x0CD8, 0x01A8, 0x0000, 0x00A3, 0x0187, 0x0DFD, 0x0E1E, 0x0E3E, 0x0E1E, 0x0CF8, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1E30 (7728) pixels +0x0000, 0x0082, 0x032F, 0x0C14, 0x03D3, 0x0000, 0x0105, 0x0C76, 0x02EE, 0x0000, 0x01E9, 0x0CD7, 0x0D9C, 0x00A3, 0x0000, 0x0BF3, // 0x1E40 (7744) pixels +0x0D5A, 0x02CE, 0x0000, 0x020A, 0x0C96, 0x020A, 0x0000, 0x0061, 0x0167, 0x0062, 0x0391, 0x0BF3, 0x0000, 0x0000, 0x0062, 0x0000, // 0x1E50 (7760) pixels +0x0000, 0x01A8, 0x0C97, 0x0187, 0x0000, 0x030F, 0x0D19, 0x0126, 0x0000, 0x00C4, 0x01E9, 0x0DDD, 0x0D3A, 0x0062, 0x0000, 0x0061, // 0x1E60 (7776) pixels +0x03D3, 0x0CB7, 0x0DBC, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0DFD, 0x0DDD, 0x0D7B, 0x0D19, 0x0CB7, 0x0C76, // 0x1E70 (7792) pixels +0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, // 0x1E80 (7808) pixels +0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, // 0x1E90 (7824) pixels +0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, // 0x1EA0 (7840) pixels +0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, // 0x1EB0 (7856) pixels +0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, // 0x1EC0 (7872) pixels +0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, 0x0C76, // 0x1ED0 (7888) pixels +0x0C76, 0x0CB7, 0x0D19, 0x0D7B, 0x0DDC, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0C96, 0x0000, 0x0082, // 0x1EE0 (7904) pixels +0x0C55, 0x0DBC, 0x0DFD, 0x0C14, 0x0061, 0x0000, 0x0000, 0x0000, 0x01A8, 0x0C13, 0x0CB7, 0x0146, 0x0000, 0x0000, 0x01A8, 0x0392, // 0x1EF0 (7920) pixels +0x0000, 0x0000, 0x0020, 0x0062, 0x0000, 0x02AD, 0x0CF8, 0x0000, 0x0041, 0x0C55, 0x0D9C, 0x0E1E, 0x0E3E, 0x0E1E, 0x02EE, 0x0000, // 0x1F00 (7936) pixels +0x0187, 0x0C76, 0x0D5A, 0x0370, 0x0000, 0x0105, 0x0C76, 0x024B, 0x0000, 0x0000, 0x0041, 0x0041, 0x0000, 0x0391, 0x020A, 0x0000, // 0x1F10 (7952) pixels +0x0020, 0x0000, 0x0000, 0x020A, 0x0C96, 0x0105, 0x0000, 0x0371, 0x0D39, 0x01C8, 0x0000, 0x02EE, 0x0D39, 0x0DFD, 0x0E3E, 0x0E1E, // 0x1F20 (7968) pixels +0x0CF8, 0x0000, 0x0061, 0x03D2, 0x0C35, 0x01E9, 0x0000, 0x0062, 0x0CD7, 0x00E4, 0x0000, 0x0020, 0x0082, 0x0000, 0x00A3, 0x0C55, // 0x1F30 (7984) pixels +0x0C76, 0x0041, 0x0000, 0x0000, 0x0391, 0x0C14, 0x00A3, 0x0000, 0x0000, 0x0000, 0x0000, 0x03D2, 0x0D9B, 0x0E1E, 0x0E3E, 0x0E3E, // 0x1F40 (8000) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0DFD, 0x032F, 0x01E9, 0x01C8, // 0x1F50 (8016) pixels +0x022A, 0x02AD, 0x0350, 0x03B2, 0x0C55, 0x0CD7, 0x0371, 0x01C9, 0x0187, 0x01C9, 0x02CE, 0x0CB7, 0x0BD3, 0x022B, 0x0188, 0x01A8, // 0x1F60 (8032) pixels +0x026C, 0x03B2, 0x0C96, 0x0C76, 0x020A, 0x0187, 0x026C, 0x0DBC, 0x0E1E, 0x0E3E, 0x0E1E, 0x0D5A, 0x024B, 0x01A8, 0x01C9, 0x02AD, // 0x1F70 (8048) pixels +0x0350, 0x0C14, 0x0BF3, 0x0C96, 0x0C97, 0x022A, 0x026C, 0x0C96, 0x0C13, 0x020A, 0x02EE, 0x0CD8, 0x0DBC, 0x02CD, 0x01C9, 0x0C14, // 0x1F80 (8064) pixels +0x0D5A, 0x0C14, 0x020A, 0x030F, 0x0CB7, 0x0CD7, 0x02CE, 0x01A8, 0x01A8, 0x02AD, 0x0CD7, 0x0D39, 0x02AD, 0x0166, 0x022B, 0x0391, // 0x1F90 (8080) pixels +0x01E9, 0x02AD, 0x0CB7, 0x030F, 0x01E9, 0x0392, 0x0D19, 0x0C76, 0x01C9, 0x0187, 0x02CE, 0x0DBC, 0x0D9B, 0x01A8, 0x0000, 0x01A8, // 0x1FA0 (8096) pixels +0x0BF3, 0x0D39, 0x0DFD, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0DFD, 0x0DDD, 0x0DBC, 0x0D7B, 0x0D5A, // 0x1FB0 (8112) pixels +0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, // 0x1FC0 (8128) pixels +0x0D5A, 0x0C97, 0x0C97, 0x0D5A, 0x0D5A, 0x0D39, 0x0C97, 0x0CB7, 0x0D5A, 0x0D5A, 0x0CF8, 0x0C97, 0x0CF8, 0x0D5A, 0x0D5A, 0x0D5A, // 0x1FD0 (8144) pixels +0x0C35, 0x03D2, 0x0C34, 0x0D3A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0CB7, 0x0C97, 0x0C97, 0x0C97, 0x0CF8, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D19, // 0x1FE0 (8160) pixels +0x0C97, 0x0CD8, 0x0D5A, 0x0D5A, 0x0CF8, 0x0C97, 0x0CB7, 0x0D5A, 0x0CB7, 0x0C97, 0x0C97, 0x0C97, 0x0C97, 0x0CD7, 0x0D5A, 0x0CF8, // 0x1FF0 (8176) pixels +0x0C97, 0x0C97, 0x0C97, 0x0CD7, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D19, 0x0C34, 0x0C13, 0x0C96, 0x0D5A, 0x0D5A, 0x0D5A, // 0x2000 (8192) pixels +0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, 0x0D5A, // 0x2010 (8208) pixels +0x0D5A, 0x0D7B, 0x0D9C, 0x0DDD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0D9B, 0x03D3, 0x032F, // 0x2020 (8224) pixels +0x0C76, 0x0DBC, 0x0DFD, 0x0D5A, 0x0C13, 0x02EE, 0x02EE, 0x03D3, 0x0C14, 0x0C35, 0x0D19, 0x0CD8, 0x030F, 0x02CD, 0x0C14, 0x0CF8, // 0x2030 (8240) pixels +0x0391, 0x028C, 0x03B2, 0x0BD3, 0x030F, 0x03D2, 0x0CF8, 0x0BF3, 0x032F, 0x0C55, 0x0DBC, 0x0E1E, 0x0E3E, 0x0E1E, 0x0D19, 0x0391, // 0x2040 (8256) pixels +0x0371, 0x0CB7, 0x0DBC, 0x0D39, 0x03B2, 0x0350, 0x0C76, 0x0CF8, 0x032F, 0x028D, 0x0C13, 0x0392, 0x030F, 0x0BF3, 0x0CF8, 0x0BF3, // 0x2050 (8272) pixels +0x032F, 0x030F, 0x0391, 0x03B2, 0x0C55, 0x0C14, 0x0350, 0x0C14, 0x0D5A, 0x0C96, 0x0370, 0x0BF3, 0x0D3A, 0x0DFD, 0x0E3E, 0x0E1E, // 0x2060 (8288) pixels +0x0D9C, 0x0BF3, 0x032F, 0x0C35, 0x0D19, 0x0CB7, 0x032F, 0x0350, 0x0C75, 0x0C96, 0x02AD, 0x02CE, 0x0C55, 0x0350, 0x032F, 0x0C75, // 0x2070 (8304) pixels +0x0D3A, 0x0C55, 0x02CD, 0x030F, 0x0CB7, 0x0D19, 0x0C34, 0x030F, 0x02EE, 0x0350, 0x0C35, 0x0CF8, 0x0D9B, 0x0E1E, 0x0E3E, 0x0E3E, // 0x2080 (8320) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0DFD, 0x0D5A, 0x0C55, 0x03D3, // 0x2090 (8336) pixels +0x0BF3, 0x0C14, 0x0C14, 0x0C35, 0x0CF8, 0x0D5A, 0x0CD7, 0x0C34, 0x0C34, 0x0C55, 0x0C76, 0x0CB7, 0x0CF8, 0x0CB7, 0x0C75, 0x0C35, // 0x20A0 (8352) pixels +0x0C14, 0x0C34, 0x0CF8, 0x0D3A, 0x0C76, 0x0C13, 0x0C75, 0x0D19, 0x0DFD, 0x0E3E, 0x0E1E, 0x0DFD, 0x0D19, 0x0BF3, 0x03D2, 0x0C14, // 0x20B0 (8368) pixels +0x0C14, 0x0C14, 0x0C96, 0x0D5A, 0x0D9C, 0x0CF8, 0x0C55, 0x0CB7, 0x0D5A, 0x0CB7, 0x0C55, 0x0D19, 0x0DBC, 0x0D5A, 0x0C55, 0x0C76, // 0x20C0 (8384) pixels +0x0D7B, 0x0D9B, 0x0CB7, 0x0C55, 0x0CF8, 0x0D5A, 0x0C96, 0x0C14, 0x0C35, 0x0C76, 0x0CB7, 0x0D19, 0x0CB7, 0x0C13, 0x0BF3, 0x0C14, // 0x20D0 (8400) pixels +0x0C13, 0x0C14, 0x0CD8, 0x0D39, 0x0C76, 0x0C76, 0x0D5A, 0x0D5A, 0x0C55, 0x0C13, 0x0C76, 0x0D39, 0x0D7B, 0x0061, 0x0000, 0x030F, // 0x20E0 (8416) pixels +0x0C55, 0x0D9B, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DFD, 0x0DDD, // 0x20F0 (8432) pixels +0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, // 0x2100 (8448) pixels +0x0DBC, 0x0062, 0x0000, 0x0C96, 0x0DBC, 0x0370, 0x0000, 0x0041, 0x0D9B, 0x0DDC, 0x020A, 0x0000, 0x0330, 0x0DBC, 0x0C96, 0x00C4, // 0x2110 (8464) pixels +0x0000, 0x0000, 0x0000, 0x00A3, 0x0C55, 0x0DDC, 0x0DDD, 0x00C3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0125, 0x0D19, 0x0DDC, 0x0BB2, // 0x2120 (8480) pixels +0x0000, 0x01A8, 0x0DBC, 0x0D5A, 0x00A3, 0x0000, 0x0370, 0x0DBC, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0105, 0x0DBC, 0x028C, // 0x2130 (8496) pixels +0x0000, 0x0000, 0x0000, 0x0000, 0x0082, 0x0BF3, 0x0DDC, 0x0DDD, 0x030F, 0x0041, 0x0000, 0x0000, 0x0000, 0x0082, 0x0DBC, 0x0DDC, // 0x2140 (8512) pixels +0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, 0x0DDD, // 0x2150 (8528) pixels +0x0DDD, 0x0DFD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0DDD, 0x0D19, 0x0C55, // 0x2160 (8544) pixels +0x0CD7, 0x0DDC, 0x0E1E, 0x0DDC, 0x0CF8, 0x0C55, 0x0C34, 0x0C34, 0x0C55, 0x0CF8, 0x0DBC, 0x0D7A, 0x0C76, 0x0C14, 0x0C76, 0x0CD7, // 0x2170 (8560) pixels +0x0CB7, 0x0C34, 0x0C34, 0x0C55, 0x0C34, 0x0C76, 0x0D3A, 0x0D39, 0x0C75, 0x0CB7, 0x0DDC, 0x0E1E, 0x0E3E, 0x0E1E, 0x0DBC, 0x0CD8, // 0x2180 (8576) pixels +0x0C76, 0x0D19, 0x0DDD, 0x0DBC, 0x0CF8, 0x0C75, 0x0CD8, 0x0D5A, 0x0CB7, 0x0C14, 0x0C35, 0x0C55, 0x0C14, 0x0C76, 0x0D19, 0x0CD8, // 0x2190 (8592) pixels +0x0C76, 0x0C35, 0x0C34, 0x0C55, 0x0CF8, 0x0D39, 0x0C96, 0x0C97, 0x0D7B, 0x0D7B, 0x0CB7, 0x0C96, 0x0D7B, 0x0E1E, 0x0E3E, 0x0E1E, // 0x21A0 (8608) pixels +0x0DFD, 0x0D39, 0x0C55, 0x0CB7, 0x0D9B, 0x0D7B, 0x0CB7, 0x0C55, 0x0CB7, 0x0CF8, 0x0C55, 0x0C14, 0x0C55, 0x0C55, 0x0C34, 0x0CD7, // 0x21B0 (8624) pixels +0x0D9B, 0x0D39, 0x0C55, 0x0C34, 0x0CB7, 0x0D39, 0x0CF8, 0x0C55, 0x0C34, 0x0C35, 0x0C55, 0x0CD7, 0x0D9B, 0x0E1E, 0x0E3E, 0x0E3E, // 0x21C0 (8640) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0DBC, 0x0D19, 0x0CB7, // 0x21D0 (8656) pixels +0x0CB7, 0x0CD7, 0x0CF8, 0x0D5A, 0x0DDC, 0x0DFD, 0x0DBC, 0x0D39, 0x0CD8, 0x0CB7, 0x0CD8, 0x0D39, 0x0D7B, 0x0D39, 0x0CD8, 0x0CB7, // 0x21E0 (8672) pixels +0x0CD8, 0x0D3A, 0x0DBC, 0x0DDD, 0x0D5A, 0x0CD8, 0x0CD8, 0x0D5A, 0x0DFD, 0x0E3E, 0x0E3E, 0x0DFD, 0x0D9B, 0x0CD8, 0x0CB7, 0x0CB7, // 0x21F0 (8688) pixels +0x0CF8, 0x0D3A, 0x0D9C, 0x0DFD, 0x0DFD, 0x0D7B, 0x0D19, 0x0D5A, 0x0DBC, 0x0D5A, 0x0D39, 0x0D9B, 0x0DFD, 0x0DBC, 0x0D19, 0x0D3A, // 0x2200 (8704) pixels +0x0DDC, 0x0DDC, 0x0D5A, 0x0D39, 0x0D9B, 0x0DDD, 0x0D9B, 0x0D19, 0x0CB7, 0x0CD7, 0x0D19, 0x0D9B, 0x0D7B, 0x0CF8, 0x0CB7, 0x0CD8, // 0x2210 (8720) pixels +0x0CF8, 0x0D19, 0x0D7A, 0x0D9B, 0x0D39, 0x0D39, 0x0DBC, 0x0DDC, 0x0D5A, 0x0CD8, 0x0CF8, 0x0D5A, 0x0C55, 0x0166, 0x01C8, 0x0BD3, // 0x2220 (8736) pixels +0x0CF8, 0x0DDD, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x2230 (8752) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x2240 (8768) pixels +0x0DFD, 0x01E9, 0x0000, 0x030F, 0x0DBC, 0x01C9, 0x0000, 0x0000, 0x0C14, 0x0DDC, 0x00A3, 0x0000, 0x0C75, 0x0D3A, 0x0062, 0x0000, // 0x2250 (8784) pixels +0x022A, 0x03B2, 0x024B, 0x0000, 0x0041, 0x0D19, 0x0DFD, 0x00C3, 0x0000, 0x02AD, 0x0330, 0x0105, 0x0000, 0x01E9, 0x0DDC, 0x03B2, // 0x2260 (8800) pixels +0x0000, 0x0187, 0x0D7B, 0x0187, 0x0000, 0x024B, 0x0D3A, 0x0D9B, 0x0020, 0x0000, 0x02CD, 0x02EE, 0x030F, 0x0371, 0x0D7B, 0x026C, // 0x2270 (8816) pixels +0x0000, 0x01C8, 0x0350, 0x01E9, 0x0000, 0x0041, 0x0DBC, 0x0C76, 0x0000, 0x00A3, 0x03B2, 0x03B2, 0x02AD, 0x0082, 0x0D5A, 0x0DDD, // 0x2280 (8832) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x2290 (8848) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0DBC, 0x0D7B, // 0x22A0 (8864) pixels +0x0D9B, 0x0DFD, 0x0E1E, 0x0E1E, 0x0DDD, 0x0D7A, 0x0D39, 0x0D39, 0x0D5A, 0x0DDC, 0x0E1E, 0x0DFD, 0x0D9B, 0x0D3A, 0x0D3A, 0x0D7B, // 0x22B0 (8880) pixels +0x0D9B, 0x0D5A, 0x0D39, 0x0D5A, 0x0D5A, 0x0D7B, 0x0DDC, 0x0DBC, 0x0D7B, 0x0D9B, 0x0DFD, 0x0E3E, 0x0E3E, 0x0E1E, 0x0DFD, 0x0D9C, // 0x22C0 (8896) pixels +0x0D7B, 0x0DBC, 0x0E1E, 0x0DFD, 0x0DBC, 0x0D7B, 0x0DBC, 0x0DDD, 0x0D9B, 0x0D3A, 0x0D39, 0x0D5A, 0x0D5A, 0x0D7B, 0x0DBC, 0x0D9B, // 0x22D0 (8912) pixels +0x0D3A, 0x0D19, 0x0D39, 0x0D7B, 0x0DDC, 0x0DDC, 0x0D7B, 0x0D9B, 0x0DDD, 0x0DDD, 0x0D9B, 0x0D7B, 0x0DDD, 0x0E1E, 0x0E3E, 0x0E3E, // 0x22E0 (8928) pixels +0x0E1E, 0x0DBC, 0x0D7B, 0x0D9B, 0x0DFD, 0x0DFD, 0x0DBC, 0x0D5A, 0x0D7B, 0x0D9C, 0x0D7B, 0x0D39, 0x0D3A, 0x0D5A, 0x0D5A, 0x0D9C, // 0x22F0 (8944) pixels +0x0DFD, 0x0DDD, 0x0D7A, 0x0D39, 0x0D5A, 0x0DBC, 0x0DDC, 0x0D7B, 0x0D39, 0x0D19, 0x0D3A, 0x0D9B, 0x0DFD, 0x0E1E, 0x0E3E, 0x0E3E, // 0x2300 (8960) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0DFD, 0x0DDD, // 0x2310 (8976) pixels +0x0DDC, 0x0DDD, 0x0DFD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DDD, 0x0DDC, 0x0DDC, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DDC, 0x0DDC, // 0x2320 (8992) pixels +0x0DDD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DDD, 0x0DDC, 0x0DFD, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0DFD, 0x0DDD, 0x0DDC, 0x0DDD, // 0x2330 (9008) pixels +0x0DDD, 0x0DFD, 0x0E1E, 0x0E3E, 0x0E1E, 0x0DFD, 0x0DFD, 0x0DFD, 0x0E1E, 0x0DFD, 0x0DFD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DFD, // 0x2340 (9024) pixels +0x0E1E, 0x0E1E, 0x0DFD, 0x0DFD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DDC, 0x0DDC, 0x0DFD, 0x0E1E, 0x0E1E, 0x0DDD, 0x0DDC, 0x0DDD, // 0x2350 (9040) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DDD, 0x0DDD, 0x0DFD, 0x0DDD, 0x0D19, 0x0C34, 0x0C55, // 0x2360 (9056) pixels +0x0D7A, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, // 0x2370 (9072) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x2380 (9088) pixels +0x0DFD, 0x0350, 0x0000, 0x0187, 0x0D39, 0x0041, 0x0020, 0x0000, 0x024B, 0x0CD7, 0x0000, 0x0062, 0x0C55, 0x030F, 0x0000, 0x00E4, // 0x2390 (9104) pixels +0x0C14, 0x0C14, 0x0C14, 0x0105, 0x0000, 0x02AD, 0x0DBC, 0x00A3, 0x0000, 0x032F, 0x0BF3, 0x022B, 0x0000, 0x0167, 0x0D5A, 0x0391, // 0x23A0 (9120) pixels +0x0000, 0x0146, 0x022B, 0x0000, 0x0187, 0x0C34, 0x0C96, 0x0D3A, 0x0000, 0x0000, 0x02CE, 0x032F, 0x0350, 0x0BF3, 0x0CF8, 0x024B, // 0x23B0 (9136) pixels +0x0000, 0x020A, 0x0BF3, 0x0371, 0x0000, 0x0000, 0x0CF8, 0x0370, 0x0000, 0x0062, 0x02AD, 0x03B2, 0x0C14, 0x0C34, 0x0CD7, 0x0DBC, // 0x23C0 (9152) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x23D0 (9168) pixels +0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x23E0 (9184) pixels +0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DFD, 0x0E1E, // 0x23F0 (9200) pixels +0x0E1E, 0x0DFD, 0x0DFD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, // 0x2400 (9216) pixels +0x0E1E, 0x0E1E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, // 0x2410 (9232) pixels +0x0DFD, 0x0DFD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2420 (9248) pixels +0x0E3E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E1E, // 0x2430 (9264) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DFD, 0x0DFD, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2440 (9280) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2450 (9296) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2460 (9312) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2470 (9328) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2480 (9344) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2490 (9360) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0DFD, 0x0D5A, 0x0CD8, 0x0D19, // 0x24A0 (9376) pixels +0x0DDD, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x24B0 (9392) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x24C0 (9408) pixels +0x0E1E, 0x0CD7, 0x0000, 0x0062, 0x03B2, 0x0000, 0x01C8, 0x0000, 0x0104, 0x0330, 0x0000, 0x0167, 0x0C14, 0x022B, 0x0000, 0x0187, // 0x24D0 (9424) pixels +0x0BF3, 0x0C96, 0x0CB7, 0x020A, 0x0000, 0x0187, 0x0D3A, 0x00A3, 0x0000, 0x0167, 0x01C9, 0x0041, 0x0000, 0x02CD, 0x0CB7, 0x0350, // 0x24E0 (9440) pixels +0x0000, 0x0041, 0x0000, 0x0021, 0x0BF3, 0x0C14, 0x0CF8, 0x0D9B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x022B, 0x0D3A, 0x024B, // 0x24F0 (9456) pixels +0x0000, 0x00E4, 0x01E9, 0x00C3, 0x0000, 0x0187, 0x0C75, 0x0CB7, 0x0061, 0x0000, 0x0000, 0x0000, 0x00C4, 0x032F, 0x0CF8, 0x0DDC, // 0x2500 (9472) pixels +0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2510 (9488) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2520 (9504) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2530 (9520) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2540 (9536) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2550 (9552) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2560 (9568) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2570 (9584) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2580 (9600) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2590 (9616) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x25A0 (9632) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x25B0 (9648) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x25C0 (9664) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x25D0 (9680) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0DFD, 0x0DDC, 0x0DFD, // 0x25E0 (9696) pixels +0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x25F0 (9712) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2600 (9728) pixels +0x0E1E, 0x0D9C, 0x00A3, 0x0000, 0x01C9, 0x0000, 0x02CE, 0x00C4, 0x0020, 0x01A8, 0x0000, 0x026C, 0x0C55, 0x024B, 0x0000, 0x0146, // 0x2610 (9744) pixels +0x0C55, 0x0D7A, 0x0DBC, 0x022A, 0x0000, 0x0187, 0x0CB7, 0x00A3, 0x0000, 0x0021, 0x0000, 0x0000, 0x022B, 0x0BD3, 0x0CB7, 0x0350, // 0x2620 (9760) pixels +0x0000, 0x0000, 0x0041, 0x0000, 0x01C8, 0x0CB7, 0x0D9B, 0x0DDD, 0x0000, 0x0000, 0x022B, 0x02CE, 0x030F, 0x0C14, 0x0D5A, 0x024B, // 0x2630 (9776) pixels +0x0000, 0x0020, 0x0020, 0x0000, 0x0125, 0x03B2, 0x0C55, 0x0D39, 0x0C34, 0x01C8, 0x00C4, 0x0020, 0x0000, 0x0000, 0x0CB7, 0x0DFD, // 0x2640 (9792) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2650 (9808) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2660 (9824) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2670 (9840) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2680 (9856) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2690 (9872) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x26A0 (9888) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x26B0 (9904) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x26C0 (9920) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x26D0 (9936) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x26E0 (9952) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x26F0 (9968) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2700 (9984) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2710 (10000) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2720 (10016) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2730 (10032) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2740 (10048) pixels +0x0E1E, 0x0DDD, 0x020A, 0x0000, 0x0020, 0x0021, 0x03D2, 0x020A, 0x0000, 0x0020, 0x0000, 0x0391, 0x0C97, 0x0391, 0x0000, 0x0061, // 0x2750 (10064) pixels +0x0C75, 0x0DBC, 0x0DDD, 0x00C3, 0x0000, 0x026B, 0x0C96, 0x00A3, 0x0000, 0x02EE, 0x024B, 0x0000, 0x0061, 0x03B2, 0x0D39, 0x0371, // 0x2760 (10080) pixels +0x0000, 0x00E4, 0x02AD, 0x0000, 0x0000, 0x0371, 0x0DFD, 0x0DFD, 0x0000, 0x0000, 0x032F, 0x0BF3, 0x0C34, 0x0C96, 0x0D39, 0x024B, // 0x2770 (10096) pixels +0x0000, 0x01C9, 0x032F, 0x0020, 0x0000, 0x02AD, 0x0CD8, 0x0C34, 0x0C75, 0x0C14, 0x03B2, 0x0371, 0x0061, 0x0000, 0x0392, 0x0DDC, // 0x2780 (10112) pixels +0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2790 (10128) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x27A0 (10144) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x27B0 (10160) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x27C0 (10176) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x27D0 (10192) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x27E0 (10208) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x27F0 (10224) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2800 (10240) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2810 (10256) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2820 (10272) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2830 (10288) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2840 (10304) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2850 (10320) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2860 (10336) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2870 (10352) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2880 (10368) pixels +0x0E3E, 0x0DFD, 0x0391, 0x0000, 0x0000, 0x0105, 0x0BF3, 0x0391, 0x0000, 0x0000, 0x00A3, 0x0C13, 0x0CF8, 0x0D3A, 0x0104, 0x0000, // 0x2890 (10384) pixels +0x00C3, 0x028C, 0x0125, 0x0000, 0x00A3, 0x03B2, 0x0CB7, 0x00A3, 0x0000, 0x02CE, 0x03B2, 0x0125, 0x0000, 0x0105, 0x0D5A, 0x0371, // 0x28A0 (10400) pixels +0x0000, 0x0105, 0x0371, 0x020A, 0x0000, 0x0041, 0x0CD8, 0x0DDD, 0x0000, 0x0000, 0x0125, 0x0187, 0x01A8, 0x026B, 0x0D7B, 0x024B, // 0x28B0 (10416) pixels +0x0000, 0x01C9, 0x03B2, 0x024B, 0x0000, 0x0041, 0x0C76, 0x02EE, 0x0020, 0x0187, 0x022A, 0x0187, 0x0000, 0x0061, 0x0C14, 0x0D7B, // 0x28C0 (10432) pixels +0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x28D0 (10448) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x28E0 (10464) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x28F0 (10480) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2900 (10496) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2910 (10512) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2920 (10528) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2930 (10544) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2940 (10560) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2950 (10576) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2960 (10592) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2970 (10608) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2980 (10624) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2990 (10640) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x29A0 (10656) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x29B0 (10672) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x29C0 (10688) pixels +0x0E3E, 0x0E1E, 0x0D39, 0x0083, 0x0062, 0x022A, 0x0C34, 0x0CD8, 0x00C4, 0x0062, 0x01A8, 0x0C34, 0x0D5A, 0x0D9B, 0x0C76, 0x01A8, // 0x29D0 (10704) pixels +0x0062, 0x0000, 0x0062, 0x01C9, 0x0391, 0x0C14, 0x0CF8, 0x0126, 0x0082, 0x0330, 0x0C76, 0x0C14, 0x00C4, 0x0082, 0x02CE, 0x03B2, // 0x29E0 (10720) pixels +0x0083, 0x0167, 0x0C14, 0x0C55, 0x0167, 0x0082, 0x0188, 0x0D9B, 0x00C3, 0x0082, 0x0082, 0x00A3, 0x00A3, 0x0188, 0x0D9B, 0x02AD, // 0x29F0 (10736) pixels +0x0082, 0x022B, 0x0C55, 0x0C76, 0x0187, 0x0082, 0x0187, 0x0C14, 0x0188, 0x0082, 0x0020, 0x0082, 0x0187, 0x032F, 0x0C14, 0x0D5A, // 0x2A00 (10752) pixels +0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2A10 (10768) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2A20 (10784) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2A30 (10800) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2A40 (10816) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2A50 (10832) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2A60 (10848) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2A70 (10864) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2A80 (10880) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2A90 (10896) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2AA0 (10912) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2AB0 (10928) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2AC0 (10944) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2AD0 (10960) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2AE0 (10976) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2AF0 (10992) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2B00 (11008) pixels +0x0E3E, 0x0E1E, 0x0DBC, 0x0CB7, 0x03B2, 0x03B2, 0x0CB7, 0x0D5A, 0x0CD7, 0x03B2, 0x0392, 0x0C96, 0x0DBC, 0x0DFD, 0x0D5A, 0x0C55, // 0x2B10 (11024) pixels +0x0BF3, 0x0C14, 0x0C35, 0x0C14, 0x0BF3, 0x0CB7, 0x0D7B, 0x0D39, 0x0C14, 0x0C34, 0x0D39, 0x0D39, 0x0C55, 0x0BF3, 0x0C96, 0x0D19, // 0x2B20 (11040) pixels +0x0C96, 0x0BF3, 0x0C96, 0x0D19, 0x0C96, 0x0BF3, 0x0C55, 0x0D39, 0x0CF8, 0x03D3, 0x03B2, 0x0C14, 0x0C75, 0x0C97, 0x0D19, 0x0D3A, // 0x2B30 (11056) pixels +0x0C76, 0x0C14, 0x0CD8, 0x0D5A, 0x0C96, 0x0BF3, 0x0C55, 0x0CD8, 0x0CB7, 0x0C55, 0x0C55, 0x0C55, 0x0C14, 0x0BF3, 0x0C96, 0x0D9C, // 0x2B40 (11072) pixels +0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2B50 (11088) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2B60 (11104) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2B70 (11120) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2B80 (11136) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2B90 (11152) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2BA0 (11168) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2BB0 (11184) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2BC0 (11200) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2BD0 (11216) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2BE0 (11232) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2BF0 (11248) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2C00 (11264) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2C10 (11280) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2C20 (11296) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2C30 (11312) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2C40 (11328) pixels +0x0E3E, 0x0E3E, 0x0DFD, 0x0D5A, 0x0C96, 0x0C96, 0x0D5A, 0x0DDC, 0x0D5A, 0x0C96, 0x0C76, 0x0D39, 0x0DFD, 0x0E1E, 0x0DDD, 0x0D5A, // 0x2C50 (11344) pixels +0x0CB7, 0x0C55, 0x0C35, 0x0C76, 0x0CD8, 0x0D9B, 0x0DFD, 0x0D7B, 0x0CB7, 0x0CD8, 0x0D9B, 0x0DDC, 0x0D39, 0x0C96, 0x0CB7, 0x0D39, // 0x2C60 (11360) pixels +0x0CF8, 0x0CB7, 0x0D39, 0x0DBC, 0x0D5A, 0x0CB7, 0x0CB7, 0x0D39, 0x0D39, 0x0C96, 0x0C35, 0x0C55, 0x0C75, 0x0C97, 0x0D19, 0x0D7B, // 0x2C70 (11376) pixels +0x0CF8, 0x0CB7, 0x0D5A, 0x0DDC, 0x0D7A, 0x0CB7, 0x0C96, 0x0CF8, 0x0CF8, 0x0C96, 0x0C55, 0x0C55, 0x0C76, 0x0CD8, 0x0D7B, 0x0DFD, // 0x2C80 (11392) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2C90 (11408) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2CA0 (11424) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2CB0 (11440) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2CC0 (11456) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2CD0 (11472) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2CE0 (11488) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2CF0 (11504) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2D00 (11520) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2D10 (11536) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2D20 (11552) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2D30 (11568) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2D40 (11584) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2D50 (11600) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2D60 (11616) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2D70 (11632) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2D80 (11648) pixels +0x0E3E, 0x0E3E, 0x0E1E, 0x0DFD, 0x0DBC, 0x0DBC, 0x0DFD, 0x0E1E, 0x0DFD, 0x0DBC, 0x0DBC, 0x0DFD, 0x0E1E, 0x0E3E, 0x0E1E, 0x0DFD, // 0x2D90 (11664) pixels +0x0DBC, 0x0D9B, 0x0D9B, 0x0D9C, 0x0DDD, 0x0E1E, 0x0E1E, 0x0DFD, 0x0DBC, 0x0DDC, 0x0DFD, 0x0E1E, 0x0DFD, 0x0DBC, 0x0DBC, 0x0DDD, // 0x2DA0 (11680) pixels +0x0DDD, 0x0DBC, 0x0DFD, 0x0E1E, 0x0DFD, 0x0DDC, 0x0DBC, 0x0DDD, 0x0DDD, 0x0DBC, 0x0D9B, 0x0D9B, 0x0D9B, 0x0DBC, 0x0DDD, 0x0DFD, // 0x2DB0 (11696) pixels +0x0DDD, 0x0DBC, 0x0DFD, 0x0E1E, 0x0DFD, 0x0DDC, 0x0DBC, 0x0DDC, 0x0DDD, 0x0DBC, 0x0D9B, 0x0D9B, 0x0DBC, 0x0DDD, 0x0E1E, 0x0E1E, // 0x2DC0 (11712) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2DD0 (11728) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2DE0 (11744) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2DF0 (11760) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2E00 (11776) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2E10 (11792) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2E20 (11808) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2E30 (11824) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2E40 (11840) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2E50 (11856) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2E60 (11872) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2E70 (11888) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2E80 (11904) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2E90 (11920) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2EA0 (11936) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2EB0 (11952) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2EC0 (11968) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2ED0 (11984) pixels +0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0E3E, // 0x2EE0 (12000) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, // 0x2EF0 (12016) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E1E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2F00 (12032) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2F10 (12048) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2F20 (12064) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2F30 (12080) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2F40 (12096) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2F50 (12112) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2F60 (12128) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2F70 (12144) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2F80 (12160) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2F90 (12176) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2FA0 (12192) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2FB0 (12208) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2FC0 (12224) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2FD0 (12240) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2FE0 (12256) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x2FF0 (12272) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3000 (12288) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3010 (12304) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3020 (12320) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3030 (12336) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3040 (12352) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3050 (12368) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3060 (12384) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3070 (12400) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3080 (12416) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3090 (12432) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x30A0 (12448) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x30B0 (12464) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x30C0 (12480) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x30D0 (12496) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x30E0 (12512) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x30F0 (12528) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3100 (12544) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3110 (12560) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3120 (12576) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3130 (12592) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3140 (12608) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3150 (12624) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3160 (12640) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3170 (12656) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3180 (12672) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3190 (12688) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x31A0 (12704) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x31B0 (12720) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x31C0 (12736) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x31D0 (12752) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x31E0 (12768) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x31F0 (12784) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3200 (12800) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3210 (12816) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3220 (12832) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3230 (12848) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3240 (12864) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3250 (12880) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3260 (12896) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3270 (12912) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3280 (12928) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3290 (12944) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x32A0 (12960) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x32B0 (12976) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x32C0 (12992) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x32D0 (13008) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x32E0 (13024) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x32F0 (13040) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3300 (13056) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3310 (13072) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3320 (13088) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3330 (13104) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3340 (13120) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3350 (13136) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3360 (13152) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3370 (13168) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3380 (13184) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3390 (13200) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x33A0 (13216) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x33B0 (13232) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x33C0 (13248) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x33D0 (13264) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x33E0 (13280) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x33F0 (13296) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3400 (13312) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3410 (13328) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3420 (13344) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3430 (13360) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3440 (13376) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3450 (13392) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3460 (13408) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3470 (13424) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3480 (13440) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3490 (13456) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x34A0 (13472) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x34B0 (13488) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x34C0 (13504) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x34D0 (13520) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x34E0 (13536) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x34F0 (13552) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3500 (13568) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3510 (13584) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3520 (13600) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3530 (13616) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3540 (13632) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3550 (13648) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3560 (13664) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3570 (13680) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3580 (13696) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3590 (13712) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x35A0 (13728) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x35B0 (13744) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x35C0 (13760) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x35D0 (13776) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x35E0 (13792) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x35F0 (13808) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3600 (13824) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3610 (13840) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3620 (13856) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3630 (13872) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3640 (13888) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3650 (13904) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3660 (13920) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3670 (13936) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3680 (13952) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3690 (13968) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x36A0 (13984) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x36B0 (14000) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x36C0 (14016) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x36D0 (14032) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x36E0 (14048) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x36F0 (14064) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3700 (14080) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3710 (14096) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3720 (14112) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3730 (14128) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3740 (14144) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3750 (14160) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3760 (14176) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3770 (14192) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3780 (14208) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3790 (14224) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x37A0 (14240) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x37B0 (14256) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x37C0 (14272) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x37D0 (14288) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x37E0 (14304) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x37F0 (14320) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3800 (14336) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3810 (14352) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3820 (14368) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3830 (14384) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3840 (14400) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3850 (14416) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3860 (14432) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3870 (14448) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3880 (14464) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3890 (14480) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x38A0 (14496) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x38B0 (14512) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x38C0 (14528) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x38D0 (14544) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x38E0 (14560) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x38F0 (14576) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3900 (14592) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3910 (14608) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3920 (14624) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3930 (14640) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3940 (14656) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3950 (14672) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3960 (14688) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3970 (14704) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3980 (14720) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3990 (14736) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x39A0 (14752) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x39B0 (14768) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x39C0 (14784) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x39D0 (14800) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x39E0 (14816) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x39F0 (14832) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3A00 (14848) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3A10 (14864) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3A20 (14880) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3A30 (14896) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3A40 (14912) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3A50 (14928) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3A60 (14944) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3A70 (14960) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3A80 (14976) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3A90 (14992) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3AA0 (15008) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3AB0 (15024) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3AC0 (15040) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3AD0 (15056) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3AE0 (15072) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3AF0 (15088) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3B00 (15104) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3B10 (15120) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3B20 (15136) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3B30 (15152) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3B40 (15168) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3B50 (15184) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3B60 (15200) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3B70 (15216) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3B80 (15232) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3B90 (15248) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3BA0 (15264) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3BB0 (15280) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3BC0 (15296) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3BD0 (15312) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3BE0 (15328) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3BF0 (15344) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3C00 (15360) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3C10 (15376) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3C20 (15392) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3C30 (15408) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3C40 (15424) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3C50 (15440) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3C60 (15456) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3C70 (15472) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3C80 (15488) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3C90 (15504) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3CA0 (15520) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3CB0 (15536) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3CC0 (15552) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3CD0 (15568) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3CE0 (15584) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3CF0 (15600) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3D00 (15616) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3D10 (15632) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3D20 (15648) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3D30 (15664) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3D40 (15680) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3D50 (15696) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3D60 (15712) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3D70 (15728) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3D80 (15744) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3D90 (15760) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3DA0 (15776) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3DB0 (15792) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3DC0 (15808) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3DD0 (15824) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3DE0 (15840) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3DF0 (15856) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3E00 (15872) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3E10 (15888) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3E20 (15904) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3E30 (15920) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3E40 (15936) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3E50 (15952) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3E60 (15968) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3E70 (15984) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3E80 (16000) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3E90 (16016) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3EA0 (16032) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3EB0 (16048) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3EC0 (16064) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3ED0 (16080) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3EE0 (16096) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3EF0 (16112) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3F00 (16128) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3F10 (16144) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3F20 (16160) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3F30 (16176) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3F40 (16192) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3F50 (16208) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3F60 (16224) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3F70 (16240) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3F80 (16256) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3F90 (16272) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3FA0 (16288) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3FB0 (16304) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3FC0 (16320) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3FD0 (16336) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3FE0 (16352) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x3FF0 (16368) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4000 (16384) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4010 (16400) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4020 (16416) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4030 (16432) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4040 (16448) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4050 (16464) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4060 (16480) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4070 (16496) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4080 (16512) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4090 (16528) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x40A0 (16544) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x40B0 (16560) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x40C0 (16576) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x40D0 (16592) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x40E0 (16608) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x40F0 (16624) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4100 (16640) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4110 (16656) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4120 (16672) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4130 (16688) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4140 (16704) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4150 (16720) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4160 (16736) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4170 (16752) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4180 (16768) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4190 (16784) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x41A0 (16800) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x41B0 (16816) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x41C0 (16832) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x41D0 (16848) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x41E0 (16864) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x41F0 (16880) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4200 (16896) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4210 (16912) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4220 (16928) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4230 (16944) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4240 (16960) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4250 (16976) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4260 (16992) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4270 (17008) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4280 (17024) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4290 (17040) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x42A0 (17056) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x42B0 (17072) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x42C0 (17088) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x42D0 (17104) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x42E0 (17120) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x42F0 (17136) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4300 (17152) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4310 (17168) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4320 (17184) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4330 (17200) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4340 (17216) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4350 (17232) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4360 (17248) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4370 (17264) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4380 (17280) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4390 (17296) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x43A0 (17312) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x43B0 (17328) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x43C0 (17344) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x43D0 (17360) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x43E0 (17376) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x43F0 (17392) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4400 (17408) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4410 (17424) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4420 (17440) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4430 (17456) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4440 (17472) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4450 (17488) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4460 (17504) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4470 (17520) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4480 (17536) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4490 (17552) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x44A0 (17568) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x44B0 (17584) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x44C0 (17600) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x44D0 (17616) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x44E0 (17632) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x44F0 (17648) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4500 (17664) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4510 (17680) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4520 (17696) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4530 (17712) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4540 (17728) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4550 (17744) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4560 (17760) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4570 (17776) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4580 (17792) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4590 (17808) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x45A0 (17824) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x45B0 (17840) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x45C0 (17856) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x45D0 (17872) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x45E0 (17888) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x45F0 (17904) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4600 (17920) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4610 (17936) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4620 (17952) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4630 (17968) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4640 (17984) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4650 (18000) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4660 (18016) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4670 (18032) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4680 (18048) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4690 (18064) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x46A0 (18080) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x46B0 (18096) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x46C0 (18112) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x46D0 (18128) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x46E0 (18144) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x46F0 (18160) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4700 (18176) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4710 (18192) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4720 (18208) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4730 (18224) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4740 (18240) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4750 (18256) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4760 (18272) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4770 (18288) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4780 (18304) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4790 (18320) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x47A0 (18336) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x47B0 (18352) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x47C0 (18368) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x47D0 (18384) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x47E0 (18400) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x47F0 (18416) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4800 (18432) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4810 (18448) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4820 (18464) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4830 (18480) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4840 (18496) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4850 (18512) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4860 (18528) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4870 (18544) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4880 (18560) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4890 (18576) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x48A0 (18592) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x48B0 (18608) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x48C0 (18624) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x48D0 (18640) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x48E0 (18656) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x48F0 (18672) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4900 (18688) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4910 (18704) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4920 (18720) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4930 (18736) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4940 (18752) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4950 (18768) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4960 (18784) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4970 (18800) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4980 (18816) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4990 (18832) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x49A0 (18848) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x49B0 (18864) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x49C0 (18880) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x49D0 (18896) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x49E0 (18912) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x49F0 (18928) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4A00 (18944) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4A10 (18960) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4A20 (18976) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4A30 (18992) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4A40 (19008) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4A50 (19024) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4A60 (19040) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4A70 (19056) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4A80 (19072) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4A90 (19088) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4AA0 (19104) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4AB0 (19120) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4AC0 (19136) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4AD0 (19152) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4AE0 (19168) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4AF0 (19184) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4B00 (19200) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4B10 (19216) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4B20 (19232) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4B30 (19248) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4B40 (19264) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4B50 (19280) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4B60 (19296) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4B70 (19312) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4B80 (19328) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4B90 (19344) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4BA0 (19360) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4BB0 (19376) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4BC0 (19392) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4BD0 (19408) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4BE0 (19424) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4BF0 (19440) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4C00 (19456) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4C10 (19472) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4C20 (19488) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4C30 (19504) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4C40 (19520) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4C50 (19536) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4C60 (19552) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4C70 (19568) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4C80 (19584) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4C90 (19600) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4CA0 (19616) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4CB0 (19632) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4CC0 (19648) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4CD0 (19664) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4CE0 (19680) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4CF0 (19696) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4D00 (19712) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4D10 (19728) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4D20 (19744) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4D30 (19760) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4D40 (19776) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4D50 (19792) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4D60 (19808) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4D70 (19824) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4D80 (19840) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4D90 (19856) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4DA0 (19872) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4DB0 (19888) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4DC0 (19904) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4DD0 (19920) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4DE0 (19936) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4DF0 (19952) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4E00 (19968) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4E10 (19984) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4E20 (20000) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4E30 (20016) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4E40 (20032) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4E50 (20048) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4E60 (20064) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4E70 (20080) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4E80 (20096) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4E90 (20112) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4EA0 (20128) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4EB0 (20144) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4EC0 (20160) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4ED0 (20176) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4EE0 (20192) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4EF0 (20208) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4F00 (20224) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4F10 (20240) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4F20 (20256) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4F30 (20272) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4F40 (20288) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4F50 (20304) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4F60 (20320) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4F70 (20336) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4F80 (20352) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4F90 (20368) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4FA0 (20384) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4FB0 (20400) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4FC0 (20416) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4FD0 (20432) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4FE0 (20448) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x4FF0 (20464) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5000 (20480) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5010 (20496) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5020 (20512) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5030 (20528) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5040 (20544) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5050 (20560) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5060 (20576) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5070 (20592) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5080 (20608) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5090 (20624) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x50A0 (20640) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x50B0 (20656) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x50C0 (20672) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x50D0 (20688) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x50E0 (20704) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x50F0 (20720) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5100 (20736) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5110 (20752) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5120 (20768) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5130 (20784) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5140 (20800) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5150 (20816) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5160 (20832) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5170 (20848) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5180 (20864) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5190 (20880) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x51A0 (20896) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x51B0 (20912) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x51C0 (20928) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x51D0 (20944) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x51E0 (20960) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x51F0 (20976) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5200 (20992) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5210 (21008) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5220 (21024) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5230 (21040) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5240 (21056) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5250 (21072) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5260 (21088) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5270 (21104) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5280 (21120) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5290 (21136) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x52A0 (21152) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x52B0 (21168) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x52C0 (21184) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x52D0 (21200) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x52E0 (21216) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x52F0 (21232) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5300 (21248) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5310 (21264) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5320 (21280) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5330 (21296) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5340 (21312) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5350 (21328) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5360 (21344) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5370 (21360) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5380 (21376) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5390 (21392) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x53A0 (21408) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x53B0 (21424) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x53C0 (21440) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x53D0 (21456) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x53E0 (21472) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x53F0 (21488) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5400 (21504) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5410 (21520) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5420 (21536) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5430 (21552) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5440 (21568) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5450 (21584) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5460 (21600) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5470 (21616) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5480 (21632) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5490 (21648) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x54A0 (21664) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x54B0 (21680) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x54C0 (21696) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x54D0 (21712) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x54E0 (21728) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x54F0 (21744) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5500 (21760) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5510 (21776) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5520 (21792) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5530 (21808) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5540 (21824) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5550 (21840) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5560 (21856) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5570 (21872) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5580 (21888) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5590 (21904) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x55A0 (21920) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x55B0 (21936) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x55C0 (21952) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x55D0 (21968) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x55E0 (21984) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x55F0 (22000) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5600 (22016) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5610 (22032) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5620 (22048) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5630 (22064) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5640 (22080) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5650 (22096) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5660 (22112) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5670 (22128) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5680 (22144) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5690 (22160) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x56A0 (22176) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x56B0 (22192) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x56C0 (22208) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x56D0 (22224) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x56E0 (22240) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x56F0 (22256) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5700 (22272) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5710 (22288) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5720 (22304) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5730 (22320) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5740 (22336) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5750 (22352) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5760 (22368) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5770 (22384) pixels +0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, 0x0E3E, // 0x5780 (22400) pixels }; -const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ +const unsigned short bottonPoolScreen_g[22400] PROGMEM={ 0x8CB0, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, // 0x0010 (16) pixels 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, // 0x0020 (32) pixels 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, 0x4ACC, // 0x0030 (48) pixels @@ -1455,11 +1455,11 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x02E0 (736) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x02F0 (752) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0300 (768) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0310 (784) pixels +0x2167, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2167, 0x1967, 0x1967, 0x1967, 0x2167, 0x2167, // 0x0310 (784) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0320 (800) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0330 (816) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0340 (832) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0350 (848) pixels +0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2167, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0350 (848) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0360 (864) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0370 (880) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0380 (896) pixels @@ -1473,13 +1473,13 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0400 (1024) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0410 (1040) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0420 (1056) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0430 (1072) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0440 (1088) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0450 (1104) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0460 (1120) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0470 (1136) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0480 (1152) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0490 (1168) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x428C, 0x8452, 0x8472, 0x8472, 0x8472, 0x7C11, // 0x0430 (1072) pixels +0x5B2E, 0x29A8, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x636F, 0xE73D, // 0x0440 (1088) pixels +0xE75D, 0x530D, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xE73D, 0xDEFB, 0x3A4B, 0x2167, 0xC639, 0xE75D, 0xC639, // 0x0450 (1104) pixels +0x3A2A, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0460 (1120) pixels +0x1967, 0x73D0, 0x8472, 0x8472, 0x8472, 0x8452, 0x6BD0, 0x3A4B, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0470 (1136) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8C93, 0xE73D, // 0x0480 (1152) pixels +0xDEFC, 0x3A4B, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0xB5D7, 0xE73D, 0xCE9A, 0x3A2A, 0x2167, 0x1967, 0x1967, 0x1967, // 0x0490 (1168) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x04A0 (1184) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x04B0 (1200) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x04C0 (1216) pixels @@ -1493,13 +1493,13 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0540 (1344) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0550 (1360) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0560 (1376) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0570 (1392) pixels -0x1967, 0x1967, 0x1967, 0x2167, 0x2167, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0580 (1408) pixels -0x1967, 0x1967, 0x1967, 0x6BB0, 0x8452, 0x428B, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x7C11, 0x8472, 0x3A2A, 0x2168, // 0x0590 (1424) pixels -0x3A4B, 0x73D0, 0x320A, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05A0 (1440) pixels -0x1967, 0x1967, 0x2167, 0x2167, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05B0 (1456) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x530D, 0x8452, 0x5B2E, 0x21A8, 0x1967, 0x1967, // 0x05C0 (1472) pixels -0x1967, 0x1967, 0x21A8, 0x6BD0, 0x4ACC, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05D0 (1488) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8C73, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0570 (1392) pixels +0xFFFF, 0xE71C, 0x5B0D, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x73F1, 0xFFFF, // 0x0580 (1408) pixels +0xFFFF, 0x94D3, 0x320A, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0xA556, 0xFFFF, 0xF7DF, 0x7C10, 0x29A8, 0xDF1C, 0xFFFF, 0xEF5D, // 0x0590 (1424) pixels +0x73D0, 0x29A8, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05A0 (1440) pixels +0x1967, 0xE75D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xAD76, 0x320A, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05B0 (1456) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0xA555, 0xFFFF, // 0x05C0 (1472) pixels +0xF7DF, 0x7C11, 0x29A8, 0x2167, 0x1967, 0x1967, 0x1967, 0x2167, 0xD69A, 0xFFFF, 0xF79E, 0x73F0, 0x29A8, 0x2167, 0x1967, 0x1967, // 0x05D0 (1488) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05E0 (1504) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x05F0 (1520) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0600 (1536) pixels @@ -1513,14 +1513,14 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0680 (1664) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0690 (1680) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x06A0 (1696) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x06B0 (1712) pixels -0x1967, 0x94F4, 0xDEDB, 0xDEFB, 0xD6BB, 0xBE19, 0x94D4, 0x320A, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x06C0 (1728) pixels -0x1967, 0x1967, 0x1967, 0xDEFC, 0xFFFF, 0x94D3, 0x320A, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0xFFDF, 0xFFFF, 0x7C11, 0x29C9, // 0x06D0 (1744) pixels -0xCE7A, 0xFFFF, 0xAD76, 0x320A, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x06E0 (1760) pixels -0x8472, 0xD6DB, 0xDEFB, 0xD6DB, 0xC639, 0x9D15, 0x3A4A, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x06F0 (1776) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0xAD96, 0xFFFF, 0xB5D8, 0x428B, 0x2168, 0x1967, // 0x0700 (1792) pixels -0x1967, 0x1967, 0x7C11, 0xFFFF, 0xE71C, 0x4AAC, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0710 (1808) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0720 (1824) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0xD69A, 0xCE59, 0xE73C, // 0x06B0 (1712) pixels +0xFFFF, 0xFFFF, 0xDEFB, 0x4AAC, 0x2188, 0x1967, 0x2167, 0x2167, 0x1967, 0x1967, 0x1967, 0x2167, 0x2167, 0x1967, 0x73F1, 0xFFFF, // 0x06C0 (1728) pixels +0xFFFF, 0x7BF0, 0x52CC, 0x3A4B, 0x2188, 0x2167, 0x1967, 0x1967, 0xA576, 0xFFFF, 0xF79E, 0x6B4D, 0x428B, 0x428B, 0x6B8E, 0x6B6D, // 0x06D0 (1744) pixels +0x5B0D, 0x3A4B, 0x2188, 0x1967, 0x2167, 0x29C9, 0x29E9, 0x2168, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x06E0 (1760) pixels +0x2167, 0xEF5D, 0xFFFF, 0xF79E, 0xC638, 0xCE7A, 0xF7BE, 0xFFFF, 0xFFFF, 0x94D4, 0x29E9, 0x2167, 0x1967, 0x2167, 0x320A, 0x3A4B, // 0x06F0 (1776) pixels +0x2188, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2188, 0x3A4B, 0x31E9, 0x2168, 0x1967, 0x1967, 0x1967, 0xA556, 0xFFFF, // 0x0700 (1792) pixels +0xF7BE, 0x6B6D, 0x428B, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x3A4A, 0x6B8E, 0x6B6E, 0x5B0C, 0x426B, 0x2188, 0x1967, 0x2167, // 0x0710 (1808) pixels +0x3A2A, 0x3A2A, 0x2188, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0720 (1824) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0730 (1840) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0740 (1856) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0750 (1872) pixels @@ -1533,14 +1533,14 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x07C0 (1984) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x07D0 (2000) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x07E0 (2016) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x07F0 (2032) pixels -0x1967, 0xBDF8, 0xFFFF, 0xFFDF, 0xFFDF, 0xFFFF, 0xFFFF, 0xCE9A, 0x3A4A, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0800 (2048) pixels -0x1967, 0x1967, 0x2167, 0xDF1C, 0xFFFF, 0xA534, 0x52CC, 0x29A8, 0x2167, 0x1967, 0x1967, 0x2167, 0xFFDF, 0xFFFF, 0x8C72, 0x428B, // 0x0810 (2064) pixels -0x7C11, 0xCE59, 0x9492, 0x52ED, 0x29A8, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0820 (2080) pixels -0xA556, 0xFFFF, 0xFFDF, 0xFFDF, 0xFFFF, 0xFFFF, 0xDEFB, 0x426B, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0830 (2096) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0xB5B7, 0xFFFF, 0xC638, 0x634E, 0x29C9, 0x2168, // 0x0840 (2112) pixels -0x1967, 0x1967, 0x428B, 0xBE18, 0xAD96, 0x6B8F, 0x29C9, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0850 (2128) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0860 (2144) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0x8451, 0x632D, 0x634D, // 0x07F0 (2032) pixels +0xEF5D, 0xFFFF, 0xF7BE, 0x73F0, 0x7C11, 0xF79E, 0xF7BE, 0x530D, 0x2188, 0x3A2A, 0xF79E, 0xF7BE, 0x8452, 0x29C9, 0x73F1, 0xFFFF, // 0x0800 (2048) pixels +0xFFFF, 0xAD75, 0xF79E, 0xFFFF, 0xF7BE, 0x9CF4, 0x31E9, 0x2168, 0xA576, 0xFFFF, 0xF7BE, 0x6B4D, 0x5B2E, 0xC659, 0xF7BE, 0xCE59, // 0x0810 (2064) pixels +0x634E, 0x52CC, 0x320A, 0xA556, 0xF79E, 0xFFFF, 0xFFFF, 0xEF7E, 0x8CB3, 0x29E9, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0820 (2080) pixels +0x2167, 0xEF5D, 0xFFFF, 0xDEDB, 0x6B4D, 0x632D, 0x9CD3, 0xFFFF, 0xFFFF, 0xBDD7, 0x5B0D, 0x29C9, 0xA555, 0xF79E, 0xFFFF, 0xFFFF, // 0x0830 (2096) pixels +0xEF9E, 0x94D4, 0x31E9, 0x2167, 0x1967, 0x4AAC, 0xCE9A, 0xFFFF, 0xFFFF, 0xFFFF, 0xD6DB, 0x634E, 0x21A8, 0x2167, 0xA556, 0xFFFF, // 0x0840 (2112) pixels +0xF7BE, 0x6B4D, 0x5B2E, 0x29C9, 0x1967, 0x1967, 0x1967, 0x1967, 0xB5D7, 0xF79E, 0xD6BA, 0x634E, 0x52ED, 0x3A2A, 0xB5D7, 0xF7DF, // 0x0850 (2128) pixels +0xFFFF, 0xFFFF, 0xE75D, 0x8432, 0x29C9, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0860 (2144) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0870 (2160) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0880 (2176) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0890 (2192) pixels @@ -1553,14 +1553,14 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0900 (2304) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0910 (2320) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0920 (2336) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0930 (2352) pixels -0x1967, 0xBE18, 0xFFFF, 0xBDF7, 0x73AE, 0x9CD3, 0xFFFF, 0xFFFF, 0x8452, 0x3209, 0x7C31, 0x8472, 0x31E9, 0x2167, 0x29A8, 0x7C31, // 0x0940 (2368) pixels -0x8472, 0x29E9, 0x2167, 0xDF1C, 0xFFFF, 0x9492, 0xA535, 0xA556, 0x73D0, 0x29C9, 0x1967, 0x2167, 0xFFDF, 0xFFFF, 0x7BCF, 0x5B2D, // 0x0950 (2384) pixels -0x73F0, 0x9CF4, 0x73CF, 0x52CC, 0x320A, 0x29C9, 0x73D0, 0x9D15, 0x9D15, 0x73D0, 0x31E9, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0960 (2400) pixels -0xAD76, 0xFFFF, 0xC659, 0x73AF, 0x8C92, 0xFFDF, 0xFFFF, 0x94D3, 0x31E9, 0x2168, 0x428C, 0x8472, 0xA535, 0x8452, 0x3A2A, 0x2168, // 0x0970 (2416) pixels -0x1967, 0x1967, 0x2168, 0x636F, 0x94D4, 0x9D15, 0x6B8F, 0x29C9, 0x2167, 0x1967, 0xB5B7, 0xFFFF, 0xB5B7, 0x636E, 0x3A4B, 0x2188, // 0x0980 (2432) pixels -0x1967, 0x1967, 0x426B, 0x8CB3, 0x8C92, 0x52EC, 0x426B, 0x21A8, 0x52ED, 0x8CB3, 0x9D35, 0x7C11, 0x31E9, 0x2168, 0x1967, 0x1967, // 0x0990 (2448) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x09A0 (2464) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0x8431, 0x6B8E, 0x5B2D, // 0x0930 (2352) pixels +0xEF7D, 0xFFFF, 0xEF5D, 0x6B8E, 0x9CF4, 0xFFFF, 0xFFFF, 0x94D3, 0x320A, 0x426B, 0xFFFF, 0xFFFF, 0xB5D7, 0x52CC, 0x7C11, 0xFFFF, // 0x0940 (2368) pixels +0xFFFF, 0xF7BE, 0xEF5D, 0xFFDF, 0xFFFF, 0xFFFF, 0x8452, 0x29C9, 0xA576, 0xFFFF, 0xF7BE, 0x6B4D, 0x636E, 0xD6BB, 0xFFFF, 0xE71C, // 0x0950 (2384) pixels +0x7C11, 0x426B, 0xD69A, 0xFFFF, 0xFFFF, 0xEF5D, 0xE73C, 0xFFDF, 0xDEDB, 0x5B2D, 0x2188, 0x2167, 0x2167, 0x2167, 0x2167, 0x1967, // 0x0960 (2400) pixels +0x2167, 0xEF5D, 0xFFFF, 0xDEDB, 0x6B6E, 0x634E, 0x94D4, 0xFFFF, 0xFFFF, 0xA534, 0x6B8F, 0xBDF8, 0xFFFF, 0xFFFF, 0xE71C, 0xE73C, // 0x0970 (2416) pixels +0xFFFF, 0xFFFF, 0xA556, 0x3209, 0x3A2A, 0xF79E, 0xFFFF, 0xF7BE, 0xDEFB, 0xF7BE, 0xFFFF, 0xF7BE, 0x636E, 0x21A8, 0xA556, 0xFFFF, // 0x0980 (2432) pixels +0xF7BE, 0x6B4D, 0x636E, 0x29C9, 0x1967, 0x1967, 0x1967, 0x2167, 0xC659, 0xFFFF, 0xEF5D, 0x8431, 0x426B, 0xD6BB, 0xFFFF, 0xFFDF, // 0x0990 (2448) pixels +0xDEFC, 0xEF5D, 0xFFFF, 0xFFFF, 0x8C93, 0x29C9, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x09A0 (2464) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x09B0 (2480) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x09C0 (2496) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x09D0 (2512) pixels @@ -1573,14 +1573,14 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0A40 (2624) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0A50 (2640) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0A60 (2656) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0A70 (2672) pixels -0x1967, 0xBE18, 0xFFFF, 0xB596, 0x632D, 0x5B0D, 0xF7BE, 0xFFFF, 0x9492, 0x5B2E, 0xFFFF, 0xFFFF, 0x6B8F, 0x21A8, 0x3A2A, 0xFFFF, // 0x0A80 (2688) pixels -0xFFFF, 0x636E, 0x21A8, 0xDF1C, 0xFFFF, 0xE71C, 0xFFFF, 0xFFFF, 0xFFFF, 0xAD96, 0x3209, 0x2168, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x0A90 (2704) pixels -0xCE59, 0xFFFF, 0xAD76, 0x636E, 0x428B, 0xDEFB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x6B8F, 0x29A8, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0AA0 (2720) pixels -0xAD76, 0xFFFF, 0xC618, 0x632D, 0x5B0D, 0xE73D, 0xFFFF, 0x9CF4, 0x5B0D, 0x8452, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEF5D, 0x530D, // 0x0AB0 (2736) pixels -0x2188, 0x2188, 0xC639, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC639, 0x3A2A, 0x2168, 0xB5B7, 0xFFFF, 0xB5B7, 0x6B8F, 0x4AAC, 0x2188, // 0x0AC0 (2752) pixels -0x1967, 0x1967, 0x73D0, 0xFFFF, 0xDEFB, 0x73AF, 0x4A8C, 0x9D15, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xDEFC, 0x4A8C, 0x2188, 0x1967, // 0x0AD0 (2768) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0AE0 (2784) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0xBDF7, 0xBE18, 0xDEFB, // 0x0A70 (2672) pixels +0xFFFF, 0xFFFF, 0xBDD7, 0x634D, 0xA555, 0xFFFF, 0xFFFF, 0x7BCF, 0x52CC, 0x4AAC, 0xFFFF, 0xFFFF, 0x9CF4, 0x5B2D, 0x8452, 0xFFFF, // 0x0A80 (2688) pixels +0xFFFF, 0x8430, 0x7BF0, 0x8431, 0xFFFF, 0xFFFF, 0xBE18, 0x52ED, 0xAD76, 0xFFFF, 0xF7BE, 0x6B4D, 0x636E, 0xD6DB, 0xFFFF, 0xD6BA, // 0x0A90 (2704) pixels +0x634E, 0x7C31, 0xFFFF, 0xFFFF, 0xBE18, 0x6B6E, 0x632C, 0x73AF, 0x9CF3, 0x7BF0, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0xCE9A, 0x428B, // 0x0AA0 (2720) pixels +0x2188, 0xEF5D, 0xFFFF, 0xEF5D, 0xB5B7, 0xC639, 0xF7BE, 0xFFFF, 0xFFDF, 0x7BCF, 0x7C10, 0xFFFF, 0xFFFF, 0xCE59, 0x6B6D, 0x632D, // 0x0AB0 (2736) pixels +0xD6DB, 0xFFFF, 0xEF9E, 0x6B8F, 0x9CF4, 0xFFFF, 0xFFFF, 0x9492, 0x632D, 0x7BCF, 0xFFFF, 0xFFFF, 0xBE18, 0x4A8B, 0xA556, 0xFFFF, // 0x0AC0 (2752) pixels +0xF7BE, 0x6B4D, 0x636E, 0x29C9, 0x1967, 0x1967, 0x1967, 0x2167, 0xC659, 0xFFFF, 0xE71C, 0x6B6E, 0x73F1, 0xFFFF, 0xFFFF, 0xB5B6, // 0x0AD0 (2768) pixels +0x6B4D, 0x632D, 0xEF7D, 0xFFFF, 0xDEFB, 0x5B2D, 0x21A8, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0AE0 (2784) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0AF0 (2800) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B00 (2816) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B10 (2832) pixels @@ -1593,14 +1593,14 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B80 (2944) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0B90 (2960) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0BA0 (2976) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0BB0 (2992) pixels -0x1967, 0xBE18, 0xFFFF, 0xBDD7, 0x8431, 0xAD97, 0xFFFF, 0xFFFF, 0x73AE, 0x73D0, 0xFFFF, 0xFFFF, 0x7C10, 0x3A2A, 0x3A4B, 0xFFFF, // 0x0BC0 (3008) pixels -0xFFFF, 0x7BF0, 0x3A2A, 0xE71C, 0xFFFF, 0xDEFB, 0xA514, 0xBE18, 0xFFFF, 0xFFDF, 0x73D0, 0x29C9, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x0BD0 (3024) pixels -0xCE7A, 0xFFFF, 0xB5D7, 0x634E, 0xA555, 0xFFFF, 0xEF7D, 0xAD55, 0x9CF4, 0xAD75, 0x73AF, 0x3A2A, 0x2188, 0x1967, 0x1967, 0x2167, // 0x0BE0 (3040) pixels -0xAD76, 0xFFFF, 0xC638, 0x8431, 0xA555, 0xFFFF, 0xFFFF, 0x8410, 0x73F0, 0xFFDF, 0xFFFF, 0xCE59, 0x9CF3, 0xDEDB, 0xFFFF, 0xD69A, // 0x0BF0 (3056) pixels -0x428B, 0x7C11, 0xFFFF, 0xF7BE, 0xB596, 0xA534, 0xF7BE, 0xFFFF, 0x9D14, 0x31E9, 0xB5B7, 0xFFFF, 0xB5B7, 0x73AF, 0x4AAC, 0x2188, // 0x0C00 (3072) pixels -0x1967, 0x1967, 0x73F1, 0xFFFF, 0xE73C, 0x73D0, 0x636F, 0xFFFF, 0xFFFF, 0xBDF8, 0x9CF4, 0xE73C, 0xFFFF, 0xBE18, 0x3A4A, 0x2168, // 0x0C10 (3088) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0C20 (3104) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0BB0 (2992) pixels +0xFFFF, 0xD6BA, 0x6B6D, 0x634D, 0xA556, 0xFFFF, 0xFFFF, 0x73CF, 0x6B8F, 0x52ED, 0xFFFF, 0xFFFF, 0x9CF3, 0x6BAF, 0x8C93, 0xFFFF, // 0x0BC0 (3008) pixels +0xFFFF, 0x7BCF, 0x5B2D, 0x52EC, 0xF79E, 0xFFFF, 0xCE59, 0x73CF, 0xAD97, 0xFFFF, 0xF7BE, 0x6B4D, 0x636E, 0xD6DB, 0xFFFF, 0xD6BA, // 0x0BD0 (3024) pixels +0x6B8E, 0xB5B7, 0xFFFF, 0xFFFF, 0x73AF, 0x5B0C, 0x5B0D, 0x5B0D, 0x5B0C, 0x7BF0, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8452, // 0x0BE0 (3040) pixels +0x31E9, 0xEF5D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0x9CF3, 0x632C, 0x94D4, 0xFFFF, 0xFFFF, 0x94D3, 0x5B0C, 0x5B2D, // 0x0BF0 (3056) pixels +0xB5D7, 0xFFFF, 0xFFFF, 0x7C10, 0xCE7A, 0xFFFF, 0xF79E, 0x632D, 0x5B0D, 0x632E, 0xF79E, 0xFFFF, 0xCE7A, 0x73AF, 0xAD76, 0xFFFF, // 0x0C00 (3072) pixels +0xF7BE, 0x6B4D, 0x636E, 0x29C9, 0x1967, 0x1967, 0x1967, 0x2167, 0xC659, 0xFFFF, 0xDEFB, 0x6B8E, 0xAD76, 0xFFFF, 0xFFFF, 0x7C10, // 0x0C10 (3088) pixels +0x5B0C, 0x5B2D, 0xCE7A, 0xFFFF, 0xF79E, 0x73CF, 0x320A, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0C20 (3104) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0C30 (3120) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0C40 (3136) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0C50 (3152) pixels @@ -1613,14 +1613,14 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, // 0x0CC0 (3264) pixels 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, // 0x0CD0 (3280) pixels 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, // 0x0CE0 (3296) pixels -0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x428B, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0CF0 (3312) pixels -0x1967, 0xBE18, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xBDF7, 0x632C, 0x73D0, 0xFFFF, 0xFFFF, 0x6B4D, 0x52ED, 0x428B, 0xFFFF, // 0x0D00 (3328) pixels -0xFFFF, 0x632D, 0x52ED, 0xE71C, 0xFFFF, 0xA514, 0x6B4D, 0x5AEC, 0xF7BE, 0xFFFF, 0x94B3, 0x4A8B, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x0D10 (3344) pixels -0xCE7A, 0xFFFF, 0xA555, 0x636E, 0xDEFC, 0xFFFF, 0xAD76, 0x5B0C, 0x52CC, 0x52EC, 0x52CC, 0x94B3, 0x8C93, 0x8472, 0x73D0, 0x29C9, // 0x0D20 (3360) pixels -0xAD76, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCE79, 0x632D, 0x94B3, 0xFFFF, 0xEF7D, 0x6B6D, 0x52CB, 0x8431, 0xFFFF, 0xF79E, // 0x0D30 (3376) pixels -0x73F0, 0xB5D7, 0xFFFF, 0xC638, 0x632C, 0x52CC, 0xBDF7, 0xFFFF, 0xC639, 0x634E, 0xB5D7, 0xFFFF, 0xB5B7, 0x73AF, 0x4AAC, 0x2188, // 0x0D40 (3392) pixels -0x1967, 0x1967, 0x73F1, 0xFFFF, 0xDEFB, 0x6B6E, 0x9D14, 0xFFFF, 0xDEFC, 0x634D, 0x52CC, 0x9CF4, 0xFFFF, 0xE71C, 0x6BAF, 0x29C9, // 0x0D50 (3408) pixels -0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x3A2A, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, // 0x0D60 (3424) pixels +0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x428B, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0xC618, 0xBDF7, 0xB5B6, // 0x0CF0 (3312) pixels +0x9492, 0x632D, 0x5B0C, 0x636E, 0x9D15, 0xFFFF, 0xFFFF, 0x7BEF, 0x6B8F, 0x52ED, 0xFFFF, 0xFFFF, 0x9CF3, 0x73AF, 0x8CB3, 0xFFFF, // 0x0D00 (3328) pixels +0xFFFF, 0x7BEF, 0x73D0, 0x52ED, 0xF7BE, 0xFFFF, 0xC618, 0x73AF, 0xB5D7, 0xFFFF, 0xF7BE, 0x6B4D, 0x636E, 0xD6DB, 0xFFFF, 0xD6BA, // 0x0D10 (3344) pixels +0x738E, 0xB5D7, 0xFFFF, 0xFFFF, 0x73AE, 0x6B8F, 0x5B0D, 0x426B, 0x3A4B, 0x4AAC, 0x8C72, 0x94B3, 0x9492, 0x9492, 0x9492, 0x634D, // 0x0D20 (3360) pixels +0x4A8B, 0xEF7D, 0xFFFF, 0xEF5D, 0xB5B6, 0xBDF7, 0xAD75, 0x73CF, 0x630C, 0x632D, 0x94F4, 0xFFFF, 0xFFFF, 0x94B2, 0x6B8F, 0x5B2E, // 0x0D30 (3376) pixels +0xADB7, 0xFFFF, 0xFFFF, 0x738E, 0xD6BA, 0xFFFF, 0xF79E, 0x634D, 0x6B8F, 0x4ACC, 0xF79E, 0xFFFF, 0xCE79, 0x73AF, 0xB5B7, 0xFFFF, // 0x0D40 (3392) pixels +0xF7BE, 0x6B4D, 0x636E, 0x29C9, 0x2167, 0x2167, 0x1967, 0x2167, 0xC659, 0xFFFF, 0xDEFB, 0x6B8E, 0xAD96, 0xFFFF, 0xFFFF, 0x7BEF, // 0x0D50 (3408) pixels +0x6B8F, 0x530D, 0xCE7A, 0xFFFF, 0xF79E, 0x6B8E, 0x4ACC, 0x21A8, 0x1967, 0x1967, 0x1967, 0x3A2A, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, // 0x0D60 (3424) pixels 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, // 0x0D70 (3440) pixels 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, // 0x0D80 (3456) pixels 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, 0x6B8E, // 0x0D90 (3472) pixels @@ -1633,14 +1633,14 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, // 0x0E00 (3584) pixels 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, // 0x0E10 (3600) pixels 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, // 0x0E20 (3616) pixels -0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x5B08, 0x428B, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0E30 (3632) pixels -0x1967, 0xBE18, 0xFFFF, 0xE73C, 0xD6BA, 0xD69A, 0xA535, 0x632D, 0x5B0C, 0x73D0, 0xFFFF, 0xFFFF, 0x6B6D, 0x636F, 0x4ACC, 0xFFFF, // 0x0E40 (3648) pixels -0xFFFF, 0x6B4D, 0x636F, 0xE73C, 0xFFFF, 0x94B2, 0x634E, 0x634E, 0xEF5D, 0xFFFF, 0x94B2, 0x636E, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x0E50 (3664) pixels -0xCE7A, 0xFFFF, 0xA555, 0x6BAF, 0xEF7D, 0xFFFF, 0x94B2, 0x632D, 0x634E, 0x52CC, 0x4AAC, 0xEF9E, 0xFFFF, 0xFFFF, 0xE71C, 0x5B0D, // 0x0E60 (3680) pixels -0xAD76, 0xFFFF, 0xEF5D, 0xD6BA, 0xD69A, 0xAD76, 0x634D, 0x5B0C, 0xA555, 0xFFFF, 0xE71C, 0x632D, 0x634E, 0x73F0, 0xFFFF, 0xFFFF, // 0x0E70 (3696) pixels -0x738E, 0xD69A, 0xFFFF, 0xAD75, 0x632D, 0x636E, 0xAD96, 0xFFFF, 0xCE79, 0x73AF, 0xBDF8, 0xFFFF, 0xB5B7, 0x73AF, 0x4AAC, 0x2188, // 0x0E80 (3712) pixels -0x1967, 0x1967, 0x73F1, 0xFFFF, 0xDEFB, 0x6B8E, 0xB5D7, 0xFFFF, 0xCE79, 0x632D, 0x636E, 0x8C93, 0xFFFF, 0xEF5D, 0x73AF, 0x426B, // 0x0E90 (3728) pixels -0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x31E9, 0x636B, 0x2980, 0x29A0, 0x29A0, 0x29A0, // 0x0EA0 (3744) pixels +0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x5B08, 0x428B, 0x1967, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0x8C51, 0x634D, 0x632D, // 0x0E30 (3632) pixels +0x5AEC, 0x5AEC, 0x5B2D, 0x5B2E, 0x8452, 0xFFFF, 0xFFFF, 0xAD55, 0x7BF0, 0x8472, 0xFFFF, 0xFFFF, 0x9CF3, 0x73AF, 0x8CB3, 0xFFFF, // 0x0E40 (3648) pixels +0xFFFF, 0x7BEF, 0x6B8F, 0x8472, 0xFFFF, 0xFFFF, 0xA534, 0x6B8E, 0xBDF8, 0xFFFF, 0xF7BE, 0x6B4D, 0x636E, 0xD6DB, 0xFFFF, 0xD6BA, // 0x0E50 (3664) pixels +0x738E, 0x94D4, 0xFFFF, 0xFFFF, 0xB5D7, 0x73F0, 0x3A4B, 0x4AAC, 0x8472, 0x320A, 0x320A, 0x3A2A, 0x52CC, 0x5AEC, 0x5AEC, 0x52EC, // 0x0E60 (3680) pixels +0x5B0D, 0xEF7D, 0xFFFF, 0xDEDB, 0x6B4D, 0x632D, 0x5B0C, 0x5AEC, 0x5B0C, 0x634E, 0x636F, 0xFFFF, 0xFFFF, 0xC618, 0x73F0, 0x4AAC, // 0x0E70 (3696) pixels +0xD6DB, 0xFFFF, 0xE75D, 0x632D, 0xBDD8, 0xFFFF, 0xFFFF, 0x8C51, 0x6B8F, 0x5B4E, 0xFFFF, 0xFFFF, 0xAD75, 0x6B6E, 0xBDF8, 0xFFFF, // 0x0E80 (3712) pixels +0xF7BE, 0x6B4D, 0x636E, 0xB5B7, 0xF79E, 0xE73C, 0x3A4B, 0x2168, 0xC659, 0xFFFF, 0xDEFB, 0x6B8E, 0x8C93, 0xFFFF, 0xFFFF, 0xAD55, // 0x0E90 (3728) pixels +0x73D0, 0x4AAC, 0xEF7E, 0xFFFF, 0xD69A, 0x634D, 0x5B2E, 0x29C9, 0x1967, 0x1967, 0x31E9, 0x636B, 0x2980, 0x29A0, 0x29A0, 0x29A0, // 0x0EA0 (3744) pixels 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, // 0x0EB0 (3760) pixels 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, // 0x0EC0 (3776) pixels 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, 0x29A0, // 0x0ED0 (3792) pixels @@ -1653,14 +1653,14 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, // 0x0F40 (3904) pixels 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, // 0x0F50 (3920) pixels 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, // 0x0F60 (3936) pixels -0x4280, 0x4280, 0x4280, 0x3A40, 0x3200, 0x634A, 0x3A6A, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x0F70 (3952) pixels -0x1967, 0xBE18, 0xFFFF, 0xB5B6, 0x6B4D, 0x632D, 0x5AEC, 0x52CC, 0x634E, 0x5B4E, 0xFFFF, 0xFFFF, 0x73AE, 0x6B8F, 0x73D0, 0xFFFF, // 0x0F80 (3968) pixels -0xFFFF, 0x6B4D, 0x636F, 0xE73C, 0xFFFF, 0xA555, 0x73AF, 0x530D, 0xFFDF, 0xFFFF, 0x8430, 0x6B8F, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x0F90 (3984) pixels -0xCE7A, 0xFFFF, 0xAD55, 0x73AF, 0xDEFB, 0xFFFF, 0xAD55, 0x73AF, 0x4ACC, 0x31E9, 0x29C9, 0x8472, 0xAD96, 0xAD96, 0xA514, 0x6B6E, // 0x0FA0 (4000) pixels -0xB5B7, 0xFFFF, 0xC618, 0x6B4D, 0x632D, 0x5AEC, 0x52CC, 0x5B2D, 0x8CB3, 0xFFFF, 0xEF7D, 0x6B8E, 0x636F, 0x73F1, 0xFFFF, 0xEF7D, // 0x0FB0 (4016) pixels -0x634D, 0xC659, 0xFFFF, 0xC618, 0x73AF, 0x5B0D, 0xBDF8, 0xFFFF, 0xBDF7, 0x6B8E, 0xC639, 0xFFFF, 0xB5B7, 0x73AF, 0x4AAC, 0x21A8, // 0x0FC0 (4032) pixels -0x2167, 0x2167, 0x73F1, 0xFFFF, 0xDEFB, 0x6B8E, 0xAD76, 0xFFFF, 0xDEFB, 0x6B8E, 0x634E, 0x94D4, 0xFFFF, 0xDEDB, 0x6B6E, 0x52ED, // 0x0FD0 (4048) pixels -0x29A8, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x29C9, 0x6BAC, 0x31E0, 0x3A40, 0x4280, 0x4280, 0x4280, // 0x0FE0 (4064) pixels +0x4280, 0x4280, 0x4280, 0x3A40, 0x3200, 0x634A, 0x3A6A, 0x1967, 0x1967, 0x1967, 0x8CB3, 0xFFFF, 0xFFFF, 0x8431, 0x6B8E, 0x5B0D, // 0x0F70 (3952) pixels +0x52ED, 0x52ED, 0x4AAC, 0x3A2A, 0x4AAC, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9CF3, 0x73AF, 0x8CB3, 0xFFFF, // 0x0F80 (3968) pixels +0xFFFF, 0xF79E, 0xF79E, 0xFFFF, 0xFFFF, 0xEF5D, 0x6B6E, 0x6B6E, 0xBDF8, 0xFFFF, 0xF7BE, 0x6B4D, 0x636E, 0xD6DB, 0xFFFF, 0xD6BA, // 0x0F90 (3984) pixels +0x6B8E, 0x634E, 0xD69A, 0xFFFF, 0xFFFF, 0xF79E, 0xE73C, 0xFFFF, 0xCE59, 0x5B2E, 0x21A8, 0x29C9, 0x428B, 0x4AAC, 0x4AAC, 0x4AAC, // 0x0FA0 (4000) pixels +0x428B, 0xEF7D, 0xFFFF, 0xDEDB, 0x6B6E, 0x634E, 0x52ED, 0x52ED, 0x52CD, 0x426B, 0x31E9, 0xAD97, 0xFFFF, 0xFFFF, 0xE73C, 0xEF5D, // 0x0FB0 (4016) pixels +0xFFFF, 0xFFFF, 0x9CF3, 0x632D, 0x7C31, 0xEF7D, 0xFFFF, 0xF7BE, 0xE71C, 0xF7BE, 0xFFFF, 0xEF7D, 0x738E, 0x6B6E, 0xBDF8, 0xFFFF, // 0x0FC0 (4032) pixels +0xF7BE, 0x6B4D, 0x636E, 0xC639, 0xFFFF, 0xF7BE, 0x7C11, 0x29C8, 0xC659, 0xFFFF, 0xDEFB, 0x6B8E, 0x634E, 0xCE9A, 0xFFFF, 0xFFFF, // 0x0FD0 (4048) pixels +0xE71C, 0xEF7E, 0xFFFF, 0xFFDF, 0x8C51, 0x632D, 0x634E, 0x29C9, 0x1967, 0x29C9, 0x6BAC, 0x31E0, 0x3A40, 0x4280, 0x4280, 0x4280, // 0x0FE0 (4064) pixels 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, // 0x0FF0 (4080) pixels 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, // 0x1000 (4096) pixels 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, 0x4280, // 0x1010 (4112) pixels @@ -1673,14 +1673,14 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, // 0x1080 (4224) pixels 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, // 0x1090 (4240) pixels 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, // 0x10A0 (4256) pixels -0x63A0, 0x63A0, 0x63A0, 0x5B60, 0x4AC0, 0x3A20, 0x6B8B, 0x3A2A, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x10B0 (4272) pixels -0x1967, 0xBE18, 0xFFFF, 0xB596, 0x6B6E, 0x5B2D, 0x52ED, 0x530D, 0x4AAC, 0x320A, 0xF79E, 0xFFFF, 0xC659, 0xAD76, 0xE71C, 0xFFFF, // 0x10C0 (4288) pixels -0xFFFF, 0x6B4D, 0x636F, 0xE73C, 0xFFFF, 0xEF7D, 0xB596, 0xC659, 0xFFFF, 0xF79E, 0x6B6D, 0x6B8F, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x10D0 (4304) pixels -0xCE7A, 0xFFFF, 0xAD55, 0x73AF, 0xB5D8, 0xFFFF, 0xF79E, 0xB5B7, 0x9D15, 0xCE7A, 0x3A4B, 0x29C9, 0x424A, 0x52CB, 0x52EC, 0x52CC, // 0x10E0 (4320) pixels -0xBDF8, 0xFFFF, 0xC618, 0x6B6E, 0x5B2D, 0x5B0D, 0x530D, 0x4ACC, 0x426B, 0xEF7D, 0xFFFF, 0xCE59, 0xA556, 0xE71C, 0xFFFF, 0xC638, // 0x10F0 (4336) pixels -0x632D, 0x9CF4, 0xFFFF, 0xFFDF, 0xB5B7, 0xA576, 0xFFDF, 0xFFFF, 0x9492, 0x6B6E, 0xC639, 0xFFFF, 0xB5B7, 0x73AF, 0x8C73, 0xE71C, // 0x1100 (4352) pixels -0x94F4, 0x31E9, 0x7C11, 0xFFFF, 0xDEFB, 0x6B8E, 0x73F0, 0xFFDF, 0xFFFF, 0xC618, 0xA555, 0xEF7E, 0xFFFF, 0xAD76, 0x634D, 0x5B2D, // 0x1110 (4368) pixels -0x29A8, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x29A8, 0x73CD, 0x3200, 0x4AC0, 0x5B40, 0x5B80, 0x63A0, 0x63A0, // 0x1120 (4384) pixels +0x63A0, 0x63A0, 0x63A0, 0x5B60, 0x4AC0, 0x3A20, 0x6B8B, 0x3A2A, 0x1967, 0x1967, 0x7C11, 0xE73C, 0xE73C, 0x7BF0, 0x6BAF, 0x4A8C, // 0x10B0 (4272) pixels +0x320A, 0x29C9, 0x21A8, 0x2168, 0x2188, 0x8C93, 0xEF5D, 0xF7BE, 0xE71C, 0xBDD7, 0xEF5D, 0xE71C, 0x9492, 0x6BAF, 0x8452, 0xE71C, // 0x10C0 (4288) pixels +0xE73C, 0xC618, 0xEF7D, 0xF7BE, 0xD6BA, 0x7BCF, 0x5B0C, 0x636E, 0xA556, 0xE73C, 0xDEDB, 0x634D, 0x636E, 0xBDF8, 0xE73C, 0xBE18, // 0x10D0 (4304) pixels +0x6B8E, 0x5B0D, 0x428B, 0xAD55, 0xDEFB, 0xF79E, 0xF7BE, 0xEF5D, 0xB5B7, 0x632D, 0x3209, 0x2188, 0x21A8, 0x29A8, 0x29A8, 0x29A8, // 0x10E0 (4320) pixels +0x21A8, 0xCE7A, 0xE73C, 0xC638, 0x6B8E, 0x634E, 0x3A2A, 0x31E9, 0x29C9, 0x2188, 0x2168, 0x320A, 0xA535, 0xE73C, 0xFFFF, 0xFFDF, // 0x10F0 (4336) pixels +0xEF5D, 0xA534, 0x632C, 0x632D, 0x634E, 0x5B2E, 0xC659, 0xF79E, 0xFFFF, 0xF7BE, 0xDEDB, 0x7BF0, 0x5B0C, 0x636E, 0xA556, 0xE73C, // 0x1100 (4352) pixels +0xDEFB, 0x634D, 0x636E, 0xAD96, 0xE73C, 0xDEDB, 0x634D, 0x428B, 0xAD97, 0xE73C, 0xCE59, 0x6B6E, 0x5B2E, 0x4AAC, 0xB5B6, 0xEF5D, // 0x1110 (4368) pixels +0xFFFF, 0xFFDF, 0xE73C, 0x94B2, 0x630C, 0x634D, 0x530D, 0x29A8, 0x29A8, 0x73CD, 0x3200, 0x4AC0, 0x5B40, 0x5B80, 0x63A0, 0x63A0, // 0x1120 (4384) pixels 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, // 0x1130 (4400) pixels 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, // 0x1140 (4416) pixels 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, 0x63A0, // 0x1150 (4432) pixels @@ -1693,14 +1693,14 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, // 0x11C0 (4544) pixels 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, // 0x11D0 (4560) pixels 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, // 0x11E0 (4576) pixels -0x7CA0, 0x7C80, 0x7C80, 0x7440, 0x63C0, 0x4AE0, 0x3A20, 0x73CC, 0x31E9, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x11F0 (4592) pixels -0x1967, 0xBE18, 0xFFFF, 0xB596, 0x73AF, 0x5B0D, 0x3A4B, 0x320A, 0x29A8, 0x2168, 0x94D4, 0xFFFF, 0xFFFF, 0xFFFF, 0xE71C, 0xEF7D, // 0x1200 (4608) pixels -0xFFFF, 0x6B4D, 0x636F, 0xE73C, 0xFFFF, 0xCE79, 0xFFFF, 0xFFFF, 0xFFDF, 0xA514, 0x630C, 0x636F, 0xFFDF, 0xFFFF, 0x7BEF, 0x6B8F, // 0x1210 (4624) pixels -0xCE7A, 0xFFFF, 0xA555, 0x6BAF, 0x636F, 0xDEDB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0x7C11, 0x29A8, 0x29A8, 0x428B, 0x4ACC, 0x4ACC, // 0x1220 (4640) pixels -0xB5D8, 0xFFFF, 0xC618, 0x73AF, 0x5B2E, 0x3A4B, 0x320A, 0x29C9, 0x2188, 0x6B8F, 0xEF7D, 0xFFFF, 0xFFFF, 0xFFFF, 0xE71C, 0x73AE, // 0x1230 (4656) pixels -0x632D, 0x6B8F, 0xA555, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xBDF8, 0x632D, 0x636E, 0xC639, 0xFFFF, 0xB5B7, 0x73AF, 0xB5D8, 0xFFFF, // 0x1240 (4672) pixels -0xE71C, 0x634E, 0x7C31, 0xFFFF, 0xDEFB, 0x6B8E, 0x5B2E, 0x8472, 0xF7BE, 0xFFFF, 0xFFFF, 0xFFFF, 0xD6BA, 0x6B6D, 0x634D, 0x5B0D, // 0x1250 (4688) pixels -0x29A8, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2188, 0x73CD, 0x3A20, 0x4AC0, 0x63A0, 0x7440, 0x7C80, 0x7C80, 0x7CA0, // 0x1260 (4704) pixels +0x7CA0, 0x7C80, 0x7C80, 0x7440, 0x63C0, 0x4AE0, 0x3A20, 0x73CC, 0x31E9, 0x1967, 0x29C9, 0x52ED, 0x632D, 0x5B0C, 0x636E, 0x3A2A, // 0x11F0 (4592) pixels +0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x29C9, 0x52CC, 0x634D, 0x632D, 0x5B0C, 0x5B0C, 0x632D, 0x630C, 0x6B6E, 0x4AAC, 0x52ED, // 0x1200 (4608) pixels +0x632D, 0x632D, 0x6B6E, 0x6B6E, 0x632C, 0x5AEC, 0x5B2D, 0x5B4E, 0x428C, 0x5B0D, 0x632D, 0x632D, 0x634E, 0x426B, 0x632D, 0x632D, // 0x1210 (4624) pixels +0x634E, 0x530D, 0x29C9, 0x3A2A, 0x632D, 0x6B4D, 0x6B6D, 0x6B6D, 0x5B0C, 0x52EC, 0x428B, 0x21A8, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1220 (4640) pixels +0x1967, 0x3A2A, 0x632D, 0x632C, 0x634D, 0x530D, 0x29A8, 0x2167, 0x1967, 0x1967, 0x1967, 0x2168, 0x3209, 0x5B2D, 0x634D, 0x6B8E, // 0x1230 (4656) pixels +0x6B6D, 0x5B0C, 0x5AEC, 0x636E, 0x4AAC, 0x29E9, 0x426B, 0x634D, 0x6B6D, 0x738E, 0x632D, 0x5AEC, 0x5B0D, 0x634E, 0x4A8C, 0x5B0D, // 0x1240 (4672) pixels +0x632D, 0x630C, 0x634E, 0x426B, 0x5B0D, 0x632D, 0x630C, 0x5B2E, 0x426B, 0x5B2D, 0x632D, 0x634D, 0x5B0D, 0x29C9, 0x3A2A, 0x632D, // 0x1250 (4688) pixels +0x6B4D, 0x738E, 0x634D, 0x5AEC, 0x5B0C, 0x636E, 0x426B, 0x29A8, 0x73CD, 0x3A20, 0x4AC0, 0x63A0, 0x7440, 0x7C80, 0x7C80, 0x7CA0, // 0x1260 (4704) pixels 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, // 0x1270 (4720) pixels 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, // 0x1280 (4736) pixels 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, 0x7CA0, // 0x1290 (4752) pixels @@ -1713,14 +1713,14 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, // 0x1300 (4864) pixels 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, // 0x1310 (4880) pixels 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, // 0x1320 (4896) pixels -0x8D20, 0x8500, 0x8500, 0x84E0, 0x7C80, 0x63C0, 0x4AE0, 0x3A20, 0x73CC, 0x29C9, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1330 (4912) pixels -0x1967, 0x52ED, 0x8C72, 0x73AE, 0x6B6E, 0x4AAC, 0x21A8, 0x2167, 0x1967, 0x1967, 0x31E9, 0x6B8F, 0x9CD3, 0x94B2, 0x7C10, 0x7BF0, // 0x1340 (4928) pixels -0x8451, 0x630C, 0x636F, 0x6BAF, 0x8451, 0x632D, 0x8C92, 0xAD55, 0x8451, 0x630C, 0x5B2D, 0x634E, 0x73F1, 0x8C72, 0x632D, 0x6B8F, // 0x1350 (4944) pixels -0x6B8F, 0x8C72, 0x6B8E, 0x6B6E, 0x4A8C, 0x426B, 0x8410, 0x9CF3, 0xA535, 0x8C51, 0x632D, 0x426B, 0x29A8, 0x29C9, 0x29C9, 0x29C9, // 0x1360 (4960) pixels -0x52ED, 0x8452, 0x73CF, 0x6B6E, 0x4ACC, 0x29A8, 0x2167, 0x1967, 0x1967, 0x29A8, 0x52CC, 0x9492, 0xA534, 0x9CD3, 0x6B6E, 0x5AEC, // 0x1370 (4976) pixels -0x634E, 0x52ED, 0x3A2A, 0x6B8E, 0x9CD3, 0xA534, 0x8C71, 0x632D, 0x5AEC, 0x634E, 0x6B8F, 0x8C72, 0x73AF, 0x6B6E, 0x638F, 0xA535, // 0x1380 (4992) pixels -0x7BF0, 0x632D, 0x52ED, 0x8451, 0x7C10, 0x634D, 0x5B0D, 0x3A2A, 0x5B0D, 0x94B2, 0xA534, 0x94B2, 0x6B4D, 0x5AEC, 0x634E, 0x4AAC, // 0x1390 (5008) pixels -0x2188, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2168, 0x73CE, 0x3A20, 0x4AC0, 0x63A0, 0x7460, 0x84C0, 0x8500, 0x8500, 0x8D20, // 0x13A0 (5024) pixels +0x8D20, 0x8500, 0x8500, 0x84E0, 0x7C80, 0x63C0, 0x4AE0, 0x3A20, 0x73CC, 0x29C9, 0x1967, 0x2188, 0x3A2A, 0x52CC, 0x5B0D, 0x3209, // 0x1330 (4912) pixels +0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x2168, 0x29C8, 0x426B, 0x52CC, 0x5B0D, 0x5B2E, 0x4AAB, 0x52EC, 0x5B0D, 0x3A2A, 0x29A8, // 0x1340 (4928) pixels +0x3A09, 0x52CC, 0x5B0D, 0x52CC, 0x52CC, 0x5B0D, 0x5B2E, 0x426B, 0x21A8, 0x2188, 0x424A, 0x52EC, 0x52ED, 0x29A8, 0x29A8, 0x426B, // 0x1350 (4944) pixels +0x52ED, 0x4AAC, 0x21A8, 0x21A8, 0x3A2A, 0x4A8B, 0x52CC, 0x52EC, 0x52EC, 0x5B0D, 0x426B, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1360 (4960) pixels +0x1967, 0x2167, 0x29A8, 0x4A8B, 0x5AED, 0x4ACC, 0x21A8, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2188, 0x3209, 0x4A8B, 0x52CC, // 0x1370 (4976) pixels +0x52CC, 0x5B0D, 0x5B2D, 0x4ACC, 0x29E9, 0x2168, 0x29A8, 0x424A, 0x4AAB, 0x52CC, 0x52EC, 0x5B0D, 0x5B2E, 0x426B, 0x21A8, 0x29A8, // 0x1380 (4992) pixels +0x3A4A, 0x52CC, 0x52ED, 0x29A8, 0x29A8, 0x426A, 0x52EC, 0x52ED, 0x29A8, 0x29A8, 0x426A, 0x52EC, 0x4ACC, 0x29A8, 0x21A8, 0x3A2A, // 0x1390 (5008) pixels +0x4AAB, 0x52CC, 0x52CC, 0x5B0D, 0x5B2E, 0x4AAC, 0x29C9, 0x73CE, 0x3A20, 0x4AC0, 0x63A0, 0x7460, 0x84C0, 0x8500, 0x8500, 0x8D20, // 0x13A0 (5024) pixels 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, // 0x13B0 (5040) pixels 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, // 0x13C0 (5056) pixels 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, // 0x13D0 (5072) pixels @@ -1733,46 +1733,46 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, // 0x1440 (5184) pixels 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, // 0x1450 (5200) pixels 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, // 0x1460 (5216) pixels -0x8D60, 0x8D40, 0x8D40, 0x8D40, 0x8500, 0x7C80, 0x63C0, 0x4AE0, 0x3A00, 0x73CD, 0x21A8, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1470 (5232) pixels -0x1967, 0x2188, 0x3209, 0x4A8B, 0x5B0D, 0x426B, 0x2188, 0x1967, 0x1967, 0x1967, 0x2167, 0x29C8, 0x4A8B, 0x5AEC, 0x4AAB, 0x4AAB, // 0x1480 (5248) pixels -0x52CC, 0x52CC, 0x5B0D, 0x31E9, 0x3A09, 0x4A8B, 0x5B0D, 0x52CC, 0x52AB, 0x4AAB, 0x5B2D, 0x4A8C, 0x29C9, 0x3A09, 0x52AB, 0x5B2D, // 0x1490 (5264) pixels -0x322A, 0x3A09, 0x4A8B, 0x5B0D, 0x3A4B, 0x29A8, 0x3A09, 0x52CC, 0x5AEC, 0x4AAB, 0x4A8B, 0x4ACC, 0x29A8, 0x1967, 0x1967, 0x1967, // 0x14A0 (5280) pixels -0x2188, 0x31E9, 0x426A, 0x52ED, 0x428B, 0x2188, 0x1967, 0x1967, 0x1967, 0x2167, 0x29A8, 0x426A, 0x52EC, 0x52CB, 0x4A8B, 0x52CC, // 0x14B0 (5296) pixels -0x5B0D, 0x3A2A, 0x2188, 0x31E9, 0x4A8B, 0x52EC, 0x52AB, 0x4A8B, 0x5B0D, 0x52CC, 0x31E9, 0x3209, 0x4A8B, 0x5B0D, 0x428B, 0x3209, // 0x14C0 (5312) pixels -0x4A6A, 0x52CC, 0x428B, 0x3209, 0x424A, 0x52EC, 0x4ACC, 0x29A8, 0x29C8, 0x4A8B, 0x5AEC, 0x52AB, 0x4A8B, 0x52ED, 0x52ED, 0x3209, // 0x14D0 (5328) pixels -0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x2167, 0x73CE, 0x3A21, 0x4AC0, 0x63A0, 0x7460, 0x84E0, 0x8D20, 0x8D40, 0x8D40, 0x8D60, // 0x14E0 (5344) pixels +0x8D60, 0x8D40, 0x8D40, 0x8D40, 0x8500, 0x7C80, 0x63C0, 0x4AE0, 0x3A00, 0x73CD, 0x21A8, 0x2168, 0x29E9, 0x3A4A, 0x3A2A, 0x21A8, // 0x1470 (5232) pixels +0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2188, 0x31E9, 0x3A4B, 0x426B, 0x3A2A, 0x31E9, 0x3A4A, 0x3A2A, 0x29A8, 0x2188, // 0x1480 (5248) pixels +0x29C9, 0x3A4A, 0x3A4B, 0x3A2A, 0x3A4B, 0x3A4B, 0x320A, 0x2188, 0x1967, 0x2188, 0x31E9, 0x3A4A, 0x320A, 0x2188, 0x2188, 0x320A, // 0x1490 (5264) pixels +0x3A4A, 0x31E9, 0x2168, 0x1967, 0x2188, 0x31E9, 0x3A4B, 0x426B, 0x426B, 0x3A2A, 0x29C9, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, // 0x14A0 (5280) pixels +0x1967, 0x1967, 0x2188, 0x3A2A, 0x3A4A, 0x31E9, 0x2168, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2188, 0x31E9, 0x426B, // 0x14B0 (5296) pixels +0x428B, 0x426B, 0x3A2A, 0x29C9, 0x2168, 0x1967, 0x2167, 0x29A8, 0x3A2A, 0x426B, 0x428B, 0x426B, 0x320A, 0x2188, 0x1967, 0x2188, // 0x14C0 (5312) pixels +0x31E9, 0x3A4A, 0x320A, 0x2188, 0x2188, 0x320A, 0x3A4A, 0x320A, 0x2188, 0x2188, 0x320A, 0x3A4A, 0x31E9, 0x2168, 0x1967, 0x21A8, // 0x14D0 (5328) pixels +0x320A, 0x426B, 0x428C, 0x426B, 0x3A2A, 0x29A8, 0x73CE, 0x3A21, 0x4AC0, 0x63A0, 0x7460, 0x84E0, 0x8D20, 0x8D40, 0x8D40, 0x8D60, // 0x14E0 (5344) pixels 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, // 0x14F0 (5360) pixels -0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D20, 0x7CA0, 0x8D20, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, // 0x1500 (5376) pixels +0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x7CA0, 0x7CA0, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, // 0x1500 (5376) pixels 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, // 0x1510 (5392) pixels -0x8D60, 0x7CA0, 0x84E0, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, // 0x1520 (5408) pixels +0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x84C0, 0x7CA0, 0x8D40, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, // 0x1520 (5408) pixels 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, // 0x1530 (5424) pixels 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x9560, // 0x1540 (5440) pixels -0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x6C00, // 0x1550 (5456) pixels -0x63A0, 0x63A0, 0x6BE0, 0x8500, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x1560 (5472) pixels -0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x8D20, 0x63A0, 0x63A0, 0x63C0, 0x7460, 0x9560, 0x9560, // 0x1570 (5488) pixels -0x9560, 0x7C80, 0x2140, 0x6C00, 0x9560, 0x7460, 0x2160, 0x10A0, 0x3A20, 0x84E0, 0x29A0, 0x10C0, 0x2160, 0x4AC0, 0x29A0, 0x9560, // 0x1580 (5504) pixels -0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x31E0, 0x2140, 0x9560, // 0x1590 (5520) pixels -0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x15A0 (5536) pixels -0x9560, 0x9560, 0x9560, 0x8D60, 0x8D40, 0x8500, 0x7C80, 0x63C0, 0x4AC0, 0x3A20, 0x73CE, 0x2188, 0x1967, 0x1967, 0x1967, 0x1967, // 0x15B0 (5552) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x15C0 (5568) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x15D0 (5584) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x15E0 (5600) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x15F0 (5616) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1600 (5632) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1610 (5648) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x73CE, 0x4242, 0x4AA0, 0x63A0, 0x7460, 0x84E0, 0x8D40, 0x8D60, 0x9560, 0x6BE0, 0x31C0, // 0x1620 (5664) pixels -0x31C0, 0x31C0, 0x31C0, 0x31C0, 0x5B80, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x8D20, 0x8D60, 0x9560, 0x9560, // 0x1630 (5680) pixels -0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x5B80, 0x0000, 0x63E0, 0x9560, 0x9560, 0x9560, 0x8D20, 0x31C0, 0x5B40, 0x9560, // 0x1640 (5696) pixels -0x9560, 0x7440, 0x31C0, 0x6C20, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x1650 (5712) pixels -0x9560, 0x0000, 0x31E0, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x3A40, 0x31C0, 0x31E0, 0x4280, 0x7460, // 0x1660 (5728) pixels -0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x8D40, 0x8D40, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x1670 (5744) pixels -0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x1680 (5760) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x2120, // 0x1690 (5776) pixels -0x0000, 0x0000, 0x0000, 0x0000, 0x5340, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x16A0 (5792) pixels -0x9580, 0x9580, 0x7C80, 0x2980, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x7C80, 0x0000, 0x0000, 0x0000, 0x0000, 0x18E0, 0x7C80, // 0x16B0 (5808) pixels -0x9560, 0x7CA0, 0x29A0, 0x6C00, 0x8D40, 0x31C0, 0x0000, 0x4280, 0x5B80, 0x4280, 0x0000, 0x3A20, 0x5300, 0x4AC0, 0x31E0, 0x8D20, // 0x16C0 (5824) pixels -0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x2140, 0x0880, 0x8D20, // 0x16D0 (5840) pixels -0x8D60, 0x31E0, 0x6C20, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x16E0 (5856) pixels +0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x5B80, 0x4AE0, 0x4AE0, // 0x1550 (5456) pixels +0x4AE0, 0x5320, 0x7C80, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x1560 (5472) pixels +0x9560, 0x9560, 0x9560, 0x7440, 0x6C00, 0x8D40, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x8500, 0x4AE0, 0x4AE0, 0x4AE0, 0x5320, // 0x1570 (5488) pixels +0x6C00, 0x8D60, 0x9560, 0x9560, 0x6C20, 0x10A0, 0x31C0, 0x9560, 0x9560, 0x4AA0, 0x18E0, 0x10A0, 0x63E0, 0x7C80, 0x2980, 0x10C0, // 0x1580 (5504) pixels +0x2140, 0x4AE0, 0x10A0, 0x4AE0, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x1590 (5520) pixels +0x9560, 0x9560, 0x9560, 0x3A20, 0x10A0, 0x7440, 0x9560, 0x6C20, 0x6C00, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x15A0 (5536) pixels +0x9560, 0x9560, 0x9560, 0x8D60, 0x8D40, 0x8500, 0x7C80, 0x63C0, 0x4AC0, 0x3A20, 0x73CE, 0x2188, 0x1967, 0x2167, 0x2167, 0x1967, // 0x15B0 (5552) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2167, 0x2168, 0x2167, 0x1967, 0x2167, 0x2167, 0x1967, 0x1967, // 0x15C0 (5568) pixels +0x1967, 0x2167, 0x2167, 0x2167, 0x2167, 0x2167, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x2167, 0x2167, 0x1967, 0x1967, 0x1967, // 0x15D0 (5584) pixels +0x2167, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x2167, 0x2167, 0x2168, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x15E0 (5600) pixels +0x1967, 0x1967, 0x1967, 0x2167, 0x2167, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2167, // 0x15F0 (5616) pixels +0x2168, 0x2168, 0x2167, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x2167, 0x2168, 0x2168, 0x2167, 0x1967, 0x1967, 0x1967, // 0x1600 (5632) pixels +0x1967, 0x2167, 0x2167, 0x1967, 0x1967, 0x1967, 0x2167, 0x2167, 0x1967, 0x1967, 0x1967, 0x2167, 0x2167, 0x1967, 0x1967, 0x1967, // 0x1610 (5648) pixels +0x1967, 0x2167, 0x2168, 0x2168, 0x2167, 0x73CE, 0x4242, 0x4AA0, 0x63A0, 0x7460, 0x84E0, 0x3A40, 0x1900, 0x1900, 0x1900, 0x1900, // 0x1620 (5664) pixels +0x1900, 0x1900, 0x63E0, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x8D40, 0x4280, 0x4AC0, 0x9560, 0x9560, 0x9560, // 0x1630 (5680) pixels +0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x0000, 0x0860, 0x8D60, 0x9560, 0x9560, 0x9560, 0x9560, 0x5B80, 0x1900, // 0x1640 (5696) pixels +0x4AC0, 0x9560, 0x9560, 0x6BE0, 0x1900, 0x3A40, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x1650 (5712) pixels +0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x2140, 0x0000, 0x7480, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x1660 (5728) pixels +0x7CC0, 0x1900, 0x1900, 0x1900, 0x2120, 0x29A0, 0x63E0, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x1670 (5744) pixels +0x7440, 0x4280, 0x63E0, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x1680 (5760) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x2160, 0x0000, 0x0000, // 0x1690 (5776) pixels +0x0000, 0x0000, 0x0000, 0x6BE0, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x16A0 (5792) pixels +0x9580, 0x9580, 0x9580, 0x18E0, 0x0000, 0x7CC0, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x7CA0, 0x0000, 0x0000, 0x0000, 0x0000, // 0x16B0 (5808) pixels +0x0000, 0x10A0, 0x7460, 0x9560, 0x7C80, 0x3200, 0x4AA0, 0x8D20, 0x6BE0, 0x0000, 0x10C0, 0x4280, 0x6C00, 0x2980, 0x0000, 0x31C0, // 0x16C0 (5824) pixels +0x42A0, 0x5B60, 0x3200, 0x5B60, 0x8D20, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x16D0 (5840) pixels +0x9580, 0x9580, 0x9560, 0x2980, 0x0000, 0x63C0, 0x8D40, 0x0860, 0x0000, 0x8D40, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x16E0 (5856) pixels 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, 0x8D40, 0x84E0, 0x7480, 0x63A0, 0x4AC0, 0x3A20, 0x73CE, 0x2168, 0x1967, 0x1967, 0x1967, // 0x16F0 (5872) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1700 (5888) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1710 (5904) pixels @@ -1780,226 +1780,226 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1730 (5936) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1740 (5952) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1750 (5968) pixels -0x1967, 0x1967, 0x1967, 0x1967, 0x6BAE, 0x4263, 0x42A0, 0x5B80, 0x7460, 0x84E0, 0x8D40, 0x8D60, 0x9560, 0x9580, 0x63C0, 0x2160, // 0x1760 (5984) pixels -0x18E0, 0x0000, 0x10C0, 0x2140, 0x5320, 0x8D40, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D20, 0x0020, 0x6C20, 0x9560, 0x9580, // 0x1770 (6000) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x5B60, 0x0000, 0x5B60, 0x8D20, 0x9560, 0x9580, 0x84E0, 0x0000, 0x3A20, 0x8D40, // 0x1780 (6016) pixels -0x9560, 0x63A0, 0x0000, 0x5B40, 0x8D40, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1790 (6032) pixels -0x9560, 0x0000, 0x29A0, 0x8500, 0x8D60, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x10C0, 0x0040, 0x2140, 0x0840, 0x0000, // 0x17A0 (6048) pixels -0x6C00, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x2980, 0x4280, 0x9560, 0x9560, 0x9580, 0x9580, 0x9580, // 0x17B0 (6064) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x17C0 (6080) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x1920, // 0x17D0 (6096) pixels -0x0880, 0x7440, 0x5B80, 0x0040, 0x1900, 0x8D20, 0x9560, 0x6C00, 0x4260, 0x4AC0, 0x7CC0, 0x9580, 0x9560, 0x5B80, 0x3A60, 0x42A0, // 0x17E0 (6112) pixels -0x6C00, 0x8D40, 0x31C0, 0x0000, 0x4AC0, 0x63A0, 0x9560, 0x9580, 0x9580, 0x7480, 0x0000, 0x3A20, 0x6C00, 0x5300, 0x0040, 0x10C0, // 0x17F0 (6128) pixels -0x8D20, 0x7CA0, 0x4280, 0x63A0, 0x7440, 0x10C0, 0x0020, 0x3A20, 0x5320, 0x1920, 0x0000, 0x31E0, 0x5300, 0x4AC0, 0x4260, 0x7CA0, // 0x1800 (6144) pixels -0x8D40, 0x7C80, 0x42A0, 0x4260, 0x5B80, 0x9560, 0x5320, 0x6380, 0x9560, 0x9580, 0x4AE0, 0x63C0, 0x8D60, 0x2140, 0x0860, 0x7460, // 0x1810 (6160) pixels -0x5B40, 0x0000, 0x31C0, 0x4AC0, 0x6BE0, 0x4AE0, 0x84E0, 0x9580, 0x84C0, 0x4AE0, 0x7420, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1820 (6176) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, 0x8D40, 0x84E0, 0x7460, 0x63A0, 0x4AC0, 0x3A21, 0x73AE, 0x1967, 0x1967, 0x1967, // 0x1830 (6192) pixels +0x1967, 0x1967, 0x1967, 0x1967, 0x6BAE, 0x4263, 0x42A0, 0x5B80, 0x7460, 0x84E0, 0x8D20, 0x4280, 0x2140, 0x1900, 0x0000, 0x0020, // 0x1760 (5984) pixels +0x2140, 0x2140, 0x63A0, 0x8D40, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D20, 0x0000, 0x0880, 0x8D20, 0x9560, 0x9580, // 0x1770 (6000) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x0000, 0x0840, 0x84E0, 0x8D40, 0x9580, 0x9580, 0x9580, 0x4AE0, 0x0000, // 0x1780 (6016) pixels +0x31E0, 0x8D20, 0x9560, 0x5B80, 0x0000, 0x2160, 0x8D20, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1790 (6032) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x1920, 0x0000, 0x6C00, 0x8D40, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x17A0 (6048) pixels +0x7C80, 0x0000, 0x0020, 0x29A0, 0x1920, 0x0000, 0x0000, 0x6C00, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x17B0 (6064) pixels +0x5340, 0x0000, 0x4260, 0x8D40, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x17C0 (6080) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x2140, 0x0000, 0x4AC0, // 0x17D0 (6096) pixels +0x6C00, 0x2140, 0x0000, 0x3A40, 0x8D20, 0x9560, 0x7460, 0x4260, 0x31C0, 0x42A0, 0x84E0, 0x9580, 0x9580, 0x6BE0, 0x3A40, 0x31E0, // 0x17E0 (6112) pixels +0x4280, 0x7440, 0x6380, 0x0860, 0x0000, 0x31E0, 0x42A0, 0x9560, 0x9580, 0x9580, 0x9580, 0x7C80, 0x0000, 0x0840, 0x6C00, 0x63A0, // 0x17F0 (6128) pixels +0x29A0, 0x0000, 0x10A0, 0x8D20, 0x7C80, 0x3A20, 0x42A0, 0x6C00, 0x2160, 0x0000, 0x18E0, 0x31E0, 0x42A0, 0x0840, 0x0000, 0x29A0, // 0x1800 (6144) pixels +0x4AE0, 0x5320, 0x31E0, 0x5340, 0x84C0, 0x8D40, 0x6BE0, 0x3A40, 0x31E0, 0x4AC0, 0x84E0, 0x6C00, 0x4280, 0x6C00, 0x9560, 0x7460, // 0x1810 (6160) pixels +0x4280, 0x63C0, 0x8D60, 0x2980, 0x0000, 0x5320, 0x4AE0, 0x0020, 0x0000, 0x3A20, 0x4AE0, 0x5320, 0x4280, 0x7CC0, 0x9580, 0x8D20, // 0x1820 (6176) pixels +0x4280, 0x4AE0, 0x9560, 0x9580, 0x9560, 0x9560, 0x8D40, 0x84E0, 0x7460, 0x63A0, 0x4AC0, 0x3A21, 0x73AE, 0x1967, 0x1967, 0x1967, // 0x1830 (6192) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1840 (6208) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1850 (6224) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1860 (6240) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1870 (6256) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1880 (6272) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1890 (6288) pixels -0x1967, 0x1967, 0x1967, 0x636D, 0x4A84, 0x4280, 0x5B80, 0x7440, 0x84E0, 0x8D40, 0x8D60, 0x9560, 0x9580, 0x9560, 0x8D20, 0x7CA0, // 0x18A0 (6304) pixels -0x4AE0, 0x0000, 0x3A60, 0x6BE0, 0x7440, 0x5340, 0x1920, 0x10A0, 0x31E0, 0x84E0, 0x8D20, 0x29A0, 0x0000, 0x10C0, 0x2140, 0x8D60, // 0x18B0 (6320) pixels -0x6380, 0x2120, 0x1080, 0x1920, 0x6C00, 0x9560, 0x5340, 0x0000, 0x4AE0, 0x7CC0, 0x8D60, 0x9560, 0x84E0, 0x0000, 0x31C0, 0x7CA0, // 0x18C0 (6336) pixels -0x8D40, 0x5B80, 0x0000, 0x4AE0, 0x84E0, 0x5B80, 0x2120, 0x1080, 0x2120, 0x6C00, 0x9560, 0x7CA0, 0x2980, 0x10A0, 0x1900, 0x5340, // 0x18D0 (6352) pixels -0x8D40, 0x0000, 0x2140, 0x2160, 0x10A0, 0x3200, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9560, 0x10A0, 0x10C0, 0x6BE0, 0x5320, 0x0000, // 0x18E0 (6368) pixels -0x3A40, 0x8D20, 0x63E0, 0x2140, 0x1080, 0x1900, 0x63C0, 0x9560, 0x4AE0, 0x0000, 0x0860, 0x1900, 0x7460, 0x8D40, 0x3A40, 0x10A0, // 0x18F0 (6384) pixels -0x1900, 0x5340, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1900 (6400) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D60, 0x1900, // 0x1910 (6416) pixels -0x0840, 0x4AC0, 0x4260, 0x0000, 0x2160, 0x7C80, 0x5320, 0x0000, 0x2980, 0x1900, 0x0040, 0x7CA0, 0x5320, 0x0000, 0x2980, 0x2140, // 0x1920 (6432) pixels -0x31C0, 0x5B80, 0x0860, 0x0000, 0x1920, 0x4280, 0x8D40, 0x9560, 0x9560, 0x7460, 0x0000, 0x31C0, 0x5B80, 0x63A0, 0x29A0, 0x0000, // 0x1930 (6448) pixels -0x63A0, 0x63C0, 0x0000, 0x4AA0, 0x4280, 0x0840, 0x0000, 0x18E0, 0x29A0, 0x0860, 0x0000, 0x10E0, 0x4260, 0x2140, 0x0020, 0x7C80, // 0x1940 (6464) pixels -0x6BE0, 0x0000, 0x0880, 0x1920, 0x2140, 0x8D40, 0x0880, 0x2160, 0x8D40, 0x9560, 0x0000, 0x31E0, 0x8D20, 0x2120, 0x0860, 0x63A0, // 0x1950 (6480) pixels -0x10E0, 0x0000, 0x10C0, 0x2140, 0x6380, 0x0000, 0x4AE0, 0x8D60, 0x4AA0, 0x0000, 0x6C20, 0x8D40, 0x9560, 0x9580, 0x9580, 0x9580, // 0x1960 (6496) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, 0x8D40, 0x84E0, 0x7460, 0x6380, 0x4AA0, 0x3A42, 0x6B8D, 0x1967, 0x1967, // 0x1970 (6512) pixels +0x1967, 0x1967, 0x1967, 0x636D, 0x4A84, 0x4280, 0x5B80, 0x7440, 0x84E0, 0x8D40, 0x8D40, 0x8500, 0x7460, 0x5300, 0x0000, 0x0880, // 0x18A0 (6304) pixels +0x63A0, 0x63E0, 0x7440, 0x7CA0, 0x3A40, 0x0880, 0x0020, 0x1920, 0x6C00, 0x9560, 0x29A0, 0x0000, 0x0000, 0x18E0, 0x3A40, 0x7CC0, // 0x18B0 (6320) pixels +0x1900, 0x0840, 0x0020, 0x10A0, 0x4AE0, 0x9560, 0x8D40, 0x0000, 0x0040, 0x6C20, 0x8D20, 0x9560, 0x9580, 0x9560, 0x4AC0, 0x0000, // 0x18C0 (6336) pixels +0x29A0, 0x7CA0, 0x8D20, 0x5B60, 0x0000, 0x1920, 0x7C80, 0x63C0, 0x10C0, 0x0040, 0x0040, 0x1900, 0x63A0, 0x9560, 0x9560, 0x4AA0, // 0x18D0 (6352) pixels +0x10A0, 0x0020, 0x10A0, 0x42A0, 0x8D40, 0x1900, 0x0000, 0x31E0, 0x10C0, 0x0840, 0x4280, 0x9560, 0x9580, 0x9580, 0x9580, 0x9560, // 0x18E0 (6368) pixels +0x7480, 0x0000, 0x0860, 0x63A0, 0x63C0, 0x1900, 0x0000, 0x42A0, 0x8D20, 0x42A0, 0x0880, 0x0020, 0x0860, 0x2980, 0x7CA0, 0x7CA0, // 0x18F0 (6384) pixels +0x10A0, 0x0000, 0x0860, 0x18E0, 0x63C0, 0x8D40, 0x42A0, 0x10A0, 0x0020, 0x18E0, 0x63E0, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1900 (6400) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D60, 0x2120, 0x0000, 0x2980, // 0x1910 (6416) pixels +0x3A40, 0x0880, 0x0020, 0x5320, 0x7CA0, 0x63A0, 0x0000, 0x2140, 0x3A20, 0x0020, 0x10A0, 0x8D20, 0x5320, 0x0000, 0x18E0, 0x29A0, // 0x1920 (6432) pixels +0x10C0, 0x3200, 0x4280, 0x0020, 0x0000, 0x10A0, 0x2140, 0x8D20, 0x9560, 0x9580, 0x9560, 0x7480, 0x0000, 0x0040, 0x5B40, 0x63A0, // 0x1930 (6448) pixels +0x63A0, 0x0860, 0x0000, 0x5B60, 0x6BE0, 0x0000, 0x1920, 0x5B80, 0x0880, 0x0000, 0x0840, 0x10C0, 0x29C0, 0x0000, 0x0000, 0x10A0, // 0x1940 (6464) pixels +0x3A40, 0x3A20, 0x0000, 0x3A40, 0x7CC0, 0x3A40, 0x0000, 0x0860, 0x2140, 0x0040, 0x5320, 0x4AA0, 0x0000, 0x4AC0, 0x8D40, 0x5B60, // 0x1950 (6480) pixels +0x0000, 0x3A20, 0x8D20, 0x2160, 0x0000, 0x4AC0, 0x31E0, 0x0000, 0x0000, 0x10C0, 0x29A0, 0x42A0, 0x0000, 0x4260, 0x8D40, 0x5B40, // 0x1960 (6496) pixels +0x0000, 0x3A40, 0x8D40, 0x9560, 0x9580, 0x9560, 0x9560, 0x8D40, 0x84E0, 0x7460, 0x6380, 0x4AA0, 0x3A42, 0x6B8D, 0x1967, 0x1967, // 0x1970 (6512) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1980 (6528) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x1990 (6544) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x19A0 (6560) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x19B0 (6576) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x19C0 (6592) pixels 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, 0x1967, // 0x19D0 (6608) pixels -0x1967, 0x1967, 0x5B4D, 0x4AA5, 0x4280, 0x5B60, 0x7440, 0x84E0, 0x8D20, 0x8D60, 0x9560, 0x9580, 0x9580, 0x9560, 0x8D20, 0x7CA0, // 0x19E0 (6624) pixels -0x4AE0, 0x0000, 0x3200, 0x63A0, 0x5340, 0x0000, 0x2160, 0x4280, 0x0040, 0x2140, 0x84C0, 0x29A0, 0x0000, 0x29A0, 0x4280, 0x8500, // 0x19F0 (6640) pixels -0x63E0, 0x42A0, 0x5320, 0x10C0, 0x0860, 0x8D20, 0x5320, 0x0000, 0x4AA0, 0x7CA0, 0x8D40, 0x9560, 0x84C0, 0x0000, 0x10C0, 0x3200, // 0x1A00 (6656) pixels -0x3A60, 0x29A0, 0x0000, 0x4280, 0x7CA0, 0x63C0, 0x42A0, 0x5320, 0x10C0, 0x0860, 0x8D40, 0x31C0, 0x0000, 0x5320, 0x4280, 0x5B60, // 0x1A10 (6672) pixels -0x8500, 0x0000, 0x0000, 0x31E0, 0x29A0, 0x0000, 0x5300, 0x8D60, 0x9560, 0x9580, 0x8D40, 0x10A0, 0x1080, 0x4AE0, 0x29A0, 0x0000, // 0x1A20 (6688) pixels -0x4260, 0x7CA0, 0x6C20, 0x4280, 0x5340, 0x1900, 0x0020, 0x8500, 0x4AC0, 0x0000, 0x1900, 0x3A40, 0x7460, 0x3A40, 0x0020, 0x5320, // 0x1A30 (6704) pixels -0x3A40, 0x0000, 0x6BE0, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1A40 (6720) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D40, 0x1900, // 0x1A50 (6736) pixels -0x0000, 0x0000, 0x0000, 0x0040, 0x4AC0, 0x6C20, 0x10C0, 0x10C0, 0x63C0, 0x5B60, 0x0000, 0x4280, 0x42A0, 0x0000, 0x3200, 0x6BE0, // 0x1A60 (6752) pixels -0x7460, 0x7CA0, 0x2980, 0x0020, 0x6380, 0x7440, 0x84E0, 0x8D40, 0x9560, 0x7440, 0x0000, 0x31C0, 0x6BE0, 0x7460, 0x4260, 0x0000, // 0x1A70 (6768) pixels -0x4AC0, 0x5B80, 0x0000, 0x42A0, 0x7C80, 0x1920, 0x0840, 0x5B40, 0x6BE0, 0x29A0, 0x0000, 0x5300, 0x6BE0, 0x2160, 0x0020, 0x7460, // 0x1A80 (6784) pixels -0x29C0, 0x0000, 0x6C00, 0x7420, 0x7440, 0x7CA0, 0x0860, 0x2120, 0x7CC0, 0x8D20, 0x0000, 0x29A0, 0x7CA0, 0x1920, 0x0860, 0x6BE0, // 0x1A90 (6800) pixels -0x5300, 0x0000, 0x4260, 0x6BE0, 0x7440, 0x0880, 0x1900, 0x84E0, 0x10E0, 0x10C0, 0x7C80, 0x8500, 0x9560, 0x9580, 0x9580, 0x9580, // 0x1AA0 (6816) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, 0x8D40, 0x84E0, 0x7440, 0x5B80, 0x42A0, 0x4A83, 0x636B, 0x5B2A, // 0x1AB0 (6832) pixels +0x1967, 0x1967, 0x5B4D, 0x4AA5, 0x4280, 0x5B60, 0x7440, 0x84E0, 0x8D20, 0x8D60, 0x8D60, 0x8500, 0x7480, 0x5320, 0x0000, 0x0860, // 0x19E0 (6624) pixels +0x5B40, 0x6BE0, 0x7460, 0x31E0, 0x0000, 0x29A0, 0x4AE0, 0x0860, 0x0020, 0x7480, 0x4AE0, 0x0000, 0x0020, 0x3200, 0x5320, 0x7460, // 0x19F0 (6640) pixels +0x3200, 0x5300, 0x42A0, 0x0880, 0x0000, 0x6C20, 0x8D20, 0x0000, 0x0040, 0x63C0, 0x8500, 0x9560, 0x9580, 0x9560, 0x4AA0, 0x0000, // 0x1A00 (6656) pixels +0x0020, 0x0880, 0x10A0, 0x0860, 0x0000, 0x1900, 0x6C20, 0x63A0, 0x3A40, 0x5300, 0x4260, 0x0020, 0x0020, 0x8500, 0x5300, 0x0000, // 0x1A10 (6672) pixels +0x2980, 0x5320, 0x4260, 0x29C0, 0x8500, 0x1900, 0x0000, 0x10C0, 0x29A0, 0x0000, 0x0000, 0x7440, 0x8D60, 0x9580, 0x9580, 0x9560, // 0x1A20 (6688) pixels +0x7460, 0x0000, 0x0040, 0x4AC0, 0x42A0, 0x0840, 0x0000, 0x5300, 0x7CC0, 0x4AC0, 0x4AA0, 0x5300, 0x29C0, 0x0000, 0x2980, 0x7CA0, // 0x1A30 (6704) pixels +0x2980, 0x0000, 0x10E0, 0x3A20, 0x6C00, 0x3A60, 0x0000, 0x4AC0, 0x63A0, 0x10A0, 0x0020, 0x7CC0, 0x9560, 0x9580, 0x9580, 0x9580, // 0x1A40 (6720) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D40, 0x2120, 0x0000, 0x0000, // 0x1A50 (6736) pixels +0x0000, 0x0000, 0x0860, 0x4260, 0x7C80, 0x10E0, 0x0000, 0x5320, 0x5300, 0x1920, 0x0000, 0x5B80, 0x2980, 0x0000, 0x29A0, 0x5300, // 0x1A60 (6752) pixels +0x63E0, 0x63C0, 0x7480, 0x10A0, 0x0000, 0x4AE0, 0x6BE0, 0x7CA0, 0x8D40, 0x9580, 0x9560, 0x7460, 0x0000, 0x0040, 0x5B80, 0x7460, // 0x1A70 (6768) pixels +0x7460, 0x18E0, 0x0000, 0x4260, 0x63A0, 0x0000, 0x1920, 0x7440, 0x4280, 0x0000, 0x2980, 0x5B60, 0x63E0, 0x0880, 0x0000, 0x4AE0, // 0x1A80 (6784) pixels +0x63C0, 0x3A40, 0x0000, 0x3A20, 0x7420, 0x0000, 0x0040, 0x6BE0, 0x6C00, 0x63C0, 0x63A0, 0x4260, 0x0000, 0x3A60, 0x84C0, 0x5340, // 0x1A90 (6800) pixels +0x0000, 0x31E0, 0x7CA0, 0x2160, 0x0000, 0x4AC0, 0x7420, 0x0840, 0x0000, 0x5340, 0x6C00, 0x6BE0, 0x0000, 0x0880, 0x84C0, 0x2140, // 0x1AA0 (6816) pixels +0x0000, 0x63C0, 0x7CC0, 0x8D40, 0x9580, 0x9580, 0x9560, 0x9560, 0x8D40, 0x84E0, 0x7440, 0x5B80, 0x42A0, 0x4A83, 0x636B, 0x5B2A, // 0x1AB0 (6832) pixels 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, // 0x1AC0 (6848) pixels 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, // 0x1AD0 (6864) pixels 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, // 0x1AE0 (6880) pixels 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, // 0x1AF0 (6896) pixels 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, // 0x1B00 (6912) pixels 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, 0x5B2A, // 0x1B10 (6928) pixels -0x5B2A, 0x634A, 0x52C5, 0x4280, 0x5B60, 0x7420, 0x84C0, 0x8D20, 0x8D60, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D20, // 0x1B20 (6944) pixels -0x5B60, 0x0000, 0x3A20, 0x7420, 0x3A20, 0x0000, 0x63C0, 0x6BE0, 0x29A0, 0x0000, 0x7440, 0x4AC0, 0x0000, 0x4280, 0x63C0, 0x7C80, // 0x1B30 (6960) pixels -0x7C80, 0x4AE0, 0x3200, 0x10C0, 0x0000, 0x7440, 0x5300, 0x0000, 0x4AA0, 0x7CA0, 0x8D40, 0x9560, 0x7CC0, 0x0000, 0x0840, 0x10C0, // 0x1B40 (6976) pixels -0x18E0, 0x10A0, 0x0000, 0x4260, 0x7C80, 0x7CA0, 0x4AE0, 0x3200, 0x10C0, 0x0000, 0x7440, 0x4260, 0x0000, 0x1900, 0x4AE0, 0x7440, // 0x1B50 (6992) pixels -0x7CA0, 0x0000, 0x10E0, 0x5B80, 0x5B60, 0x0000, 0x31E0, 0x8500, 0x9560, 0x9580, 0x8D40, 0x10A0, 0x0000, 0x0000, 0x0000, 0x29A0, // 0x1B60 (7008) pixels -0x63A0, 0x7460, 0x7CA0, 0x5300, 0x3200, 0x18E0, 0x0000, 0x6BE0, 0x7440, 0x0000, 0x2980, 0x6380, 0x7440, 0x0880, 0x0880, 0x3A20, // 0x1B70 (7024) pixels -0x3200, 0x0000, 0x3A20, 0x8D20, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1B80 (7040) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D40, 0x1900, // 0x1B90 (7056) pixels -0x0860, 0x5340, 0x5320, 0x0860, 0x0860, 0x7420, 0x0020, 0x0000, 0x0040, 0x0040, 0x0040, 0x31E0, 0x6C20, 0x2140, 0x0000, 0x0020, // 0x1BA0 (7072) pixels -0x4280, 0x7460, 0x2160, 0x0000, 0x5B60, 0x6C20, 0x84C0, 0x8D40, 0x9560, 0x7440, 0x0000, 0x31C0, 0x7440, 0x8500, 0x3A40, 0x0000, // 0x1BB0 (7088) pixels -0x4AC0, 0x5B40, 0x0000, 0x3A60, 0x7420, 0x1900, 0x0840, 0x5B60, 0x6BE0, 0x29A0, 0x0000, 0x5320, 0x6C00, 0x2140, 0x0020, 0x6C00, // 0x1BC0 (7104) pixels -0x1900, 0x0860, 0x63A0, 0x63E0, 0x6C20, 0x7C80, 0x0860, 0x1900, 0x7440, 0x84E0, 0x0000, 0x2160, 0x7420, 0x1920, 0x0860, 0x63C0, // 0x1BD0 (7120) pixels -0x4AE0, 0x0000, 0x3A40, 0x63C0, 0x7440, 0x3A20, 0x0000, 0x5320, 0x0000, 0x3A20, 0x6C00, 0x84E0, 0x9560, 0x9580, 0x9580, 0x9580, // 0x1BE0 (7136) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D60, 0x8D40, 0x84E0, 0x7440, 0x5B80, 0x4AC0, 0x3A20, 0x31E0, // 0x1BF0 (7152) pixels +0x5B2A, 0x634A, 0x52C5, 0x4280, 0x5B60, 0x7420, 0x84C0, 0x8D20, 0x8D60, 0x9560, 0x9580, 0x8D60, 0x8D20, 0x63C0, 0x0000, 0x0860, // 0x1B20 (6944) pixels +0x63A0, 0x7CA0, 0x8D20, 0x0840, 0x0000, 0x63C0, 0x63C0, 0x29C0, 0x0000, 0x4280, 0x7460, 0x0000, 0x0840, 0x5340, 0x6C00, 0x7C80, // 0x1B30 (6960) pixels +0x5B80, 0x31E0, 0x2140, 0x0860, 0x0000, 0x4AE0, 0x84E0, 0x0000, 0x0040, 0x63C0, 0x8500, 0x9560, 0x9580, 0x9560, 0x42A0, 0x0000, // 0x1B40 (6976) pixels +0x0860, 0x2140, 0x2980, 0x18E0, 0x0000, 0x18E0, 0x6C00, 0x84C0, 0x5320, 0x29C0, 0x1920, 0x0020, 0x0000, 0x6BE0, 0x42A0, 0x0000, // 0x1B50 (6992) pixels +0x0860, 0x2980, 0x3A40, 0x63E0, 0x7C80, 0x1900, 0x0000, 0x4AC0, 0x63A0, 0x1900, 0x0000, 0x5320, 0x8D20, 0x9560, 0x9580, 0x9560, // 0x1B60 (7008) pixels +0x7460, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3A20, 0x5B80, 0x7C80, 0x7C80, 0x4280, 0x2980, 0x18E0, 0x0000, 0x10C0, 0x7C80, // 0x1B70 (7024) pixels +0x42A0, 0x0000, 0x2160, 0x5B80, 0x7440, 0x0860, 0x0000, 0x29A0, 0x2980, 0x1080, 0x0000, 0x5340, 0x8D40, 0x9560, 0x9580, 0x9580, // 0x1B80 (7040) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D40, 0x2120, 0x0000, 0x3A00, // 0x1B90 (7056) pixels +0x5B60, 0x4260, 0x0000, 0x0020, 0x7460, 0x0020, 0x0000, 0x0880, 0x0880, 0x0880, 0x0860, 0x4AC0, 0x5340, 0x0020, 0x0000, 0x0000, // 0x1BA0 (7072) pixels +0x0020, 0x4260, 0x7440, 0x10A0, 0x0000, 0x4AC0, 0x63E0, 0x7CA0, 0x8D40, 0x9580, 0x9560, 0x7460, 0x0000, 0x0040, 0x63C0, 0x84E0, // 0x1BB0 (7088) pixels +0x8D20, 0x0880, 0x0000, 0x4280, 0x5B60, 0x0000, 0x1900, 0x6C00, 0x4260, 0x0000, 0x2980, 0x5B80, 0x6C00, 0x0880, 0x0000, 0x5300, // 0x1BC0 (7104) pixels +0x6BE0, 0x3A40, 0x0000, 0x3200, 0x5B60, 0x0000, 0x10C0, 0x5B80, 0x63C0, 0x6C00, 0x6C20, 0x3A20, 0x0000, 0x3200, 0x7460, 0x5300, // 0x1BD0 (7120) pixels +0x0000, 0x2980, 0x7440, 0x2140, 0x0000, 0x4AC0, 0x7420, 0x0040, 0x0000, 0x5320, 0x6BE0, 0x7420, 0x2120, 0x0000, 0x42A0, 0x0000, // 0x1BE0 (7136) pixels +0x1900, 0x63C0, 0x7C80, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D60, 0x8D40, 0x84E0, 0x7440, 0x5B80, 0x4AC0, 0x3A20, 0x31E0, // 0x1BF0 (7152) pixels 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, // 0x1C00 (7168) pixels 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, // 0x1C10 (7184) pixels 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, // 0x1C20 (7200) pixels 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, // 0x1C30 (7216) pixels 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, // 0x1C40 (7232) pixels 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, 0x31E0, // 0x1C50 (7248) pixels -0x31E0, 0x3A20, 0x42A0, 0x5B60, 0x7420, 0x84C0, 0x8D20, 0x8D60, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, // 0x1C60 (7264) pixels -0x63A0, 0x0000, 0x3A40, 0x7460, 0x31E0, 0x0000, 0x5B80, 0x63E0, 0x31C0, 0x0000, 0x5B80, 0x42A0, 0x0000, 0x4280, 0x6C00, 0x7440, // 0x1C70 (7280) pixels -0x0860, 0x1080, 0x3A00, 0x18E0, 0x0000, 0x63A0, 0x4AE0, 0x0000, 0x4AA0, 0x7CA0, 0x8D40, 0x9560, 0x7CC0, 0x0000, 0x2160, 0x5B80, // 0x1C80 (7296) pixels -0x6BE0, 0x4AA0, 0x0000, 0x3A40, 0x6C20, 0x0860, 0x10A0, 0x3A00, 0x18E0, 0x0000, 0x63A0, 0x7460, 0x3A20, 0x0860, 0x0000, 0x3A20, // 0x1C90 (7312) pixels -0x7CA0, 0x0000, 0x1920, 0x5B60, 0x5B80, 0x0000, 0x29A0, 0x7C80, 0x8D40, 0x9560, 0x8D40, 0x10A0, 0x0880, 0x4280, 0x0020, 0x2980, // 0x1CA0 (7328) pixels -0x63C0, 0x7460, 0x1080, 0x0860, 0x3200, 0x1900, 0x0000, 0x5B60, 0x6C00, 0x0000, 0x2980, 0x63A0, 0x7460, 0x0040, 0x0860, 0x2160, // 0x1CB0 (7344) pixels -0x2980, 0x2980, 0x4280, 0x7CC0, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1CC0 (7360) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D40, 0x1900, // 0x1CD0 (7376) pixels -0x0860, 0x5B40, 0x5B80, 0x10A0, 0x0000, 0x6C20, 0x10A0, 0x10A0, 0x5B60, 0x63E0, 0x63C0, 0x63A0, 0x6C00, 0x6C00, 0x4AE0, 0x0880, // 0x1CE0 (7392) pixels -0x0860, 0x7CA0, 0x2980, 0x0000, 0x63A0, 0x7CA0, 0x8D40, 0x9560, 0x9560, 0x7440, 0x0000, 0x31C0, 0x7440, 0x6C20, 0x0860, 0x0860, // 0x1CF0 (7408) pixels -0x6380, 0x5320, 0x0000, 0x3A40, 0x7440, 0x1920, 0x0840, 0x63C0, 0x7C80, 0x31E0, 0x0000, 0x5B60, 0x7C80, 0x2160, 0x0020, 0x63C0, // 0x1D00 (7424) pixels -0x2160, 0x0000, 0x5B60, 0x7C80, 0x7CC0, 0x8500, 0x0880, 0x10A0, 0x6C20, 0x6C00, 0x0000, 0x2140, 0x6C00, 0x1920, 0x0860, 0x63E0, // 0x1D10 (7440) pixels -0x5300, 0x0000, 0x3A40, 0x7440, 0x84C0, 0x6C00, 0x0000, 0x10A0, 0x0000, 0x5B60, 0x6C00, 0x8500, 0x9560, 0x9580, 0x9580, 0x9580, // 0x1D20 (7456) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D60, 0x8D40, 0x84E0, 0x7440, 0x63A0, 0x5320, 0x4AE0, // 0x1D30 (7472) pixels +0x31E0, 0x3A20, 0x42A0, 0x5B60, 0x7420, 0x84C0, 0x8D20, 0x8D60, 0x9560, 0x9580, 0x9580, 0x9580, 0x9560, 0x6C00, 0x0000, 0x0860, // 0x1C60 (7264) pixels +0x63E0, 0x8500, 0x8D40, 0x0000, 0x0000, 0x5B80, 0x6BE0, 0x3200, 0x0000, 0x31E0, 0x6C20, 0x0000, 0x0860, 0x5B60, 0x7440, 0x4AE0, // 0x1C70 (7280) pixels +0x0000, 0x10A0, 0x31E0, 0x10E0, 0x0000, 0x4280, 0x7C80, 0x0000, 0x0040, 0x63C0, 0x8500, 0x9560, 0x9580, 0x9560, 0x42A0, 0x0000, // 0x1C80 (7296) pixels +0x2120, 0x5B40, 0x63A0, 0x3A40, 0x0000, 0x18E0, 0x6C00, 0x31E0, 0x0000, 0x1900, 0x3200, 0x0860, 0x0000, 0x5B60, 0x7440, 0x29A0, // 0x1C90 (7312) pixels +0x0040, 0x0000, 0x0000, 0x10C0, 0x7460, 0x1900, 0x0000, 0x4AC0, 0x63A0, 0x2140, 0x0000, 0x42A0, 0x84C0, 0x9560, 0x9580, 0x9560, // 0x1CA0 (7328) pixels +0x7460, 0x0000, 0x0040, 0x4260, 0x0860, 0x0000, 0x31E0, 0x63C0, 0x7C80, 0x10A0, 0x0000, 0x29A0, 0x31E0, 0x0000, 0x10A0, 0x6C00, // 0x1CB0 (7344) pixels +0x42A0, 0x0000, 0x2980, 0x63A0, 0x7440, 0x0020, 0x0000, 0x29A0, 0x29C0, 0x29A0, 0x29A0, 0x5320, 0x84E0, 0x9560, 0x9580, 0x9580, // 0x1CC0 (7360) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D40, 0x2120, 0x0000, 0x3A20, // 0x1CD0 (7376) pixels +0x5B60, 0x42A0, 0x0000, 0x0000, 0x6C20, 0x10A0, 0x0000, 0x4AA0, 0x63C0, 0x63C0, 0x5300, 0x5B40, 0x5B60, 0x6380, 0x4260, 0x2980, // 0x1CE0 (7392) pixels +0x0000, 0x10A0, 0x7C80, 0x10C0, 0x0000, 0x5300, 0x7C80, 0x8D20, 0x9560, 0x9580, 0x9560, 0x7460, 0x0000, 0x0040, 0x63C0, 0x7CA0, // 0x1CF0 (7408) pixels +0x3A40, 0x0000, 0x0880, 0x5B60, 0x5340, 0x0000, 0x1900, 0x6BE0, 0x42A0, 0x0000, 0x29A0, 0x6C00, 0x7CA0, 0x0880, 0x0000, 0x5B40, // 0x1D00 (7424) pixels +0x7C80, 0x4260, 0x0000, 0x31E0, 0x63E0, 0x0000, 0x0040, 0x5B60, 0x7C80, 0x7C80, 0x6C00, 0x4260, 0x0000, 0x2160, 0x7440, 0x4AC0, // 0x1D10 (7440) pixels +0x0000, 0x2980, 0x6C20, 0x2140, 0x0000, 0x4AC0, 0x7460, 0x0840, 0x0000, 0x5B60, 0x7CA0, 0x84E0, 0x5300, 0x0000, 0x0020, 0x0000, // 0x1D20 (7456) pixels +0x4260, 0x63C0, 0x84C0, 0x8D60, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D60, 0x8D20, 0x84E0, 0x7440, 0x63A0, 0x5320, 0x4AE0, // 0x1D30 (7472) pixels 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, // 0x1D40 (7488) pixels 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, // 0x1D50 (7504) pixels 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, // 0x1D60 (7520) pixels 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, // 0x1D70 (7536) pixels 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, // 0x1D80 (7552) pixels 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, 0x4AE0, // 0x1D90 (7568) pixels -0x4AE0, 0x5320, 0x6380, 0x7420, 0x84C0, 0x8D20, 0x8D60, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, // 0x1DA0 (7584) pixels -0x63A0, 0x0000, 0x3A40, 0x7460, 0x4AC0, 0x0000, 0x3A40, 0x6C20, 0x10C0, 0x0840, 0x63C0, 0x4AA0, 0x0000, 0x3A40, 0x7440, 0x63C0, // 0x1DB0 (7600) pixels -0x0000, 0x3A40, 0x6C00, 0x18E0, 0x0000, 0x5B80, 0x4AC0, 0x0000, 0x4AA0, 0x7CA0, 0x8D40, 0x9560, 0x7CC0, 0x0000, 0x2160, 0x5B60, // 0x1DC0 (7616) pixels -0x63E0, 0x42A0, 0x0000, 0x3A40, 0x5B40, 0x0000, 0x3A60, 0x6C00, 0x18E0, 0x0000, 0x5B80, 0x63A0, 0x6C00, 0x5B60, 0x0840, 0x18E0, // 0x1DD0 (7632) pixels -0x7CC0, 0x0000, 0x2140, 0x63E0, 0x6C20, 0x0000, 0x29A0, 0x7440, 0x8D20, 0x9560, 0x8D40, 0x10A0, 0x10A0, 0x5320, 0x29A0, 0x0000, // 0x1DE0 (7648) pixels -0x5300, 0x6C00, 0x0000, 0x3200, 0x6C00, 0x1920, 0x0000, 0x5320, 0x6C20, 0x0000, 0x2140, 0x6C00, 0x7CA0, 0x1920, 0x0840, 0x5300, // 0x1DF0 (7664) pixels -0x63C0, 0x5B40, 0x5B80, 0x7C80, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1E00 (7680) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D40, 0x1900, // 0x1E10 (7696) pixels -0x0000, 0x0880, 0x0840, 0x0000, 0x2980, 0x6BE0, 0x4280, 0x0000, 0x10C0, 0x2160, 0x10C0, 0x5300, 0x3200, 0x1920, 0x2980, 0x0040, // 0x1E20 (7712) pixels -0x18E0, 0x7460, 0x3A20, 0x0000, 0x10E0, 0x3A20, 0x9560, 0x9560, 0x9560, 0x7440, 0x0000, 0x0040, 0x0860, 0x0000, 0x0860, 0x4AE0, // 0x1E30 (7728) pixels -0x63C0, 0x5340, 0x0000, 0x3A40, 0x7440, 0x1920, 0x0840, 0x6BE0, 0x84E0, 0x3200, 0x0000, 0x63A0, 0x7CC0, 0x2980, 0x0020, 0x63C0, // 0x1E40 (7744) pixels -0x5300, 0x0000, 0x0860, 0x1920, 0x1900, 0x8D40, 0x2980, 0x0000, 0x1900, 0x0880, 0x0020, 0x2140, 0x6C00, 0x1920, 0x0860, 0x6BE0, // 0x1E50 (7760) pixels -0x63C0, 0x0000, 0x0860, 0x1920, 0x84C0, 0x84E0, 0x2140, 0x0000, 0x1900, 0x63A0, 0x7460, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1E60 (7776) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1E70 (7792) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1E80 (7808) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1E90 (7824) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1EA0 (7840) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1EB0 (7856) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1EC0 (7872) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1ED0 (7888) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, // 0x1EE0 (7904) pixels -0x63A0, 0x0000, 0x3A40, 0x7460, 0x7C80, 0x1900, 0x0000, 0x0000, 0x0020, 0x42A0, 0x63C0, 0x63C0, 0x0040, 0x0000, 0x0000, 0x7CA0, // 0x1EF0 (7920) pixels -0x0860, 0x0000, 0x0040, 0x1920, 0x0000, 0x5B60, 0x4AC0, 0x0000, 0x4AA0, 0x7CA0, 0x8D40, 0x9560, 0x7CC0, 0x0000, 0x2980, 0x6C00, // 0x1F00 (7936) pixels -0x7CA0, 0x5320, 0x0000, 0x4260, 0x6C00, 0x0860, 0x0000, 0x0040, 0x1920, 0x0000, 0x5B80, 0x2140, 0x0000, 0x0040, 0x0000, 0x3A20, // 0x1F10 (7952) pixels -0x7440, 0x0000, 0x2140, 0x6C20, 0x7460, 0x0000, 0x29A0, 0x7440, 0x8D20, 0x9560, 0x8D40, 0x10A0, 0x10A0, 0x5B80, 0x63A0, 0x0880, // 0x1F20 (7968) pixels -0x0860, 0x7440, 0x1080, 0x0000, 0x0040, 0x1920, 0x0000, 0x5320, 0x7C80, 0x10C0, 0x0000, 0x0000, 0x5B80, 0x63A0, 0x0840, 0x0000, // 0x1F30 (7984) pixels -0x0020, 0x0000, 0x5B60, 0x84C0, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1F40 (8000) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D40, 0x4AC0, // 0x1F50 (8016) pixels -0x29A0, 0x29A0, 0x3A20, 0x4AE0, 0x5B80, 0x63E0, 0x7440, 0x4AC0, 0x2980, 0x29A0, 0x4260, 0x7440, 0x63E0, 0x3A20, 0x29C0, 0x3200, // 0x1F60 (8032) pixels -0x5340, 0x6C00, 0x7440, 0x3200, 0x2980, 0x5300, 0x8D20, 0x9560, 0x9560, 0x7CA0, 0x3200, 0x29A0, 0x3A20, 0x5300, 0x63E0, 0x63A0, // 0x1F70 (8048) pixels -0x6C00, 0x6C00, 0x31E0, 0x5300, 0x7460, 0x4AC0, 0x31E0, 0x6C00, 0x84E0, 0x5B40, 0x31C0, 0x63C0, 0x7CC0, 0x4AE0, 0x31E0, 0x63C0, // 0x1F80 (8064) pixels -0x7460, 0x4AE0, 0x29A0, 0x31E0, 0x5B60, 0x84E0, 0x7420, 0x31E0, 0x29A0, 0x5320, 0x4280, 0x3A40, 0x6C00, 0x42A0, 0x31E0, 0x6BE0, // 0x1F90 (8080) pixels -0x7CA0, 0x4AC0, 0x2980, 0x3200, 0x7CC0, 0x8500, 0x4AA0, 0x0000, 0x3A20, 0x63C0, 0x84C0, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1FA0 (8096) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1FB0 (8112) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1FC0 (8128) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1FD0 (8144) pixels -0x9580, 0x9580, 0x9580, 0x8D40, 0x84E0, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1FE0 (8160) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x1FF0 (8176) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8500, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2000 (8192) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2010 (8208) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, // 0x2020 (8224) pixels -0x7CC0, 0x5B60, 0x5B80, 0x7460, 0x84C0, 0x7420, 0x4AE0, 0x4AE0, 0x63C0, 0x63A0, 0x6C00, 0x7CA0, 0x63C0, 0x42A0, 0x5B60, 0x7C80, // 0x2030 (8240) pixels -0x6C00, 0x42A0, 0x5340, 0x63C0, 0x4AC0, 0x63A0, 0x6C20, 0x5B40, 0x63A0, 0x7CA0, 0x8D40, 0x9560, 0x8D20, 0x5B80, 0x5B40, 0x7440, // 0x2040 (8256) pixels -0x8D20, 0x7CA0, 0x5B60, 0x5B80, 0x7440, 0x6BE0, 0x42A0, 0x5340, 0x63C0, 0x4AC0, 0x63A0, 0x7460, 0x5B80, 0x5300, 0x5B60, 0x6380, // 0x2050 (8272) pixels -0x6C00, 0x5B60, 0x5340, 0x6C20, 0x84C0, 0x5B80, 0x5B40, 0x7440, 0x8D20, 0x9560, 0x8D40, 0x63E0, 0x5320, 0x6BE0, 0x7460, 0x63A0, // 0x2060 (8288) pixels -0x5300, 0x6C00, 0x6C00, 0x42A0, 0x5320, 0x63E0, 0x4AE0, 0x63A0, 0x7CA0, 0x7420, 0x4AA0, 0x4AE0, 0x7460, 0x7C80, 0x63A0, 0x4AA0, // 0x2070 (8304) pixels -0x4AE0, 0x63C0, 0x7C80, 0x8500, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2080 (8320) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D60, 0x7CC0, // 0x2090 (8336) pixels -0x63E0, 0x5B80, 0x63A0, 0x63A0, 0x63C0, 0x7460, 0x7CC0, 0x7440, 0x63C0, 0x6BE0, 0x6C20, 0x7460, 0x7CA0, 0x7460, 0x6C20, 0x63C0, // 0x20A0 (8352) pixels -0x63C0, 0x7440, 0x7CA0, 0x6C20, 0x63A0, 0x6C00, 0x7CC0, 0x8D40, 0x9560, 0x8D40, 0x7480, 0x63A0, 0x5B80, 0x63C0, 0x63C0, 0x6C00, // 0x20B0 (8368) pixels -0x7CA0, 0x84E0, 0x7460, 0x6C00, 0x7C80, 0x7CA0, 0x6C00, 0x7420, 0x8500, 0x84E0, 0x6C20, 0x6C20, 0x84E0, 0x84C0, 0x6C00, 0x6C20, // 0x20C0 (8384) pixels -0x7CA0, 0x7440, 0x63C0, 0x63C0, 0x6C00, 0x7C80, 0x7CA0, 0x6C00, 0x63A0, 0x63C0, 0x63C0, 0x63C0, 0x7440, 0x7C80, 0x6C00, 0x7420, // 0x20D0 (8400) pixels -0x84C0, 0x7480, 0x63C0, 0x63C0, 0x7420, 0x6BE0, 0x10C0, 0x0860, 0x5340, 0x6C20, 0x8D20, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, // 0x20E0 (8416) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x20F0 (8432) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2100 (8448) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x5340, 0x0000, 0x7420, 0x9560, 0x7CC0, 0x0000, 0x2980, 0x9560, 0x9580, 0x31E0, 0x0040, // 0x2110 (8464) pixels -0x8D40, 0x7CA0, 0x2140, 0x0000, 0x0000, 0x0840, 0x4AC0, 0x9560, 0x9580, 0x4AE0, 0x0000, 0x0000, 0x0860, 0x2980, 0x7C80, 0x9580, // 0x2120 (8480) pixels -0x63E0, 0x0000, 0x5B60, 0x9560, 0x6C00, 0x0000, 0x3A20, 0x84E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x5320, 0x8D40, 0x0000, 0x0000, // 0x2130 (8496) pixels -0x0020, 0x10C0, 0x5320, 0x9560, 0x9580, 0x4AE0, 0x0020, 0x0000, 0x0040, 0x5300, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2140 (8512) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2150 (8528) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, // 0x2160 (8544) pixels -0x8D20, 0x7C80, 0x6C20, 0x7CA0, 0x8D20, 0x7CC0, 0x6C00, 0x63C0, 0x63C0, 0x6C00, 0x7CA0, 0x8500, 0x7C80, 0x63E0, 0x63E0, 0x7440, // 0x2170 (8560) pixels -0x7460, 0x6BE0, 0x63C0, 0x6BE0, 0x6BE0, 0x6C20, 0x7CA0, 0x7460, 0x7420, 0x84C0, 0x8D60, 0x9560, 0x8D40, 0x7CA0, 0x6C20, 0x7C80, // 0x2180 (8576) pixels -0x8D20, 0x8D20, 0x7C80, 0x6C20, 0x7C80, 0x7C80, 0x6BE0, 0x63C0, 0x6BE0, 0x6BE0, 0x6C20, 0x7CA0, 0x7440, 0x6C00, 0x63C0, 0x6BE0, // 0x2190 (8592) pixels -0x7C80, 0x7C80, 0x6C00, 0x7460, 0x8500, 0x7CA0, 0x6C20, 0x7C80, 0x8D40, 0x9560, 0x8D60, 0x84C0, 0x6C20, 0x7440, 0x84E0, 0x7CA0, // 0x21A0 (8608) pixels -0x6C20, 0x7440, 0x7460, 0x6BE0, 0x63C0, 0x6BE0, 0x6BE0, 0x6C20, 0x84C0, 0x7CC0, 0x6C00, 0x63C0, 0x7440, 0x7CA0, 0x7460, 0x6BE0, // 0x21B0 (8624) pixels -0x63E0, 0x6C00, 0x7460, 0x8500, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x21C0 (8640) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D20, // 0x21D0 (8656) pixels -0x7C80, 0x7440, 0x7440, 0x7460, 0x7CA0, 0x8D20, 0x8D40, 0x8500, 0x7C80, 0x7440, 0x7460, 0x7CA0, 0x84E0, 0x7CC0, 0x7460, 0x7440, // 0x21E0 (8672) pixels -0x7C80, 0x84E0, 0x8D20, 0x84E0, 0x7460, 0x7460, 0x84E0, 0x8D40, 0x9560, 0x8D40, 0x84E0, 0x7460, 0x7440, 0x7460, 0x7CA0, 0x84E0, // 0x21F0 (8688) pixels -0x8D40, 0x8D40, 0x84E0, 0x7CA0, 0x84E0, 0x8500, 0x7CA0, 0x7CC0, 0x8D40, 0x8D20, 0x7CC0, 0x7CA0, 0x8D20, 0x8D20, 0x7CA0, 0x7CA0, // 0x2200 (8704) pixels -0x8D20, 0x8500, 0x7C80, 0x7440, 0x7460, 0x84C0, 0x8500, 0x84C0, 0x7460, 0x7460, 0x7480, 0x7C80, 0x84C0, 0x84E0, 0x7CA0, 0x7CC0, // 0x2210 (8720) pixels -0x8D20, 0x8500, 0x7C80, 0x7440, 0x5340, 0x0000, 0x0860, 0x4AE0, 0x63A0, 0x7C80, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2220 (8736) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2230 (8752) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2240 (8768) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x7C80, 0x0000, 0x4AA0, 0x8D40, 0x5340, 0x0000, 0x0040, 0x84E0, 0x8D40, 0x10A0, 0x2160, // 0x2250 (8784) pixels -0x84E0, 0x10A0, 0x0020, 0x42A0, 0x5320, 0x2160, 0x0000, 0x4AE0, 0x8D60, 0x4AE0, 0x0000, 0x4260, 0x4260, 0x0020, 0x1920, 0x8D40, // 0x2260 (8800) pixels -0x63C0, 0x0000, 0x5320, 0x7C80, 0x0860, 0x1920, 0x84C0, 0x7CA0, 0x0000, 0x2160, 0x5320, 0x5320, 0x7420, 0x84E0, 0x0000, 0x2120, // 0x2270 (8816) pixels -0x4AE0, 0x1900, 0x0000, 0x6C20, 0x7CA0, 0x0000, 0x2160, 0x5340, 0x3A40, 0x63A0, 0x8D20, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2280 (8832) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2290 (8848) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x22A0 (8864) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x22B0 (8880) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x22C0 (8896) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x22D0 (8912) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x22E0 (8928) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x22F0 (8944) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2300 (8960) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, // 0x2310 (8976) pixels -0x8D40, 0x8D20, 0x8D20, 0x8D40, 0x8D40, 0x9560, 0x9560, 0x9560, 0x8D40, 0x8D20, 0x8D20, 0x8D40, 0x8D60, 0x8D40, 0x8D20, 0x8D20, // 0x2320 (8992) pixels -0x8D40, 0x9560, 0x9560, 0x8D60, 0x8D40, 0x8D20, 0x8D40, 0x9560, 0x9580, 0x9560, 0x8D40, 0x8D20, 0x8D20, 0x8D40, 0x8D40, 0x9560, // 0x2330 (9008) pixels -0x9580, 0x9560, 0x8D60, 0x8D40, 0x8D60, 0x8D60, 0x8D40, 0x8D40, 0x9560, 0x9560, 0x8D40, 0x8D40, 0x9560, 0x9560, 0x8D40, 0x8D40, // 0x2340 (9024) pixels -0x9560, 0x9560, 0x8D40, 0x8D20, 0x8D20, 0x8D40, 0x9560, 0x8D40, 0x8D20, 0x8D20, 0x8D40, 0x8D40, 0x8D40, 0x8D60, 0x8D40, 0x8D40, // 0x2350 (9040) pixels -0x9560, 0x9560, 0x8D40, 0x8D20, 0x84E0, 0x7420, 0x6C20, 0x63C0, 0x6C20, 0x8500, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2360 (9056) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2370 (9072) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2380 (9088) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D20, 0x0880, 0x2140, 0x7CC0, 0x29C0, 0x18E0, 0x0000, 0x5B40, 0x7460, 0x0000, 0x3A20, // 0x2390 (9104) pixels -0x5300, 0x0000, 0x3200, 0x63E0, 0x63C0, 0x5B80, 0x0020, 0x10C0, 0x84E0, 0x42A0, 0x0000, 0x4AE0, 0x63A0, 0x10E0, 0x0860, 0x7CA0, // 0x23A0 (9120) pixels -0x5B80, 0x0000, 0x4260, 0x10E0, 0x0860, 0x63C0, 0x6C20, 0x6C20, 0x0000, 0x29A0, 0x63A0, 0x63E0, 0x7420, 0x7C80, 0x0000, 0x2160, // 0x23B0 (9136) pixels -0x5B80, 0x4260, 0x0000, 0x4AE0, 0x6C00, 0x0000, 0x29A0, 0x63A0, 0x63C0, 0x6C20, 0x84C0, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9580, // 0x23C0 (9152) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x23D0 (9168) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x23E0 (9184) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x23F0 (9200) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2400 (9216) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2410 (9232) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2420 (9248) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2430 (9264) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2440 (9280) pixels +0x4AE0, 0x5320, 0x5B80, 0x7420, 0x84C0, 0x8D20, 0x8D60, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x6C00, 0x0000, 0x0860, // 0x1DA0 (7584) pixels +0x6BE0, 0x8500, 0x8D40, 0x1900, 0x0000, 0x4280, 0x7460, 0x1900, 0x0000, 0x4280, 0x6C00, 0x0000, 0x0020, 0x5B60, 0x7460, 0x29C0, // 0x1DB0 (7600) pixels +0x0000, 0x42A0, 0x63C0, 0x1900, 0x0000, 0x4260, 0x7460, 0x0000, 0x0040, 0x63C0, 0x8500, 0x9560, 0x9580, 0x9560, 0x42A0, 0x0000, // 0x1DC0 (7616) pixels +0x2140, 0x5B60, 0x63E0, 0x4280, 0x0000, 0x18E0, 0x6C00, 0x10A0, 0x0000, 0x5B60, 0x6380, 0x0880, 0x0000, 0x5320, 0x4AC0, 0x5320, // 0x1DD0 (7632) pixels +0x5B60, 0x42A0, 0x0000, 0x0020, 0x7480, 0x1900, 0x0000, 0x4AE0, 0x7440, 0x2980, 0x0000, 0x4280, 0x7CA0, 0x8D40, 0x9580, 0x9560, // 0x1DE0 (7648) pixels +0x7460, 0x0000, 0x0840, 0x5300, 0x4280, 0x0000, 0x0000, 0x5340, 0x7420, 0x0000, 0x10A0, 0x6BE0, 0x4AE0, 0x0000, 0x0880, 0x63E0, // 0x1DF0 (7664) pixels +0x4AE0, 0x0000, 0x1920, 0x6C00, 0x7C80, 0x1900, 0x0000, 0x31C0, 0x5B80, 0x5B60, 0x3200, 0x5340, 0x84C0, 0x8D60, 0x9580, 0x9580, // 0x1E00 (7680) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D40, 0x2120, 0x0000, 0x0020, // 0x1E10 (7696) pixels +0x0020, 0x0000, 0x0000, 0x2980, 0x63C0, 0x42A0, 0x0000, 0x0000, 0x1900, 0x10C0, 0x0000, 0x4AE0, 0x1900, 0x10A0, 0x2140, 0x10C0, // 0x1E20 (7712) pixels +0x0000, 0x29A0, 0x7440, 0x2980, 0x0000, 0x1080, 0x2160, 0x8D40, 0x9560, 0x9580, 0x9560, 0x7460, 0x0000, 0x0000, 0x0000, 0x0000, // 0x1E30 (7728) pixels +0x0000, 0x0880, 0x4AC0, 0x63A0, 0x5B60, 0x0000, 0x1900, 0x6C00, 0x42A0, 0x0000, 0x29A0, 0x7440, 0x8500, 0x1080, 0x0000, 0x5B60, // 0x1E40 (7744) pixels +0x7CC0, 0x4280, 0x0000, 0x31E0, 0x6C00, 0x31C0, 0x0000, 0x0840, 0x2140, 0x0860, 0x5320, 0x5B80, 0x0000, 0x0000, 0x0860, 0x0000, // 0x1E50 (7760) pixels +0x0000, 0x2980, 0x6C20, 0x2140, 0x0000, 0x4AC0, 0x7C80, 0x1900, 0x0000, 0x10A0, 0x29C0, 0x8D40, 0x7CA0, 0x0860, 0x0000, 0x0840, // 0x1E60 (7776) pixels +0x5B60, 0x6C20, 0x8D20, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D60, 0x8D20, 0x84E0, 0x7C80, 0x7420, 0x6C00, // 0x1E70 (7792) pixels +0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, // 0x1E80 (7808) pixels +0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, // 0x1E90 (7824) pixels +0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, // 0x1EA0 (7840) pixels +0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, // 0x1EB0 (7856) pixels +0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, // 0x1EC0 (7872) pixels +0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, 0x6BE0, // 0x1ED0 (7888) pixels +0x6C00, 0x6C20, 0x7480, 0x84C0, 0x8D20, 0x8D40, 0x9560, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x6C00, 0x0000, 0x0860, // 0x1EE0 (7904) pixels +0x6BE0, 0x8500, 0x8D40, 0x63A0, 0x0840, 0x0000, 0x0000, 0x0000, 0x2980, 0x5B80, 0x7440, 0x1920, 0x0000, 0x0000, 0x2160, 0x5340, // 0x1EF0 (7920) pixels +0x0000, 0x0000, 0x0020, 0x0860, 0x0000, 0x4260, 0x7460, 0x0000, 0x0040, 0x63C0, 0x8500, 0x9560, 0x9580, 0x9560, 0x42A0, 0x0000, // 0x1F00 (7936) pixels +0x2140, 0x6C00, 0x7CC0, 0x5300, 0x0000, 0x18E0, 0x6BE0, 0x3A00, 0x0000, 0x0000, 0x0040, 0x0040, 0x0000, 0x5320, 0x31C0, 0x0000, // 0x1F10 (7952) pixels +0x0020, 0x0000, 0x0000, 0x31C0, 0x6C00, 0x18E0, 0x0000, 0x5300, 0x7CA0, 0x2980, 0x0000, 0x42A0, 0x7CA0, 0x8D40, 0x9580, 0x9560, // 0x1F20 (7968) pixels +0x7460, 0x0000, 0x0840, 0x5B60, 0x63C0, 0x29C0, 0x0000, 0x0860, 0x7440, 0x10C0, 0x0000, 0x0000, 0x0880, 0x0000, 0x1080, 0x63E0, // 0x1F30 (7984) pixels +0x6C00, 0x0020, 0x0000, 0x0000, 0x5320, 0x63A0, 0x0880, 0x0000, 0x0000, 0x0000, 0x0000, 0x5B60, 0x84E0, 0x8D60, 0x9580, 0x9580, // 0x1F40 (8000) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D40, 0x4AC0, 0x29A0, 0x2980, // 0x1F50 (8016) pixels +0x31E0, 0x3A60, 0x4AE0, 0x5B40, 0x63C0, 0x7440, 0x5300, 0x29A0, 0x2160, 0x29A0, 0x4280, 0x6C20, 0x5B60, 0x3200, 0x2160, 0x2980, // 0x1F60 (8032) pixels +0x3A20, 0x5B40, 0x6C00, 0x6C00, 0x31C0, 0x2160, 0x3A20, 0x8500, 0x9560, 0x9580, 0x9560, 0x7CC0, 0x3200, 0x2980, 0x29A0, 0x3A60, // 0x1F70 (8048) pixels +0x5300, 0x63A0, 0x5B60, 0x6C00, 0x6C20, 0x31E0, 0x3A20, 0x6C00, 0x5B80, 0x31E0, 0x42A0, 0x7440, 0x8500, 0x4260, 0x29A0, 0x63A0, // 0x1F80 (8064) pixels +0x84C0, 0x63A0, 0x31C0, 0x4AA0, 0x6C20, 0x7440, 0x4280, 0x2980, 0x2980, 0x3A40, 0x7440, 0x7C80, 0x4260, 0x2120, 0x31E0, 0x5320, // 0x1F90 (8080) pixels +0x29C0, 0x4260, 0x6C20, 0x4AC0, 0x29C0, 0x5340, 0x7C80, 0x6BE0, 0x29A0, 0x2160, 0x4280, 0x8500, 0x84E0, 0x2980, 0x0000, 0x2980, // 0x1FA0 (8096) pixels +0x5B80, 0x7C80, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D60, 0x8D40, 0x8500, 0x84E0, 0x84C0, // 0x1FB0 (8112) pixels +0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, // 0x1FC0 (8128) pixels +0x7CA0, 0x6C20, 0x6C20, 0x7CA0, 0x7CC0, 0x7C80, 0x6C20, 0x7440, 0x7CC0, 0x7CC0, 0x7460, 0x6C20, 0x7460, 0x7CC0, 0x7CC0, 0x7CA0, // 0x1FD0 (8144) pixels +0x63C0, 0x5B40, 0x63A0, 0x7CA0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7420, 0x6C20, 0x6C20, 0x6C20, 0x7460, 0x7CC0, 0x7CC0, 0x7CC0, 0x7C80, // 0x1FE0 (8160) pixels +0x6C20, 0x7440, 0x7CC0, 0x7CC0, 0x7460, 0x6C20, 0x7420, 0x7CC0, 0x6C20, 0x6C20, 0x6C20, 0x6C20, 0x6C20, 0x7440, 0x7CC0, 0x7460, // 0x1FF0 (8176) pixels +0x6C20, 0x6C20, 0x6C20, 0x7440, 0x7CA0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7C80, 0x63C0, 0x5B80, 0x6C00, 0x7CC0, 0x7CC0, 0x7CC0, // 0x2000 (8192) pixels +0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, 0x7CC0, // 0x2010 (8208) pixels +0x84C0, 0x84E0, 0x8500, 0x8D20, 0x8D40, 0x9560, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x84E0, 0x5B60, 0x4AC0, // 0x2020 (8224) pixels +0x6BE0, 0x8500, 0x8D40, 0x7CC0, 0x5B80, 0x4280, 0x42A0, 0x5B60, 0x63A0, 0x63C0, 0x7C80, 0x7440, 0x4AA0, 0x4260, 0x63A0, 0x7460, // 0x2030 (8240) pixels +0x5320, 0x3A40, 0x5340, 0x5B60, 0x4AC0, 0x5B60, 0x7460, 0x5B60, 0x4AC0, 0x63E0, 0x8500, 0x9560, 0x9580, 0x9560, 0x7480, 0x5320, // 0x2040 (8256) pixels +0x5300, 0x7420, 0x8500, 0x7CA0, 0x5B40, 0x4AE0, 0x6C00, 0x7460, 0x4AC0, 0x3A40, 0x5B80, 0x5340, 0x4AA0, 0x5B80, 0x7460, 0x5B80, // 0x2050 (8272) pixels +0x4AC0, 0x4AC0, 0x5320, 0x5B40, 0x6BE0, 0x63A0, 0x4AE0, 0x63A0, 0x7CA0, 0x6C00, 0x5300, 0x5B80, 0x7CA0, 0x8D40, 0x9580, 0x9560, // 0x2060 (8288) pixels +0x8500, 0x5B60, 0x4AC0, 0x63C0, 0x7C80, 0x6C20, 0x4AC0, 0x4AE0, 0x6BE0, 0x6C00, 0x4260, 0x4280, 0x63C0, 0x5300, 0x4AC0, 0x6BE0, // 0x2070 (8304) pixels +0x7CA0, 0x63E0, 0x4280, 0x4AC0, 0x7440, 0x7480, 0x63A0, 0x4AA0, 0x42A0, 0x4AE0, 0x63C0, 0x7460, 0x84E0, 0x9560, 0x9580, 0x9580, // 0x2080 (8320) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D60, 0x84C0, 0x63C0, 0x5B60, // 0x2090 (8336) pixels +0x5B80, 0x63A0, 0x6380, 0x63C0, 0x7460, 0x84C0, 0x7440, 0x63A0, 0x63A0, 0x63E0, 0x6BE0, 0x6C20, 0x7460, 0x6C20, 0x6BE0, 0x63C0, // 0x20A0 (8352) pixels +0x6380, 0x63C0, 0x7460, 0x7CA0, 0x6C00, 0x5B80, 0x6BE0, 0x7C80, 0x8D40, 0x9580, 0x9560, 0x8D40, 0x7480, 0x5B80, 0x5B60, 0x6380, // 0x20B0 (8368) pixels +0x63A0, 0x63A0, 0x6C00, 0x7CC0, 0x8500, 0x7460, 0x63C0, 0x7420, 0x7CA0, 0x7440, 0x63E0, 0x7C80, 0x8D20, 0x7CA0, 0x63C0, 0x6C00, // 0x20C0 (8384) pixels +0x84E0, 0x84E0, 0x7420, 0x63E0, 0x7460, 0x7CA0, 0x6C00, 0x63A0, 0x63C0, 0x6BE0, 0x6C20, 0x7C80, 0x7440, 0x5B80, 0x5B80, 0x63A0, // 0x20D0 (8400) pixels +0x5B80, 0x63A0, 0x7440, 0x7C80, 0x6BE0, 0x6BE0, 0x7CA0, 0x7CA0, 0x6BE0, 0x5B80, 0x6C00, 0x7CA0, 0x84C0, 0x0840, 0x0000, 0x4AC0, // 0x20E0 (8416) pixels +0x6BE0, 0x84E0, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D60, 0x8D40, 0x8D40, 0x8D20, // 0x20F0 (8432) pixels +0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, // 0x2100 (8448) pixels +0x8D20, 0x0860, 0x0000, 0x6C00, 0x8D20, 0x5300, 0x0000, 0x0040, 0x84E0, 0x8D20, 0x31C0, 0x0000, 0x4AE0, 0x8D20, 0x6C00, 0x10A0, // 0x2110 (8464) pixels +0x0000, 0x0000, 0x0000, 0x0880, 0x63C0, 0x8D20, 0x8D20, 0x10A0, 0x0000, 0x0000, 0x0000, 0x0000, 0x1900, 0x7C80, 0x8D20, 0x5340, // 0x2120 (8480) pixels +0x0000, 0x2980, 0x8520, 0x7CC0, 0x10A0, 0x0000, 0x5300, 0x8520, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18E0, 0x8520, 0x3A40, // 0x2130 (8496) pixels +0x0000, 0x0000, 0x0000, 0x0000, 0x0860, 0x5B80, 0x8D20, 0x8D20, 0x4AA0, 0x0040, 0x0000, 0x0000, 0x0000, 0x0880, 0x8500, 0x8D20, // 0x2140 (8512) pixels +0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, 0x8D20, // 0x2150 (8528) pixels +0x8D20, 0x8D40, 0x8D40, 0x8D60, 0x9560, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D20, 0x7C80, 0x6BE0, // 0x2160 (8544) pixels +0x7440, 0x8D20, 0x9560, 0x8D20, 0x7460, 0x63E0, 0x63A0, 0x63A0, 0x63C0, 0x7460, 0x8500, 0x84C0, 0x6C00, 0x63A0, 0x6BE0, 0x7440, // 0x2170 (8560) pixels +0x6C20, 0x63A0, 0x63A0, 0x63C0, 0x63C0, 0x6C00, 0x7CA0, 0x7C80, 0x6BE0, 0x7420, 0x8D20, 0x9560, 0x9580, 0x9560, 0x8500, 0x7440, // 0x2180 (8576) pixels +0x6BE0, 0x7C80, 0x8D20, 0x8D20, 0x7460, 0x6BE0, 0x7440, 0x7CA0, 0x6C20, 0x63A0, 0x63C0, 0x63C0, 0x63A0, 0x6C00, 0x7C80, 0x7440, // 0x2190 (8592) pixels +0x6BE0, 0x63C0, 0x63A0, 0x63E0, 0x7460, 0x7CA0, 0x6C00, 0x6C20, 0x84C0, 0x84C0, 0x6C20, 0x6C00, 0x84C0, 0x8D60, 0x9580, 0x9560, // 0x21A0 (8608) pixels +0x8D40, 0x7C80, 0x63E0, 0x7420, 0x8500, 0x84E0, 0x6C20, 0x63C0, 0x6C20, 0x7460, 0x63E0, 0x63A0, 0x63C0, 0x63C0, 0x63A0, 0x7440, // 0x21B0 (8624) pixels +0x84E0, 0x7C80, 0x63C0, 0x63A0, 0x6C20, 0x7CA0, 0x7460, 0x6BE0, 0x63C0, 0x63C0, 0x6BE0, 0x7440, 0x8500, 0x9560, 0x9580, 0x9580, // 0x21C0 (8640) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D20, 0x7C80, 0x7440, // 0x21D0 (8656) pixels +0x7420, 0x7440, 0x7460, 0x7CC0, 0x8D20, 0x8D40, 0x8500, 0x7CA0, 0x7440, 0x7420, 0x7440, 0x7CA0, 0x84E0, 0x7CA0, 0x7440, 0x7440, // 0x21E0 (8672) pixels +0x7440, 0x7CA0, 0x8500, 0x8D20, 0x7CC0, 0x7440, 0x7440, 0x7CC0, 0x8D40, 0x9580, 0x9580, 0x8D60, 0x84E0, 0x7440, 0x6C20, 0x7440, // 0x21F0 (8688) pixels +0x7460, 0x7CA0, 0x8500, 0x8D40, 0x8D40, 0x84E0, 0x7C80, 0x7CC0, 0x8500, 0x84C0, 0x7C80, 0x84E0, 0x8D40, 0x8500, 0x7C80, 0x7CA0, // 0x2200 (8704) pixels +0x8D20, 0x8D20, 0x7CC0, 0x7C80, 0x84E0, 0x8D20, 0x84E0, 0x7C80, 0x7440, 0x7440, 0x7C80, 0x84E0, 0x84E0, 0x7460, 0x7420, 0x7440, // 0x2210 (8720) pixels +0x7460, 0x7480, 0x84C0, 0x84E0, 0x7CA0, 0x7CA0, 0x8500, 0x8D20, 0x7CC0, 0x7440, 0x7460, 0x84C0, 0x6BE0, 0x2120, 0x2980, 0x5B60, // 0x2220 (8736) pixels +0x7460, 0x8D20, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, 0x9560, 0x8D60, // 0x2230 (8752) pixels +0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, // 0x2240 (8768) pixels +0x8D40, 0x29C0, 0x0000, 0x4AA0, 0x8500, 0x29A0, 0x0000, 0x0000, 0x63A0, 0x8D20, 0x10A0, 0x0000, 0x6BE0, 0x7CA0, 0x0860, 0x0000, // 0x2250 (8784) pixels +0x31E0, 0x5B40, 0x3200, 0x0000, 0x0040, 0x7C80, 0x8D40, 0x10A0, 0x0000, 0x4260, 0x4AE0, 0x18E0, 0x0000, 0x29A0, 0x8D20, 0x5340, // 0x2260 (8800) pixels +0x0000, 0x2160, 0x84C0, 0x2160, 0x0000, 0x3A00, 0x7CA0, 0x84E0, 0x0000, 0x0000, 0x4260, 0x42A0, 0x4AA0, 0x5300, 0x84E0, 0x3A20, // 0x2270 (8816) pixels +0x0000, 0x2980, 0x4AE0, 0x29C0, 0x0000, 0x0040, 0x8500, 0x6BE0, 0x0000, 0x0880, 0x5340, 0x5B40, 0x4260, 0x0880, 0x7CC0, 0x8D40, // 0x2280 (8832) pixels +0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, 0x8D60, // 0x2290 (8848) pixels +0x8D60, 0x9560, 0x9560, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D60, 0x8D20, 0x84C0, // 0x22A0 (8864) pixels +0x8500, 0x8D60, 0x9560, 0x9560, 0x8D20, 0x84C0, 0x7C80, 0x7C80, 0x84C0, 0x8D20, 0x9560, 0x8D40, 0x84E0, 0x7CA0, 0x7CA0, 0x84E0, // 0x22B0 (8880) pixels +0x84E0, 0x7CA0, 0x7CA0, 0x7CC0, 0x7CC0, 0x84E0, 0x8D20, 0x8D20, 0x84C0, 0x84E0, 0x8D60, 0x9580, 0x9580, 0x9560, 0x8D40, 0x8500, // 0x22C0 (8896) pixels +0x84E0, 0x8D20, 0x8D60, 0x8D40, 0x8500, 0x84E0, 0x8500, 0x8D40, 0x8500, 0x7CA0, 0x7CA0, 0x7CC0, 0x7CC0, 0x84E0, 0x8D20, 0x84E0, // 0x22D0 (8912) pixels +0x7CA0, 0x7C80, 0x7CA0, 0x84E0, 0x8D20, 0x8D20, 0x84E0, 0x84E0, 0x8D40, 0x8D40, 0x84E0, 0x84E0, 0x8D40, 0x9560, 0x9580, 0x9580, // 0x22E0 (8928) pixels +0x9560, 0x8D20, 0x84C0, 0x84E0, 0x8D40, 0x8D40, 0x8500, 0x7CC0, 0x84E0, 0x8500, 0x84C0, 0x7CA0, 0x7CA0, 0x7CC0, 0x7CC0, 0x8500, // 0x22F0 (8944) pixels +0x8D40, 0x8D20, 0x84C0, 0x7CA0, 0x84C0, 0x8D20, 0x8D20, 0x84E0, 0x7CA0, 0x7C80, 0x7CA0, 0x84E0, 0x8D40, 0x9560, 0x9580, 0x9580, // 0x2300 (8960) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D40, 0x8D20, // 0x2310 (8976) pixels +0x8D20, 0x8D20, 0x8D40, 0x8D60, 0x9560, 0x9560, 0x9560, 0x8D40, 0x8D20, 0x8D20, 0x8D20, 0x8D40, 0x8D60, 0x8D40, 0x8D20, 0x8D20, // 0x2320 (8992) pixels +0x8D20, 0x8D40, 0x9560, 0x9560, 0x8D40, 0x8D20, 0x8D20, 0x8D40, 0x9560, 0x9580, 0x9580, 0x9560, 0x8D40, 0x8D20, 0x8D20, 0x8D20, // 0x2330 (9008) pixels +0x8D40, 0x8D40, 0x9560, 0x9580, 0x9560, 0x8D60, 0x8D40, 0x8D40, 0x8D60, 0x8D40, 0x8D40, 0x8D60, 0x9560, 0x8D60, 0x8D40, 0x8D40, // 0x2340 (9024) pixels +0x9560, 0x9560, 0x8D40, 0x8D40, 0x8D60, 0x9560, 0x9560, 0x8D40, 0x8D20, 0x8D20, 0x8D40, 0x8D60, 0x8D60, 0x8D40, 0x8D20, 0x8D20, // 0x2350 (9040) pixels +0x8D40, 0x8D40, 0x8D40, 0x8D60, 0x8D40, 0x8D40, 0x8D60, 0x9560, 0x8D40, 0x8D20, 0x8D20, 0x8D40, 0x8D40, 0x7C80, 0x63A0, 0x63E0, // 0x2360 (9056) pixels +0x84C0, 0x8D60, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, // 0x2370 (9072) pixels +0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x2380 (9088) pixels +0x8D40, 0x4AE0, 0x0000, 0x2160, 0x7C80, 0x0840, 0x0020, 0x0000, 0x3200, 0x7440, 0x0000, 0x0860, 0x6BE0, 0x4AC0, 0x0000, 0x10C0, // 0x2390 (9104) pixels +0x63A0, 0x63A0, 0x63A0, 0x18E0, 0x0000, 0x4260, 0x8500, 0x10A0, 0x0000, 0x4AC0, 0x5B80, 0x31E0, 0x0000, 0x2140, 0x7CA0, 0x5320, // 0x23A0 (9120) pixels +0x0000, 0x1920, 0x31E0, 0x0000, 0x2140, 0x63C0, 0x6C00, 0x7CA0, 0x0000, 0x0000, 0x4280, 0x4AE0, 0x4AE0, 0x5B80, 0x7460, 0x3200, // 0x23B0 (9136) pixels +0x0000, 0x31C0, 0x5B80, 0x5300, 0x0000, 0x0000, 0x7460, 0x5300, 0x0000, 0x0860, 0x3A40, 0x5B40, 0x63A0, 0x63A0, 0x7440, 0x8500, // 0x23C0 (9152) pixels +0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, // 0x23D0 (9168) pixels +0x9560, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, 0x8D60, // 0x23E0 (9184) pixels +0x9560, 0x9560, 0x9580, 0x9580, 0x9560, 0x9560, 0x8D40, 0x8D40, 0x8D60, 0x9560, 0x9580, 0x9560, 0x9560, 0x8D40, 0x8D40, 0x9560, // 0x23F0 (9200) pixels +0x9560, 0x8D60, 0x8D40, 0x8D60, 0x8D60, 0x9560, 0x9560, 0x9560, 0x8D60, 0x9560, 0x9560, 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, // 0x2400 (9216) pixels +0x9560, 0x9560, 0x9580, 0x9560, 0x9560, 0x8D60, 0x9560, 0x9560, 0x9560, 0x8D40, 0x8D40, 0x8D60, 0x8D60, 0x9560, 0x9560, 0x9560, // 0x2410 (9232) pixels +0x8D40, 0x8D40, 0x8D40, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9580, 0x9580, 0x9580, // 0x2420 (9248) pixels +0x9580, 0x9560, 0x8D60, 0x9560, 0x9560, 0x9560, 0x9560, 0x8D60, 0x8D60, 0x9560, 0x8D60, 0x8D40, 0x8D40, 0x8D60, 0x8D60, 0x9560, // 0x2430 (9264) pixels +0x9560, 0x9560, 0x8D60, 0x8D40, 0x8D60, 0x9560, 0x9560, 0x9560, 0x8D40, 0x8D40, 0x8D40, 0x9560, 0x9560, 0x9580, 0x9580, 0x9580, // 0x2440 (9280) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2450 (9296) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2460 (9312) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2470 (9328) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2480 (9344) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2490 (9360) pixels -0x9580, 0x9580, 0x9560, 0x9560, 0x8D40, 0x7CA0, 0x6C00, 0x6C20, 0x7CC0, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x24A0 (9376) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x24B0 (9392) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D40, 0x7CC0, 0x7440, 0x7C80, // 0x24A0 (9376) pixels +0x8D20, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x24B0 (9392) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x24C0 (9408) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D20, 0x29A0, 0x0840, 0x7440, 0x0860, 0x3A00, 0x0840, 0x31E0, 0x5300, 0x0000, 0x4AE0, // 0x24D0 (9424) pixels -0x3A40, 0x0000, 0x4280, 0x63A0, 0x6C20, 0x6C20, 0x10C0, 0x0000, 0x7440, 0x4280, 0x0000, 0x2140, 0x2140, 0x0000, 0x2980, 0x6C20, // 0x24E0 (9440) pixels -0x5B40, 0x0000, 0x0860, 0x0000, 0x3A40, 0x63C0, 0x7420, 0x7440, 0x0000, 0x0000, 0x0040, 0x0040, 0x63A0, 0x7CA0, 0x0000, 0x1080, // 0x24F0 (9456) pixels -0x2980, 0x0860, 0x0840, 0x5B80, 0x7C80, 0x2120, 0x0000, 0x0880, 0x4AE0, 0x7C80, 0x8500, 0x8D60, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2500 (9472) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2510 (9488) pixels +0x8D60, 0x7440, 0x0000, 0x0860, 0x5B40, 0x0000, 0x2980, 0x0000, 0x10E0, 0x4AE0, 0x0000, 0x2140, 0x63A0, 0x31E0, 0x0000, 0x2160, // 0x24D0 (9424) pixels +0x5B60, 0x6C00, 0x7440, 0x31C0, 0x0000, 0x2160, 0x7CA0, 0x1080, 0x0000, 0x2140, 0x29A0, 0x0040, 0x0000, 0x4260, 0x7440, 0x5300, // 0x24E0 (9440) pixels +0x0000, 0x0840, 0x0000, 0x0020, 0x5B60, 0x63A0, 0x7460, 0x84E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3200, 0x7CA0, 0x3200, // 0x24F0 (9456) pixels +0x0000, 0x10C0, 0x29A0, 0x10A0, 0x0000, 0x2160, 0x6BE0, 0x6C20, 0x0840, 0x0000, 0x0000, 0x0000, 0x10C0, 0x4AC0, 0x7460, 0x8D20, // 0x2500 (9472) pixels +0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2510 (9488) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2520 (9504) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2530 (9520) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2540 (9536) pixels @@ -2012,13 +2012,13 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x25B0 (9648) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x25C0 (9664) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x25D0 (9680) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x25E0 (9696) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x25F0 (9712) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D40, 0x8D20, 0x8D40, // 0x25E0 (9696) pixels +0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x25F0 (9712) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2600 (9728) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D40, 0x4AE0, 0x0000, 0x4AC0, 0x0000, 0x4AE0, 0x1920, 0x18E0, 0x31C0, 0x0040, 0x63A0, // 0x2610 (9744) pixels -0x3A40, 0x0000, 0x3A60, 0x7420, 0x84E0, 0x8500, 0x10E0, 0x0020, 0x6BE0, 0x4260, 0x0000, 0x0860, 0x0000, 0x1900, 0x5B80, 0x6C00, // 0x2620 (9760) pixels -0x5340, 0x0000, 0x0860, 0x0840, 0x0860, 0x63C0, 0x7CC0, 0x7C80, 0x0000, 0x10C0, 0x3200, 0x3A40, 0x7440, 0x84C0, 0x0000, 0x0020, // 0x2630 (9776) pixels -0x0840, 0x0000, 0x5300, 0x63C0, 0x7460, 0x7440, 0x3A20, 0x0860, 0x0000, 0x5320, 0x8D40, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2640 (9792) pixels +0x9560, 0x8500, 0x10A0, 0x0000, 0x29A0, 0x0000, 0x4280, 0x10C0, 0x0000, 0x2980, 0x0000, 0x3A20, 0x63C0, 0x3A00, 0x0000, 0x2120, // 0x2610 (9744) pixels +0x63E0, 0x84C0, 0x8500, 0x31E0, 0x0000, 0x2160, 0x7440, 0x0880, 0x0000, 0x0020, 0x0000, 0x0000, 0x3200, 0x5B60, 0x7420, 0x4AE0, // 0x2620 (9760) pixels +0x0000, 0x0000, 0x0840, 0x0000, 0x2980, 0x6C20, 0x8500, 0x8D20, 0x0000, 0x0000, 0x31E0, 0x4280, 0x4AC0, 0x63A0, 0x84C0, 0x3200, // 0x2630 (9776) pixels +0x0000, 0x0020, 0x0020, 0x0000, 0x1900, 0x5340, 0x63E0, 0x7CA0, 0x63A0, 0x2980, 0x10A0, 0x0000, 0x0000, 0x0000, 0x6C20, 0x8D40, // 0x2640 (9792) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2650 (9808) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2660 (9824) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2670 (9840) pixels @@ -2035,11 +2035,11 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2720 (10016) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2730 (10032) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2740 (10048) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D60, 0x7420, 0x0000, 0x1900, 0x0020, 0x63A0, 0x3A20, 0x0040, 0x10C0, 0x1920, 0x63C0, // 0x2750 (10064) pixels -0x5340, 0x0000, 0x2160, 0x7C80, 0x8D40, 0x84C0, 0x0020, 0x10C0, 0x63C0, 0x4260, 0x0000, 0x42A0, 0x31C0, 0x0000, 0x4AC0, 0x7440, // 0x2760 (10080) pixels -0x5B60, 0x0000, 0x3200, 0x3A00, 0x0000, 0x31E0, 0x8500, 0x7CA0, 0x0000, 0x2160, 0x5B40, 0x63C0, 0x7440, 0x7CA0, 0x0000, 0x2140, // 0x2770 (10096) pixels -0x4AE0, 0x0020, 0x2140, 0x6C00, 0x84C0, 0x7CC0, 0x6C00, 0x5B60, 0x0020, 0x2140, 0x8D20, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2780 (10112) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2790 (10128) pixels +0x9560, 0x8D20, 0x31C0, 0x0000, 0x0000, 0x0020, 0x5B60, 0x31C0, 0x0000, 0x0000, 0x0000, 0x5320, 0x6C20, 0x5320, 0x0000, 0x0840, // 0x2750 (10064) pixels +0x6BE0, 0x8D20, 0x8D20, 0x10A0, 0x0000, 0x3A20, 0x6C00, 0x0880, 0x0000, 0x4280, 0x3200, 0x0000, 0x0840, 0x5B40, 0x7CA0, 0x5300, // 0x2760 (10080) pixels +0x0000, 0x10E0, 0x3A40, 0x0000, 0x0000, 0x5300, 0x8D40, 0x8D40, 0x0000, 0x0000, 0x4AC0, 0x5B60, 0x63C0, 0x6C00, 0x7CA0, 0x3200, // 0x2770 (10096) pixels +0x0000, 0x29A0, 0x4AC0, 0x0020, 0x0000, 0x4260, 0x7440, 0x63A0, 0x6BE0, 0x63A0, 0x5B40, 0x5300, 0x0840, 0x0000, 0x5340, 0x8D20, // 0x2780 (10112) pixels +0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2790 (10128) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x27A0 (10144) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x27B0 (10160) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x27C0 (10176) pixels @@ -2055,11 +2055,11 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2860 (10336) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2870 (10352) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2880 (10368) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8500, 0x0880, 0x0000, 0x1900, 0x63A0, 0x5B80, 0x0000, 0x0000, 0x31E0, 0x6BE0, // 0x2890 (10384) pixels -0x7460, 0x18E0, 0x0000, 0x29A0, 0x42A0, 0x10C0, 0x0000, 0x4260, 0x63C0, 0x4260, 0x0000, 0x42A0, 0x5B40, 0x0880, 0x0880, 0x7C80, // 0x28A0 (10400) pixels -0x5B60, 0x0000, 0x3A00, 0x5B40, 0x1900, 0x0000, 0x6BE0, 0x7CA0, 0x0000, 0x10A0, 0x29A0, 0x31E0, 0x5B80, 0x7CC0, 0x0000, 0x2140, // 0x28B0 (10416) pixels -0x5340, 0x31E0, 0x0000, 0x4AE0, 0x5B40, 0x2160, 0x4260, 0x31E0, 0x0000, 0x29A0, 0x7C80, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9580, // 0x28C0 (10432) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x28D0 (10448) pixels +0x9580, 0x8D40, 0x5320, 0x0000, 0x0000, 0x1900, 0x5B80, 0x5320, 0x0000, 0x0000, 0x1080, 0x5B80, 0x7460, 0x7CA0, 0x10E0, 0x0000, // 0x2890 (10384) pixels +0x10A0, 0x3A40, 0x1900, 0x0000, 0x10A0, 0x5B40, 0x6C20, 0x0880, 0x0000, 0x4280, 0x5B40, 0x1900, 0x0000, 0x18E0, 0x7CC0, 0x5320, // 0x28A0 (10400) pixels +0x0000, 0x18E0, 0x5300, 0x31C0, 0x0000, 0x0040, 0x7440, 0x8D20, 0x0000, 0x0000, 0x1900, 0x2140, 0x2160, 0x3A20, 0x84E0, 0x3200, // 0x28B0 (10416) pixels +0x0000, 0x29A0, 0x5340, 0x3200, 0x0000, 0x0020, 0x6C00, 0x42A0, 0x0000, 0x2140, 0x31E0, 0x2160, 0x0000, 0x0840, 0x6380, 0x84E0, // 0x28C0 (10432) pixels +0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x28D0 (10448) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x28E0 (10464) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x28F0 (10480) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2900 (10496) pixels @@ -2075,11 +2075,11 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x29A0 (10656) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x29B0 (10672) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x29C0 (10688) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x8D20, 0x31E0, 0x0860, 0x31E0, 0x63E0, 0x7480, 0x18E0, 0x0860, 0x4AC0, 0x6C20, // 0x29D0 (10704) pixels -0x7CC0, 0x6C00, 0x2980, 0x0880, 0x0860, 0x1900, 0x4AC0, 0x6380, 0x6C00, 0x4AC0, 0x0880, 0x4AE0, 0x6C00, 0x4AE0, 0x0880, 0x4260, // 0x29E0 (10720) pixels -0x5B80, 0x0880, 0x4260, 0x6BE0, 0x5B60, 0x0880, 0x2980, 0x7460, 0x0880, 0x0860, 0x0880, 0x1080, 0x5300, 0x84E0, 0x0880, 0x29A0, // 0x29F0 (10736) pixels -0x63C0, 0x6BE0, 0x1900, 0x18E0, 0x63A0, 0x1920, 0x0860, 0x0880, 0x29A0, 0x5B60, 0x7440, 0x8D20, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2A00 (10752) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2A10 (10768) pixels +0x9580, 0x8D60, 0x7C80, 0x0880, 0x0860, 0x31E0, 0x63C0, 0x7440, 0x10A0, 0x0860, 0x2980, 0x63A0, 0x7CC0, 0x8500, 0x6C00, 0x2160, // 0x29D0 (10704) pixels +0x0860, 0x0000, 0x0860, 0x29A0, 0x5320, 0x63A0, 0x7460, 0x1900, 0x0860, 0x4AE0, 0x6C00, 0x6380, 0x10A0, 0x0880, 0x4280, 0x5B40, // 0x29E0 (10720) pixels +0x0880, 0x2140, 0x6380, 0x63E0, 0x2140, 0x0860, 0x2160, 0x84E0, 0x10A0, 0x0860, 0x0860, 0x0880, 0x10A0, 0x2160, 0x84E0, 0x4260, // 0x29F0 (10736) pixels +0x0880, 0x31E0, 0x63E0, 0x6C00, 0x2160, 0x0860, 0x2140, 0x63A0, 0x2160, 0x0880, 0x0020, 0x0860, 0x2140, 0x4AC0, 0x63A0, 0x7CC0, // 0x2A00 (10752) pixels +0x8D60, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2A10 (10768) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2A20 (10784) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2A30 (10800) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2A40 (10816) pixels @@ -2095,11 +2095,11 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2AE0 (10976) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2AF0 (10992) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2B00 (11008) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x8D40, 0x7CA0, 0x63A0, 0x5B60, 0x6C20, 0x84C0, 0x7460, 0x5B60, 0x5B80, 0x7C80, // 0x2B10 (11024) pixels -0x8D20, 0x7CC0, 0x6BE0, 0x63A0, 0x6BE0, 0x6BE0, 0x63A0, 0x63E0, 0x7C80, 0x7CC0, 0x6C20, 0x6BE0, 0x7C80, 0x7C80, 0x6BE0, 0x6C00, // 0x2B20 (11040) pixels -0x7C80, 0x7420, 0x63E0, 0x7460, 0x7C80, 0x6BE0, 0x6BE0, 0x7C80, 0x7440, 0x5B80, 0x6380, 0x6C00, 0x7460, 0x7CC0, 0x7460, 0x63C0, // 0x2B30 (11056) pixels -0x6C20, 0x7CA0, 0x6C20, 0x63E0, 0x7440, 0x7460, 0x6C20, 0x6C00, 0x63C0, 0x63C0, 0x7C80, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2B40 (11072) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2B50 (11088) pixels +0x9580, 0x9560, 0x8500, 0x6C20, 0x5340, 0x5B40, 0x6C20, 0x84C0, 0x7440, 0x5B40, 0x5340, 0x6C00, 0x8500, 0x8D40, 0x7CC0, 0x63E0, // 0x2B10 (11024) pixels +0x5B80, 0x63A0, 0x63C0, 0x6380, 0x5B80, 0x6C20, 0x84E0, 0x7C80, 0x63A0, 0x63A0, 0x7C80, 0x7CA0, 0x63E0, 0x5B80, 0x6C00, 0x7C80, // 0x2B20 (11040) pixels +0x6C00, 0x5B80, 0x6C00, 0x7C80, 0x6C00, 0x5B80, 0x63E0, 0x7CA0, 0x7460, 0x5B60, 0x5340, 0x63A0, 0x6BE0, 0x6C20, 0x7C80, 0x7CA0, // 0x2B30 (11056) pixels +0x6BE0, 0x63A0, 0x7440, 0x7CA0, 0x6C00, 0x5B80, 0x63C0, 0x7440, 0x7420, 0x63C0, 0x63E0, 0x6BE0, 0x63A0, 0x5B80, 0x6C00, 0x8500, // 0x2B40 (11072) pixels +0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2B50 (11088) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2B60 (11104) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2B70 (11120) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2B80 (11136) pixels @@ -2115,10 +2115,10 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2C20 (11296) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2C30 (11312) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2C40 (11328) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2C50 (11344) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2C60 (11360) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2C70 (11376) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2C80 (11392) pixels +0x9580, 0x9580, 0x8D40, 0x7CA0, 0x6C00, 0x6C00, 0x7CA0, 0x8D20, 0x7CC0, 0x6C00, 0x6C00, 0x7CA0, 0x8D40, 0x9560, 0x8D40, 0x7CA0, // 0x2C50 (11344) pixels +0x6C20, 0x63C0, 0x63C0, 0x6BE0, 0x7440, 0x84E0, 0x8D40, 0x84E0, 0x7420, 0x7440, 0x84E0, 0x8D20, 0x7CA0, 0x6C00, 0x7420, 0x7C80, // 0x2C60 (11360) pixels +0x7460, 0x6C20, 0x7C80, 0x8500, 0x84C0, 0x6C20, 0x6C20, 0x7C80, 0x7CA0, 0x6C00, 0x63C0, 0x63E0, 0x6BE0, 0x6C20, 0x7C80, 0x84C0, // 0x2C70 (11376) pixels +0x7460, 0x7420, 0x7CC0, 0x8D20, 0x84C0, 0x7420, 0x6C00, 0x7460, 0x7460, 0x6C00, 0x63E0, 0x63E0, 0x6C00, 0x7440, 0x84E0, 0x8D40, // 0x2C80 (11392) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2C90 (11408) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2CA0 (11424) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2CB0 (11440) pixels @@ -2135,10 +2135,10 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2D60 (11616) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2D70 (11632) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2D80 (11648) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2D90 (11664) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2DA0 (11680) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2DB0 (11696) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2DC0 (11712) pixels +0x9580, 0x9580, 0x9560, 0x8D40, 0x8500, 0x8D20, 0x8D40, 0x9560, 0x8D40, 0x8D20, 0x8500, 0x8D40, 0x9560, 0x9580, 0x9560, 0x8D40, // 0x2D90 (11664) pixels +0x8D20, 0x84E0, 0x84E0, 0x8500, 0x8D20, 0x8D60, 0x9560, 0x8D40, 0x8D20, 0x8D20, 0x8D60, 0x9560, 0x8D40, 0x8D20, 0x8500, 0x8D20, // 0x2DA0 (11680) pixels +0x8D20, 0x8D20, 0x8D40, 0x9560, 0x8D40, 0x8D20, 0x8500, 0x8D20, 0x8D40, 0x8500, 0x84E0, 0x84E0, 0x8500, 0x8500, 0x8D20, 0x8D40, // 0x2DB0 (11696) pixels +0x8D20, 0x8D20, 0x8D40, 0x9560, 0x8D40, 0x8D20, 0x8500, 0x8D20, 0x8D20, 0x8500, 0x8500, 0x84E0, 0x8500, 0x8D20, 0x8D60, 0x9560, // 0x2DC0 (11712) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2DD0 (11728) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2DE0 (11744) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2DF0 (11760) pixels @@ -2155,10 +2155,10 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2EA0 (11936) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2EB0 (11952) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2EC0 (11968) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2ED0 (11984) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2EE0 (12000) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2EF0 (12016) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2F00 (12032) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2ED0 (11984) pixels +0x9560, 0x9560, 0x9560, 0x9560, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, 0x9580, // 0x2EE0 (12000) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, 0x9580, 0x9580, 0x9560, 0x9560, 0x9560, 0x9560, 0x9560, 0x9580, 0x9580, // 0x2EF0 (12016) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9560, 0x9560, 0x9580, 0x9580, 0x9560, 0x9560, 0x9560, 0x9560, 0x9580, 0x9580, 0x9580, // 0x2F00 (12032) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2F10 (12048) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2F20 (12064) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x2F30 (12080) pixels @@ -2305,8 +2305,8 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3800 (14336) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3810 (14352) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3820 (14368) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x18E0, 0x5B80, 0x7C80, 0x0860, 0x7460, 0x1900, 0x5B80, // 0x3830 (14384) pixels -0x9580, 0x29C0, 0x4AC0, 0x9580, 0x9580, 0x4AC0, 0x3A20, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3840 (14400) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3830 (14384) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3840 (14400) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3850 (14416) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3860 (14432) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3870 (14448) pixels @@ -2325,8 +2325,8 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3940 (14656) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3950 (14672) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3960 (14688) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x0880, 0x5B60, 0x2140, 0x3A20, 0x9580, 0x10A0, 0x5B60, // 0x3970 (14704) pixels -0x9580, 0x2980, 0x4280, 0x9580, 0x9560, 0x10C0, 0x7440, 0x84C0, 0x4AC0, 0x5340, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3980 (14720) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3970 (14704) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3980 (14720) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3990 (14736) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x39A0 (14752) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x39B0 (14768) pixels @@ -2345,8 +2345,8 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3A80 (14976) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3A90 (14992) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3AA0 (15008) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x0880, 0x2160, 0x0860, 0x8D20, 0x9580, 0x10A0, 0x3200, // 0x3AB0 (15024) pixels -0x5B40, 0x10E0, 0x4280, 0x9580, 0x7420, 0x10C0, 0x9560, 0x2140, 0x31C0, 0x3A40, 0x8D40, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3AC0 (15040) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3AB0 (15024) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3AC0 (15040) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3AD0 (15056) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3AE0 (15072) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3AF0 (15088) pixels @@ -2365,8 +2365,8 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3BC0 (15296) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3BD0 (15312) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3BE0 (15328) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x0880, 0x0020, 0x0040, 0x8500, 0x9580, 0x10A0, 0x1920, // 0x3BF0 (15344) pixels -0x31C0, 0x0880, 0x4280, 0x9580, 0x3A20, 0x4AC0, 0x9580, 0x31C0, 0x10C0, 0x6C20, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3C00 (15360) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3BF0 (15344) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3C00 (15360) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3C10 (15376) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3C20 (15392) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3C30 (15408) pixels @@ -2385,8 +2385,8 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3D00 (15616) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3D10 (15632) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3D20 (15648) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x0880, 0x5340, 0x10C0, 0x42A0, 0x9580, 0x10A0, 0x5B60, // 0x3D30 (15664) pixels -0x9580, 0x2980, 0x4280, 0x8D40, 0x0840, 0x84C0, 0x9580, 0x8D40, 0x4280, 0x0000, 0x7CA0, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3D40 (15680) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3D30 (15664) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3D40 (15680) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3D50 (15696) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3D60 (15712) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3D70 (15728) pixels @@ -2405,8 +2405,8 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3E40 (15936) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3E50 (15952) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3E60 (15968) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x0880, 0x5B60, 0x5B60, 0x0040, 0x8500, 0x10A0, 0x5B60, // 0x3E70 (15984) pixels -0x9580, 0x2980, 0x4280, 0x5B80, 0x2160, 0x9580, 0x9580, 0x4260, 0x4AA0, 0x0000, 0x7C80, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3E80 (16000) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3E70 (15984) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3E80 (16000) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3E90 (16016) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3EA0 (16032) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3EB0 (16048) pixels @@ -2425,8 +2425,8 @@ const unsigned short bottonPoolScreen_g[22400] PROGMEM ={ 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3F80 (16256) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3F90 (16272) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3FA0 (16288) pixels -0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x5320, 0x7C80, 0x8D60, 0x4AE0, 0x7480, 0x5340, 0x7C80, // 0x3FB0 (16304) pixels -0x9580, 0x63A0, 0x6C20, 0x6380, 0x6C20, 0x9580, 0x9580, 0x5B80, 0x4280, 0x63C0, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3FC0 (16320) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3FB0 (16304) pixels +0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3FC0 (16320) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3FD0 (16336) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3FE0 (16352) pixels 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, 0x9580, // 0x3FF0 (16368) pixels diff --git a/src/monitor.cpp b/src/monitor.cpp index 1fb58f3..16c9419 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -316,12 +316,15 @@ pool_data getPoolData(void){ const JsonArray& workers = doc["workers"].as(); float totalhashs = 0; for (const JsonObject& worker : workers) { - totalhashs += worker["hashRate"].as(); + totalhashs += worker["hashRate"].as(); /* Serial.print(worker["sessionId"].as()+": "); Serial.print(" - "+worker["hashRate"].as()+": "); Serial.println(totalhashs); */ } - pData.workersHash = String(totalhashs/1000); + char totalhashs_s[16] = {0}; + suffix_string(totalhashs, totalhashs_s, 16, 0); + pData.workersHash = String(totalhashs_s); + double temp; if (doc.containsKey("bestDifficulty")) { temp = doc["bestDifficulty"].as(); From 65110292ea3aad01cf00ca56b30dad967709146c Mon Sep 17 00:00:00 2001 From: George Alexandre Silva Date: Wed, 4 Oct 2023 21:51:47 -0300 Subject: [PATCH 68/68] Revert "Just for internal tests" This reverts commit 5911e0d8730f45e39e8378b938859fccc60aad60. --- .gitignore | 1 - src/drivers/storage/storage.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 12af968..f7eadc5 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,3 @@ NerdMinerLog.txt bin/0x10000_firmware.bin logs boards/ESP32_wroom_guide.md -src/drivers/storage/storage.h diff --git a/src/drivers/storage/storage.h b/src/drivers/storage/storage.h index a1cc8f5..8aa0668 100644 --- a/src/drivers/storage/storage.h +++ b/src/drivers/storage/storage.h @@ -28,7 +28,7 @@ struct TSettings char PoolAddress[80]{ DEFAULT_POOLURL }; char BtcWallet[80]{ DEFAULT_WALLETID }; uint32_t PoolPort{ DEFAULT_POOLPORT }; - int Timezone{ DEFAULT_TIMEZONE }; + uint32_t Timezone{ DEFAULT_TIMEZONE }; bool saveStats{ DEFAULT_SAVESTATS }; };