From 475258f113b9bfea025f267494fdbabe5346619e Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Thu, 2 Jan 2025 17:07:15 +0100 Subject: [PATCH] Add full touch support to menu --- TEF6686_ESP32.ino | 29 +- src/constants.h | 15 + src/gui.cpp | 1157 +++++++++++++++++++++++++++++++++++++++++++- src/gui.h | 22 +- src/menugraphics.h | 70 +++ src/touch.cpp | 77 ++- src/touch.h | 6 + 7 files changed, 1328 insertions(+), 48 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index b86552f..7c66431 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -178,6 +178,7 @@ byte amgain; byte freqoldcount; byte HighCutLevel; byte HighCutOffset; +byte items[10] = {10, static_cast(dynamicspi ? 10 : 9), 7, 10, 10, 10, 9, 6, 9, 9}; byte iMSEQ; byte iMSset; byte language; @@ -190,6 +191,7 @@ byte memoryposstatus; byte mempionly; byte memstartpos; byte memstoppos; +byte menuitem; byte menupage; byte MSold; byte poweroptions; @@ -674,6 +676,7 @@ void setup() { PSSprite.createSprite(150, 32); PSSprite.setTextDatum(TL_DATUM); + PSSprite.setSwapBytes(true); SquelchSprite.createSprite(47, 19); SquelchSprite.setTextDatum(TL_DATUM); @@ -2506,6 +2509,8 @@ void ModeButtonPress() { menupage = INDEX; menuitem = 0; if (spispeed == 7) tft.setSPISpeed(40); + PSSprite.unloadFont(); + if (language == LANGUAGE_CHS) PSSprite.loadFont(FONT16_CHS); else PSSprite.loadFont(FONT16); BuildMenu(); freq_in = 0; menu = true; @@ -2552,6 +2557,8 @@ void ModeButtonPress() { menuoption = ITEM1; menupage = INDEX; menuitem = 0; + PSSprite.unloadFont(); + if (language == LANGUAGE_CHS) PSSprite.loadFont(FONT16_CHS); else PSSprite.loadFont(FONT16); BuildMenu(); freq_in = 0; } @@ -4322,9 +4329,18 @@ void SetTunerPatch() { void read_encoder() { if (!digitalRead(ROTARY_PIN_A) || !digitalRead(ROTARY_PIN_B)) { - if (millis() - rotarytimer >= 15) { rotarycounteraccelerator = 2; rotarycounter = 0; } // Steady fast - if (millis() - rotarytimer >= 30) { rotarycounteraccelerator = 4; rotarycounter = 0; } - if (millis() - rotarytimer >= 45) { rotarycounteraccelerator = 6; rotarycounter = 0; } // Quick flicks + if (millis() - rotarytimer >= 15) { + rotarycounteraccelerator = 2; // Steady fast + rotarycounter = 0; + } + if (millis() - rotarytimer >= 30) { + rotarycounteraccelerator = 4; + rotarycounter = 0; + } + if (millis() - rotarytimer >= 45) { + rotarycounteraccelerator = 6; // Quick flicks + rotarycounter = 0; + } } static uint8_t old_AB = 3; @@ -4760,6 +4776,9 @@ void endMenu() { if (USBmode) Serial.begin(19200); else Serial.begin(115200); leave = true; + PSSprite.unloadFont(); + if (language == LANGUAGE_CHS) PSSprite.loadFont(FONT28_CHS); else PSSprite.loadFont(FONT28); + PSSprite.setTextDatum(TL_DATUM); BuildDisplay(); SelectBand(); ScreensaverTimerRestart(); @@ -5211,7 +5230,7 @@ void TuneFreq(int temp) { } void NumpadProcess(int num) { - if (scandxmode) { + if (scandxmode) { if (num == 127) cancelDXScan(); } else { if (num == 127) { @@ -5222,6 +5241,8 @@ void NumpadProcess(int num) { if (spispeed == 7) tft.setSPISpeed(40); submenu = true; menu = true; + PSSprite.unloadFont(); + if (language == LANGUAGE_CHS) PSSprite.loadFont(FONT16_CHS); else PSSprite.loadFont(FONT16); BuildMenu(); ScreensaverTimerSet(OFF); } else if (num == 13) { diff --git a/src/constants.h b/src/constants.h index 362fd01..5f8cab1 100644 --- a/src/constants.h +++ b/src/constants.h @@ -208,6 +208,18 @@ #define Spice 0x6247 /* 12, 18, 7 */ #define Tyrian 0x3845 /* 7, 2, 5 */ +#define ITEM_GAP 20 +#define ITEM1 30 +#define ITEM2 50 +#define ITEM3 70 +#define ITEM4 90 +#define ITEM5 110 +#define ITEM6 130 +#define ITEM7 150 +#define ITEM8 170 +#define ITEM9 190 +#define ITEM10 210 + // EEPROM index defines #define EE_PRESETS_CNT 99 // When set > 99 change the complete EEPROM adressing! #define EE_CHECKBYTE_VALUE 10 // 0 ~ 255,add new entry, change for new value @@ -360,6 +372,9 @@ enum LONGBANDBUTTONPRESS { STANDBY = 0, SCREENOFF }; +enum menupage {INDEX, MAINSETTINGS, AUDIOSETTINGS, DISPLAYSETTINGS, RDSSETTINGS, FMSETTINGS, AMSETTINGS, CONNECTIVITY, DXMODE, AUTOMEM +}; + enum AUTOMEMPIMODES { MEMPI_OFF = 0, MEMPI_RANGE, MEMPI_FULL }; diff --git a/src/gui.cpp b/src/gui.cpp index ee40aee..fe7a86e 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -7,8 +7,6 @@ #include #include -byte menuitem; -byte items[10] = {10, static_cast(dynamicspi ? 10 : 9), 7, 10, 10, 10, 9, 6, 9, 9}; extern mem presets[]; bool setWiFiConnectParam = false; @@ -1563,6 +1561,1060 @@ void ShowOneLine(byte position, byte item, bool selected) { FullLineSprite.pushSprite(8, 2 + position); } +void ShowOneButton(byte position, byte item, bool selected) { + switch (CurrentTheme) { + case 7: PSSprite.pushImage (0, 0, 150, 32, touchselback_wo); break; + default: PSSprite.pushImage (0, 0, 150, 32, touchselback); break; + } + + switch (item) { + case 0: + switch (menupage) { + case INDEX: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][177])), 75, 8); + break; + + case MAINSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][108])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + + switch (hardwaremodel) { + case BASE_ILI9341: PSSprite.drawString(myLanguage[language][109], 75, 15); break; + case PORTABLE_ILI9341: PSSprite.drawString(myLanguage[language][110], 75, 15); break; + case PORTABLE_TOUCH_ILI9341: PSSprite.drawString(myLanguage[language][111], 75, 15); break; + } + break; + + case AUDIOSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][20])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("dB", 77, 15); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((VolSet > 0 ? "+" : "") + String(VolSet, DEC), 73, 15); + break; + + case DISPLAYSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][39])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(myLanguage[language][0], 75, 15); + break; + + case RDSSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][38])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + + switch (showrdserrors) { + case 0: PSSprite.drawString(myLanguage[language][30], 75, 15); break; + case 1: PSSprite.drawString(myLanguage[language][200], 75, 15); break; + case 2: PSSprite.drawString(myLanguage[language][201], 75, 15); break; + } + break; + + case FMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][21])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("MHz", 77, 15); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String(ConverterSet, DEC), 73, 15); + break; + + case AMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][44])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((softmuteam ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case CONNECTIVITY: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][50])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((USBmode ? "RDS Spy" : "XDRGTK"), 75, 15); + break; + + case DXMODE: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][212])), 75, 8); + break; + + case AUTOMEM: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][269])), 75, 8); + break; + } + break; + case 1: + switch (menupage) { + case INDEX: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][178])), 75, 8); + break; + + case MAINSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][107])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((touchrotating ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case AUDIOSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][45])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((edgebeep ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case DISPLAYSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][29])), 75, 1); + + PSSprite.setTextDatum(TR_DATUM); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(ContrastSet, DEC), 73, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TL_DATUM); + PSSprite.drawString("%", 77, 15); + break; + + case RDSSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][46])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + if (region == REGION_EU) PSSprite.drawString(myLanguage[language][47], 75, 15); + if (region == REGION_US) PSSprite.drawString(myLanguage[language][48], 75, 15); + break; + + case FMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][22])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("MHz", 77, 15); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String(LowEdgeSet / 10 + ConverterSet, DEC) + "." + String(LowEdgeSet % 10 + ConverterSet, DEC), 73, 15); + break; + + case AMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][64])), 75, 1); + + if (amnb == 0) { + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(myLanguage[language][30], 75, 15); + } else { + PSSprite.setTextDatum(TR_DATUM); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(amnb, DEC), 73, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TL_DATUM); + PSSprite.drawString("%", 77, 15); + } + break; + + case CONNECTIVITY: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][51] + (wifi ? " IP: " + String(WiFi.localIP().toString()) : ""))), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((wifi ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case DXMODE: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][209])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(scanstart + 1, DEC), 75, 15); + break; + + case AUTOMEM: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][264])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("MHz", 77, 15); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String(memstartfreq / 10 + ConverterSet, DEC) + "." + String(memstartfreq % 10 + ConverterSet, DEC), 73, 15); + break; + } + break; + + case 2: + switch (menupage) { + case INDEX: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][179])), 75, 8); + break; + + case MAINSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][75])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + if (tot == 0) { + PSSprite.drawString(myLanguage[language][30], 75, 15); + } else { + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String(tot), 73, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TL_DATUM); + PSSprite.drawString(myLanguage[language][80], 77, 15); + } + break; + + case AUDIOSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][67])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((audiomode ? "MPX" : "Stereo"), 75, 15); + break; + + case DISPLAYSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][63])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((showmodulation ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case RDSSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][49])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((radio.underscore ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case FMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][23])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("MHz", 77, 15); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(HighEdgeSet / 10 + ConverterSet, DEC) + "." + String(HighEdgeSet % 10 + ConverterSet, DEC), 73, 15); + break; + + case AMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][97])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("dB", 77, 15); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString((AMLevelOffset > 0 ? "+" : "") + String(AMLevelOffset, DEC), 73, 15); + break; + + case CONNECTIVITY: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][52])), 75, 8); + + break; + + case DXMODE: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][210])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(scanstop + 1, DEC), 75, 15); + break; + + case AUTOMEM: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][265])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("MHz", 77, 15); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(memstopfreq / 10 + ConverterSet, DEC) + "." + String(memstopfreq % 10 + ConverterSet, DEC), 73, 15); + break; + } + break; + + case 3: + switch (menupage) { + case INDEX: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][180])), 75, 8); + break; + + case MAINSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][62])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + if (autosquelch) PSSprite.drawString(myLanguage[language][86], 75, 15); else PSSprite.drawString((usesquelch ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case AUDIOSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][25])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + if (StereoLevel == 0) { + PSSprite.drawString(myLanguage[language][30], 75, 15); + } else { + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String(StereoLevel, DEC), 73, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TL_DATUM); + PSSprite.drawString("dBμV", 77, 15); + } + break; + + case DISPLAYSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][91])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + if (!screensaverset) { + PSSprite.drawString(myLanguage[language][30], 75, 15); + } else { + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String(screensaverOptions[screensaverset], DEC), 73, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TL_DATUM); + PSSprite.drawString(myLanguage[language][92], 77, 15); + } + break; + + case RDSSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][60])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((radio.rds.filter ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case FMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][24])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("dB", 77, 15); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((LevelOffset > 0 ? "+" : "") + String(LevelOffset, DEC), 73, 15); + break; + + case AMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][59])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((showSWMIBand ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case CONNECTIVITY: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][58])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((wifi ? String(WiFi.localIP()[0]) + "." + String(WiFi.localIP()[1]) + "." + String(WiFi.localIP()[2]) + "." + String(subnetclient, DEC) : "-"), 75, 1); + break; + + case DXMODE: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][211])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(removeNewline(myLanguage[language][92]), 77, 15); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString((scanhold == 0 ? "0.5" : String(scanhold, DEC)), 73, 15); + break; + + case AUTOMEM: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][266])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(memstartpos + 1, DEC), 75, 15); + break; + } + break; + + case 4: + switch (menupage) { + case INDEX: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][181])), 75, 8); + break; + + case MAINSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][37])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("dBµV", 77, 15); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String(fmagc, DEC), 73, 15); + break; + + case AUDIOSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][26])), 75, 1); + + PSSprite.setTextDatum(TR_DATUM); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(HighCutLevel * 100, DEC), 73, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TL_DATUM); + PSSprite.drawString("Hz", 77, 15); + break; + + case DISPLAYSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][74])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + + switch (poweroptions) { + case LCD_OFF: PSSprite.drawString(myLanguage[language][76], 75, 15); break; + case LCD_BRIGHTNESS_1_PERCENT: PSSprite.drawString(myLanguage[language][94], 75, 15); break; + case LCD_BRIGHTNESS_A_QUARTER: PSSprite.drawString(myLanguage[language][95], 75, 15); break; + case LCD_BRIGHTNESS_HALF: PSSprite.drawString(myLanguage[language][96], 75, 15); break; + } + break; + + case RDSSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][61])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((radio.rds.pierrors ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case FMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][28])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("dBμV", 77, 15); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String(LowLevelSet, DEC), 73, 15); + break; + + case AMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][185])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + if (amcodect == 0) { + PSSprite.drawString(myLanguage[language][30], 75, 15); + } else { + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String(amcodect, DEC), 73, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TL_DATUM); + PSSprite.drawString("%", 77, 15); + } + break; + + case CONNECTIVITY: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][271])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(stationlistid, DEC), 75, 15); + break; + + case DXMODE: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][216])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((scanmem ? myLanguage[language][218] : myLanguage[language][217]), 75, 15); + break; + + case AUTOMEM: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][267])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(memstoppos + 1, DEC), 75, 15); + break; + } + break; + + case 5: + switch (menupage) { + case INDEX: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][182])), 75, 8); + break; + + case MAINSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][198])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("dBµV", 77, 15); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String(amagc, DEC), 73, 15); + break; + + case AUDIOSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][27])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + if (HighCutOffset == 0) { + PSSprite.drawString(myLanguage[language][30], 75, 15); + } else { + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String(HighCutOffset, DEC), 73, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TL_DATUM); + PSSprite.drawString("dBμV", 77, 15); + } + break; + + case DISPLAYSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][173])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + + switch (batteryoptions) { + case BATTERY_NONE: PSSprite.drawString(myLanguage[language][30], 75, 15); break; + case BATTERY_VALUE: PSSprite.drawString(myLanguage[language][174], 75, 15); break; + case BATTERY_PERCENT: PSSprite.drawString(myLanguage[language][175], 75, 15); break; + } + break; + + case RDSSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][99])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + + switch (af) { + case 0: PSSprite.drawString(myLanguage[language][30], 75, 15); break; + case 1: PSSprite.drawString(String(myLanguage[language][42]) + " / REG " + String(myLanguage[language][42]), 75, 15); break; + case 2: PSSprite.drawString(String(myLanguage[language][42]) + " / REG " + String(myLanguage[language][30]), 75, 15); break; + } + break; + + case FMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][43])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((softmutefm ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case AMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][187])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(amcodectcount, DEC), 75, 15); + break; + + case CONNECTIVITY: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][205])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((XDRGTKMuteScreen ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case DXMODE: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][219])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + switch (scancancel) { + case OFF: PSSprite.drawString(myLanguage[language][30], 75, 15); break; + case CORRECTPI: PSSprite.drawString(myLanguage[language][220], 75, 15); break; + case SIGNAL: PSSprite.drawString(myLanguage[language][221], 75, 15); break; + } + break; + + case AUTOMEM: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][268])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((mempionly ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + } + break; + + case 6: + switch (menupage) { + case INDEX: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][183])), 75, 8); + break; + + case MAINSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][100])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + + switch (bandFM) { + case FM_BAND_ALL: PSSprite.drawString(myLanguage[language][105] + String(",") + myLanguage[language][106], 75, 15); break; + case FM_BAND_OIRT: PSSprite.drawString(myLanguage[language][106], 75, 15); break; + case FM_BAND_FM: PSSprite.drawString(myLanguage[language][105], 75, 15); break; + case FM_BAND_NONE: PSSprite.drawString(myLanguage[language][83], 75, 15); break; + } + break; + + case AUDIOSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][199])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + if (fmdeemphasis == DEEMPHASIS_NONE) { + PSSprite.drawString(myLanguage[language][30], 75, 15); + } else { + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String((fmdeemphasis == DEEMPHASIS_50 ? FM_DEEMPHASIS_50 : FM_DEEMPHASIS_75), DEC), 73, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TL_DATUM); + PSSprite.drawString("μs", 77, 15); + } + break; + + case DISPLAYSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][98])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(unitString[unit], 75, 15); + break; + + case RDSSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][176])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((radio.rds.rtbuffer ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case FMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][65])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + if (fmnb == 0) { + PSSprite.drawString(myLanguage[language][30], 75, 15); + } else { + PSSprite.setTextDatum(TL_DATUM); + PSSprite.drawString(String(fmnb, DEC), 73, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString("%", 77, 15); + } + break; + + case AMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][36])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + if (amgain == 0) { + PSSprite.drawString(myLanguage[language][30], 75, 15); + } else { + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString(String(amgain, DEC), 73, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TL_DATUM); + PSSprite.drawString("dB", 77, 15); + } + break; + + case DXMODE: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][222])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((scanmute ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case AUTOMEM: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][278])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + + switch (memdoublepi) { + case MEMPI_OFF: PSSprite.drawString(myLanguage[language][30], 75, 15); break; + case MEMPI_RANGE: PSSprite.drawString(myLanguage[language][279], 75, 15); break; + default: PSSprite.drawString(myLanguage[language][280], 75, 15); break; + } + break; + } + break; + + case 7: + switch (menupage) { + case INDEX: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][213])), 75, 8); + break; + + case MAINSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][101])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); +#ifdef HAS_AIR_BAND + switch (bandAM) { + case AM_BAND_ALL: PSSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104] + String(",") + myLanguage[language][223], 75, 15); break; + case AM_BAND_LW_MW_SW: PSSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 75, 15); break; + case AM_BAND_LW_MW_AIR: PSSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][223], 75, 15); break; + case AM_BAND_LW_SW_AIR: PSSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104] + String(",") + myLanguage[language][223], 75, 15); break; + case AM_BAND_MW_SW_AIR: PSSprite.drawString(myLanguage[language][103] + String(",") + myLanguage[language][104] + String(",") + myLanguage[language][223], 75, 15); break; + case AM_BAND_LW_MW: PSSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103], 75, 15); break; + case AM_BAND_LW_SW: PSSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104], 75, 15); break; + case AM_BAND_LW_AIR: PSSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][223], 75, 15); break; + case AM_BAND_MW_SW: PSSprite.drawString(myLanguage[language][103] + String(",") + myLanguage[language][104], 75, 15); break; + case AM_BAND_MW_AIR: PSSprite.drawString(myLanguage[language][103] + String(",") + myLanguage[language][223], 75, 15); break; + case AM_BAND_SW_AIR: PSSprite.drawString(myLanguage[language][104] + String(",") + myLanguage[language][223], 75, 15); break; + case AM_BAND_LW: PSSprite.drawString(myLanguage[language][102], 75, 15); break; + case AM_BAND_MW: PSSprite.drawString(myLanguage[language][103], 75, 15); break; + case AM_BAND_SW: PSSprite.drawString(myLanguage[language][104], 75, 15); break; + case AM_BAND_AIR: PSSprite.drawString(myLanguage[language][223], 75, 15); break; + case AM_BAND_NONE: PSSprite.drawString(myLanguage[language][83], 75, 15); break; + } + break; +#else + switch (bandAM) { + case AM_BAND_ALL: PSSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 75, 15); break; + case AM_BAND_LW_MW: PSSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103], 75, 15); break; + case AM_BAND_LW_SW: PSSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104], 75, 15); break; + case AM_BAND_MW_SW: PSSprite.drawString(myLanguage[language][103] + String(",") + myLanguage[language][104], 75, 15); break; + case AM_BAND_LW: PSSprite.drawString(myLanguage[language][102], 75, 15); break; + case AM_BAND_MW: PSSprite.drawString(myLanguage[language][103], 75, 15); break; + case AM_BAND_SW: PSSprite.drawString(myLanguage[language][104], 75, 15); break; + case AM_BAND_NONE: PSSprite.drawString(myLanguage[language][83], 75, 15); break; + } + break; +#endif + + case DISPLAYSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][262])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case RDSSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][215])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((radio.rds.sortaf ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case FMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][90])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("kHz", 77, 15); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.setTextDatum(TR_DATUM); + + switch (fmdefaultstepsize) { + case 0: PSSprite.drawString(String(FREQ_FM_STEP_50K * 10, DEC), 73, 15); break; + case 1: PSSprite.drawString(String(FREQ_FM_STEP_100K * 10, DEC), 73, 15); break; + case 2: PSSprite.drawString(String(FREQ_FM_STEP_200K * 10, DEC), 73, 15); break; + } + break; + + case AMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][169])), 75, 1); + + PSSprite.setTextDatum(TR_DATUM); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((mwstepsize ? "10" : "9"), 73, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TL_DATUM); + PSSprite.drawString("kHz", 77, 15); + break; + + case DXMODE: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][82])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(fmscansens), 75, 15); + break; + + case AUTOMEM: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][82])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(fmscansens), 75, 15); + break; + } + break; + + case 8: + switch (menupage) { + case INDEX: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][270])), 75, 8); + break; + + case MAINSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][224])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + switch (longbandpress) { + case STANDBY: PSSprite.drawString(myLanguage[language][225], 75, 15); break; + case SCREENOFF: PSSprite.drawString(myLanguage[language][226], 75, 15); break; + default: PSSprite.drawString(myLanguage[language][227], 75, 15); break; + } + break; + + case DISPLAYSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][77])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(Theme[CurrentTheme], 75, 15); + break; + + case RDSSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][203])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + + switch (radio.rds.fastps) { + case 0: PSSprite.drawString(myLanguage[language][30], 75, 15); break; + case 1: PSSprite.drawString(myLanguage[language][260], 75, 15); break; + case 2: PSSprite.drawString(myLanguage[language][261], 75, 15); break; + } + break; + + case FMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][206])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((fmsi ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case AMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][82])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(amscansens), 75, 15); + break; + + case DXMODE: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][281])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((scanholdonsignal ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case AUTOMEM: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][276])), 75, 8); + break; + } + break; + + case 9: + switch (menupage) { + case INDEX: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][70])), 75, 8); + break; + + case MAINSETTINGS: + if (dynamicspi) { + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][81])), 75, 1); + + if (spispeed == 7) { + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(myLanguage[language][86], 75, 15); + } else { + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString("MHz", 77, 15); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString((spispeed == SPI_SPEED_DEFAULT ? String(myLanguage[language][204]) + " " + String(SPI_FREQUENCY / 1000000, DEC) : String(spispeed * 10, DEC)), 73, 15); + } + } + break; + + case DISPLAYSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][85])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(FreqFont[freqfont], 75, 15); + break; + + case RDSSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][263])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((showlongps ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); + break; + + case FMSETTINGS: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][82])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString(String(fmscansens), 75, 15); + break; + } + break; + } + PSSprite.pushSprite((position > ITEM5 ? 163 : 8), (position * 2) - 22 - (position > ITEM5 ? 200 : 0)); + if (selected) tft.drawRect((position > ITEM5 ? 163 : 8), (position * 2) - 22 - (position > ITEM5 ? 200 : 0), 150, 32, (CurrentTheme == 7 ? Black : ActiveColor)); +} + void BuildBWSelector() { switch (CurrentTheme) { case 7: tft.pushImage (0, 0, 320, 240, configurationbackground_wo); break; @@ -1596,20 +2648,37 @@ void BuildMenu() { if (!submenu) { tftPrint(0, myLanguage[language][41], 160, 6, PrimaryColor, PrimaryColorSmooth, 16); } else { - tftPrint(-1, myLanguage[language][184], 8, 6, PrimaryColor, PrimaryColorSmooth, 16); + tftPrint(-1, myLanguage[language][184], (hardwaremodel == PORTABLE_TOUCH_ILI9341 ? 20 : 8), 6, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(1, myLanguage[language][189 + menupage - 1], 312, 6, ActiveColor, ActiveColorSmooth, 16); } - ShowOneLine(ITEM1, 0, (menuoption == ITEM1 ? true : false)); - ShowOneLine(ITEM2, 1, (menuoption == ITEM2 ? true : false)); - ShowOneLine(ITEM3, 2, (menuoption == ITEM3 ? true : false)); - ShowOneLine(ITEM4, 3, (menuoption == ITEM4 ? true : false)); - ShowOneLine(ITEM5, 4, (menuoption == ITEM5 ? true : false)); - ShowOneLine(ITEM6, 5, (menuoption == ITEM6 ? true : false)); - ShowOneLine(ITEM7, 6, (menuoption == ITEM7 ? true : false)); - ShowOneLine(ITEM8, 7, (menuoption == ITEM8 ? true : false)); - ShowOneLine(ITEM9, 8, (menuoption == ITEM9 ? true : false)); - ShowOneLine(ITEM10, 9, (menuoption == ITEM10 ? true : false)); + if (hardwaremodel == PORTABLE_TOUCH_ILI9341) { + tft.fillRoundRect(4, 4, 15, 20, 3, FrameColor); + tft.drawRoundRect(4, 4, 15, 20, 3, ActiveColor); + tft.fillTriangle(12, 8, 8, 14, 12, 20, (CurrentTheme == 7 ? White : ActiveColor)); + + if (items[menupage] > 0) ShowOneButton(ITEM1, 0, false); + if (items[menupage] > 1) ShowOneButton(ITEM2, 1, false); + if (items[menupage] > 2) ShowOneButton(ITEM3, 2, false); + if (items[menupage] > 3) ShowOneButton(ITEM4, 3, false); + if (items[menupage] > 4) ShowOneButton(ITEM5, 4, false); + if (items[menupage] > 5) ShowOneButton(ITEM6, 5, false); + if (items[menupage] > 6) ShowOneButton(ITEM7, 6, false); + if (items[menupage] > 7) ShowOneButton(ITEM8, 7, false); + if (items[menupage] > 8) ShowOneButton(ITEM9, 8, false); + if (items[menupage] > 9) ShowOneButton(ITEM10, 9, false); + } else { + ShowOneLine(ITEM1, 0, (menuoption == ITEM1 ? true : false)); + ShowOneLine(ITEM2, 1, (menuoption == ITEM2 ? true : false)); + ShowOneLine(ITEM3, 2, (menuoption == ITEM3 ? true : false)); + ShowOneLine(ITEM4, 3, (menuoption == ITEM4 ? true : false)); + ShowOneLine(ITEM5, 4, (menuoption == ITEM5 ? true : false)); + ShowOneLine(ITEM6, 5, (menuoption == ITEM6 ? true : false)); + ShowOneLine(ITEM7, 6, (menuoption == ITEM7 ? true : false)); + ShowOneLine(ITEM8, 7, (menuoption == ITEM8 ? true : false)); + ShowOneLine(ITEM9, 8, (menuoption == ITEM9 ? true : false)); + ShowOneLine(ITEM10, 9, (menuoption == ITEM10 ? true : false)); + } analogWrite(SMETERPIN, 0); } @@ -1867,7 +2936,7 @@ void BuildDisplay() { void MenuUp() { if (!menuopen) { - ShowOneLine(menuoption, menuitem, false); + if (hardwaremodel == PORTABLE_TOUCH_ILI9341) ShowOneButton(menuoption, menuitem, false); else ShowOneLine(menuoption, menuitem, false); if (hardwaremodel == BASE_ILI9341) { menuoption += ITEM_GAP; @@ -1889,7 +2958,7 @@ void MenuUp() { } } - ShowOneLine(menuoption, menuitem, true); + if (hardwaremodel == PORTABLE_TOUCH_ILI9341) ShowOneButton(menuoption, menuitem, true); else ShowOneLine(menuoption, menuitem, true); } else { switch (CurrentTheme) { case 7: OneBigLineSprite.pushImage(-11, -88, 292, 170, popupbackground_wo); break; @@ -2266,9 +3335,19 @@ void MenuUp() { CurrentTheme ++; if (CurrentTheme > sizeof(Theme) / sizeof(Theme[0]) - 1) CurrentTheme = 0; doTheme(); - OneBigLineSprite.fillSprite(BackgroundColor); + switch (CurrentTheme) { + case 7: + OneBigLineSprite.pushImage(-11, -88, 292, 170, popupbackground_wo); + tft.pushImage (13, 30, 292, 170, popupbackground_wo); + break; + default: + OneBigLineSprite.pushImage(-11, -88, 292, 170, popupbackground); + tft.pushImage (13, 30, 292, 170, popupbackground); + break; + } + + showMenuOpenTouchButtons(); tft.drawRoundRect(10, 30, 300, 170, 5, ActiveColor); - tft.fillRoundRect(12, 32, 296, 166, 5, BackgroundColor); Infoboxprint(myLanguage[language][77]); OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); OneBigLineSprite.drawString(Theme[CurrentTheme], 135, 0); @@ -2810,7 +3889,7 @@ void MenuUp() { void MenuDown() { if (!menuopen) { - ShowOneLine(menuoption, menuitem, false); + if (hardwaremodel == PORTABLE_TOUCH_ILI9341) ShowOneButton(menuoption, menuitem, false); else ShowOneLine(menuoption, menuitem, false); if (hardwaremodel == BASE_ILI9341) { menuoption -= ITEM_GAP; @@ -2832,7 +3911,7 @@ void MenuDown() { } } - ShowOneLine(menuoption, menuitem, true); + if (hardwaremodel == PORTABLE_TOUCH_ILI9341) ShowOneButton(menuoption, menuitem, true); else ShowOneLine(menuoption, menuitem, true); } else { switch (CurrentTheme) { case 7: OneBigLineSprite.pushImage(-11, -88, 292, 170, popupbackground_wo); break; @@ -3213,9 +4292,19 @@ void MenuDown() { if (CurrentTheme > sizeof(Theme) / sizeof(Theme[0]) - 1) CurrentTheme = sizeof(Theme) / sizeof(Theme[0]) - 1; doTheme(); - OneBigLineSprite.fillSprite(BackgroundColor); + switch (CurrentTheme) { + case 7: + OneBigLineSprite.pushImage(-11, -88, 292, 170, popupbackground_wo); + tft.pushImage (13, 30, 292, 170, popupbackground_wo); + break; + default: + OneBigLineSprite.pushImage(-11, -88, 292, 170, popupbackground); + tft.pushImage (13, 30, 292, 170, popupbackground); + break; + } + + showMenuOpenTouchButtons(); tft.drawRoundRect(10, 30, 300, 170, 5, ActiveColor); - tft.fillRoundRect(12, 32, 296, 166, 5, BackgroundColor); Infoboxprint(myLanguage[language][77]); OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); OneBigLineSprite.drawString(Theme[CurrentTheme], 135, 0); @@ -3764,9 +4853,9 @@ void showMenuOpenTouchButtons() { tft.drawRoundRect(240, 154, 60, 40, 6, ActiveColor); tft.fillRoundRect(240, 36, 60, 40, 6, FrameColor); tft.drawRoundRect(240, 36, 60, 40, 6, ActiveColor); - tft.fillTriangle(52, 160, 52, 188, 38, 174, ActiveColor); - tft.fillTriangle(266, 160, 266, 188, 280, 174, ActiveColor); - tftPrint(0, "OK", 270, 44, ActiveColor, ActiveColorSmooth, 28); + tft.fillTriangle(52, 160, 52, 188, 38, 174, (CurrentTheme == 7 ? White : ActiveColor)); + tft.fillTriangle(266, 160, 266, 188, 280, 174, (CurrentTheme == 7 ? White : ActiveColor)); + tftPrint(0, "OK", 270, 44, (CurrentTheme == 7 ? White : ActiveColor), ActiveColorSmooth, 28); } } @@ -3889,6 +4978,11 @@ void DoMenu() { tftPrint(-1, "lawendel", 155, 185, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(1, "KB8U", 145, 200, PrimaryColor, PrimaryColorSmooth, 16); tftPrint(0, "github.com/PE5PVB/TEF6686_ESP32", 155, 215, ActiveColor, ActiveColorSmooth, 16); + if (hardwaremodel == PORTABLE_TOUCH_ILI9341) { + tft.fillRoundRect(240, 36, 60, 40, 6, FrameColor); + tft.drawRoundRect(240, 36, 60, 40, 6, ActiveColor); + tftPrint(0, "OK", 270, 44, (CurrentTheme == 7 ? White : ActiveColor), ActiveColorSmooth, 28); + } break; } break; @@ -4706,6 +5800,11 @@ void DoMenu() { tftPrint(0, myLanguage[language][274], 160, 175, ActiveColor, ActiveColorSmooth, 16); break; } + if (hardwaremodel == PORTABLE_TOUCH_ILI9341) { + tft.fillRoundRect(240, 36, 60, 40, 6, FrameColor); + tft.drawRoundRect(240, 36, 60, 40, 6, ActiveColor); + tftPrint(0, "OK", 270, 44, (CurrentTheme == 7 ? White : ActiveColor), ActiveColorSmooth, 28); + } break; case ITEM2: @@ -4869,4 +5968,14 @@ void drawButton(const char* text, byte button_number, bool active) { tft.drawRoundRect(x, y, buttonWidth, buttonHeight, cornerRadius, ActiveColor); tftPrint(0, text, x + buttonWidth / 2, y + buttonHeight / 4, (active ? FrameColor : PrimaryColor), (active ? InsignificantColor : PrimaryColorSmooth), 16); +} + +String shortLine(String text) { + if (PSSprite.textWidth(text) > 150) { + while (PSSprite.textWidth(text + "...") > 150 && text.length() > 0) { + text.remove(text.length() - 1); + } + text += "..."; + } + return text; } \ No newline at end of file diff --git a/src/gui.h b/src/gui.h index 88085ac..1d6687d 100644 --- a/src/gui.h +++ b/src/gui.h @@ -11,23 +11,6 @@ #define SMETERPIN 27 #define CONTRASTPIN 2 -#define ITEM_GAP 20 -#define ITEM1 30 -#define ITEM2 50 -#define ITEM3 70 -#define ITEM4 90 -#define ITEM5 110 -#define ITEM6 130 -#define ITEM7 150 -#define ITEM8 170 -#define ITEM9 190 -#define ITEM10 210 - -enum menupage {INDEX, MAINSETTINGS, AUDIOSETTINGS, DISPLAYSETTINGS, RDSSETTINGS, FMSETTINGS, AMSETTINGS, CONNECTIVITY, DXMODE, AUTOMEM}; - -extern byte menuitem; -extern byte items[10]; - extern bool advancedRDS; extern bool afmethodBold; extern bool afpage; @@ -102,6 +85,7 @@ extern byte amgain; extern byte hardwaremodel; extern byte HighCutLevel; extern byte HighCutOffset; +extern byte items[10]; extern byte language; extern byte licold; extern byte longbandpress; @@ -110,6 +94,7 @@ extern byte memdoublepi; extern byte mempionly; extern byte memstartpos; extern byte memstoppos; +extern byte menuitem; extern byte menupage; extern byte MSold; extern byte poweroptions; @@ -210,6 +195,7 @@ extern unsigned int mappedfreqold3[20]; extern unsigned int memstartfreq; extern unsigned int memstopfreq; extern unsigned long scantimer; +extern byte items[10]; extern TFT_eSPI tft; extern TEF6686 radio; @@ -217,6 +203,7 @@ extern WiFiConnect wc; extern TFT_eSprite MenuInfobox; extern TFT_eSprite FullLineSprite; extern TFT_eSprite OneBigLineSprite; +extern TFT_eSprite PSSprite; void BuildAFScreen(); void BuildMenu(); @@ -230,6 +217,7 @@ void doTheme(); void Infoboxprint(const char* input); void drawButton(const char* text, byte button_number, bool active); String removeNewline(String inputString); +String shortLine(String text); void showMenuOpenTouchButtons(); extern void ShowFreq(int mode); diff --git a/src/menugraphics.h b/src/menugraphics.h index 5e14133..717057c 100644 --- a/src/menugraphics.h +++ b/src/menugraphics.h @@ -1,6 +1,76 @@ #ifndef MENUGRAPHICS_H #define MENUGRAPHICS_H +static const uint16_t touchselback_wo[] PROGMEM = { + 0xd69a, 0x73ae, 0x5acb, 0x630c, 0x632c, 0x73ae, 0x8c51, 0xa514, 0xb596, 0xc638, 0xd69a, 0xdefb, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe73c, 0xe71c, 0xdedb, 0xce79, 0xc618, 0xbdf7, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc618, 0xc638, 0xc638, 0xce59, 0xce79, 0xce79, 0xd69a, 0xd6ba, 0xd6ba, 0xdedb, 0xdefb, 0xe71c, 0xe71c, 0xe73c, 0xe73c, 0xef5d, 0xef7d, 0xef7d, 0xef7d, 0xf79e, 0xf79e, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xf79e, 0xe71c, 0xef7d, 0xffdf, + 0xb596, 0x632c, 0x738e, 0x73ae, 0x7bcf, 0x8c71, 0xa514, 0xbdd7, 0xce59, 0xdedb, 0xef5d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf7be, 0xef7d, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xe73c, 0xef5d, 0xef5d, 0xef7d, 0xf79e, 0xf79e, 0xf7be, 0xf7be, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xffdf, + 0x9492, 0x738e, 0x8410, 0x8410, 0x8c51, 0x9cf3, 0xb596, 0xc618, 0xd69a, 0xe71c, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xf7be, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe71c, 0xe73c, + 0x7bcf, 0x7bcf, 0x8410, 0x8430, 0x8c71, 0x9cf3, 0xb596, 0xc618, 0xd69a, 0xe71c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xdefb, 0xd6ba, + 0x738e, 0x7bef, 0x8430, 0x8430, 0x9492, 0xa534, 0xb5b6, 0xc638, 0xd6ba, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xd6ba, 0xce79, + 0x738e, 0x7bef, 0x8430, 0x8c51, 0x94b2, 0xad55, 0xbdd7, 0xce59, 0xdedb, 0xef5d, 0xf7be, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe71c, 0xd69a, 0xce59, + 0x73ae, 0x8410, 0x8c51, 0x8c71, 0x9cd3, 0xad75, 0xbdf7, 0xce79, 0xdefb, 0xef7d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xdedb, 0xce79, 0xc638, + 0x73ae, 0x8410, 0x8c71, 0x9492, 0x9cf3, 0xb596, 0xbdf7, 0xd69a, 0xe71c, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xd6ba, 0xc638, 0xc618, + 0x7bcf, 0x8430, 0x8c71, 0x94b2, 0xa534, 0xb5b6, 0xc618, 0xd6ba, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xdefb, 0xce79, 0xc618, 0xbdf7, + 0x7bef, 0x8c51, 0x9492, 0x9cd3, 0xad55, 0xb5b6, 0xc638, 0xdedb, 0xef5d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xdedb, 0xce59, 0xbdf7, 0xbdd7, + 0x8410, 0x8c71, 0x94b2, 0x9cf3, 0xad75, 0xbdd7, 0xce59, 0xdefb, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xd6ba, 0xc638, 0xbdd7, 0xb5b6, + 0x8410, 0x9492, 0x9cd3, 0xa514, 0xb596, 0xc618, 0xd69a, 0xe71c, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xdefb, 0xce79, 0xc618, 0xbdd7, 0xb5b6, + 0x8430, 0x94b2, 0x9cf3, 0xad55, 0xb5b6, 0xc638, 0xd6ba, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xdedb, 0xce59, 0xbdd7, 0xb5b6, 0xb596, + 0x8c51, 0x94b2, 0xa514, 0xad75, 0xbdd7, 0xce59, 0xdedb, 0xef5d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xd6ba, 0xc638, 0xbdd7, 0xb596, 0xad75, + 0x8c71, 0x9cd3, 0xa534, 0xb596, 0xbdf7, 0xce79, 0xdefb, 0xef7d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe71c, 0xce79, 0xbdf7, 0xb5b6, 0xad75, 0xad75, + 0x9492, 0xa514, 0xad75, 0xb5b6, 0xc618, 0xd69a, 0xe71c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xdedb, 0xce59, 0xbdd7, 0xb596, 0xad55, 0xad55, + 0x94b2, 0xa534, 0xad75, 0xbdd7, 0xc638, 0xd6ba, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xd6ba, 0xc638, 0xb5b6, 0xad75, 0xad55, 0xad55, + 0x9cd3, 0xad55, 0xb596, 0xbdf7, 0xce59, 0xdefb, 0xef7d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe71c, 0xd69a, 0xc618, 0xb596, 0xad55, 0xa534, 0xa534, + 0x9cf3, 0xad75, 0xb5b6, 0xc618, 0xd69a, 0xe71c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xdefb, 0xce79, 0xbdf7, 0xad75, 0xad55, 0xa534, 0xa514, + 0xa514, 0xb596, 0xbdd7, 0xc638, 0xd6ba, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xd6ba, 0xc638, 0xb5b6, 0xad55, 0xa534, 0xa514, 0xa514, + 0xa534, 0xb5b6, 0xbdf7, 0xce59, 0xdefb, 0xef5d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xd69a, 0xc618, 0xb5b6, 0xad55, 0xa514, 0xa514, 0xa514, + 0xad55, 0xb5b6, 0xc618, 0xd69a, 0xe71c, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xdefb, 0xce79, 0xbdf7, 0xb596, 0xa534, 0xa514, 0x9cf3, 0x9cf3, + 0xad75, 0xbdd7, 0xc638, 0xd6ba, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xdedb, 0xce59, 0xbdd7, 0xad75, 0xa514, 0x9cf3, 0x9cf3, 0x9cf3, + 0xb596, 0xbdf7, 0xce79, 0xdefb, 0xef5d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xe73c, 0xdedb, 0xc638, 0xb5b6, 0xad55, 0xa514, 0x9cf3, 0x9cf3, 0x9cd3, + 0xb5b6, 0xc618, 0xd69a, 0xe71c, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xd69a, 0xc618, 0xb596, 0xa534, 0x9cf3, 0x9cf3, 0x9cd3, 0x9cd3, + 0xbdd7, 0xce59, 0xdedb, 0xe73c, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe71c, 0xce79, 0xbdf7, 0xb596, 0xa534, 0x9cf3, 0x9cd3, 0x9cd3, 0x94b2, + 0xbdf7, 0xce79, 0xdefb, 0xef5d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xdefb, 0xce59, 0xbdd7, 0xad75, 0xa514, 0x9cd3, 0x9cd3, 0x94b2, 0x94b2, + 0xc618, 0xd69a, 0xe71c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xdedb, 0xce59, 0xbdd7, 0xad55, 0xa514, 0x9cd3, 0x94b2, 0x94b2, 0x9492, + 0xce79, 0xdedb, 0xef5d, 0xf7be, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xe73c, 0xd6ba, 0xc638, 0xb5b6, 0xa534, 0x9cf3, 0x94b2, 0x94b2, 0x9492, 0x94b2, + 0xdefb, 0xdefb, 0xef7d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xd69a, 0xc618, 0xb596, 0xa534, 0x9cd3, 0x9492, 0x9492, 0x8c71, 0xa514, + 0xf7be, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe71c, 0xd69a, 0xc618, 0xb596, 0xa514, 0x9cd3, 0x9492, 0x8c71, 0x8430, 0xce59, + 0xffff, 0xf7be, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe71c, 0xce79, 0xbdf7, 0xad75, 0xa514, 0x94b2, 0x8c71, 0x8c51, 0xa514, 0xf7be +}; + +static const uint16_t touchselback[] PROGMEM = { + 0x0c74, 0x1dba, 0x2539, 0x2519, 0x2519, 0x1cf9, 0x14d8, 0x0cb8, 0x0c97, 0x0c97, 0x1497, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1477, 0x1476, 0x1476, 0x1476, 0x1497, 0x14d7, 0x1518, 0x1559, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1579, 0x1559, 0x1559, 0x1538, 0x1538, 0x1518, 0x1518, 0x14f8, 0x14f8, 0x14d7, 0x14d7, 0x14b7, 0x1497, 0x1497, 0x1476, 0x1456, 0x1456, 0x1436, 0x0c16, 0x0c15, 0x0bf5, 0x0bf5, 0x0bd5, 0x0bd5, 0x0bb5, 0x0bb4, 0x0b94, 0x0b94, 0x0b94, 0x0b94, 0x0b94, 0x0bd5, 0x0c16, 0x1374, 0x098d, + 0x14f8, 0x2498, 0x2417, 0x2417, 0x23f6, 0x1bd6, 0x1395, 0x0b54, 0x0b14, 0x12d3, 0x12b3, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x1292, 0x12b3, 0x12f4, 0x1315, 0x1336, 0x1356, 0x1356, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1336, 0x1335, 0x1335, 0x1335, 0x1315, 0x1315, 0x1314, 0x12f4, 0x12f4, 0x12d4, 0x12d3, 0x12b3, 0x12b3, 0x1292, 0x1292, 0x1272, 0x1271, 0x1271, 0x1251, 0x1250, 0x1230, 0x1230, 0x0a10, 0x0a0f, 0x0a0f, 0x09ef, 0x09ef, 0x09ef, 0x09ce, 0x09ce, 0x09ce, 0x09ce, 0x09ee, 0x09ef, 0x09ce, 0x094d, + 0x1c56, 0x23f6, 0x2375, 0x2375, 0x2355, 0x1b34, 0x12d3, 0x0a92, 0x0a32, 0x11f1, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x1190, 0x11b1, 0x11d2, 0x11f3, 0x1214, 0x1214, 0x1214, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f4, 0x11f3, 0x11f3, 0x11f3, 0x11f3, 0x11d2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x1190, 0x118f, 0x118f, 0x116f, 0x116e, 0x116e, 0x116d, 0x114d, 0x114d, 0x094d, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094b, 0x096c, 0x098d, 0x098d, + 0x2477, 0x23d6, 0x2375, 0x2375, 0x2355, 0x1b14, 0x12d3, 0x0a72, 0x0a31, 0x11f1, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x1190, 0x11b1, 0x11f2, 0x1213, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116d, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x096c, 0x09ad, 0x09ce, + 0x2477, 0x23d6, 0x2375, 0x2375, 0x1b54, 0x1314, 0x12b3, 0x0a72, 0x0a31, 0x11f1, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b0, 0x11d2, 0x11f3, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x1190, 0x118f, 0x118f, 0x118e, 0x116e, 0x116e, 0x116d, 0x116d, 0x094d, 0x094c, 0x094c, 0x094c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094b, 0x094c, 0x098d, 0x09ce, 0x09ee, + 0x2477, 0x23d6, 0x2375, 0x2355, 0x1b34, 0x12f4, 0x0ab3, 0x0a72, 0x1231, 0x11f0, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x1190, 0x11b1, 0x11f3, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x11f3, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118e, 0x116e, 0x116e, 0x116d, 0x114d, 0x094d, 0x094c, 0x094c, 0x094c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x096c, 0x09ad, 0x09ee, 0x0a0f, + 0x2477, 0x23d6, 0x2355, 0x1b55, 0x1b34, 0x12f3, 0x0a93, 0x0a52, 0x1211, 0x11f0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b0, 0x11d1, 0x11f3, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116e, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x098c, 0x09ad, 0x09ee, 0x0a2f, + 0x2477, 0x23b6, 0x2355, 0x1b54, 0x1b14, 0x12d3, 0x0a92, 0x0a52, 0x1211, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b0, 0x11d2, 0x1213, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116d, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x096c, 0x098d, 0x09ce, 0x0a0f, 0x0a2f, + 0x1c57, 0x1bb6, 0x1b55, 0x1b34, 0x1314, 0x12d3, 0x0a72, 0x0a31, 0x11f1, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b0, 0x11d2, 0x1213, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x1190, 0x118f, 0x118f, 0x118e, 0x116e, 0x116e, 0x116d, 0x114d, 0x094d, 0x094c, 0x094c, 0x094c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x096c, 0x09ad, 0x09ee, 0x0a2f, 0x0a4f, + 0x1c57, 0x1bb6, 0x1b54, 0x1b34, 0x12f4, 0x12b3, 0x0a72, 0x1231, 0x11f0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x1190, 0x11d1, 0x1213, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116e, 0x116d, 0x114d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x098d, 0x09ce, 0x0a0f, 0x0a4f, 0x0a50, + 0x1c57, 0x1bb5, 0x1b34, 0x1b34, 0x12f3, 0x0a93, 0x0a52, 0x1211, 0x11f0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11d1, 0x11f3, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116e, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x094b, 0x096c, 0x098d, 0x09ee, 0x0a2f, 0x0a50, 0x0a70, + 0x1c57, 0x1b95, 0x1b34, 0x1314, 0x12d3, 0x0a93, 0x0a52, 0x1211, 0x11d0, 0x11b0, 0x11af, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b0, 0x11f3, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x1190, 0x118f, 0x118f, 0x118e, 0x116e, 0x116e, 0x116d, 0x116d, 0x094d, 0x094c, 0x094c, 0x094c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x096c, 0x09ad, 0x09ee, 0x0a2f, 0x0a50, 0x0a70, + 0x1c57, 0x1b95, 0x1b14, 0x12f4, 0x12b3, 0x0a72, 0x0a31, 0x11f1, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x1190, 0x11d2, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x11f3, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118e, 0x116e, 0x116e, 0x116d, 0x114d, 0x094d, 0x094c, 0x094c, 0x094c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x098c, 0x09cd, 0x0a0f, 0x0a50, 0x0a70, 0x0a70, + 0x1c57, 0x1b95, 0x1314, 0x12f3, 0x0ab3, 0x0a72, 0x1231, 0x11f0, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b1, 0x11f3, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116e, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x096c, 0x098d, 0x09ee, 0x0a2f, 0x0a50, 0x0a90, 0x0a90, + 0x1437, 0x1375, 0x1314, 0x12d3, 0x0a93, 0x0a52, 0x1211, 0x11f0, 0x11b0, 0x11af, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b0, 0x11d2, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116d, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x096c, 0x09ad, 0x09ee, 0x0a2f, 0x0a70, 0x0a91, 0x0ab1, + 0x1436, 0x1375, 0x12f4, 0x0ab3, 0x0a92, 0x0a52, 0x1211, 0x11d0, 0x11b0, 0x11af, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b0, 0x11f3, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x1190, 0x118f, 0x118f, 0x118e, 0x116e, 0x116e, 0x116d, 0x114d, 0x094d, 0x094c, 0x094c, 0x094c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x098c, 0x09ce, 0x0a0f, 0x0a50, 0x0a90, 0x0ab1, 0x12b1, + 0x1436, 0x1375, 0x12d3, 0x0ab3, 0x0a72, 0x0a31, 0x11f1, 0x11d0, 0x11b0, 0x11af, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11d1, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116e, 0x116d, 0x114d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x094b, 0x096c, 0x098d, 0x09ce, 0x0a2f, 0x0a70, 0x0ab1, 0x12b1, 0x12d1, + 0x1416, 0x1355, 0x0ad3, 0x0a93, 0x0a52, 0x1211, 0x11f0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x1190, 0x11f2, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116e, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x096c, 0x09ad, 0x09ee, 0x0a2f, 0x0a70, 0x12b1, 0x12d1, 0x12d1, + 0x1416, 0x1354, 0x0ab3, 0x0a92, 0x0a52, 0x1211, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b0, 0x11f3, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x1190, 0x118f, 0x118f, 0x118e, 0x116e, 0x116e, 0x116d, 0x116d, 0x094d, 0x094c, 0x094c, 0x094c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x096c, 0x09ad, 0x0a0f, 0x0a50, 0x0a91, 0x12d1, 0x12d1, 0x12d1, + 0x0c16, 0x0b34, 0x0a93, 0x0a72, 0x0a31, 0x11f1, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b1, 0x1213, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x11f3, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118e, 0x116e, 0x116e, 0x116d, 0x114d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x098d, 0x09ce, 0x0a0f, 0x0a70, 0x12b1, 0x12d1, 0x12f2, 0x12f2, + 0x0bf6, 0x0b34, 0x0a93, 0x0a52, 0x1211, 0x11f0, 0x11b0, 0x11af, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11d1, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116e, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x096c, 0x098d, 0x09ee, 0x0a2f, 0x0a70, 0x12b1, 0x12f2, 0x1af2, 0x1af2, + 0x0bf6, 0x0b14, 0x0a72, 0x0a52, 0x1211, 0x11d0, 0x11b0, 0x11af, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11d1, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116d, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x096c, 0x09ad, 0x09ee, 0x0a4f, 0x0a90, 0x12d1, 0x1af2, 0x1af2, 0x1b12, + 0x0bf6, 0x0b14, 0x0a72, 0x0a31, 0x11f1, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11d1, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x1190, 0x118f, 0x118f, 0x118e, 0x116e, 0x116e, 0x116d, 0x114d, 0x094d, 0x094c, 0x094c, 0x094c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x098c, 0x09cd, 0x0a0f, 0x0a50, 0x12b1, 0x12f1, 0x1b12, 0x1b12, 0x1b12, + 0x0bf6, 0x0b14, 0x0a52, 0x1231, 0x11f0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11d1, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116e, 0x116d, 0x114d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x098d, 0x09ce, 0x0a0f, 0x0a70, 0x12b1, 0x1af2, 0x1b12, 0x1b12, 0x1b12, + 0x0bf5, 0x0af4, 0x0a52, 0x1211, 0x11d0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11d1, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116e, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x094b, 0x096c, 0x098d, 0x09ee, 0x0a2f, 0x0a70, 0x12d1, 0x1b12, 0x1b12, 0x1b12, 0x1b12, + 0x0bd5, 0x0af3, 0x0a31, 0x11f1, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11d1, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x1190, 0x118f, 0x118f, 0x118e, 0x116e, 0x116e, 0x116d, 0x116d, 0x094d, 0x094c, 0x094c, 0x094c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x096c, 0x09ad, 0x09ee, 0x0a2f, 0x0a90, 0x12d1, 0x1b12, 0x1b12, 0x1b32, 0x1b32, + 0x0bd5, 0x0ad3, 0x1211, 0x11d0, 0x11b0, 0x11af, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b0, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118e, 0x116e, 0x116e, 0x116d, 0x114d, 0x094d, 0x094c, 0x094c, 0x094c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x098c, 0x09ad, 0x0a0e, 0x0a50, 0x1291, 0x1af2, 0x1b12, 0x1b32, 0x2333, 0x2333, + 0x0bd5, 0x0ad3, 0x11f1, 0x11d0, 0x11b0, 0x11af, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b0, 0x1213, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116e, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x098c, 0x09cd, 0x0a0f, 0x0a50, 0x12b1, 0x1af2, 0x1b32, 0x2333, 0x2333, 0x2333, + 0x0bb5, 0x12b3, 0x11f0, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x1190, 0x11f3, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116d, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x098d, 0x09ce, 0x0a0f, 0x0a70, 0x12d1, 0x1b12, 0x2333, 0x2333, 0x2333, 0x2333, + 0x0bb4, 0x12b2, 0x11d0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11f2, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x1190, 0x118f, 0x118f, 0x118e, 0x116e, 0x116e, 0x116d, 0x114d, 0x094d, 0x094c, 0x094c, 0x094c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094b, 0x096c, 0x098d, 0x09ce, 0x0a2f, 0x0a70, 0x12d1, 0x1b12, 0x2333, 0x2333, 0x2353, 0x1af2, + 0x12d2, 0x1231, 0x11d0, 0x11b0, 0x11af, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11d1, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d2, 0x11d1, 0x11d1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116e, 0x116d, 0x114d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094b, 0x096c, 0x09ad, 0x09ee, 0x0a2f, 0x0a91, 0x12f2, 0x1b33, 0x2353, 0x2353, 0x2373, 0x1a2f, + 0x094d, 0x11b0, 0x11d0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x118f, 0x11b0, 0x1213, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1214, 0x1213, 0x11f3, 0x11f3, 0x11f3, 0x11f2, 0x11f2, 0x11d2, 0x11d1, 0x11d1, 0x11b1, 0x11b0, 0x11b0, 0x11b0, 0x118f, 0x118f, 0x118f, 0x116e, 0x116e, 0x116d, 0x116d, 0x094d, 0x094d, 0x094c, 0x094c, 0x092c, 0x092c, 0x092b, 0x092b, 0x092b, 0x092b, 0x092b, 0x094c, 0x096c, 0x09ad, 0x09ee, 0x0a4f, 0x1291, 0x1af2, 0x2333, 0x2353, 0x2353, 0x22f2, 0x092b +}; + static const uint16_t selector[] PROGMEM = { 0x00a6, 0x020b, 0x1537, 0x1edd, 0x1ede, 0x1e9d, 0x1e9d, 0x1e9d, 0x1e9d, 0x1e9d, 0x1e9d, 0x169d, 0x169d, 0x169d, 0x0e9d, 0x0e9d, 0x0e9d, 0x0ebd, 0x0ebd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0f1d, 0x0f1d, 0x171d, 0x171d, 0x171e, 0x171e, 0x171e, 0x171e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x173e, 0x0f3e, 0x0f1e, 0x0f1e, 0x0f1e, 0x0f1e, 0x0f1e, 0x0f1d, 0x0f1d, 0x0f1d, 0x0f1d, 0x0f1d, 0x0f1d, 0x0f1d, 0x0f1d, 0x0f1d, 0x0f1d, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0efd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, 0x0e9d, 0x0e3b, 0x0495, 0x01eb, 0x00c6, 0x02ae, 0x1ebd, 0x269d, 0x24f8, 0x2435, 0x23f4, 0x1bf4, 0x1bd4, 0x1bd4, 0x1bd4, 0x1bb3, 0x13b3, 0x1393, 0x1372, 0x0b72, 0x0b52, 0x0b32, 0x0b31, 0x0b11, 0x0b11, 0x1310, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x1311, 0x1311, 0x1311, 0x1331, 0x1331, 0x1331, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1351, 0x1331, 0x1331, 0x1331, 0x1331, 0x1331, 0x1331, 0x1331, 0x1331, 0x1331, 0x1331, 0x1331, 0x1311, 0x1311, 0x1311, 0x1310, 0x1310, 0x1310, 0x1310, 0x1310, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12cf, 0x12cf, 0x12cf, 0x12cf, 0x12cf, 0x12cf, 0x12cf, 0x0acf, 0x0aaf, 0x0aaf, 0x0aaf, 0x0aaf, 0x0aaf, 0x0aaf, 0x0aaf, 0x0aaf, 0x0aae, 0x0aae, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0aae, 0x0acf, 0x1331, 0x1456, 0x0518, 0x024c, diff --git a/src/touch.cpp b/src/touch.cpp index 02f2daf..14d6bd6 100644 --- a/src/touch.cpp +++ b/src/touch.cpp @@ -10,14 +10,85 @@ void doTouchEvent(uint16_t x, uint16_t y) { cancelDXScan(); } else { if (menu) { - if (menuopen) { - if (x > 18 && x < 78 && y > 150 && y < 190) KeyDown(); + if (x > 0 && x < 320 && y > 0 && y < 33) { + ModeButtonPress(); + return; + } + if (menuopen) { // Menu navigation + if (x > 18 && x < 78 && y > 150 && y < 190) KeyDown(); // --------------- if (x > 240 && x < 300 && y > 150 && y < 190) KeyUp(); if (x > 240 && x < 300 && y > 40 && y < 80) ButtonPress(); return; + } else { + if (x > 8 && x < 158) { + if (y > 38 && y < 70) { + if (items[menupage] > 0) { + menuitem = 0; + menuoption = ITEM1; + DoMenu(); + } + } else if (y > 78 && y < 110) { + if (items[menupage] > 1) { + menuitem = 1; + menuoption = ITEM2; + DoMenu(); + } + } else if (y > 118 && y < 150) { + if (items[menupage] > 2) { + menuitem = 2; + menuoption = ITEM3; + DoMenu(); + } + } else if (y > 158 && y < 190) { + if (items[menupage] > 3) { + menuitem = 3; + menuoption = ITEM4; + DoMenu(); + } + } else if (y > 198 && y < 230) { + if (items[menupage] > 4) { + menuitem = 4; + menuoption = ITEM5; + DoMenu(); + } + } + } else if (x > 163 && x < 313) { + if (y > 38 && y < 70) { + if (items[menupage] > 5) { + menuitem = 5; + menuoption = ITEM6; + DoMenu(); + } + } else if (y > 78 && y < 110) { + if (items[menupage] > 6) { + menuitem = 6; + menuoption = ITEM7; + DoMenu(); + } + } else if (y > 118 && y < 150) { + if (items[menupage] > 7) { + menuitem = 7; + menuoption = ITEM8; + DoMenu(); + } + } else if (y > 158 && y < 190) { + if (items[menupage] > 8) { + menuitem = 8; + menuoption = ITEM9; + DoMenu(); + } + } else if (y > 198 && y < 230) { + if (items[menupage] > 9) { + menuitem = 9; + menuoption = ITEM10; + DoMenu(); + } + } + } + return; } } - + if (!menu && !BWtune) { // All pages except menu if (x > 50 && x < 90 && y > 0 && y < 30 && band < BAND_GAP) { // --------------------- doStereoToggle(); // Stereo toggle diff --git a/src/touch.h b/src/touch.h index 2fc9c4d..bdb1b01 100644 --- a/src/touch.h +++ b/src/touch.h @@ -18,6 +18,10 @@ extern bool scandxmode; extern bool seek; extern byte band; extern byte BWset; +extern byte menuitem; +extern byte items[10]; +extern byte menupage; +extern int menuoption; void doTouchEvent(uint16_t x, uint16_t y); @@ -35,4 +39,6 @@ extern void drawButton(const char* text, byte button_number, bool active); extern void KeyDown(); extern void KeyUp(); extern void ButtonPress(); +extern void DoMenu(); +extern void ModeButtonPress(); #endif \ No newline at end of file